mirror of
https://github.com/dhewm/dhewm3.git
synced 2024-11-27 06:32:27 +00:00
Fix sound channel saving/restoring for x86_64
Let's not store pointers as int to file. The code already allocs channels on invalid pointers - well, afer fixing it ;)
This commit is contained in:
parent
ce976c4701
commit
962c0e6032
1 changed files with 11 additions and 7 deletions
|
@ -1197,10 +1197,10 @@ void idSoundWorldLocal::WriteToSaveGameSoundChannel( idFile *saveGame, idSoundCh
|
|||
saveGame->WriteInt( ch->trigger44kHzTime );
|
||||
saveGame->WriteInt( ch->triggerGame44kHzTime );
|
||||
WriteToSaveGameSoundShaderParams( saveGame, &ch->parms );
|
||||
saveGame->WriteInt( (int)ch->leadinSample );
|
||||
saveGame->WriteInt( 0 /* ch->leadinSample */ );
|
||||
saveGame->WriteInt( ch->triggerChannel );
|
||||
saveGame->WriteInt( (int)ch->soundShader );
|
||||
saveGame->WriteInt( (int)ch->decoder );
|
||||
saveGame->WriteInt( 0 /* ch->soundShader */ );
|
||||
saveGame->WriteInt( 0 /* ch->decoder */ );
|
||||
saveGame->WriteFloat(ch->diversity );
|
||||
saveGame->WriteFloat(ch->lastVolume );
|
||||
for (int m = 0; m < 6; m++)
|
||||
|
@ -1295,7 +1295,7 @@ void idSoundWorldLocal::ReadFromSaveGame( idFile *savefile ) {
|
|||
|
||||
idSoundChannel *chan = &def->channels[channel];
|
||||
|
||||
if ( chan->decoder != NULL ) {
|
||||
if ( !chan->decoder ) {
|
||||
// The pointer in the save file is not valid, so we grab a new one
|
||||
chan->decoder = idSampleDecoder::Alloc();
|
||||
}
|
||||
|
@ -1362,16 +1362,20 @@ void idSoundWorldLocal::ReadFromSaveGameSoundShaderParams( idFile *saveGame, sou
|
|||
void idSoundWorldLocal::ReadFromSaveGameSoundChannel( idFile *saveGame, idSoundChannel *ch ) {
|
||||
saveGame->ReadBool( ch->triggerState );
|
||||
char tmp;
|
||||
int i;
|
||||
saveGame->ReadChar( tmp );
|
||||
saveGame->ReadChar( tmp );
|
||||
saveGame->ReadChar( tmp );
|
||||
saveGame->ReadInt( ch->trigger44kHzTime );
|
||||
saveGame->ReadInt( ch->triggerGame44kHzTime );
|
||||
ReadFromSaveGameSoundShaderParams( saveGame, &ch->parms );
|
||||
saveGame->ReadInt( (int&)ch->leadinSample );
|
||||
saveGame->ReadInt( i );
|
||||
ch->leadinSample = NULL;
|
||||
saveGame->ReadInt( ch->triggerChannel );
|
||||
saveGame->ReadInt( (int&)ch->soundShader );
|
||||
saveGame->ReadInt( (int&)ch->decoder );
|
||||
saveGame->ReadInt( i );
|
||||
ch->soundShader = NULL;
|
||||
saveGame->ReadInt( i );
|
||||
ch->decoder = NULL;
|
||||
saveGame->ReadFloat(ch->diversity );
|
||||
saveGame->ReadFloat(ch->lastVolume );
|
||||
for (int m = 0; m < 6; m++)
|
||||
|
|
Loading…
Reference in a new issue