mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-16 01:11:44 +00:00
This fixes S_CheckSoundPlaying() and makes CON_IFSOUND work correctly in scripts that run during menus. These changes together fix the exchange between Duke and Lani at the end of episode 3 of Duke3D.
git-svn-id: https://svn.eduke32.com/eduke32@7279 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
5102281e0e
commit
06ac4f88b9
7 changed files with 15 additions and 15 deletions
|
@ -3090,7 +3090,7 @@ ACTOR_STATIC void G_MoveWeapons(void)
|
|||
case COOLEXPLOSION1__STATIC:
|
||||
{
|
||||
if (pSprite->picnum == COOLEXPLOSION1)
|
||||
if (!S_CheckSoundPlaying(spriteNum, WIERDSHOT_FLY))
|
||||
if (!S_CheckSoundPlaying(WIERDSHOT_FLY))
|
||||
A_PlaySound(WIERDSHOT_FLY, spriteNum);
|
||||
|
||||
int spriteXvel = pSprite->xvel;
|
||||
|
@ -5227,7 +5227,7 @@ ACTOR_STATIC void G_MoveMisc(void) // STATNUM 5
|
|||
}
|
||||
else
|
||||
*/
|
||||
if (!S_CheckSoundPlaying(spriteNum,ITEM_SPLASH))
|
||||
if (!S_CheckSoundPlaying(ITEM_SPLASH))
|
||||
A_PlaySound(ITEM_SPLASH,spriteNum);
|
||||
}
|
||||
if (pData[0] == 3)
|
||||
|
@ -6020,7 +6020,7 @@ ACTOR_STATIC void G_MoveEffectors(void) //STATNUM 3
|
|||
{
|
||||
if ((pSector->floorstat&1) == 0 && (pSector->ceilingstat&1) == 0)
|
||||
{
|
||||
if (!S_CheckSoundPlaying(spriteNum,actor[spriteNum].lastv.x))
|
||||
if (!S_CheckSoundPlaying(actor[spriteNum].lastv.x))
|
||||
A_PlaySound(actor[spriteNum].lastv.x,spriteNum);
|
||||
}
|
||||
else if (ud.monsters_off == 0 && pSector->floorpal == 0 && (pSector->floorstat&1) && rnd(8))
|
||||
|
|
|
@ -6725,6 +6725,7 @@ MAIN_LOOP_RESTART:
|
|||
else
|
||||
#endif
|
||||
{
|
||||
S_Cleanup();
|
||||
MUSIC_Update();
|
||||
G_HandleLocalKeys();
|
||||
}
|
||||
|
|
|
@ -3143,7 +3143,7 @@ badindex:
|
|||
CON_ERRPRINTF("invalid sound %d\n", vm.pUSprite->yvel);
|
||||
continue;
|
||||
}
|
||||
if (!S_CheckSoundPlaying(vm.spriteNum, vm.pSprite->yvel))
|
||||
if (!S_CheckSoundPlaying(vm.pSprite->yvel))
|
||||
A_PlaySound(vm.pSprite->yvel, vm.spriteNum);
|
||||
continue;
|
||||
|
||||
|
@ -3206,7 +3206,7 @@ badindex:
|
|||
CON_ERRPRINTF("invalid sound %d\n", (int32_t)*insptr);
|
||||
continue;
|
||||
}
|
||||
VM_CONDITIONAL(S_CheckSoundPlaying(vm.spriteNum, *insptr));
|
||||
VM_CONDITIONAL(S_CheckSoundPlaying(*insptr));
|
||||
// VM_DoConditional(SoundOwner[*insptr][0].ow == vm.spriteNum);
|
||||
continue;
|
||||
|
||||
|
@ -4229,7 +4229,7 @@ badindex:
|
|||
switch (tw)
|
||||
{
|
||||
case CON_SOUNDONCE:
|
||||
if (!S_CheckSoundPlaying(vm.spriteNum, soundNum))
|
||||
if (!S_CheckSoundPlaying(soundNum))
|
||||
{
|
||||
fallthrough__;
|
||||
case CON_SOUND: A_PlaySound((int16_t)soundNum, vm.spriteNum);
|
||||
|
@ -4237,10 +4237,10 @@ badindex:
|
|||
continue;
|
||||
case CON_GLOBALSOUND: A_PlaySound((int16_t)soundNum, g_player[screenpeek].ps->i); continue;
|
||||
case CON_STOPSOUND:
|
||||
if (S_CheckSoundPlaying(vm.spriteNum, soundNum))
|
||||
if (S_CheckSoundPlaying(soundNum))
|
||||
S_StopSound((int16_t)soundNum);
|
||||
continue;
|
||||
case CON_SCREENSOUND: A_PlaySound(soundNum, -1); continue;
|
||||
case CON_SCREENSOUND: S_PlaySound(soundNum); continue;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
|
|
|
@ -555,7 +555,6 @@ static void Net_DeleteAllScratchPadSprites()
|
|||
Net_InitScratchPadSpriteList();
|
||||
}
|
||||
|
||||
|
||||
static void Net_Error_Disconnect(const char* message)
|
||||
{
|
||||
OSD_Printf("Net_Error_Disconnect: %s\n", message);
|
||||
|
@ -4769,7 +4768,7 @@ void Net_GetPackets(void)
|
|||
{
|
||||
timerUpdate();
|
||||
MUSIC_Update();
|
||||
S_Update();
|
||||
S_Cleanup();
|
||||
|
||||
G_HandleSpecialKeys();
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ static int32_t G_PlaySoundWhileNoInput(int32_t soundnum)
|
|||
{
|
||||
S_PlaySound(soundnum);
|
||||
I_ClearAllInput();
|
||||
while (S_CheckSoundPlaying(-1, soundnum))
|
||||
while (S_CheckSoundPlaying(soundnum))
|
||||
{
|
||||
G_HandleAsync();
|
||||
if (I_CheckAllInput())
|
||||
|
|
|
@ -970,8 +970,8 @@ bool A_CheckAnySoundPlaying(int spriteNum)
|
|||
return 0;
|
||||
}
|
||||
|
||||
bool S_CheckSoundPlaying(int spriteNum, int soundNum)
|
||||
bool S_CheckSoundPlaying(int soundNum)
|
||||
{
|
||||
if (EDUKE32_PREDICT_FALSE((unsigned)soundNum > (unsigned)g_highestSoundIdx)) return 0;
|
||||
return (spriteNum == -1) ? (g_soundlocks[soundNum] > 200) : (g_sounds[soundNum].num != 0);
|
||||
if (EDUKE32_PREDICT_FALSE((unsigned)soundNum > (unsigned)g_highestSoundIdx)) return false;
|
||||
return (g_sounds[soundNum].num != 0);
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ bool A_CheckSoundPlaying(int spriteNum,int soundNum);
|
|||
int A_PlaySound(int soundNum, int spriteNum);
|
||||
void S_Callback(uint32_t num);
|
||||
bool A_CheckAnySoundPlaying(int spriteNum);
|
||||
bool S_CheckSoundPlaying(int spriteNum,int soundNum);
|
||||
bool S_CheckSoundPlaying(int soundNum);
|
||||
void S_Cleanup(void);
|
||||
void S_ClearSoundLocks(void);
|
||||
int32_t S_LoadSound(uint32_t num);
|
||||
|
|
Loading…
Reference in a new issue