ref: 10a014dabda1d525f0e51eef2084f268f33c046e
parent: 5abf8a887833b3e9fa97845ac43f2d56eadd853f
author: Clownacy <Clownacy@users.noreply.github.com>
date: Tue Jan 7 16:45:43 EST 2020
More-accurate PixTone.cpp variable arrangement Also added the Linux port's optimisation, for anyone that's curious
--- a/src/PixTone.cpp
+++ b/src/PixTone.cpp
@@ -6,12 +6,14 @@
#include "WindowsWrapper.h"
-static signed char gWaveModelTable[6][0x100];
+signed char gWaveModelTable[6][0x100];
void MakeWaveTables(void)
{
- int i, a;
+ int i;
+ int a;
+
// Sine wave
for (i = 0; i < 0x100; ++i)
{
@@ -59,24 +61,28 @@
gWaveModelTable[5][i] = (signed char)(rand() & 0xFF) / 2;
}
+//BOOL wave_tables_made;
+
BOOL MakePixelWaveData(const PIXTONEPARAMETER *ptp, unsigned char *pData)
{
int i;
- double dEnvelope;
+ int a, b, c, d;
+
double dPitch;
double dMain;
double dVolume;
- double d1;
- double d2;
- double d3;
- int a;
- int b;
- int c;
- int d;
+
+ double dEnvelope;
signed char envelopeTable[0x100];
+ double d1, d2, d3;
+
// The Linux port added a cute optimisation here, where MakeWaveTables is only called once during the game's execution
- MakeWaveTables();
+ //if (wave_tables_made != TRUE)
+ //{
+ MakeWaveTables();
+ // wave_tables_made = TRUE;
+ //}
memset(envelopeTable, 0, sizeof(envelopeTable));