706 lines
19 KiB
XML
Executable File
706 lines
19 KiB
XML
Executable File
//╒═════════════════════════════════════════════════════════════════════════════╕
|
|
//│ Author: Ben Rollinson Date: 27/01/10 │
|
|
//╞═════════════════════════════════════════════════════════════════════════════╡
|
|
//│ │
|
|
//│ Heist Global Variables │
|
|
//│ │
|
|
//│ Contains all variable data that needs to be accessible to │
|
|
//│ multiple heist scripts. Includes the saved data struct for │
|
|
//│ heists. │
|
|
//│ │
|
|
//╘═════════════════════════════════════════════════════════════════════════════╛
|
|
|
|
USING "types.sch"
|
|
USING "model_enums.sch"
|
|
USING "weapon_enums.sch"
|
|
|
|
|
|
//═══════════════════════════════════════════════════════════════════════════════
|
|
//══════════════════════════╡ Data not to be saved ╞═════════════════════════════
|
|
//═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
|
|
//════════════════════════════╡ Heist Indexes ╞═══════════════════════════════
|
|
CONST_INT NO_HEISTS 5
|
|
|
|
CONST_INT HEIST_JEWEL 0
|
|
CONST_INT HEIST_DOCKS 1
|
|
CONST_INT HEIST_RURAL_BANK 2
|
|
CONST_INT HEIST_AGENCY 3
|
|
CONST_INT HEIST_FINALE 4
|
|
|
|
|
|
//═════════════════════╡ Heist Mission Choice Globals ╞═══════════════════════
|
|
|
|
//General choice values.
|
|
CONST_INT HEIST_CHOICE_EMPTY 0
|
|
|
|
//Jewelry Heist choices.
|
|
CONST_INT HEIST_CHOICE_JEWEL_STEALTH 1
|
|
CONST_INT HEIST_CHOICE_JEWEL_HIGH_IMPACT 2
|
|
|
|
//Docks Heist choices.
|
|
CONST_INT HEIST_CHOICE_DOCKS_BLOW_UP_BOAT 3
|
|
CONST_INT HEIST_CHOICE_DOCKS_DEEP_SEA 4
|
|
|
|
//Rural Bank Heist choices.
|
|
CONST_INT HEIST_CHOICE_RURAL_NO_TANK 5
|
|
|
|
//Agency Heist choices.
|
|
CONST_INT HEIST_CHOICE_AGENCY_FIRETRUCK 6
|
|
CONST_INT HEIST_CHOICE_AGENCY_HELICOPTER 7
|
|
|
|
//Finale Heist choices.
|
|
CONST_INT HEIST_CHOICE_FINALE_TRAFFCONT 8
|
|
CONST_INT HEIST_CHOICE_FINALE_HELI 9
|
|
|
|
CONST_INT MAX_HEIST_CHOICES 10
|
|
|
|
|
|
//════════════════════════╡ Planning Board Enums ╞═══════════════════════════
|
|
|
|
//Interactions.
|
|
ENUM g_eBoardInteractions
|
|
INTERACT_POI_OVERVIEW,
|
|
INTERACT_CREW,
|
|
INTERACT_GAMEPLAY_CHOICE,
|
|
|
|
//These two should always be last.
|
|
INTERACT_MAX,
|
|
INTERACT_NONE
|
|
ENDENUM
|
|
|
|
//Modes.
|
|
ENUM g_eBoardModes
|
|
PBM_VIEW = 0,
|
|
PBM_POI_OVERVIEW,
|
|
PBM_CREW_SELECT,
|
|
PBM_CHOICE_SELECT,
|
|
PBM_CONFIRM,
|
|
|
|
PBM_INVALID
|
|
ENDENUM
|
|
|
|
//Display groups.
|
|
ENUM g_eBoardDisplayGroups
|
|
PBDG_0,
|
|
PBDG_1,
|
|
PBDG_2,
|
|
PBDG_3,
|
|
PBDG_4,
|
|
PBDG_5,
|
|
PBDG_6,
|
|
PBDG_7,
|
|
PBDG_8,
|
|
PBDG_9,
|
|
PBDG_10,
|
|
PBDG_11,
|
|
|
|
//These two should always be last.
|
|
PBDG_MAX,
|
|
PBDG_INVALID
|
|
ENDENUM
|
|
|
|
|
|
//═════════════════════════╡ Crew Memeber Globals ╞═══════════════════════════
|
|
|
|
CONST_INT MAX_CREW_SIZE 5
|
|
|
|
//Crew memeber selection pool.
|
|
ENUM CrewMember
|
|
CM_EMPTY = 0,
|
|
|
|
//Permanent.
|
|
CM_GUNMAN_G_GUSTAV,
|
|
CM_GUNMAN_G_KARL,
|
|
CM_GUNMAN_M_HUGH,
|
|
CM_GUNMAN_B_NORM,
|
|
CM_GUNMAN_B_DARYL,
|
|
CM_HACKER_G_PAIGE,
|
|
CM_HACKER_M_CHRIS,
|
|
CM_DRIVER_G_EDDIE,
|
|
CM_DRIVER_B_KARIM,
|
|
|
|
//Unlockable.
|
|
CM_GUNMAN_G_PACKIE_UNLOCK,
|
|
CM_GUNMAN_G_CHEF_UNLOCK,
|
|
CM_HACKER_B_RICKIE_UNLOCK,
|
|
CM_DRIVER_G_TALINA_UNLOCK,
|
|
|
|
CM_MAX_CREW_MEMBERS,
|
|
CM_ERROR
|
|
ENDENUM
|
|
|
|
|
|
//Crew member types.
|
|
ENUM CrewMemberType
|
|
CMT_EMPTY,
|
|
CMT_GUNMAN,
|
|
CMT_HACKER,
|
|
CMT_DRIVER,
|
|
|
|
CMT_MAX_CREW_TYPES,
|
|
CMT_ERROR
|
|
ENDENUM
|
|
|
|
|
|
//Crew member specialist skill levels.
|
|
ENUM CrewMemberSkill
|
|
CMSK_BAD = 0,
|
|
CMSK_MEDIUM,
|
|
CMSK_GOOD
|
|
ENDENUM
|
|
|
|
|
|
//Crew member statuses.
|
|
ENUM CrewMemberStatus
|
|
CMST_NOT_SET, //Default state when no status has been set.
|
|
CMST_FINE, //Crew member was untouched.
|
|
CMST_INJURED, //Crew member was badly injured.
|
|
CMST_KILLED //Crew member was killed in action.
|
|
ENDENUM
|
|
|
|
|
|
//Crew member type specific stats.
|
|
//Gunmen.
|
|
ENUM CrewGunmanStat
|
|
CGS_MAX_HEALTH = 0,
|
|
CGS_ACCURACY,
|
|
CGS_SHOOT_RATE,
|
|
CGS_WEAPON_CHOICE
|
|
ENDENUM
|
|
//Hackers.
|
|
ENUM CrewHackerStat
|
|
CHS_SYS_KNOWLEDGE = 0,
|
|
CHS_DECRYPT_SKILL,
|
|
CHS_ACCESS_SPEED
|
|
ENDENUM
|
|
//Drivers.
|
|
ENUM CrewDriverStat
|
|
CDS_DRIVING_SKILL = 0,
|
|
CDS_COMPOSURE,
|
|
CDS_VEHICLE_CHOICE
|
|
ENDENUM
|
|
|
|
|
|
//Component variation indexes.
|
|
//Components.
|
|
CONST_INT CM_COMP_HEAD 0
|
|
CONST_INT CM_COMP_HAIR 1
|
|
CONST_INT CM_COMP_UPPER 2
|
|
CONST_INT CM_COMP_LOWER 3
|
|
CONST_INT CM_COMP_FEET 4
|
|
CONST_INT CM_COMP_ACCS 5
|
|
CONST_INT CM_COMP_MAX 6
|
|
|
|
//Component elements.
|
|
CONST_INT CM_COMP_ELEMENT_DRAWABLE 0
|
|
CONST_INT CM_COMP_ELEMENT_TEXTURE 1
|
|
CONST_INT CM_COMP_ELEMENT_MAX 2
|
|
|
|
|
|
STRUCT CrewMemberStaticData
|
|
CrewMemberType type
|
|
INT jobCut
|
|
INT headVariation
|
|
INT defaultOutfitVariation
|
|
MODEL_NAMES model
|
|
ENDSTRUCT
|
|
CrewMemberStaticData g_sCrewMemberStaticData[CM_MAX_CREW_MEMBERS]
|
|
|
|
|
|
STRUCT CrewMemberActiveData
|
|
CrewMemberSkill skill
|
|
INT statsA
|
|
INT statsB
|
|
ENDSTRUCT
|
|
|
|
|
|
//══════════════════════════╡ Planning Location Globals ╞═════════════════════════════
|
|
|
|
ENUM PlanningLocationName
|
|
PLN_STRIPCLUB,
|
|
PLN_SWEATSHOP,
|
|
PLN_METH_LAB,
|
|
PLN_TREV_CITY,
|
|
|
|
PLN_MAX_PLANNING_LOCATIONS,
|
|
PLN_ERROR
|
|
ENDENUM
|
|
|
|
STRUCT PlanningLocationData
|
|
VECTOR vPlanningLocation
|
|
VECTOR vPlanningLocationBoard
|
|
FLOAT fPlanningLocationBoardHeading
|
|
TEXT_LABEL_31 tPlanningLocationRoomName
|
|
ENDSTRUCT
|
|
PlanningLocationData g_sPlanningLocationData[PLN_MAX_PLANNING_LOCATIONS]
|
|
|
|
|
|
//═══════════════════════════╡ Heist Data Storage ╞═══════════════════════════════
|
|
|
|
CONST_INT MAX_BOARD_CONVERSATIONS 4
|
|
CONST_INT MAX_BOARD_STATIC_ITEMS 22
|
|
CONST_INT MAX_BOARD_TODO_ITEMS 9
|
|
CONST_INT MAX_BOARD_PINS 20
|
|
CONST_INT MAX_BOARD_POIS 7
|
|
|
|
//Crew used bitflags.
|
|
CONST_INT CREW_USED_JEWEL_GUSTAV 0
|
|
CONST_INT CREW_USED_JEWEL_PACKIE 1
|
|
CONST_INT CREW_USED_JEWEL_CHRIS 2
|
|
CONST_INT CREW_USED_JEWEL_RICKIE 3
|
|
CONST_INT CREW_USED_JEWEL_PAIGE 4
|
|
CONST_INT CREW_USED_JEWEL_EDDIE 5
|
|
CONST_INT CREW_USED_JEWEL_KARIM 6
|
|
CONST_INT CREW_USED_PALETO_GUSTAV 7
|
|
CONST_INT CREW_USED_PALETO_PACKIE 8
|
|
CONST_INT CREW_USED_PALETO_CHEF 9
|
|
CONST_INT CREW_USED_AGENCY_GUSTAV 10
|
|
CONST_INT CREW_USED_AGENCY_PACKIE 11
|
|
CONST_INT CREW_USED_AGENCY_DARYL 12
|
|
CONST_INT CREW_USED_AGENCY_HUGH 13
|
|
CONST_INT CREW_USED_AGENCY_CHRIS 14
|
|
CONST_INT CREW_USED_AGENCY_RICKIE 15
|
|
CONST_INT CREW_USED_AGENCY_EDDIE 16
|
|
CONST_INT CREW_USED_AGENCY_NORM 17
|
|
CONST_INT CREW_USED_AGENCY_KARIM 18
|
|
CONST_INT CREW_USED_AGENCY_PAIGE 19
|
|
CONST_INT CREW_USED_AGENCY_TALINA 20
|
|
CONST_INT CREW_USED_MAX 21
|
|
|
|
|
|
ENUM BoardDialogueSlot
|
|
BDS_CONFIRM = 0,
|
|
BDS_CHOICE_SELECT,
|
|
BDS_CREW_SELECT,
|
|
BDS_TOO_SLOW,
|
|
|
|
BDS_POI_1,
|
|
BDS_POI_2,
|
|
BDS_POI_3,
|
|
BDS_POI_4,
|
|
BDS_POI_5,
|
|
BDS_POI_6,
|
|
BDS_POI_7,
|
|
|
|
BDS_MAX_SLOTS
|
|
ENDENUM
|
|
|
|
ENUM CrewDialogueSlot
|
|
CRDS_PICK_GUSTAV = 1,
|
|
CRDS_PICK_KARL,
|
|
CRDS_PICK_HUGH,
|
|
CRDS_PICK_NORM,
|
|
CRDS_PICK_DARYL,
|
|
CRDS_PICK_PAIGE,
|
|
CRDS_PICK_CHRIS,
|
|
CRDS_PICK_EDDIE,
|
|
CRDS_PICK_KARIM,
|
|
CRDS_PICK_PACKIE,
|
|
CRDS_PICK_CHEF,
|
|
CRDS_PICK_RICKIE,
|
|
CRDS_PICK_TALINA,
|
|
|
|
CRDS_MET_PACKIE,
|
|
CRDS_MET_RICKIE,
|
|
CRDS_MET_TALINA,
|
|
CRDS_MET_CHEF,
|
|
|
|
CRDS_USED_JEWEL,
|
|
CRDS_USED_PALETO,
|
|
CRDS_USED_AGENCY,
|
|
CRDS_USED_JEWEL_PALETO,
|
|
CRDS_USED_JEWEL_AGENCY,
|
|
CRDS_USED_ALL,
|
|
CRDS_USED_RICKIE_LAST_ONE,
|
|
CRDS_USED_RICKIE_LAST_TWO,
|
|
CRDS_USED_KARIM_LAST_ONE,
|
|
CRDS_USED_KARIM_LAST_TWO,
|
|
CRDS_USED_CHRIS_JEWEL,
|
|
CRDS_USED_CHRIS_AGENCY,
|
|
CRDS_USED_CHRIS_JEWEL_AGENCY,
|
|
CRDS_USED_BADG_AGENCY,
|
|
|
|
CRDS_MAX_SLOTS
|
|
ENDENUM
|
|
|
|
ENUM HeistChoiceDialogueSlot
|
|
HCDS_CHOICE,
|
|
HCDS_GUNMAN,
|
|
HCDS_DRIVER,
|
|
HCDS_HACKER,
|
|
HCDS_EXIT,
|
|
|
|
CDS_MAX_SLOTS
|
|
ENDENUM
|
|
|
|
STRUCT BoardPixel
|
|
INT x
|
|
INT y
|
|
ENDSTRUCT
|
|
|
|
|
|
STRUCT HeistBoardData
|
|
STATIC_BLIP_NAME_ENUM blipHeist
|
|
PlanningLocationName ePlanningLocation
|
|
|
|
INT iScaleformPixelWidth
|
|
INT iScaleformPixelHeight
|
|
FLOAT fScaleformWidth
|
|
FLOAT fScaleformHeight
|
|
FLOAT fScaleformXScale
|
|
FLOAT fScaleformYScale
|
|
FLOAT fCameraDistance
|
|
FLOAT fMaxZoom
|
|
FLOAT fChoiceZoom
|
|
FLOAT fPOIZoom
|
|
|
|
BoardPixel sDefaultFocusPos
|
|
BoardPixel sListBoardPos
|
|
|
|
BoardPixel sChoiceBoardPos
|
|
BoardPixel sChoiceCameraOffset
|
|
TEXT_LABEL_15 tChoiceHelp[2]
|
|
g_eBoardDisplayGroups eChoiceGroup
|
|
g_eBoardDisplayGroups eChoiceSelectedGroup[2]
|
|
|
|
INT iNoBoardPins
|
|
BoardPixel sPinPos[MAX_BOARD_PINS]
|
|
g_eBoardDisplayGroups ePinGroup[MAX_BOARD_PINS]
|
|
|
|
INT iMaxCrewSize
|
|
BoardPixel sCrewBoardPos[MAX_CREW_SIZE]
|
|
TEXT_LABEL_15 tCrewHelp[2]
|
|
|
|
INT iNoStaticItems
|
|
INT iStaticItemAsset[MAX_BOARD_STATIC_ITEMS]
|
|
BoardPixel sStaticItemPos[MAX_BOARD_STATIC_ITEMS]
|
|
g_eBoardDisplayGroups eStaticItemGroup[MAX_BOARD_STATIC_ITEMS]
|
|
|
|
INT iNoTodoItems
|
|
g_eBoardDisplayGroups eTodoListGroup
|
|
TEXT_LABEL_15 tTodoItemText[MAX_BOARD_TODO_ITEMS]
|
|
g_eBoardDisplayGroups eTodoItemAppearGroup[MAX_BOARD_TODO_ITEMS]
|
|
g_eBoardDisplayGroups eTodoItemTickGroup[MAX_BOARD_TODO_ITEMS]
|
|
|
|
TEXT_LABEL_15 tBoardScaleform
|
|
TEXT_LABEL_15 tBoardText
|
|
TEXT_LABEL_7 tBoardDialogueSlot
|
|
TEXT_LABEL_7 tCrewDialogueSlot
|
|
TEXT_LABEL_7 tBoardDialogueLabels[BDS_MAX_SLOTS]
|
|
INT iBitsetBoardDialoguePlayed
|
|
TEXT_LABEL_7 tCrewDialogueLabels[CRDS_MAX_SLOTS]
|
|
|
|
INT iNoPointsOfInterest
|
|
INT iPOIDelayBeforeNextBitset
|
|
BoardPixel sPOIPos[MAX_BOARD_POIS]
|
|
g_eBoardDisplayGroups ePOIGroup[MAX_BOARD_POIS]
|
|
|
|
VECTOR vAreaBlockCenter
|
|
VECTOR vAreaBlockDimensions
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
BOOL bDebugDrawCenter = FALSE
|
|
BOOL bDebugDrawDefaultFocus = FALSE
|
|
BOOL bDebugDrawStickFocus = FALSE
|
|
BOOL bDebugDrawGrid = FALSE
|
|
BOOL bDebugDrawPins = FALSE
|
|
BOOL bDebugDrawPOIs = FALSE
|
|
BOOL bDebugDrawStaticItems = FALSE
|
|
|
|
BOOL bDebugDrawingEnabled = FALSE
|
|
BOOL bBoardWidgetCreated = FALSE
|
|
BOOL bRefreshBoard = FALSE
|
|
BOOL bRefreshViews = FALSE
|
|
INT iModeWidget
|
|
#ENDIF
|
|
ENDSTRUCT
|
|
|
|
BOOL g_bHeistBoardViewActive = FALSE
|
|
INT g_iBitsetHeistBoardUpdated //Flags if a change has been made to the board that the heist controller needs to deal with.
|
|
INT g_iBitsetHeistBoardPinned //Flags if a heist planning board should be forced to load, create and remain created until unpinned.
|
|
INT g_iBitsetHeistBoardLoaded //Flags if a heist planning board is currently loaded.
|
|
INT g_iBitsetHeistBoardAllowCreation //Allows a heist planning board that is pinned in memory to create. Used to control the exact frame the board creates on.
|
|
|
|
//Temporary crew member stat values to be held during a heist
|
|
//to be used to track stat increases that will be made permanent
|
|
//if the heist is passed.
|
|
STRUCT HeistTempCrewStats
|
|
BOOL statsIncreased
|
|
INT statsA
|
|
INT statsB
|
|
ENDSTRUCT
|
|
HeistTempCrewStats g_sHeistTempStats[MAX_CREW_SIZE]
|
|
BOOL g_bHeistTempCrewStatsPrimed = FALSE
|
|
|
|
STRUCT HeistChoiceData
|
|
INT iCrewSize
|
|
CrewMemberType eCrewType[MAX_CREW_SIZE]
|
|
TEXT_LABEL_7 tChoiceDialogueLabels[CDS_MAX_SLOTS]
|
|
INT iBitsetChoiceDialoguePlayed
|
|
ENDSTRUCT
|
|
HeistChoiceData g_sHeistChoiceData[MAX_HEIST_CHOICES]
|
|
|
|
//═══════════════════════════╡ End Screen Globals ╞═══════════════════════════════
|
|
|
|
|
|
CONST_INT MAX_END_SCREEN_EXPENSES 10
|
|
|
|
|
|
STRUCT HeistEndScreen
|
|
FLOAT fXOffset = 0.8
|
|
INT iAlpha = 0
|
|
|
|
INT iTimeDisplayed = 0
|
|
BOOL bSformeUploadDone
|
|
SCALEFORM_INDEX pieChart
|
|
SCALEFORM_INDEX continueButton
|
|
|
|
FLOAT fLesterPercentage //-1 means not present
|
|
INT iLesterTotal
|
|
|
|
INT iHeistTimer
|
|
|
|
INT iExpenses
|
|
ENDSTRUCT
|
|
HeistEndScreen sEndScreen
|
|
|
|
|
|
ENUM HEIST_TIME_WINDOW_ENUM
|
|
UNSET_HEIST_TIME_WINDOW,
|
|
|
|
HEIST_TIME_WINDOW_JC_FRANKLIN_TO_ROOF,
|
|
HEIST_TIME_WINDOW_JC_DRIVE_TO_JOB_TIME,
|
|
HEIST_TIME_WINDOW_JC_LOOTING_TIME,
|
|
HEIST_TIME_WINDOW_JC_MOTORBIKE_CHASE_TIME,
|
|
|
|
TOTAL_HEIST_TIME_WINDOWS
|
|
ENDENUM
|
|
|
|
CONST_INT MAX_HEIST_TIME_WINDOW_ENUM_ENTRIES 5
|
|
|
|
|
|
ENUM HEIST_ENDSCREEN_GEAR_ENUM
|
|
//UNSET_HEIST_ENDSCREEN_GEAR_ENUM = -1,
|
|
|
|
HEIST_GEAR_GAS_GRENADE,
|
|
HEIST_GEAR_REMOTE_RIFLE,
|
|
|
|
TOTAL_HEIST_ENDSCREEN_GEAR_ENTRIES
|
|
ENDENUM
|
|
|
|
CONST_INT MAX_HEIST_GEAR_ENUM_ENTRIES 5
|
|
|
|
|
|
ENUM HEIST_ENDSCREEN_PENALTY_ENUM
|
|
|
|
HEIST_PENALTY_MONEY_DROPPED,
|
|
|
|
HEIST_PENALTY_JCVAN,//JC heist van damage
|
|
HEIST_PENALTY_JCHOUSE,//Madrazzo house damage
|
|
|
|
HEIST_PENALTY_AGENTCUT,
|
|
|
|
HEIST_PENALTY_UNSELLABLE_WEAPON,
|
|
|
|
HEIST_PENALTY_BIGS_SLOW_LOADING,
|
|
HEIST_PENALTY_HOSTAGE_GIFT,
|
|
|
|
TOTAL_HEIST_ENDSCREEN_PENALTY_ENTRIES
|
|
ENDENUM
|
|
|
|
CONST_INT MAX_HEIST_PENALTY_ENUM_ENTRIES 5
|
|
|
|
|
|
STRUCT HeistEndScreenData
|
|
INT iPotentialTake //total they could have taken
|
|
INT iActualTake //total they did take
|
|
INT iPlayerTake[3] //used to distribute rewards to player accounts seperate from display
|
|
FLOAT fPlayerPercentage[3] // -1 means not present
|
|
|
|
INT iTimeTaken // how long it took the player to complete the heist (used in repeat play menu stats)
|
|
CrewMemberStatus eCrewStatus[MAX_CREW_SIZE]
|
|
INT iCrewMemberTake[MAX_CREW_SIZE]
|
|
ENDSTRUCT
|
|
|
|
|
|
STRUCT HEIST_NONE_SAVED_DATA
|
|
|
|
//Time windows
|
|
BOOL bTimeWindowOpen[MAX_HEIST_TIME_WINDOW_ENUM_ENTRIES]
|
|
INT iTimeWindowMSValue[MAX_HEIST_TIME_WINDOW_ENUM_ENTRIES]
|
|
HEIST_TIME_WINDOW_ENUM eTimeWindowSource[MAX_HEIST_TIME_WINDOW_ENUM_ENTRIES]
|
|
|
|
//Heist gear buffer
|
|
HEIST_ENDSCREEN_GEAR_ENUM GearUsed[MAX_HEIST_GEAR_ENUM_ENTRIES]
|
|
INT iGearLogged
|
|
|
|
//Penalty buffer
|
|
HEIST_ENDSCREEN_PENALTY_ENUM Penalties[MAX_HEIST_PENALTY_ENUM_ENTRIES]
|
|
INT iPenaltiesValues[MAX_HEIST_PENALTY_ENUM_ENTRIES]
|
|
INT iPenaltiesLogged
|
|
|
|
ENDSTRUCT
|
|
|
|
HEIST_NONE_SAVED_DATA g_HeistNoneSavedDatas[NO_HEISTS]
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
INT g_iDebugHeistDoCrewSelection = 0
|
|
INT g_iDebugChoiceSelection[NO_HEISTS]
|
|
#ENDIF
|
|
|
|
//═══════════════════════╡ Misc Heist Mission stuff ╞════════════════════════════
|
|
|
|
//Jewel Heist
|
|
//INT g_iJewelHeistPlayedCounter
|
|
BOOL g_bJewelStoreJobSeeCarCrashOnce
|
|
BOOL g_bLateLeaveJewelStore
|
|
BOOL g_JH2AGarbageTruckSeen
|
|
BOOL g_bBirdsJHeist
|
|
INT g_iJewelPrep1AVanHealth = 1000
|
|
|
|
//Paleto Score
|
|
INT g_iPaletoScoreTake = 0
|
|
|
|
//FBI Agency
|
|
BOOL g_bCalled911BeforeText = FALSE
|
|
|
|
//Heist take displays
|
|
CONST_INT HEIST_TAKE_DISPLAY_FLASH_TIME 5000
|
|
|
|
//═══════════════════════════════════════════════════════════════════════════════
|
|
//════════════════════════════╡ End screen display settings ╞════════════════════
|
|
//═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
CONST_INT HEIST_SCREEN_MAX_CREW 9
|
|
|
|
|
|
ENUM HEIST_END_SCREEN_CREW_ENTRY_TYPE
|
|
HENDSCR_PLAYER,
|
|
HENDSCR_EXTRA,//lester etc.
|
|
HENDSCR_GUNMAN,
|
|
HENDSCR_HACKER,
|
|
HENDSCR_DRIVER
|
|
|
|
ENDENUM
|
|
|
|
|
|
|
|
|
|
|
|
//used to set the values
|
|
STRUCT HEIST_END_SCREEN_RAW_DATA
|
|
|
|
//crewlist, left col
|
|
INT iCrewTotal
|
|
INT iCrewDead
|
|
|
|
INT iCrewDollars[HEIST_SCREEN_MAX_CREW]
|
|
HEIST_END_SCREEN_CREW_ENTRY_TYPE eCrewTypes[HEIST_SCREEN_MAX_CREW]
|
|
FLOAT fCrewPercentages[HEIST_SCREEN_MAX_CREW]
|
|
TEXT_LABEL iCrewNames[HEIST_SCREEN_MAX_CREW]
|
|
TEXT_LABEL iCrewImages[HEIST_SCREEN_MAX_CREW]
|
|
BOOL bKIA[HEIST_SCREEN_MAX_CREW]
|
|
//crew stat dump - this is a subset of the crewlist, find which maps to which with indices
|
|
INT iCrewStatTotal
|
|
INT iCrewStatIndices[HEIST_SCREEN_MAX_CREW] //
|
|
|
|
INT iCrewStatsForThisMember[HEIST_SCREEN_MAX_CREW]
|
|
//INT iCrewStatTypeEnum[HEIST_SCREEN_MAX_CREW][5] //redundant
|
|
FLOAT fCrewStatCurrentPerc[HEIST_SCREEN_MAX_CREW][5]
|
|
FLOAT fCrewStatAdditionalPerc[HEIST_SCREEN_MAX_CREW][5]
|
|
|
|
|
|
FLOAT fStatPercBlend
|
|
|
|
//overview top
|
|
INT iActual
|
|
INT iTotal
|
|
|
|
INT iHeistIndex
|
|
ENDSTRUCT
|
|
|
|
//used to position the boxes,
|
|
//text within elements takes it's position relative to these
|
|
STRUCT HEIST_END_SCREEN_ELEMENT_POSITIONS
|
|
|
|
BOOL bSet//if this is set to false then the end screen will set these values to default
|
|
//then set this to true
|
|
|
|
//Title text anchor
|
|
FLOAT fAnchorCrewNameX
|
|
FLOAT fAnchorCrewNameY
|
|
|
|
FLOAT fSeperationX
|
|
FLOAT fSeperationY
|
|
|
|
|
|
FLOAT fHeadersX
|
|
FLOAT fHeadersY
|
|
FLOAT fHeadersW
|
|
FLOAT fHeadersH
|
|
|
|
FLOAT fHeadersToContentY
|
|
|
|
FLOAT fContentCrewAdvanceY
|
|
FLOAT fContentStatAdvanceY
|
|
|
|
FLOAT fContentOverviewY
|
|
FLOAT fContentOverviewLineY
|
|
|
|
//subsection values
|
|
FLOAT fTopLinerY
|
|
|
|
FLOAT fTopCrewListColourBarX
|
|
|
|
FLOAT fCrewStatTitleY
|
|
|
|
FLOAT fCrewStatBarW
|
|
FLOAT fCrewStatBarH
|
|
|
|
FLOAT fCrewStatScrollBarH
|
|
|
|
|
|
INT bargb[HEIST_SCREEN_MAX_CREW][3]
|
|
|
|
INT topcol[3]
|
|
INT titlecol[3]
|
|
|
|
INT lightAlpha
|
|
INT darkAlpha
|
|
|
|
|
|
//0.03888
|
|
FLOAT fontSizeHeading
|
|
FLOAT fontSizeLarge
|
|
FLOAT fontSizeMedium
|
|
FLOAT fontSizeTiny
|
|
|
|
|
|
ENDSTRUCT
|
|
|
|
//HEIST_END_SCREEN_RAW_DATA g_HeistEndScreenRawData
|
|
//HEIST_END_SCREEN_ELEMENT_POSITIONS g_HeistEndScreenRawPositions
|
|
|
|
//═══════════════════════════════════════════════════════════════════════════════
|
|
//════════════════════════════╡ Data to be saved ╞═══════════════════════════════
|
|
//═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
STRUCT HeistSaved
|
|
BOOL bChoiceHelpDisplayed[NO_HEISTS]
|
|
BOOL bCrewHelpDisplayed[NO_HEISTS]
|
|
CrewMember eSelectedCrew[MAX_HEIST_CHOICES][MAX_CREW_SIZE]
|
|
CrewMemberActiveData sCrewActiveData[CM_MAX_CREW_MEMBERS]
|
|
INT iCrewUnlockedBitset
|
|
INT iCrewUsedBitset
|
|
INT iCrewDeadBitset
|
|
INT iCrewDialogueBitset
|
|
INT iDisplayGroupVisibleBitset[NO_HEISTS]
|
|
HeistEndScreenData sEndScreenData[NO_HEISTS]
|
|
ENDSTRUCT
|
|
|
|
|
|
|