From ffcf8c68dca4840c07ea66217dcdba7f754b04e9 Mon Sep 17 00:00:00 2001 From: ghaushe Date: Wed, 5 Feb 2003 01:10:52 +0000 Subject: [PATCH] Fix bug #5 (lockup when aborting orz initial communication) git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@673 8092fc87-c524-0410-9efc-e669fe64eaf9 --- sc2/ChangeLog | 1 + sc2/src/sc2code/comm.c | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/sc2/ChangeLog b/sc2/ChangeLog index 61ff26e3a..a47070b75 100644 --- a/sc2/ChangeLog +++ b/sc2/ChangeLog @@ -1,4 +1,5 @@ Changes towards version 0.2: +- Fixed lockup when fastforwarding through orz comm -PBlue - A new windows installer is now in builds/win32_install -PBlue - Added '-a' switch to go between OpenAL and MixSDL at runtime -PBlue - Melnorme will pronounce numbers now -fOSSiL diff --git a/sc2/src/sc2code/comm.c b/sc2/src/sc2code/comm.c index ed4748eb0..cd8179e84 100644 --- a/sc2/src/sc2code/comm.c +++ b/sc2/src/sc2code/comm.c @@ -1253,7 +1253,10 @@ Rewind: else { CommData.AlienFrame = F; - return (FALSE); + if (! which_track) + return (FALSE); + else + return (TRUE); } ContinuityBreak = FALSE; } @@ -1276,6 +1279,7 @@ Rewind: void AlienTalkSegue (COUNT wait_track) { + BOOLEAN abort; if ((GLOBAL (CurrentActivity) & CHECK_ABORT) || (CommData.AlienTransitionDesc.AnimFlags & TALK_INTRO)) return; @@ -1370,12 +1374,12 @@ AlienTalkSegue (COUNT wait_track) } } - if (!SpewPhrases (wait_track) || wait_track == (COUNT)~0) + if (!(abort = SpewPhrases (wait_track)) || wait_track == (COUNT)~0) FadeMusic (FOREGROUND_VOL, ONE_SECOND); else CommData.AlienTransitionDesc.AnimFlags &= ~TALK_INTRO; - if (wait_track == (COUNT)~0 || CommData.AlienTalkDesc.NumFrames) + if (wait_track == (COUNT)~0 || ! abort || CommData.AlienTalkDesc.NumFrames) { CommData.AlienTransitionDesc.AnimFlags |= TALK_DONE; if ((CommData.AlienTalkDesc.AnimFlags & WAIT_TALKING))