Files
gtav-src/script/dev_ng/singleplayer/scripts/missions/Family/Family1Taxi.sc
T
2025-09-29 00:52:08 +02:00

113 lines
2.8 KiB
Python
Executable File

//Compile out Title Update changes to header functions.
//Must be before includes.
//CONST_INT USE_TU_CHANGES 0 // Removed by Kenneth R.
//Taxi Tutorial - Post Family 1.
//Ross Wallace, Ben Rollinson - 19/04/2012
USING "rage_builtins.sch"
USING "globals.sch"
USING "savegame_public.sch"
USING "mission_stat_public.sch"
USING "flow_help_public.sch"
USING "taxi_functions.sch"
ENUM TaxiTutorialStage
WAIT_FOR_SAFE,
SPAWN_TAXI,
DISPLAY_HELP_1,
DISPLAY_HELP_2,
END_TUTORIAL
ENDENUM
TaxiTutorialStage eStage = WAIT_FOR_SAFE
PROC CLEANUP()
IF IS_FLOW_HELP_MESSAGE_QUEUED("AM_H_TAXI1")
REMOVE_HELP_FROM_FLOW_QUEUE("AM_H_TAXI1")
ENDIF
IF IS_FLOW_HELP_MESSAGE_QUEUED("AM_H_TAXI2")
REMOVE_HELP_FROM_FLOW_QUEUE("AM_H_TAXI2")
ENDIF
CPRINTLN(DEBUG_FLOW, "<FAM1TAXI> Cleaned up.")
TERMINATE_THIS_THREAD()
ENDPROC
PROC RUN_TAXI_TUTORIAL()
SWITCH eStage
CASE WAIT_FOR_SAFE
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID())
AND NOT IS_AUTO_SAVE_IN_PROGRESS()
AND NOT IS_AUTOSAVE_REQUEST_IN_PROGRESS()
AND NOT IS_RESULT_SCREEN_DISPLAYING()
CPRINTLN(DEBUG_FLOW, "<FAM1TAXI> It is now safe to run tutorial.")
REQUEST_SCRIPT("taxiService")
eStage = SPAWN_TAXI
ENDIF
BREAK
CASE SPAWN_TAXI
IF HAS_SCRIPT_LOADED("taxiService")
CPRINTLN(DEBUG_FLOW, "<FAM1TAXI> Spawned taxi.")
START_NEW_SCRIPT("taxiService", SPECIAL_ABILITY_STACK_SIZE)
SET_SCRIPT_AS_NO_LONGER_NEEDED("taxiService")
eStage = DISPLAY_HELP_1
ENDIF
BREAK
CASE DISPLAY_HELP_1
SWITCH GET_FLOW_HELP_MESSAGE_STATUS("AM_H_TAXI1")
CASE FHS_EXPIRED
ADD_HELP_TO_FLOW_QUEUE("AM_H_TAXI1", FHP_HIGH, 0, 1000, DEFAULT_HELP_TEXT_TIME, BIT_MICHAEL)
BREAK
CASE FHS_DISPLAYED
CPRINTLN(DEBUG_FLOW, "<FAM1TAXI> Help message 1 displayed.")
eStage = DISPLAY_HELP_2
BREAK
ENDSWITCH
BREAK
CASE DISPLAY_HELP_2
SWITCH GET_FLOW_HELP_MESSAGE_STATUS("AM_H_TAXI2")
CASE FHS_EXPIRED
ADD_HELP_TO_FLOW_QUEUE("AM_H_TAXI2", FHP_HIGH, 0, 1000, DEFAULT_HELP_TEXT_TIME, BIT_MICHAEL)
BREAK
CASE FHS_DISPLAYED
CPRINTLN(DEBUG_FLOW, "<FAM1TAXI> Help message 2 displayed.")
eStage = END_TUTORIAL
BREAK
ENDSWITCH
BREAK
CASE END_TUTORIAL
CPRINTLN(DEBUG_FLOW, "<FAM1TAXI> Tutorial finished.")
CLEANUP()
BREAK
ENDSWITCH
ENDPROC
SCRIPT
CPRINTLN(DEBUG_FLOW, "<FAM1TAXI> Started.")
IF HAS_FORCE_CLEANUP_OCCURRED(FORCE_CLEANUP_FLAG_DEBUG_MENU|FORCE_CLEANUP_FLAG_SP_TO_MP)
CPRINTLN(DEBUG_FLOW, "<FAM1TAXI> Being forced to clean up.")
CLEANUP()
ENDIF
WHILE NOT GET_MISSION_COMPLETE_STATE(SP_MISSION_FAMILY_2) //If the flow has progressed just clean up.
RUN_TAXI_TUTORIAL()
WAIT(0)
ENDWHILE
CPRINTLN(DEBUG_FLOW, "<FAM1TAXI> Flow progressed without tutorial running. Cleaning up")
CLEANUP()
ENDSCRIPT