- Fixed: SDL builds did not shutdown the sound system at exit.

- Fixed: ThingCountSector and ThingCountNameSector did not remove enough
  entries from the stack, and did not put the result in the right slot.
- Fixed: Teleport lines were prioritized over secret lines when deciding what
  color to draw them on the automap.
- Fixed: Death-reverting morphs did not remove the morph item from the
  player's inventory when death caused the morph to revert.
- Updated fmod_wrap.h for FMOD Ex 4.18.


SVN r1259 (trunk)
This commit is contained in:
Randy Heit 2008-10-14 01:24:27 +00:00
parent c800d1ec2c
commit cb159b26c2
6 changed files with 39 additions and 19 deletions

View File

@ -1,3 +1,13 @@
October 13, 2008
- Fixed: SDL builds did not shutdown the sound system at exit.
- Fixed: ThingCountSector and ThingCountNameSector did not remove enough
entries from the stack, and did not put the result in the right slot.
- Fixed: Teleport lines were prioritized over secret lines when deciding what
color to draw them on the automap.
- Fixed: Death-reverting morphs did not remove the morph item from the
player's inventory when death caused the morph to revert.
- Updated fmod_wrap.h for FMOD Ex 4.18.
October 7, 2008 (Changes by Graf Zahl)
- Fixed: Cheats in demos must not access the weapon slots.
- Fixed: S_ChannelEnded didn't check for a NULL SfxInfo.

View File

