static void RealizeMistake (RESPONSE_REF R) { (void) R; // ignored NPCPhrase (DGRUNTI); SET_GAME_STATE (SHOFIXTI_STACK1, 0); SET_GAME_STATE (SHOFIXTI_STACK3, 0); SET_GAME_STATE (SHOFIXTI_STACK2, 3); { UNICODE buf[ALLIANCE_NAME_BUFSIZE]; GetAllianceName (buf, name_1); construct_response ( shared_phrase_buf, i_am_captain0, GLOBAL_SIS (CommanderName), i_am_captain1, buf, i_am_captain2, GLOBAL_SIS (ShipName), i_am_captain3, (UNICODE*)NULL); } DoResponsePhrase (i_am_captain0, ExplainDefeat, shared_phrase_buf); Response (i_am_nice, ExplainDefeat); Response (i_am_guy, ExplainDefeat); }
static void yack0_respond (void) { switch (GET_GAME_STATE (MELNORME_YACK_STACK0)) { case 0: { UNICODE buf[ALLIANCE_NAME_BUFSIZE]; GetAllianceName (buf, name_1); construct_response ( shared_phrase_buf, we_are_from_alliance0, buf, (RESPONSE_REF)-1 ); DoResponsePhrase (we_are_from_alliance0, DoFirstMeeting, shared_phrase_buf); break; } case 1: Response (how_know, DoFirstMeeting); break; } }
static void AquaintZoqFot (RESPONSE_REF R) { if (PLAYER_SAID (R, which_fot)) { NPCPhrase_cb (HE_IS0, &SelectAlienZOQ); NPCPhrase_cb (HE_IS1, &SelectAlienPIK); NPCPhrase_cb (HE_IS2, &SelectAlienZOQ); NPCPhrase_cb (HE_IS3, &SelectAlienPIK); NPCPhrase_cb (HE_IS4, &SelectAlienZOQ); NPCPhrase_cb (HE_IS5, &SelectAlienPIK); NPCPhrase_cb (HE_IS6, &SelectAlienZOQ); NPCPhrase_cb (HE_IS7, &SelectAlienPIK); ZFPTalkSegue ((COUNT)~0); DISABLE_PHRASE (which_fot); } else if (PLAYER_SAID (R, quiet_toadies)) { NPCPhrase_cb (TOLD_YOU0, &SelectAlienZOQ); NPCPhrase_cb (TOLD_YOU1, &SelectAlienPIK); NPCPhrase_cb (TOLD_YOU2, &SelectAlienZOQ); NPCPhrase_cb (TOLD_YOU3, &SelectAlienPIK); NPCPhrase_cb (TOLD_YOU4, &SelectAlienZOQ); NPCPhrase_cb (TOLD_YOU5, &SelectAlienPIK); NPCPhrase_cb (TOLD_YOU6, &SelectAlienZOQ); NPCPhrase_cb (TOLD_YOU7, &SelectAlienPIK); ZFPTalkSegue ((COUNT)~0); DISABLE_PHRASE (quiet_toadies); } if (PHRASE_ENABLED (we_are_vindicator0)) { UNICODE buf[ALLIANCE_NAME_BUFSIZE]; GetAllianceName (buf, name_1); construct_response ( shared_phrase_buf, we_are_vindicator0, buf, we_are_vindicator1, GLOBAL_SIS (ShipName), we_are_vindicator2, (UNICODE*)NULL); } if (PHRASE_ENABLED (which_fot)) Response (which_fot, AquaintZoqFot); if (PHRASE_ENABLED (we_are_vindicator0)) DoResponsePhrase (we_are_vindicator0, ZoqFotIntro, shared_phrase_buf); if (PHRASE_ENABLED (quiet_toadies)) Response (quiet_toadies, AquaintZoqFot); Response (all_very_interesting, ExitConversation); Response (valuable_info, ExitConversation); }
static void DiscussConquer (RESPONSE_REF R) { if (PLAYER_SAID (R, we_conquer)) { NPCPhrase (WHY_CONQUER); DISABLE_PHRASE (we_conquer); } else if (PLAYER_SAID (R, conquer_because_1)) { #if 0 NPCPhrase (NOT_CONQUER_10); NPCPhrase (GLOBAL_ALLIANCE_NAME + name_1); NPCPhrase (NOT_CONQUER_11); NPCPhrase (GLOBAL_ALLIANCE_NAME + name_1); NPCPhrase (NOT_CONQUER_12); #endif NPCPhrase (NOT_CONQUER_1); DISABLE_PHRASE (conquer_because_1); } else if (PLAYER_SAID (R, conquer_because_2)) { NPCPhrase (NOT_CONQUER_2); DISABLE_PHRASE (conquer_because_2); } if (PHRASE_ENABLED (conquer_because_1)) { #if 0 UNICODE buf[ALLIANCE_NAME_BUFSIZE]; GetAllianceName (buf, name_1); construct_response ( shared_phrase_buf, conquer_because_1, buf, (RESPONSE_REF)-1); DoResponsePhrase (conquer_because_1, DiscussConquer, shared_phrase_buf); #endif Response(conquer_because_1, DiscussConquer); } if (PHRASE_ENABLED (conquer_because_2)) Response (conquer_because_2, DiscussConquer); Response (must_conquer, ExitConversation); Response (no_conquest, PkunkHome); }
static void NeutralUtwig (RESPONSE_REF R) { BYTE i, LastStack; RESPONSE_REF pStr[4]; LastStack = 0; pStr[0] = pStr[1] = pStr[2] = pStr[3] = 0; if (PLAYER_SAID (R, we_are_vindicator0)) { NPCPhrase (WOULD_BE_HAPPY_BUT); SET_GAME_STATE (UTWIG_STACK1, 1); } else if (PLAYER_SAID (R, why_sad)) { NPCPhrase (ULTRON_BROKE); SET_GAME_STATE (UTWIG_STACK1, 2); } else if (PLAYER_SAID (R, what_ultron)) { NPCPhrase (GLORIOUS_ULTRON); SET_GAME_STATE (UTWIG_STACK1, 3); } else if (PLAYER_SAID (R, dont_be_babies)) { NPCPhrase (MOCK_OUR_PAIN); setSegue (Segue_hostile); SET_GAME_STATE (UTWIG_STACK1, 4); SET_GAME_STATE (UTWIG_HOSTILE, 1); SET_GAME_STATE (UTWIG_INFO, 0); SET_GAME_STATE (UTWIG_HOME_VISITS, 0); SET_GAME_STATE (UTWIG_VISITS, 0); SET_GAME_STATE (BOMB_VISITS, 0); return; } else if (PLAYER_SAID (R, real_sorry_about_ultron)) { NPCPhrase (APPRECIATE_SYMPATHY); SET_GAME_STATE (UTWIG_STACK1, 4); return; } else if (PLAYER_SAID (R, what_about_you_1)) { NPCPhrase (ABOUT_US_1); LastStack = 2; SET_GAME_STATE (UTWIG_WAR_NEWS, 1); } else if (PLAYER_SAID (R, what_about_you_2)) { NPCPhrase (ABOUT_US_2); LastStack = 2; StartSphereTracking (SUPOX_SHIP); SET_GAME_STATE (UTWIG_WAR_NEWS, 2); } else if (PLAYER_SAID (R, what_about_you_3)) { NPCPhrase (ABOUT_US_3); SET_GAME_STATE (UTWIG_WAR_NEWS, 3); } else if (PLAYER_SAID (R, what_about_urquan_1)) { NPCPhrase (ABOUT_URQUAN_1); LastStack = 3; SET_GAME_STATE (UTWIG_STACK2, 1); } else if (PLAYER_SAID (R, what_about_urquan_2)) { NPCPhrase (ABOUT_URQUAN_2); SET_GAME_STATE (UTWIG_STACK2, 2); } switch (GET_GAME_STATE (UTWIG_STACK1)) { case 0: { UNICODE buf[ALLIANCE_NAME_BUFSIZE]; GetAllianceName (buf, name_1); construct_response ( shared_phrase_buf, we_are_vindicator0, GLOBAL_SIS (CommanderName), we_are_vindicator1, buf, we_are_vindicator2, (UNICODE*)NULL); } pStr[0] = we_are_vindicator0; break; case 1: pStr[0] = why_sad; break; case 2: pStr[0] = what_ultron; break; case 3: pStr[0] = dont_be_babies; pStr[1] = real_sorry_about_ultron; break; } switch (GET_GAME_STATE (UTWIG_WAR_NEWS)) { case 0: pStr[2] = what_about_you_1; break; case 1: pStr[2] = what_about_you_2; break; case 2: pStr[2] = what_about_you_3; break; } switch (GET_GAME_STATE (UTWIG_STACK2)) { case 0: pStr[2] = what_about_urquan_1; break; case 1: pStr[2] = what_about_urquan_2; break; } if (pStr[LastStack]) { if (pStr[LastStack] != we_are_vindicator0) Response (pStr[LastStack], NeutralUtwig); else DoResponsePhrase (pStr[LastStack], NeutralUtwig, shared_phrase_buf); } for (i = 0; i < 4; ++i) { if (i != LastStack && pStr[i]) { if (pStr[i] != we_are_vindicator0) Response (pStr[i], NeutralUtwig); else DoResponsePhrase (pStr[i], NeutralUtwig, shared_phrase_buf); } } if (GET_GAME_STATE (ULTRON_CONDITION)) Response (got_ultron, ExitConversation); Response (bye_neutral, ExitConversation); }
static void NeutralSupox (RESPONSE_REF R) { BYTE i, LastStack, NumVisits; RESPONSE_REF pStr[3]; LastStack = 0; pStr[0] = pStr[1] = pStr[2] = 0; if (PLAYER_SAID (R, i_am0)) { NPCPhrase (WE_ARE_SUPOX); SET_GAME_STATE (SUPOX_STACK1, 1); DISABLE_PHRASE (i_am0); } else if (PLAYER_SAID (R, my_ship0)) { NPCPhrase (OUR_SHIP); SET_GAME_STATE (SUPOX_STACK1, 2); DISABLE_PHRASE (my_ship0); } else if (PLAYER_SAID (R, from_alliance0)) { NPCPhrase (FROM_SUPOX); SET_GAME_STATE (SUPOX_STACK1, 3); DISABLE_PHRASE (from_alliance0); } else if (PLAYER_SAID (R, are_you_copying)) { NPCPhrase (YEAH_SORRY); SET_GAME_STATE (SUPOX_STACK1, 4); } else if (PLAYER_SAID (R, why_copy)) { NPCPhrase (SYMBIOTS); SET_GAME_STATE (SUPOX_STACK1, 5); } else if (PLAYER_SAID (R, tell_us_of_your_species)) { NPCPhrase (OUR_SPECIES); LastStack = 1; SET_GAME_STATE (SUPOX_STACK2, 1); } else if (PLAYER_SAID (R, plants_arent_intelligent)) { NPCPhrase (PROVES_WERE_SPECIAL); SET_GAME_STATE (SUPOX_STACK2, 2); } else if (PLAYER_SAID (R, anyone_around_here)) { NPCPhrase (UTWIG_NEARBY); LastStack = 2; SET_GAME_STATE (SUPOX_WAR_NEWS, 1); ActivateStarShip (UTWIG_SHIP, SPHERE_TRACKING); } else if (PLAYER_SAID (R, what_relation_to_utwig)) { NPCPhrase (UTWIG_ALLIES); LastStack = 2; SET_GAME_STATE (SUPOX_WAR_NEWS, 1); } else if (PLAYER_SAID (R, whats_wrong_with_utwig)) { NPCPhrase (BROKE_ULTRON); LastStack = 2; SET_GAME_STATE (SUPOX_WAR_NEWS, 2); } else if (PLAYER_SAID (R, whats_ultron)) { NPCPhrase (TAKE_ULTRON); SET_GAME_STATE (SUPOX_WAR_NEWS, 0); SET_GAME_STATE (ULTRON_CONDITION, 1); Response (what_do_i_do_now, ExitConversation); Response (thanks_now_we_eat_you, ExitConversation); return; } else if (PLAYER_SAID (R, got_fixed_ultron)) { NPCPhrase (GOOD_GIVE_TO_UTWIG); SET_GAME_STATE (SUPOX_ULTRON_HELP, 1); } else if (PLAYER_SAID (R, look_i_repaired_lots)) { NPCPhrase (ALMOST_THERE); SET_GAME_STATE (SUPOX_ULTRON_HELP, 1); } else if (PLAYER_SAID (R, look_i_slightly_repaired)) { NPCPhrase (GREAT_DO_MORE); SET_GAME_STATE (SUPOX_ULTRON_HELP, 1); } else if (PLAYER_SAID (R, where_get_repairs)) { NPCPhrase (ANCIENT_RHYME); SET_GAME_STATE (SUPOX_ULTRON_HELP, 1); } switch (GET_GAME_STATE (SUPOX_STACK2)) { case 0: pStr[1] = tell_us_of_your_species; break; case 1: pStr[1] = plants_arent_intelligent; break; } switch (GET_GAME_STATE (SUPOX_STACK1)) { case 0: construct_response (shared_phrase_buf, i_am0, GLOBAL_SIS (CommanderName), i_am1, (UNICODE*)NULL); pStr[0] = i_am0; pStr[1] = 0; break; case 1: construct_response (shared_phrase_buf, my_ship0, GLOBAL_SIS (ShipName), my_ship1, (UNICODE*)NULL); pStr[0] = my_ship0; pStr[1] = 0; break; case 2: { UNICODE buf[ALLIANCE_NAME_BUFSIZE]; GetAllianceName (buf, name_1); construct_response ( shared_phrase_buf, from_alliance0, buf, from_alliance1, (UNICODE*)NULL); } pStr[0] = from_alliance0; pStr[1] = 0; break; case 3: pStr[0] = are_you_copying; pStr[1] = 0; break; case 4: pStr[0] = why_copy; pStr[1] = 0; break; } NumVisits = GET_GAME_STATE (ULTRON_CONDITION); if (NumVisits == 0) { switch (GET_GAME_STATE (SUPOX_WAR_NEWS)) { case 0: if (GET_GAME_STATE (UTWIG_VISITS) || GET_GAME_STATE (UTWIG_HOME_VISITS) || GET_GAME_STATE (BOMB_VISITS)) pStr[2] = what_relation_to_utwig; else pStr[2] = anyone_around_here; break; case 1: pStr[2] = whats_wrong_with_utwig; break; case 2: pStr[2] = whats_ultron; break; } } if (pStr[LastStack]) { if (LastStack != 0 || GET_GAME_STATE (SUPOX_STACK1) > 2) Response (pStr[LastStack], NeutralSupox); else DoResponsePhrase (pStr[LastStack], NeutralSupox, shared_phrase_buf); } for (i = 0; i < 3; ++i) { if (i != LastStack && pStr[i]) { if (i != 0 || GET_GAME_STATE (SUPOX_STACK1) > 2) Response (pStr[i], NeutralSupox); else DoResponsePhrase (pStr[i], NeutralSupox, shared_phrase_buf); } } if (!GET_GAME_STATE (SUPOX_ULTRON_HELP)) { switch (NumVisits) { case 1: Response (where_get_repairs, NeutralSupox); break; case 2: Response (look_i_slightly_repaired, NeutralSupox); break; case 3: Response (look_i_repaired_lots, NeutralSupox); break; case 4: Response (got_fixed_ultron, NeutralSupox); break; } } Response (bye_neutral, ExitConversation); }
static void YehatSpace (RESPONSE_REF R) { BYTE i, LastStack; RESPONSE_REF pStr[3]; LastStack = 0; pStr[0] = pStr[1] = pStr[2] = 0; if (PLAYER_SAID (R, whats_up_space_1) || PLAYER_SAID (R, whats_up_space_2) || PLAYER_SAID (R, whats_up_space_3) || PLAYER_SAID (R, whats_up_space_4)) { BYTE NumVisits; NumVisits = GET_GAME_STATE (YEHAT_REBEL_INFO); switch (NumVisits++) { case 0: NPCPhrase (GENERAL_INFO_SPACE_1); break; case 1: NPCPhrase (GENERAL_INFO_SPACE_2); break; case 2: NPCPhrase (GENERAL_INFO_SPACE_3); break; case 3: NPCPhrase (GENERAL_INFO_SPACE_4); --NumVisits; break; } SET_GAME_STATE (YEHAT_REBEL_INFO, NumVisits); DISABLE_PHRASE (whats_up_space_1); } else if (PLAYER_SAID (R, i_demand_you_ally_space0)) { NPCPhrase (WE_CANNOT_1); LastStack = 2; SET_GAME_STATE (NO_YEHAT_ALLY_SPACE, 1); } else if (PLAYER_SAID (R, obligation)) { NPCPhrase (WE_CANNOT_2); SET_GAME_STATE (BATTLE_SEGUE, 0); SET_GAME_STATE (NO_YEHAT_ALLY_SPACE, 2); return; } else if (PLAYER_SAID (R, at_least_help_us_space)) { NPCPhrase (SORRY_CANNOT); LastStack = 1; SET_GAME_STATE (NO_YEHAT_HELP_SPACE, 1); } else if (PLAYER_SAID (R, dishonor)) { NPCPhrase (HERES_A_HINT); SET_GAME_STATE (NO_YEHAT_HELP_SPACE, 2); } else if (PLAYER_SAID (R, what_about_pkunk_royalist)) { if (GET_GAME_STATE (YEHAT_ABSORBED_PKUNK)) NPCPhrase (PKUNK_ABSORBED_ROYALIST); else NPCPhrase (HATE_PKUNK_ROYALIST); SET_GAME_STATE (YEHAT_ROYALIST_TOLD_PKUNK, 1); } // SET_FUNCPTR (&PtrDesc, YehatSpace); if (PHRASE_ENABLED (whats_up_space_1)) { switch (GET_GAME_STATE (YEHAT_REBEL_INFO)) { case 0: pStr[0] = whats_up_space_1; break; case 1: pStr[0] = whats_up_space_2; break; case 2: pStr[0] = whats_up_space_3; break; case 3: pStr[0] = whats_up_space_4; break; } } switch (GET_GAME_STATE (NO_YEHAT_HELP_SPACE)) { case 0: pStr[1] = at_least_help_us_space; break; case 1: pStr[1] = dishonor; break; } switch (GET_GAME_STATE (NO_YEHAT_ALLY_SPACE)) { case 0: { UNICODE buf[ALLIANCE_NAME_BUFSIZE]; GetAllianceName (buf, name_1); construct_response ( shared_phrase_buf, i_demand_you_ally_space0, GLOBAL_SIS (CommanderName), i_demand_you_ally_space1, GLOBAL_SIS (ShipName), i_demand_you_ally_space2, buf, i_demand_you_ally_space3, (UNICODE*)NULL); pStr[2] = i_demand_you_ally_space0; break; } case 1: pStr[2] = obligation; break; } if (pStr[LastStack]) { if (pStr[LastStack] != i_demand_you_ally_space0) Response (pStr[LastStack], YehatSpace); else DoResponsePhrase (pStr[LastStack], YehatSpace, shared_phrase_buf); } for (i = 0; i < 3; ++i) { if (i != LastStack && pStr[i]) { if (pStr[i] != i_demand_you_ally_space0) Response (pStr[i], YehatSpace); else DoResponsePhrase (pStr[i], YehatSpace, shared_phrase_buf); } } if (!GET_GAME_STATE (YEHAT_ROYALIST_TOLD_PKUNK) && GET_GAME_STATE (PKUNK_VISITS) && GET_GAME_STATE (PKUNK_HOME_VISITS)) Response (what_about_pkunk_royalist, YehatSpace); if (GET_GAME_STATE (SHOFIXTI_VISITS)) { switch (GET_GAME_STATE (YEHAT_REBEL_TOLD_PKUNK)) { case 0: Response (shofixti_alive_1, StartRevolt); break; case 1: Response (shofixti_alive_2, StartRevolt); break; } } Response (bye_space, ExitConversation); }
static void YehatHome (RESPONSE_REF R) { if (PLAYER_SAID (R, whats_up_homeworld)) { BYTE NumVisits; NumVisits = GET_GAME_STATE (YEHAT_ROYALIST_INFO); switch (NumVisits++) { case 0: NPCPhrase (GENERAL_INFO_HOMEWORLD_1); break; case 1: NPCPhrase (GENERAL_INFO_HOMEWORLD_2); --NumVisits; break; } SET_GAME_STATE (YEHAT_ROYALIST_INFO, NumVisits); DISABLE_PHRASE (whats_up_homeworld); } else if (PLAYER_SAID (R, at_least_help_us_homeworld)) { NPCPhrase (NO_HELP_ENEMY); SET_GAME_STATE (NO_YEHAT_HELP_HOME, 1); } else if (PLAYER_SAID (R, give_info)) { NPCPhrase (NO_INFO_FOR_ENEMY); SET_GAME_STATE (NO_YEHAT_INFO, 1); } else if (PLAYER_SAID (R, what_about_pkunk_royalist)) { if (GET_GAME_STATE (YEHAT_ABSORBED_PKUNK)) NPCPhrase (PKUNK_ABSORBED_ROYALIST); else NPCPhrase (HATE_PKUNK_ROYALIST); SET_GAME_STATE (YEHAT_ROYALIST_TOLD_PKUNK, 1); } if (PHRASE_ENABLED (whats_up_homeworld)) Response (whats_up_homeworld, YehatHome); if (!GET_GAME_STATE (YEHAT_ROYALIST_TOLD_PKUNK) && GET_GAME_STATE (PKUNK_VISITS) && GET_GAME_STATE (PKUNK_HOME_VISITS)) Response (what_about_pkunk_royalist, YehatHome); if (!GET_GAME_STATE (NO_YEHAT_HELP_HOME)) Response (at_least_help_us_homeworld, YehatHome); if (!GET_GAME_STATE (NO_YEHAT_INFO)) Response (give_info, YehatHome); if (!GET_GAME_STATE (NO_YEHAT_ALLY_HOME)) { UNICODE buf[ALLIANCE_NAME_BUFSIZE]; GetAllianceName (buf, name_1); construct_response ( shared_phrase_buf, i_demand_you_ally_homeworld0, GLOBAL_SIS (CommanderName), i_demand_you_ally_homeworld1, buf, i_demand_you_ally_homeworld2, GLOBAL_SIS (ShipName), i_demand_you_ally_homeworld3, (UNICODE*)NULL); DoResponsePhrase (i_demand_you_ally_homeworld0, ExitConversation, shared_phrase_buf); } Response (bye_homeworld, ExitConversation); }