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

1873 lines
48 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.
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 "completionPercentage_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"
USING "Flow_Mission_Data_Public.sch"
// ********************************************************************************************************
// ********************************************************************************************************
// ********************************************************************************************************
//
// MISSION NAME : appChecklist.sc
// AUTHOR : Steve T
// DESCRIPTION : An app that displays a simple breakdown of the player's game progress
//
//
//
//
// ********************************************************************************************************
// ********************************************************************************************************
// ********************************************************************************************************
//CONST_INT MaxNumberOfRepeatSlots 10
CONST_INT EARLIEST_FIRST 0
CONST_INT LATEST_FIRST 1
INT OpenListSlot[SP_MISSION_MAX]
INT NumberOfEntriesInList = 0
INT ListCursorIndex = 0
INT i_Selected_Checklist
BOOL dpad_scroll_pause_cued = FALSE
/*
ENUM enumGrouping
CP_GROUP_NO_GROUP, //0
CP_GROUP_MISSIONS, //1
CP_GROUP_MINIGAMES, //2
CP_GROUP_ODDJOBS, //3
CP_GROUP_RANDOMCHARS,
CP_GROUP_RANDOMEVENTS,
CP_GROUP_MISCELLANEOUS,
CP_GROUP_FRIENDS
ENDENUM
*/
ENUM enumAppPhases
IN_PRELIM_CHOICE,
IN_OPEN_MISSIONS_PHASE,
IN_CHECKLIST_PHASE1,
IN_CHECKLIST_PHASE2
ENDENUM
enumAppPhases eCurrent_Stream
//The order of the enums directly correlates to the order they appear on an "earliest first" list on the phone. Was thinking of sorting it alphabetically but missions may be
//more important than micro-collection stats.
ENUM enumCheckListEntry
CLE_MISSIONS,
//CLE_MINIGAMES,
//CLE_ODDJOBS,
CLE_HOBBIES,
CLE_RANDOMCHARS,
CLE_RANDOMEVENTS,
//CLE_FRIENDS,
CLE_MISCELLANEOUS, //Now calculates friends and misc together to match social club.
//CLE_TESTBLANK,
MAX_CHECKLIST_ENTRIES //Do not remove!
ENDENUM
INT CheckListSlot[MAX_CHECKLIST_ENTRIES]
//Grouping enum for reference. These are used in the 100 percent completion tracker but crossover nicely so we can extract total numbers of each group available and the number
//currently completed.
/*
ENUM enumGrouping
CP_GROUP_NO_GROUP, //0
CP_GROUP_MISSIONS, //1
CP_GROUP_MINIGAMES, //2
CP_GROUP_ODDJOBS, //3
CP_GROUP_RANDOMCHARS,
CP_GROUP_RANDOMEVENTS,
CP_GROUP_MISCELLANEOUS,
CP_GROUP_FRIENDS
ENDENUM
*/
//Might need to be a saved global so we can keep track of each apps availability for each owner.
STRUCT structCheckListEntry
TEXT_LABEL CLE_LABEL //the label of the checklist entry for displaying on the phone
enumGrouping CLE_GROUP
INT CLE_NUM_CURRENT_COMPLETE
ENDSTRUCT
INT SF_PlugInt_1, SF_PlugInt_2, i_Selected_Choice
SCALEFORM_RETURN_INDEX Choice_ReturnedSFIndex
BOOL b_GroupingsAvailable = FALSE
structCheckListEntry CheckListEntry[MAX_CHECKLIST_ENTRIES]
BOOL This_Grouping_Has_Been_Included[MAX_CHECKLIST_ENTRIES]
//Open up for public use if necessary.
PROC Fill_CheckListEntry (enumCheckListEntry whichEntry, STRING whichEntryLabel, enumGrouping whichGrouping, INT whichCurrentNumberOfGroupingCompleted)
CheckListEntry[whichEntry].CLE_LABEL = whichEntryLabel
CheckListEntry[whichEntry].CLE_GROUP = whichGrouping
CheckListEntry[whichEntry].CLE_NUM_CURRENT_COMPLETE = whichCurrentNumberOfGroupingCompleted
IF CheckListEntry[0].CLE_GROUP = CP_GROUP_MISSIONS
//unref hack
ENDIF
ENDPROC
PROC Fill_CheckListEntries()
//RecalculateResultantPercentageTotal() //from CompletionPercentage_Private.sch //need to get temp_groups to see if any of the groupings have completed members.
Fill_CheckListEntry (CLE_MISSIONS, "CELL_3001", CP_GROUP_MISSIONS, temp_Group_Num_of_Missions)
//Fill_CheckListEntry (CLE_MINIGAMES, "CELL_3002", CP_GROUP_MINIGAMES, temp_Group_Num_of_Minigames)
//Fill_CheckListEntry (CLE_ODDJOBS, "CELL_3003", CP_GROUP_ODDJOBS, temp_Group_Num_of_Oddjobs)
Fill_CheckListEntry (CLE_HOBBIES, "CELL_3008", CP_GROUP_MINIGAMES, temp_Group_Num_of_Missions)
Fill_CheckListEntry (CLE_RANDOMCHARS, "CELL_3004", CP_GROUP_RANDOMCHARS, temp_Group_Num_of_RandomChars) //referred to as Strangers and Freaks!
Fill_CheckListEntry (CLE_RANDOMEVENTS, "CELL_3005", CP_GROUP_RANDOMEVENTS, temp_Group_Num_of_RandomEvents)
//Fill_CheckListEntry (CLE_FRIENDS, "CELL_3006", CP_GROUP_FRIENDS, temp_Group_Num_of_Friends)
Fill_CheckListEntry (CLE_MISCELLANEOUS, "CELL_3007", CP_GROUP_MISCELLANEOUS, temp_Group_Num_of_Miscellaneous)
ENDPROC
PROC Setup_Preliminary_Choice()
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER(SF_MovieIndex,"SET_DATA_SLOT_EMPTY", 18)
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_DATA_SLOT", (TO_FLOAT(18)), (TO_FLOAT(0)),
(TO_FLOAT(0)),INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_3301")
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_DATA_SLOT", (TO_FLOAT(18)), (TO_FLOAT(1)),
(TO_FLOAT(0)),INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_3302")
//CELL_3302
NumberOfEntriesInList = 2
//Set scalefrom movie view state enum to Repeats screen and display associated buttons.
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER (SF_MovieIndex, "DISPLAY_VIEW", 18) //Set enum state and header to Check List
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_STRING (SF_MovieIndex, "SET_HEADER", "CELL_23")
//Badger - Select Back combo
IF g_b_ToggleButtonLabels
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_POS, 1,
2, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_205") //"Select" - Positive
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_NEG, 1,
4, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_206") //"BACK" - Negative
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_OTHER, 0,
15, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_227") //"Error!" - Other
ELSE
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_POS, 1,
2, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM) //"SELECT" - Positive
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_NEG, 1,
4, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM) //"BACK" - Negative
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_OTHER, 0,
15, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM ) //"Error!" - Other
ENDIF
eCurrent_Stream = IN_PRELIM_CHOICE
ENDPROC
PROC Place_Open_Missions_in_Slots()
NumberOfEntriesInList = 0 //reset number of Repeats before filling list.
UPDATE_CHECKLIST_ITEMS() //Call Ben's function to make sure open list is up to date.
//Temp test data!
/*
g_tChecklistItems[0] = "M_ARM1"
g_tChecklistItems[1] = "M_EXL2"
g_tChecklistItems[2] = "M_FBI3"
g_iChecklistItemCount = 3
*/
INT slotIndex = 0
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER(SF_MovieIndex,"SET_DATA_SLOT_EMPTY", 18)
IF IS_CURRENTLY_ON_MISSION_TO_TYPE(MISSION_TYPE_STORY)
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_DATA_SLOT", (TO_FLOAT(18)), (TO_FLOAT(slotIndex)),
(TO_FLOAT(0)),INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_229") //On Active Mission
ELSE
WHILE slotIndex < (g_iChecklistItemCount)
#if IS_DEBUG_BUILD
PRINTSTRING("Populating sf ef slot ")
PRINTINT(slotIndex)
PRINTNL()
#endif
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_DATA_SLOT", (TO_FLOAT(18)), (TO_FLOAT(slotIndex)),
(TO_FLOAT(0)),INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, g_tChecklistItems[slotIndex])
NumberOfEntriesInList ++
OpenListSlot[slotIndex] = slotIndex
slotIndex ++
ENDWHILE
ENDIF
//Unref hack.
IF OpenListSlot[1] = 99
ENDIF
//Set scalefrom movie view state enum to Repeats screen and display associated buttons.
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER (SF_MovieIndex, "DISPLAY_VIEW", 18 ) //Set enum state and header to Open Missions.
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_STRING (SF_MovieIndex, "SET_HEADER", "CELL_3301")
IF IS_CURRENTLY_ON_MISSION_TO_TYPE(MISSION_TYPE_STORY)
OR g_iChecklistItemCount = 0
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_POS, 0,
1, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM) //"Error!" - Positive
CLEAR_BIT (BitSet_CellphoneDisplay, g_BS_OTHER_OPTION_IS_DISPLAYED)
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)
IF g_b_ToggleButtonLabels
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_NEG, 1,
4, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_206") //"Back" - Negative
ELSE
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_NEG, 1,
4, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM) //
ENDIF
ELSE
//Badger - Select Back combo
IF g_b_ToggleButtonLabels
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_POS, 0,
2, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_205") //"Select" - Positive
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_NEG, 1,
4, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_206") //"BACK" - Negative
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_OTHER, 0,
15, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_227") //"SORT" - Other
//SET_BIT (BitSet_CellphoneDisplay, g_BS_OTHER_OPTION_IS_DISPLAYED)
ELSE
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_POS, 0,
2, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM) //"SELECT" - Positive
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_NEG, 1,
4, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM) //"BACK" - Negative
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_OTHER, 0,
15, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM ) //"SORT" - Other
//SET_BIT (BitSet_CellphoneDisplay, g_BS_OTHER_OPTION_IS_DISPLAYED)
ENDIF
ENDIF
eCurrent_Stream = IN_OPEN_MISSIONS_PHASE
ENDPROC
PROC Place_Names_in_ChecklistSlots()
b_GroupingsAvailable = FALSE
Fill_CheckListEntries()
NumberOfEntriesInList = 0 //reset number of Repeats before filling list.
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER(SF_MovieIndex,"SET_DATA_SLOT_EMPTY", 18)
INT slotIndex = 0
IF g_ChecklistSortingMethod = EARLIEST_FIRST
WHILE slotIndex < (ENUM_TO_INT(MAX_CHECKLIST_ENTRIES))
//IF CheckListEntry[slotindex].CLE_NUM_CURRENT_COMPLETE > 0 //Only include check progress for any grouping if at least one member has been completed.
#if IS_DEBUG_BUILD
PRINTSTRING("Populating sf slot ")
PRINTINT(slotIndex)
PRINTNL()
#endif
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_DATA_SLOT", (TO_FLOAT(18)), (TO_FLOAT(NumberOfEntriesInList)),
(TO_FLOAT(0)),INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, CheckListEntry[slotindex].CLE_LABEL)
CheckListSlot[NumberOfEntriesInList] = SlotIndex
NumberOfEntriesInList ++
//ENDIF
slotIndex ++
ENDWHILE
ENDIF
IF g_ChecklistSortingMethod = LATEST_FIRST
INT LatestFirst_Index = 0
//Need to work out how many slots need filled at the start by finding out how many groupings have at least one member.
INT tempIndex = 0
WHILE tempIndex < (ENUM_TO_INT(MAX_CHECKLIST_ENTRIES))
This_Grouping_Has_Been_Included[tempIndex] = FALSE
tempIndex ++
ENDWHILE
LatestFirst_Index = ((ENUM_TO_INT(MAX_CHECKLIST_ENTRIES) - 1))
WHILE slotIndex < (ENUM_TO_INT(MAX_CHECKLIST_ENTRIES))
IF CheckListEntry[LatestFirst_Index].CLE_NUM_CURRENT_COMPLETE > 0 //Only include check progress for any grouping if at least one member has been completed.
/*
#if IS_DEBUG_BUILD
PRINTSTRING("Populating sf slot ")
PRINTINT(slotIndex)
PRINTNL()
PRINTSTRING("LFI ")
PRINTINT(LatestFirst_Index)
PRINTNL()
PRINTSTRING("Num of entries ")
PRINTINT(numberofEntriesInList)
PRINTNL()
#endif
*/
IF This_Grouping_Has_Been_Included[latestfirst_Index] = FALSE
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_DATA_SLOT", (TO_FLOAT(18)), (TO_FLOAT(NumberOfEntriesInList)),
(TO_FLOAT(0)),INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM,
CheckListEntry[LatestFirst_Index].CLE_LABEL)
CheckListSlot[NumberOfEntriesInList] = LatestFirst_Index
NumberOfEntriesInList ++
This_Grouping_Has_Been_Included[latestfirst_Index] = TRUE
ENDIF
ENDIF
IF LatestFirst_Index > 0
LatestFirst_Index --
ENDIF
slotIndex ++
ENDWHILE
ENDIF
IF NumberOfEntriesInList = 0 // No progress has been made whatsoever, fill slot 0 with appropriate message.
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_DATA_SLOT", (TO_FLOAT(18)), (TO_FLOAT(0)),
(TO_FLOAT(0)),INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM,
"CELL_3092") //"No progress made".
ELSE
b_GroupingsAvailable = TRUE //Need a check that allows user to select entry or not. We don't want them to be able to select "No progress made".
ENDIF
//Set scalefrom movie view state enum to Repeats screen and display associated buttons.
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER (SF_MovieIndex, "DISPLAY_VIEW", 18) //Set enum state and header to Check List
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_STRING (SF_MovieIndex, "SET_HEADER", "CELL_23")
//Badger - Select Back combo
IF g_b_ToggleButtonLabels
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_POS, 1,
2, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_205") //"Select" - Positive
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_NEG, 1,
4, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_206") //"BACK" - Negative
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_OTHER, 0,
15, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_227") //"SORT" - Other
SET_BIT (BitSet_CellphoneDisplay, g_BS_OTHER_OPTION_IS_DISPLAYED)
ELSE
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_POS, 1,
2, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM) //"SELECT" - Positive
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_NEG, 1,
4, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM) //"BACK" - Negative
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_OTHER, 0,
15, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM ) //"SORT" - Other
SET_BIT (BitSet_CellphoneDisplay, g_BS_OTHER_OPTION_IS_DISPLAYED)
ENDIF
eCurrent_Stream = IN_CHECKLIST_PHASE1
ENDPROC
PROC Check_for_List_Navigation()
IF dpad_scroll_pause_cued
IF TIMERA() > 50
dpad_scroll_pause_cued = FALSE
ENDIF
ENDIF
// PC Scrollwheel support
IF IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL)
IF Is_Phone_Control_Just_Pressed( FRONTEND_CONTROL, INT_TO_ENUM (CONTROL_ACTION,INPUT_CELLPHONE_SCROLL_BACKWARD))
IF ListCursorIndex > 0
ListCursorIndex --
ENDIF
Call_Scaleform_Input_Keypress_Up()
ENDIF
IF Is_Phone_Control_Just_Pressed( FRONTEND_CONTROL, INT_TO_ENUM (CONTROL_ACTION,INPUT_CELLPHONE_SCROLL_FORWARD))
ListCursorIndex ++
IF ListCursorIndex = NumberOfEntriesInList
ListCursorIndex = 0
ENDIF
Call_Scaleform_Input_Keypress_Down()
ENDIF
ENDIF
IF dpad_scroll_pause_cued = FALSE
IF Is_Phone_Control_Just_Pressed (FRONTEND_CONTROL, INT_TO_ENUM (CONTROL_ACTION, PHONE_NAV_UP_INPUT))
IF ListCursorIndex > 0
ListCursorIndex --
ENDIF
Call_Scaleform_Input_Keypress_Up()
dpad_scroll_pause_cued = TRUE
SETTIMERA (0)
ENDIF
IF Is_Phone_Control_Just_Pressed (FRONTEND_CONTROL, INT_TO_ENUM (CONTROL_ACTION, PHONE_NAV_DOWN_INPUT))
ListCursorIndex ++
IF ListCursorIndex = NumberOfEntriesInList
ListCursorIndex = 0
ENDIF
Call_Scaleform_Input_Keypress_Down()
dpad_scroll_pause_cued = TRUE
SETTIMERA (0)
ENDIF
ENDIF
ENDPROC
PROC Get_Checklist_Entry_Values_For_Scaleform()
//RecalculateResultantPercentageTotal() //from CompletionPercentage_Private.sch //Just in case any completions have been made inbetween choices being listed and one chosen.
SWITCH INT_TO_ENUM (enumCheckListEntry, i_Selected_CheckList)
CASE CLE_MISSIONS
SF_PlugInt_1 = g_Group_Num_of_Missions //Total available missions...
SF_PlugInt_2 = temp_Group_Num_of_Missions //Completed so far...
BREAK
/*
CASE CLE_MINIGAMES
SF_PlugInt_1 = g_Group_Num_of_Minigames //Total available missions...
SF_PlugInt_2 = temp_Group_Num_of_Minigames //Completed so far...
BREAK
CASE CLE_ODDJOBS
SF_PlugInt_1 = g_Group_Num_of_Oddjobs //Total available missions...
SF_PlugInt_2 = temp_Group_Num_of_Oddjobs //Completed so far...
BREAK
*/
CASE CLE_HOBBIES //Now an amalgamation of oddjobs and minigames. See bugs 1534381 and 1534353
SF_PlugInt_1 = g_Group_Num_of_Minigames + g_Group_Num_of_Oddjobs
SF_PlugInt_2 = temp_Group_Num_of_Minigames + temp_Group_Num_of_Oddjobs
BREAK
CASE CLE_RANDOMCHARS
SF_PlugInt_1 = g_Group_Num_of_RandomChars
SF_PlugInt_2 = temp_Group_Num_of_RandomChars
BREAK
CASE CLE_RANDOMEVENTS
SF_PlugInt_1 = g_Group_Num_of_RandomEvents
SF_PlugInt_2 = temp_Group_Num_of_RandomEvents
BREAK
/*
CASE CLE_FRIENDS //Combined with miscellaneous to match social club checklist.
SF_PlugInt_1 = g_Group_Num_of_Friends
SF_PlugInt_2 = temp_Group_Num_of_Friends
BREAK
*/
CASE CLE_MISCELLANEOUS
SF_PlugInt_1 = (g_Group_Num_of_Miscellaneous + g_Group_Num_of_Friends)
SF_PlugInt_2 = (temp_Group_Num_of_Miscellaneous + temp_Group_Num_of_Friends)
BREAK
DEFAULT
SF_PlugInt_1 = 0
SF_PlugInt_2 = 0
BREAK
ENDSWITCH
ENDPROC
PROC Check_for_Preliminary_Choice_Selection()
IF g_InputButtonJustPressed = FALSE
IF Is_Phone_Control_Just_Pressed (FRONTEND_CONTROL, INT_TO_ENUM (CONTROL_ACTION, PHONE_POSITIVE_INPUT)) //positive action - Repeat selected.
Play_Select_Beep()
g_InputButtonJustPressed = TRUE
BEGIN_SCALEFORM_MOVIE_METHOD (SF_MovieIndex, "GET_CURRENT_SELECTION")
Choice_ReturnedSFIndex = END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE()
WHILE NOT IS_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_READY (Choice_ReturnedSFIndex)
WAIT (0)
#if IS_DEBUG_BUILD
cdPrintstring("appCheckList - Waiting on return value from scaleform. 102")
cdPrintnl()
#endif
ENDWHILE
i_Selected_Choice = GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_INT (Choice_ReturnedSFIndex)
#if IS_DEBUG_BUILD
PRINTNL()
PRINTSTRING ("Preliminary checklist app choice was ")
PRINTINT (i_Selected_Choice)
PRINTNL()
#endif
IF g_CellPhone.PhoneDS > PDS_AWAY //make sure that the following state assignment cannot interfere with AWAY or DISABLED assignment.
g_Cellphone.PhoneDS = PDS_COMPLEXAPP
#if IS_DEBUG_BUILD
cdPrintnl()
cdPrintstring("STATE ASSIGNMENT 203. appChecklist assigns PDS_COMPLEXAPP")
cdPrintnl()
#endif
IF i_Selected_Choice = 0 //List open missions here!
eCurrent_Stream = IN_OPEN_MISSIONS_PHASE
Place_Open_Missions_in_Slots()
ELSE
eCurrent_Stream = IN_CHECKLIST_PHASE1
Place_Names_in_ChecklistSlots()
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
PROC Check_For_Checklist_Selection() //Again, could pass stuff in here for context checking depending on screen. Will check all flash stuff.
IF g_InputButtonJustPressed = FALSE
IF Is_Phone_Control_Just_Pressed (FRONTEND_CONTROL, INT_TO_ENUM (CONTROL_ACTION, PHONE_POSITIVE_INPUT)) //positive action. Display details...
Play_Select_Beep()
g_InputButtonJustPressed = TRUE
//i_Selected_CheckList = ENUM_TO_INT (CheckListSlot[LEGACY_SCALEFORM_MOVIE_METHOD(SF_MovieIndex, "GET_CURRENT_SELECTION")])
BEGIN_SCALEFORM_MOVIE_METHOD (SF_MovieIndex, "GET_CURRENT_SELECTION")
Choice_ReturnedSFIndex = END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE()
WHILE NOT IS_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_READY (Choice_ReturnedSFIndex)
WAIT (0)
#if IS_DEBUG_BUILD
cdPrintstring("appChecklist - Waiting on return value from scaleform. 103")
cdPrintnl()
#endif
ENDWHILE
INT i_TestInt = GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_INT(Choice_ReturnedSFIndex)
i_Selected_Checklist = (CheckListSlot[i_TestInt])
#if IS_DEBUG_BUILD
PRINTSTRING("The returned plug-in value was ")
PRINTINT (i_TestInt)
PRINTNL()
PRINTSTRING ("Contents of selected checklist slot is: ")
PRINTINT (i_Selected_CheckList)
PRINTNL()
#endif
IF g_CellPhone.PhoneDS > PDS_AWAY //make sure that the following state assignment cannot interfere with AWAY or DISABLED assignment.
g_Cellphone.PhoneDS = PDS_COMPLEXAPP
#if IS_DEBUG_BUILD
cdPrintnl()
cdPrintstring("STATE ASSIGNMENT 90. appChecklist assigns PDS_COMPLEXAPP")
cdPrintnl()
#endif
ENDIF
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER(SF_MovieIndex, "SET_DATA_SLOT_EMPTY", 18)
//unref hack
IF i_Selected_Checklist = 1
ENDIF
Get_Checklist_Entry_Values_For_Scaleform()
BEGIN_SCALEFORM_MOVIE_METHOD (SF_MovieIndex, "SET_DATA_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(18)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT (0)
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("CELL_3206") //Available...
ADD_TEXT_COMPONENT_INTEGER (SF_PlugInt_1)
END_TEXT_COMMAND_SCALEFORM_STRING()
END_SCALEFORM_MOVIE_METHOD()
BEGIN_SCALEFORM_MOVIE_METHOD (SF_MovieIndex, "SET_DATA_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(18)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT (0)
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("CELL_3101") //Complete...
ADD_TEXT_COMPONENT_INTEGER (SF_PlugInt_2)
END_TEXT_COMMAND_SCALEFORM_STRING()
END_SCALEFORM_MOVIE_METHOD()
/*
INT i_Percentage
i_Percentage = ((SF_PlugInt_2 * 100) / SF_PlugInt_1)
//Percentage calculation needs done here.
BEGIN_SCALEFORM_MOVIE_METHOD (SF_MovieIndex, "SET_DATA_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(18)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(3)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("CELL_3091")
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(i_Percentage) //Calculation result.
//Traffic light colouring
IF i_Percentage < 61
//Red
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(255)
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
//Bronze
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(165)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(131)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(27)
ENDIF
IF i_Percentage > 60
AND i_Percentage < 100
//Amber
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(255)
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(166)
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
//Silver
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(215)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(216)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(247)
ENDIF
IF i_Percentage = 100
//Green
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(255)
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
//Gold
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(238)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(220)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(66)
ENDIF
END_SCALEFORM_MOVIE_METHOD()
*/
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER (SF_MovieIndex, "DISPLAY_VIEW", 18) //19 has been removed?
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_STRING (SF_MovieIndex, "SET_HEADER", CheckListEntry[i_Selected_CheckList].CLE_LABEL)
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_POS, 0,
2, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM) //"Error!" - Positive
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_OTHER, 0,
2, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM) //"Error!" - Other
CLEAR_BIT (BitSet_CellphoneDisplay, g_BS_OTHER_OPTION_IS_DISPLAYED)
IF g_b_ToggleButtonLabels
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_NEG, 1,
4, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_206") //"Back" - Negative
ELSE
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_NEG, 1,
4, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM)
ENDIF
eCurrent_Stream = IN_CHECKLIST_PHASE2
ENDIF
ENDIF
ENDPROC
///*
//PROC OLDCheck_For_Checklist_Selection() //Again, could pass stuff in here for context checking depending on screen. Will check all flash stuff.
//
//
// IF g_InputButtonJustPressed = FALSE
// IF Is_Phone_Control_Just_Pressed (FRONTEND_CONTROL, INT_TO_ENUM (CONTROL_ACTION, PHONE_POSITIVE_INPUT)) //positive action. Display details...
//
//
//
//
// Play_Select_Beep()
//
//
// g_InputButtonJustPressed = TRUE
//
//
//
// //i_Selected_CheckList = ENUM_TO_INT (CheckListSlot[LEGACY_SCALEFORM_MOVIE_METHOD(SF_MovieIndex, "GET_CURRENT_SELECTION")])
//
// BEGIN_SCALEFORM_MOVIE_METHOD (SF_MovieIndex, "GET_CURRENT_SELECTION")
//
// Choice_ReturnedSFIndex = END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE()
//
//
//
//
//
// WHILE NOT IS_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_READY (Choice_ReturnedSFIndex)
//
// WAIT (0)
//
// #if IS_DEBUG_BUILD
//
// cdPrintstring("appChecklist - Waiting on return value from scaleform. 103")
// cdPrintnl()
//
// #endif
//
// ENDWHILE
//
//
//
// INT i_TestInt = GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_INT(Choice_ReturnedSFIndex)
//
// i_Selected_Checklist = (CheckListSlot[i_TestInt])
//
//
// #if IS_DEBUG_BUILD
//
// PRINTSTRING("The returned plug-in value was ")
// PRINTINT (i_TestInt)
//
// PRINTNL()
// PRINTSTRING ("Contents of selected checklist slot is: ")
// PRINTINT (i_Selected_CheckList)
// PRINTNL()
// #endif
//
//
//
// IF g_CellPhone.PhoneDS > PDS_AWAY //make sure that the following state assignment cannot interfere with AWAY or DISABLED assignment.
//
// g_Cellphone.PhoneDS = PDS_COMPLEXAPP
//
// #if IS_DEBUG_BUILD
//
// cdPrintnl()
// cdPrintstring("STATE ASSIGNMENT 90. appChecklist assigns PDS_COMPLEXAPP")
// cdPrintnl()
//
// #endif
//
// ENDIF
//
// LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER(SF_MovieIndex, "SET_DATA_SLOT_EMPTY", 19)
//
//
// //unref hack
// IF i_Selected_Checklist = 1
// ENDIF
//
//
//
//
//
// LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_DATA_SLOT", (TO_FLOAT(19)), (TO_FLOAT(0)),
// INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_3090") //"Details"
//
//
// Get_Checklist_Entry_Values_For_Scaleform()
//
//
// BEGIN_SCALEFORM_MOVIE_METHOD (SF_MovieIndex, "SET_DATA_SLOT")
//
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(19)
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT (0)
//
//
// BEGIN_TEXT_COMMAND_SCALEFORM_STRING("CELL_3206") //Available...
//
// ADD_TEXT_COMPONENT_INTEGER (SF_PlugInt_1)
//
// END_TEXT_COMMAND_SCALEFORM_STRING()
//
//
// END_SCALEFORM_MOVIE_METHOD()
//
//
//
//
// BEGIN_SCALEFORM_MOVIE_METHOD (SF_MovieIndex, "SET_DATA_SLOT")
//
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(19)
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT (0)
//
//
//
// BEGIN_TEXT_COMMAND_SCALEFORM_STRING("CELL_3101") //Complete...
//
// ADD_TEXT_COMPONENT_INTEGER (SF_PlugInt_2)
//
// END_TEXT_COMMAND_SCALEFORM_STRING()
//
//
// END_SCALEFORM_MOVIE_METHOD()
//
//
//
//
//
// INT i_Percentage
//
//
// i_Percentage = ((SF_PlugInt_2 * 100) / SF_PlugInt_1)
//
//
// //Percentage calculation needs done here.
// BEGIN_SCALEFORM_MOVIE_METHOD (SF_MovieIndex, "SET_DATA_SLOT")
//
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(19)
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(3)
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("CELL_3091")
//
//
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(i_Percentage) //Calculation result.
//
// //Traffic light colouring
// IF i_Percentage < 61
//
// //Red
// //SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(255)
// //SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
// //SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
//
// //Bronze
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(165)
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(131)
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(27)
//
//
//
//
// ENDIF
//
// IF i_Percentage > 60
// AND i_Percentage < 100
//
// //Amber
// //SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(255)
// //SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(166)
// //SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
//
// //Silver
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(215)
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(216)
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(247)
//
//
//
// ENDIF
//
// IF i_Percentage = 100
//
// //Green
// //SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
// //SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(255)
// //SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
//
// //Gold
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(238)
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(220)
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(66)
//
//
//
// ENDIF
//
//
// END_SCALEFORM_MOVIE_METHOD()
//
//
//
// LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER (SF_MovieIndex, "DISPLAY_VIEW", 19) //19 has been removed?
//
// LEGACY_SCALEFORM_MOVIE_METHOD_WITH_STRING (SF_MovieIndex, "SET_HEADER", CheckListEntry[i_Selected_CheckList].CLE_LABEL)
//
//
//
//
//
//
// LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_POS, 0,
// 2, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM) //"Error!" - Positive
//
// LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_OTHER, 0,
// 2, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM) //"Error!" - Other
//
// CLEAR_BIT (BitSet_CellphoneDisplay, g_BS_OTHER_OPTION_IS_DISPLAYED)
//
//
// IF g_b_ToggleButtonLabels
// LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_NEG, 1,
// 4, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_206") //"Back" - Negative
// ELSE
// LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING (SF_MovieIndex, "SET_SOFT_KEYS", BADGER_NEG, 1,
// 4, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM)
// ENDIF
//
//
// eCurrent_Stream = IN_CHECKLIST_PHASE2
//
//
// ENDIF
//
//
//
//
//
//
//
//
//
//
//
//
// /*Comment out checklist sort...
// //User changes sorting method.
// IF Is_Phone_Control_Just_Pressed (FRONTEND_CONTROL, INT_TO_ENUM (CONTROL_ACTION, PHONE_SPECIAL_OPTION_INPUT))
//
//
// Play_Select_Beep()
//
//
// g_InputButtonJustPressed = TRUE
//
//
// #if IS_DEBUG_BUILD
// PRINTNL()
// PRINTSTRING ("APPCHECKLIST - Sorting list")
// PRINTNL()
// #endif
//
//
// IF g_CheckListSortingMethod = EARLIEST_FIRST
//
// g_CheckListSortingMethod = LATEST_FIRST
//
// ELSE
//
// g_ChecklistSortingMethod = EARLIEST_FIRST
//
// ENDIF
//
//
// Place_Names_in_CheckListSlots()
//
//
//
// ENDIF
// */
//
//
// ENDIF
//
//
//
//
//ENDPROC
//*/
PROC Cleanup_and_Terminate()
#if IS_DEBUG_BUILD
PRINTNL()
PRINTSTRING ("APPCHECKLIST - appChecklist exiting normally...")
PRINTNL()
#endif
TERMINATE_THIS_THREAD()
ENDPROC
SCRIPT
//Ensure this script persists during network game
NETWORK_SET_SCRIPT_IS_SAFE_FOR_NETWORK_GAME()
//RecalculateResultantPercentageTotal() //from CompletionPercentage_Private.sch //need to get temp_groups to see if any of the filters have been complete.
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER (SF_MovieIndex,"SET_DATA_SLOT_EMPTY", 18)
Fill_CheckListEntries()
Setup_Preliminary_Choice()
WHILE TRUE
WAIT(0)
/*
IF eCurrent_Stream = IN_PRELIM_CHOICE
DISPLAY_TEXT_WITH_LITERAL_STRING (0.15, 0.54, "STRING", "Prelim")
ENDIF
IF eCurrent_Stream = IN_CHECKLIST_PHASE1
DISPLAY_TEXT_WITH_LITERAL_STRING (0.15, 0.54, "STRING", "Phase 1")
ENDIF
IF eCurrent_Stream = IN_CHECKLIST_PHASE2
DISPLAY_TEXT_WITH_LITERAL_STRING (0.15, 0.54, "STRING", "Phase 2")
ENDIF
*/
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
//IF NOT IS_CURRENTLY_ON_MISSION_TO_TYPE() //Investigate why this is forbidden?
Check_for_List_Navigation()
IF eCurrent_Stream = IN_PRELIM_CHOICE
Check_for_Preliminary_Choice_Selection()
ENDIF
//ENDIF
BREAK
CASE PDS_COMPLEXAPP
IF eCurrent_Stream = IN_CHECKLIST_PHASE1
Check_for_List_Navigation()
IF b_GroupingsAvailable
Check_For_Checklist_Selection()
ENDIF
ENDIF
IF eCurrent_Stream = IN_OPEN_MISSIONS_PHASE
Check_For_List_Navigation()
ENDIF
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 eCurrent_Stream = IN_CHECKLIST_PHASE1
OR eCurrent_Stream = IN_OPEN_MISSIONS_PHASE
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER(SF_MovieIndex,"SET_DATA_SLOT_EMPTY", 18)
Setup_Preliminary_Choice()
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 91. appChecklist assigns PDS_RUNNINGAPP")
cdPrintnl()
#endif
ENDIF
ENDIF
IF eCurrent_Stream = IN_CHECKLIST_PHASE2
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER(SF_MovieIndex,"SET_DATA_SLOT_EMPTY", 18)
Place_Names_in_ChecklistSlots()
ENDIF
ENDIF
BREAK
DEFAULT
#if IS_DEBUG_BUILD
PRINTSTRING("AppChecklist 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
/*
[CELL_3002]
Minigames
[CELL_3003]
Oddjobs
[CELL_3202]
- Minigames Available: ~1~
[CELL_3203]
- Oddjobs Available: ~1~
*/