@ -1383,7 +1383,14 @@ void AM_drawWalls (bool allmap)
}
else
{
if ((lines[i].special == Teleport ||
if (lines[i].flags & ML_SECRET)
{ // secret door
if (am_cheat != 0)
AM_drawMline(&l, SecretWallColor);
else
AM_drawMline(&l, WallColor);
}
else if ((lines[i].special == Teleport ||
lines[i].special == Teleport_NoFog ||
lines[i].special == Teleport_ZombieChanger ||
lines[i].special == Teleport_Line) &&
@ -1400,13 +1407,6 @@ void AM_drawWalls (bool allmap)
{ // inter-level/game-ending teleporters
AM_drawMline(&l, InterTeleportColor);
}
else if (lines[i].flags & ML_SECRET)
{ // secret door
if (am_cheat != 0)
AM_drawMline(&l, SecretWallColor);
else
AM_drawMline(&l, WallColor);
}
else if (lines[i].special == Door_LockedRaise ||
lines[i].special == ACS_LockedExecute ||
lines[i].special == ACS_LockedExecuteDoor ||

View File

@ -211,6 +211,15 @@ bool P_UndoPlayerMorph (player_t *activator, player_t *player, bool force)
mo->ObtainInventory (pmo);
DObject::StaticPointerSubstitution (pmo, mo);
// Remove the morph power if the morph is being undone prematurely.
for (AInventory *item = mo->Inventory, *next = NULL; item != NULL; item = next)
{
next = item->Inventory;
if (item->IsKindOf(RUNTIME_CLASS(APowerMorph)))
{
item->Destroy();
}
}
if ((pmo->tid != 0) && (player->MorphStyle & MORPH_NEWTIDBEHAVIOUR))
{
mo->tid = pmo->tid;

View File

@ -3665,13 +3665,13 @@ int DLevelScript::RunScript ()
break;
case PCD_THINGCOUNTNAMESECTOR:
STACK(2) = ThingCount (-1, STACK(3), STACK(2), STACK(1));
sp--;
STACK(3) = ThingCount (-1, STACK(3), STACK(2), STACK(1));
sp -= 2;
break;
case PCD_THINGCOUNTSECTOR:
STACK(2) = ThingCount (STACK(3), -1, STACK(2), STACK(1));
sp--;
STACK(3) = ThingCount (STACK(3), -1, STACK(2), STACK(1));
sp -= 2;
break;
case PCD_TAGWAIT:

View File

@ -184,6 +184,7 @@ void I_Init (void)
I_GetTime = I_GetTimePolled;
I_WaitForTic = I_WaitForTicPolled;
atterm (I_ShutdownSound);
I_InitSound ();
}

View File

@ -97,13 +97,14 @@ namespace FMOD
// Plug-in support
FMOD_RESULT setPluginPath (const char *path) { return FMOD_System_SetPluginPath(this, path); }
FMOD_RESULT loadPlugin (const char *filename, FMOD_PLUGINTYPE *plugintype, int *index) { return FMOD_System_LoadPlugin(this, filename, plugintype, index); }
FMOD_RESULT loadPlugin (const char *filename, unsigned int *handle, unsigned int priority = 0) { return FMOD_System_LoadPlugin(this, filename, handle, priority); }
FMOD_RESULT unloadPlugin (unsigned int handle) { return FMOD_System_UnloadPlugin(this, handle); }
FMOD_RESULT getNumPlugins (FMOD_PLUGINTYPE plugintype, int *numplugins) { return FMOD_System_GetNumPlugins(this, plugintype, numplugins); }
FMOD_RESULT getPluginInfo (FMOD_PLUGINTYPE plugintype, int index, char *name, int namelen, unsigned int *version) { return FMOD_System_GetPluginInfo(this, plugintype, index, name, namelen, version); }
FMOD_RESULT unloadPlugin (FMOD_PLUGINTYPE plugintype, int index) { return FMOD_System_UnloadPlugin(this, plugintype, index); }
FMOD_RESULT setOutputByPlugin (int index) { return FMOD_System_SetOutputByPlugin(this, index); }
FMOD_RESULT getOutputByPlugin (int *index) { return FMOD_System_GetOutputByPlugin(this, index); }
FMOD_RESULT createCodec (FMOD_CODEC_DESCRIPTION *description) { return FMOD_System_CreateCodec(this, description); }
FMOD_RESULT getPluginHandle (FMOD_PLUGINTYPE plugintype, int index, unsigned int *handle) { return FMOD_System_GetPluginHandle(this, plugintype, index, handle); }
FMOD_RESULT getPluginInfo (unsigned int handle, FMOD_PLUGINTYPE *plugintype, char *name, int namelen, unsigned int *version) { return FMOD_System_GetPluginInfo(this, handle, plugintype, name, namelen, version); }
FMOD_RESULT setOutputByPlugin (unsigned int handle) { return FMOD_System_SetOutputByPlugin(this, handle); }
FMOD_RESULT getOutputByPlugin (unsigned int handle) { return FMOD_System_GetOutputByPlugin(this, handle); }
FMOD_RESULT createCodec (FMOD_CODEC_DESCRIPTION *description, unsigned int priority = 0) { return FMOD_System_CreateCodec(this, description, priority); }
// Init/Close
FMOD_RESULT init (int maxchannels, FMOD_INITFLAGS flags, void *extradriverdata) { return FMOD_System_Init(this, maxchannels, flags, extradriverdata); }
@ -142,7 +143,6 @@ namespace FMOD
FMOD_RESULT createStream (const char *name_or_data, FMOD_MODE mode, FMOD_CREATESOUNDEXINFO *exinfo, Sound **sound) { return FMOD_System_CreateStream(this, name_or_data, mode, exinfo, (FMOD_SOUND **)sound); }
FMOD_RESULT createDSP (FMOD_DSP_DESCRIPTION *description, DSP **dsp) { return FMOD_System_CreateDSP(this, description, (FMOD_DSP **)dsp); }
FMOD_RESULT createDSPByType (FMOD_DSP_TYPE type, DSP **dsp) { return FMOD_System_CreateDSPByType(this, type, (FMOD_DSP **)dsp); }
FMOD_RESULT createDSPByIndex (int index, DSP **dsp) { return FMOD_System_CreateDSPByIndex(this, index, (FMOD_DSP **)dsp); }
FMOD_RESULT createChannelGroup (const char *name, ChannelGroup **channelgroup) { return FMOD_System_CreateChannelGroup(this, name, (FMOD_CHANNELGROUP **)channelgroup); }
FMOD_RESULT createSoundGroup (const char *name, SoundGroup **soundgroup) { return FMOD_System_CreateSoundGroup(this, name, (FMOD_SOUNDGROUP **)soundgroup); }
FMOD_RESULT createReverb (Reverb **reverb) { return FMOD_System_CreateReverb(this, (FMOD_REVERB **)reverb); }