650 lines
17 KiB
Python
Executable File
650 lines
17 KiB
Python
Executable File
|
|
|
|
//Compile out Title Update changes to header functions.
|
|
//Must be before includes.
|
|
//CONST_INT USE_TU_CHANGES 0
|
|
|
|
|
|
USING "rage_builtins.sch"
|
|
USING "globals.sch"
|
|
USING "commands_misc.sch"
|
|
USING "commands_script.sch"
|
|
USING "commands_pad.sch"
|
|
USING "cellphone_public.sch"
|
|
USING "cellphone_private.sch"
|
|
USING "dialogue_public.sch"
|
|
USING "player_ped_public.sch"
|
|
USING "stack_sizes.sch"
|
|
USING "mission_repeat_public.sch"
|
|
USING "mission_stat_public.sch"
|
|
|
|
|
|
|
|
|
|
// *****************************************************************************************
|
|
// *****************************************************************************************
|
|
// *****************************************************************************************
|
|
//
|
|
// MISSION NAME : appVLSI.sc
|
|
// AUTHOR : Steve T
|
|
// DESCRIPTION : Used to launch hacking app from cellphone whilst displaying a
|
|
// : a scaleform loading screen.
|
|
//
|
|
//
|
|
//
|
|
//
|
|
// *****************************************************************************************
|
|
// *****************************************************************************************
|
|
// *****************************************************************************************
|
|
|
|
|
|
|
|
//Notes:
|
|
// AppDummyApp0 used as ENUM reference
|
|
// Launch currently voiced in Cellphone_FLASHHAND
|
|
/*
|
|
IF SelectedAppIndex = ENUM_TO_INT (AppDummyApp0)
|
|
|
|
b_AppLaunchVoided = TRUE
|
|
|
|
#if IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintstring("CELLPHONE_FH - Circuit breaker has no actual script association. No script requested or launched.")
|
|
cdPrintstring("CELLPHONE_FH - Setting fake Circuit Breaker launch global g_HackingAppHasBeenLaunched to TRUE.")
|
|
cdPrintnl()
|
|
#endif
|
|
|
|
g_HackingAppHasBeenLaunched = TRUE
|
|
|
|
ENDIF
|
|
|
|
*/
|
|
|
|
//Fill_App_Sheet (AppDummyApp0, "CELL_CIRCBREAK", 8, "DummyHackScrp", 54, 1, App_O1_UNLOCKED, App_O2_LOCKED, App_O3_LOCKED) in Cellphone_PRIVATE sets up app sheet details.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BOOL b_InitialVLSISetup = FALSE
|
|
|
|
|
|
|
|
|
|
ENUM eHack_Stage
|
|
|
|
HS_INITIALISE,
|
|
HS_WAITING_FOR_ACTIVATE,
|
|
HS_UNLOCKING,
|
|
HS_POST_UNLOCK_PAUSE
|
|
|
|
ENDENUM
|
|
|
|
|
|
|
|
eHack_Stage HackStage
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PROC Set_Up_Test_VLSI_App()
|
|
|
|
/*
|
|
//Just testing with trackify methods.
|
|
BEGIN_SCALEFORM_MOVIE_METHOD (SF_MovieIndex, "SET_DATA_SLOT")
|
|
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT (23) //System
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT (0) //System
|
|
|
|
|
|
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT (100)//(FLOOR(10.0)) //The lower this number the further away the target will be on the radar.
|
|
|
|
IF IS_BIT_SET (BitSet_CellphoneDisplay_Continued, g_BSC_SKIP_TRACKIFY_LOADING_SCREEN)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL (TRUE) //Skips loading screen.
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL (FALSE) //Show loading screen.
|
|
ENDIF
|
|
|
|
|
|
IF IS_BIT_SET (BitSet_CellphoneDisplay_Continued, g_BSC_HIDE_TRACKIFY_TARGET_ARROW)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL (FALSE) //Hide arrow on target blip.
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL (TRUE) //Show arrow on target blip.
|
|
ENDIF
|
|
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
*/
|
|
|
|
|
|
|
|
//Should be something like this:
|
|
/*
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER (SF_MovieIndex, "DISPLAY_VIEW", 23, TO_FLOAT(1))
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(SF_MovieIndex, "SHOW_HACKING_APP")
|
|
|
|
|
|
|
|
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING ("CELL_101")
|
|
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
|
|
|
|
|
|
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER (SF_MovieIndex, "DISPLAY_VIEW", 23, TO_FLOAT(1))
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
//Temp routine.
|
|
|
|
|
|
IF HackStage = HS_INITIALISE
|
|
|
|
#if IS_DEBUG_BUILD
|
|
|
|
cdPrintnl()
|
|
cdPrintstring("AppVLSI - Requested DLC_MPHEIST/HEIST_HACK_SNAKE soundbank.")
|
|
cdPrintnl()
|
|
|
|
#endif
|
|
|
|
|
|
|
|
REQUEST_SCRIPT_AUDIO_BANK("DLC_MPHEIST/HEIST_HACK_SNAKE")
|
|
|
|
WHILE REQUEST_SCRIPT_AUDIO_BANK("DLC_MPHEIST/HEIST_HACK_SNAKE") = FALSE
|
|
|
|
WAIT(0)
|
|
|
|
#if IS_DEBUG_BUILD
|
|
|
|
cdPrintnl()
|
|
cdPrintstring("AppVLSI - Waiting on DLC_MPHEIST/HEIST_HACK_SNAKE soundbank to load...")
|
|
cdPrintnl()
|
|
|
|
#endif
|
|
|
|
ENDWHILE
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//New scaleform routine that uses Trackify Loading Screen enum to manipulate hacking screen.
|
|
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER(SF_MovieIndex,"SET_DATA_SLOT_EMPTY", 23)
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD (SF_MovieIndex, "SET_DATA_SLOT")
|
|
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT (23) //System
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT (0) //System
|
|
|
|
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT (-99) //Negative angle removes target.
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT (0)
|
|
|
|
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT (100)//(FLOOR(10.0)) //The lower this number the further away the target will be on the radar.
|
|
|
|
|
|
//Updated because of Trackify changes which mean loading screens take an enum rather than a bool.
|
|
//LOADING_SCREEN_TYPE_HACKING = 2
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT (2)
|
|
|
|
|
|
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL (FALSE) //Hide arrow on target blip.
|
|
|
|
|
|
IF IS_BIT_SET (BitSet_CellphoneDisplay_Third, g_BSTHIRD_DISPLAY_TRACKIFY_RELATIVE_HEIGHT)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT (0.0)
|
|
ENDIF
|
|
|
|
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER (SF_MovieIndex, "DISPLAY_VIEW", 23, TO_FLOAT(1))
|
|
|
|
|
|
HackStage = HS_WAITING_FOR_ACTIVATE
|
|
|
|
|
|
|
|
|
|
ELSE
|
|
|
|
|
|
IF HackStage = HS_WAITING_FOR_ACTIVATE
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER(SF_MovieIndex,"SET_DATA_SLOT_EMPTY", 23)
|
|
|
|
|
|
//New scaleform routine that uses Trackify Loading Screen enum to manipulate hacking screen.
|
|
BEGIN_SCALEFORM_MOVIE_METHOD (SF_MovieIndex, "SET_DATA_SLOT")
|
|
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT (23) //System
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT (0) //System
|
|
|
|
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT (-99) //Negative angle removes target.
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT (0)
|
|
|
|
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT (100)//(FLOOR(10.0)) //The lower this number the further away the target will be on the radar.
|
|
|
|
|
|
//Updated because of Trackify changes which mean loading screens take an enum rather than a bool.
|
|
//LOADING_SCREEN_TYPE_HACKING_ACTIVE = 3
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT (3)
|
|
|
|
|
|
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL (FALSE) //Hide arrow on target blip.
|
|
|
|
|
|
IF IS_BIT_SET (BitSet_CellphoneDisplay_Third, g_BSTHIRD_DISPLAY_TRACKIFY_RELATIVE_HEIGHT)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT (0.0)
|
|
ENDIF
|
|
|
|
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER (SF_MovieIndex, "DISPLAY_VIEW", 23, TO_FLOAT(1))
|
|
|
|
|
|
|
|
#if IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintstring("AppVLSI - Updating Hack screen to UNLOCKING.")
|
|
cdPrintnl()
|
|
#endif
|
|
|
|
|
|
|
|
|
|
HackStage = HS_UNLOCKING
|
|
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PROC Set_Up_VLSI_Buttons()
|
|
|
|
|
|
|
|
IF g_b_ToggleButtonLabels
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_POS, 1,
|
|
13, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_201") //"YES" - Positive
|
|
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_NEG, 1,
|
|
14, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_213") //"NO" - Negative
|
|
|
|
|
|
ELSE
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_POS, 1,
|
|
13, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM) //"YES" - Positive
|
|
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_NEG, 1,
|
|
14, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM) //"NO" - Negative
|
|
|
|
ENDIF
|
|
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_OTHER, 0,
|
|
1, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM) //"Error!" - Other
|
|
CLEAR_BIT (BitSet_CellphoneDisplay, g_BS_OTHER_OPTION_IS_DISPLAYED)
|
|
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
|
|
PROC Set_Up_VLSI_Buttons_Unlocking()
|
|
|
|
|
|
|
|
IF g_b_ToggleButtonLabels
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_POS, 0,
|
|
13, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_201") //"YES" - Positive
|
|
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_NEG, 1,
|
|
14, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_213") //"NO" - Negative
|
|
|
|
|
|
ELSE
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_POS, 0,
|
|
13, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM) //"YES" - Positive
|
|
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_NEG, 1,
|
|
14, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM) //"NO" - Negative
|
|
|
|
ENDIF
|
|
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_OTHER, 0,
|
|
1, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM) //"Error!" - Other
|
|
CLEAR_BIT (BitSet_CellphoneDisplay, g_BS_OTHER_OPTION_IS_DISPLAYED)
|
|
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PROC Cleanup_and_Terminate()
|
|
|
|
|
|
RELEASE_NAMED_SCRIPT_AUDIO_BANK("DLC_MPHEIST/HEIST_HACK_SNAKE")
|
|
|
|
|
|
#if IS_DEBUG_BUILD
|
|
|
|
PRINTNL()
|
|
PRINTSTRING ("AppVLSI - appVLSI exiting normally and removing soundbank...")
|
|
PRINTNL()
|
|
|
|
cdPrintnl()
|
|
cdPrintstring ("AppVLSI - S_P_D appVLSI exiting normally and removing soundbank...")
|
|
cdPrintnl()
|
|
|
|
#endif
|
|
|
|
|
|
|
|
TERMINATE_THIS_THREAD()
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SCRIPT
|
|
|
|
//Ensure this script persists during network game
|
|
NETWORK_SET_SCRIPT_IS_SAFE_FOR_NETWORK_GAME()
|
|
|
|
|
|
|
|
|
|
HackStage = HS_INITIALISE
|
|
|
|
|
|
|
|
IF b_InitialVLSISetup = FALSE
|
|
|
|
Set_Up_Test_VLSI_App()
|
|
Set_Up_VLSI_Buttons()
|
|
|
|
b_InitialVLSISetup = TRUE
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
WHILE TRUE
|
|
|
|
WAIT(0)
|
|
|
|
|
|
|
|
|
|
IF g_Cellphone.PhoneDS <> PDS_ONGOING_CALL //i.e a phonecall is not attempting to get through to the player.
|
|
|
|
SWITCH g_Cellphone.PhoneDS
|
|
|
|
|
|
|
|
CASE PDS_RUNNINGAPP
|
|
|
|
//We need to set this critical bool up:
|
|
//g_HackingAppHasBeenLaunched = TRUE
|
|
//after an appVLSI loading screen, to let Colin C's stuff know that his minigame should be launched.
|
|
//Then CLEANUP_AND_TERMINATE?
|
|
|
|
|
|
|
|
|
|
IF HackStage = HS_WAITING_FOR_ACTIVATE
|
|
|
|
IF Is_Phone_Control_Just_Pressed (FRONTEND_CONTROL, INT_TO_ENUM (CONTROL_ACTION, PHONE_POSITIVE_INPUT))
|
|
|
|
#if IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintstring("App VLSI - Positive button pressed during wait phase. Proceeding to UNLOCK stage.")
|
|
cdPrintnl()
|
|
#endif
|
|
|
|
//Play_Select_Beep()
|
|
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Lester_Laugh_Phone", "DLC_HEIST_HACKING_SNAKE_SOUNDS")
|
|
|
|
g_InputButtonJustPressed = TRUE
|
|
|
|
Set_Up_Test_VLSI_App()
|
|
|
|
Set_Up_VLSI_Buttons_Unlocking()
|
|
|
|
SETTIMERA(0)
|
|
SETTIMERB(0)
|
|
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
|
|
IF HackStage = HS_UNLOCKING
|
|
|
|
//Just a little routine to play some beeps during the unlock pause.
|
|
IF TIMERB() > 499
|
|
|
|
//Play_Select_Beep()
|
|
SETTIMERB(0)
|
|
|
|
ENDIF
|
|
|
|
IF TIMERA() > 2200
|
|
|
|
HackStage = HS_POST_UNLOCK_PAUSE
|
|
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IF HackStage = HS_POST_UNLOCK_PAUSE
|
|
|
|
#if IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintstring("App VLSI - setting g_HackingAppHasBeenLaunched to TRUE now pause has expired.")
|
|
cdPrintnl()
|
|
#endif
|
|
|
|
g_HackingAppHasBeenLaunched = TRUE
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BREAK
|
|
|
|
|
|
|
|
CASE PDS_COMPLEXAPP
|
|
|
|
|
|
IF Is_Phone_Control_Just_Pressed (FRONTEND_CONTROL, INT_TO_ENUM (CONTROL_ACTION, PHONE_GO_BACK_INPUT)) //Go back action - user opted to return to full text message list from single message display.
|
|
|
|
|
|
Play_Back_Beep()
|
|
|
|
g_InputButtonJustPressed = TRUE
|
|
|
|
|
|
|
|
IF g_CellPhone.PhoneDS > PDS_AWAY //make sure that the following state assignment cannot interfere with AWAY or DISABLED assignment.
|
|
|
|
g_Cellphone.PhoneDS = PDS_RUNNINGAPP
|
|
|
|
#if IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintstring("STATE ASSIGNMENT 23198. AppVLSI assigns PDS_RUNNINGAPP")
|
|
cdPrintnl()
|
|
#endif
|
|
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
|
|
|
|
DEFAULT
|
|
|
|
#if IS_DEBUG_BUILD
|
|
|
|
PRINTSTRING("AppVLSI in default state. Should terminate if exit check in place.")
|
|
PRINTNL()
|
|
|
|
#endif
|
|
|
|
BREAK
|
|
|
|
|
|
|
|
ENDSWITCH
|
|
|
|
|
|
|
|
IF CHECK_FOR_APPLICATION_EXIT()
|
|
|
|
Cleanup_and_Terminate()
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ELSE
|
|
|
|
|
|
|
|
//This is an important section! It tells this script what to do when a call, be it answerphone or other phonecall, comes through.
|
|
//It is important to look at how appTextMessage interacts with any change to this section as it relies upon this script to make a call to any message sender.
|
|
|
|
BeforeCallPhoneDS = PDS_MAXIMUM //After a call has finished the phone display state usually alters to whatever it was before the call came through.
|
|
//We don't really want to go back to the "calling Repeat" screen after an answerphone message so we set it to PDS_MAXIMUM
|
|
//here. We could just as easily put the phone completely away if need be.
|
|
//NB - This also means that when browsing the Repeats list, if a calls comes through and it terminates then we default
|
|
//back to MAXIMUM mode not browsing the Repeats list.
|
|
|
|
Cleanup_and_Terminate() //Likewise, having this here will make sure this script is terminated should any call come through...
|
|
|
|
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
IF CHECK_FOR_ABNORMAL_EXIT()
|
|
|
|
Cleanup_and_Terminate()
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
|
|
ENDWHILE
|
|
|
|
|
|
ENDSCRIPT
|
|
|
|
|