Skip to content
Liam Mitchell edited this page Dec 29, 2019 · 2 revisions

World ambiance sounds are loaded from

TS1: G03_GDATA/D10_WSOUND/Z%03d/Z%03d/

TS2: G03_GDATA/D09_WSOUND/Z%03d/Z%03d/

The file .WSOUND contains information on the position of enviromental SFX.

Different structure on TS1 and TS2, TS2 uses Ogg TS1 uses Ogg renamed as wav. TS1 has WSOUND_INFO containing other data but it seems inconsistent. If I had to guess its just junk.

OiginalFileName
Sound Bit Rate: XXXkbps
Size: X.XXMB

But the files are named in the folder as specified in the WSOUND file where as in TS2 they are named by index. TS2: Z%03d.WSOUND_%04d.OGG

TS1: Has array of radius and unknown before the list of sounds. TS2: Has separate radius per each sound.

struct WSOUND_INFO {
  char Name[100]; // The original file name.
  // Probably more data here but it is unknown.
};

struct WSOUND_EMITTER {
  int SoundIndex;
  float x;
  float y;
  float z;

// TS1 no radius assuming this is fixed per sound.
// TS2 has radius per emitter.
  float radius;
};

int soundCount;

#ifdef ts1
// Maybe Radius and Playback Volume?
float unknownA[soundCount]; // Maybe delay interval? But that doesn't make sense given the values...
int radius[soundCount]; // I assume this is radius of sound.
#endif

WSOUND_INFO SoundList[soundCount];

int numberEmitters;
WSOUND_EMITTER SoundEmitters[numberEmitters];

Donate with PayPal today.

Donate with PayPal Credit or any major credit card.

Donations will be used to further improve the project or for server expenses.

Clone this wiki locally