static void TellMoonBase (RESPONSE_REF R) { if (R == 0) { NPCPhrase (DEALT_WITH_BASE_YET); } else if (PLAYER_SAID (R, i_lost_my_lander)) { NPCPhrase (HERE_IS_A_NEW_LANDER); ++GLOBAL_SIS (NumLanders); LockMutex (GraphicsLock); DrawLanders (); DeltaSISGauges (4, 0, 0); UnlockMutex (GraphicsLock); SET_GAME_STATE (LANDERS_LOST, 1); } else if (PLAYER_SAID (R, i_lost_another_lander)) { NPCPhrase (HERE_IS_ANOTHER_LANDER); ++GLOBAL_SIS (NumLanders); LockMutex (GraphicsLock); DrawLanders (); DeltaSISGauges (4, 0, 0); UnlockMutex (GraphicsLock); } else if (PLAYER_SAID (R, need_fuel_mercury) || PLAYER_SAID (R, need_fuel_luna)) { NPCPhrase (GIVE_FUEL); LockMutex (GraphicsLock); DeltaSISGauges (0, 5 * FUEL_TANK_SCALE, 0); UnlockMutex (GraphicsLock); SET_GAME_STATE (GIVEN_FUEL_BEFORE, 1); } else if (PLAYER_SAID (R, need_fuel_again)) { NPCPhrase (GIVE_FUEL_AGAIN); LockMutex (GraphicsLock); DeltaSISGauges (0, 5 * FUEL_TANK_SCALE, 0); UnlockMutex (GraphicsLock); } else if (PLAYER_SAID (R, we_are_here_to_help)) { NPCPhrase (BASE_ON_MOON); } else if (GET_GAME_STATE (STARBASE_YACK_STACK1) == 0) { NPCPhrase (ABOUT_BASE); SET_GAME_STATE (STARBASE_YACK_STACK1, 1); } else { NPCPhrase (ABOUT_BASE_AGAIN); } if (GLOBAL_SIS (NumLanders) == 0 && GET_GAME_STATE (CHMMR_BOMB_STATE) < 2) { if (GET_GAME_STATE (LANDERS_LOST)) Response (i_lost_another_lander, TellMoonBase); else Response (i_lost_my_lander, TellMoonBase); } if (GLOBAL_SIS (FuelOnBoard) < 2 * FUEL_TANK_SCALE) { if (GET_GAME_STATE (GIVEN_FUEL_BEFORE)) Response (need_fuel_again, TellMoonBase); else Response (need_fuel_luna, TellMoonBase); } if (GET_GAME_STATE (WILL_DESTROY_BASE) == 0) Response (we_will_take_care_of_base, ByeBye); else Response (take_care_of_base_again, ByeBye); if (GET_GAME_STATE (STARBASE_YACK_STACK1) == 0) Response (tell_me_about_base, TellMoonBase); else Response (tell_me_again, TellMoonBase); }
static void NoRadioactives (RESPONSE_REF R) { if (PLAYER_SAID (R, yes_this_is_supply_ship)) { NPCPhrase (ABOUT_TIME); if (GLOBAL_SIS (ElementAmounts[RADIOACTIVE])) GiveRadios (0); else { Response (i_lied, NoRadioactives); Response (plumb_out, NoRadioactives); } } else { if (PLAYER_SAID (R, where_can_i_get_radios)) { NPCPhrase (RADIOS_ON_MERCURY); DISABLE_PHRASE (where_can_i_get_radios); } else if (PLAYER_SAID (R, no_but_well_help0)) NPCPhrase (THE_WHAT_FROM_WHERE); else if (PLAYER_SAID (R, what_slave_planet) || PLAYER_SAID (R, i_lied)) NPCPhrase (DONT_KNOW_WHO_YOU_ARE); else if (PLAYER_SAID (R, plumb_out)) NPCPhrase (WHAT_KIND_OF_IDIOT); else if (PLAYER_SAID (R, i_lost_my_lander)) { NPCPhrase (HERE_IS_A_NEW_LANDER); ++GLOBAL_SIS (NumLanders); LockMutex (GraphicsLock); DrawLanders (); DeltaSISGauges (4, 0, 0); UnlockMutex (GraphicsLock); SET_GAME_STATE (LANDERS_LOST, 1); } else if (PLAYER_SAID (R, i_lost_another_lander)) { NPCPhrase (HERE_IS_ANOTHER_LANDER); ++GLOBAL_SIS (NumLanders); LockMutex (GraphicsLock); DrawLanders (); DeltaSISGauges (4, 0, 0); UnlockMutex (GraphicsLock); } else if (PLAYER_SAID (R, need_fuel_mercury) || PLAYER_SAID (R, need_fuel_luna)) { NPCPhrase (GIVE_FUEL); LockMutex (GraphicsLock); DeltaSISGauges (0, 5 * FUEL_TANK_SCALE, 0); UnlockMutex (GraphicsLock); SET_GAME_STATE (GIVEN_FUEL_BEFORE, 1); } else if (PLAYER_SAID (R, need_fuel_again)) { NPCPhrase (GIVE_FUEL_AGAIN); LockMutex (GraphicsLock); DeltaSISGauges (0, 5 * FUEL_TANK_SCALE, 0); UnlockMutex (GraphicsLock); } if (GLOBAL_SIS (ElementAmounts[RADIOACTIVE])) GiveRadios (0); else { if (GLOBAL_SIS (NumLanders) == 0 && GET_GAME_STATE (CHMMR_BOMB_STATE) < 2) { if (GET_GAME_STATE (LANDERS_LOST)) Response (i_lost_another_lander, NoRadioactives); else Response (i_lost_my_lander, NoRadioactives); } if (GLOBAL_SIS (FuelOnBoard) < 2 * FUEL_TANK_SCALE) { if (GET_GAME_STATE (GIVEN_FUEL_BEFORE)) Response (need_fuel_again, NoRadioactives); else Response (need_fuel_mercury, NoRadioactives); } Response (ok_i_will_get_radios, ByeBye); if (PHRASE_ENABLED (where_can_i_get_radios)) { Response (where_can_i_get_radios, NoRadioactives); } } } }
static void AskAfterRadios (RESPONSE_REF R) { if (PLAYER_SAID (R, i_lost_my_lander)) { NPCPhrase (HERE_IS_A_NEW_LANDER); ++GLOBAL_SIS (NumLanders); LockMutex (GraphicsLock); DrawLanders (); DeltaSISGauges (4, 0, 0); UnlockMutex (GraphicsLock); SET_GAME_STATE (LANDERS_LOST, 1); } else if (PLAYER_SAID (R, i_lost_another_lander)) { NPCPhrase (HERE_IS_ANOTHER_LANDER); ++GLOBAL_SIS (NumLanders); LockMutex (GraphicsLock); DrawLanders (); DeltaSISGauges (4, 0, 0); UnlockMutex (GraphicsLock); } else if (PLAYER_SAID (R, need_fuel_mercury) || PLAYER_SAID (R, need_fuel_luna)) { NPCPhrase (GIVE_FUEL); LockMutex (GraphicsLock); DeltaSISGauges (0, 5 * FUEL_TANK_SCALE, 0); UnlockMutex (GraphicsLock); SET_GAME_STATE (GIVEN_FUEL_BEFORE, 1); } else if (PLAYER_SAID (R, need_fuel_again)) { NPCPhrase (GIVE_FUEL_AGAIN); LockMutex (GraphicsLock); DeltaSISGauges (0, 5 * FUEL_TANK_SCALE, 0); UnlockMutex (GraphicsLock); } else if (PLAYER_SAID (R, where_get_radios)) { NPCPhrase (RADIOS_ON_MERCURY); DISABLE_PHRASE (where_get_radios); } { if (GLOBAL_SIS (NumLanders) == 0 && GET_GAME_STATE (CHMMR_BOMB_STATE) < 2) { if (GET_GAME_STATE (LANDERS_LOST)) Response (i_lost_another_lander, AskAfterRadios); else Response (i_lost_my_lander, AskAfterRadios); } if (GLOBAL_SIS (FuelOnBoard) < 2 * FUEL_TANK_SCALE) { if (GET_GAME_STATE (GIVEN_FUEL_BEFORE)) Response (need_fuel_again, AskAfterRadios); else Response (need_fuel_mercury, AskAfterRadios); } Response (well_go_get_them_now, ByeBye); if (PHRASE_ENABLED (where_get_radios)) { Response (where_get_radios, AskAfterRadios); } } }
void RenderSpecialStuff() { if (bTrackingCamera && !bPause) ResetCamera(); DrawLanders(); }