From 0f487716ad6defbdab3990f5a766f34d573bcadb Mon Sep 17 00:00:00 2001 From: ghaushe Date: Sat, 1 Mar 2003 02:42:28 +0000 Subject: [PATCH] Fix gaphics glitches during dialog. Spathi eye and ZFP are most noticable, but al aliens are afffected. Closes 23, 156 git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@837 8092fc87-c524-0410-9efc-e669fe64eaf9 --- sc2/ChangeLog | 2 + sc2/src/sc2code/comm.c | 349 +++++++++++++++----------- sc2/src/sc2code/comm/zoqfot/zoqfotc.c | 115 +++++---- 3 files changed, 277 insertions(+), 189 deletions(-) diff --git a/sc2/ChangeLog b/sc2/ChangeLog index 6bb2dd5e5..d333a9726 100644 --- a/sc2/ChangeLog +++ b/sc2/ChangeLog @@ -1,4 +1,6 @@ Changes towards version 0.3: +- Fix various graphics glitches during dialog. Especially Spathi Eye,and ZFP + Closes #23, #156 - PhracturedBlue - Fix Syreen, KohrAh and Slylandro ship effects to not be screen size dependant (corolary to bug 93) - PhracturedBlue - Line clipping is now handled correctly; fixes #28 (one pixel corruptions) diff --git a/sc2/src/sc2code/comm.c b/sc2/src/sc2code/comm.c index de3fae566..48d5e2fb8 100644 --- a/sc2/src/sc2code/comm.c +++ b/sc2/src/sc2code/comm.c @@ -182,13 +182,13 @@ add_text (int status, PTEXT pTextIn) } else if (GetContextFontLeading (&leading), status <= -4) { - text_width = SIS_SCREEN_WIDTH - 8 - (TEXT_X_OFFS << 2); + text_width = (SIZE) (SIS_SCREEN_WIDTH - 8 - (TEXT_X_OFFS << 2)); pText = pTextIn; } else { - text_width = SIS_SCREEN_WIDTH - 8 - (TEXT_X_OFFS << 2); + text_width = (SIZE) (SIS_SCREEN_WIDTH - 8 - (TEXT_X_OFFS << 2)); switch (status) { @@ -473,6 +473,7 @@ xform_complete (void) } static BOOLEAN ColorChange; +static BOOLEAN ClearSubtitle = FALSE; /* Only one thread should ever be allowed to be calling this at any time */ void @@ -587,7 +588,6 @@ XFormPLUT (COLORMAPPTR ColorMapPtr, SIZE TimeInterval) { if (ColorMapPtr) { - DWORD TimeOut; DWORD *pOldCMap, *pCurCMap; XFORM_CONTROL *control; int i; @@ -738,11 +738,11 @@ SetUpSequence (PSEQUENCE pSeq) if (pSeq->AnimType == COLOR_ANIM) pSeq->AnimObj.CurCMap = SetRelColorMapIndex (pSeq->AnimObj.CurCMap, - (COUNT)TFB_Random () % pSeq->FramesLeft); + (COUNT)((COUNT)TFB_Random () % pSeq->FramesLeft)); else pSeq->AnimObj.CurFrame = SetRelFrameIndex (pSeq->AnimObj.CurFrame, - (COUNT)TFB_Random () % pSeq->FramesLeft); + (COUNT)((COUNT)TFB_Random () % pSeq->FramesLeft)); } else if (ADPtr->AnimFlags & YOYO_ANIM) { @@ -795,16 +795,22 @@ int ambient_anim_task(void* data) { SIZE TalkAlarm; FRAME TalkFrame; + FRAME ResetTalkFrame = NULL; + FRAME TransitionFrame = NULL; + FRAME AnimFrame[MAX_ANIMATIONS]; COUNT i; DWORD LastTime; FRAME CommFrame; - register PPRIMITIVE pBatch; SEQUENCE Sequencer[MAX_ANIMATIONS]; + ANIMATION_DESC TalkBuffer = CommData.AlienTalkDesc; PSEQUENCE pSeq; ANIMATION_DESCPTR ADPtr; DWORD ActiveMask; DWORD LastOscillTime; Task task = (Task) data; + BOOLEAN TransitionDone = FALSE; + BOOLEAN TalkFrameChanged = FALSE; + BOOLEAN FrameChanged[MAX_ANIMATIONS]; while ((CommFrame = CommData.AlienFrame) == 0 && !Task_ReadState (task, TASK_EXIT)) TaskSwitch (); @@ -819,6 +825,21 @@ int ambient_anim_task(void* data) TalkFrame = 0; LastTime = GetTimeCounter (); LastOscillTime = LastTime; + memset (&FrameChanged[0], 0 , MAX_ANIMATIONS); + memset (&AnimFrame[0], 0, sizeof (FRAME) * MAX_ANIMATIONS); + for (i = 0; i <= CommData.NumAnimations; i++) + if (CommData.AlienAmbientArray[i].AnimFlags & YOYO_ANIM) + AnimFrame[i] = SetAbsFrameIndex ( + CommFrame, + CommData.AlienAmbientArray[i].StartIndex + ); + else + AnimFrame[i] = SetAbsFrameIndex ( + CommFrame, + (COUNT)(CommData.AlienAmbientArray[i].StartIndex + + CommData.AlienAmbientArray[i].NumFrames - 1) + ); + while (!Task_ReadState (task, TASK_EXIT)) { BOOLEAN Change, CanTalk; @@ -842,7 +863,6 @@ int ambient_anim_task(void* data) CanTalk = FALSE; } - pBatch = &DisplayArray[MAX_ANIMATIONS + 1]; pSeq = &Sequencer[i]; ADPtr = &CommData.AlienAmbientArray[i]; while (i-- && !Task_ReadState (task, TASK_EXIT)) @@ -851,7 +871,7 @@ int ambient_anim_task(void* data) --pSeq; if (ADPtr->AnimFlags & ANIM_DISABLED) continue; - else if (pSeq->Direction == NO_DIR) + if (pSeq->Direction == NO_DIR) { if (!(ADPtr->AnimFlags & CommData.AlienTalkDesc.AnimFlags & WAIT_TALKING)) @@ -889,17 +909,14 @@ int ambient_anim_task(void* data) { XFormPLUT ( GetColorMapAddress (pSeq->AnimObj.CurCMap), - pSeq->Alarm - 1 + (COUNT) (pSeq->Alarm - 1) ); } else { Change = TRUE; - --pBatch; - SetPrimNextLink (pBatch, (pBatch - &DisplayArray[0]) + 1); - SetPrimType (pBatch, STAMP_PRIM); -pBatch->Object.Stamp.origin.x = -SAFE_X; - pBatch->Object.Stamp.frame = pSeq->AnimObj.CurFrame; + AnimFrame[i] = pSeq->AnimObj.CurFrame; + FrameChanged[i] = 1; } if (pSeq->FramesLeft == 0) @@ -916,13 +933,15 @@ pBatch->Object.Stamp.origin.x = -SAFE_X; if (pSeq->AnimType == COLOR_ANIM) pSeq->AnimObj.CurCMap = SetRelColorMapIndex ( pSeq->AnimObj.CurCMap, - -pSeq->FramesLeft + (SWORD) (-pSeq->FramesLeft) ); else + { pSeq->AnimObj.CurFrame = SetRelFrameIndex ( pSeq->AnimObj.CurFrame, - -pSeq->FramesLeft + (SWORD) (-pSeq->FramesLeft) ); + } } } @@ -931,15 +950,15 @@ pBatch->Object.Stamp.origin.x = -SAFE_X; if (pSeq->AnimType == COLOR_ANIM) pSeq->AnimObj.CurCMap = SetAbsColorMapIndex (pSeq->AnimObj.CurCMap, - ADPtr->StartIndex + (COUNT) (ADPtr->StartIndex + ((COUNT)TFB_Random () - % ADPtr->NumFrames)); + % ADPtr->NumFrames))); else pSeq->AnimObj.CurFrame = SetAbsFrameIndex (pSeq->AnimObj.CurFrame, - ADPtr->StartIndex + (COUNT) (ADPtr->StartIndex + ((COUNT)TFB_Random () - % ADPtr->NumFrames)); + % ADPtr->NumFrames))); } else if (pSeq->AnimType == COLOR_ANIM) { @@ -986,154 +1005,205 @@ pBatch->Object.Stamp.origin.x = -SAFE_X; && (ADPtr->AnimFlags & WAIT_TALKING) && !(CommData.AlienTransitionDesc.AnimFlags & PAUSE_TALKING)) { - if ((long)TalkAlarm > (long)ElapsedTicks) - TalkAlarm -= (SIZE)ElapsedTicks; - else + BOOLEAN done = 0; + for (i = 0; i < CommData.NumAnimations; i++) + if (ActiveMask & (1L << i) + && CommData.AlienAmbientArray[i].AnimFlags & WAIT_TALKING) + done = 1; + if (! done) { - BYTE AFlags; - SIZE FrameRate; - if (TalkAlarm > 0) - TalkAlarm = 0; - else - TalkAlarm = -1; - - AFlags = ADPtr->AnimFlags; - if (!(AFlags & (TALK_INTRO | TALK_DONE))) + if (ADPtr->StartIndex != TalkBuffer.StartIndex) { - FrameRate = - ADPtr->BaseFrameRate - + ((COUNT)TFB_Random () - % (ADPtr->RandomFrameRate + 1)); - if (TalkAlarm < 0 - || GetFrameIndex (TalkFrame) == - ADPtr->StartIndex) + Change = TRUE; + ResetTalkFrame = SetAbsFrameIndex (CommFrame, + TalkBuffer.StartIndex); + TalkBuffer = CommData.AlienTalkDesc; + } + + if ((long)TalkAlarm > (long)ElapsedTicks) + TalkAlarm -= (SIZE)ElapsedTicks; + else + { + BYTE AFlags; + SIZE FrameRate; + + if (TalkAlarm > 0) + TalkAlarm = 0; + else + TalkAlarm = -1; + + AFlags = ADPtr->AnimFlags; + if (!(AFlags & (TALK_INTRO | TALK_DONE))) { - TalkFrame = SetAbsFrameIndex (CommFrame, - ADPtr->StartIndex + 1 + FrameRate = + ADPtr->BaseFrameRate + ((COUNT)TFB_Random () - % (ADPtr->NumFrames - 1))); - FrameRate += - ADPtr->BaseRestartRate - + ((COUNT)TFB_Random () - % (ADPtr->RandomRestartRate + 1)); + % (ADPtr->RandomFrameRate + 1)); + if (TalkAlarm < 0 + || GetFrameIndex (TalkFrame) == + ADPtr->StartIndex) + { + TalkFrame = SetAbsFrameIndex (CommFrame, + (COUNT) (ADPtr->StartIndex + 1 + + ((COUNT)TFB_Random () + % (ADPtr->NumFrames - 1)))); + FrameRate += + ADPtr->BaseRestartRate + + ((COUNT)TFB_Random () + % (ADPtr->RandomRestartRate + 1)); + } + else + { + TalkFrame = SetAbsFrameIndex (CommFrame, + ADPtr->StartIndex); + if (ADPtr->AnimFlags & PAUSE_TALKING) + { + if (!(CommData.AlienTransitionDesc.AnimFlags + & TALK_DONE)) + { + CommData.AlienTransitionDesc.AnimFlags |= + PAUSE_TALKING; + ADPtr->AnimFlags &= + ~PAUSE_TALKING; + } + else if (CommData.AlienTransitionDesc.NumFrames) + ADPtr->AnimFlags |= + TALK_DONE; + else + ADPtr->AnimFlags &= + ~(WAIT_TALKING | PAUSE_TALKING); + + FrameRate = 0; + } + } } else { - TalkFrame = SetAbsFrameIndex (CommFrame, - ADPtr->StartIndex); - if (ADPtr->AnimFlags & PAUSE_TALKING) + ADPtr = &CommData.AlienTransitionDesc; + if (AFlags & TALK_INTRO) { - if (!(CommData.AlienTransitionDesc.AnimFlags - & TALK_DONE)) + FrameRate = + ADPtr->BaseFrameRate + + ((COUNT)TFB_Random () + % (ADPtr->RandomFrameRate + 1)); + if (TalkAlarm < 0 || TransitionDone) { - CommData.AlienTransitionDesc.AnimFlags |= - PAUSE_TALKING; - ADPtr->AnimFlags &= - ~PAUSE_TALKING; + TalkFrame = SetAbsFrameIndex (CommFrame, + ADPtr->StartIndex); + TransitionDone = 0; } - else if (CommData.AlienTransitionDesc.NumFrames) - ADPtr->AnimFlags |= - TALK_DONE; else - ADPtr->AnimFlags &= - ~(WAIT_TALKING | PAUSE_TALKING); + TalkFrame = IncFrameIndex (TalkFrame); - FrameRate = 0; + if ((BYTE)(GetFrameIndex (TalkFrame) + - ADPtr->StartIndex + 1) == + ADPtr->NumFrames) + { + CommData.AlienTalkDesc.AnimFlags &= ~TALK_INTRO; + TransitionDone = 1; + } + TransitionFrame = TalkFrame; + } + else /* if (AFlags & TALK_DONE) */ + { + FrameRate = + ADPtr->BaseFrameRate + + ((COUNT)TFB_Random () + % (ADPtr->RandomFrameRate + 1)); + if (TalkAlarm < 0) + TalkFrame = SetAbsFrameIndex (CommFrame, + (COUNT) (ADPtr->StartIndex + + ADPtr->NumFrames - 1)); + else + TalkFrame = DecFrameIndex (TalkFrame); + + if (GetFrameIndex (TalkFrame) == + ADPtr->StartIndex) + { + CommData.AlienTalkDesc.AnimFlags &= + ~(PAUSE_TALKING | TALK_DONE); + if (ADPtr->AnimFlags & TALK_INTRO) + CommData.AlienTalkDesc.AnimFlags &= ~WAIT_TALKING; + else + { + ADPtr->AnimFlags |= + PAUSE_TALKING; + ADPtr->AnimFlags &= ~TALK_DONE; + } + FrameRate = 0; + } } } + TalkFrameChanged = TRUE; + + Change = TRUE; + + TalkAlarm = FrameRate; } - else - { - ADPtr = &CommData.AlienTransitionDesc; - if (AFlags & TALK_INTRO) - { - FrameRate = - ADPtr->BaseFrameRate - + ((COUNT)TFB_Random () - % (ADPtr->RandomFrameRate + 1)); - if (TalkAlarm < 0) - TalkFrame = SetAbsFrameIndex (CommFrame, - ADPtr->StartIndex); - else - TalkFrame = IncFrameIndex (TalkFrame); - - if ((BYTE)(GetFrameIndex (TalkFrame) - - ADPtr->StartIndex + 1) == - ADPtr->NumFrames) - CommData.AlienTalkDesc.AnimFlags &= ~TALK_INTRO; - } - else /* if (AFlags & TALK_DONE) */ - { - FrameRate = - ADPtr->BaseFrameRate - + ((COUNT)TFB_Random () - % (ADPtr->RandomFrameRate + 1)); - if (TalkAlarm < 0) - TalkFrame = SetAbsFrameIndex (CommFrame, - ADPtr->StartIndex - + ADPtr->NumFrames - - 1); - else - TalkFrame = DecFrameIndex (TalkFrame); - - if (GetFrameIndex (TalkFrame) == - ADPtr->StartIndex) - { - CommData.AlienTalkDesc.AnimFlags &= - ~(PAUSE_TALKING | TALK_DONE); - if (ADPtr->AnimFlags & TALK_INTRO) - CommData.AlienTalkDesc.AnimFlags &= ~WAIT_TALKING; - else - { - ADPtr->AnimFlags |= - PAUSE_TALKING; - ADPtr->AnimFlags &= ~TALK_DONE; - } - FrameRate = 0; - } - } - } - - Change = TRUE; - --pBatch; - SetPrimNextLink (pBatch, (pBatch - &DisplayArray[0]) + 1); - SetPrimType (pBatch, STAMP_PRIM); -pBatch->Object.Stamp.origin.x = -SAFE_X; - pBatch->Object.Stamp.frame = TalkFrame; - - TalkAlarm = FrameRate; } } - if (Change |= ColorChange) { CONTEXT OldContext; + BOOLEAN CheckSub = 0; OldContext = SetContext (TaskContext); if (ColorChange) { FRAME F; - F = CommData.AlienFrame; CommData.AlienFrame = CommFrame; DrawAlienFrame (TalkFrame, &Sequencer[CommData.NumAnimations - 1]); CommData.AlienFrame = F; ColorChange = FALSE; + ClearSubtitle = FALSE; + CheckSub = 1; } - else + if (Change || ClearSubtitle) { - COUNT StartIndex; - - SetPrimNextLink (&DisplayArray[MAX_ANIMATIONS], END_OF_LIST); - - StartIndex = pBatch - &DisplayArray[0]; - DrawBatch (&DisplayArray[0], StartIndex, 0); + STAMP s; + s.origin.x = -SAFE_X; + s.origin.y = 0; + if (ClearSubtitle) + { + s.frame = CommFrame; + DrawStamp (&s); + } + i = CommData.NumAnimations; + while (i--) + { + if ((ClearSubtitle || FrameChanged[i])) + { + s.frame = AnimFrame[i]; + DrawStamp (&s); + FrameChanged[i] = 0; + } + } + if (ClearSubtitle && TransitionFrame) + { + s.frame = TransitionFrame; + DrawStamp (&s); + } + if (ResetTalkFrame) + { + s.frame = ResetTalkFrame; + DrawStamp (&s); + ResetTalkFrame = NULL; + } + if (TalkFrame && TalkFrameChanged) + { + s.frame = TalkFrame; + DrawStamp (&s); + TalkFrameChanged = FALSE; + } + ClearSubtitle = FALSE; Change = FALSE; + CheckSub = 1; } - if (subtitle_state >= SPACE_SUBTITLE) + if (CheckSub && subtitle_state >= SPACE_SUBTITLE) { TEXT t; @@ -1287,7 +1357,6 @@ AlienTalkSegue (COUNT wait_track) if ((GLOBAL (CurrentActivity) & CHECK_ABORT) || (CommData.AlienTransitionDesc.AnimFlags & TALK_INTRO)) return; - SetSemaphore (GraphicsSem); if (!pCurInputState->Initialized) @@ -1356,7 +1425,6 @@ AlienTalkSegue (COUNT wait_track) LastActivity &= ~CHECK_LOAD; } - if (wait_track == (COUNT)~0 || CommData.AlienTalkDesc.NumFrames) { if (!(CommData.AlienTransitionDesc.AnimFlags & TALK_INTRO)) @@ -1369,7 +1437,6 @@ AlienTalkSegue (COUNT wait_track) CommData.AlienTransitionDesc.AnimFlags &= ~PAUSE_TALKING; if (CommData.AlienTalkDesc.NumFrames) CommData.AlienTalkDesc.AnimFlags |= WAIT_TALKING; - while (CommData.AlienTalkDesc.AnimFlags & TALK_INTRO) { ClearSemaphore (GraphicsSem); @@ -1533,6 +1600,7 @@ DoCommunication (INPUT_STATE InputState, PENCOUNTER_STATE pES) FlushPLUTXForms (); ColorChange = FALSE; + ClearSubtitle = FALSE; FlushColorXForms (); StopMusic (); @@ -1565,7 +1633,7 @@ DoResponsePhrase (RESPONSE_REF R, RESPONSE_FUNC response_func, { STRING locString; - locString = SetAbsStringTableIndex (CommData.ConversationPhrases, R - 1); + locString = SetAbsStringTableIndex (CommData.ConversationPhrases, (COUNT)(R - 1)); pES->response_list[pES->num_responses].response_text.pStr = (UNICODE *)GetStringAddress (locString); pES->response_list[pES->num_responses].response_text.CharCount = @@ -1594,13 +1662,13 @@ HailAlien (void) ES.InputFunc = DoCommunication; hOldIndex = SetResourceIndex (hResIndex); - PlayerFont = CaptureFont (LoadGraphic (PLAYER_FONT)); + PlayerFont = CaptureFont ((FONT_REF)LoadGraphic (PLAYER_FONT)); SetResourceIndex (hOldIndex); CommData.AlienFrame = CaptureDrawable ( LoadGraphicInstance ((RESOURCE)CommData.AlienFrame) ); - CommData.AlienFont = CaptureFont ( + CommData.AlienFont = CaptureFont ((FONT_REF) LoadGraphic ((RESOURCE)CommData.AlienFont) ); CommData.AlienColorMap = CaptureColorMap ( @@ -1971,8 +2039,7 @@ RaceCommunication (void) int do_subtitles (UNICODE *pStr) { - static UNICODE *last_page = NULL;; - + static UNICODE *last_page = NULL; if (pStr == 0) return (subtitle_state = DONE_SUBTITLE); else if (pStr == (void *)~0) @@ -1984,7 +2051,7 @@ do_subtitles (UNICODE *pStr) if (last_page == pStr) return (subtitle_state); subtitle_state = READ_SUBTITLE; - ColorChange = TRUE; + ClearSubtitle = TRUE; // fprintf (stderr, "changed page to: %d\n", cur_page); } last_page = pStr; @@ -2017,7 +2084,7 @@ do_subtitles (UNICODE *pStr) case WAIT_SUBTITLE: { subtitle_state = DONE_SUBTITLE; - ColorChange = TRUE; + ClearSubtitle = TRUE; } case DONE_SUBTITLE: break; diff --git a/sc2/src/sc2code/comm/zoqfot/zoqfotc.c b/sc2/src/sc2code/comm/zoqfot/zoqfotc.c index 6470e8784..0587f0c6d 100644 --- a/sc2/src/sc2code/comm/zoqfot/zoqfotc.c +++ b/sc2/src/sc2code/comm/zoqfot/zoqfotc.c @@ -99,18 +99,25 @@ enum PIK_ALIEN }; +static int LastAlien = FOT_ALIEN; + static void SelectAlienZOQ (void) { + if (LastAlien != ZOQ_ALIEN) + { + LastAlien = ZOQ_ALIEN; CommData.AlienTransitionDesc.StartIndex = FOT_TO_ZOQ; + CommData.AlienTalkDesc.AnimFlags |= TALK_INTRO; CommData.AlienTalkDesc.StartIndex = ZOQ_TALK_INDEX; CommData.AlienTalkDesc.NumFrames = ZOQ_TALK_FRAMES; CommData.AlienAmbientArray[1].AnimFlags &= ~WAIT_TALKING; - CommData.AlienTextTemplate.baseline.x = ZOQ_BASE_X; + CommData.AlienTextTemplate.baseline.x = (SWORD)ZOQ_BASE_X; CommData.AlienTextTemplate.baseline.y = ZOQ_BASE_Y; CommData.AlienTextFColor = ZOQ_FG_COLOR; CommData.AlienTextBColor = ZOQ_BG_COLOR; + } } static void SelectAlienFOT (void) @@ -120,17 +127,29 @@ SelectAlienFOT (void) static void SelectAlienPIK (void) { + if (LastAlien != PIK_ALIEN) + { + LastAlien = PIK_ALIEN; CommData.AlienTransitionDesc.StartIndex = FOT_TO_PIK; + CommData.AlienTalkDesc.AnimFlags |= TALK_INTRO; CommData.AlienTalkDesc.StartIndex = PIK_TALK_INDEX; CommData.AlienTalkDesc.NumFrames = PIK_TALK_FRAMES; CommData.AlienAmbientArray[1].AnimFlags |= WAIT_TALKING; - CommData.AlienTextTemplate.baseline.x = PIK_BASE_X; + CommData.AlienTextTemplate.baseline.x = (SWORD)PIK_BASE_X; CommData.AlienTextTemplate.baseline.y = PIK_BASE_Y; CommData.AlienTextFColor = PIK_FG_COLOR; CommData.AlienTextBColor = PIK_BG_COLOR; + } } +static void +ZFPTalkSegue (COUNT wait_track) +{ + LastAlien = PIK_ALIEN; + SelectAlienZOQ (); + AlienTalkSegue (wait_track); +} static void ExitConversation (RESPONSE_REF R) { @@ -140,13 +159,13 @@ ExitConversation (RESPONSE_REF R) { NPCPhrase_cb (GOODBYE_HOME0, &SelectAlienZOQ); NPCPhrase_cb (GOODBYE_HOME1, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); } else if (PLAYER_SAID (R, decide_later)) { NPCPhrase_cb (PLEASE_HURRY0, &SelectAlienZOQ); NPCPhrase_cb (PLEASE_HURRY1, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); } else if (PLAYER_SAID (R, valuable_info)) { @@ -154,7 +173,7 @@ ExitConversation (RESPONSE_REF R) NPCPhrase_cb (GOODBYE1, &SelectAlienPIK); NPCPhrase_cb (GOODBYE2, &SelectAlienZOQ); NPCPhrase_cb (GOODBYE3, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); } else if (PLAYER_SAID (R, how_can_i_help)) { @@ -166,7 +185,7 @@ ExitConversation (RESPONSE_REF R) NPCPhrase_cb (EMMISSARIES5, &SelectAlienPIK); NPCPhrase_cb (EMMISSARIES6, &SelectAlienZOQ); NPCPhrase_cb (EMMISSARIES7, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); } else if (PLAYER_SAID (R, sure)) { @@ -176,7 +195,7 @@ ExitConversation (RESPONSE_REF R) NPCPhrase_cb (WE_ALLY3, &SelectAlienPIK); NPCPhrase_cb (WE_ALLY4, &SelectAlienZOQ); NPCPhrase_cb (WE_ALLY5, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); ActivateStarShip (ZOQFOTPIK_SHIP, 0); AddEvent (RELATIVE_EVENT, 3, 0, 0, ZOQFOT_DISTRESS_EVENT); SET_GAME_STATE (ZOQFOT_HOME_VISITS, 0); @@ -187,7 +206,7 @@ ExitConversation (RESPONSE_REF R) NPCPhrase_cb (SEE_TOLD_YOU1, &SelectAlienPIK); NPCPhrase_cb (SEE_TOLD_YOU2, &SelectAlienZOQ); NPCPhrase_cb (SEE_TOLD_YOU3, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); SET_GAME_STATE (ZOQFOT_HOSTILE, 1); SET_GAME_STATE (ZOQFOT_HOME_VISITS, 0); @@ -197,7 +216,7 @@ ExitConversation (RESPONSE_REF R) { NPCPhrase_cb (WE_ENEMIES0, &SelectAlienZOQ); NPCPhrase_cb (WE_ENEMIES1, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); SET_GAME_STATE (ZOQFOT_HOME_VISITS, 0); SET_GAME_STATE (ZOQFOT_HOSTILE, 1); @@ -214,7 +233,7 @@ FormAlliance (RESPONSE_REF R) NPCPhrase_cb (ALLY_WITH_US3, &SelectAlienPIK); NPCPhrase_cb (ALLY_WITH_US4, &SelectAlienZOQ); NPCPhrase_cb (ALLY_WITH_US5, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); Response (sure, ExitConversation); Response (never, ExitConversation); @@ -232,7 +251,7 @@ ZoqFotIntro (RESPONSE_REF R) NPCPhrase_cb (WE_GLAD3, &SelectAlienPIK); NPCPhrase_cb (WE_GLAD4, &SelectAlienZOQ); NPCPhrase_cb (WE_GLAD5, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); DISABLE_PHRASE (we_are_vindicator0); } @@ -252,7 +271,7 @@ ZoqFotIntro (RESPONSE_REF R) NPCPhrase_cb (YEARS_AGO11, &SelectAlienPIK); NPCPhrase_cb (YEARS_AGO12, &SelectAlienZOQ); NPCPhrase_cb (YEARS_AGO13, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); DISABLE_PHRASE (your_race); } @@ -264,7 +283,7 @@ ZoqFotIntro (RESPONSE_REF R) NPCPhrase_cb (TRAVELED_FAR3, &SelectAlienPIK); NPCPhrase_cb (TRAVELED_FAR4, &SelectAlienZOQ); NPCPhrase_cb (TRAVELED_FAR5, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); DISABLE_PHRASE (where_from); } @@ -282,7 +301,7 @@ ZoqFotIntro (RESPONSE_REF R) NPCPhrase_cb (UNDER_ATTACK9, &SelectAlienPIK); NPCPhrase_cb (UNDER_ATTACK10, &SelectAlienZOQ); NPCPhrase_cb (UNDER_ATTACK11, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); DISABLE_PHRASE (what_emergency); } @@ -294,7 +313,7 @@ ZoqFotIntro (RESPONSE_REF R) NPCPhrase_cb (NOT_HELPFUL3, &SelectAlienPIK); NPCPhrase_cb (NOT_HELPFUL4, &SelectAlienZOQ); NPCPhrase_cb (NOT_HELPFUL5, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); DISABLE_PHRASE (tough_luck); } @@ -304,7 +323,7 @@ ZoqFotIntro (RESPONSE_REF R) NPCPhrase_cb (LOOK_LIKE1, &SelectAlienPIK); NPCPhrase_cb (LOOK_LIKE2, &SelectAlienZOQ); NPCPhrase_cb (LOOK_LIKE3, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); DISABLE_PHRASE (what_look_like); } @@ -355,7 +374,7 @@ AquaintZoqFot (RESPONSE_REF R) NPCPhrase_cb (HE_IS5, &SelectAlienPIK); NPCPhrase_cb (HE_IS6, &SelectAlienZOQ); NPCPhrase_cb (HE_IS7, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); DISABLE_PHRASE (which_fot); } @@ -369,7 +388,7 @@ AquaintZoqFot (RESPONSE_REF R) NPCPhrase_cb (TOLD_YOU5, &SelectAlienPIK); NPCPhrase_cb (TOLD_YOU6, &SelectAlienZOQ); NPCPhrase_cb (TOLD_YOU7, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); DISABLE_PHRASE (quiet_toadies); } @@ -411,7 +430,7 @@ ZoqFotInfo (RESPONSE_REF R) { NPCPhrase_cb (WHAT_SPECIFIC_INFO0, &SelectAlienZOQ); NPCPhrase_cb (WHAT_SPECIFIC_INFO1, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); } else if (PLAYER_SAID (R, what_about_others)) { @@ -429,7 +448,7 @@ ZoqFotInfo (RESPONSE_REF R) NPCPhrase_cb (ABOUT_OTHERS11, &SelectAlienPIK); NPCPhrase_cb (ABOUT_OTHERS12, &SelectAlienZOQ); NPCPhrase_cb (ABOUT_OTHERS13, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); DISABLE_PHRASE (what_about_others); } @@ -443,7 +462,7 @@ ZoqFotInfo (RESPONSE_REF R) NPCPhrase_cb (ABOUT_ZEBRANKY5, &SelectAlienPIK); NPCPhrase_cb (ABOUT_ZEBRANKY6, &SelectAlienZOQ); NPCPhrase_cb (ABOUT_ZEBRANKY7, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); DISABLE_PHRASE (what_about_zebranky); } @@ -455,7 +474,7 @@ ZoqFotInfo (RESPONSE_REF R) NPCPhrase_cb (ABOUT_STINGER3, &SelectAlienPIK); NPCPhrase_cb (ABOUT_STINGER4, &SelectAlienZOQ); NPCPhrase_cb (ABOUT_STINGER5, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); DISABLE_PHRASE (what_about_stinger); } @@ -463,7 +482,7 @@ ZoqFotInfo (RESPONSE_REF R) { NPCPhrase_cb (ABOUT_GUY0, &SelectAlienZOQ); NPCPhrase_cb (ABOUT_GUY1, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); DISABLE_PHRASE (what_about_guy_in_back); } @@ -481,7 +500,7 @@ ZoqFotInfo (RESPONSE_REF R) NPCPhrase_cb (ABOUT_PAST9, &SelectAlienPIK); NPCPhrase_cb (ABOUT_PAST10, &SelectAlienZOQ); NPCPhrase_cb (ABOUT_PAST11, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); DISABLE_PHRASE (what_about_past); } @@ -535,7 +554,7 @@ ZoqFotHome (RESPONSE_REF R) NPCPhrase_cb (GENERAL_INFO_11, &SelectAlienPIK); NPCPhrase_cb (GENERAL_INFO_12, &SelectAlienZOQ); NPCPhrase_cb (GENERAL_INFO_13, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); break; case 1: NPCPhrase_cb (GENERAL_INFO_20, &SelectAlienZOQ); @@ -546,7 +565,7 @@ ZoqFotHome (RESPONSE_REF R) NPCPhrase_cb (GENERAL_INFO_25, &SelectAlienPIK); NPCPhrase_cb (GENERAL_INFO_26, &SelectAlienZOQ); NPCPhrase_cb (GENERAL_INFO_27, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); break; case 2: NPCPhrase_cb (GENERAL_INFO_30, &SelectAlienZOQ); @@ -555,7 +574,7 @@ ZoqFotHome (RESPONSE_REF R) NPCPhrase_cb (GENERAL_INFO_33, &SelectAlienPIK); NPCPhrase_cb (GENERAL_INFO_34, &SelectAlienZOQ); NPCPhrase_cb (GENERAL_INFO_35, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); break; case 3: NPCPhrase_cb (GENERAL_INFO_40, &SelectAlienZOQ); @@ -570,7 +589,7 @@ ZoqFotHome (RESPONSE_REF R) NPCPhrase_cb (GENERAL_INFO_49, &SelectAlienPIK); NPCPhrase_cb (GENERAL_INFO_410, &SelectAlienZOQ); NPCPhrase_cb (GENERAL_INFO_411, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); --NumVisits; break; } @@ -603,7 +622,7 @@ ZoqFotHome (RESPONSE_REF R) NPCPhrase_cb (KOHRAH_FRENZY9, &SelectAlienPIK); NPCPhrase_cb (KOHRAH_FRENZY10, &SelectAlienZOQ); NPCPhrase_cb (KOHRAH_FRENZY11, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); KnowMask = KNOW_ALL; } @@ -624,7 +643,7 @@ ZoqFotHome (RESPONSE_REF R) NPCPhrase_cb (UTWIG_DELAY11, &SelectAlienPIK); NPCPhrase_cb (UTWIG_DELAY12, &SelectAlienZOQ); NPCPhrase_cb (UTWIG_DELAY13, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); KnowMask |= UTWIG_BUY_TIME; } @@ -646,7 +665,7 @@ ZoqFotHome (RESPONSE_REF R) NPCPhrase_cb (URQUAN_NEARLY_GONE3, &SelectAlienPIK); NPCPhrase_cb (URQUAN_NEARLY_GONE4, &SelectAlienZOQ); NPCPhrase_cb (URQUAN_NEARLY_GONE5, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); KnowMask |= KOHR_AH_WIN | URQUAN_LOSE; } @@ -662,7 +681,7 @@ ZoqFotHome (RESPONSE_REF R) NPCPhrase_cb (KOHRAH_WINNING7, &SelectAlienPIK); NPCPhrase_cb (KOHRAH_WINNING8, &SelectAlienZOQ); NPCPhrase_cb (KOHRAH_WINNING9, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); KnowMask |= KOHR_AH_WIN; } @@ -670,7 +689,7 @@ ZoqFotHome (RESPONSE_REF R) { NPCPhrase_cb (NO_WAR_NEWS0, &SelectAlienZOQ); NPCPhrase_cb (NO_WAR_NEWS1, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); } } SET_GAME_STATE (ZOQFOT_KNOW_MASK, KnowMask); @@ -689,7 +708,7 @@ ZoqFotHome (RESPONSE_REF R) NPCPhrase_cb (GOOD7, &SelectAlienPIK); NPCPhrase_cb (GOOD8, &SelectAlienZOQ); NPCPhrase_cb (GOOD9, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); ActivateStarShip (ZOQFOTPIK_SHIP, 0); AddEvent (RELATIVE_EVENT, 3, 0, 0, ZOQFOT_DISTRESS_EVENT); @@ -697,7 +716,7 @@ ZoqFotHome (RESPONSE_REF R) else if (PLAYER_SAID (R, enough_info)) { NPCPhrase_cb (OK_ENOUGH_INFO, &SelectAlienZOQ); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); } if (PHRASE_ENABLED (whats_up_homeworld)) @@ -735,7 +754,7 @@ Intro (void) NPCPhrase_cb (OUT_TAKES11, &SelectAlienPIK); NPCPhrase_cb (OUT_TAKES12, &SelectAlienZOQ); NPCPhrase_cb (OUT_TAKES13, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); #else /* YET */ NPCPhrase_cb (WE_ARE0, &SelectAlienZOQ); NPCPhrase_cb (WE_ARE1, &SelectAlienPIK); @@ -749,7 +768,7 @@ Intro (void) NPCPhrase_cb (SCOUT_HELLO1, &SelectAlienPIK); NPCPhrase_cb (SCOUT_HELLO2, &SelectAlienZOQ); NPCPhrase_cb (SCOUT_HELLO3, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); #endif /* NOT_YET */ SET_GAME_STATE (BATTLE_SEGUE, 0); goto ExitIntro; @@ -763,7 +782,7 @@ Intro (void) case 0: NPCPhrase_cb (HOSTILE_HELLO_10, &SelectAlienZOQ); NPCPhrase_cb (HOSTILE_HELLO_11, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); break; case 1: NPCPhrase_cb (HOSTILE_HELLO_20, &SelectAlienZOQ); @@ -772,17 +791,17 @@ Intro (void) NPCPhrase_cb (HOSTILE_HELLO_23, &SelectAlienPIK); NPCPhrase_cb (HOSTILE_HELLO_24, &SelectAlienZOQ); NPCPhrase_cb (HOSTILE_HELLO_25, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); break; case 2: NPCPhrase_cb (HOSTILE_HELLO_30, &SelectAlienZOQ); NPCPhrase_cb (HOSTILE_HELLO_31, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); break; case 3: NPCPhrase_cb (HOSTILE_HELLO_40, &SelectAlienZOQ); NPCPhrase_cb (HOSTILE_HELLO_41, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); --NumVisits; break; } @@ -818,7 +837,7 @@ Intro (void) NPCPhrase_cb (SCOUT_HELLO3, &SelectAlienPIK); } - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); AquaintZoqFot (0); } @@ -839,7 +858,7 @@ Intro (void) NPCPhrase_cb (THANKS_FOR_RESCUE9, &SelectAlienPIK); NPCPhrase_cb (THANKS_FOR_RESCUE10, &SelectAlienZOQ); NPCPhrase_cb (THANKS_FOR_RESCUE11, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); SET_GAME_STATE (ZOQFOT_DISTRESS, 0); ActivateStarShip (ZOQFOTPIK_SHIP, MAX_ZFP_SHIPS); @@ -865,7 +884,7 @@ Intro (void) --NumVisits; break; } - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); } else { @@ -876,7 +895,7 @@ Intro (void) NPCPhrase_cb (ALLIED_HOME_HELLO_11, &SelectAlienPIK); NPCPhrase_cb (ALLIED_HOME_HELLO_12, &SelectAlienZOQ); NPCPhrase_cb (ALLIED_HOME_HELLO_13, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); break; case 1: NPCPhrase_cb (ALLIED_HOME_HELLO_20, &SelectAlienZOQ); @@ -887,17 +906,17 @@ Intro (void) NPCPhrase_cb (ALLIED_HOME_HELLO_25, &SelectAlienPIK); NPCPhrase_cb (ALLIED_HOME_HELLO_26, &SelectAlienZOQ); NPCPhrase_cb (ALLIED_HOME_HELLO_27, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); break; case 2: NPCPhrase_cb (ALLIED_HOME_HELLO_30, &SelectAlienZOQ); NPCPhrase_cb (ALLIED_HOME_HELLO_31, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); break; case 3: NPCPhrase_cb (ALLIED_HOME_HELLO_40, &SelectAlienZOQ); NPCPhrase_cb (ALLIED_HOME_HELLO_41, &SelectAlienPIK); - AlienTalkSegue ((COUNT)~0); + ZFPTalkSegue ((COUNT)~0); --NumVisits; break; }