34902 lines
1.6 MiB
Plaintext
Executable File
34902 lines
1.6 MiB
Plaintext
Executable File
CONST_INT USE_TU_CHANGES 1
|
|
|
|
// Includes
|
|
USING "rage_builtins.sch"
|
|
USING "globals.sch"
|
|
USING "cellphone_public.sch"
|
|
USING "commands_script.sch"
|
|
USING "commands_misc.sch"
|
|
USING "commands_graphics.sch"
|
|
USING "commands_pad.sch"
|
|
USING "commands_network.sch"
|
|
USING "website_private.sch"
|
|
USING "net_ambience.sch"
|
|
USING "net_saved_vehicles.sch"
|
|
USING "net_realty_new.sch"
|
|
USING "net_comms_public.sch"
|
|
USING "achievement_public.sch"
|
|
|
|
USING "commands_recording.sch"
|
|
|
|
USING "FMMC_Keyboard.sch" //required for onscreen keyboard handling.
|
|
USING "net_cash_transactions.sch"
|
|
USING "charsheet_public.sch"
|
|
|
|
USING "net_heartbeat.sch"
|
|
|
|
USING "net_gang_boss.sch"
|
|
USING "net_office.sch"
|
|
USING "svm_mission_flow.sch"
|
|
|
|
USING "net_arena_wars_career.sch"
|
|
USING "net_casino_menu.sch"
|
|
|
|
// Constants
|
|
CONST_INT SCALEFORM_KEYBOARD_FLAG_INDEX 0
|
|
CONST_INT SCALEFORM_BACKBUTTON_FLAG_INDEX 1
|
|
CONST_INT SCALEFORM_HISTORY_FLAG_INDEX 2
|
|
CONST_INT SCALEFORM_FAVES_COUNT_FLAG_INDEX 3
|
|
CONST_INT SCALEFORM_BROWSER_CLOSE 5
|
|
CONST_INT SCALEFORM_YACHT_DATA 11
|
|
CONST_INT SCALEFORM_OFFICE_DATA 12
|
|
CONST_INT SCALEFORM_CLUBHOUSE_DATA 13
|
|
CONST_INT SCALEFORM_OFFICE_GARAGE_A_DATA 14
|
|
CONST_INT SCALEFORM_OFFICE_GARAGE_B_DATA 15
|
|
CONST_INT SCALEFORM_TRUCK_DATA 17
|
|
CONST_INT SCALEFORM_PLANE_DATA 18
|
|
CONST_INT SCALEFORM_ARENA_WARS_DATA 19
|
|
CONST_INT SCALEFORM_CASINO_DATA 11 //url:bugstar:5654253
|
|
|
|
// Variables
|
|
BOOL bPanicShutdownStart
|
|
BOOL bRefreshButtons = FALSE
|
|
BOOL bShowingBackButton = FALSE
|
|
BOOL bKeyboardHelp = FALSE
|
|
BOOL bControlsEnabled = FALSE
|
|
BOOL bIHidRadar = FALSE
|
|
BOOL bIDisabledCarRadio = FALSE, bIDisabledAptRadio = FALSE
|
|
BOOL bUpdatedEyeFindNewsThisFrame = TRUE // used to prevent double update on news when set for child content not being loaded
|
|
BOOL bActivatedMultiheadBlinders = FALSE // Used to make sure the multihead blinders are cleaned up only if created locally
|
|
|
|
//browser handle
|
|
SCALEFORM_INDEX mov = NULL
|
|
SCALEFORM_INDEX buttons = NULL
|
|
SCALEFORM_INDEX nagScreen = NULL
|
|
|
|
|
|
|
|
INT iLastClickedPropertyIndex = -1
|
|
INT iCustomAptVariant = 1
|
|
BOOL bCustomInteriorSelected = FALSE
|
|
INT iBoughtPropertyIndex = -1
|
|
FACTORY_ID eBoughtFactoryIndex = FACTORY_ID_INVALID
|
|
HANGAR_ID eBoughtHangarIndex = HANGAR_ID_INVALID
|
|
DEFUNCT_BASE_ID eBoughtDefunctBaseIndex = DEFUNCT_BASE_ID_INVALID
|
|
NIGHTCLUB_ID eBoughtNightclubIndex = NIGHTCLUB_ID_INVALID
|
|
ARENA_GARAGE_ID eBoughtArenaIndex = ARENA_GARAGE_ID_INVALID
|
|
ARCADE_PROPERTY_ID eBoughtArcadeIndex = ARCADE_PROPERTY_ID_INVALID
|
|
AUTO_SHOP_PROPERTY_ID eBoughtAutoShopIndex = AUTO_SHOP_PROPERTY_ID_INVALID
|
|
CASINO_APT_ID eBoughtCasinoIndex = CASINO_APARTMENT_ID_INVALID
|
|
#IF FEATURE_FIXER
|
|
FIXER_HQ_ID eBoughtFixerHQIndex = FIXER_HQ_ID_INVALID
|
|
#ENDIF
|
|
|
|
INT iBoughtCasinoPreset = -1
|
|
|
|
BOOL bPreviousPegasus = FALSE
|
|
INT ChildInitStage = 0
|
|
INT iCurrentSiteTimer = 0
|
|
BOOL bTVOn = FALSE
|
|
INT iTVOnTimeoutFrameCount = -1
|
|
|
|
BOOL bVideoDisabled = FALSE
|
|
|
|
WEBSITE_INDEX_ENUM eStaticLastSite = INVALID_WEBSITE_INDEX
|
|
WEBSITE_INDEX_ENUM eStaticCurrentSite = INVALID_WEBSITE_INDEX
|
|
INT iStaticLastPage = -1
|
|
INT iStaticCurrentPage = -1
|
|
INT iStaticHistory = -1
|
|
BOOL bPopulatePropertySitePinMap = FALSE
|
|
TEXT_LABEL_63 tl63sPopulatePropertySitePinMap = ""
|
|
|
|
TEXT_LABEL_63 tl63sPropertyResultsWebpage = ""
|
|
|
|
BOOL bLeftShoulder = FALSE
|
|
BOOL bLeftShoulder2 = FALSE
|
|
BOOL bRightShoulder = FALSE
|
|
BOOL bRightShoulder2 = FALSE
|
|
BOOL bDPadUp = FALSE
|
|
BOOL bDPadDown = FALSE
|
|
BOOL bDPadLeft = FALSE
|
|
BOOL bDPadRight = FALSE
|
|
BOOL bPadSelect = FALSE
|
|
BOOL bPadTriangle = FALSE
|
|
BOOL bPadCross = FALSE
|
|
BOOL bPadCircle = FALSE
|
|
BOOL bMouseAccept = FALSE
|
|
|
|
INT iPadLeftX = 0
|
|
INT iPadLeftY = 0
|
|
|
|
INT iPadRightX = 0
|
|
INT iPadRightY = 0
|
|
|
|
INT iPadLeftXLast = 0
|
|
INT iPadLeftYLast = 0
|
|
|
|
INT iPadRightXLast = 0
|
|
INT iPadRightYLast = 0
|
|
|
|
FLOAT iCursorX = 0.0
|
|
FLOAT iCursorY = 0.0
|
|
|
|
FLOAT iCursorXLast = 0.0
|
|
FLOAT iCursorYLast = 0.0
|
|
|
|
INT iBroadcast_Disable_Recording_Timer
|
|
|
|
TEXT_LABEL_63 lastSiteURL
|
|
|
|
BOOL bBrowserShoppingSavePending = FALSE
|
|
//BOOL bBoughtProperty = FALSE
|
|
|
|
FLOAT fMouseWheelScrollSpeed = 0.0
|
|
|
|
INT iTutTimer
|
|
INT iTutstage = 0
|
|
|
|
BOOL bTradeHelpPrinted = FALSE
|
|
|
|
SCALEFORM_RETURN_INDEX currentRolloverReturnIndex
|
|
SITE_BUYABLE_VEHICLE eCursorInputProcessed = UNSET_BUYABLE_VEHICLE
|
|
BOOL bWaitingForSelectionReturn = FALSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
BOOL bDrawDebugStuff = FALSE, bSetDebugLinesAndSpheresDrawingActive = FALSE
|
|
#ENDIF
|
|
|
|
structPedsForConversation spfc
|
|
|
|
BOOL bProcessingBasket = FALSE
|
|
INT iProcessingBasketStage = SHOP_BASKET_STAGE_ADD
|
|
eMOUSE_POINTER_STYLE eSet_mouse_pointer_style = INT_TO_ENUM(eMOUSE_POINTER_STYLE, -1)
|
|
BOOL bBypassFakeCash = FALSE
|
|
BOOL bSetPlayerProofsWhileProcessingBasket = FALSE
|
|
|
|
CONST_INT ciAUTO_CLOSE_DELAY_TIME_DEFAULT 3000 // 3 seconds
|
|
SCRIPT_TIMER timerAutoCloseDelay
|
|
INT iAutoCloseDelayTime = ciAUTO_CLOSE_DELAY_TIME_DEFAULT
|
|
|
|
BOOL bDoLoadStream = FALSE, bStreamLoaded = FALSE
|
|
INT epsTutorialLast = -1
|
|
BOOL bDoLoadAWStream = FALSE, bAWStreamLoaded = FALSE
|
|
|
|
ENUM MP_PROPERTY_SITE_FAIL_REASON
|
|
MPSFR_UNSET
|
|
,MPSFR_NOT_UNLOCKED
|
|
,MPSFR_INSUFFICIENT_CASH
|
|
,MPSFR_INSUFFCIENT_RANK
|
|
,MPSFR_INSUFFCIENT_RANK_PENDING
|
|
,MPSFR_CANCELED
|
|
,MPSFR_NOT_SAFE
|
|
,MPSFR_ON_MISSION
|
|
,MPSFR_PAID_RESUPPLY
|
|
,MPSFR_HAS_STOCK
|
|
ENDENUM
|
|
MP_PROPERTY_SITE_FAIL_REASON mpPropertySiteFailReason = MPSFR_UNSET
|
|
|
|
|
|
ENUM VEHICLE_SITE_FAIL_REASON
|
|
VSFR_UNSET,
|
|
VSFR_NO_STORAGE,
|
|
VSFR_NO_MONEY,
|
|
VSFR_INVALID_CATEGORY,
|
|
VSFR_ALREADY_OWNED,
|
|
VSFR_NO_INV_SPACE,
|
|
VSFR_BIGASS_NOT_UNLOCKED,
|
|
VSFR_INSUFFCIENT_RANK,
|
|
VSFR_INSUFFCIENT_RANK_PENDING,
|
|
VSFR_CANCELED,
|
|
VSFR_NOT_SAFE
|
|
ENDENUM
|
|
|
|
VEHICLE_SITE_FAIL_REASON lastVehicleFailReason = VSFR_UNSET
|
|
SITE_BUYABLE_VEHICLE lastVehicleFailVehicle = UNSET_BUYABLE_VEHICLE
|
|
|
|
|
|
//Player_to_Player_Email vars and consts.
|
|
/*
|
|
STRUCT struct_email_ReceivedData
|
|
|
|
INT RecID
|
|
INT RecPosixTime
|
|
|
|
TEXT_LABEL_31 RecSenderName
|
|
GAMER_HANDLE RecSenderHandle
|
|
|
|
TEXT_LABEL_63 RecSubject[2]
|
|
TEXT_LABEL_63 RecContents[12]
|
|
|
|
ENDSTRUCT
|
|
*/
|
|
|
|
|
|
//Struct used to receive email data from a single ID
|
|
scrEmail_Data single_email_Received_Data
|
|
|
|
scrEmail_Data single_email_Sending_Data
|
|
|
|
BOOL b_MessageBodyFilledThisCycle = FALSE //Added for #1890436
|
|
|
|
|
|
/* Here's the core struct from commands_socialclub.sch for easy reference
|
|
STRUCT scrEmail_Data
|
|
INT Id
|
|
INT CreatePosixTime
|
|
TEXT_LABEL_31 SenderName
|
|
GAMER_HANDLE SenderHandle
|
|
TEXT_LABEL_63 Subject[2]
|
|
TEXT_LABEL_63 Contents[16]
|
|
ENDSTRUCT
|
|
*/
|
|
|
|
|
|
//Sony / MS system onscreen keyboard handling routines from FMMC_Keyboard.sch
|
|
STRUCT KEYBOARD_DATA
|
|
OSK_STATUS eStatus
|
|
INT iProfanityToken
|
|
INT iCurrentStatus
|
|
ENDSTRUCT
|
|
KEYBOARD_DATA KeyBoardData
|
|
|
|
BOOL b_Creating_Email_Message_Body_from_OSK = FALSE
|
|
BOOL b_Creating_Email_Message_Subject_from_OSK = FALSE
|
|
INT iStringLengthInCharacters
|
|
|
|
CONST_INT c_MAX_SEGMENTS 10
|
|
TEXT_LABEL_63 EmailMessageSegments_to_Send[c_MAX_SEGMENTS]
|
|
TEXT_LABEL_63 EmailSubjectSegments_to_Send[2]
|
|
|
|
BOOL b_DummyUnrefHacks = FALSE
|
|
|
|
ENUM e_EmailBrowsingState
|
|
|
|
eDORMANT,
|
|
eINITIAL,
|
|
eRETRIEVAL,
|
|
eSF_FILLING,
|
|
eNEUTRAL_BROWSING,
|
|
eCOMPOSING,
|
|
eSTATUS_UPDATE
|
|
|
|
ENDENUM
|
|
|
|
e_EmailBrowsingState EmailState
|
|
eEMAIL_RETRIEVAL_STATUS CurrentRetrievalStatus
|
|
|
|
|
|
UGC_DATE SingleEmailTimeStamp
|
|
|
|
|
|
//Friend Slot handling vars.
|
|
|
|
//Original working regime
|
|
//CONST_INT c_MAX_EMAIL_CONTACTS 50 //(10 contacts is roughly 200 increase in stack size)
|
|
//New trial
|
|
//BOOL b_StatReaderNeedsToBail = FALSE
|
|
|
|
|
|
GAMER_HANDLE gh_ProfileViewHandle
|
|
BOOL b_DisplayProfileViewHelp = FALSE
|
|
SCALEFORM_INDEX SF_EyefindInstButtonsIndex
|
|
|
|
|
|
INT i_Number_Of_Contacts_In_List = 0
|
|
|
|
INT FriendSlot_OriginIndex = 0
|
|
//INT FriendSlot_StartingIndex = 0 //We might need this in the near future.
|
|
|
|
BOOL b_EmailClickDetected = FALSE
|
|
|
|
//Email Batch tracking.
|
|
INT i_InboxDepth = 0
|
|
INT i_CurrentlySelectedEmail = 0
|
|
BOOL b_MovedToComposeFromReplyButton = FALSE
|
|
|
|
|
|
INT LastDeletedEmailPosix //Keep a record of the last deleted email so we can make sure not to include it again in the inbox. The deletion can take a minute or so at the cloud end.
|
|
|
|
BOOL b_ReachedOldestEmail = FALSE
|
|
INT NumberOfEmailsOnThisPage = 0
|
|
//INT iPreviousPosixTime = 0
|
|
|
|
|
|
TEXT_LABEL_63 PlayerHandleGamerNameStringForScaleform //Was a string, but changed for #2280703. Was being overwritten in memory.
|
|
|
|
BOOL b_WaitingToRetrieveGamerTag = FALSE
|
|
|
|
BOOL b_GamertagGrabSignalledForceClose = FALSE
|
|
|
|
|
|
|
|
TEXT_LABEL_63 DisplayNameReturnName[1]
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
BOOL b_debug_CatalogueMissingEntries
|
|
|
|
#ENDIF
|
|
|
|
GB_KEYBOARD_DATA GBKeyBoardData
|
|
BOOL bRunningOrgNameKeyboard = FALSE
|
|
|
|
INT iSVM_Unlock_Feed_Message = 0
|
|
INT iWVM_Unlock_Feed_Message = 0
|
|
INT iFDS_Unlock_Feed_Message = 0
|
|
INT iBBS_Unlock_Feed_Message = 0
|
|
|
|
INT iPurchaseHelpBS
|
|
CONST_INT PURCHASE_HELP_BS_SPVE0A 0
|
|
CONST_INT PURCHASE_HELP_BS_SPVE0B 1
|
|
CONST_INT PURCHASE_HELP_BS_BAEQ2A 2
|
|
CONST_INT PURCHASE_HELP_BS_FDSE0DB 3
|
|
CONST_INT PURCHASE_HELP_BS_FDSE0HA 4
|
|
CONST_INT PURCHASE_HELP_BS_HACKT2 5
|
|
CONST_INT PURCHASE_HELP_BS_BBSE0NC 6
|
|
CONST_INT PURCHASE_HELP_BS_BBSE0HT 7
|
|
CONST_INT PURCHASE_HELP_BS_CASWEB_0_FOR_FIRST_TIME 8
|
|
//#IF FEATURE_HEIST_ISLAND
|
|
//CONST_INT PURCHASE_HELP_BS_SUBMARINE 9
|
|
//#ENDIF
|
|
|
|
PROC PS3_360_ButtonSetup()
|
|
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER(SF_EyefindInstButtonsIndex, "SET_CLEAR_SPACE", 200)
|
|
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER(SF_EyefindInstButtonsIndex, "SET_DATA_SLOT_EMPTY", 3)
|
|
|
|
//Will need to use something like this in next_gen to support PC build
|
|
//EYEFIND_INSTRUCTIONAL_BUTTON_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING(SF_EyefindInstButtonsIndex, "SET_DATA_SLOT", 0,
|
|
//GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(PLAYER_CONTROL, INPUT_CELLPHONE_CANCEL),//GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, INPUT_FRONTEND_CANCEL),
|
|
//"CELL_281") //Exit
|
|
|
|
IF IS_PS3_VERSION()
|
|
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING(SF_EyefindInstButtonsIndex, "SET_DATA_SLOT", 0,
|
|
TO_FLOAT(ENUM_TO_INT(GET_CONTROL_INSTRUCTIONAL_BUTTON(FRONTEND_CONTROL, INPUT_CELLPHONE_EXTRA_OPTION))),//TO_FLOAT(ENUM_TO_INT(ICON_BUTTON_B)),
|
|
INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_EMAIL_PROF") //View Profile of Recipient.
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintnl()
|
|
cdPrintstring("AppInternet - Setting Profile button for PS3.")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
IF IS_XBOX360_VERSION()
|
|
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING(SF_EyefindInstButtonsIndex, "SET_DATA_SLOT", 0,
|
|
TO_FLOAT(ENUM_TO_INT(GET_CONTROL_INSTRUCTIONAL_BUTTON(FRONTEND_CONTROL, INPUT_CELLPHONE_EXTRA_OPTION))),//TO_FLOAT(ENUM_TO_INT(ICON_BUTTON_B)),
|
|
INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, INVALID_SCALEFORM_PARAM, "CELL_EMAIL_CAR3") //View Gamer Card of Recipient.
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintnl()
|
|
cdPrintstring("AppInternet - Setting Profile button for 360.")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER(SF_EyefindInstButtonsIndex, "DRAW_INSTRUCTIONAL_BUTTONS", 0) // Set to 1 for stacked.
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
PROC NG_ViewProfile_ButtonSetup() //Needs to use slightly different regime from PS3 / 360 to support PC custom controls.
|
|
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER(SF_EyefindInstButtonsIndex, "SET_CLEAR_SPACE", 200)
|
|
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER(SF_EyefindInstButtonsIndex, "SET_DATA_SLOT_EMPTY", 3)
|
|
|
|
//Will need to use something like this in next_gen to support PC build
|
|
IF IS_PLAYSTATION_PLATFORM()
|
|
INSTRUCTIONAL_BUTTON_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING(SF_EyefindInstButtonsIndex, "SET_DATA_SLOT", 0,
|
|
GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(PLAYER_CONTROL, INPUT_CELLPHONE_EXTRA_OPTION),
|
|
"CELL_EMAIL_PROF") //View Profile of Recipient.
|
|
ENDIF
|
|
|
|
|
|
IF IS_XBOX_PLATFORM()
|
|
INSTRUCTIONAL_BUTTON_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING(SF_EyefindInstButtonsIndex, "SET_DATA_SLOT", 0,
|
|
GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(PLAYER_CONTROL, INPUT_CELLPHONE_EXTRA_OPTION),
|
|
"CELL_EMAIL_CARO") //View Gamercard of Recipient.
|
|
ENDIF
|
|
|
|
|
|
LEGACY_SCALEFORM_MOVIE_METHOD_WITH_NUMBER(SF_EyefindInstButtonsIndex, "DRAW_INSTRUCTIONAL_BUTTONS", 0) // Set to 1 for stacked.
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
//Added for 3499109.
|
|
FUNC BOOL NETWORK_IS_VALID_EYEFIND_FRIEND( GAMER_HANDLE passedHandle)
|
|
|
|
IF IS_GAMER_HANDLE_VALID (passedHandle)
|
|
|
|
IF NETWORK_IS_FRIEND (passedHandle)
|
|
RETURN TRUE
|
|
ELSE
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
ELSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintstring("AppInternet - NETWORK_IS_VALID_EYEFIND_FRIEND reports gamer handle was invalid.")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
RETURN FALSE
|
|
|
|
ENDIF
|
|
|
|
ENDFUNC
|
|
|
|
|
|
|
|
|
|
//Pinched from other MP keyboard work but may need specific modification so using a standalone copy in here.
|
|
FUNC BOOL Is_Email_String_Blank_Spaces(STRING stPassed, INT iLength)
|
|
//stPassed = " "
|
|
INT iLoop
|
|
FOR iLoop = 0 TO (iLength - 2)
|
|
//is the Nth character is NOT equal to a space then it's not a blank string.
|
|
IF NOT ARE_STRINGS_EQUAL(GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_WITH_BYTE_LIMIT(stPassed, iLoop, iLoop + 1, 1), " ")
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDFOR
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
|
|
|
|
PROC ClearOutEmailBodyContents()
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintnl()
|
|
cdPrintstring("AppInternet - ClearOutEmailBodyContents has been called.")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
|
|
//Deliberately not done in a loop. Using this to test various segment combinations here individually...
|
|
EmailMessageSegments_to_Send[0] = ""
|
|
EmailMessageSegments_to_Send[1] = ""
|
|
EmailMessageSegments_to_Send[2] = ""
|
|
EmailMessageSegments_to_Send[3] = ""
|
|
EmailMessageSegments_to_Send[4] = ""
|
|
EmailMessageSegments_to_Send[5] = ""
|
|
EmailMessageSegments_to_Send[6] = ""
|
|
EmailMessageSegments_to_Send[7] = ""
|
|
EmailMessageSegments_to_Send[8] = ""
|
|
EmailMessageSegments_to_Send[9] = ""
|
|
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
Experimented with putting these back temporarily to see if they had any impact on how Eyefind Email was working with SF in dev_net. - Steve T.
|
|
Only Email related script will refer to them. Update... Wrapped functions seemingly redundant in NG I think. Leaving commented block as a reminder of change."
|
|
|
|
INT funcPagIdLast = 0
|
|
FUNC INT GET_CURRENT_WEBPAGE_ID_WRAPPED() // END_SCALEFORM_MOVIE_METHOD_INT()
|
|
INT raw = GET_CURRENT_WEBPAGE_ID()
|
|
|
|
IF raw = 0
|
|
IF funcPagIdLast != 0
|
|
RETURN funcPagIdLast
|
|
ENDIF
|
|
ENDIF
|
|
funcPagIdLast = raw
|
|
RETURN funcPagIdLast
|
|
ENDFUNC
|
|
|
|
INT funcSitIdLast = 0
|
|
FUNC INT GET_CURRENT_WEBSITE_ID_WRAPPED() // fudret
|
|
|
|
INT raw = GET_CURRENT_WEBSITE_ID()
|
|
|
|
IF raw = 0
|
|
IF funcSitIdLast != 0
|
|
RETURN funcSitIdLast
|
|
ENDIF
|
|
ENDIF
|
|
funcSitIdLast = raw
|
|
RETURN funcSitIdLast
|
|
ENDFUNC
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PROC Add_MP_Friend_to_Scaleform_Slot(STRING playerName)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Populating friend slot ")
|
|
PRINTINT(FriendSlot_OriginIndex)
|
|
PRINTNL()
|
|
|
|
#ENDIF
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_DATA_SLOT")
|
|
|
|
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(FriendSlot_OriginIndex + 10) //From Eddie : The contacts list starts from slot 10. You can pass as many as you want.
|
|
|
|
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING ("CELL_2000") //~a~ //This pane auto-condenses the font.
|
|
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(playerName)
|
|
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
|
|
|
|
|
|
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
FriendSlot_OriginIndex ++
|
|
|
|
//Critical! Conor, this is needed for a navigation back up, so when something is added to the slot it needs incremented.
|
|
i_Number_Of_Contacts_In_List ++
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "NumContacts in list after friend additions is ")
|
|
PRINTINT(i_Number_Of_Contacts_In_List)
|
|
PRINTNL()
|
|
|
|
#ENDIF
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
BOOL cVis = TRUE
|
|
PROC BROWSER_CURSOR_LOADING(BOOL Show)
|
|
IF cVis = Show
|
|
EXIT
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BROWSER_CURSOR_LOADING: ", PICK_STRING(Show, "Show", "Hide"))
|
|
|
|
IF Show
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SHOW_CURSOR")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "HIDE_CURSOR")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
cVis = Show
|
|
ENDPROC
|
|
/*
|
|
PROC BROWSER_SHOW_CURSOR(BOOL Show)
|
|
IF cVis = Show
|
|
EXIT
|
|
ENDIF
|
|
cVis = Show
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SHOW_CURSOR")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(Show)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC */
|
|
|
|
INT iCursorState = HASH("ARROW") //"ARROW" "HAND" "TEXT" "BUSY"
|
|
PROC BROWSER_SET_CURSOR_STATE(STRING Show)
|
|
INT iShow = GET_HASH_KEY(Show)
|
|
IF iCursorState = iShow
|
|
CDEBUG1LN(DEBUG_INTERNET, "(ignore) BROWSER_SET_CURSOR_STATE: \"", Show, "\"")
|
|
EXIT
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BROWSER_SET_CURSOR_STATE: \"", Show, "\"")
|
|
|
|
iCursorState = iShow
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_CURSOR_STATE")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(Show)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
FUNC INT GET_INDEX_OF_FRIEND_ARRAY_FOR_EMAIL(INT iLoopIndex)
|
|
|
|
/*
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - GET_INDEX_OF_FRIEND_ARRAY_FOR_EMAIL ")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
*/
|
|
|
|
INT iIndex = iLoopIndex - g_sPlayers.plNumPlayers
|
|
IF iIndex >= c_MAX_EMAIL_CONTACTS
|
|
iIndex = c_MAX_EMAIL_CONTACTS-1
|
|
ENDIF
|
|
RETURN iIndex
|
|
|
|
ENDFUNC
|
|
|
|
FUNC INT GET_FRIEND_INDEX_FROM_GAMER_HANDLE(GAMER_HANDLE& PassedHandle)
|
|
|
|
INT iMaxFriends = NETWORK_GET_FRIEND_COUNT()
|
|
IF iMaxFriends > 100
|
|
iMaxFriends = 100
|
|
ENDIF
|
|
|
|
GAMER_HANDLE friendHandle
|
|
|
|
INT iLoop = 0
|
|
REPEAT iMaxFriends iLoop
|
|
friendHandle = GET_GAMER_HANDLE_FRIEND(iLoop)
|
|
IF NETWORK_ARE_HANDLES_THE_SAME(friendHandle, PassedHandle)
|
|
RETURN iLoop
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
RETURN -1
|
|
ENDFUNC
|
|
|
|
|
|
FUNC STRING EyefindGetGamerTagFromHandle(GAMER_HANDLE& PassedHandle)
|
|
|
|
|
|
INT b_WaitingToRetrieveDurangoDisplayName = 0 //Neutral. Normally ignored, but if the Xbox One displayname retrieval fails, we can signal the PC / 360 routine to kick in via this flag.
|
|
|
|
|
|
//Xbox One TRC requires the display name of a gamer to be displayed if available.
|
|
IF IS_XBOX_PLATFORM()
|
|
OR IS_PLAYSTATION_PLATFORM()
|
|
|
|
//TEXT_LABEL_63 DisplayNameReturnName[1]
|
|
DisplayNameReturnName[0] = "Durango_Empty"
|
|
|
|
b_WaitingToRetrieveDurangoDisplayName = 1 //Ongoing
|
|
|
|
STRING ReturnName
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"DISABLE_BUTTON") //Disable cancel button
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(5)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BROWSER_SET_CURSOR_STATE("ARROW")
|
|
|
|
|
|
//Vars for NETWORK_DISPLAYNAMES... native processing.
|
|
GAMER_HANDLE gamerHandleArray_To_Process[1]
|
|
gamerHandleArray_To_Process[0] = PassedHandle
|
|
INT i_DisplayNameRequestID = -99 //Dummy value for safety.
|
|
INT i_RequestResult = -99 //Dummy value for safety.
|
|
|
|
|
|
INT i_GrabStage = 0
|
|
|
|
|
|
i_DisplayNameRequestID = NETWORK_DISPLAYNAMES_FROM_HANDLES_START (gamerHandleArray_To_Process, 1)
|
|
|
|
IF i_DisplayNameRequestID > - 1 //Return value less than zero signals an error.
|
|
|
|
i_GrabStage = 1 //Okay to continue..
|
|
|
|
ELSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring("AppInternet - NETWORK_DISPLAYNAMES_FROM_HANDLES_START failed!")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
|
|
//Failed displayname retrieval for Xbox One, set the flag to try and get the standard gamertag instead as a failsafe further down in the 360 / PC routine
|
|
b_WaitingToRetrieveDurangoDisplayName = -1
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
SETTIMERA(0)
|
|
|
|
|
|
|
|
WHILE b_WaitingToRetrieveDurangoDisplayName = 1 //Ongoing. NETWORK_DISPLAYNAMES_FROM_HANDLES_START must have been okay.
|
|
AND TIMERA() < 7000
|
|
|
|
|
|
//Make sure we draw the browser movie this frame.
|
|
DRAW_SCALEFORM_MOVIE_FULLSCREEN(mov,255,255,255,0)
|
|
DISABLE_CELLPHONE_THIS_FRAME_ONLY()
|
|
|
|
|
|
WAIT(0)
|
|
|
|
DRAW_SCALEFORM_MOVIE_FULLSCREEN(mov,255,255,255,0)
|
|
DISABLE_CELLPHONE_THIS_FRAME_ONLY()
|
|
|
|
|
|
|
|
IF i_GrabStage = 1
|
|
|
|
|
|
i_RequestResult = NETWORK_GET_DISPLAYNAMES_FROM_HANDLES(i_DisplayNameRequestID, DisplayNameReturnName, 1)
|
|
|
|
|
|
IF i_RequestResult = 0
|
|
|
|
//Succeeded! Return name now.
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring("AppInternet - NETWORK_GET_DISPLAYNAMES_FROM_HANDLES succeeded. Returning ")
|
|
cdPrintstring(TEXT_LABEL_TO_STRING(DisplayNameReturnName[0]))
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"DISABLE_BUTTON") //Re-enable cancel button before any return...
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(5)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
//Proper!
|
|
ReturnName = TEXT_LABEL_TO_STRING(DisplayNameReturnName[0])
|
|
|
|
|
|
/*
|
|
DisplayName23Test = DisplayNameReturnName[0]
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring("AppInternet - Test 23 Returning ")
|
|
cdPrintstring(TEXT_LABEL_TO_STRING(DisplayName23Test))
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
|
|
ReturnName = TEXT_LABEL_TO_STRING(DisplayName23Test)
|
|
*/
|
|
|
|
|
|
RETURN ReturnName
|
|
|
|
ELSE
|
|
|
|
|
|
IF i_RequestResult = -1 //Failed!
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring("AppInternet - WARNING! NETWORK_GET_DISPLAYNAMES_FROM_HANDLES failed whilst processing after successful start. Will attempt to get gamertag.")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
|
|
b_WaitingToRetrieveDurangoDisplayName = -1 //Failed displayname retrieval for Xbox One, set the flag to try and get the gamertag instead as a failsafe further down.
|
|
|
|
|
|
ELSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring("AppInternet - NETWORK_GET_DISPLAYNAMES_FROM_HANDLES currently processing!")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
ENDWHILE
|
|
|
|
|
|
|
|
IF TIMERA() > 6999
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Timed out whilst trying to retrieve Xbox One Display Name...")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
ENDIF //End of IS_XBOX_PLATFORM condition check.
|
|
|
|
|
|
|
|
|
|
|
|
IF IS_XBOX360_VERSION()
|
|
OR IS_PC_VERSION()
|
|
OR b_WaitingToRetrieveDurangoDisplayName = -1 //Failed displayname retrieval for Xbox One, let's try and get the gamertag instead as a failsafe.
|
|
|
|
//STRING ReturnName = "Unknown"
|
|
STRING ReturnName = GET_FILENAME_FOR_AUDIO_CONVERSATION ("CELL_1091") //Extract the "Unknown" value from an existing token for localisation purposes. #2280703
|
|
|
|
|
|
b_WaitingToRetrieveGamerTag = TRUE
|
|
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
IF b_WaitingToRetrieveDurangoDisplayName = -1
|
|
|
|
cdPrintstring("AppInternet - Trying to get failsafe gamertag for Xbox One!")
|
|
cdPrintnl()
|
|
|
|
ENDIF
|
|
|
|
#ENDIF
|
|
|
|
|
|
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"DISABLE_BUTTON") //Disable cancel button
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(5)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
BROWSER_SET_CURSOR_STATE("ARROW")
|
|
|
|
|
|
|
|
|
|
INT i_GrabStage = 0
|
|
|
|
|
|
|
|
IF NETWORK_GAMERTAG_FROM_HANDLE_START(PassedHandle)
|
|
|
|
i_GrabStage = 1
|
|
|
|
ELSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring("AppInternet - Failed gamertag grab process at HANDLE START, aborting grab and returning Unknown from token as a precaution")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
|
|
|
|
//For bug 2215497, I'm just going to return "Unknown" for the gamertag if there's a problem with HANDLE_START so we can identify any net issues more easily.
|
|
|
|
//b_GamertagGrabSignalledForceClose = TRUE // Didn't even start Gamertag process, close browseer
|
|
|
|
|
|
|
|
|
|
b_WaitingToRetrieveGamerTag = FALSE
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
SETTIMERA(0)
|
|
|
|
|
|
|
|
WHILE b_WaitingToRetrieveGamerTag = TRUE
|
|
AND TIMERA() < 7000
|
|
|
|
|
|
//Make sure we draw the browser movie this frame.
|
|
DRAW_SCALEFORM_MOVIE_FULLSCREEN(mov,255,255,255,0)
|
|
DISABLE_CELLPHONE_THIS_FRAME_ONLY()
|
|
|
|
WAIT(0)
|
|
|
|
DRAW_SCALEFORM_MOVIE_FULLSCREEN(mov,255,255,255,0)
|
|
DISABLE_CELLPHONE_THIS_FRAME_ONLY()
|
|
|
|
|
|
|
|
|
|
//PASS_INPUTS_TO_BROWSER(mov) //Nope, called too far down and a bit dangerous it seems.
|
|
|
|
|
|
|
|
|
|
IF i_GrabStage = 1
|
|
|
|
|
|
IF NETWORK_GAMERTAG_FROM_HANDLE_PENDING()
|
|
|
|
//Deliberately spam this whilst grabbing...
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring("AppInternet - Retrieval of Xbox GamerTag pending...")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
|
|
ELSE
|
|
|
|
IF NETWORK_GAMERTAG_FROM_HANDLE_SUCCEEDED()
|
|
|
|
i_GrabStage = 2
|
|
|
|
ReturnName = NETWORK_GET_GAMERTAG_FROM_HANDLE(PassedHandle)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring("AppInternet - Retrieval of Xbox GamerTag succeeded!")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
b_WaitingToRetrieveGamerTag = FALSE
|
|
|
|
|
|
ELSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring("AppInternet - Gamertag grab process no longer pending but did not succeed.")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
|
|
b_GamertagGrabSignalledForceClose = TRUE // Didn't even start Gamertag process, close browseer
|
|
|
|
b_WaitingToRetrieveGamerTag = FALSE
|
|
|
|
ENDIF
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
ENDWHILE
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"DISABLE_BUTTON") //Re-enable cancel button before any return...
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(5)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
|
|
|
|
|
|
IF b_WaitingToRetrieveGamerTag = TRUE //Must have timed out if the timer and bool are both true on exit of the while loop
|
|
AND TIMERA() > 6999
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: Timed out whilst trying to retrieve Xbox GamerTag.")
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Timed out whilst trying to retrieve Xbox GamerTag...")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
b_GamertagGrabSignalledForceClose = TRUE // Didn't retrieve Gamertag, close browseer
|
|
|
|
b_WaitingToRetrieveGamerTag = FALSE
|
|
|
|
ENDIF
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Retrieval process of Xbox GamerTag concluded. Returned string is ")
|
|
cdPrintstring(ReturnName)
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
|
|
b_WaitingToRetrieveGamerTag = FALSE //FAILSAFE
|
|
|
|
|
|
RETURN ReturnName
|
|
|
|
|
|
|
|
|
|
// ELIF IS_PLAYSTATION_PLATFORM()
|
|
// INT iFriend = GET_FRIEND_INDEX_FROM_GAMER_HANDLE(PassedHandle)
|
|
// #IF IS_DEBUG_BUILD
|
|
// CDEBUG1LN (DEBUG_CELL_DIALOG, "AppInternet ST_Jan15 PS4 - EyefindGetGamerTagFromHandle() - strGamerTag: ", NETWORK_GET_GAMERTAG_FROM_HANDLE(PassedHandle))
|
|
// CDEBUG1LN (DEBUG_CELL_DIALOG, "AppInternet ST_Jan15 PS4 - EyefindGetGamerTagFromHandle() - iFriend: ", iFriend)
|
|
// #ENDIF
|
|
// RETURN NETWORK_GET_FRIEND_NAME(iFriend)
|
|
ELSE //PS3 or PS4
|
|
|
|
|
|
|
|
|
|
/* 2170824 - Nick Snell fixed it so we could get the gamertag from gamer_handle. It uses the same pipeline as 360 or Xbone now.
|
|
IF IS_PC_VERSION()
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring ("Getting PC displayname ")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
//RETURN NETWORK_MEMBER_ID_FROM_GAMER_HANDLE(PassedHandle)//("TestPCHandle")
|
|
|
|
RETURN ("Contact name")//NETWORK_PLAYER_GET_NAME(NETWORK_GET_PLAYER_FROM_GAMER_HANDLE(PassedHandle))
|
|
|
|
ELSE
|
|
*/
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring ("AppInternet ST_Jan15 PS4 - EyefindGetGamerTagFromHandle() grabbed ")
|
|
cdPrintstring (NETWORK_GET_GAMERTAG_FROM_HANDLE(PassedHandle))
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
RETURN (NETWORK_GET_GAMERTAG_FROM_HANDLE(PassedHandle))
|
|
|
|
|
|
//ENDIF
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
ENDFUNC
|
|
|
|
// PURPOSE: Clear the PlayerList array
|
|
PROC Clear_PlayerList_Details_For_Email()//(m_structPlayerListEmail& g_sPlayers)
|
|
|
|
INT tempLoop = 0
|
|
GAMER_INFO emptyGamer
|
|
GAMER_HANDLE emptyHandle
|
|
REPEAT NUM_NETWORK_PLAYERS tempLoop
|
|
g_sPlayers.plPlayers[tempLoop] = INVALID_PLAYER_INDEX()
|
|
ENDREPEAT
|
|
tempLoop = 0
|
|
REPEAT c_MAX_EMAIL_CONTACTS tempLoop
|
|
//Old working
|
|
//g_sPlayers.plFriends[tempLoop] = emptyGamer
|
|
//New trial
|
|
g_sPlayers.plFriendsHandle[tempLoop] = emptyHandle
|
|
ENDREPEAT
|
|
g_sPlayers.m_selectedPlayerSlot = 0
|
|
g_sPlayers.plNumPlayers = 0
|
|
|
|
g_sPlayers.plTotalNumContacts = 0
|
|
//g_sPlayers.M_selectedPlayerClanName = ""
|
|
g_sPlayers.selectedPlayerHandle = emptyGamer.Handle
|
|
g_sPlayers.selectedPlayerName = ""
|
|
#IF IS_DEBUG_BUILD
|
|
NET_PRINT("AppInternet - Clearing Player list") NET_NL()
|
|
#ENDIF
|
|
|
|
ENDPROC
|
|
|
|
PROC Update_Compose_Recipient_Subject_Body()
|
|
|
|
|
|
IF b_MovedToComposeFromReplyButton = TRUE
|
|
|
|
//Clear the recipient list...
|
|
SC_EMAIL_MESSAGE_CLEAR_RECIP_LIST()
|
|
|
|
b_DisplayProfileViewHelp = FALSE
|
|
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintnl()
|
|
cdPrintstring("AppInternet - Update_Compose_Recipient_Subject_Body called from REPLY button. Clearing old recipient list.")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
b_MovedToComposeFromReplyButton = FALSE
|
|
|
|
//Need to mimic this data ( which is usually set up by the player clicking a recipient and entering a subject, so the reply can be sent.
|
|
g_sPlayers.selectedPlayerHandle = single_email_Received_Data.SenderHandle
|
|
|
|
|
|
|
|
//Get and store display name here!
|
|
PlayerHandleGamerNameStringForScaleform = EyefindGetGamerTagFromHandle((single_email_Received_Data.SenderHandle))
|
|
|
|
|
|
|
|
|
|
EmailSubjectSegments_to_Send[0] = single_email_Received_Data.Subject[0]
|
|
EmailSubjectSegments_to_Send[1] = single_email_Received_Data.Subject[1]
|
|
|
|
|
|
//"single_email_Received_Data" contains the data from the last selected email before reply was selected in Player_to_Player_Email_Main()
|
|
/* Here's the core struct from commands_socialclub.sch for easy reference
|
|
STRUCT scrEmail_Data
|
|
INT Id
|
|
INT CreatePosixTime
|
|
TEXT_LABEL_31 SenderName
|
|
GAMER_HANDLE SenderHandle
|
|
TEXT_LABEL_63 Subject[2]
|
|
TEXT_LABEL_63 Contents[16]
|
|
ENDSTRUCT
|
|
*/
|
|
|
|
|
|
//We need to add the "reply to" player handle to recipient list after a check for comms privileges
|
|
|
|
BOOL b_CommunicationAllowed = TRUE
|
|
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Eyefind email, gamertag from selected Reply to handle was ")
|
|
cdPrintstring(PlayerHandleGamerNameStringForScaleform)
|
|
//cdPrintstring(EyefindGetGamerTagFromHandle((single_email_Received_Data.SenderHandle)))
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
|
|
|
|
|
|
IF NOT IS_GAMER_HANDLE_VALID(single_email_Received_Data.SenderHandle)
|
|
|
|
b_CommunicationAllowed = FALSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Eyefind email, Preventing communication as Gamer Handle not valid for this replied to player... ")
|
|
cdPrintstring(PlayerHandleGamerNameStringForScaleform)
|
|
//cdPrintstring (EyefindGetGamerTagFromHandle((single_email_Received_Data.SenderHandle)))
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
ELSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Eyefind email, Gamer handle valid for replied to player. ")
|
|
cdPrintstring(PlayerHandleGamerNameStringForScaleform)
|
|
//cdPrintstring (EyefindGetGamerTagFromHandle((single_email_Received_Data.SenderHandle)))
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
//Part 1. Expanded this for 3291196 - Will block any reply attempt to any user who cannot be contacted through TEXT_CHAT or is no longer a friend.
|
|
IF (NETWORK_CHECK_TEXT_COMMUNICATION_PRIVILEGES() = FALSE)
|
|
OR (NETWORK_IS_VALID_EYEFIND_FRIEND(single_email_Received_Data.SenderHandle) = FALSE) //Add this check for offline problem. At least we'll know the two users are still friends.
|
|
|
|
b_CommunicationAllowed = FALSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Eyefind email, Sender has no text communication privileges or is not a friend. Communication prevented for this replied to user..")
|
|
cdPrintstring(PlayerHandleGamerNameStringForScaleform)
|
|
//cdPrintstring (EyefindGetGamerTagFromHandle((single_email_Received_Data.SenderHandle)))
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
IF NETWORK_IS_GAMER_MUTED_BY_ME(single_email_Received_Data.SenderHandle)
|
|
OR NETWORK_IS_GAMER_BLOCKED_BY_ME((single_email_Received_Data.SenderHandle))
|
|
OR NETWORK_AM_I_MUTED_BY_GAMER((single_email_Received_Data.SenderHandle))
|
|
OR NETWORK_AM_I_BLOCKED_BY_GAMER((single_email_Received_Data.SenderHandle))
|
|
|
|
b_CommunicationAllowed = FALSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Eyefind email, Communication prevented for this replied to player... ")
|
|
cdPrintstring(PlayerHandleGamerNameStringForScaleform)
|
|
//cdPrintstring (EyefindGetGamerTagFromHandle((single_email_Received_Data.SenderHandle)))
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
//Put in test block for Social Club to prevent players attempting to reply to Eyefind messages from Social Club.
|
|
/*
|
|
IF ARE_STRINGS_EQUAL ("stevet2RSN", single_email_Received_Data.Sendername) //Needs Social Club sendername here, rather than SteveT secondary test.
|
|
|
|
b_CommunicationAllowed = FALSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Eyefind email, Communication prevented for this reply. Social Club account originated message.")
|
|
cdPrintstring(PlayerHandleGamerNameStringForScaleform)
|
|
//cdPrintstring (EyefindGetGamerTagFromHandle((single_email_Received_Data.SenderHandle)))
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
IF b_CommunicationAllowed = FALSE //Should be FALSE!
|
|
|
|
//Jump to Page 9 to display a message indicating communication is blocked for the selected gamerhandle
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"GO_TO_WEBPAGE")
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
|
|
ADD_TEXT_COMPONENT_SUBSTRING_WEBSITE("WWW_EYEFIND_INFO_S_EMAILSTATUS")
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(10)
|
|
|
|
|
|
IF ARE_STRINGS_EQUAL (PlayerHandleGamerNameStringForScaleform, "") //Potential fix for 2131480
|
|
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("CELL_EMAIL_ERR")
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Communication not allowed but gamerstring was empty - 1. Displaying generic message.")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
ELSE
|
|
|
|
|
|
//BEGIN_TEXT_COMMAND_SCALEFORM_STRING ("CELL_EMAIL_BLK") //~a~ cannot be contacted at this time.
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING ("CELL_EMAIL_CBLK") //<C>~a~</C> cannot be contacted at this time. Condensed version.
|
|
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (PlayerHandleGamerNameStringForScaleform)
|
|
|
|
|
|
//ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(EyefindGetGamerTagFromHandle(g_sPlayers.selectedPlayerHandle))
|
|
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
ENDIF
|
|
|
|
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"UPDATE_TEXT") //Critical! Need to update view
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring ("App Internet - Update_Compose_Recipient_Subject_Body() communication block warning for ")
|
|
cdPrintstring (PlayerHandleGamerNameStringForScaleform)
|
|
//cdPrintstring (EyefindGetGamerTagFromHandle(g_sPlayers.selectedPlayerHandle))
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
EmailState = eSTATUS_UPDATE //Critical!
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IF b_CommunicationAllowed = TRUE
|
|
AND (IS_GAMER_HANDLE_VALID(single_email_Received_Data.SenderHandle) OR bg_bBypassValidGamerCheck)
|
|
SC_EMAIL_MESSAGE_PUSH_GAMER_TO_RECIP_LIST((single_email_Received_Data.SenderHandle))
|
|
|
|
gh_ProfileViewHandle = single_email_Received_Data.SenderHandle
|
|
|
|
|
|
//PS3_360_ButtonSetup()
|
|
|
|
IF NOT IS_PC_VERSION()
|
|
|
|
b_DisplayProfileViewHelp = TRUE
|
|
NG_ViewProfile_ButtonSetup()
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(9)
|
|
|
|
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING ("CELL_CONDFNH") //~a~
|
|
|
|
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(PlayerHandleGamerNameStringForScaleform)
|
|
|
|
//ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(EyefindGetGamerTagFromHandle(single_email_Received_Data.SenderHandle))
|
|
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
|
|
|
|
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING ("CELL_EMAIL_SUBJ") //~a~
|
|
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (single_email_Received_Data.Subject[0])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (single_email_Received_Data.Subject[1])
|
|
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
|
|
|
|
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING ("CELL_EMAIL_BCON") //~a~
|
|
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME ("")
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME ("")
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME ("")
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME ("")
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME ("")
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME ("")
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME ("")
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME ("")
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME ("")
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME ("")
|
|
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
|
|
|
|
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
|
|
|
|
|
|
ENDIF
|
|
|
|
ELSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintnl()
|
|
cdPrintstring("AppInternet - Update_Compose_Recipient_Subject_Body called from keyboard entry routines.")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(9)
|
|
|
|
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING ("CELL_CONDFNH") //~a~
|
|
|
|
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (PlayerHandleGamerNameStringForScaleform)
|
|
//ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(EyefindGetGamerTagFromHandle(g_sPlayers.selectedPlayerHandle))
|
|
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
|
|
|
|
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING ("CELL_EMAIL_SUBJ") //~a~
|
|
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (EmailSubjectSegments_to_Send[0])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (EmailSubjectSegments_to_Send[1])
|
|
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//STRING s_CombinedContents //Ask Graeme about this!
|
|
|
|
//s_CombinedContents = CONVERT_TEXT_LABEL_TO_STRING(single_email_Received_Data.Contents[0])
|
|
|
|
//s_CombinedContents += "s_CombinedContents"
|
|
|
|
/*
|
|
s_CombinedContents += CONVERT_TEXT_LABEL_TO_STRING(single_email_Received_Data.Contents[1])
|
|
s_CombinedContents += CONVERT_TEXT_LABEL_TO_STRING(single_email_Received_Data.Contents[2])
|
|
s_CombinedContents += CONVERT_TEXT_LABEL_TO_STRING(single_email_Received_Data.Contents[3])
|
|
s_CombinedContents += CONVERT_TEXT_LABEL_TO_STRING(single_email_Received_Data.Contents[4])
|
|
s_CombinedContents += CONVERT_TEXT_LABEL_TO_STRING(single_email_Received_Data.Contents[5])
|
|
s_CombinedContents += CONVERT_TEXT_LABEL_TO_STRING(single_email_Received_Data.Contents[6])
|
|
s_CombinedContents += CONVERT_TEXT_LABEL_TO_STRING(single_email_Received_Data.Contents[7])
|
|
s_CombinedContents += CONVERT_TEXT_LABEL_TO_STRING(single_email_Received_Data.Contents[8])
|
|
s_CombinedContents += CONVERT_TEXT_LABEL_TO_STRING(single_email_Received_Data.Contents[9])
|
|
s_CombinedContents += CONVERT_TEXT_LABEL_TO_STRING(single_email_Received_Data.Contents[10])
|
|
s_CombinedContents += CONVERT_TEXT_LABEL_TO_STRING(single_email_Received_Data.Contents[11])
|
|
*/
|
|
|
|
//#IF IS_DEBUG_BUILD
|
|
|
|
//cdPrintstring(s_CombinedContents)
|
|
|
|
//#ENDIF
|
|
|
|
|
|
IF b_MessageBodyFilledThisCycle = FALSE
|
|
|
|
//Makes sure that any old message body contents don't appear in here. If it has been filled prior to the update then go ahead and fill with the data.
|
|
ClearOutEmailBodyContents()
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING ("CELL_EMAIL_BCON") //~a~
|
|
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (EmailMessageSegments_to_Send[0])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (EmailMessageSegments_to_Send[1])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (EmailMessageSegments_to_Send[2])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (EmailMessageSegments_to_Send[3])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (EmailMessageSegments_to_Send[4])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (EmailMessageSegments_to_Send[5])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (EmailMessageSegments_to_Send[6])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (EmailMessageSegments_to_Send[7])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (EmailMessageSegments_to_Send[8])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (EmailMessageSegments_to_Send[9])
|
|
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
|
|
|
|
|
|
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"UPDATE_TEXT") //Critical! Need to update view
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PROC Place_MP_Friends_in_EmailContactSlots()
|
|
|
|
// Gather the details for all other players (ignoring current player)
|
|
// KGM 3/8/11: For now, just create a list of players in the network game - unsorted, etc
|
|
PLAYER_INDEX thisPlayer = NULL
|
|
INT thisSlot = 0
|
|
INT tempLoop = 0
|
|
GAMER_HANDLE friendHandle
|
|
|
|
|
|
|
|
|
|
i_Number_Of_Contacts_In_List = 0 // Critical! Defaulting this to zero consistently as no story characters are included at present.
|
|
|
|
|
|
|
|
//Critical.
|
|
FriendSlot_OriginIndex = i_Number_Of_Contacts_In_List //Marks the scaleform slot where the story contacts finished and the friends should start.
|
|
|
|
|
|
//Critical, Conor, we need to keep this so we know where the friends slots start from when a slot is selected.
|
|
//FriendSlot_StartingIndex = FriendSlot_OriginIndex
|
|
|
|
Clear_PlayerList_Details_For_Email()
|
|
|
|
|
|
BOOL Human_Contacts_Barred_During_MP_Tutorial = FALSE
|
|
|
|
IF g_bInMultiplayer
|
|
IF ARE_ALL_INSTANCED_TUTORIALS_COMPLETE() = FALSE //#1545235 - function from #1601899
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintnl()
|
|
cdPrintString("ST - Place_MP_Friends_in_ContactSlots() reporting that the player is in MP but has not completed the tutorial, not placing friends or session players in list")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
Human_Contacts_Barred_During_MP_Tutorial = TRUE
|
|
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
|
|
REPEAT NUM_NETWORK_PLAYERS tempLoop
|
|
thisPlayer = INT_TO_PLAYERINDEX(tempLoop)
|
|
IF IS_NET_PLAYER_OK(thisPlayer,FALSE)
|
|
IF Human_Contacts_Barred_During_MP_Tutorial = FALSE //#1545235
|
|
|
|
|
|
/*Stat Reader test harness...
|
|
IF thisPlayer = PLAYER_ID()
|
|
|
|
friendHandle = GET_GAMER_HANDLE_PLAYER(PLAYER_ID())
|
|
|
|
NETWORK_PROFILE_STATS_READER_ADD_GAMER (friendHandle)
|
|
NETWORK_PROFILE_STATS_READER_ADD_STATID (MP0_CHAR_ISACTIVE)
|
|
|
|
|
|
b_StatReaderNeedsToBail = FALSE
|
|
//Put local timer in...
|
|
NETWORK_PROFILE_STATS_READER_START()
|
|
|
|
|
|
|
|
WHILE NETWORK_PROFILE_STATS_READER_GET_STATUS() <> NET_PS_SUCCESS
|
|
AND b_StatReaderNeedsToBail = FALSE
|
|
|
|
WAIT (0)
|
|
|
|
IF NETWORK_PROFILE_STATS_READER_GET_STATUS() = NET_PS_PENDING
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring("AppInternet - Waiting on pending stat reader retrieval...")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
ENDIF
|
|
|
|
IF NETWORK_PROFILE_STATS_READER_GET_STATUS() = NET_PS_FAILED
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring("AppInternet - Stat Reader Failed!")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
b_StatReaderNeedsToBail = TRUE
|
|
|
|
ENDIF
|
|
|
|
|
|
IF NETWORK_PROFILE_STATS_READER_GET_STATUS() = NET_PS_SUCCESS
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring("AppInternet - Stat Reader Succeeded!")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
//b_StatReaderNeedsToBail = TRUE
|
|
|
|
ENDIF
|
|
|
|
|
|
ENDWHILE
|
|
|
|
|
|
IF b_StatReaderNeedsToBail = FALSE //Must have reached success, as the above loop did not fail or timeout. Read stat values...
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring("AppInternet - Stat reader retrieval succeeded...")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
NETWORK_PROFILE_STATS_READER_END()
|
|
|
|
ENDIF
|
|
*/
|
|
|
|
|
|
//Part 2. Expanded this for 3291196 - Only list users in session who have text communication privileges.
|
|
GAMER_HANDLE gamerHandle
|
|
gamerHandle = GET_GAMER_HANDLE_PLAYER(thisPlayer)
|
|
|
|
bool bOkayToAddInSessionGamer = false
|
|
|
|
|
|
IF (NETWORK_CHECK_TEXT_COMMUNICATION_PRIVILEGES() = TRUE)
|
|
AND (NETWORK_IS_VALID_EYEFIND_FRIEND(gamerHandle) = TRUE) //Important! This will prevent any non friends in session from appearing in the list. This is a change to 2016's behaviour.
|
|
bOkayToAddInSessionGamer = true
|
|
ENDIF
|
|
|
|
/*
|
|
IF (thisPlayer = PLAYER_ID()) //Allow the player himself to be included in the list of contacts for debug.
|
|
bOkayToAddInSessionGamer = true
|
|
ENDIF
|
|
*/
|
|
|
|
IF bOkayToAddInSessionGamer
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring("AppInternet - bOkayToAddInSessionGamer was true. Adding gamer. Repeat loop count is ")
|
|
cdPrintInt(thisSlot)
|
|
cdPrintstring(GET_PLAYER_NAME(thisPlayer))
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
|
|
g_sPlayers.plPlayers[thisSlot] = thisPlayer
|
|
Add_MP_Friend_to_Scaleform_Slot(GET_PLAYER_NAME(thisPlayer))
|
|
thisSlot++
|
|
|
|
bOkayToAddInSessionGamer = false //Local var is reinitialised in REPEAT, this just here for absolute clarity.
|
|
|
|
ELSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring("AppInternet - Not adding this gamer to Eyefind contact list. Cannot text chat with them or gamer is not a friend.")
|
|
cdPrintInt(thisSlot)
|
|
cdPrintstring(GET_PLAYER_NAME(thisPlayer))
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ENDIF
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
g_sPlayers.plNumPlayers = thisSlot
|
|
|
|
|
|
|
|
thisSlot = 0
|
|
IF IS_ACCOUNT_OVER_17_FOR_CHAT(PLAYER_ID())
|
|
FOR tempLoop = 0 TO NETWORK_GET_FRIEND_COUNT()-1
|
|
//IF NETWORK_IS_FRIEND_ONLINE(NETWORK_GET_FRIEND_NAME(tempLoop))
|
|
//IF NETWORK_IS_FRIEND_IN_SAME_TITLE(NETWORK_GET_FRIEND_NAME(tempLoop))
|
|
friendHandle = GET_GAMER_HANDLE_FRIEND(tempLoop)
|
|
IF (NOT NETWORK_IS_GAMER_IN_MY_SESSION(friendHandle))
|
|
//Part 3.Potentially expand this for 3291196 - Will only list any friend user who can be contacted through TEXT_CHAT but it looks as if this will only return true if the friend is online, so this makes this feature unusable here.
|
|
AND (NETWORK_CHECK_TEXT_COMMUNICATION_PRIVILEGES() = TRUE)
|
|
AND (NETWORK_IS_VALID_EYEFIND_FRIEND(friendHandle)) = TRUE //Overkill as we're moving through the friends list but putting this here for clarity of changes.
|
|
|
|
IF Human_Contacts_Barred_During_MP_Tutorial = FALSE //#1545235
|
|
|
|
//Old working regime
|
|
/*
|
|
IF thisSlot < c_MAX_EMAIL_CONTACTS
|
|
g_sPlayers.plFriends[thisSlot].Handle = friendHandle
|
|
g_sPlayers.plFriends[thisSlot].Name = NETWORK_GET_FRIEND_NAME(tempLoop)
|
|
Add_MP_Friend_to_Scaleform_Slot(g_sPlayers.plFriends[thisSlot].Name)
|
|
thisSlot++
|
|
ENDIF
|
|
*/
|
|
|
|
//New optimised trial
|
|
IF thisSlot < c_MAX_EMAIL_CONTACTS
|
|
g_sPlayers.plFriendsHandle[thisSlot] = friendHandle
|
|
|
|
|
|
//This g_sPlayers.selectedPlayerName assignment below might need to be conditioned with a Durango variant which returns NETWORK_GET_FRIEND_DISPLAY_NAME for DURANGO
|
|
|
|
// IF IS_PLAYSTATION_PLATFORM()
|
|
//
|
|
// //g_sPlayers.selectedPlayerName = NETWORK_GET_FRIEND_DISPLAY_NAME(tempLoop)
|
|
// PlayerHandleGamerNameStringForScaleform = NETWORK_GET_GAMERTAG_FROM_HANDLE(friendHandle)
|
|
//
|
|
//
|
|
// #IF IS_DEBUG_BUILD
|
|
// cdPrintstring("AppInternet - Adding PS4 Friend Player with Display Name - loop count ")
|
|
// cdPrintInt(thisSlot)
|
|
// cdPrintstring(PlayerHandleGamerNameStringForScaleform)
|
|
// cdPrintnl()
|
|
// #ENDIF
|
|
//
|
|
//
|
|
//
|
|
IF IS_XBOX_PLATFORM() //2222604
|
|
OR IS_PLAYSTATION_PLATFORM()
|
|
//g_sPlayers.selectedPlayerName = NETWORK_GET_FRIEND_DISPLAY_NAME(tempLoop)
|
|
PlayerHandleGamerNameStringForScaleform = NETWORK_GET_FRIEND_DISPLAY_NAME(tempLoop)
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring("AppInternet - Adding XBox One Friend Player with Display Name - loop count ")
|
|
cdPrintInt(thisSlot)
|
|
cdPrintstring(PlayerHandleGamerNameStringForScaleform)
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
|
|
|
|
ELSE
|
|
|
|
//g_sPlayers.selectedPlayerName = NETWORK_GET_FRIEND_NAME(tempLoop)
|
|
PlayerHandleGamerNameStringForScaleform = NETWORK_GET_FRIEND_NAME(tempLoop)
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring("AppInternet - Adding PC / PS4 Friend Player - loop count ")
|
|
cdPrintInt(thisSlot)
|
|
cdPrintstring(PlayerHandleGamerNameStringForScaleform)
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
|
|
Add_MP_Friend_to_Scaleform_Slot(PlayerHandleGamerNameStringForScaleform)
|
|
thisSlot++
|
|
ENDIF
|
|
|
|
|
|
ENDIF
|
|
ENDIF
|
|
//ENDIF
|
|
//ENDIF
|
|
ENDFOR
|
|
ENDIF
|
|
g_sPlayers.plTotalNumContacts = g_sPlayers.plNumPlayers + thisSlot
|
|
|
|
IF b_MovedToComposeFromReplyButton = TRUE
|
|
Update_Compose_Recipient_Subject_Body() //Update the recipient and subject field if we have reached this page from the reply button.
|
|
ENDIF
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"UPDATE_TEXT") //Critical! Need to update view
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
PROC Update_Compose_Recipient_Field_Only()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_DATA_SLOT")
|
|
|
|
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(9) //From Eddie. This should be slot 9
|
|
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING ("CELL_CONDFNH") //~a~
|
|
|
|
//BEGIN_TEXT_COMMAND_SCALEFORM_STRING ("CELL_CONDFON")
|
|
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (PlayerHandleGamerNameStringForScaleform)
|
|
|
|
//Test.
|
|
//ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(DisplayNameReturnName[0])
|
|
|
|
|
|
//ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(EyefindGetGamerTagFromHandle(g_sPlayers.selectedPlayerHandle))
|
|
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("")
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("")
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
|
|
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"UPDATE_TEXT") //Critical! Need to update view
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Condensed Font test")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Handle OSK keyboard input, the parse result into EmailMessageSegments_to_Send, an array of TL63s
|
|
PROC Maintain_Email_Message_Body_Creation_from_OSK()
|
|
|
|
|
|
#if IS_DEBUG_BUILD
|
|
|
|
IF g_b_InstructEyefindtoSendAutoLongMessage = TRUE //If this widget is checked, autofill the message body contents. These strings can be modified to test long and profane messages.
|
|
//This can be handy for checking Rockstar Social Club marketing content as they should not be going through any virtual keyboard checks.
|
|
|
|
EmailMessageSegments_to_Send[0] = "a_Testing 1 fuck shit profanity 1 test "
|
|
EmailMessageSegments_to_Send[1] = "b_Testing 2 "
|
|
EmailMessageSegments_to_Send[2] = "c_Testing 3 "
|
|
EmailMessageSegments_to_Send[3] = "d_Testing 4 "
|
|
EmailMessageSegments_to_Send[4] = "e_Testing 5 "
|
|
EmailMessageSegments_to_Send[5] = "f_Testing 6 "
|
|
EmailMessageSegments_to_Send[6] = "g_Testing 7 "
|
|
EmailMessageSegments_to_Send[7] = "h_Testing 8 fuck shit profanity 2 test"
|
|
EmailMessageSegments_to_Send[8] = "i_Testing 9 "
|
|
EmailMessageSegments_to_Send[9] = "j_Testing 10 "
|
|
|
|
|
|
|
|
b_Creating_Email_Message_Body_from_OSK = FALSE
|
|
|
|
b_MessageBodyFilledThisCycle = TRUE
|
|
|
|
|
|
Update_Compose_Recipient_Subject_Body()
|
|
|
|
EXIT
|
|
|
|
ENDIF
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//IF b_Creating_Email_Message_Body_from_OSK = TRUE
|
|
|
|
//IF RUN_ON_SCREEN_KEYBOARD(KeyBoardData.eStatus, KeyBoardData.iProfanityToken, KeyBoardData.iCurrentStatus, FALSE, FALSE, tlEmailMessage, FALSE, 0, TRUE)
|
|
|
|
|
|
IF RUN_ON_SCREEN_KEYBOARD( KeyBoardData.eStatus,
|
|
KeyBoardData.iProfanityToken,
|
|
KeyBoardData.iCurrentStatus,
|
|
FALSE,
|
|
FALSE,
|
|
EmailMessageSegments_to_Send[0],
|
|
FALSE,
|
|
0,
|
|
FALSE,
|
|
FALSE,
|
|
EmailMessageSegments_to_Send[1],
|
|
TRUE )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//IF RUN_ON_SCREEN_KEYBOARD(sFMMCendStage.oskStatus, sFMMCendStage.iProfanityToken, sFMMCendStage.iKeyBoardStatus, FALSE, bMissionName, "", FALSE,0, FALSE, bMissionTags)
|
|
|
|
//tlEmailMessage = GET_ONSCREEN_KEYBOARD_RESULT()
|
|
//NET_PRINT_TIME() NET_PRINT(" ----------> APP - MAINTAIN_PERSISTENT_CHECKS - KEYBOARD RESULT = ") NET_PRINT(tlSendMessage) NET_NL()
|
|
KeyBoardData.eStatus = OSK_PENDING
|
|
KeyBoardData.iCurrentstatus = OSK_STAGE_SET_UP
|
|
KeyBoardData.iProfanityToken = 0
|
|
b_Creating_Email_Message_Body_from_OSK = FALSE
|
|
|
|
//cdPrintnl()
|
|
//cdPrintstring(tlEmailMessage)
|
|
//cdPrintnl()
|
|
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(GET_ONSCREEN_KEYBOARD_RESULT())
|
|
|
|
EmailMessageSegments_to_Send[0] = ""
|
|
EmailMessageSegments_to_Send[1] = ""
|
|
EmailMessageSegments_to_Send[2] = ""
|
|
EmailMessageSegments_to_Send[3] = ""
|
|
EmailMessageSegments_to_Send[4] = ""
|
|
EmailMessageSegments_to_Send[5] = ""
|
|
EmailMessageSegments_to_Send[6] = ""
|
|
EmailMessageSegments_to_Send[7] = ""
|
|
EmailMessageSegments_to_Send[8] = ""
|
|
EmailMessageSegments_to_Send[9] = ""
|
|
//EmailMessageSegments_to_Send[10] = ""
|
|
//EmailMessageSegments_to_Send[11] = ""
|
|
|
|
iStringLengthInCharacters = GET_LENGTH_OF_LITERAL_STRING(GET_ONSCREEN_KEYBOARD_RESULT())
|
|
|
|
//If the description is blank then bail
|
|
/*
|
|
IF IS_EMAIL_STRING_BLANK_SPACES(GET_ONSCREEN_KEYBOARD_RESULT(), iStringLengthInCharacters)
|
|
KeyBoardData.iCurrentstatus = OSK_STAGE_SET_UP
|
|
KeyBoardData.eStatus = OSK_PENDING
|
|
KeyBoardData.iProfanityToken = 1
|
|
RETURN FALSE
|
|
ENDIF
|
|
*/
|
|
INT iStartCharacterIndex = 0
|
|
INT iArrayIndex = 0
|
|
BOOL bFinishedCopying = FALSE
|
|
|
|
WHILE NOT bFinishedCopying
|
|
IF iStartCharacterIndex >= iStringLengthInCharacters
|
|
bFinishedCopying = TRUE
|
|
ELSE
|
|
IF iArrayIndex >= c_MAX_SEGMENTS
|
|
|
|
bFinishedCopying = TRUE
|
|
|
|
|
|
|
|
ELSE
|
|
EmailMessageSegments_to_Send[iArrayIndex] = GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_WITH_BYTE_LIMIT(GET_ONSCREEN_KEYBOARD_RESULT(), iStartCharacterIndex, iStringLengthInCharacters, 63)
|
|
CPRINTLN(DEBUG_INTERNET, " EmailMessageSegments_to_Send[", iArrayIndex, "] = ", EmailMessageSegments_to_Send[iArrayIndex])
|
|
iStartCharacterIndex += GET_LENGTH_OF_LITERAL_STRING( EmailMessageSegments_to_Send[iArrayIndex])
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "iStartCharacterIndex is now ", iStartCharacterIndex)
|
|
|
|
|
|
//cdprintnl()
|
|
//cdPrintstring(EmailMessageSegments_to_Send[iArrayIndex])
|
|
//cdPrintnl()
|
|
|
|
iArrayIndex++
|
|
|
|
ENDIF
|
|
ENDIF
|
|
ENDWHILE
|
|
|
|
b_MessageBodyFilledThisCycle = TRUE
|
|
|
|
|
|
Update_Compose_Recipient_Subject_Body()
|
|
|
|
|
|
|
|
ENDIF
|
|
|
|
//GAMER_HANDLE thisHandle
|
|
//thisHandle = GET_GAMER_HANDLE_PLAYER(g_sPlayers.plPlayers[g_sPlayers.m_selectedPlayerSlot])
|
|
|
|
//Send the Message to the Player
|
|
//REINIT_NET_TIMER(MPGlobalsAmbience.iSendMessageToPlayerTimer[NATIVE_TO_INT(g_sPlayers.plPlayers[g_sPlayers.m_selectedPlayerSlot])])
|
|
//NETWORK_SEND_TEXT_MESSAGE(tlSendMessage, thisHandle) //BROADCAST_TEXT_MESSAGE_USING_LITERAL(tlSendMessage, SPECIFIC_PLAYER(g_sPlayers.plPlayers[g_sPlayers.m_selectedPlayerSlot]))
|
|
//NET_PRINT_TIME() NET_PRINT(" ----------> APP - ciPI_SUB_MENU_SM_PLAYER_LIST - MESSAGE SENT TO ") NET_PRINT(GET_PLAYER_NAME(g_sPlayers.plPlayers[g_sPlayers.m_selectedPlayerSlot])) NET_NL()
|
|
//NET_PRINT_TIME() NET_PRINT(" ----------> APP - ciPI_SUB_MENU_SM_PLAYER_LIST - MESSAGE = ") NET_PRINT(tlSendMessage) NET_NL()
|
|
|
|
//PRINT_TICKER_WITH_PLAYER_NAME("CP_TM_SENT", g_sPlayers.plPlayers[g_sPlayers.m_selectedPlayerSlot]) //Your message has been sent to ~a~
|
|
|
|
//g_sPlayers.iPlayerInteractionStage = PLAYER_INTERACTION_STAGE_SELECT
|
|
//CPRINTLN(DEBUG_INTERNET, " ----------> APP - PLAYER_INTERACTION_STAGE_SEND_MESSAGE - PiPlayerInteractionStage = PLAYER_INTERACTION_STAGE_SELECT - B")
|
|
|
|
ELSE
|
|
|
|
|
|
IF KeyBoardData.eStatus = OSK_CANCELLED
|
|
//NET_PRINT_TIME() NET_PRINT(" ----------> APP - MAINTAIN_PERSISTENT_CHECKS - KEYBOARD CLOSED - oskStatus = ") NET_PRINT_INT(ENUM_TO_INT(KeyBoardData.eStatus)) NET_NL()
|
|
KeyBoardData.eStatus = OSK_PENDING
|
|
KeyBoardData.iCurrentstatus = OSK_STAGE_SET_UP
|
|
KeyBoardData.iProfanityToken = 0
|
|
b_Creating_Email_Message_Body_from_OSK = FALSE
|
|
|
|
//g_sPlayers.iPlayerInteractionStage = PLAYER_INTERACTION_STAGE_SELECT
|
|
//CPRINTLN(DEBUG_INTERNET, " ----------> APP - PLAYER_INTERACTION_STAGE_SEND_MESSAGE - PiPlayerInteractionStage = PLAYER_INTERACTION_STAGE_SELECT - B")
|
|
ENDIF
|
|
|
|
ENDIF
|
|
//ENDIF
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PROC Maintain_Email_Message_Subject_Creation_from_OSK()
|
|
|
|
|
|
//IF b_Creating_Email_Message_Body_from_OSK = TRUE
|
|
|
|
IF RUN_ON_SCREEN_KEYBOARD(KeyBoardData.eStatus, KeyBoardData.iProfanityToken, KeyBoardData.iCurrentStatus, FALSE, FALSE, EmailSubjectSegments_to_Send[0], FALSE, 0, TRUE, FALSE, "", TRUE)
|
|
|
|
/*
|
|
FUNC BOOL RUN_ON_SCREEN_KEYBOARD(OSK_STATUS &oskStatus,
|
|
INT &iProfanityToken,
|
|
INT &iCurrentstatus,
|
|
BOOL bIsObjectiveText = FALSE,
|
|
BOOL bMissionName = TRUE,
|
|
STRING stToChange = NULL,
|
|
BOOL bSMSMessage = FALSE,
|
|
INT iMissObjectiveType = 0,
|
|
BOOL bSMSMessageShort = FALSE, //Critical! This controls whether the subject or the message body prompt are displayed.
|
|
BOOL bMissionTags = FALSE,
|
|
STRING stToChange2 = NULL,
|
|
BOOL bUsingLaptopEmail = FALSE)
|
|
*/
|
|
|
|
|
|
|
|
//IF RUN_ON_SCREEN_KEYBOARD(sFMMCendStage.oskStatus, sFMMCendStage.iProfanityToken, sFMMCendStage.iKeyBoardStatus, FALSE, bMissionName, "", FALSE,0, FALSE, bMissionTags)
|
|
|
|
//tlEmailMessage = GET_ONSCREEN_KEYBOARD_RESULT()
|
|
//NET_PRINT_TIME() NET_PRINT(" ----------> APP - MAINTAIN_PERSISTENT_CHECKS - KEYBOARD RESULT = ") NET_PRINT(tlSendMessage) NET_NL()
|
|
KeyBoardData.eStatus = OSK_PENDING
|
|
KeyBoardData.iCurrentstatus = OSK_STAGE_SET_UP
|
|
KeyBoardData.iProfanityToken = 0
|
|
b_Creating_Email_Message_Subject_from_OSK = FALSE
|
|
|
|
//cdPrintnl()
|
|
//cdPrintstring(tlEmailMessage)
|
|
//cdPrintnl()
|
|
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(GET_ONSCREEN_KEYBOARD_RESULT())
|
|
|
|
|
|
//EmailSubjectSegments_to_Send[0] = GET_ONSCREEN_KEYBOARD_RESULT() //Removed for 2257287, March 2015
|
|
|
|
|
|
EmailSubjectSegments_to_Send[0] = ""
|
|
EmailSubjectSegments_to_Send[1] = ""
|
|
|
|
iStringLengthInCharacters = GET_LENGTH_OF_LITERAL_STRING(GET_ONSCREEN_KEYBOARD_RESULT())
|
|
|
|
//If the description is blank then bail
|
|
/*
|
|
IF IS_EMAIL_STRING_BLANK_SPACES(GET_ONSCREEN_KEYBOARD_RESULT(), iStringLengthInCharacters)
|
|
KeyBoardData.iCurrentstatus = OSK_STAGE_SET_UP
|
|
KeyBoardData.eStatus = OSK_PENDING
|
|
KeyBoardData.iProfanityToken = 1
|
|
RETURN FALSE
|
|
ENDIF
|
|
*/
|
|
|
|
//Adding in this WHILE section for 2257287, March 2015
|
|
INT iStartCharacterIndex = 0
|
|
INT iArrayIndex = 0
|
|
BOOL bFinishedCopying = FALSE
|
|
|
|
WHILE NOT bFinishedCopying
|
|
IF iStartCharacterIndex >= iStringLengthInCharacters
|
|
bFinishedCopying = TRUE
|
|
ELSE
|
|
IF iArrayIndex >= 1
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdprintnl()
|
|
cdPrintstring("AppInternet - Finished copying EmailSubjectSegments_to_Send[0]")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
|
|
|
|
bFinishedCopying = TRUE
|
|
|
|
ELSE
|
|
EmailSubjectSegments_to_Send[iArrayIndex] = GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_WITH_BYTE_LIMIT(GET_ONSCREEN_KEYBOARD_RESULT(), iStartCharacterIndex, iStringLengthInCharacters, 63)
|
|
CPRINTLN(DEBUG_INTERNET, " EmailSubjectSegments_to_Send[", iArrayIndex, "] = ", EmailSubjectSegments_to_Send[iArrayIndex])
|
|
iStartCharacterIndex += GET_LENGTH_OF_LITERAL_STRING( EmailSubjectSegments_to_Send[iArrayIndex])
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "iStartCharacterIndex is now ", iStartCharacterIndex)
|
|
|
|
|
|
//cdprintnl()
|
|
//cdPrintstring(EmailSubjectSegments_to_Send[iArrayIndex])
|
|
//cdPrintnl()
|
|
|
|
iArrayIndex++
|
|
|
|
ENDIF
|
|
ENDIF
|
|
ENDWHILE
|
|
//End of new March 2015 2257287 section
|
|
|
|
//This is problematic as the message body can be entered before the subject. See bug #1890436
|
|
//ClearOutEmailBodyContents()
|
|
|
|
|
|
|
|
Update_Compose_Recipient_Subject_Body()
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
//GAMER_HANDLE thisHandle
|
|
//thisHandle = GET_GAMER_HANDLE_PLAYER(g_sPlayers.plPlayers[g_sPlayers.m_selectedPlayerSlot])
|
|
|
|
//Send the Message to the Player
|
|
//REINIT_NET_TIMER(MPGlobalsAmbience.iSendMessageToPlayerTimer[NATIVE_TO_INT(g_sPlayers.plPlayers[g_sPlayers.m_selectedPlayerSlot])])
|
|
//NETWORK_SEND_TEXT_MESSAGE(tlSendMessage, thisHandle) //BROADCAST_TEXT_MESSAGE_USING_LITERAL(tlSendMessage, SPECIFIC_PLAYER(g_sPlayers.plPlayers[g_sPlayers.m_selectedPlayerSlot]))
|
|
//NET_PRINT_TIME() NET_PRINT(" ----------> APP - ciPI_SUB_MENU_SM_PLAYER_LIST - MESSAGE SENT TO ") NET_PRINT(GET_PLAYER_NAME(g_sPlayers.plPlayers[g_sPlayers.m_selectedPlayerSlot])) NET_NL()
|
|
//NET_PRINT_TIME() NET_PRINT(" ----------> APP - ciPI_SUB_MENU_SM_PLAYER_LIST - MESSAGE = ") NET_PRINT(tlSendMessage) NET_NL()
|
|
|
|
//PRINT_TICKER_WITH_PLAYER_NAME("CP_TM_SENT", g_sPlayers.plPlayers[g_sPlayers.m_selectedPlayerSlot]) //Your message has been sent to ~a~
|
|
|
|
//g_sPlayers.iPlayerInteractionStage = PLAYER_INTERACTION_STAGE_SELECT
|
|
//CPRINTLN(DEBUG_INTERNET, " ----------> APP - PLAYER_INTERACTION_STAGE_SEND_MESSAGE - PiPlayerInteractionStage = PLAYER_INTERACTION_STAGE_SELECT - B")
|
|
|
|
ELSE
|
|
|
|
|
|
IF KeyBoardData.eStatus = OSK_CANCELLED
|
|
//NET_PRINT_TIME() NET_PRINT(" ----------> APP - MAINTAIN_PERSISTENT_CHECKS - KEYBOARD CLOSED - oskStatus = ") NET_PRINT_INT(ENUM_TO_INT(KeyBoardData.eStatus)) NET_NL()
|
|
KeyBoardData.eStatus = OSK_PENDING
|
|
KeyBoardData.iCurrentstatus = OSK_STAGE_SET_UP
|
|
KeyBoardData.iProfanityToken = 0
|
|
b_Creating_Email_Message_Subject_from_OSK = FALSE
|
|
|
|
//g_sPlayers.iPlayerInteractionStage = PLAYER_INTERACTION_STAGE_SELECT
|
|
//CPRINTLN(DEBUG_INTERNET, " ----------> APP - PLAYER_INTERACTION_STAGE_SEND_MESSAGE - PiPlayerInteractionStage = PLAYER_INTERACTION_STAGE_SELECT - B")
|
|
ENDIF
|
|
|
|
ENDIF
|
|
//ENDIF
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PROC Status_Update_Screen_Handling()
|
|
|
|
IF b_EmailClickDetected
|
|
|
|
b_EmailClickDetected = FALSE //reset this...
|
|
|
|
|
|
EmailState = eINITIAL
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring ("AppInternet - Moving from Status Update Screen to Inbox")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PROC Player_to_Player_Composing_Main()
|
|
|
|
|
|
IF b_DisplayProfileViewHelp = TRUE
|
|
|
|
//Draw movie whilst the onscreen keyboard is NOT present on screen.
|
|
IF NOT (UPDATE_ONSCREEN_KEYBOARD() = OSK_PENDING) //2207263
|
|
|
|
IF NOT HAS_SCALEFORM_MOVIE_LOADED (SF_EyefindInstButtonsIndex)
|
|
|
|
SF_EyefindInstButtonsIndex = REQUEST_SCALEFORM_MOVIE ("instructional_buttons")
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintnl()
|
|
cdPrintstring("AppInternet - Player_to_Player_Composing_Main() - SF_EyefindInstButtonsIndex not loaded.")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
ELSE
|
|
DRAW_SCALEFORM_MOVIE_FULLSCREEN (SF_EyefindInstButtonsIndex, 255, 255, 255,0)
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL,INPUT_CELLPHONE_EXTRA_OPTION)
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_CELLPHONE_EXTRA_OPTION)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintnl()
|
|
cdPrintstring("AppInternet - Player_to_Player_Composing_Main() - User pressed joypad to view PROFILE_UI.")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
NETWORK_SHOW_PROFILE_UI(gh_ProfileViewHandle)
|
|
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
IF GET_CURRENT_WEBPAGE_ID() = 7 //Have moved to inbox from history. Handles 19087854
|
|
|
|
EmailState = eINITIAL
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintnl()
|
|
cdPrintstring("AppInternet - Player_to_Player_Composing_Main() - detected move to inbox. Setting email state to eINITIAL to repopulate.")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
IF b_Creating_Email_Message_Body_from_OSK
|
|
|
|
Maintain_Email_Message_Body_Creation_from_OSK()
|
|
|
|
ENDIF
|
|
|
|
|
|
IF b_Creating_Email_Message_Subject_from_OSK
|
|
|
|
Maintain_Email_Message_Subject_Creation_from_OSK()
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
IF b_Creating_Email_Message_Body_from_OSK = FALSE
|
|
AND b_Creating_Email_Message_Subject_from_OSK = FALSE
|
|
|
|
IF b_EmailClickDetected
|
|
|
|
b_EmailClickDetected = FALSE //reset this...
|
|
|
|
|
|
|
|
IF g_iLastSelectedWebIndex = 7 //Create message body.
|
|
|
|
//ClearOutEmailBodyContents()
|
|
|
|
b_Creating_Email_Message_Body_from_OSK = TRUE
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
IF g_iLastSelectedWebIndex = 6 //Create subject.
|
|
|
|
b_Creating_Email_Message_Subject_from_OSK = TRUE
|
|
|
|
ENDIF
|
|
|
|
|
|
IF g_iLastSelectedWebIndex = 5 //Cancel button pressed.
|
|
|
|
//May need wrapped in a timer to give the inbox contents time to load in.
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Eyefind Cancel button pressed.")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
b_DisplayProfileViewHelp = FALSE
|
|
|
|
|
|
//Critical. Email has been cancelled, blank out first two message segments for bug 2181546
|
|
EmailMessageSegments_to_Send[0] = ""
|
|
EmailMessageSegments_to_Send[1] = ""
|
|
|
|
|
|
|
|
EmailState = eINITIAL
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
IF g_iLastSelectedWebIndex = 8 //Send Email button.
|
|
|
|
INT tempSegmentIndex = 0
|
|
|
|
WHILE tempSegmentIndex < c_MAX_SEGMENTS
|
|
|
|
single_email_Sending_Data.Contents[tempSegmentIndex] = EmailMessageSegments_to_Send[tempSegmentIndex]
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring ("Copying email message body segment ")
|
|
cdPrintint (tempSegmentIndex)
|
|
cdPrintstring(" ")
|
|
cdPrintstring(single_email_Sending_Data.Contents[tempSegmentIndex])
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
tempSegmentIndex ++
|
|
|
|
ENDWHILE
|
|
|
|
|
|
//Send the email!
|
|
single_email_Sending_Data.Subject[0] = EmailSubjectSegments_to_Send[0]
|
|
single_email_Sending_Data.Subject[1] = EmailSubjectSegments_to_Send[1] //Having problems with this one!
|
|
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("Sending email to SC_EMAIL_SEND_EMAIL")
|
|
cdPrintstring("Subject Segment 1")
|
|
cdPrintstring(single_email_Sending_Data.Subject[0])
|
|
cdPrintstring("Subject Segment 2")
|
|
cdPrintstring(single_email_Sending_Data.Subject[1])
|
|
cdPrintnl()
|
|
|
|
|
|
cdPrintstring("MessageSegments were ")
|
|
cdPrintstring(single_email_Sending_Data.Contents[0])
|
|
cdPrintstring(single_email_Sending_Data.Contents[1])
|
|
cdPrintstring(single_email_Sending_Data.Contents[2])
|
|
cdPrintstring(single_email_Sending_Data.Contents[3])
|
|
cdPrintstring(single_email_Sending_Data.Contents[4])
|
|
cdPrintstring(single_email_Sending_Data.Contents[5])
|
|
cdPrintstring(single_email_Sending_Data.Contents[6])
|
|
cdPrintstring(single_email_Sending_Data.Contents[7])
|
|
cdPrintstring(single_email_Sending_Data.Contents[8])
|
|
cdPrintstring(single_email_Sending_Data.Contents[9])
|
|
|
|
|
|
cdPrintstring(single_email_Sending_Data.Contents[10])
|
|
cdPrintstring(single_email_Sending_Data.Contents[11])
|
|
|
|
cdPrintnl()
|
|
cdPrintstring("Calling NATIVE SC_EMAIL_SEND_EMAIL")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
SC_EMAIL_SET_CURRENT_EMAIL_TAG("gta5email") //Critical! Need to ensure we send these Eyefind messages with the correct tag.
|
|
|
|
#if IS_DEBUG_BUILD
|
|
|
|
IF g_DisplayTestPhotoSprite //Re-using this old debug only bool in a widget to test send a marketing email from the Eyefind infrastructure.
|
|
|
|
SC_EMAIL_SET_CURRENT_EMAIL_TAG("gta5marketing")
|
|
cdPrintstring("Sending Eyefind message with test marketing tag from widget!")
|
|
cdPrintnl()
|
|
|
|
ELSE
|
|
|
|
SC_EMAIL_SET_CURRENT_EMAIL_TAG("gta5email")
|
|
cdPrintstring("Sending Eyefind message with normal marketing tag!")
|
|
cdPrintnl()
|
|
|
|
ENDIF
|
|
|
|
#endif
|
|
|
|
SC_EMAIL_SEND_EMAIL (single_email_Sending_Data)
|
|
|
|
b_MessageBodyFilledThisCycle = FALSE
|
|
|
|
|
|
//Jump to Page 9 to display a message indicating the send has taken place and the recipient(s)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"GO_TO_WEBPAGE")
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
|
|
ADD_TEXT_COMPONENT_SUBSTRING_WEBSITE("WWW_EYEFIND_INFO_S_EMAILSTATUS")
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(10)
|
|
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("CELL_EMAIL_SUC")
|
|
|
|
//BEGIN_TEXT_COMMAND_SCALEFORM_STRING ("CELL_EMAIL_SUC") //Message has been sent to ~a~
|
|
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING ("CELL_EMAIL_CSUC") //Condensed font version. Your message has been sent to <C>~a~</C>
|
|
|
|
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (PlayerHandleGamerNameStringForScaleform)
|
|
|
|
//ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(EyefindGetGamerTagFromHandle(g_sPlayers.selectedPlayerHandle))
|
|
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"UPDATE_TEXT") //Critical! Need to update view
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring ("AppInternet - Sent email to ")
|
|
cdPrintstring (PlayerHandleGamerNameStringForScaleform)
|
|
//cdPrintstring (EyefindGetGamerTagFromHandle(g_sPlayers.selectedPlayerHandle))
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
|
|
//Critical. Email has been sent, blank out first two message segments for bug 2181546
|
|
EmailMessageSegments_to_Send[0] = ""
|
|
EmailMessageSegments_to_Send[1] = ""
|
|
|
|
|
|
|
|
EmailState = eSTATUS_UPDATE //Critical!
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IF g_iLastSelectedWebIndex > 9 //Selecting a contact from the recipient list...
|
|
|
|
|
|
//Clear out recipient list before adding any new contacts...
|
|
SC_EMAIL_MESSAGE_CLEAR_RECIP_LIST()
|
|
|
|
b_DisplayProfileViewHelp = FALSE
|
|
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Clearing old recipient list. Email Contacts list click [g_iLastSelectedWebIndex = ", g_iLastSelectedWebIndex, "]")
|
|
|
|
g_sPlayers.m_selectedPlayerSlot = g_iLastSelectedWebIndex - 10
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Eyefind email, Player clicked contact list - Adjusted selected player slot is ")
|
|
cdPrintint (g_sPlayers.m_selectedPlayerSlot)
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
|
|
|
|
IF g_sPlayers.m_selectedPlayerSlot < g_sPlayers.plNumPlayers
|
|
|
|
|
|
g_sPlayers.selectedPlayerHandle = GET_GAMER_HANDLE_PLAYER(g_sPlayers.plPlayers[g_sPlayers.m_selectedPlayerSlot])
|
|
|
|
|
|
PlayerHandleGamerNameStringForScaleform = EyefindGetGamerTagFromHandle(g_sPlayers.selectedPlayerHandle)
|
|
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Eyefind email, player list gamertag from selected handle was ")
|
|
cdPrintstring(PlayerHandleGamerNameStringForScaleform)
|
|
//cdPrintstring (EyefindGetGamerTagFromHandle(g_sPlayers.selectedPlayerHandle))
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
ELSE
|
|
//Old working regime
|
|
//g_sPlayers.selectedPlayerHandle = g_sPlayers.plFriends[GET_INDEX_OF_FRIEND_ARRAY_FOR_EMAIL(g_sPlayers.m_selectedPlayerSlot)].Handle
|
|
|
|
//New trial
|
|
g_sPlayers.selectedPlayerHandle = g_sPlayers.plFriendsHandle[GET_INDEX_OF_FRIEND_ARRAY_FOR_EMAIL(g_sPlayers.m_selectedPlayerSlot)]
|
|
|
|
|
|
|
|
|
|
// Test. This works.
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring("Friend display name test returns...")
|
|
cdPrintstring(NETWORK_GET_FRIEND_NAME(GET_INDEX_OF_FRIEND_ARRAY_FOR_EMAIL(g_sPlayers.m_selectedPlayerSlot)))
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
|
|
//This part below might need to be conditioned with a Durango variant which returns NETWORK_GET_FRIEND_DISPLAY_NAME for DURANGO
|
|
//IF IS_DURANGO_VERSION
|
|
// PlayerHandleGamerNameStringForScaleform = NETWORK_GET_FRIEND_DISPLAY_NAME(GET_INDEX_OF_FRIEND_ARRAY_FOR_EMAIL(g_sPlayers.m_selectedPlayerSlot)))
|
|
//ELSE
|
|
|
|
|
|
PlayerHandleGamerNameStringForScaleform = EyefindGetGamerTagFromHandle(g_sPlayers.selectedPlayerHandle)
|
|
|
|
|
|
//ENDIF
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Eyefind email, friend list displayname or gamertag from selected handle was ")
|
|
cdPrintstring(PlayerHandleGamerNameStringForScaleform)
|
|
//cdPrintstring (EyefindGetGamerTagFromHandle(g_sPlayers.selectedPlayerHandle))
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
//Get and store display name here!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BOOL b_CommunicationAllowed = TRUE
|
|
|
|
|
|
|
|
|
|
|
|
IF NOT IS_GAMER_HANDLE_VALID(g_sPlayers.selectedPlayerHandle)
|
|
|
|
b_CommunicationAllowed = FALSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Eyefind email, Preventing communication as Gamer Handle not valid for this selected player... ")
|
|
cdPrintstring(PlayerHandleGamerNameStringForScaleform)
|
|
//cdPrintstring (EyefindGetGamerTagFromHandle(g_sPlayers.selectedPlayerHandle))
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
ELSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Eyefind email, Gamer handle valid for selected player. ")
|
|
cdPrintstring(PlayerHandleGamerNameStringForScaleform)
|
|
//cdPrintstring (EyefindGetGamerTagFromHandle(g_sPlayers.selectedPlayerHandle))
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
//Part 5. Expanded this for 3291196 - Will block any reply attempt to any user who cannot be contacted through TEXT_CHAT but it seems as if this check will prevent any reply if the sender is offline!
|
|
IF (NETWORK_CHECK_TEXT_COMMUNICATION_PRIVILEGES() = FALSE)
|
|
OR (NETWORK_IS_VALID_EYEFIND_FRIEND(g_sPlayers.selectedPlayerHandle) = FALSE) //Add this check for offline problem. At least we'll know the two users are still friends.
|
|
|
|
b_CommunicationAllowed = FALSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Eyefind email, Sender has no text communication privileges or is not a friend. Communication prevented for new message to this player...")
|
|
cdPrintstring(PlayerHandleGamerNameStringForScaleform)
|
|
//cdPrintstring (EyefindGetGamerTagFromHandle((g_sPlayers.selectedPlayerHandle)))
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
|
|
IF NETWORK_IS_GAMER_MUTED_BY_ME(g_sPlayers.selectedPlayerHandle)
|
|
OR NETWORK_IS_GAMER_BLOCKED_BY_ME(g_sPlayers.selectedPlayerHandle)
|
|
OR NETWORK_AM_I_MUTED_BY_GAMER(g_sPlayers.selectedPlayerHandle)
|
|
OR NETWORK_AM_I_BLOCKED_BY_GAMER(g_sPlayers.selectedPlayerHandle)
|
|
|
|
b_CommunicationAllowed = FALSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Eyefind email, Communication prevented for this player... ")
|
|
cdPrintstring(PlayerHandleGamerNameStringForScaleform)
|
|
//cdPrintstring (EyefindGetGamerTagFromHandle(g_sPlayers.selectedPlayerHandle))
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
IF b_CommunicationAllowed = FALSE //Should be FALSE!
|
|
|
|
//Jump to Page 9 to display a message indicating communication is blocked for the selected gamerhandle
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"GO_TO_WEBPAGE")
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
|
|
ADD_TEXT_COMPONENT_SUBSTRING_WEBSITE("WWW_EYEFIND_INFO_S_EMAILSTATUS")
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(10)
|
|
|
|
|
|
IF ARE_STRINGS_EQUAL (PlayerHandleGamerNameStringForScaleform, "") //Potential fix for 2131480
|
|
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("CELL_EMAIL_ERR")
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Communication not allowed but gamerstring was empty - 2. Displaying generic message.")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
ELSE
|
|
|
|
//BEGIN_TEXT_COMMAND_SCALEFORM_STRING ("CELL_EMAIL_BLK") //~a~ cannot be contacted at this time.
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING ("CELL_EMAIL_CBLK") //<C>~a~</C> cannot be contacted at this time.
|
|
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(PlayerHandleGamerNameStringForScaleform)
|
|
|
|
//ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(EyefindGetGamerTagFromHandle(g_sPlayers.selectedPlayerHandle))
|
|
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
|
|
ENDIF
|
|
|
|
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"UPDATE_TEXT") //Critical! Need to update view
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring ("App Internet - Player_to_Player_Composing_Main() communication block warning for ")
|
|
cdPrintstring(PlayerHandleGamerNameStringForScaleform)
|
|
//cdPrintstring (EyefindGetGamerTagFromHandle(g_sPlayers.selectedPlayerHandle))
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
EmailState = eSTATUS_UPDATE //Critical!
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
|
|
IF b_CommunicationAllowed = TRUE
|
|
AND (IS_GAMER_HANDLE_VALID(g_sPlayers.selectedPlayerHandle) OR bg_bBypassValidGamerCheck)
|
|
SC_EMAIL_MESSAGE_PUSH_GAMER_TO_RECIP_LIST(g_sPlayers.selectedPlayerHandle)
|
|
|
|
gh_ProfileViewHandle = g_sPlayers.selectedPlayerHandle
|
|
|
|
//PS3_360_ButtonSetup()
|
|
|
|
IF NOT IS_PC_VERSION()
|
|
|
|
b_DisplayProfileViewHelp = TRUE
|
|
NG_ViewProfile_ButtonSetup()
|
|
|
|
ENDIF
|
|
|
|
//NETWORK_GAMERTAG_FROM_HANDLE_START might need to be used for 360 only!
|
|
|
|
|
|
Update_Compose_Recipient_Field_Only()
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PROC CheckForEmailAwakeningFromDormantState() //This is repeatedly ran when EmailState = eDORMANT.
|
|
/*
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
IF NETWORK_IS_GAME_IN_PROGRESS()
|
|
|
|
IF IS_KEYBOARD_KEY_JUST_PRESSED (KEY_0) //Temp! This would be replaced by a scaleform check on the button being clicked on the Eyefind website. Should have MP check here too.
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintnl()
|
|
cdPrintstring("appInternet - User requested Eyefind Inbox. Initialising Email retrieval process...")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
EmailState = eINITIAL
|
|
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
#ENDIF
|
|
*/
|
|
|
|
|
|
IF NETWORK_IS_GAME_IN_PROGRESS()
|
|
|
|
IF GET_CURRENT_WEBSITE_ID() = 2 //Eyefind
|
|
IF GET_CURRENT_WEBPAGE_ID() = 7 //Eyefind Inbox has been launched.
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintnl()
|
|
cdPrintstring("appInternet - User requested Eyefind Inbox. Initialising Email retrieval process...")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
|
|
SF_EyefindInstButtonsIndex = REQUEST_SCALEFORM_MOVIE ("instructional_buttons")
|
|
|
|
WHILE NOT HAS_SCALEFORM_MOVIE_LOADED (SF_EyefindInstButtonsIndex)
|
|
|
|
DRAW_SCALEFORM_MOVIE_FULLSCREEN(mov,255,255,255,0)
|
|
|
|
WAIT(0)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintstring("appInternet - Waiting on intruction buttons movie to load for Eyefind initial state.")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
ENDWHILE
|
|
|
|
DRAW_SCALEFORM_MOVIE_FULLSCREEN(mov,255,255,255,0)
|
|
|
|
IF NETWORK_IS_GAME_IN_PROGRESS()
|
|
|
|
EmailState = eINITIAL
|
|
|
|
ELSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintnl()
|
|
cdPrintstring("appInternet - CheckForEmailAwakeningFromDormantState() about to set EmailState = eINITIAL but network game is no longer in progress.")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ELSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintnl()
|
|
cdPrintstring("appInternet - CheckForEmailAwakeningFromDormantState() fired but network game is not in progress.")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
PROC CheckForComposeAwakening() //This is repeatedly ran when EmailState = eDORMANT.
|
|
|
|
|
|
IF NETWORK_IS_GAME_IN_PROGRESS()
|
|
|
|
IF GET_CURRENT_WEBSITE_ID() = 2 //Eyefind
|
|
IF GET_CURRENT_WEBPAGE_ID() = 8 //Eyefind compose has been launched.
|
|
|
|
|
|
b_MessageBodyFilledThisCycle = FALSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintnl()
|
|
cdPrintstring("appInternet - User requested Eyefind Compose. Initialising Player slot filling process...")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
Place_MP_Friends_in_EmailContactSlots()
|
|
|
|
|
|
SF_EyefindInstButtonsIndex = REQUEST_SCALEFORM_MOVIE ("instructional_buttons")
|
|
|
|
WHILE NOT HAS_SCALEFORM_MOVIE_LOADED (SF_EyefindInstButtonsIndex)
|
|
|
|
DRAW_SCALEFORM_MOVIE_FULLSCREEN(mov,255,255,255,0)
|
|
|
|
WAIT(0)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintstring("appInternet - Waiting on intruction buttons movie to load for Eyefind composing state.")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
ENDWHILE
|
|
|
|
|
|
IF NETWORK_IS_GAME_IN_PROGRESS()
|
|
|
|
EmailState = eCOMPOSING
|
|
|
|
ELSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintnl()
|
|
cdPrintstring("appInternet - CheckForComposeAwakening() about to set EmailState = eCOMPOSING but network game is no longer in progress.")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ELSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintnl()
|
|
cdPrintstring("appInternet - CheckForComposeAwakening() fired but network game is not in progress.")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
|
|
PROC InitialiseEmailRetrieval(INT iBatchStart, INT iBatchEnd)
|
|
|
|
|
|
/*
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SHOW_CURSOR")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
*/
|
|
|
|
|
|
//IF i_InboxDepth = 0
|
|
|
|
//Disable the newer button as it is not functional if we are on the newest page, 0.
|
|
//BEGIN_SCALEFORM_MOVIE_METHOD(mov,"DISABLE_BUTTON")
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(7)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
//END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
//ENDIF
|
|
|
|
|
|
|
|
b_ReachedOldestEmail = FALSE //Critical!
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintstring("appInternet - Initialised New March 15 Retrieval Process for this batch. Starting at ")
|
|
cdPrintint(iBatchStart)
|
|
cdPrintstring(" Number of emails to grab in this batch is ")
|
|
cdPrintint(iBatchEnd)
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//John Gurney Notes:
|
|
//To retrieve emails, use SC_EMAIL_RETRIEVE_EMAILS(INT startIndex, INT numEmails). Emails are ordered from 0 being the most recent.
|
|
//When you retrieve them, they will be returned in order youngest-oldest from the given index. The maximum you can retrieve is 10.
|
|
|
|
|
|
//Test with most recent ten. Eventually this should use scaleform stuff to let us know which batches to access.
|
|
|
|
//SC_EMAIL_RETRIEVE_EMAILS (iBatchStart, iBatchEnd + (5 * i_InboxDepth)) //Old regime which I think was necessary once upon a time...
|
|
|
|
SC_EMAIL_SET_CURRENT_EMAIL_TAG("gta5email") //Critical! We only want to retrieve Eyefind messages, not marketing emails sent from Rockstar.
|
|
|
|
SC_EMAIL_RETRIEVE_EMAILS (iBatchStart, iBatchEnd)//2267872 - this seems to be fine now.
|
|
|
|
//SC_EMAIL_RETRIEVE_EMAILS(10, 20)
|
|
|
|
EmailState = eRETRIEVAL
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PROC MaintainRetrievalProcess()
|
|
|
|
|
|
|
|
CurrentRetrievalStatus = SC_EMAIL_GET_RETRIEVAL_STATUS()
|
|
|
|
|
|
SWITCH CurrentRetrievalStatus
|
|
|
|
|
|
|
|
|
|
//Retrieval Processed Finished, set EmailState to next section. THIS IS NOT GETTING HIT FROM CODE.
|
|
CASE EMAIL_RETRIEVAL_SUCCEEDED
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintstring("appInternet - Finished retrieving email batch.")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
EmailState = eSF_FILLING
|
|
|
|
BREAK
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CASE EMAIL_RETRIEVAL_NONE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintstring("appInternet - EMAIL RETRIEVAL NONE - Should not see this spam repeatedly! Report to Steve T! Retrieved ")
|
|
cdPrintnl()
|
|
cdPrintint(SC_EMAIL_GET_NUM_RETRIEVED_EMAILS())
|
|
#ENDIF
|
|
|
|
|
|
EmailState = eSF_FILLING
|
|
|
|
|
|
|
|
BREAK
|
|
|
|
|
|
|
|
CASE EMAIL_RETRIEVAL_PENDING
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintstring("appInternet - EMAIL RETRIEVAL PENDING...")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
BREAK
|
|
|
|
|
|
|
|
CASE EMAIL_RETRIEVAL_CANCELLED
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintstring("appInternet - EMAIL RETRIEVAL CANCELLED!")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
EmailState = eDORMANT
|
|
|
|
//FORCE_CLOSE_BROWSER()
|
|
|
|
BREAK
|
|
|
|
|
|
|
|
|
|
|
|
//Failed! Bail out!
|
|
CASE EMAIL_RETRIEVAL_FAILED
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintstring("appInternet - EMAIL RETRIEVAL FAILED!")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
EmailState = eDORMANT
|
|
|
|
//FORCE_CLOSE_BROWSER()
|
|
|
|
BREAK
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ENDSWITCH
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FUNC STRING GET_MONTH_TL_FROM_MONTH_INT(INT iMonth)
|
|
|
|
STRING MonthString
|
|
|
|
|
|
SWITCH iMonth
|
|
|
|
CASE 1
|
|
MonthString = "CELL_JAN"
|
|
BREAK
|
|
|
|
CASE 2
|
|
MonthString = "CELL_FEB"
|
|
BREAK
|
|
|
|
CASE 3
|
|
MonthString = "CELL_MAR"
|
|
BREAK
|
|
|
|
CASE 4
|
|
MonthString = "CELL_APR"
|
|
BREAK
|
|
|
|
CASE 5
|
|
MonthString = "CELL_MAY"
|
|
BREAK
|
|
|
|
CASE 6
|
|
MonthString = "CELL_JUN"
|
|
BREAK
|
|
|
|
CASE 7
|
|
MonthString = "CELL_JUL"
|
|
BREAK
|
|
|
|
CASE 8
|
|
MonthString = "CELL_AUG"
|
|
BREAK
|
|
|
|
CASE 9
|
|
MonthString = "CELL_SEP"
|
|
BREAK
|
|
|
|
CASE 10
|
|
MonthString = "CELL_OCT"
|
|
BREAK
|
|
|
|
CASE 11
|
|
MonthString = "CELL_NOV"
|
|
BREAK
|
|
|
|
CASE 12
|
|
MonthString = "CELL_DEC"
|
|
BREAK
|
|
|
|
|
|
|
|
|
|
DEFAULT
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppINTERNET - EYEFIND Email. Weird date passed. Month is not within range 1-12!")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
MonthString = "CELL_JAN"
|
|
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
|
|
|
|
RETURN MonthString
|
|
|
|
|
|
ENDFUNC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PROC FilloutSingleScaleformSlot(INT iPassedCurrentBatch)
|
|
|
|
|
|
//Fix for PC 2195352. Looks like the server copy of "senderName" was wrong.
|
|
//However, this is probably a safer way to make sure the display name is correct; regrabbing from the handle rather than assuming the name is correct server side.
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintString("AppInternet - FilloutSingleScaleformSlot about to grab name string from SenderHandle.")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
PlayerHandleGamerNameStringForScaleform = EyefindGetGamerTagFromHandle((single_email_Received_Data.SenderHandle))
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintString("AppInternet - FilloutSingleScaleformSlot success. Retrieved gamertag or displayname:")
|
|
cdPrintString(PlayerHandleGamerNameStringForScaleform)
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iPassedCurrentBatch + 10) //From Eddie : The emails start from slot 10. You can pass as many as you want.
|
|
|
|
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING ("CELL_CONDFNH") //~a~
|
|
|
|
//ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (single_email_Received_Data.SenderName)
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (PlayerHandleGamerNameStringForScaleform)
|
|
|
|
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
|
|
|
|
LANGUAGE_TYPE lang = GET_CURRENT_LANGUAGE()
|
|
IF (lang = LANGUAGE_CHINESE_SIMPLIFIED)
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("CELL_EMAIL_DATE")
|
|
|
|
ADD_TEXT_COMPONENT_INTEGER(SingleEmailTimeStamp.nDay)
|
|
|
|
ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL(GET_MONTH_TL_FROM_MONTH_INT(SingleEmailTimeStamp.nMonth))
|
|
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
ELSE
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("CELL_EMAIL_DATE")
|
|
|
|
ADD_TEXT_COMPONENT_INTEGER(SingleEmailTimeStamp.nDay)
|
|
|
|
ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL(GET_MONTH_TL_FROM_MONTH_INT(SingleEmailTimeStamp.nMonth))
|
|
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING ("CELL_EMAIL_SUBJ") //~a~
|
|
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (single_email_Received_Data.Subject[0])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (single_email_Received_Data.Subject[1])
|
|
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
|
|
|
|
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING ("CELL_EMAIL_BCON") //~a~
|
|
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (single_email_Received_Data.Contents[0])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (single_email_Received_Data.Contents[1])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (single_email_Received_Data.Contents[2])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (single_email_Received_Data.Contents[3])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (single_email_Received_Data.Contents[4])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (single_email_Received_Data.Contents[5])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (single_email_Received_Data.Contents[6])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (single_email_Received_Data.Contents[7])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (single_email_Received_Data.Contents[8])
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME (single_email_Received_Data.Contents[9])
|
|
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
|
|
|
|
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintString("AppInternet - Filled scaleform slot. Passed Batch ID was ")
|
|
cdPrintint(iPassedCurrentBatch)
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PROC FillScaleformWithRetrievedEmails(INT iThisBatchStart, INT iThisBatchEnd)
|
|
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT_EMPTY")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintstring("appInternet - About to fill Scaleform slots with retrieved individual email details. websiteId:")
|
|
cdPrintint(GET_CURRENT_WEBSITE_ID())
|
|
cdPrintstring(", webpageId:")
|
|
cdPrintint(GET_CURRENT_WEBPAGE_ID())
|
|
cdPrintnl()
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
INT iCurrentBatchID = iThisBatchStart
|
|
|
|
INT iPreviousPosixTime = 0
|
|
|
|
INT iSFSlotId = 0
|
|
|
|
NumberOfEmailsOnThisPage = 0
|
|
|
|
WHILE iCurrentBatchID < (iThisBatchEnd + 1) //Five slots per page but we need to check the next email after the batch end in order to know if we should display the "older" button.
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintstring("______________________________________________________________________________")
|
|
cdPrintnl()
|
|
cdPrintnl()
|
|
cdPrintstring("appInternet - Grabbing single email for scaleform slot from this email ID which is ")
|
|
cdPrintint(iCurrentBatchID)
|
|
cdPrintnl()
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
|
|
|
|
|
|
|
|
//TEST: This should grab the most recent email. This will all go into a big scaleform filling loop...
|
|
|
|
//Use ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME
|
|
|
|
SC_EMAIL_GET_EMAIL_AT_INDEX (iCurrentBatchID, single_email_Received_Data)
|
|
|
|
INT iArrayIndex = 0
|
|
|
|
CONVERT_POSIX_TIME (single_email_Received_Data.CreatePosixTime, SingleEmailTimeStamp)
|
|
|
|
|
|
WHILE iArrayIndex < c_MAX_SEGMENTS
|
|
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
IF iArrayIndex < 1
|
|
cdPrintstring("Subject is ")
|
|
cdPrintstring(single_email_Received_Data.Subject[1])
|
|
cdPrintnl()
|
|
cdPrintstring(" - Sender was ")
|
|
cdPrintstring(single_email_Received_Data.SenderName)
|
|
cdPrintstring(" at posix ")
|
|
cdPrintint(single_email_Received_Data.CreatePosixTime)
|
|
cdPrintstring(" which is ")
|
|
cdPrintnl()
|
|
cdPrintint(SingleEmailTimeStamp.nYear)
|
|
cdPrintnl()
|
|
cdPrintint(SingleEmailTimeStamp.nMonth)
|
|
cdPrintnl()
|
|
cdPrintint(SingleEmailTimeStamp.nDay)
|
|
cdPrintnl()
|
|
cdPrintint(SingleEmailTimeStamp.nHour)
|
|
cdPrintnl()
|
|
cdPrintint(SingleEmailTimeStamp.nMinute)
|
|
cdPrintnl()
|
|
cdPrintint(SingleEmailTimeStamp.nSecond)
|
|
cdPrintnl()
|
|
cdPrintnl()
|
|
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
IF iArrayIndex < 2
|
|
CPRINTLN(DEBUG_INTERNET, "AppInternet single_email_Received_Data Subject Segment[", iArrayIndex, "] = ", single_email_Received_Data.Subject[iArrayIndex])
|
|
ENDIF
|
|
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "AppInternet single_email_Received_Data Body Segment[", iArrayIndex, "] = ", single_email_Received_Data.Contents[iArrayIndex])
|
|
|
|
|
|
iArrayIndex ++
|
|
|
|
ENDWHILE
|
|
|
|
|
|
|
|
|
|
|
|
//Use posix times to make sure last deleted posix doesn't get included.
|
|
BOOL ThisEmailWasRecentlyDeleted = FALSE
|
|
|
|
//Compare the newly grabbed email with the posix time of the last deleted email. If it's exactly the same we won't include it in the inbox listing.
|
|
//This may be expanded to keep track of the last few deleted emails if the cloud goes a bit slow.
|
|
|
|
//Part 4. Expanded this for 3291196 - Will not include any message from any gamerhandle that can no longer text chat with this end user. It looks like this check prevents text chat if the sender handles is offline.
|
|
IF (NETWORK_CHECK_TEXT_COMMUNICATION_PRIVILEGES() = FALSE)
|
|
//Combine with a friend check so the user can always see friends messages regardless of online / offline status.
|
|
OR (NETWORK_IS_VALID_EYEFIND_FRIEND(single_email_Received_Data.SenderHandle) = FALSE)
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring("AppInternet - Not listing eyefind email as player can no longer text chat with senderhandle. No longer a friend. ")
|
|
#ENDIF
|
|
|
|
ThisEmailWasRecentlyDeleted = TRUE
|
|
|
|
ENDIF
|
|
//End of expansion for 3291196
|
|
|
|
|
|
IF single_email_Received_Data.CreatePosixTime = LastDeletedEmailPosix
|
|
|
|
ThisEmailWasRecentlyDeleted = TRUE
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
IF single_email_Received_Data.CreatePosixTime <> 0 //Avoid populating SF slots with any blank emails.
|
|
AND (iPreviousPosixTime <> single_email_Received_Data.CreatePosixTime) //Handle issue with email from cloud potentially returning the previous email if the index should be empty.
|
|
|
|
|
|
IF ThisEmailWasRecentlyDeleted = FALSE
|
|
|
|
IF iCurrentBatchID < (iThisBatchEnd) //Make sure we don't include the item used to check if the "older" button should be displayed.
|
|
|
|
FilloutSingleScaleformSlot(iSFSlotId)
|
|
|
|
iSFSlotId ++
|
|
|
|
NumberOfEmailsOnThisPage ++
|
|
|
|
ENDIF
|
|
|
|
ELSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintString("AppInternet - Warning! This email was recently deleted. Not including in list. Batch ID is ")
|
|
cdPrintint(iCurrentBatchID)
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
ELSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintString("AppInternet - Warning! Should not see any more fresh emails after this one as this ID is empty. Batch ID is ")
|
|
cdPrintint(iCurrentBatchID)
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
b_ReachedOldestEmail = TRUE //Critical! The "older" button selection check interrogates this bool. The app will not move any pages deeper into the inbox if this is true.
|
|
|
|
//Disable the older button as it is no longer functional in this context. We have reached the last page.
|
|
//BEGIN_SCALEFORM_MOVIE_METHOD(mov,"DISABLE_BUTTON")
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(6)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
//END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
ENDIF
|
|
|
|
iCurrentBatchID ++
|
|
//iSFSlotId ++
|
|
iPreviousPosixTime = single_email_Received_Data.CreatePosixTime
|
|
|
|
|
|
ENDWHILE
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
//This should grab the second most recent email.
|
|
SC_EMAIL_GET_EMAIL_AT_INDEX (1, single_email_Received_Data)
|
|
|
|
iArrayIndex = 0
|
|
|
|
CONVERT_POSIX_TIME (single_email_Received_Data.CreatePosixTime, SingleEmailTimeStamp)
|
|
|
|
|
|
WHILE iArrayIndex < c_MAX_SEGMENTS
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
IF iArrayIndex < 1
|
|
|
|
cdPrintnl()
|
|
cdPrintnl()
|
|
cdPrintstring("Email position 1")
|
|
cdPrintstring(" - Sender was ")
|
|
cdPrintstring(single_email_Received_Data.SenderName)
|
|
cdPrintstring(" at posix ")
|
|
cdPrintint(single_email_Received_Data.CreatePosixTime)
|
|
cdPrintstring(" which is ")
|
|
cdPrintnl()
|
|
cdPrintint(SingleEmailTimeStamp.nYear)
|
|
cdPrintnl()
|
|
cdPrintint(SingleEmailTimeStamp.nMonth)
|
|
cdPrintnl()
|
|
cdPrintint(SingleEmailTimeStamp.nDay)
|
|
cdPrintnl()
|
|
cdPrintint(SingleEmailTimeStamp.nHour)
|
|
cdPrintnl()
|
|
cdPrintint(SingleEmailTimeStamp.nMinute)
|
|
cdPrintnl()
|
|
cdPrintint(SingleEmailTimeStamp.nSecond)
|
|
cdPrintnl()
|
|
cdPrintnl()
|
|
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "AppInternet single_email_Received_Data Body Segment[", iArrayIndex, "] = ", single_email_Received_Data.Contents[iArrayIndex])
|
|
|
|
|
|
IF iArrayIndex < 2
|
|
CPRINTLN(DEBUG_INTERNET, "AppInternet single_email_Received_Data Subject Segment[", iArrayIndex, "] = ", single_email_Received_Data.Subject[iArrayIndex])
|
|
ENDIF
|
|
|
|
|
|
iArrayIndex ++
|
|
|
|
ENDWHILE
|
|
|
|
FilloutSingleScaleformSlot()
|
|
|
|
|
|
|
|
|
|
|
|
//This should grab the third most recent email.
|
|
SC_EMAIL_GET_EMAIL_AT_INDEX (2, single_email_Received_Data)
|
|
|
|
iArrayIndex = 0
|
|
|
|
CONVERT_POSIX_TIME (single_email_Received_Data.CreatePosixTime, SingleEmailTimeStamp)
|
|
|
|
WHILE iArrayIndex < c_MAX_SEGMENTS
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
IF iArrayIndex < 1
|
|
|
|
cdPrintnl()
|
|
cdPrintnl()
|
|
cdPrintstring("Email position 2")
|
|
cdPrintstring(" - Sender was ")
|
|
cdPrintstring(single_email_Received_Data.SenderName)
|
|
cdPrintstring(" at posix ")
|
|
cdPrintint(single_email_Received_Data.CreatePosixTime)
|
|
cdPrintstring(" which is ")
|
|
cdPrintnl()
|
|
cdPrintint(SingleEmailTimeStamp.nYear)
|
|
cdPrintnl()
|
|
cdPrintint(SingleEmailTimeStamp.nMonth)
|
|
cdPrintnl()
|
|
cdPrintint(SingleEmailTimeStamp.nDay)
|
|
cdPrintnl()
|
|
cdPrintint(SingleEmailTimeStamp.nHour)
|
|
cdPrintnl()
|
|
cdPrintint(SingleEmailTimeStamp.nMinute)
|
|
cdPrintnl()
|
|
cdPrintint(SingleEmailTimeStamp.nSecond)
|
|
cdPrintnl()
|
|
cdPrintnl()
|
|
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "AppInternet single_email_Received_Data Body Segment[", iArrayIndex, "] = ", single_email_Received_Data.Contents[iArrayIndex])
|
|
|
|
|
|
iArrayIndex ++
|
|
|
|
ENDWHILE
|
|
|
|
FilloutSingleScaleformSlot()
|
|
|
|
*/
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"UPDATE_TEXT") //Critical! Need to update view
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
|
|
|
|
IF GET_CURRENT_WEBSITE_ID() = 2
|
|
AND GET_CURRENT_WEBPAGE_ID() = 7
|
|
|
|
|
|
IF i_InboxDepth = 0
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"DISABLE_BUTTON") //"Newer" button needs d if we are on the newest page of emails.
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(7)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
ELSE
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"DISABLE_BUTTON") //"Newer" button should be enabled. Scaleform should do this automatically after an update_text.
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(7)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
ENDIF
|
|
|
|
|
|
IF b_ReachedOldestEmail = TRUE
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"DISABLE_BUTTON") //"Older" button needs disabled if we have already reached the oldest page of emails.
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(6)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
ELSE
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"DISABLE_BUTTON") //"Older" button should be enabled. Scaleform should do this automatically after an update_text. SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(6)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
ENDIF
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
//If reached oldest email and no slots on that page were filled... repopulate with previous page?
|
|
|
|
|
|
EmailState = eNEUTRAL_BROWSING
|
|
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Steve T - Run main email handling routines, checking for composing buttons, passing recipient, attempts at accessing more emails.
|
|
PROC Player_to_Player_Email_Main()
|
|
|
|
|
|
|
|
IF GET_CURRENT_WEBSITE_ID() = 2
|
|
AND GET_CURRENT_WEBPAGE_ID() = 7
|
|
|
|
|
|
IF b_Creating_Email_Message_Body_from_OSK = FALSE
|
|
AND b_Creating_Email_Message_Subject_from_OSK = FALSE
|
|
|
|
IF b_EmailClickDetected
|
|
|
|
b_EmailClickDetected = FALSE //reset this...
|
|
|
|
|
|
IF g_iLastSelectedWebIndex > 9
|
|
|
|
i_CurrentlySelectedEmail = (g_iLastSelectedWebIndex - 10) //Most recent email, 0, returns 10 when click selected.
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Email Selected. Adjusted position is ")
|
|
cdPrintint(i_CurrentlySelectedEmail)
|
|
cdPrintnl()
|
|
|
|
SC_EMAIL_GET_EMAIL_AT_INDEX (i_CurrentlySelectedEmail, single_email_Received_Data)
|
|
cdPrintstring(single_email_Received_Data.Contents[0])
|
|
cdPrintnl()
|
|
cdPrintstring(single_email_Received_Data.Contents[1])
|
|
cdPrintnl()
|
|
cdPrintstring(single_email_Received_Data.Contents[2])
|
|
cdPrintnl()
|
|
cdPrintstring(single_email_Received_Data.Contents[3])
|
|
cdPrintnl()
|
|
cdPrintstring(single_email_Received_Data.Contents[4])
|
|
cdPrintnl()
|
|
cdPrintstring(single_email_Received_Data.Contents[5])
|
|
cdPrintnl()
|
|
cdPrintstring(single_email_Received_Data.Contents[6])
|
|
cdPrintnl()
|
|
cdPrintstring(single_email_Received_Data.Contents[7])
|
|
cdPrintnl()
|
|
cdPrintstring(single_email_Received_Data.Contents[8])
|
|
cdPrintnl()
|
|
cdPrintstring(single_email_Received_Data.Contents[9])
|
|
cdPrintnl()
|
|
|
|
|
|
|
|
cdPrintstring(single_email_Received_Data.Subject[0])
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
SC_EMAIL_GET_EMAIL_AT_INDEX (i_CurrentlySelectedEmail, single_email_Received_Data)
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
IF g_iLastSelectedWebIndex = 8 //"Reply"
|
|
|
|
b_MovedToComposeFromReplyButton = TRUE
|
|
|
|
b_MessageBodyFilledThisCycle = FALSE
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Reply to Email Selected. last adjusted position is ")
|
|
cdPrintint(i_CurrentlySelectedEmail)
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
SC_EMAIL_GET_EMAIL_AT_INDEX (i_CurrentlySelectedEmail, single_email_Received_Data)
|
|
|
|
//SC_EMAIL_GET_EMAIL_AT_INDEX ((i_CurrentlySelectedEmail + (5 * i_InboxDepth)), single_email_Received_Data)
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring(single_email_Received_Data.Contents[0])
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"GO_TO_WEBPAGE")
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
|
|
ADD_TEXT_COMPONENT_SUBSTRING_WEBSITE("WWW_EYEFIND_INFO_S_COMPOSE")
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
|
|
//Update_Compose_Recipient_Subject_Body() - If b_MovedToComposeFromReplyButton = TRUE, this now is done after we fill up the player list on moving to the COMPOSE page.
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
//Has problem with deleting two emails in succession url:bugstar:1829642
|
|
IF g_iLastSelectedWebIndex = 9 //"Delete"
|
|
|
|
INT ArrayOfEmailsMarkedForDeletion[1]
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Delete Selected. last adjusted inbox position was ")
|
|
cdPrintint(i_CurrentlySelectedEmail)
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
SC_EMAIL_GET_EMAIL_AT_INDEX (i_CurrentlySelectedEmail, single_email_Received_Data)
|
|
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Grabbed email server data from inbox position. Single_email_Received_Data.id was ")
|
|
cdPrintint(single_email_Received_Data.id)
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
|
|
ArrayOfEmailsMarkedForDeletion[0] = (single_email_Received_Data.id)
|
|
|
|
//ArrayOfEmailsMarkedForDeletion[0] = (i_CurrentlySelectedEmail + 1)// + (5 * i_InboxDepth) )
|
|
|
|
IF NumberOfEmailsOnThisPage > 0
|
|
|
|
NumberOfEmailsOnThisPage --
|
|
|
|
//If there are no more emails on this page, then we need to check if we are on a "older" page. If so, move up to a newer page.
|
|
IF NumberOfEmailsOnThisPage = 0
|
|
|
|
IF i_InboxDepth > 0 //0 is the most recent batch of emails
|
|
|
|
i_InboxDepth --
|
|
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
LastDeletedEmailPosix = single_email_Received_Data.CreatePosixTime
|
|
|
|
SC_EMAIL_DELETE_EMAILS (ArrayOfEmailsMarkedForDeletion, 1)
|
|
|
|
|
|
|
|
//Comment in for testing cloud speed of deletion.
|
|
//WAIT (10000)
|
|
|
|
|
|
EmailState = eINITIAL
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
//* Commented out just now because of retrieval issue.
|
|
IF g_iLastSelectedWebIndex = 7 //"Newer"
|
|
|
|
IF i_InboxDepth > 0 //0 is the most recent batch of emails, so only do a regrab is we are deeper into the inbox.
|
|
|
|
i_InboxDepth --
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Newer button Selected. Resetting b_ReachedOldestEmail to FALSE. New i_InboxDepth is ")
|
|
cdPrintint(i_InboxDepth)
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
b_ReachedOldestEmail = FALSE //As we've moved up one page of depth to a newer page, this can no longer be TRUE.
|
|
|
|
//Re-enable the older button...
|
|
//BEGIN_SCALEFORM_MOVIE_METHOD(mov,"DISABLE_BUTTON")
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(6)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
|
|
//END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
Play_Select_Beep()
|
|
|
|
|
|
//Do a regrab of new batch
|
|
EmailState = eINITIAL
|
|
|
|
ELSE
|
|
|
|
Play_Back_Beep()
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Newer button Selected but i_InboxDepth is already at ")
|
|
cdPrintint(i_InboxDepth)
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
IF g_iLastSelectedWebIndex = 6 //"Older"
|
|
|
|
|
|
IF i_InboxDepth > -1 //1 is the most recent batch of emails, so only do a regrab is we go deeper into the inbox.
|
|
AND b_ReachedOldestEmail = FALSE
|
|
|
|
i_InboxDepth ++
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Older button Selected. New i_InboxDepth is ")
|
|
cdPrintint(i_InboxDepth)
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
|
|
|
|
//Re-enable the newer button as the page depth must be greater than zero now.
|
|
//BEGIN_SCALEFORM_MOVIE_METHOD(mov,"DISABLE_BUTTON")
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(7)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
|
|
//END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Play_Select_Beep()
|
|
|
|
|
|
//Do a regrab of older batch
|
|
EmailState = eINITIAL
|
|
|
|
|
|
ELSE
|
|
|
|
|
|
Play_Back_Beep()
|
|
|
|
|
|
IF b_ReachedOldestEmail = TRUE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Older button selected but cannot function as b_ReachedOldestEmail is TRUE.")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
ELSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring("AppInternet - Older button selected but i_InboxDepth was weird at ")
|
|
cdPrintint(i_InboxDepth)
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
//Email Batch tracking.
|
|
//INT i_InboxDepth = 0
|
|
//INT i_CurrentlySelectedEmail = 0
|
|
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Temp Unreferenced Hacks - REMOVE EVENTUALLY!
|
|
IF b_DummyUnrefHacks = TRUE
|
|
|
|
single_email_Received_Data.Contents[0] = EmailMessageSegments_to_Send[0]
|
|
IF single_email_Received_Data.Id = single_email_Received_Data.Id
|
|
ENDIF
|
|
|
|
|
|
single_email_Sending_Data.Subject[0] = "Test Subject 1"
|
|
single_email_Sending_Data.Subject[1] = "Test Subject 2"
|
|
IF single_email_Sending_Data.Id = single_email_Sending_Data.Id
|
|
ENDIF
|
|
|
|
IF i_InboxDepth = i_InboxDepth
|
|
ENDIF
|
|
|
|
IF i_CurrentlySelectedEmail = i_CurrentlySelectedEmail
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
IF b_Creating_Email_Message_Body_from_OSK
|
|
|
|
Maintain_Email_Message_Body_Creation_from_OSK()
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEXT_LABEL_23 tl23RequestedInternetTextBlock = ""
|
|
|
|
PROC PURCHASE_COMPLETE_AUDIO_LINE()
|
|
|
|
IF g_bInMultiplayer
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF IS_PLAYER_DEAD(GET_PLAYER_INDEX())
|
|
EXIT
|
|
ENDIF
|
|
IF IS_ENTITY_DEAD(GET_PLAYER_PED(GET_PLAYER_INDEX()))
|
|
EXIT
|
|
ENDIF
|
|
|
|
PLAY_PED_AMBIENT_SPEECH_NATIVE(GET_PLAYER_PED(GET_PLAYER_INDEX()), "PURCHASE_ONLINE", "SPEECH_PARAMS_FORCE")
|
|
ENDPROC
|
|
|
|
PROC SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT(STRING sTag, BROWSER_HELP_MESSAGE_TYPE_ENUM eTextType = BHMT_STRING, BOOL bForever = FALSE, INT iNumToDisplay1 = 0, INT iNumToDisplay2 = 0, STRING sStringToDisplay = NULL)
|
|
g_sBrowserHelpMessage.bShow = TRUE
|
|
g_sBrowserHelpMessage.tl15Tag = sTag
|
|
|
|
g_sBrowserHelpMessage.eTextType = eTextType
|
|
g_sBrowserHelpMessage.bForever = bForever
|
|
g_sBrowserHelpMessage.iNumToDisplay1 = iNumToDisplay1
|
|
g_sBrowserHelpMessage.iNumToDisplay2 = iNumToDisplay2
|
|
g_sBrowserHelpMessage.tl15StringToDisplay = sStringToDisplay
|
|
ENDPROC
|
|
|
|
PROC CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT(BOOL bShow = FALSE)
|
|
g_sBrowserHelpMessage.bShow = bShow
|
|
g_sBrowserHelpMessage.tl15Tag = ""
|
|
|
|
g_sBrowserHelpMessage.eTextType = BHMT_NONE
|
|
g_sBrowserHelpMessage.bForever = FALSE
|
|
g_sBrowserHelpMessage.iNumToDisplay1 = -1
|
|
g_sBrowserHelpMessage.iNumToDisplay2 = -1
|
|
g_sBrowserHelpMessage.tl15StringToDisplay = ""
|
|
ENDPROC
|
|
|
|
FUNC BOOL IS_THIS_BROWSER_HELP_MESSAGE_BEING_DISPLAYED(BROWSER_HELP_MESSAGE_STRUCT &structBrowserHelpMessage)
|
|
SWITCH structBrowserHelpMessage.eTextType
|
|
CASE BHMT_STRING
|
|
RETURN IS_THIS_HELP_MESSAGE_BEING_DISPLAYED(structBrowserHelpMessage.tl15Tag)
|
|
BREAK
|
|
CASE BHMT_STRING_WITH_NUMBER
|
|
RETURN IS_THIS_HELP_MESSAGE_WITH_NUMBER_BEING_DISPLAYED(structBrowserHelpMessage.tl15Tag, structBrowserHelpMessage.iNumToDisplay1)
|
|
BREAK
|
|
CASE BHMT_STRING_WITH_TWO_NUMBERS
|
|
RETURN IS_THIS_HELP_MESSAGE_WITH_TWO_NUMBERS_BEING_DISPLAYED(structBrowserHelpMessage.tl15Tag, structBrowserHelpMessage.iNumToDisplay1, structBrowserHelpMessage.iNumToDisplay2)
|
|
BREAK
|
|
CASE BHMT_STRING_WITH_NUMBER_AND_STRING
|
|
RETURN IS_THIS_HELP_MESSAGE_WITH_NUMBER_AND_STRING_BEING_DISPLAYED(structBrowserHelpMessage.tl15Tag, structBrowserHelpMessage.iNumToDisplay1, structBrowserHelpMessage.tl15StringToDisplay)
|
|
BREAK
|
|
|
|
CASE BHMT_NONE
|
|
RETURN FALSE
|
|
BREAK
|
|
ENDSWITCH
|
|
CASSERTLN(DEBUG_INTERNET, "IS_THIS_BROWSER_HELP_MESSAGE_BEING_DISPLAYED(\"", structBrowserHelpMessage.tl15Tag, "\"), eTextType:", structBrowserHelpMessage.eTextType)
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
PROC PRINT_BROWSER_HELP(BROWSER_HELP_MESSAGE_STRUCT &structBrowserHelpMessage)
|
|
SWITCH structBrowserHelpMessage.eTextType
|
|
CASE BHMT_STRING
|
|
IF NOT structBrowserHelpMessage.bForever
|
|
CDEBUG3LN(DEBUG_INTERNET, "PRINT_BROWSER_HELP(\"", structBrowserHelpMessage.tl15Tag, "\")")
|
|
PRINT_HELP(structBrowserHelpMessage.tl15Tag)
|
|
ELSE
|
|
CDEBUG3LN(DEBUG_INTERNET, "PRINT_BROWSER_HELP_FOREVER(\"", structBrowserHelpMessage.tl15Tag, "\")")
|
|
PRINT_HELP_FOREVER(structBrowserHelpMessage.tl15Tag)
|
|
ENDIF
|
|
BREAK
|
|
CASE BHMT_STRING_WITH_NUMBER
|
|
IF NOT structBrowserHelpMessage.bForever
|
|
CDEBUG3LN(DEBUG_INTERNET, "PRINT_BROWSER_HELP_WITH_NUMBER(\"", structBrowserHelpMessage.tl15Tag, "\", ", structBrowserHelpMessage.iNumToDisplay1, ")")
|
|
PRINT_HELP_WITH_NUMBER(structBrowserHelpMessage.tl15Tag, structBrowserHelpMessage.iNumToDisplay1)
|
|
ELSE
|
|
CDEBUG3LN(DEBUG_INTERNET, "PRINT_BROWSER_HELP_FOREVER_WITH_NUMBER(\"", structBrowserHelpMessage.tl15Tag, "\", ", structBrowserHelpMessage.iNumToDisplay1, ")")
|
|
PRINT_HELP_FOREVER_WITH_NUMBER(structBrowserHelpMessage.tl15Tag, structBrowserHelpMessage.iNumToDisplay1)
|
|
ENDIF
|
|
BREAK
|
|
CASE BHMT_STRING_WITH_TWO_NUMBERS
|
|
IF NOT structBrowserHelpMessage.bForever
|
|
CDEBUG3LN(DEBUG_INTERNET, "PRINT_BROWSER_HELP_WITH_TWO_NUMBERS(\"", structBrowserHelpMessage.tl15Tag, "\", ", structBrowserHelpMessage.iNumToDisplay1, ", ", structBrowserHelpMessage.iNumToDisplay2, ")")
|
|
PRINT_HELP_WITH_TWO_NUMBERS(structBrowserHelpMessage.tl15Tag, structBrowserHelpMessage.iNumToDisplay1, structBrowserHelpMessage.iNumToDisplay2)
|
|
ELSE
|
|
CDEBUG3LN(DEBUG_INTERNET, "PRINT_BROWSER_HELP_FOREVER_WITH_TWO_NUMBERS(\"", structBrowserHelpMessage.tl15Tag, "\", ", structBrowserHelpMessage.iNumToDisplay1, ", ", structBrowserHelpMessage.iNumToDisplay2, ")")
|
|
PRINT_HELP_FOREVER_WITH_TWO_NUMBERS(structBrowserHelpMessage.tl15Tag, structBrowserHelpMessage.iNumToDisplay1, structBrowserHelpMessage.iNumToDisplay2)
|
|
ENDIF
|
|
BREAK
|
|
CASE BHMT_STRING_WITH_NUMBER_AND_STRING
|
|
IF NOT structBrowserHelpMessage.bForever
|
|
CDEBUG3LN(DEBUG_INTERNET, "PRINT_BROWSER_HELP_WITH_NUMBER_AND_STRING(\"", structBrowserHelpMessage.tl15Tag, "\", ", structBrowserHelpMessage.iNumToDisplay1, ", \"", structBrowserHelpMessage.tl15StringToDisplay, "\")")
|
|
PRINT_HELP_WITH_NUMBER_AND_STRING(structBrowserHelpMessage.tl15Tag, structBrowserHelpMessage.iNumToDisplay1, structBrowserHelpMessage.tl15StringToDisplay)
|
|
ELSE
|
|
CDEBUG3LN(DEBUG_INTERNET, "PRINT_BROWSER_HELP_FOREVER_WITH_NUMBER_AND_STRING(\"", structBrowserHelpMessage.tl15Tag, "\", ", structBrowserHelpMessage.iNumToDisplay1, ", \"", structBrowserHelpMessage.tl15StringToDisplay, "\")")
|
|
PRINT_HELP_FOREVER_WITH_NUMBER_AND_STRING(structBrowserHelpMessage.tl15Tag, structBrowserHelpMessage.iNumToDisplay1, structBrowserHelpMessage.tl15StringToDisplay)
|
|
ENDIF
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "PRINT_BROWSER_HELP(\"", structBrowserHelpMessage.tl15Tag, "\"), eTextType:", structBrowserHelpMessage.eTextType)
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
|
|
PROC TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(BOOL bToggleOn)
|
|
IF g_bDisable_toggle_player_proofs_when_processing_internet_shopping_basket
|
|
CPRINTLN(DEBUG_INTERNET, "disabled TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET - ", GET_STRING_FROM_BOOL(bToggleOn))
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF IS_ENTITY_ALIVE(PLAYER_PED_ID())
|
|
AND bSetPlayerProofsWhileProcessingBasket != bToggleOn
|
|
CPRINTLN(DEBUG_INTERNET, "TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET - ", GET_STRING_FROM_BOOL(bToggleOn))
|
|
DEBUG_PRINTCALLSTACK()
|
|
|
|
IF bToggleOn
|
|
SET_ENTITY_PROOFS(PLAYER_PED_ID(), TRUE, TRUE, TRUE, TRUE, TRUE)
|
|
ELSE
|
|
SET_ENTITY_PROOFS(PLAYER_PED_ID(), FALSE, FALSE, FALSE, FALSE, FALSE)
|
|
ENDIF
|
|
bSetPlayerProofsWhileProcessingBasket = bToggleOn
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC FORCE_CLOSE_BROWSER()
|
|
DEBUG_PRINTCALLSTACK()
|
|
|
|
g_bBSWebsiteTerminated = TRUE
|
|
|
|
g_bBSWebsiteNoSpaceTrigger = FALSE
|
|
IF IS_THIS_BROWSER_HELP_MESSAGE_BEING_DISPLAYED(g_sBrowserHelpMessage)
|
|
CLEAR_HELP(TRUE)
|
|
bTradeHelpPrinted = FALSE
|
|
ENDIF
|
|
g_sBrowserHelpMessage.bShow = FALSE
|
|
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_HACKT0")
|
|
OR IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_MOC0")
|
|
OR IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_AOC0")
|
|
#IF FEATURE_HEIST_ISLAND
|
|
OR IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_KOSA0")
|
|
#ENDIF
|
|
CLEAR_HELP(TRUE)
|
|
bTradeHelpPrinted = FALSE
|
|
ENDIF
|
|
|
|
IF bTradeHelpPrinted
|
|
AND IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
CLEAR_HELP(TRUE)
|
|
bTradeHelpPrinted = FALSE
|
|
ENDIF
|
|
|
|
CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT()
|
|
|
|
IF g_iEpsilonTutorialStage <> -1
|
|
KILL_ANY_CONVERSATION()
|
|
g_iEpsilonTutorialStage = -1
|
|
ENDIF
|
|
|
|
IF HAS_ADDITIONAL_TEXT_LOADED(SHOP_TEXT_SLOT)
|
|
CLEAR_ADDITIONAL_TEXT(SHOP_TEXT_SLOT, FALSE)
|
|
ENDIF
|
|
|
|
IF bProcessingBasket
|
|
IF GET_CASH_TRANSACTION_STATUS(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) = CASH_TRANSACTION_STATUS_PENDING
|
|
CPRINTLN(DEBUG_INTERNET, "FORCE_CLOSE_BROWSER: force close while a basket transaction is still pending processing - update reply to AUTO_PROCESS")
|
|
UPDATE_CASH_TRANSACTION_FLAGS(GET_BASKET_TRANSACTION_SCRIPT_INDEX(), CTPF_AUTO_PROCESS_REPLY)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "FORCE_CLOSE_BROWSER: force close while a basket transaction has finished processing - delete")
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
ENDIF
|
|
|
|
bProcessingBasket = FALSE
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
|
|
USE_FAKE_MP_CASH(FALSE)
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_CASH_CHANGE)
|
|
ENDIF
|
|
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(FALSE)
|
|
|
|
IF g_bInMultiplayer
|
|
AND bRunningOrgNameKeyboard
|
|
BUSYSPINNER_OFF()
|
|
KeyBoardData.iProfanityToken = 0
|
|
ENDIF
|
|
|
|
IF IS_BIT_SET(iPurchaseHelpBS, PURCHASE_HELP_BS_SPVE0A)
|
|
PRINT_HELP("HELP_SPVE2a") //Go to dynasty8realestate.com and purchase an executive Office to unlock exclusive CEO content.")
|
|
CLEAR_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_SPVE0A)
|
|
ENDIF
|
|
IF IS_BIT_SET(iPurchaseHelpBS, PURCHASE_HELP_BS_SPVE0B)
|
|
PRINT_HELP("HELP_SPVE2b") //Go to your Office ~BLIP_OFFICE~ and access the Vehicle Cargo update to purchase a Vehicle Warehouse.")
|
|
CLEAR_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_SPVE0B)
|
|
ENDIF
|
|
IF iSVM_Unlock_Feed_Message != 0
|
|
IF IS_BIT_SET(iSVM_Unlock_Feed_Message, SVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(DUNE5))
|
|
PRINT_TICKER_WITH_STRING("WEB_SBV_UNLOCK", "MODE_RMP") //Ramped Up
|
|
ENDIF
|
|
IF IS_BIT_SET(iSVM_Unlock_Feed_Message, SVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(WASTELANDER))
|
|
PRINT_TICKER_WITH_STRING("WEB_SBV_UNLOCK", "FRT_TRNS") //Transporter
|
|
ENDIF
|
|
IF IS_BIT_SET(iSVM_Unlock_Feed_Message, SVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(BLAZER5))
|
|
PRINT_TICKER_WITH_STRING("WEB_SBV_UNLOCK", "MODE_STK") //Stockpiling
|
|
ENDIF
|
|
IF IS_BIT_SET(iSVM_Unlock_Feed_Message, SVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(PHANTOM2))
|
|
PRINT_TICKER_WITH_STRING("WEB_SBV_UNLOCK", "MODE_PLW") //Plowed
|
|
ENDIF
|
|
IF IS_BIT_SET(iSVM_Unlock_Feed_Message, SVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(VOLTIC2))
|
|
PRINT_TICKER_WITH_STRING("WEB_SBV_UNLOCK", "MODE_VEL") //Velocity
|
|
ENDIF
|
|
IF IS_BIT_SET(iSVM_Unlock_Feed_Message, SVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(TECHNICAL2))
|
|
PRINT_TICKER_WITH_STRING("WEB_SBV_UNLOCK", "MODE_AA") //Amphibious Assault
|
|
ENDIF
|
|
IF IS_BIT_SET(iSVM_Unlock_Feed_Message, SVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(BOXVILLE5))
|
|
PRINT_TICKER_WITH_STRING("WEB_SBV_UNLOCK", "FRT_MODE") //Fortified
|
|
ENDIF
|
|
IF IS_BIT_SET(iSVM_Unlock_Feed_Message, SVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(RUINER2))
|
|
PRINT_TICKER_WITH_STRING("WEB_SBV_UNLOCK", "MODE_FUL") //Fully Loaded
|
|
ENDIF
|
|
iSVM_Unlock_Feed_Message = 0
|
|
ENDIF
|
|
IF iWVM_Unlock_Feed_Message != 0
|
|
IF IS_BIT_SET(iWVM_Unlock_Feed_Message, WVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(APC))
|
|
// PRINT_TICKER_WITH_STRING("WEB_SBV_UNLOCK", "MODE_RMP") //
|
|
ENDIF
|
|
IF IS_BIT_SET(iWVM_Unlock_Feed_Message, WVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(DUNE3))
|
|
// PRINT_TICKER_WITH_STRING("WEB_SBV_UNLOCK", "FRT_TRNS") //
|
|
ENDIF
|
|
IF IS_BIT_SET(iWVM_Unlock_Feed_Message, WVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(HALFTRACK))
|
|
// PRINT_TICKER_WITH_STRING("WEB_SBV_UNLOCK", "MODE_STK") //
|
|
ENDIF
|
|
IF IS_BIT_SET(iWVM_Unlock_Feed_Message, WVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(OPPRESSOR))
|
|
// PRINT_TICKER_WITH_STRING("WEB_SBV_UNLOCK", "MODE_PLW") //
|
|
ENDIF
|
|
IF IS_BIT_SET(iWVM_Unlock_Feed_Message, WVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(TAMPA3))
|
|
// PRINT_TICKER_WITH_STRING("WEB_SBV_UNLOCK", "MODE_VEL") //
|
|
ENDIF
|
|
IF IS_BIT_SET(iWVM_Unlock_Feed_Message, WVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(TRAILERSMALL2))
|
|
// PRINT_TICKER_WITH_STRING("WEB_SBV_UNLOCK", "MODE_FUL") //
|
|
PRINT_HELP("HELP_WEVE3f") //You can now request the Vom Feuer Anti-Aircraft Trailer via the Vehicles section of the Interaction Menu.
|
|
ENDIF
|
|
iWVM_Unlock_Feed_Message = 0
|
|
ENDIF
|
|
IF IS_BIT_SET(iPurchaseHelpBS, PURCHASE_HELP_BS_BAEQ2A)
|
|
PRINT_HELP("HELP_BAEQ2a") //You can now request a Ballistic Equipment drop via the Inventory section of the Interaction Menu.
|
|
CLEAR_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_BAEQ2A)
|
|
ENDIF
|
|
IF iFDS_Unlock_Feed_Message != 0
|
|
IF IS_BIT_SET(iFDS_Unlock_Feed_Message, GET_FDS_VEHICLE_SLOT(KHANJALI))
|
|
PRINT_HELP("HELP_FDS3a")
|
|
ENDIF
|
|
IF IS_BIT_SET(iFDS_Unlock_Feed_Message, GET_FDS_VEHICLE_SLOT(CHERNOBOG))
|
|
PRINT_HELP("HELP_FDS3b")
|
|
ENDIF
|
|
IF IS_BIT_SET(iFDS_Unlock_Feed_Message, GET_FDS_VEHICLE_SLOT(RIOT2))
|
|
PRINT_HELP("HELP_FDS3c")
|
|
ENDIF
|
|
IF IS_BIT_SET(iFDS_Unlock_Feed_Message, GET_FDS_VEHICLE_SLOT(THRUSTER))
|
|
PRINT_HELP("HELP_FDS3d")
|
|
Send_MP_Txtmsg_From_CharSheetID(CHAR_LESTER, "TXT_CAR_THRUST")
|
|
ENDIF
|
|
iFDS_Unlock_Feed_Message = 0
|
|
ENDIF
|
|
IF iBBS_Unlock_Feed_Message != 0
|
|
iBBS_Unlock_Feed_Message = 0
|
|
ENDIF
|
|
|
|
IF IS_BIT_SET(iPurchaseHelpBS, PURCHASE_HELP_BS_FDSE0DB)
|
|
CLEAR_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_FDSE0DB)
|
|
ENDIF
|
|
|
|
IF IS_BIT_SET(iPurchaseHelpBS, PURCHASE_HELP_BS_FDSE0HA)
|
|
CLEAR_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_FDSE0HA)
|
|
ENDIF
|
|
|
|
IF IS_BIT_SET(iPurchaseHelpBS, PURCHASE_HELP_BS_BBSE0NC)
|
|
CLEAR_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_BBSE0NC)
|
|
ENDIF
|
|
|
|
IF IS_BIT_SET(iPurchaseHelpBS, PURCHASE_HELP_BS_BBSE0HT)
|
|
CLEAR_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_BBSE0HT)
|
|
ENDIF
|
|
|
|
IF IS_BIT_SET(iPurchaseHelpBS, PURCHASE_HELP_BS_HACKT2)
|
|
PRINT_HELP("HELP_HACKT2") //Go to the lowest garage level of your Nightclub ~BLIP_BAT_CLUB_PROPERTY~ to modify your Hacker Truck. You can also request it nearby via the Hacker Truck Services section of the Interaction Menu.
|
|
CLEAR_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_HACKT2)
|
|
ENDIF
|
|
|
|
// #IF FEATURE_HEIST_ISLAND
|
|
// IF IS_BIT_SET(iPurchaseHelpBS, PURCHASE_HELP_BS_SUBMARINE)
|
|
// PRINT_HELP("HELP_SUBMA_P") //Go to the planning table on-board your new Submarine ~RADAR_TRACE_SUB2~ to begin The Island Heist as a VIP, CEO or MC President. You can also request the Submarine nearby via the Services section of the Interactions Menu.
|
|
// CLEAR_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_SUBMARINE)
|
|
// ENDIF
|
|
// //moved this help to after phone call.
|
|
// //url:bugstar:6731525 - Can we please tweak the spawning and messaging after purchasing the submarine as follows?
|
|
// #ENDIF
|
|
|
|
bPanicShutdownStart = TRUE
|
|
g_BrowserStartState = SBSS_Default
|
|
g_bBrowserNagScreenState = FALSE
|
|
g_bBrowserVoucherNagScreenState = FALSE
|
|
g_bBrowserGoToStoreTrigger = FALSE
|
|
MP_FORCE_TERMINATE_INTERNET_CLEAR()
|
|
SP_FORCE_TERMINATE_INTERNET_CLEAR()
|
|
|
|
#IF IS_DEBUG_BUILD //Steve T addition for 2133870
|
|
|
|
cdPrintnl()
|
|
cdPrintstring("AppInternet - Marking Eyefind email instructional buttons as no longer needed from FORCE_CLOSE_BROWSER and removing text entry box.")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED (SF_EyefindInstButtonsIndex) //#2133870
|
|
|
|
FORCE_CLOSE_TEXT_INPUT_BOX() //Fix for 2232389 - Prevent the text entry box on PC in the first instance from persisting when the browser has closed.
|
|
|
|
//Deativate multihead blinders on PC
|
|
IF SET_MULTIHEAD_SAFE(FALSE,FALSE,bActivatedMultiheadBlinders, TRUE)
|
|
bActivatedMultiheadBlinders = FALSE
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
FUNC BOOL DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
IF g_bInMultiplayer
|
|
AND MP_FORCE_TERMINATE_INTERNET_ACTIVE()
|
|
CPRINTLN(DEBUG_INTERNET, "DO_CHECK_TO_TERMINATE_WHILE_LOOPS - MP force terminate internet active")
|
|
RETURN FALSE
|
|
ENDIF
|
|
IF NOT g_bInMultiplayer
|
|
AND SP_FORCE_TERMINATE_INTERNET_ACTIVE()
|
|
CPRINTLN(DEBUG_INTERNET, "DO_CHECK_TO_TERMINATE_WHILE_LOOPS - SP force terminate internet active")
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF IS_PLAYER_SWITCH_IN_PROGRESS()
|
|
CPRINTLN(DEBUG_INTERNET, "DO_CHECK_TO_TERMINATE_WHILE_LOOPS - player switch is in progress")
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL DO_CHECK_FOR_RAGDOLL_OR_DEAD()
|
|
|
|
IF g_bInMultiplayer
|
|
IF SHOULD_THIS_MULTIPLAYER_THREAD_TERMINATE()
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: g_bInMultiplayer and SHOULD_THIS_MULTIPLAYER_THREAD_TERMINATE")
|
|
FORCE_CLOSE_BROWSER()
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF IS_PAUSE_MENU_ACTIVE()
|
|
IF NOT bProcessingBasket
|
|
IF GET_PAUSE_MENU_STATE() != PM_SHUTTING_DOWN
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: g_bInMultiplayer and IS_PAUSE_MENU_ACTIVE, and GET_PAUSE_MENU_STATE() = ", GET_PAUSE_MENU_STATE())
|
|
FORCE_CLOSE_BROWSER()
|
|
RETURN FALSE
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "<WEB_BROWSER> force_close_browser: g_bInMultiplayer and IS_PAUSE_MENU_ACTIVE, but GET_PAUSE_MENU_STATE() = ", GET_PAUSE_MENU_STATE())
|
|
ENDIF
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "<WEB_BROWSER> force_close_browser: g_bInMultiplayer and IS_PAUSE_MENU_ACTIVE, but bProcessingBasket...")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PLAYER_IN_CORONA()
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: g_bInMultiplayer and player in corona in MP")
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF g_b_OnLeaderboard
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: g_bInMultiplayer and g_b_OnLeaderboard")
|
|
FORCE_CLOSE_BROWSER()
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF g_bResultScreenDisplaying
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: g_bResultScreenDisplaying()")
|
|
FORCE_CLOSE_BROWSER()
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF IS_PLAYER_SWITCH_IN_PROGRESS()
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: IS_PLAYER_SWITCH_IN_PROGRESS()")
|
|
FORCE_CLOSE_BROWSER()
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
IF g_bPlayerLockedInToTrigger
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: g_bPlayerLockedInToTrigger")
|
|
FORCE_CLOSE_BROWSER()
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF IS_PLAYER_BEING_ARRESTED(PLAYER_ID())
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: IS_PLAYER_BEING_ARRESTED()")
|
|
FORCE_CLOSE_BROWSER()
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF GET_ENTITY_HEALTH(GET_PLAYER_PED(GET_PLAYER_INDEX())) != g_iBrowserHealthDelta
|
|
IF GET_ENTITY_HEALTH(GET_PLAYER_PED(GET_PLAYER_INDEX())) < g_iBrowserHealthDelta // Losing health only
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: GET_ENTITY_HEALTH()")
|
|
FORCE_CLOSE_BROWSER()
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(GET_PLAYER_PED(GET_PLAYER_INDEX()))
|
|
IF IS_PED_RAGDOLL(GET_PLAYER_PED(GET_PLAYER_INDEX()))
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: IS_PED_RAGDOLL()")
|
|
FORCE_CLOSE_BROWSER()
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: IS_ENTITY_DEAD()")
|
|
FORCE_CLOSE_BROWSER()
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
IF IS_PLAYER_BROWSING_ITEMS_IN_ANY_SHOP()
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: IS_PLAYER_BROWSING_ITEMS_IN_ANY_SHOP()")
|
|
FORCE_CLOSE_BROWSER()
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
|
|
PROC DISABLE_CONTROL_ACTIONS_GENERAL()
|
|
DO_CHECK_FOR_RAGDOLL_OR_DEAD()
|
|
|
|
DISABLE_ALL_CONTROL_ACTIONS(PLAYER_CONTROL)
|
|
DISABLE_ALL_CONTROL_ACTIONS(FRONTEND_CONTROL)
|
|
|
|
IF !bControlsEnabled
|
|
EXIT
|
|
ENDIF
|
|
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_ACCEPT)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_CANCEL)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_DOWN)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_LB)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_LEFT)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_LT)
|
|
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_RB)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_RT)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_SELECT)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_UP)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_X)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_Y)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_AXIS_X)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_AXIS_Y)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT_AXIS_X)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT_AXIS_Y)
|
|
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_CURSOR_ACCEPT)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_CURSOR_CANCEL)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_CURSOR_X)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_CURSOR_Y)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_CURSOR_SCROLL_UP)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_CURSOR_SCROLL_DOWN)
|
|
|
|
SET_INPUT_EXCLUSIVE(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT)
|
|
SET_INPUT_EXCLUSIVE(FRONTEND_CONTROL, INPUT_FRONTEND_LEFT)
|
|
SET_INPUT_EXCLUSIVE(FRONTEND_CONTROL, INPUT_FRONTEND_DOWN)
|
|
SET_INPUT_EXCLUSIVE(FRONTEND_CONTROL, INPUT_FRONTEND_UP)
|
|
|
|
ENABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_NEXT_CAMERA)
|
|
IF NOT (GET_CAM_VIEW_MODE_FOR_CONTEXT(GET_CAM_ACTIVE_VIEW_MODE_CONTEXT()) = CAM_VIEW_MODE_FIRST_PERSON)
|
|
ENABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_LOOK_LR)
|
|
ENABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_LOOK_UD)
|
|
ENABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_LOOK_UP_ONLY)
|
|
ENABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_LOOK_DOWN_ONLY)
|
|
ENABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_LOOK_LEFT_ONLY)
|
|
ENABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_LOOK_RIGHT_ONLY)
|
|
ENDIF
|
|
ENABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_CINEMATIC_UD)
|
|
ENABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_CINEMATIC_LR)
|
|
|
|
ENABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_FRONTEND_LS)
|
|
ENABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_FRONTEND_RS)
|
|
|
|
ENABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_SCRIPT_LT)
|
|
ENABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_SCRIPT_RT)
|
|
ENABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_SCRIPT_LS)
|
|
ENABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_SCRIPT_RS)
|
|
ENABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_SCRIPT_LEFT_AXIS_X)
|
|
ENABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_SCRIPT_LEFT_AXIS_Y)
|
|
ENABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_SCRIPT_RIGHT_AXIS_X)
|
|
ENABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_SCRIPT_RIGHT_AXIS_Y)
|
|
|
|
// Make sure cursor inputs are exclusive so we don't get any gameplay conflicts in MP.
|
|
SET_INPUT_EXCLUSIVE(FRONTEND_CONTROL, INPUT_CURSOR_ACCEPT)
|
|
SET_INPUT_EXCLUSIVE(FRONTEND_CONTROL, INPUT_CURSOR_CANCEL)
|
|
SET_INPUT_EXCLUSIVE(FRONTEND_CONTROL, INPUT_CURSOR_SCROLL_UP)
|
|
SET_INPUT_EXCLUSIVE(FRONTEND_CONTROL, INPUT_CURSOR_SCROLL_DOWN)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_CURSOR_SCROLL_UP) // Reenabling this control, as setting INPUT_CURSOR_SCROLL_DOWN as exclusive then disables the Up input! B*1985333
|
|
|
|
// Allow pause input, unless typing into a text field (otherwise typing P could pause the game)
|
|
IF NOT (IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL) AND ( GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_KEYBOARD_FLAG_INDEX) != 0 AND NOT bTVOn ))
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_PAUSE)
|
|
ENDIF
|
|
|
|
REPLAY_PREVENT_RECORDING_THIS_FRAME()
|
|
ENDPROC
|
|
|
|
PROC PREP_BROWSER_BUTTONS(BOOL bNullCheck, BOOL bAcceptCancel = FALSE, BOOL bShowBrowser = FALSE)
|
|
CPRINTLN(DEBUG_INTERNET, "Refreshing browser buttons (bNullCheck:", GET_STRING_FROM_BOOL(bNullCheck), ", bAcceptCancel:", GET_STRING_FROM_BOOL(bAcceptCancel), ", bShowBrowser:", GET_STRING_FROM_BOOL(bShowBrowser), ")")
|
|
|
|
IF mov = NULL
|
|
mov = REQUEST_SCALEFORM_MOVIE("web_browser")
|
|
ENDIF
|
|
IF buttons = NULL OR !bNullCheck OR NOT HAS_SCALEFORM_MOVIE_FILENAME_LOADED("INSTRUCTIONAL_BUTTONS")
|
|
buttons = REQUEST_SCALEFORM_MOVIE_INSTANCE("INSTRUCTIONAL_BUTTONS")
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "PREP_BROWSER_BUTTONS : waiting for load...")
|
|
SETTIMERA(0)
|
|
WHILE (NOT HAS_SCALEFORM_MOVIE_LOADED(buttons))
|
|
AND TIMERA() < 1500
|
|
IF bShowBrowser
|
|
//RENDER_BROWSER()
|
|
DISABLE_CONTROL_ACTIONS_GENERAL()
|
|
SET_SCRIPT_GFX_DRAW_ORDER(GFX_ORDER_BEFORE_HUD)
|
|
IF NOT HAS_SCALEFORM_MOVIE_LOADED(mov)
|
|
CASSERTLN(DEBUG_INTERNET, "PREP_BROWSER_BUTTONS: scaleform movie mov has not loaded")
|
|
ELSE
|
|
DRAW_SCALEFORM_MOVIE_FULLSCREEN(mov,255,255,255,0)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
WAIT(0)
|
|
ENDWHILE
|
|
CPRINTLN(DEBUG_INTERNET, "...buttons loaded [", TIMERA(), "ms]")
|
|
|
|
IF buttons != NULL
|
|
AND buttons != INT_TO_NATIVE(SCALEFORM_INDEX, -1)
|
|
AND HAS_SCALEFORM_MOVIE_LOADED(buttons)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(buttons, "CLEAR_ALL")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
INT iSlot = 0
|
|
|
|
IF g_bBrowserGoToStoreTrigger OR bAcceptCancel
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(buttons, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlot)
|
|
++iSlot
|
|
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, INPUT_FRONTEND_ACCEPT))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("CELL_270")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(buttons, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlot)
|
|
++iSlot
|
|
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, INPUT_FRONTEND_CANCEL))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("CELL_271")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
IF bKeyboardHelp
|
|
AND bTVOn = FALSE // This is needed because we're faking the keyboard on screen when playing video to stop the back button qutting the site instead of quitting the video. SR
|
|
|
|
//SELECT X (button_30)
|
|
//CLOSE O (button_31)
|
|
//MOVE dpad (button_9)
|
|
|
|
//CASSERTLN(DEBUG_INTERNET, "Keyboard instructional mode triggered, pass this bug to Default Levels.")
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(buttons, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlot)
|
|
++iSlot
|
|
|
|
IF IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(GET_CONTROL_GROUP_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, INPUTGROUP_CURSOR))
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(GET_CONTROL_GROUP_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, INPUTGROUP_FRONTEND_DPAD_ALL))
|
|
ENDIF
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("IB_NAVIGATE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(buttons, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlot)
|
|
++iSlot
|
|
|
|
IF IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, INPUT_CURSOR_ACCEPT))
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, INPUT_FRONTEND_ACCEPT))
|
|
ENDIF
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("APINTRHLSEL")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(buttons, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlot)
|
|
++iSlot
|
|
|
|
IF IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, INPUT_CURSOR_CANCEL))
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, INPUT_FRONTEND_CANCEL))
|
|
ENDIF
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("APINTRHLDEL")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
// Regular browser help
|
|
/*
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(buttons, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlot)
|
|
++iSlot
|
|
|
|
IF g_BrowserStartState != SBSS_CashMachineFinance
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, INPUT_FRONTEND_Y))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("APINTRHLP")
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, INPUT_FRONTEND_CANCEL))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("APINTRHLPATM")
|
|
ENDIF
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
// If back button available
|
|
IF g_BrowserStartState != SBSS_CashMachineFinance AND bShowingBackButton
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(buttons, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlot)
|
|
++iSlot
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, INPUT_FRONTEND_CANCEL)))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("APINTRHLPATM")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(buttons, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlot)
|
|
++iSlot
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT_AXIS_Y)))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("APINTRHLPSTK")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
*/
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(buttons, "DRAW_INSTRUCTIONAL_BUTTONS")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
PROC RENDER_NAG_SCREEN()
|
|
CPRINTLN(DEBUG_INTERNET, "RENDER_NAG_SCREEN(",
|
|
PICK_STRING(g_eBrosNagReason = NSR_CASH, ", NSR_CASH",
|
|
PICK_STRING(g_eBrosNagReason = NSR_DLC, ", NSR_DLC",
|
|
PICK_STRING(g_eBrosNagReason = NSR_VOUCHER, ", NSR_VOUCHER", ""))),
|
|
")")
|
|
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_PAUSE)
|
|
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_LEFT)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_DOWN)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_UP)
|
|
|
|
STRING pHeaderTextLabel
|
|
STRING pBodyTextLabel
|
|
FE_WARNING_FLAGS iButtonFlagBitfield = FE_WARNING_OKCANCEL
|
|
STRING pBodySubTextLabel = NULL
|
|
|
|
IF (g_eBrosNagReason != NSR_VOUCHER)
|
|
IF !g_bBrowserNagScreenState
|
|
g_bBrowserNagScreenState = FALSE
|
|
g_sTransitionSessionData.sEndReserve.stMPBrowserFromShopSite = lastSiteURL
|
|
|
|
PREP_BROWSER_BUTTONS(TRUE)
|
|
g_bBrowserNagScreenState = TRUE
|
|
ENDIF
|
|
|
|
pHeaderTextLabel = ("BRSCRWTEX") //Alert
|
|
IF NOT HAS_ENTERED_OFFLINE_SAVE_FM()
|
|
SWITCH g_eBrosNagReason
|
|
CASE NSR_CASH pBodyTextLabel = ("BRDISTEX") BREAK //You have insufficient funds. You can add GTA Dollars to your in-game account.
|
|
CASE NSR_DLC pBodyTextLabel = ("BRDISDLC") BREAK //You do not own this downloadable content.
|
|
ENDSWITCH
|
|
pBodySubTextLabel = ("BRSHETEX") //Would you like to visit the Store?
|
|
ELSE
|
|
SWITCH g_eBrosNagReason
|
|
CASE NSR_CASH pBodyTextLabel = ("BRDISTES") BREAK //You have insufficient funds. You will be able to add GTA Dollars when signed into your in-game account.
|
|
CASE NSR_DLC pBodyTextLabel = ("BRDISDLC") BREAK //You do not own this downloadable content.
|
|
ENDSWITCH
|
|
pBodySubTextLabel = ("BRSHETES") //You do not own this downloadable content.
|
|
ENDIF
|
|
ELSE
|
|
IF !g_bBrowserVoucherNagScreenState
|
|
g_bBrowserVoucherNagScreenState = FALSE
|
|
// g_sTransitionSessionData.sEndReserve.stMPBrowserFromShopSite = lastSiteURL
|
|
|
|
PREP_BROWSER_BUTTONS(TRUE)
|
|
g_bBrowserVoucherNagScreenState = TRUE
|
|
ENDIF
|
|
|
|
pHeaderTextLabel = ("DVSCRWTEX") //Discount Vouchers
|
|
SWITCH INT_TO_ENUM(COUPON_TYPE, g_iBrowserGoToStoreItemHash)
|
|
CASE COUPON_CASINO_PLANE_SITE pBodyTextLabel = ("DVDISTEX1") BREAK //This purchase will use your discount for Elitas Travel.
|
|
CASE COUPON_CASINO_BOAT_SITE pBodyTextLabel = ("DVDISTEX2") BREAK //This purchase will use your discount for Dock Tease.
|
|
CASE COUPON_CASINO_CAR_SITE pBodyTextLabel = ("DVDISTEX3") BREAK //This purchase will use your discount for Legendary Motorsport.
|
|
CASE COUPON_CASINO_CAR_SITE2 pBodyTextLabel = ("DVDISTEX6") BREAK //This purchase will use your discount for Southern San Andreas Super Autos.
|
|
CASE COUPON_CASINO_MIL_SITE pBodyTextLabel = ("DVDISTEX4") BREAK //This purchase will use your discount for Warstock Cache & Carry.
|
|
CASE COUPON_CASINO_BIKE_SITE pBodyTextLabel = ("DVDISTEX5") BREAK //This purchase will use your discount for Pedal and Metal.
|
|
ENDSWITCH
|
|
pBodySubTextLabel = ("DVSHETEX") //Using yout voucher will apply the discount
|
|
ENDIF
|
|
SET_WARNING_MESSAGE_WITH_HEADER(pHeaderTextLabel, pBodyTextLabel, iButtonFlagBitfield, pBodySubTextLabel)
|
|
ENDPROC
|
|
SCALEFORM_INDEX siAlert
|
|
INT iPropTimer = -1
|
|
/// PURPOSE:
|
|
/// Holds the screen visible for a second for 1582056
|
|
|
|
PROC POST_BLOCKING_IS_PROPERTY_OVERWRITE_OK()
|
|
|
|
|
|
IF iPropTimer > 0
|
|
iPropTimer -= CEIL(0.0 +@ 1000)
|
|
IF NOT HAS_SCALEFORM_MOVIE_LOADED(siAlert)
|
|
CASSERTLN(DEBUG_INTERNET, "POST_BLOCKING_IS_PROPERTY_OVERWRITE_OK: scaleform movie siAlert has not loaded")
|
|
ELSE
|
|
DRAW_SCALEFORM_MOVIE_FULLSCREEN(siAlert,255,255,255,0)
|
|
ENDIF
|
|
ELSE
|
|
IF siAlert != NULL
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(siAlert)
|
|
siAlert = NULL
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE: Get's the last selected office from SCALEFORM_OFFICE_DATA
|
|
FUNC INT GET_LAST_CLICKED_OFFICE()
|
|
INT iOffice = (GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_DATA), 0, 6))
|
|
|
|
iOffice += PROPERTY_OFFICE_1
|
|
CDEBUG1LN(DEBUG_INTERNET, "GET_LAST_CLICKED_OFFICE: ", iOffice)
|
|
|
|
IF iOffice < PROPERTY_OFFICE_1
|
|
CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_OFFICE: iOffice < PROPERTY_OFFICE_1: ")
|
|
iOffice = PROPERTY_OFFICE_1
|
|
ELIF iOffice > PROPERTY_OFFICE_4
|
|
CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_OFFICE: iOffice > PROPERTY_OFFICE_4: ")
|
|
iOffice = PROPERTY_OFFICE_4
|
|
ENDIF
|
|
|
|
RETURN iOffice
|
|
ENDFUNC
|
|
|
|
/// PURPOSE: Get's the last selected office from button clicks
|
|
INT iLastClickedOffice = 0
|
|
FUNC INT GET_CACHED_LAST_CLICKED_OFFICE()
|
|
CDEBUG1LN(DEBUG_INTERNET, "GET_CACHED_LAST_CLICKED_OFFICE: ", iLastClickedOffice)
|
|
RETURN iLastClickedOffice
|
|
ENDFUNC
|
|
|
|
/// PURPOSE: Get's the last selected Clubhouse from SCALEFORM_CLUBHOUSE_DATA
|
|
FUNC INT GET_LAST_CLICKED_CLUBHOUSE()
|
|
INT iClubhouse = (GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 0, 6))
|
|
|
|
iClubhouse += PROPERTY_CLUBHOUSE_1_BASE_A
|
|
CDEBUG1LN(DEBUG_INTERNET, "GET_LAST_CLICKED_CLUBHOUSE: ", iClubhouse)
|
|
|
|
IF iClubhouse < PROPERTY_CLUBHOUSE_1_BASE_A
|
|
CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_CLUBHOUSE: iClubhouse < PROPERTY_CLUBHOUSE_1_BASE_A: ")
|
|
iClubhouse = PROPERTY_CLUBHOUSE_1_BASE_A
|
|
ELIF iClubhouse > PROPERTY_CLUBHOUSE_12_BASE_B
|
|
CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_CLUBHOUSE: iClubhouse > PROPERTY_CLUBHOUSE_12_BASE_B: ")
|
|
iClubhouse = PROPERTY_CLUBHOUSE_12_BASE_B
|
|
ENDIF
|
|
|
|
RETURN iClubhouse
|
|
ENDFUNC
|
|
|
|
/// PURPOSE: Get's the last selected garage from SCALEFORM_OFFICE_GARAGE_DATA
|
|
FUNC INT GET_LAST_CLICKED_OFFICE_GARAGE()
|
|
INT iGarage = (GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_GARAGE_A_DATA), 0, 7))
|
|
|
|
iGarage += PROPERTY_OFFICE_1_GARAGE_LVL1
|
|
CDEBUG1LN(DEBUG_INTERNET, "GET_LAST_CLICKED_OFFICE_GARAGE: ", iGarage)
|
|
|
|
IF iGarage < PROPERTY_OFFICE_1_GARAGE_LVL1
|
|
CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_OFFICE_GARAGE: iGarage < PROPERTY_OFFICE_1_GARAGE_LVL1: ")
|
|
iGarage = PROPERTY_OFFICE_1_GARAGE_LVL1
|
|
ELIF iGarage > PROPERTY_OFFICE_4_GARAGE_LVL3
|
|
CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_OFFICE_GARAGE: iGarage > PROPERTY_OFFICE_4_GARAGE_LVL3: ")
|
|
iGarage = PROPERTY_OFFICE_4_GARAGE_LVL3
|
|
ENDIF
|
|
|
|
RETURN iGarage
|
|
ENDFUNC
|
|
|
|
/// PURPOSE: Get's the last selected BUNKER from SCALEFORM_BUNKER_DATA
|
|
FUNC INT GET_LAST_CLICKED_BUNKER()
|
|
INT iBunker = (GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 0, 6))
|
|
|
|
iBunker += ENUM_TO_INT(FACTORY_ID_BUNKER_1)
|
|
CDEBUG1LN(DEBUG_INTERNET, "GET_LAST_CLICKED_BUNKER: ", iBunker)
|
|
|
|
IF iBunker < ENUM_TO_INT(FACTORY_ID_BUNKER_1)
|
|
CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_BUNKER: iBunker ", iBunker, " < FACTORY_ID_BUNKER_1: ")
|
|
iBunker = ENUM_TO_INT(FACTORY_ID_BUNKER_1)
|
|
ELIF iBunker > ENUM_TO_INT(FACTORY_ID_BUNKER_12)
|
|
CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_BUNKER: iBunker ", iBunker, " > FACTORY_ID_BUNKER_12: ")
|
|
iBunker = ENUM_TO_INT(FACTORY_ID_BUNKER_12)
|
|
ENDIF
|
|
|
|
RETURN iBunker
|
|
ENDFUNC
|
|
|
|
/// PURPOSE: Get's the last selected hangar from SCALEFORM_BUNKER_DATA
|
|
FUNC INT GET_LAST_CLICKED_HANGAR()
|
|
INT iHangar = (GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 0, 6))
|
|
|
|
iHangar += ENUM_TO_INT(LSIA_HANGAR_1)
|
|
CDEBUG1LN(DEBUG_INTERNET, "GET_LAST_CLICKED_HANGAR: ", iHangar)
|
|
|
|
IF iHangar < ENUM_TO_INT(LSIA_HANGAR_1)
|
|
CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_HANGAR: iHangar ", iHangar, " < LSIA_HANGAR_1: ")
|
|
iHangar = ENUM_TO_INT(LSIA_HANGAR_1)
|
|
ELIF iHangar > ENUM_TO_INT(ZANCUDO_HANGAR_3499)
|
|
CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_HANGAR: iHangar ", iHangar, " > ZANCUDO_HANGAR_3499: ")
|
|
iHangar = ENUM_TO_INT(ZANCUDO_HANGAR_3499)
|
|
ENDIF
|
|
|
|
RETURN iHangar
|
|
ENDFUNC
|
|
|
|
/// PURPOSE: Get's the last selected defunct base from SCALEFORM_BUNKER_DATA
|
|
FUNC INT GET_LAST_CLICKED_DEFUNCT_BASE()
|
|
INT iBase = (GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 0, 6))
|
|
|
|
iBase += ENUM_TO_INT(DEFUNCT_BASE_1)
|
|
CDEBUG1LN(DEBUG_INTERNET, "GET_LAST_CLICKED_DEFUNCT_BASE: ", iBase)
|
|
|
|
IF iBase < ENUM_TO_INT(DEFUNCT_BASE_1)
|
|
CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_DEFUNCT_BASE: iBase ", iBase, " < DEFUNCT_BASE_1: ")
|
|
iBase = ENUM_TO_INT(DEFUNCT_BASE_1)
|
|
ELIF iBase >= ENUM_TO_INT(DEFUNCT_BASE_ID_COUNT)
|
|
CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_DEFUNCT_BASE: iBase ", iBase, " >= DEFUNCT_BASE_ID_COUNT: ")
|
|
iBase = ENUM_TO_INT(DEFUNCT_BASE_ID_COUNT)-1
|
|
ENDIF
|
|
|
|
RETURN iBase
|
|
ENDFUNC
|
|
|
|
/// PURPOSE: Get's the last selected nightclub from SCALEFORM_BUNKER_DATA
|
|
FUNC INT GET_LAST_CLICKED_NIGHTCLUB()
|
|
INT iNightclub = (GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 0, 6))
|
|
|
|
iNightclub += ENUM_TO_INT(NIGHTCLUB_LA_MESA)
|
|
CDEBUG1LN(DEBUG_INTERNET, "GET_LAST_CLICKED_NIGHTCLUB: ", iNightclub)
|
|
|
|
IF iNightclub < ENUM_TO_INT(NIGHTCLUB_LA_MESA)
|
|
CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_NIGHTCLUB: iNightclub ", iNightclub, " < NIGHTCLUB_LA_MESA: ")
|
|
iNightclub = ENUM_TO_INT(NIGHTCLUB_LA_MESA)
|
|
ELIF iNightclub >= ENUM_TO_INT(NIGHTCLUB_ID_COUNT)
|
|
CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_NIGHTCLUB: iBase ", iNightclub, " >= NIGHTCLUB_ID_COUNT: ")
|
|
iNightclub = ENUM_TO_INT(NIGHTCLUB_ID_COUNT)-1
|
|
ENDIF
|
|
|
|
RETURN iNightclub
|
|
ENDFUNC
|
|
|
|
//#IF FEATURE_ARENA_WARS
|
|
///// PURPOSE: Get's the last selected ARENA_GARAGE from SCALEFORM_BUNKER_DATA
|
|
//FUNC INT GET_LAST_CLICKED_ARENA_GARAGE()
|
|
// INT iArenaGarage = (GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_ARENA_WARS_DATA), 0, 6))
|
|
//
|
|
// iArenaGarage += ENUM_TO_INT(ARENA_GARAGE_1)
|
|
// CDEBUG1LN(DEBUG_INTERNET, "GET_LAST_CLICKED_ARENA_GARAGE: ", iArenaGarage)
|
|
//
|
|
// IF iArenaGarage < ENUM_TO_INT(ARENA_GARAGE_1)
|
|
// CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_ARENA_GARAGE: iArenaGarage ", iArenaGarage, " < ARENA_GARAGE_1: ")
|
|
// iArenaGarage = ENUM_TO_INT(ARENA_GARAGE_1)
|
|
// ELIF iArenaGarage >= ENUM_TO_INT(ARENA_GARAGE_ID_COUNT)
|
|
// CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_ARENA_GARAGE: iArenaGarage ", iArenaGarage, " >= ARENA_GARAGE_ID_COUNT: ")
|
|
// iArenaGarage = ENUM_TO_INT(ARENA_GARAGE_ID_COUNT)-1
|
|
// ENDIF
|
|
//
|
|
// RETURN iArenaGarage
|
|
//ENDFUNC
|
|
//#ENDIF
|
|
|
|
/// PURPOSE: Get's the last selected Arcade
|
|
FUNC INT GET_LAST_CLICKED_ARCADE()
|
|
INT iArcade = (GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 0, 6))
|
|
|
|
iArcade += ENUM_TO_INT(ARCADE_PROPERTY_PALETO_BAY)
|
|
|
|
CDEBUG1LN(DEBUG_INTERNET, "GET_LAST_CLICKED_ARCADE: ", iArcade)
|
|
|
|
IF iArcade < ENUM_TO_INT(ARCADE_PROPERTY_PALETO_BAY)
|
|
CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_ARCADE: iArcade ", iArcade, " < ARCADE_PROPERTY_PALETO_BAY: ")
|
|
|
|
iArcade = ENUM_TO_INT(ARCADE_PROPERTY_PALETO_BAY)
|
|
ELIF iArcade >= ENUM_TO_INT(ARCADE_PROPERTY_ID_COUNT)
|
|
CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_ARCADE: iArcade ", iArcade, " >= ARCADE_PROPERTY_ID_COUNT: ")
|
|
|
|
iArcade = ENUM_TO_INT(ARCADE_PROPERTY_ID_COUNT) - 1
|
|
ENDIF
|
|
|
|
RETURN iArcade
|
|
ENDFUNC
|
|
|
|
/// PURPOSE: Get's the last selected auto shop.
|
|
FUNC INT GET_LAST_CLICKED_AUTO_SHOP()
|
|
INT iAutoShop = (GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 0, 3))
|
|
|
|
iAutoShop += ENUM_TO_INT(AUTO_SHOP_PROPERTY_LA_MESA)
|
|
|
|
CDEBUG1LN(DEBUG_INTERNET, "GET_LAST_CLICKED_AUTO_SHOP: ", iAutoShop)
|
|
|
|
IF iAutoShop < ENUM_TO_INT(AUTO_SHOP_PROPERTY_LA_MESA)
|
|
CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_AUTO_SHOP: iAutoShop ", iAutoShop, " < AUTO_SHOP_PROPERTY_LA_MESA: ")
|
|
|
|
iAutoShop = ENUM_TO_INT(AUTO_SHOP_PROPERTY_LA_MESA)
|
|
ELIF iAutoShop >= ENUM_TO_INT(AUTO_SHOP_PROPERTY_ID_COUNT)
|
|
CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_AUTO_SHOP: iAutoShop ", iAutoShop, " >= AUTO_SHOP_PROPERTY_ID_COUNT: ")
|
|
|
|
iAutoShop = ENUM_TO_INT(AUTO_SHOP_PROPERTY_ID_COUNT) - 1
|
|
ENDIF
|
|
|
|
RETURN iAutoShop
|
|
ENDFUNC
|
|
|
|
#IF FEATURE_TUNER
|
|
/// PURPOSE: Get's the last selected fixer HQ from SCALEFORM_OFFICE_DATA
|
|
FUNC INT GET_LAST_CLICKED_FIXER_HQ()
|
|
INT iFixerHQ = (GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_DATA), 0, 6))
|
|
|
|
iFixerHQ += ENUM_TO_INT(FIXER_HQ_HAWICK)
|
|
|
|
CDEBUG1LN(DEBUG_INTERNET, "GET_LAST_CLICKED_FIXER_HQ: ", iFixerHQ)
|
|
|
|
IF iFixerHQ < ENUM_TO_INT(FIXER_HQ_HAWICK)
|
|
CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_FIXER_HQ: iFixerHQ ", iFixerHQ, " < FIXER_HQ_HAWICK: ")
|
|
|
|
iFixerHQ = ENUM_TO_INT(FIXER_HQ_HAWICK)
|
|
ELIF iFixerHQ >= ENUM_TO_INT(FIXER_HQ_ID_COUNT)
|
|
CASSERTLN(DEBUG_INTERNET, "GET_LAST_CLICKED_FIXER_HQ: iFixerHQ ", iFixerHQ, " >= FIXER_HQ_ID_COUNT: ")
|
|
|
|
iFixerHQ = ENUM_TO_INT(FIXER_HQ_ID_COUNT) - 1
|
|
ENDIF
|
|
|
|
RETURN iFixerHQ
|
|
ENDFUNC
|
|
#ENDIF
|
|
|
|
PROC GET_SCALEFORM_OFFICE_DATA(INT &iStyle,INT &iPersonnel,INT &iFont,INT &iColour,INT &iGunLocker,INT &iVault,INT &iAccommodation,
|
|
INT &iGarage1Style, INT &iGarage1Lighting, INT &iGarage1Number,
|
|
INT &iGarage2Style, INT &iGarage2Lighting, INT &iGarage2Number,
|
|
INT &iGarage3Style, INT &iGarage3Lighting, INT &iGarage3Number,
|
|
INT &iModshop)
|
|
iStyle = GET_OFFICE_INTERIOR_FROM_SF(GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_DATA), 6, 4))
|
|
iPersonnel = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_DATA), 10, 1)
|
|
iFont = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_DATA), 11, 4)
|
|
iColour = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_DATA), 15, 4)
|
|
iGunLocker = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_DATA), 19, 1)
|
|
iVault = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_DATA), 20, 1)
|
|
iAccommodation = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_DATA), 21, 1)
|
|
|
|
IF GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_GARAGE_A_DATA), 7, 1) = 0
|
|
iGarage1Style = -1
|
|
iGarage1Lighting = -1
|
|
iGarage1Number = -1
|
|
ELSE
|
|
iGarage1Style = GET_OFFICE_GARAGE_INTERIOR_FROM_SF(GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_GARAGE_A_DATA), 8, 2))
|
|
iGarage1Lighting = GET_OFFICE_GARAGE_LIGHTING_FROM_SF(GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_GARAGE_A_DATA), 10, 4))
|
|
iGarage1Number = GET_OFFICE_GARAGE_NUMBERING_FROM_SF(GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_GARAGE_A_DATA), 14, 4))
|
|
ENDIF
|
|
IF GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_GARAGE_A_DATA), 18, 1) = 0
|
|
iGarage2Style = -1
|
|
iGarage2Lighting = -1
|
|
iGarage2Number = -1
|
|
ELSE
|
|
iGarage2Style = GET_OFFICE_GARAGE_INTERIOR_FROM_SF(GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_GARAGE_A_DATA), 19, 2))
|
|
iGarage2Lighting = GET_OFFICE_GARAGE_LIGHTING_FROM_SF(GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_GARAGE_A_DATA), 21, 4))
|
|
iGarage2Number = GET_OFFICE_GARAGE_NUMBERING_FROM_SF(GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_GARAGE_A_DATA), 25, 4))
|
|
ENDIF
|
|
IF GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_GARAGE_B_DATA), 7, 1) = 0
|
|
iGarage3Style = -1
|
|
iGarage3Lighting = -1
|
|
iGarage3Number = -1
|
|
ELSE
|
|
iGarage3Style = GET_OFFICE_GARAGE_INTERIOR_FROM_SF(GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_GARAGE_B_DATA), 8, 2))
|
|
iGarage3Lighting = GET_OFFICE_GARAGE_LIGHTING_FROM_SF(GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_GARAGE_B_DATA), 10, 4))
|
|
iGarage3Number = GET_OFFICE_GARAGE_NUMBERING_FROM_SF(GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_GARAGE_B_DATA), 14, 4))
|
|
ENDIF
|
|
IF GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_GARAGE_B_DATA), 18, 1) = 0
|
|
iModshop = 0 //-1
|
|
ELSE
|
|
iModshop = GET_OFFICE_MODSHOP_INTERIOR_FROM_SF(GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_GARAGE_B_DATA), 19, 5))
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC GET_SCALEFORM_CLUBHOUSE_DATA(INT iProperty, INT &iWall,INT &iHanging,INT &iFurniture,INT &iColourScheme,INT &iFont,INT &iFontColour,INT &iEmblem,INT &iHideSinage,INT &iGunLocker,INT &iGarage)
|
|
IF iProperty != -1
|
|
iWall = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 6, 1)
|
|
iHanging = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 7, 1)
|
|
iFurniture = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 8, 1)
|
|
iColourScheme = GET_CLUBHOUSE_INTERIOR_FROM_SF(iProperty, GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 9, 4))
|
|
iFont = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 13, 4)
|
|
iFontColour = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 17, 4)
|
|
iEmblem = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 21, 4)
|
|
iHideSinage = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 25, 1)
|
|
iGunLocker = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 26, 1)
|
|
iGarage = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 27, 1)
|
|
ELSE
|
|
iWall = -1
|
|
iHanging = -1
|
|
iFurniture = -1
|
|
iColourScheme = -1
|
|
iFont = -1
|
|
iFontColour = -1
|
|
iEmblem = -1
|
|
iHideSinage = -1
|
|
iGunLocker = -1
|
|
iGarage = -1
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC GET_SCALEFORM_FACTORY_DATA(INT &iDecor,INT &iAccommodation,INT &iFiringRange,INT &iGunLocker,INT &iTransportation)
|
|
iDecor = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 6, 2)
|
|
iAccommodation = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 8, 1)
|
|
iFiringRange = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 9, 2)
|
|
iGunLocker = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 11, 1)
|
|
iTransportation = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 12, 2)
|
|
ENDPROC
|
|
|
|
PROC GET_SCALEFORM_HANGAR_DATA(HANGAR_DATA_STRUCT &sData)
|
|
sData.iHangarID = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 0, 6)
|
|
sData.iStyle = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 6, 4)
|
|
sData.iLighting = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 10, 2)
|
|
sData.iFlooring = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 12, 4)
|
|
sData.iFurniture = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 16, 2)
|
|
sData.iSleepingQuarters = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 18, 2)
|
|
sData.iWorkshop = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 20, 1)
|
|
ENDPROC
|
|
|
|
PROC GET_SCALEFORM_DEFUNCT_BASE_DATA(DEFUNCT_BASE_DATA_STRUCT &sData)
|
|
sData.iBaseID = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 0, 6)
|
|
sData.iStyle = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 6, 4)
|
|
sData.iGraphics = GET_DBASE_GRAPHICS_FROM_SF(GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 10, 4))
|
|
sData.iOrbitalWeapon = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 14, 1)
|
|
sData.iSecurityRoom = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 15, 1)
|
|
sData.iLounge = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 16, 2)
|
|
sData.iPersonalQuarters = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 18, 2)
|
|
sData.iPrivicyGlass = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 20, 1)
|
|
ENDPROC
|
|
|
|
PROC GET_SCALEFORM_NIGHTCLUB_DATA(NIGHTCLUB_DATA_STRUCT &sData)
|
|
sData.iNightclubID = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 0, 6)
|
|
sData.iStyle = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 6, 2)
|
|
sData.iLighting = GET_NIGHTCLUB_LIGHTING_FROM_SF(GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 8, 3))
|
|
sData.iDancers = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 11,4)
|
|
sData.iStorage = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 15,3)
|
|
sData.iGarage = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 18,3)
|
|
sData.iNameID = GET_NIGHTCLUB_NAME_FROM_SF(GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 21,4))
|
|
sData.iDryIce = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 25,1)
|
|
ENDPROC
|
|
|
|
PROC GET_SCALEFORM_ARENA_GARAGE_DATA(ARENA_GARAGE_DATA_STRUCT &sData)
|
|
sData.iStyle = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_ARENA_WARS_DATA), 0, 2)
|
|
sData.iGraphics = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_ARENA_WARS_DATA), 2, 5)
|
|
sData.iColour = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_ARENA_WARS_DATA), 7, 4)
|
|
sData.iExpansionFloorB1 = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_ARENA_WARS_DATA), 11,5)
|
|
sData.iExpansionFloorB2 = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_ARENA_WARS_DATA), 16,5)
|
|
sData.iBennyMechanic = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_ARENA_WARS_DATA), 21,1)
|
|
sData.iWeaponMechanic = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_ARENA_WARS_DATA), 22,1)
|
|
sData.iPersonalQuarters = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_ARENA_WARS_DATA), 23,1)
|
|
ENDPROC
|
|
|
|
PROC GET_SCALEFORM_CASINO_APT_DATA(CASINO_APT_DATA_STRUCT &sData)
|
|
sData.iColourOption = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CASINO_DATA), 0, 2)
|
|
sData.iStyleOption = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CASINO_DATA), 2, 4)
|
|
sData.iLounge = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CASINO_DATA), 6, 1)
|
|
sData.iBar = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CASINO_DATA), 7, 2)
|
|
sData.iDealer = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CASINO_DATA), 9, 1)
|
|
sData.iBedroom = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CASINO_DATA), 10,1)
|
|
sData.iMediaroom = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CASINO_DATA), 11,1)
|
|
sData.iSpa = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CASINO_DATA), 12,1)
|
|
sData.iOffice = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CASINO_DATA), 13,1)
|
|
sData.iGarage = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CASINO_DATA), 14,1)
|
|
ENDPROC
|
|
|
|
PROC GET_SCALEFORM_ARCADE_DATA(ARCADE_DATA_STRUCT &sData)
|
|
sData.iArcadeID = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 0, 6)
|
|
sData.iFloor = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 6, 4)
|
|
sData.iCeiling = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 10, 2)
|
|
sData.iWall = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 12, 4)
|
|
sData.iPersonalQuarters = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 16, 1)
|
|
sData.iGarage = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 17, 1)
|
|
sData.iNeonLights = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 18, 4)
|
|
sData.iScreens = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 22, 1)
|
|
ENDPROC
|
|
|
|
PROC GET_SCALEFORM_AUTO_SHOP_DATA(AUTO_SHOP_DATA_STRUCT &sData)
|
|
sData.iAutoShopID = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 0, 3)
|
|
sData.iWall = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 3, 4)
|
|
sData.iTint = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 7, 4)
|
|
sData.iEmblem = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 11, 4)
|
|
sData.iCrewName = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 15, 1)
|
|
sData.iStaff1 = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 16, 1)
|
|
sData.iStaff2 = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 17, 1)
|
|
sData.iCarLift = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 18, 1)
|
|
sData.iPersonalQuarters = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 19, 1)
|
|
sData.iCarClubMembership = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 20, 1)
|
|
|
|
PRINTLN("GET_SCALEFORM_AUTO_SHOP_DATA - CALLED")
|
|
DEBUG_PRINTCALLSTACK()
|
|
PRINTLN("GET_SCALEFORM_AUTO_SHOP_DATA - sData.iAutoShopID = ", sData.iAutoShopID)
|
|
PRINTLN("GET_SCALEFORM_AUTO_SHOP_DATA - sData.iWall = ", sData.iWall)
|
|
PRINTLN("GET_SCALEFORM_AUTO_SHOP_DATA - sData.iTint = ", sData.iTint)
|
|
PRINTLN("GET_SCALEFORM_AUTO_SHOP_DATA - sData.iEmblem = ", sData.iEmblem)
|
|
PRINTLN("GET_SCALEFORM_AUTO_SHOP_DATA - sData.iCrewName = ", sData.iCrewName)
|
|
PRINTLN("GET_SCALEFORM_AUTO_SHOP_DATA - sData.iStaff1 = ", sData.iStaff1)
|
|
PRINTLN("GET_SCALEFORM_AUTO_SHOP_DATA - sData.iStaff2 = ", sData.iStaff2)
|
|
PRINTLN("GET_SCALEFORM_AUTO_SHOP_DATA - sData.iCarLift = ", sData.iCarLift)
|
|
PRINTLN("GET_SCALEFORM_AUTO_SHOP_DATA - sData.iPersonalQuarters = ", sData.iPersonalQuarters)
|
|
PRINTLN("GET_SCALEFORM_AUTO_SHOP_DATA - sData.iCarClubMembership = ", sData.iCarClubMembership)
|
|
ENDPROC
|
|
|
|
#IF FEATURE_FIXER
|
|
PROC GET_SCALEFORM_FIXER_HQ_DATA(FIXER_HQ_DATA_STRUCT &ref_sData)
|
|
ref_sData.iAgencyID = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_DATA), 0, 6)
|
|
ref_sData.iArt = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_DATA), 6, 2)
|
|
ref_sData.iWallpaper = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_DATA), 8, 4)
|
|
ref_sData.iTint = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_DATA), 12, 4)
|
|
ref_sData.iVehWorkshop = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_DATA), 16, 1)
|
|
ref_sData.iArmory = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_DATA), 17, 1)
|
|
ref_sData.iPersonalQuarters = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_DATA), 18, 1)
|
|
|
|
PRINTLN("GET_SCALEFORM_FIXER_HQ_DATA - CALLED")
|
|
DEBUG_PRINTCALLSTACK()
|
|
PRINTLN("GET_SCALEFORM_FIXER_HQ_DATA - ref_sData.iAgencyID = ", ref_sData.iAgencyID)
|
|
PRINTLN("GET_SCALEFORM_FIXER_HQ_DATA - ref_sData.iArt = ", ref_sData.iArt)
|
|
PRINTLN("GET_SCALEFORM_FIXER_HQ_DATA - ref_sData.iWallpaper = ", ref_sData.iWallpaper)
|
|
PRINTLN("GET_SCALEFORM_FIXER_HQ_DATA - ref_sData.iTint = ", ref_sData.iTint)
|
|
PRINTLN("GET_SCALEFORM_FIXER_HQ_DATA - ref_sData.iVehWorkshop = ", ref_sData.iVehWorkshop)
|
|
PRINTLN("GET_SCALEFORM_FIXER_HQ_DATA - ref_sData.iArmory = ", ref_sData.iArmory)
|
|
PRINTLN("GET_SCALEFORM_FIXER_HQ_DATA - ref_sData.iPersonalQuarters = ", ref_sData.iPersonalQuarters)
|
|
ENDPROC
|
|
#ENDIF
|
|
|
|
FUNC INT GET_GENDER_METRIC_FROM_PERSONEL_INT(INT iPersonnel)
|
|
IF iPersonnel = 0 // FEMALE PA
|
|
IF GET_ENTITY_MODEL(PLAYER_PED_ID()) = MP_M_FREEMODE_01
|
|
RETURN 1 //= female PA, male character
|
|
ELSE
|
|
RETURN 2 //= female PA, female character
|
|
ENDIF
|
|
ELSE // MALE PA
|
|
IF GET_ENTITY_MODEL(PLAYER_PED_ID()) = MP_M_FREEMODE_01
|
|
RETURN 3 //= male PA, male character
|
|
ELSE
|
|
RETURN 4 //= male PA, female character
|
|
ENDIF
|
|
ENDIF
|
|
ENDFUNC
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
FUNC HUD_COLOURS GET_HUD_COLOUR_COMPARING_OLD_NEW(BOOL iOldMatchesNew)
|
|
IF !iOldMatchesNew
|
|
RETURN HUD_COLOUR_RED
|
|
ENDIF
|
|
RETURN HUD_COLOUR_PURE_WHITE
|
|
ENDFUNC
|
|
#ENDIF
|
|
|
|
PROC CLOSE_BROWSER_AFTER_SUCCESSFUL_PURCHASE(INT iTimeToExpire = ciAUTO_CLOSE_DELAY_TIME_DEFAULT)
|
|
IF NOT HAS_NET_TIMER_STARTED(timerAutoCloseDelay)
|
|
START_NET_TIMER(timerAutoCloseDelay)
|
|
iAutoCloseDelayTime = iTimeToExpire
|
|
CPRINTLN(DEBUG_INTERNET, "CLOSE_BROWSER_AFTER_SUCCESSFUL_PURCHASE timerAutoCloseDelay - Starting auto close delay timer.")
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC RENDER_BROWSER(BOOL allowphone = FALSE, BOOL bPropertyVersion = FALSE)//, BOOL forceButtons = FALSE)
|
|
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL,INPUT_AIM)
|
|
DISABLE_CONTROL_ACTION(CAMERA_CONTROL,INPUT_LOOK_BEHIND)
|
|
DISABLE_CONTROL_ACTION(CAMERA_CONTROL,INPUT_LOOK_BEHIND)
|
|
|
|
DISABLE_CONTROL_ACTION(CAMERA_CONTROL,INPUT_LOOK_LEFT)
|
|
DISABLE_CONTROL_ACTION(CAMERA_CONTROL,INPUT_LOOK_RIGHT)
|
|
DISABLE_CONTROL_ACTION(CAMERA_CONTROL,INPUT_LOOK_UP)
|
|
DISABLE_CONTROL_ACTION(CAMERA_CONTROL,INPUT_LOOK_DOWN)
|
|
DISABLE_CONTROL_ACTION(CAMERA_CONTROL,INPUT_VEH_GUN_LEFT)
|
|
DISABLE_CONTROL_ACTION(CAMERA_CONTROL,INPUT_VEH_GUN_RIGHT)
|
|
DISABLE_CONTROL_ACTION(CAMERA_CONTROL,INPUT_VEH_GUN_UP)
|
|
DISABLE_CONTROL_ACTION(CAMERA_CONTROL,INPUT_VEH_GUN_DOWN)
|
|
DISABLE_CONTROL_ACTION(CAMERA_CONTROL,INPUT_VEH_LOOK_LEFT)
|
|
DISABLE_CONTROL_ACTION(CAMERA_CONTROL,INPUT_VEH_LOOK_RIGHT)
|
|
|
|
INT iCurrentDelta = ROUND(0 +@ 1000)
|
|
g_iBrowserTimer += iCurrentDelta
|
|
iCurrentSiteTimer += iCurrentDelta
|
|
|
|
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0.0)
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0.0)
|
|
|
|
IF !bIDisabledCarRadio
|
|
|
|
/*
|
|
BOOL mpVeto = FALSE
|
|
IF g_bInMultiplayer
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF DOES_ENTITY_EXIST(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()))
|
|
IF !NETWORK_HAS_CONTROL_OF_ENTITY(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()))
|
|
mpVeto = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF !mpVeto
|
|
IF DOES_PLAYER_VEH_HAVE_RADIO()
|
|
IF NOT IS_PLAYER_DEAD(GET_PLAYER_INDEX())
|
|
//SET_VEHICLE_RADIO_ENABLED(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()), FALSE)
|
|
START_AUDIO_SCENE("WEB_GENERAL_BROWSING_SCENE")
|
|
|
|
bIDisabledCarRadio =TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
*/
|
|
|
|
START_AUDIO_SCENE("WEB_GENERAL_BROWSING_SCENE")
|
|
bIDisabledCarRadio = TRUE
|
|
ENDIF
|
|
IF !bIDisabledAptRadio
|
|
IF NETWORK_IS_GAME_IN_PROGRESS()
|
|
IF IS_PLAYER_IN_MP_PROPERTY(PLAYER_ID(), FALSE)
|
|
OR IS_PLAYER_IN_OFFICE_PROPERTY(PLAYER_ID())
|
|
OR IS_PLAYER_IN_WAREHOUSE(PLAYER_ID())
|
|
START_AUDIO_SCENE("GTAO_Computer_Screen_Active_Scene")
|
|
bIDisabledAptRadio = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SET_SCRIPT_GFX_DRAW_ORDER(GFX_ORDER_BEFORE_HUD)
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_WANTED_STARS)
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_WEAPON_ICON)
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_MP_MESSAGE)
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_VEHICLE_NAME)
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_AREA_NAME)
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_DISTRICT_NAME)
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_STREET_NAME)
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_FLOATING_HELP_TEXT_1)
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_FLOATING_HELP_TEXT_2)
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_RETICLE)
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_RADIO_STATIONS)
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_WEAPON_WHEEL)
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_WEAPON_WHEEL_STATS)
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_FEED)
|
|
IF g_bInMultiplayer
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_SUBTITLE_TEXT) // 1599742
|
|
ENDIF
|
|
|
|
//HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_SUBTITLE_TEXT)
|
|
IF g_bInMultiplayer // mp transactions come out of a different pool, makes no sense to show it in sp
|
|
SHOW_HUD_COMPONENT_THIS_FRAME(NEW_HUD_MP_CASH)
|
|
SHOW_HUD_COMPONENT_THIS_FRAME(NEW_HUD_MP_MESSAGE)
|
|
SHOW_HUD_COMPONENT_THIS_FRAME(NEW_HUD_CASH_CHANGE)
|
|
SHOW_HUD_COMPONENT_THIS_FRAME(NEW_HUD_CASH)
|
|
ENDIF
|
|
|
|
IF NOT IS_RADAR_HIDDEN()
|
|
bIHidRadar = TRUE
|
|
DISPLAY_RADAR(FALSE)
|
|
ENDIF
|
|
|
|
DISABLE_SELECTOR_THIS_FRAME()
|
|
IF (NOT allowphone)
|
|
DISABLE_CELLPHONE_THIS_FRAME_ONLY()
|
|
ENDIF
|
|
|
|
|
|
IF NOT bProcessingBasket
|
|
IF (eSet_mouse_pointer_style = MOUSE_CURSOR_STYLE_ARROW_DIMMED)
|
|
CPRINTLN(DEBUG_INTERNET, "RENDER_BROWSER: restore pointer style to non-dimmed [", GET_GAME_TIMER(), "]")
|
|
|
|
eSet_mouse_pointer_style = INT_TO_ENUM(eMOUSE_POINTER_STYLE, -1)
|
|
SET_MOUSE_CURSOR_STYLE(MOUSE_CURSOR_STYLE_ARROW)
|
|
BROWSER_SET_CURSOR_STATE("ARROW")
|
|
ENDIF
|
|
ELSE
|
|
IF (eSet_mouse_pointer_style != MOUSE_CURSOR_STYLE_ARROW_DIMMED)
|
|
CPRINTLN(DEBUG_INTERNET, "RENDER_BROWSER: set pointer style to dimmed [", GET_GAME_TIMER(), "]")
|
|
|
|
eSet_mouse_pointer_style = MOUSE_CURSOR_STYLE_ARROW_DIMMED
|
|
SET_MOUSE_CURSOR_STYLE(MOUSE_CURSOR_STYLE_ARROW_DIMMED)
|
|
BROWSER_SET_CURSOR_STATE("BUSY")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DO_CHECK_FOR_RAGDOLL_OR_DEAD()
|
|
EXIT
|
|
ENDIF
|
|
|
|
b_SuppressContextHelpNextUpdate = TRUE
|
|
DISABLE_ALL_MP_HUD_THIS_FRAME()
|
|
|
|
IF g_sBrowserHelpMessage.bShow
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(g_sBrowserHelpMessage.tl15Tag)
|
|
AND NOT IS_THIS_BROWSER_HELP_MESSAGE_BEING_DISPLAYED(g_sBrowserHelpMessage)
|
|
PRINT_BROWSER_HELP(g_sBrowserHelpMessage)
|
|
bTradeHelpPrinted = TRUE
|
|
ENDIF
|
|
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(g_sBrowserHelpMessage.tl15Tag)
|
|
CDEBUG3LN(DEBUG_INTERNET, "PRINT_HELP(\"", g_sBrowserHelpMessage.tl15Tag, "\"), iTutstage:", iTutstage, ", iTutTimer:", iTutTimer, ", g_iBrowserTimer:", g_iBrowserTimer, " //", TO_FLOAT(iTutTimer-g_iBrowserTimer)/1000.0)
|
|
ENDIF
|
|
|
|
IF iTutTimer < g_iBrowserTimer
|
|
CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT(TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_BROWSER_OPEN() AND (NOT bPanicShutdownStart)
|
|
|
|
|
|
DISABLE_CONTROL_ACTIONS_GENERAL()
|
|
SET_SCRIPT_GFX_DRAW_ORDER(GFX_ORDER_BEFORE_HUD)
|
|
IF NOT HAS_SCALEFORM_MOVIE_LOADED(mov)
|
|
IF mov = NULL
|
|
mov = REQUEST_SCALEFORM_MOVIE("web_browser")
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "RENDER_BROWSER: scaleform movie mov has not loaded")
|
|
ENDIF
|
|
ELSE
|
|
DRAW_SCALEFORM_MOVIE_FULLSCREEN(mov,255,255,255,0)
|
|
ENDIF
|
|
|
|
IF !bPropertyVersion
|
|
POST_BLOCKING_IS_PROPERTY_OVERWRITE_OK()
|
|
ENDIF
|
|
|
|
IF g_bBrowserGoToStoreTrigger
|
|
RENDER_NAG_SCREEN()
|
|
ENDIF
|
|
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0.0)
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0.0)
|
|
|
|
IF g_bBrowserUserMode
|
|
IF bKeyboardHelp OR g_bBrowserNagScreenState OR g_bBrowserVoucherNagScreenState
|
|
IF NOT HAS_SCALEFORM_MOVIE_LOADED(buttons)
|
|
buttons = REQUEST_SCALEFORM_MOVIE_INSTANCE("INSTRUCTIONAL_BUTTONS")
|
|
CERRORLN(DEBUG_INTERNET, "RENDER_BROWSER: scaleform movie buttons has not loaded")
|
|
ELIF IS_SCALEFORM_MOVIE_DELETING(buttons)
|
|
CERRORLN(DEBUG_INTERNET, "RENDER_BROWSER: scaleform movie buttons is flagged for deletion")
|
|
ELIF IS_ACTIVE_SCALEFORM_MOVIE_DELETING(buttons)
|
|
CERRORLN(DEBUG_INTERNET, "RENDER_BROWSER: scaleform movie buttons is deleting")
|
|
ELSE
|
|
DRAW_SCALEFORM_MOVIE_FULLSCREEN(buttons,255,255,255,255)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eStaticCurrentSite = WWW_DOCKTEASE_COM
|
|
AND HAS_PLAYER_BEEN_ASSIGNED_PRIVATE_YACHT(PLAYER_ID())
|
|
CONST_INT iYACHT_D_HOME 19
|
|
CONST_INT iYACHT_D_MODEL 20
|
|
CONST_INT iYACHT_D_FITTINGS 21
|
|
CONST_INT iYACHT_D_COLOUR 22
|
|
CONST_INT iYACHT_D_LIGHTING 23
|
|
CONST_INT iYACHT_D_FLAG 29
|
|
CONST_INT iYACHT_D_PERSONALIZE 24
|
|
CONST_INT iYACHT_D_CHECKOUT 25
|
|
CONST_INT iYACHT_D_PURCHASE 26
|
|
CONST_INT iYACHT_D_PURCHASE_SUCCESS 27
|
|
CONST_INT iYACHT_D_PURCHASE_FAILED 28
|
|
|
|
IF iStaticCurrentPage = iYACHT_D_CHECKOUT
|
|
OR iStaticCurrentPage = iYACHT_D_PURCHASE
|
|
// OR iStaticCurrentPage = iYACHT_D_PURCHASE_SUCCESS
|
|
// OR iStaticCurrentPage = iYACHT_D_PURCHASE_FAILED
|
|
IF (iBroadcast_Disable_Recording_Timer < 0)
|
|
OR (iBroadcast_Disable_Recording_Timer +4500 < GET_GAME_TIMER())
|
|
INT iYachtID = GET_PRIVATE_YACHT_ASSIGNED_TO_PLAYER(PLAYER_ID())
|
|
|
|
IF IS_PRIVATE_YACHT_ID_VALID(iYachtID)
|
|
BROADCAST_DISABLE_RECORDING_FOR_SPHERE(GET_COORDS_OF_PRIVATE_YACHT(iYachtID), 75.0, 300.0, 5000)
|
|
iBroadcast_Disable_Recording_Timer = GET_GAME_TIMER()
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "RENDER_BROWSER: invalid yacht ID when trying to disable recording the yacht")
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF iBroadcast_Disable_Recording_Timer >= 0
|
|
iBroadcast_Disable_Recording_Timer = -1
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF iBroadcast_Disable_Recording_Timer >= 0
|
|
iBroadcast_Disable_Recording_Timer = -1
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BOOL bCleanup_HELP_SPVE = FALSE
|
|
IF g_bInMultiplayer
|
|
IF (eStaticCurrentSite = WWW_ELITASTRAVEL_COM
|
|
OR eStaticCurrentSite = WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
OR eStaticCurrentSite = WWW_LEGENDARYMOTORSPORT_NET
|
|
OR eStaticCurrentSite = WWW_DOCKTEASE_COM
|
|
OR eStaticCurrentSite = WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
OR eStaticCurrentSite = WWW_ARENAWAR_TV
|
|
OR eStaticCurrentSite = WWW_THEDIAMONDCASINOANDRESORT_COM)
|
|
AND (eCursorInputProcessed != UNSET_BUYABLE_VEHICLE
|
|
OR (eStaticCurrentSite = WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM AND iStaticCurrentPage = 1) //Warstock MOC banner
|
|
OR (eStaticCurrentSite = WWW_THEDIAMONDCASINOANDRESORT_COM AND iStaticCurrentPage = 13) //Casino Suite dealer button
|
|
OR (eStaticCurrentSite = WWW_THEDIAMONDCASINOANDRESORT_COM AND iStaticCurrentPage = 14)
|
|
OR (eStaticCurrentSite = WWW_THEDIAMONDCASINOANDRESORT_COM AND iStaticCurrentPage = 8)) //Casino High roller
|
|
|
|
IF (eCursorInputProcessed != UNSET_BUYABLE_VEHICLE
|
|
OR (eStaticCurrentSite = WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM AND iStaticCurrentPage = 1)
|
|
OR (eStaticCurrentSite = WWW_THEDIAMONDCASINOANDRESORT_COM AND iStaticCurrentPage = 13)
|
|
OR (eStaticCurrentSite = WWW_THEDIAMONDCASINOANDRESORT_COM AND iStaticCurrentPage = 14)
|
|
OR (eStaticCurrentSite = WWW_THEDIAMONDCASINOANDRESORT_COM AND iStaticCurrentPage = 8))
|
|
AND NOT bWaitingForSelectionReturn
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "GET_CURRENT_ROLLOVER")
|
|
currentRolloverReturnIndex = END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE()
|
|
bWaitingForSelectionReturn = TRUE
|
|
|
|
CDEBUG1LN(DEBUG_INTERNET, "<HELP> currentRolloverReturnIndex not ready... ", NATIVE_TO_INT(currentRolloverReturnIndex))
|
|
ELSE
|
|
IF bWaitingForSelectionReturn
|
|
IF IS_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_READY(currentRolloverReturnIndex)
|
|
bWaitingForSelectionReturn = FALSE
|
|
|
|
INT iLastHiglightedButton = GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_INT(currentRolloverReturnIndex)
|
|
|
|
CDEBUG1LN(DEBUG_INTERNET, "<HELP> currentRolloverReturnIndex ready, iLastHiglightedButton: ", iLastHiglightedButton)
|
|
|
|
IF iLastHiglightedButton != -1
|
|
#IF FEATURE_CASINO_HEIST
|
|
OR (eCursorInputProcessed = BV_CH_MINITANK AND iStaticCurrentPage = 124)
|
|
#ENDIF
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
#IF FEATURE_CASINO_HEIST
|
|
IF (eCursorInputProcessed != BV_CH_MINITANK)
|
|
OR (iStaticCurrentPage != 124)
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("UNLOCK_RCTANK")
|
|
CDEBUG3LN(DEBUG_INTERNET, "<HELP> warstock home page ", iLastHiglightedButton, ", empty - UNLOCK_RCTANK displayed")
|
|
|
|
CLEAR_HELP()
|
|
|
|
bCleanup_HELP_SPVE = TRUE
|
|
CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT()
|
|
g_sBrowserHelpMessage.bShow = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
IF (eStaticCurrentSite = WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM AND iStaticCurrentPage = 1)
|
|
IF IS_STRING_NULL_OR_EMPTY(g_sBrowserHelpMessage.tl15Tag)
|
|
bCleanup_HELP_SPVE = TRUE
|
|
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_HACKT0")
|
|
CDEBUG3LN(DEBUG_INTERNET, "<HELP> warstock home page ", iLastHiglightedButton, ", empty - HELP_HACKT0 displayed")
|
|
CLEAR_HELP()
|
|
ELIF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_MOC0")
|
|
CDEBUG3LN(DEBUG_INTERNET, "<HELP> warstock home page ", iLastHiglightedButton, ", empty - HELP_MOC0 displayed")
|
|
CLEAR_HELP()
|
|
ELIF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_AOC0")
|
|
CDEBUG3LN(DEBUG_INTERNET, "<HELP> warstock home page ", iLastHiglightedButton, ", empty - HELP_AOC0 displayed")
|
|
CLEAR_HELP()
|
|
#IF FEATURE_HEIST_ISLAND
|
|
ELIF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_KOSA0")
|
|
CDEBUG3LN(DEBUG_INTERNET, "<HELP> warstock home page ", iLastHiglightedButton, ", empty - HELP_KOSA0 displayed")
|
|
CLEAR_HELP()
|
|
#ENDIF
|
|
ELSE
|
|
CDEBUG3LN(DEBUG_INTERNET, "<HELP> warstock home page ", iLastHiglightedButton, ", empty")
|
|
ENDIF
|
|
|
|
ELIF NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_HACKT0")
|
|
AND NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_MOC0")
|
|
AND NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_AOC0")
|
|
#IF FEATURE_HEIST_ISLAND
|
|
AND NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_KOSA0")
|
|
#ENDIF
|
|
CLEAR_HELP()
|
|
bCleanup_HELP_SPVE = TRUE
|
|
CDEBUG3LN(DEBUG_INTERNET, "<HELP> warstock home page ", iLastHiglightedButton, ", \"", g_sBrowserHelpMessage.tl15Tag, "\" not HELP_MOC0 or HELP_AOC0 or HELP_HACKT0 or HELP_KOSA0")
|
|
CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT()
|
|
g_sBrowserHelpMessage.bShow = TRUE
|
|
ELSE
|
|
IF HAS_MP_HACKER_TRUCK_ACCESS()
|
|
IF (iLastHiglightedButton = 1)
|
|
AND NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_HACKT0")
|
|
bCleanup_HELP_SPVE = TRUE
|
|
CDEBUG3LN(DEBUG_INTERNET, "<HELP> warstock home page ", iLastHiglightedButton, ", \"", g_sBrowserHelpMessage.tl15Tag, "\" not HELP_HACKT0")
|
|
ELIF (iLastHiglightedButton = 2)
|
|
AND NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_MOC0")
|
|
bCleanup_HELP_SPVE = TRUE
|
|
CDEBUG3LN(DEBUG_INTERNET, "<HELP> warstock home page ", iLastHiglightedButton, ", \"", g_sBrowserHelpMessage.tl15Tag, "\" not HELP_MOC0")
|
|
ELIF (iLastHiglightedButton = 3)
|
|
AND NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_AOC0")
|
|
bCleanup_HELP_SPVE = TRUE
|
|
CDEBUG3LN(DEBUG_INTERNET, "<HELP> warstock home page ", iLastHiglightedButton, ", \"", g_sBrowserHelpMessage.tl15Tag, "\" not HELP_AOC0")
|
|
#IF FEATURE_HEIST_ISLAND
|
|
ELIF (iLastHiglightedButton = 0)
|
|
AND NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_KOSA0")
|
|
bCleanup_HELP_SPVE = TRUE
|
|
CDEBUG3LN(DEBUG_INTERNET, "<HELP> warstock home page ", iLastHiglightedButton, ", \"", g_sBrowserHelpMessage.tl15Tag, "\" not HELP_KOSA0")
|
|
#ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF (iLastHiglightedButton = 0)
|
|
AND NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_MOC0")
|
|
bCleanup_HELP_SPVE = TRUE
|
|
CDEBUG3LN(DEBUG_INTERNET, "<HELP> warstock home page ", iLastHiglightedButton, ", \"", g_sBrowserHelpMessage.tl15Tag, "\" not HELP_MOC0")
|
|
ELIF (iLastHiglightedButton = 1)
|
|
AND NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_AOC0")
|
|
bCleanup_HELP_SPVE = TRUE
|
|
CDEBUG3LN(DEBUG_INTERNET, "<HELP> warstock home page ", iLastHiglightedButton, ", \"", g_sBrowserHelpMessage.tl15Tag, "\" not HELP_AOC0")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
TEXT_LABEL_15 tl15Tag = ""
|
|
BROWSER_HELP_MESSAGE_TYPE_ENUM eTextType = BHMT_STRING
|
|
INT iNumToDisplay1 = 0, iNumToDisplay2 = 0
|
|
|
|
|
|
IF IS_SBV_A_VEHICLE_FREE_FOR_CRIMINAL_ENTERPRISE_STARTER_PACK(eCursorInputProcessed)
|
|
AND HAS_MP_CRIMINAL_ENTERPRISE_PREMIUM_OR_STARTER_ACCESS()
|
|
bCleanup_HELP_SPVE = TRUE
|
|
CDEBUG3LN(DEBUG_INTERNET, "<HELP> - vehicle ", GET_LABEL_BUYABLE_VEHICLE(eCursorInputProcessed), " is free for Criminal Enterprise SP")
|
|
ELIF (GET_SVM_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)) != -1)
|
|
IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_0) <= 0
|
|
tl15Tag = "HELP_SPVE0a" //In order to purchase this vehicle you must fulfil the following criteria:~n~- Own an Executive Office.~n~- Own a Vehicle Warehouse.~n~- Renovate the Underground Storage Facility in your Vehicle Warehouse.
|
|
SET_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_SPVE0A)
|
|
ELIF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_IE_WAREHOUSE) <= 0
|
|
tl15Tag = "HELP_SPVE0b" //In order to purchase this vehicle you must fulfil the following criteria:~n~- Own a Vehicle Warehouse.~n~- Renovate the Underground Storage Facility in your Vehicle Warehouse.
|
|
SET_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_SPVE0B)
|
|
ELSE
|
|
SWITCH iLastHiglightedButton
|
|
CASE 1
|
|
//
|
|
BREAK
|
|
CASE 0
|
|
MODEL_NAMES eModel
|
|
eModel = GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)
|
|
|
|
IF NOT SVM_IS_SPECIAL_VEHICLE_UNLOCKED(SVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(eModel))
|
|
tl15Tag = "HELP_SPVE1"
|
|
SWITCH eCursorInputProcessed
|
|
CASE BV_IE_PHANTOM2 tl15Tag += "a" BREAK
|
|
CASE BV_IE_VOLTIC2 tl15Tag += "b" BREAK
|
|
CASE BV_IE_DUNE5 tl15Tag += "c" BREAK
|
|
CASE BV_IE_BLAZER5 tl15Tag += "d" BREAK
|
|
CASE BV_IE_TECHNICAL2 tl15Tag += "e" BREAK
|
|
CASE BV_IE_WASTELANDER tl15Tag += "f" BREAK
|
|
CASE BV_IE_BOXVILLE5 tl15Tag += "g" BREAK
|
|
CASE BV_IE_RUINER2 tl15Tag += "h" BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "<HELP> - unknown SVM_VEHICLE eCursorInputProcessed ", GET_LABEL_BUYABLE_VEHICLE(eCursorInputProcessed), " ")
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
ELIF (GET_AWS_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)) != -1)
|
|
BOOL bAddBrowserHelpMessageTag_0, bAddBrowserHelpMessageTag_1
|
|
bAddBrowserHelpMessageTag_0 = FALSE
|
|
bAddBrowserHelpMessageTag_1 = FALSE
|
|
|
|
MODEL_NAMES eModel
|
|
eModel = GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)
|
|
|
|
SWITCH eStaticCurrentSite
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
IF eCursorInputProcessed = BV_DLC_RATLOADER2
|
|
OR eCursorInputProcessed = BV_DLC_SLAMVAN
|
|
OR eCursorInputProcessed = BV_AW_IMPALER
|
|
SWITCH iLastHiglightedButton
|
|
CASE 1
|
|
bAddBrowserHelpMessageTag_1 = TRUE
|
|
BREAK
|
|
CASE 0
|
|
bAddBrowserHelpMessageTag_0 = TRUE
|
|
BREAK
|
|
ENDSWITCH
|
|
ELIF eCursorInputProcessed = BV_ST_GARGOYLE
|
|
SWITCH iLastHiglightedButton
|
|
CASE 2
|
|
CASE 3
|
|
bAddBrowserHelpMessageTag_1 = TRUE
|
|
BREAK
|
|
CASE 0
|
|
CASE 1
|
|
bAddBrowserHelpMessageTag_0 = TRUE
|
|
BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
SWITCH iLastHiglightedButton
|
|
CASE 8
|
|
CASE 9
|
|
CASE 10
|
|
CASE 11
|
|
CASE 12
|
|
CASE 13
|
|
CASE 14
|
|
CASE 15
|
|
bAddBrowserHelpMessageTag_1 = TRUE
|
|
BREAK
|
|
CASE 0
|
|
CASE 1
|
|
CASE 2
|
|
CASE 3
|
|
CASE 4
|
|
CASE 5
|
|
CASE 6
|
|
CASE 7
|
|
bAddBrowserHelpMessageTag_0 = TRUE
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_ELITASTRAVEL_COM
|
|
CASE WWW_DOCKTEASE_COM
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
SWITCH iLastHiglightedButton
|
|
CASE 1
|
|
bAddBrowserHelpMessageTag_1 = TRUE
|
|
BREAK
|
|
CASE 0
|
|
bAddBrowserHelpMessageTag_0 = TRUE
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
CASE WWW_ARENAWAR_TV
|
|
IF IS_VEHICLE_AN_ARENA_CONTENDER_VEHICLE(eModel)
|
|
//==ARENA READY==
|
|
SWITCH iLastHiglightedButton
|
|
CASE 2
|
|
bAddBrowserHelpMessageTag_1 = TRUE
|
|
BREAK
|
|
CASE 3
|
|
bAddBrowserHelpMessageTag_0 = TRUE
|
|
BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
//==UPGRADEABLE==
|
|
SWITCH iLastHiglightedButton
|
|
CASE 4
|
|
bAddBrowserHelpMessageTag_1 = TRUE
|
|
BREAK
|
|
CASE 5
|
|
bAddBrowserHelpMessageTag_0 = TRUE
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
IF NOT DOES_PLAYER_OWN_AN_ARENA_GARAGE(PLAYER_ID())
|
|
IF (bAddBrowserHelpMessageTag_1)
|
|
SWITCH eCursorInputProcessed
|
|
CASE BV_AW_CERBERUS tl15Tag = "HELP_AWSE2a" BREAK
|
|
CASE BV_AW_CERBERUS2 tl15Tag = "HELP_AWSE2a" BREAK
|
|
CASE BV_AW_CERBERUS3 tl15Tag = "HELP_AWSE2a" BREAK
|
|
|
|
CASE BV_DLC_RATLOADER2 tl15Tag = "HELP_AWSE3a" BREAK
|
|
CASE BV_DLC_GLENDALE tl15Tag = "HELP_AWSE3b" BREAK
|
|
CASE BV_DLC_SLAMVAN tl15Tag = "HELP_AWSE3c" BREAK
|
|
CASE BV_MP_DOMINATOR tl15Tag = "HELP_AWSE3d" BREAK
|
|
CASE BV_AW_IMPALER tl15Tag = "HELP_AWSE3e" BREAK
|
|
CASE BV_AR_ISSI3 tl15Tag = "HELP_AWSE3f" BREAK
|
|
CASE BV_ST_GARGOYLE tl15Tag = "HELP_AWSE3g" BREAK
|
|
ENDSWITCH
|
|
ELIF (bAddBrowserHelpMessageTag_0)
|
|
SWITCH eCursorInputProcessed
|
|
CASE BV_AW_CERBERUS tl15Tag = "HELP_AWSE0a" BREAK
|
|
CASE BV_AW_CERBERUS2 tl15Tag = "HELP_AWSE0a" BREAK
|
|
CASE BV_AW_CERBERUS3 tl15Tag = "HELP_AWSE0a" BREAK
|
|
|
|
CASE BV_DLC_RATLOADER2 tl15Tag = "HELP_AWSE0a" BREAK
|
|
CASE BV_DLC_GLENDALE tl15Tag = "HELP_AWSE0a" BREAK
|
|
CASE BV_DLC_SLAMVAN tl15Tag = "HELP_AWSE0a" BREAK
|
|
CASE BV_MP_DOMINATOR tl15Tag = "HELP_AWSE0a" BREAK
|
|
CASE BV_AW_IMPALER tl15Tag = "HELP_AWSE0a" BREAK
|
|
CASE BV_AR_ISSI3 tl15Tag = "HELP_AWSE0a" BREAK
|
|
CASE BV_ST_GARGOYLE tl15Tag = "HELP_AWSE0a" BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
ELSE
|
|
IF (bAddBrowserHelpMessageTag_1)
|
|
SWITCH eCursorInputProcessed
|
|
CASE BV_DLC_RATLOADER2 tl15Tag = "HELP_AWSE3a" BREAK
|
|
CASE BV_DLC_GLENDALE tl15Tag = "HELP_AWSE3b" BREAK
|
|
CASE BV_DLC_SLAMVAN tl15Tag = "HELP_AWSE3c" BREAK
|
|
CASE BV_MP_DOMINATOR tl15Tag = "HELP_AWSE3d" BREAK
|
|
CASE BV_AW_IMPALER tl15Tag = "HELP_AWSE3e" BREAK
|
|
CASE BV_AR_ISSI3 tl15Tag = "HELP_AWSE3f" BREAK
|
|
CASE BV_ST_GARGOYLE tl15Tag = "HELP_AWSE3g" BREAK
|
|
ENDSWITCH
|
|
ELIF (bAddBrowserHelpMessageTag_0)
|
|
IF NOT IS_ARENA_WARS_VEHICLE_REWARD_UNLOCKED(eModel)
|
|
SWITCH eCursorInputProcessed
|
|
CASE BV_DLC_RATLOADER2 tl15Tag = "HELP_AWSE1a" BREAK
|
|
CASE BV_DLC_GLENDALE tl15Tag = "HELP_AWSE1a" BREAK
|
|
CASE BV_DLC_SLAMVAN tl15Tag = "HELP_AWSE1a" BREAK
|
|
CASE BV_MP_DOMINATOR tl15Tag = "HELP_AWSE1a" BREAK
|
|
CASE BV_AW_IMPALER tl15Tag = "HELP_AWSE1a" BREAK
|
|
CASE BV_AR_ISSI3 tl15Tag = "HELP_AWSE1a" BREAK
|
|
CASE BV_ST_GARGOYLE tl15Tag = "HELP_AWSE1a" BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_STRING_NULL_OR_EMPTY(tl15Tag)
|
|
bCleanup_HELP_SPVE = TRUE
|
|
ENDIF
|
|
|
|
ELIF (eCursorInputProcessed = BV_AW_RCBANDITO)
|
|
IF iLastHiglightedButton = 0
|
|
ARENA_GARAGE_ID eArenaID = GET_PLAYERS_OWNED_ARENA_GARAGE(PLAYER_ID())
|
|
IF NOT (eArenaID != ARENA_GARAGE_ID_INVALID)
|
|
tl15Tag = "HELP_RCBA0a" //In order to purchase this equipment you must fulfil the following criteria:~n~- Own a Bunker.~n~- Set up the Gunrunning Business.~n~- Unlock the Ballistic Equipment via Research.~n~
|
|
// bDisplayed_HELP_RCBA0a = TRUE
|
|
ELIF NOT IS_RC_BANDITO_UNLOCKED()
|
|
tl15Tag = "HELP_RCBA0b" //In order to purchase this equipment you must fulfil the following criteria:~n~- Unlock the Ballistic Equipment via Research.~n~
|
|
// bDisplayed_HELP_RCBA0b = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ELIF (GET_BBS_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)) != -1)
|
|
BOOL bAddBrowserHelpMessageTag_0, bAddBrowserHelpMessageTag_1
|
|
bAddBrowserHelpMessageTag_0 = FALSE
|
|
bAddBrowserHelpMessageTag_1 = FALSE
|
|
|
|
SWITCH eStaticCurrentSite
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
IF (eCursorInputProcessed = BV_BB_PBUS2)
|
|
SWITCH iLastHiglightedButton
|
|
CASE 10
|
|
CASE 11
|
|
CASE 12
|
|
CASE 13
|
|
CASE 14
|
|
CASE 15
|
|
CASE 16
|
|
CASE 17
|
|
CASE 18
|
|
CASE 19
|
|
bAddBrowserHelpMessageTag_1 = TRUE
|
|
BREAK
|
|
CASE 0
|
|
CASE 1
|
|
CASE 2
|
|
CASE 3
|
|
CASE 4
|
|
CASE 5
|
|
CASE 6
|
|
CASE 7
|
|
CASE 8
|
|
CASE 9
|
|
bAddBrowserHelpMessageTag_0 = TRUE
|
|
BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
SWITCH iLastHiglightedButton
|
|
CASE 8
|
|
CASE 9
|
|
CASE 10
|
|
CASE 11
|
|
CASE 12
|
|
CASE 13
|
|
CASE 14
|
|
CASE 15
|
|
bAddBrowserHelpMessageTag_1 = TRUE
|
|
BREAK
|
|
CASE 0
|
|
CASE 1
|
|
CASE 2
|
|
CASE 3
|
|
CASE 4
|
|
CASE 5
|
|
CASE 6
|
|
CASE 7
|
|
bAddBrowserHelpMessageTag_0 = TRUE
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_ELITASTRAVEL_COM
|
|
CASE WWW_DOCKTEASE_COM
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
|
|
|
|
|
|
IF (eCursorInputProcessed = BV_BB_BLIMP3)
|
|
SWITCH iLastHiglightedButton
|
|
CASE 8
|
|
CASE 9
|
|
CASE 10
|
|
CASE 11
|
|
CASE 12
|
|
CASE 13
|
|
CASE 14
|
|
CASE 15
|
|
bAddBrowserHelpMessageTag_1 = TRUE
|
|
BREAK
|
|
CASE 0
|
|
CASE 1
|
|
CASE 2
|
|
CASE 3
|
|
CASE 4
|
|
CASE 5
|
|
CASE 6
|
|
CASE 7
|
|
bAddBrowserHelpMessageTag_0 = TRUE
|
|
BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
SWITCH iLastHiglightedButton
|
|
CASE 1
|
|
bAddBrowserHelpMessageTag_1 = TRUE
|
|
BREAK
|
|
CASE 0
|
|
bAddBrowserHelpMessageTag_0 = TRUE
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "<HELP> - unknown eStaticCurrentSite ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite), " ")
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
MODEL_NAMES eModel
|
|
eModel = GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)
|
|
|
|
IF NOT DOES_PLAYER_OWN_A_NIGHTCLUB(PLAYER_ID())
|
|
AND (eCursorInputProcessed = BV_BB_MULE4
|
|
OR eCursorInputProcessed = BV_BB_POUNDER2
|
|
OR eCursorInputProcessed = BV_BB_PBUS2
|
|
OR eCursorInputProcessed = BV_BB_PATRIOT2
|
|
OR eCursorInputProcessed = BV_BB_BLIMP3)
|
|
IF (bAddBrowserHelpMessageTag_1)
|
|
// skip
|
|
ELIF (bAddBrowserHelpMessageTag_0)
|
|
IF (eCursorInputProcessed = BV_BB_MULE4)
|
|
tl15Tag = "HELP_BBSE1na"
|
|
SET_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_BBSE0NC)
|
|
eTextType = BHMT_STRING_WITH_NUMBER
|
|
iNumToDisplay1 = GET_MISSION_UNLOCK_COUNT_FROM_BUSINESS_BATTLES_VEHICLE_MODEL(eModel)
|
|
ELIF (eCursorInputProcessed = BV_BB_POUNDER2)
|
|
tl15Tag = "HELP_BBSE1nb"
|
|
SET_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_BBSE0NC)
|
|
eTextType = BHMT_STRING_WITH_NUMBER
|
|
iNumToDisplay1 = GET_MISSION_UNLOCK_COUNT_FROM_BUSINESS_BATTLES_VEHICLE_MODEL(eModel)
|
|
ELIF (eCursorInputProcessed = BV_BB_PBUS2)
|
|
tl15Tag = "HELP_BBSE1ne"
|
|
SET_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_BBSE0NC)
|
|
ELIF (eCursorInputProcessed = BV_BB_PATRIOT2)
|
|
tl15Tag = "HELP_BBSE1nf"
|
|
SET_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_BBSE0NC)
|
|
eTextType = BHMT_STRING_WITH_NUMBER
|
|
iNumToDisplay1 = GET_MISSION_UNLOCK_COUNT_FROM_BUSINESS_BATTLES_VEHICLE_MODEL(eModel)
|
|
ELIF (eCursorInputProcessed = BV_BB_BLIMP3)
|
|
tl15Tag = "HELP_BBSE1ng"
|
|
SET_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_BBSE0NC)
|
|
eTextType = BHMT_STRING_WITH_NUMBER
|
|
iNumToDisplay1 = GET_MISSION_UNLOCK_COUNT_FROM_BUSINESS_BATTLES_VEHICLE_MODEL(eModel)
|
|
ENDIF
|
|
ENDIF
|
|
ELIF NOT IS_PLAYER_HACKER_TRUCK_PURCHASED(PLAYER_ID())
|
|
AND (eCursorInputProcessed = BV_BB_OPPRESSOR2)
|
|
IF (bAddBrowserHelpMessageTag_1)
|
|
// tl15Tag = "HELP_BBSE0ht"
|
|
// bDisplayed_HELP_BBSE0ht = TRUE
|
|
ELIF (bAddBrowserHelpMessageTag_0)
|
|
IF (eCursorInputProcessed = BV_BB_OPPRESSOR2)
|
|
tl15Tag = "HELP_BBSE1hc"
|
|
SET_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_BBSE0HT)
|
|
eTextType = BHMT_STRING_WITH_NUMBER
|
|
iNumToDisplay1 = GET_MISSION_UNLOCK_COUNT_FROM_BUSINESS_BATTLES_VEHICLE_MODEL(eModel)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF (bAddBrowserHelpMessageTag_1)
|
|
//
|
|
ELIF (bAddBrowserHelpMessageTag_0)
|
|
IF NOT IS_BUSINESS_BATTLES_VEHICLE_REWARD_UNLOCKED(eModel)
|
|
tl15Tag = "HELP_BBSE1"
|
|
SWITCH eCursorInputProcessed
|
|
CASE BV_BB_MULE4
|
|
tl15Tag += "a"
|
|
eTextType = BHMT_STRING_WITH_NUMBER
|
|
iNumToDisplay1 = GET_MISSION_UNLOCK_COUNT_FROM_BUSINESS_BATTLES_VEHICLE_MODEL(eModel)
|
|
BREAK
|
|
CASE BV_BB_POUNDER2
|
|
tl15Tag += "b"
|
|
eTextType = BHMT_STRING_WITH_NUMBER
|
|
iNumToDisplay1 = GET_MISSION_UNLOCK_COUNT_FROM_BUSINESS_BATTLES_VEHICLE_MODEL(eModel)
|
|
BREAK
|
|
CASE BV_BB_OPPRESSOR2
|
|
tl15Tag += "c"
|
|
eTextType = BHMT_STRING_WITH_NUMBER
|
|
iNumToDisplay1 = GET_MISSION_UNLOCK_COUNT_FROM_BUSINESS_BATTLES_VEHICLE_MODEL(eModel)
|
|
BREAK
|
|
CASE BV_BB_SCRAMJET
|
|
tl15Tag += "d"
|
|
// eTextType = BHMT_STRING_WITH_NUMBER
|
|
// iNumToDisplay1 = GET_MISSION_UNLOCK_COUNT_FROM_BUSINESS_BATTLES_VEHICLE_MODEL(eModel)
|
|
BREAK
|
|
CASE BV_BB_PBUS2
|
|
tl15Tag += "e"
|
|
// eTextType = BHMT_STRING_WITH_NUMBER
|
|
// iNumToDisplay1 = GET_MISSION_UNLOCK_COUNT_FROM_BUSINESS_BATTLES_VEHICLE_MODEL(eModel)
|
|
BREAK
|
|
CASE BV_BB_PATRIOT2
|
|
tl15Tag += "f"
|
|
eTextType = BHMT_STRING_WITH_NUMBER
|
|
iNumToDisplay1 = GET_MISSION_UNLOCK_COUNT_FROM_BUSINESS_BATTLES_VEHICLE_MODEL(eModel)
|
|
BREAK
|
|
CASE BV_BB_BLIMP3
|
|
tl15Tag += "g"
|
|
eTextType = BHMT_STRING_WITH_NUMBER
|
|
iNumToDisplay1 = GET_MISSION_UNLOCK_COUNT_FROM_BUSINESS_BATTLES_VEHICLE_MODEL(eModel)
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "<HELP> - unknown FDS_VEHICLE eCursorInputProcessed ", GET_LABEL_BUYABLE_VEHICLE(eCursorInputProcessed), " ")
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// #IF FEATURE_BUSINESS_BATTLES
|
|
// IF (eCursorInputProcessed = BV_BB_BLIMP3)
|
|
// IF IS_STRING_NULL_OR_EMPTY(tl15Tag)
|
|
// IF NOT DOES_PLAYER_OWN_A_NIGHTCLUB(PLAYER_ID())
|
|
// tl15Tag = "HELP_BLIMP3" //In order to purchase this livery, you must fulfil the following criteria:~n~- Own a Nightclub.~n~
|
|
// ENDIF
|
|
// ENDIF
|
|
// ENDIF
|
|
// #ENDIF
|
|
|
|
ELIF (GET_FDS_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)) != -1)
|
|
IF NOT DOES_PLAYER_OWN_A_DEFUNCT_BASE(PLAYER_ID())
|
|
AND GET_FDS_VEHICLE_SLOT(GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)) != -1
|
|
IF (iLastHiglightedButton = 1)
|
|
tl15Tag = "HELP_FDSE0db"
|
|
SET_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_FDSE0DB)
|
|
ELIF (iLastHiglightedButton = 0)
|
|
IF (eCursorInputProcessed = BV_GO_KHANJALI)
|
|
tl15Tag = "HELP_FDSE1dg"
|
|
SET_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_FDSE0DB)
|
|
ELIF (eCursorInputProcessed = BV_GO_CHERNOBOG)
|
|
tl15Tag = "HELP_FDSE1de"
|
|
SET_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_FDSE0DB)
|
|
ELIF (eCursorInputProcessed = BV_GO_RIOT2)
|
|
tl15Tag = "HELP_FDSE1dc"
|
|
SET_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_FDSE0DB)
|
|
ELIF (eCursorInputProcessed = BV_GO_THRUSTER)
|
|
tl15Tag = "HELP_FDSE1di"
|
|
SET_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_FDSE0DB)
|
|
ENDIF
|
|
ENDIF
|
|
ELIF NOT DOES_PLAYER_OWN_A_HANGER(PLAYER_ID())
|
|
AND (eCursorInputProcessed = BV_GO_AKULA
|
|
OR eCursorInputProcessed = BV_GO_VOLATOL)
|
|
IF (iLastHiglightedButton = 1)
|
|
tl15Tag = "HELP_FDSE0ha"
|
|
SET_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_FDSE0HA)
|
|
ELIF (iLastHiglightedButton = 0)
|
|
IF (eCursorInputProcessed = BV_GO_AKULA)
|
|
tl15Tag = "HELP_FDSE1hb"
|
|
SET_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_FDSE0HA)
|
|
ELIF (eCursorInputProcessed = BV_GO_VOLATOL)
|
|
tl15Tag = "HELP_FDSE1hh"
|
|
SET_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_FDSE0HA)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
SWITCH iLastHiglightedButton
|
|
CASE 1
|
|
//
|
|
BREAK
|
|
CASE 0
|
|
MODEL_NAMES eModel
|
|
eModel = GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)
|
|
|
|
IF NOT HAS_PLAYER_UNLOCKED_GANG_OPS_VEHICLE_TRADE_PRICE(eModel)
|
|
tl15Tag = "HELP_FDSE1"
|
|
SWITCH eCursorInputProcessed
|
|
CASE BV_GO_DELUXO tl15Tag += "a" BREAK
|
|
CASE BV_GO_AKULA tl15Tag += "b" BREAK
|
|
CASE BV_GO_RIOT2 tl15Tag += "c" BREAK
|
|
CASE BV_GO_STROMBERG tl15Tag += "d" BREAK
|
|
CASE BV_GO_CHERNOBOG tl15Tag += "e" BREAK
|
|
CASE BV_GO_BARRAGE tl15Tag += "f" BREAK
|
|
CASE BV_GO_KHANJALI tl15Tag += "g" BREAK
|
|
CASE BV_GO_VOLATOL tl15Tag += "h" BREAK
|
|
CASE BV_GO_THRUSTER tl15Tag += "i" BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "<HELP> - unknown FDS_VEHICLE eCursorInputProcessed ", GET_LABEL_BUYABLE_VEHICLE(eCursorInputProcessed), " ")
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
#IF FEATURE_CASINO_HEIST
|
|
ELIF (GET_CH_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)) != -1)
|
|
SWITCH eStaticCurrentSite
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
SWITCH iLastHiglightedButton
|
|
CASE 0
|
|
CASE 1
|
|
CASE 2
|
|
CASE 3
|
|
CASE 4
|
|
CASE 5
|
|
CASE 6
|
|
CASE 7
|
|
MODEL_NAMES eModel
|
|
eModel = GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)
|
|
|
|
#IF FEATURE_COPS_N_CROOKS
|
|
IF eCursorInputProcessed = BV_CH_KANJO
|
|
IF NOT IS_CASINO_HEIST_VEHICLE_REWARD_UNLOCKED(eModel)
|
|
OR (IS_CNC_CONTENT_ENABLED() AND NOT IS_CNC_VEHICLE_REWARD_UNLOCKED())
|
|
tl15Tag = "HELP_CNCSE1" BREAK
|
|
ENDIF
|
|
ELSE
|
|
#ENDIF
|
|
IF NOT IS_CASINO_HEIST_VEHICLE_REWARD_UNLOCKED(eModel)
|
|
tl15Tag = "HELP_CHSE1"
|
|
SWITCH eCursorInputProcessed
|
|
CASE BV_CH_FIRETRUK tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_BURRITO2 tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_BOXVILLE tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_STOCKADE tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_ASBO tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_KANJO tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_EVERON tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_RETINUE2 tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_YOSEMITE2 tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_SUGOI tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_SULTAN2 tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_OUTLAW tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_VAGRANT tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_KOMODA tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_STRYDER tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_FURIA tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_ZHABA tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CA_JUGULAR tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_GO_SENTINEL3 tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CA_GAUNTLET3 tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_AR_ELLIE tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_BI_DEFILER tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_BI_MANCHEZ tl15Tag = "HELP_CHSE1" BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "<HELP> - unknown CH_VEHICLE eCursorInputProcessed ", GET_LABEL_BUYABLE_VEHICLE(eCursorInputProcessed), " ")
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
#IF FEATURE_COPS_N_CROOKS
|
|
ENDIF
|
|
#ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
SWITCH iLastHiglightedButton
|
|
CASE 0
|
|
MODEL_NAMES eModel
|
|
eModel = GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)
|
|
|
|
IF NOT IS_CASINO_HEIST_VEHICLE_REWARD_UNLOCKED(eModel)
|
|
tl15Tag = "HELP_CHSE1"
|
|
SWITCH eCursorInputProcessed
|
|
CASE BV_CH_FIRETRUK tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_BURRITO2 tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_BOXVILLE tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_STOCKADE tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_ASBO tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_KANJO tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_EVERON tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_RETINUE2 tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_YOSEMITE2 tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_SUGOI tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_SULTAN2 tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_OUTLAW tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_VAGRANT tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_KOMODA tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_STRYDER tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_FURIA tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CH_ZHABA tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CA_JUGULAR tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_GO_SENTINEL3 tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_CA_GAUNTLET3 tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_AR_ELLIE tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_BI_DEFILER tl15Tag = "HELP_CHSE1" BREAK
|
|
CASE BV_BI_MANCHEZ tl15Tag = "HELP_CHSE1" BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "<HELP> - unknown CH_VEHICLE eCursorInputProcessed ", GET_LABEL_BUYABLE_VEHICLE(eCursorInputProcessed), " ")
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
ENDSWITCH
|
|
ELIF (eCursorInputProcessed = BV_CH_MINITANK)
|
|
AND (iStaticCurrentPage = 124)
|
|
IF g_sMPTunables.bXMAS2019_RC_TANK_PURCHASE
|
|
tl15Tag = "UNLOCK_RCTANK"
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
#IF FEATURE_COPS_N_CROOKS
|
|
ELIF (GET_CNC_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)) != -1)
|
|
SWITCH eStaticCurrentSite
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
SWITCH iLastHiglightedButton
|
|
CASE 0
|
|
CASE 1
|
|
CASE 2
|
|
CASE 3
|
|
CASE 4
|
|
CASE 5
|
|
CASE 6
|
|
CASE 7
|
|
IF (IS_CNC_CONTENT_ENABLED() AND NOT IS_CNC_VEHICLE_REWARD_UNLOCKED())
|
|
tl15Tag = "HELP_CNCSE3"
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
SWITCH iLastHiglightedButton
|
|
CASE 0
|
|
IF (IS_CNC_CONTENT_ENABLED() AND NOT IS_CNC_VEHICLE_REWARD_UNLOCKED())
|
|
tl15Tag = "HELP_CNCSE3"
|
|
SWITCH eCursorInputProcessed
|
|
CASE BV_CNC_POLICE5 tl15Tag = "HELP_CNCSE2" BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "<HELP> - unknown CH_VEHICLE eCursorInputProcessed ", GET_LABEL_BUYABLE_VEHICLE(eCursorInputProcessed), " ")
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
ENDSWITCH
|
|
#ENDIF
|
|
#IF FEATURE_HEIST_ISLAND
|
|
ELIF (GET_ISLAND_HEIST_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)) != -1)
|
|
SWITCH eStaticCurrentSite
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
SWITCH iLastHiglightedButton
|
|
CASE 0
|
|
CASE 1
|
|
CASE 2
|
|
CASE 3
|
|
CASE 4
|
|
CASE 5
|
|
CASE 6
|
|
CASE 7
|
|
MODEL_NAMES eModel
|
|
eModel = GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)
|
|
|
|
IF NOT IS_ISLAND_HEIST_VEHICLE_REWARD_UNLOCKED(eModel)
|
|
SWITCH eCursorInputProcessed
|
|
CASE BV_IH_ITALIRSX tl15Tag = "WEB_D_ITALIRSX" BREAK
|
|
CASE BV_IH_BRIOSO2 tl15Tag = "WEB_D_BRIOSO2" BREAK
|
|
CASE BV_IH_WEEVIL tl15Tag = "WEB_D_WEEVIL" BREAK
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "<HELP> - unknown CH_VEHICLE eCursorInputProcessed ", GET_LABEL_BUYABLE_VEHICLE(eCursorInputProcessed), " ")
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
SWITCH iLastHiglightedButton
|
|
CASE 0
|
|
MODEL_NAMES eModel
|
|
eModel = GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)
|
|
|
|
IF NOT IS_ISLAND_HEIST_VEHICLE_REWARD_UNLOCKED(eModel)
|
|
SWITCH eCursorInputProcessed
|
|
CASE BV_IH_ALKONOST tl15Tag = "WEB_D_LAAP" BREAK
|
|
CASE BV_IH_ANNIHILATOR2 tl15Tag = "WEB_D_LAAP" BREAK
|
|
CASE BV_IH_PATROLBOAT tl15Tag = "WEB_D_LAAP" BREAK
|
|
CASE BV_IH_VETIR tl15Tag = "WEB_D_VETIR" BREAK
|
|
CASE BV_IH_WINKY tl15Tag = "WEB_D_WINK" BREAK
|
|
CASE BV_IH_ITALIRSX tl15Tag = "" BREAK // Handled on WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
CASE BV_IH_BRIOSO2 tl15Tag = "" BREAK // Handled on WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
CASE BV_IH_WEEVIL tl15Tag = "" BREAK // Handled on WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "<HELP> - unknown CH_VEHICLE eCursorInputProcessed ", GET_LABEL_BUYABLE_VEHICLE(eCursorInputProcessed), " ")
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
CASE WWW_DOCKTEASE_COM
|
|
IF eCursorInputProcessed = BV_IH_LONGFIN
|
|
tl15Tag = "WEB_D_LAAP"
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ELIF (GET_TUNER_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)) != -1)
|
|
SWITCH eStaticCurrentSite
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
SWITCH iLastHiglightedButton
|
|
CASE 0
|
|
CASE 1
|
|
CASE 2
|
|
CASE 3
|
|
CASE 4
|
|
CASE 5
|
|
CASE 6
|
|
CASE 7
|
|
MODEL_NAMES eModel
|
|
eModel = GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)
|
|
|
|
IF NOT IS_TUNER_VEHICLE_REWARD_UNLOCKED(eModel)
|
|
SWITCH eCursorInputProcessed
|
|
CASE BV_TU_EUROS tl15Tag = "WEB_D_EUROS" BREAK
|
|
CASE BV_TU_TAILGATER2 tl15Tag = "WEB_D_TAIL2" BREAK
|
|
DEFAULT
|
|
tl15Tag = "WEB_D_RANDOM"
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
ENDSWITCH
|
|
ELIF (GET_FIXER_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)) != -1)
|
|
SWITCH eStaticCurrentSite
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
SWITCH iLastHiglightedButton
|
|
CASE 0
|
|
CASE 1
|
|
CASE 2
|
|
CASE 3
|
|
CASE 4
|
|
CASE 5
|
|
CASE 6
|
|
CASE 7
|
|
MODEL_NAMES eModel
|
|
eModel = GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)
|
|
|
|
IF NOT IS_FIXER_VEHICLE_REWARD_UNLOCKED(eModel)
|
|
SWITCH eCursorInputProcessed
|
|
CASE BV_AGENCY_BUFFALO4 tl15Tag = "WEB_D_BUFFALO4" BREAK
|
|
CASE BV_AGENCY_GRANGER2 tl15Tag = "WEB_D_GRANGER2" BREAK
|
|
CASE BV_AGENCY_DEITY tl15Tag = "WEB_D_DEITY" BREAK
|
|
CASE BV_AGENCY_PATRIOT3 tl15Tag = "WEB_D_PATRIOT3" BREAK
|
|
CASE BV_AGENCY_JUBILEE tl15Tag = "WEB_D_JUBILEE" BREAK
|
|
CASE BV_AGENCY_CHAMPION tl15Tag = "WEB_D_CHAMPION" BREAK
|
|
CASE BV_AGENCY_BALLER7 tl15Tag = "WEB_D_BALLER7" BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
ENDSWITCH
|
|
#IF FEATURE_DLC_1_2022
|
|
ELIF (GET_SUMMER_2022_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)) != -1)
|
|
SWITCH eStaticCurrentSite
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
CASE WWW_ELITASTRAVEL_COM
|
|
SWITCH iLastHiglightedButton
|
|
CASE 0
|
|
CASE 1
|
|
CASE 2
|
|
CASE 3
|
|
CASE 4
|
|
CASE 5
|
|
CASE 6
|
|
CASE 7
|
|
MODEL_NAMES eModel
|
|
eModel = GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)
|
|
|
|
IF NOT IS_SUMMER_2022_VEHICLE_REWARD_UNLOCKED(eModel)
|
|
SWITCH eCursorInputProcessed
|
|
CASE BV_SUM2_KANJOSJ tl15Tag = "WEB_D_RANDOM" BREAK
|
|
CASE BV_SUM2_POSTLUDE tl15Tag = "WEB_D_RANDOM" BREAK
|
|
CASE BV_SUM2_GREENWOOD tl15Tag = "WEB_D_GRNWOOD" BREAK
|
|
CASE BV_SUM2_DRAUGUR
|
|
IF g_sMPTunables.iSUM22_CAYO_PERICO_SERIES_DRAUGUR_TRADE_PRICE_COUNT = 1
|
|
tl15Tag = "WEB_D_DRAUGUR1"
|
|
ELSE
|
|
tl15Tag = "WEB_D_DRAUGUR"
|
|
eTextType = BHMT_STRING_WITH_NUMBER
|
|
iNumToDisplay1 = g_sMPTunables.iSUM22_CAYO_PERICO_SERIES_DRAUGUR_TRADE_PRICE_COUNT
|
|
ENDIF
|
|
BREAK
|
|
CASE BV_SUM2_CONADA tl15Tag = "WEB_D_CONADA" BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
ENDSWITCH
|
|
#ENDIF
|
|
ELIF IS_SBV_A_VEHICLE_PREVIOUSLY_HEIST_LOCKED(eCursorInputProcessed)
|
|
AND !(eCursorInputProcessed = BV_DLC_INSURGENT AND DOES_SAVE_HAVE_COUPON(COUPON_CAR2_XMAS2018))
|
|
BOOL bAddBrowserHelpMessageTag
|
|
bAddBrowserHelpMessageTag = FALSE
|
|
|
|
SWITCH eStaticCurrentSite
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
SWITCH iLastHiglightedButton
|
|
CASE 8
|
|
CASE 9
|
|
CASE 10
|
|
CASE 11
|
|
CASE 12
|
|
CASE 13
|
|
CASE 14
|
|
CASE 15
|
|
//
|
|
BREAK
|
|
CASE 0
|
|
CASE 1
|
|
CASE 2
|
|
CASE 3
|
|
CASE 4
|
|
CASE 5
|
|
CASE 6
|
|
CASE 7
|
|
IF NOT IS_BUYABLE_VEHICLE_UNLOCKED(eCursorInputProcessed)
|
|
bAddBrowserHelpMessageTag = TRUE
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
CASE WWW_ELITASTRAVEL_COM
|
|
CASE WWW_DOCKTEASE_COM
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
SWITCH iLastHiglightedButton
|
|
CASE 1
|
|
IF (eCursorInputProcessed = BV_DLC_INSURGENT AND g_sMPTunables.bENABLE_INSURGENT_MODSHOP)
|
|
OR (eCursorInputProcessed = BV_DLC_TECHNICAL AND g_sMPTunables.bENABLE_TECHNICAL_MODSHOP)
|
|
tl15Tag = "HELP_PEGMOD1"
|
|
ENDIF
|
|
BREAK
|
|
CASE 0
|
|
IF IS_BUYABLE_VEHICLE_UNLOCKED(eCursorInputProcessed)
|
|
IF (eCursorInputProcessed = BV_DLC_INSURGENT AND g_sMPTunables.bENABLE_INSURGENT_MODSHOP)
|
|
OR (eCursorInputProcessed = BV_DLC_TECHNICAL AND g_sMPTunables.bENABLE_TECHNICAL_MODSHOP)
|
|
tl15Tag = "HELP_PEGMOD1"
|
|
ENDIF
|
|
ELSE
|
|
bAddBrowserHelpMessageTag = TRUE
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "<HELP> - unknown eStaticCurrentSite ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite), " ")
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
|
|
IF bAddBrowserHelpMessageTag
|
|
SWITCH eCursorInputProcessed
|
|
CASE BV_DLC_VALKYRIE tl15Tag = "PHLO_HL_FINALE" BREAK
|
|
CASE BV_DLC_HYDRA tl15Tag = "PHLO_HL_EMP" BREAK
|
|
CASE BV_DLC_SAVAGE tl15Tag = "PHLO_PS_CONVOY" BREAK
|
|
// CASE BV_DLC_ENDURO tl15Tag = "" BREAK
|
|
CASE BV_DLC_BOXVILLE4 tl15Tag = "PHLO_PS_VANS" BREAK
|
|
CASE BV_DLC_CASCO tl15Tag = "PHLO_PB_STATION" BREAK
|
|
CASE BV_DLC_DINGHY3 tl15Tag = "PHLO_HL_FINALE" BREAK
|
|
CASE BV_DLC_GBURRITO2 tl15Tag = "PHLO_PS_HACK" BREAK
|
|
// CASE BV_DLC_GUARDIAN tl15Tag = "" BREAK
|
|
CASE BV_DLC_INSURGENT tl15Tag = "PHLO_HL_FINALE" BREAK
|
|
CASE BV_DLC_INSURGENT2 tl15Tag = "PHLO_HL_FINALE" BREAK
|
|
CASE BV_DLC_MULE3 tl15Tag = "PHLO_SA_FINALE" BREAK
|
|
CASE BV_DLC_KURUMA tl15Tag = "PHLO_TUT_FINALE" BREAK
|
|
CASE BV_DLC_KURUMA2 tl15Tag = "PHLO_TUT_FINALE" BREAK
|
|
CASE BV_DLC_LECTRO tl15Tag = "PHLO_PS_FINALE2" BREAK
|
|
CASE BV_DLC_PBUS tl15Tag = "PHLO_PB_FINALE" BREAK
|
|
CASE BV_DLC_TECHNICAL tl15Tag = "PHLO_SA_FINALE" BREAK
|
|
CASE BV_DLC_VELUM2 tl15Tag = "PHLO_PB_FINALE" BREAK
|
|
|
|
DEFAULT
|
|
CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT()
|
|
CASSERTLN(DEBUG_INTERNET, "<HELP> - unknown PHLO_VEHICLE eCursorInputProcessed ", GET_LABEL_BUYABLE_VEHICLE(eCursorInputProcessed), " ")
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
ELIF (eCursorInputProcessed = BV_DLC_BALLISTIC_EQUIPMENT)
|
|
FACTORY_ID eFactoryID = GET_OWNED_BUNKER(PLAYER_ID())
|
|
IF NOT (eFactoryID != FACTORY_ID_INVALID)
|
|
tl15Tag = "HELP_BAEQ0a" //In order to purchase this equipment you must fulfil the following criteria:~n~- Own a Bunker.~n~- Set up the Gunrunning Business.~n~- Unlock the Ballistic Equipment via Research.~n~
|
|
// bDisplayed_HELP_BAEQ0a = TRUE
|
|
ELIF NOT HAS_PLAYER_COMPLETED_FACTORY_SETUP_MISSION(PLAYER_ID(), eFactoryID)
|
|
tl15Tag = "HELP_BAEQ0b" //In order to purchase this equipment you must fulfil the following criteria:~n~- Set up the Gunrunning Business.~n~- Unlock the Ballistic Equipment via Research.~n~
|
|
// bDisplayed_HELP_BAEQ0b = TRUE
|
|
ELIF NOT IS_BALLISTIC_EQUIPMENT_UNLOCKED()
|
|
tl15Tag = "HELP_BAEQ0c" //In order to purchase this equipment you must fulfil the following criteria:~n~- Unlock the Ballistic Equipment via Research.~n~
|
|
// bDisplayed_HELP_BAEQ0c = TRUE
|
|
ENDIF
|
|
ELIF (GET_WVM_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)) != -1)
|
|
IF !HAS_PLAYER_COMPLETED_INITIAL_AMBIENT_TUTORIALS(PLAYER_ID())
|
|
AND (eCursorInputProcessed = BV_GR_TRAILERSMALL2)
|
|
tl15Tag = "PM_INF_QMF4"
|
|
ELSE
|
|
SWITCH iLastHiglightedButton
|
|
CASE 1
|
|
//
|
|
BREAK
|
|
CASE 0
|
|
MODEL_NAMES eModel
|
|
eModel = GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)
|
|
BOOL bLocked
|
|
bLocked = FALSE
|
|
|
|
IF NOT DOES_PLAYER_OWN_A_BUNKER(PLAYER_ID())
|
|
tl15Tag = "HELP_WEVE0" //In order to purchase this vehicle at the Trade Price, you must fulfil the following criteria:~n~- Own a Bunker.~n~- Own the Truck Property.~n~- Complete the <MISSION NAME> mission.~n~
|
|
bLocked = TRUE
|
|
ELIF NOT IS_GUNRUNNING_TRUCK_PURCHASED()
|
|
tl15Tag = "HELP_WEVE1" //In order to purchase this vehicle at the Trade Price, you must fulfil the following criteria:~n~- Own the Truck Property.~n~- Complete the <MISSION NAME> mission.~n~
|
|
bLocked = TRUE
|
|
ELIF NOT WVM_IS_SPECIAL_VEHICLE_UNLOCKED(WVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(eModel))
|
|
tl15Tag = "HELP_WEVE2"
|
|
bLocked = TRUE
|
|
ENDIF
|
|
IF bLocked
|
|
SWITCH eCursorInputProcessed
|
|
CASE BV_GR_APC tl15Tag += "a" BREAK
|
|
CASE BV_GR_DUNE3 tl15Tag += "b" BREAK
|
|
CASE BV_GR_HALFTRACK tl15Tag += "c" BREAK
|
|
CASE BV_GR_OPPRESSOR tl15Tag += "d" BREAK
|
|
CASE BV_GR_TAMPA3 tl15Tag += "e" BREAK
|
|
CASE BV_GR_TRAILERSMALL2 tl15Tag += "f" BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "<HELP> - unknown WVM_VEHICLE eCursorInputProcessed ", GET_LABEL_BUYABLE_VEHICLE(eCursorInputProcessed), " ")
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
ELIF (eCursorInputProcessed = BV_AR_SEASPARROW)
|
|
SWITCH iLastHiglightedButton
|
|
CASE 1
|
|
//
|
|
BREAK
|
|
CASE 0
|
|
IF NOT DOES_PLAYER_OWN_A_HANGER(PLAYER_ID())
|
|
tl15Tag = "HELP_SEAS0" //In order to purchase this vehicle at the Trade Price, you must fulfil the following criteria:~n~- Own a Hangar.~n~- Complete ~1~ smuggler missions.~n~
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ELIF (WAM_GET_STEAL_MISSION_UNLOCK_COUNT_FROM_VEHICLE_MODEL(GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)) > 0)
|
|
SWITCH iLastHiglightedButton
|
|
CASE 1
|
|
//
|
|
BREAK
|
|
CASE 0
|
|
MODEL_NAMES eModel
|
|
eModel = GET_MODEL_FOR_BUYABLE_VEHICLE(eCursorInputProcessed)
|
|
|
|
IF NOT DOES_PLAYER_OWN_A_HANGER(PLAYER_ID())
|
|
tl15Tag = "HELP_WEAI0" //In order to purchase this vehicle at the Trade Price, you must fulfil the following criteria:~n~- Own a Hangar.~n~- Complete ~1~ smuggler missions.~n~
|
|
eTextType = BHMT_STRING_WITH_NUMBER
|
|
iNumToDisplay1 = WAM_GET_STEAL_MISSION_UNLOCK_COUNT_FROM_VEHICLE_MODEL(eModel)
|
|
ELIF NOT WAM_IS_SPECIAL_VEHICLE_UNLOCKED(eModel)
|
|
tl15Tag = "HELP_WEAI1" //In order to purchase this vehicle at the Trade Price, you must fulfil the following criteria:~n~- Complete ~1~ smuggler missions.~n~
|
|
eTextType = BHMT_STRING_WITH_NUMBER
|
|
iNumToDisplay1 = WAM_GET_STEAL_MISSION_UNLOCK_COUNT_FROM_VEHICLE_MODEL(eModel)
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ELIF (eStaticCurrentSite = WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM AND iStaticCurrentPage = 1)
|
|
IF HAS_MP_HACKER_TRUCK_ACCESS()
|
|
IF (iLastHiglightedButton = 1) //BV_DLC_HACKER_TRUCK
|
|
IF NOT DOES_PLAYER_OWN_A_BUSINESS_HUB(PLAYER_ID())
|
|
tl15Tag = "HELP_HACKT0"
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "<HELP> warstock home page, iLastHiglightedButton ", iLastHiglightedButton, " bunker owned")
|
|
ENDIF
|
|
ELIF (iLastHiglightedButton = 2) //BV_DLC_BIG_TRUCK
|
|
IF NOT DOES_PLAYER_OWN_A_BUNKER(PLAYER_ID())
|
|
tl15Tag = "HELP_MOC0"
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "<HELP> warstock home page, iLastHiglightedButton ", iLastHiglightedButton, " bunker owned")
|
|
ENDIF
|
|
ELIF (iLastHiglightedButton = 3) //BV_DLC_BIG_PLANE
|
|
IF NOT DOES_PLAYER_OWN_A_DEFUNCT_BASE(PLAYER_ID())
|
|
tl15Tag = "HELP_AOC0"
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "<HELP> warstock home page, iLastHiglightedButton ", iLastHiglightedButton, " defunct base owned")
|
|
ENDIF
|
|
#IF FEATURE_HEIST_ISLAND
|
|
ELIF (iLastHiglightedButton = 0) //BV_IH_KOSATKA
|
|
IF NOT HAS_CASINO_NIGHTCLUB_INTRO_SCENE_BEEN_VIEWED()
|
|
tl15Tag = "HELP_KOSA0"
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "<HELP> warstock home page, iLastHiglightedButton ", iLastHiglightedButton, " watched cutscene")
|
|
ENDIF
|
|
#ENDIF
|
|
ELSE
|
|
bCleanup_HELP_SPVE = TRUE
|
|
CDEBUG3LN(DEBUG_INTERNET, "<HELP> warstock home page, iLastHiglightedButton ", iLastHiglightedButton, " not interesting")
|
|
ENDIF
|
|
ELSE
|
|
IF (iLastHiglightedButton = 0) //BV_DLC_BIG_TRUCK
|
|
IF NOT DOES_PLAYER_OWN_A_BUNKER(PLAYER_ID())
|
|
tl15Tag = "HELP_MOC0"
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "<HELP> warstock home page, iLastHiglightedButton ", iLastHiglightedButton, " bunker owned")
|
|
ENDIF
|
|
ELIF (iLastHiglightedButton = 1) //BV_DLC_BIG_PLANE
|
|
IF NOT DOES_PLAYER_OWN_A_DEFUNCT_BASE(PLAYER_ID())
|
|
tl15Tag = "HELP_AOC0"
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "<HELP> warstock home page, iLastHiglightedButton ", iLastHiglightedButton, " defunct base owned")
|
|
ENDIF
|
|
ELSE
|
|
bCleanup_HELP_SPVE = TRUE
|
|
CDEBUG3LN(DEBUG_INTERNET, "<HELP> warstock home page, iLastHiglightedButton ", iLastHiglightedButton, " not interesting")
|
|
ENDIF
|
|
ENDIF
|
|
ELIF (eStaticCurrentSite = WWW_THEDIAMONDCASINOANDRESORT_COM AND iStaticCurrentPage = 13)
|
|
OR (eStaticCurrentSite = WWW_THEDIAMONDCASINOANDRESORT_COM AND iStaticCurrentPage = 8)
|
|
IF (iLastHiglightedButton = 11 AND iStaticCurrentPage = 13)
|
|
OR (iLastHiglightedButton = 5 AND iStaticCurrentPage = 8)
|
|
INT iBlackjackReason, i3CardPokerReason
|
|
IF IS_PLAYER_BLOCKED_FROM_CASINO_GAME(CG_BLACKJACK, iBlackjackReason)
|
|
OR IS_PLAYER_BLOCKED_FROM_CASINO_GAME(CG_3CARDPOKER , i3CardPokerReason)
|
|
tl15Tag = "HELP_CASWEB_2"
|
|
ELSE
|
|
bCleanup_HELP_SPVE = TRUE
|
|
CDEBUG1LN(DEBUG_INTERNET, "<HELP> casino suite options page, iLastHiglightedButton ", iLastHiglightedButton, " card games not blocked")
|
|
ENDIF
|
|
ELSE
|
|
bCleanup_HELP_SPVE = TRUE
|
|
CDEBUG1LN(DEBUG_INTERNET, "<HELP> casino suite options page, iLastHiglightedButton ", iLastHiglightedButton, " not interesting")
|
|
ENDIF
|
|
ELIF (eStaticCurrentSite = WWW_THEDIAMONDCASINOANDRESORT_COM AND iStaticCurrentPage = 14)
|
|
IF IS_BIT_SET(iPurchaseHelpBS, PURCHASE_HELP_BS_CASWEB_0_FOR_FIRST_TIME)
|
|
IF NOT IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
CLEAR_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_CASWEB_0_FOR_FIRST_TIME)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_BIT_SET(iPurchaseHelpBS, PURCHASE_HELP_BS_CASWEB_0_FOR_FIRST_TIME)
|
|
IF (iLastHiglightedButton = 4)
|
|
IF IS_GAMBLING_APPROVED_REGION()
|
|
tl15Tag = "HELP_CASWEB_0"
|
|
ELSE
|
|
tl15Tag = "HELP_CASWEB_0B"
|
|
ENDIF
|
|
ELSE
|
|
bCleanup_HELP_SPVE = TRUE
|
|
CDEBUG3LN(DEBUG_INTERNET, "<HELP> casino summary page, iLastHiglightedButton ", iLastHiglightedButton, " not interesting")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "<HELP> - unknown eCursorInputProcessed ", GET_LABEL_BUYABLE_VEHICLE(eCursorInputProcessed), " ")
|
|
ENDIF
|
|
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(tl15Tag)
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT(tl15Tag,eTextType,TRUE,iNumToDisplay1,iNumToDisplay2)
|
|
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display ", g_sBrowserHelpMessage.tl15Tag, " ")
|
|
bWaitingForSelectionReturn = FALSE
|
|
ELSE
|
|
CERRORLN(DEBUG_INTERNET, "<HELP> - empty g_sBrowserHelpMessage.tl15Tag")
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
bCleanup_HELP_SPVE = TRUE
|
|
CDEBUG1LN(DEBUG_INTERNET, "<HELP> currentRolloverReturnIndex ready, iLastHiglightedButton: ", iLastHiglightedButton, " - reset")
|
|
bWaitingForSelectionReturn = FALSE
|
|
ENDIF
|
|
ELSE
|
|
CDEBUG3LN(DEBUG_INTERNET, "<HELP> currentRolloverReturnIndex still not ready... ", NATIVE_TO_INT(currentRolloverReturnIndex))
|
|
// bWaitingForSelectionReturn = FALSE
|
|
ENDIF
|
|
|
|
IF bWaitingForSelectionReturn
|
|
IF bDPadUp
|
|
OR bDPadDown
|
|
OR bDPadLeft
|
|
OR bDPadRight
|
|
CDEBUG1LN(DEBUG_INTERNET, "<HELP> change DPAD")
|
|
bWaitingForSelectionReturn = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
#IF FEATURE_CASINO_HEIST
|
|
ELIF (eStaticCurrentSite = FORECLOSURES_MAZE_D_BANK_COM)
|
|
AND iStaticCurrentPage = 2
|
|
AND CAN_PLAYER_PURCHASE_ARCADE()
|
|
bCleanup_HELP_SPVE = TRUE
|
|
|
|
IF NOT g_bBrowser_ARCADEHELP_seen
|
|
IF DOES_LOCAL_PLAYER_STAT_OWN_ARCADE()
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display ARCADEHELP (iStaticCurrentPage: ", iStaticCurrentPage, "), already owns Arcade")
|
|
|
|
g_bBrowser_ARCADEHELP_seen = TRUE
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display ARCADEHELP (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("ARCADEHELP", DEFAULT, FALSE)
|
|
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
|
|
g_bBrowser_ARCADEHELP_seen = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
ELSE
|
|
bCleanup_HELP_SPVE = TRUE
|
|
ENDIF
|
|
|
|
IF bCleanup_HELP_SPVE
|
|
IF ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_PASSIVE")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHRE")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHSC")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHX17")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "MBANKHELP")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_NCLUBSTY")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_NCLUBLIG")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_NCLUBDAN")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_NCLUBICE")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_AWSE0h")
|
|
OR (ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_CASWEB_0") AND IS_BIT_SET(iPurchaseHelpBS, PURCHASE_HELP_BS_CASWEB_0_FOR_FIRST_TIME))
|
|
OR (ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_CASWEB_0B") AND IS_BIT_SET(iPurchaseHelpBS, PURCHASE_HELP_BS_CASWEB_0_FOR_FIRST_TIME))
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHCH")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "ARCADEHELP")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "ARC_OPTIONS")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_ASHOPSTY")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_ASHOPTNT")
|
|
#IF FEATURE_DLC_1_2022
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_BKRCLNT")
|
|
#ENDIF
|
|
bCleanup_HELP_SPVE = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
IF bCleanup_HELP_SPVE
|
|
IF IS_THIS_BROWSER_HELP_MESSAGE_BEING_DISPLAYED(g_sBrowserHelpMessage)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - clear \"", g_sBrowserHelpMessage.tl15Tag, "\"")
|
|
|
|
CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT()
|
|
g_sBrowserHelpMessage.bShow = TRUE
|
|
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
|
|
IF (currentRolloverReturnIndex != NULL)
|
|
AND (bWaitingForSelectionReturn != FALSE)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - reset currentRolloverReturnIndex ", NATIVE_TO_INT(currentRolloverReturnIndex), ", bWaitingForSelectionReturn ", GET_STRING_FROM_BOOL(bWaitingForSelectionReturn))
|
|
|
|
currentRolloverReturnIndex = NULL
|
|
bWaitingForSelectionReturn = FALSE
|
|
ENDIF
|
|
|
|
ENDIF
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
IF bDrawDebugStuff
|
|
IF NOT bSetDebugLinesAndSpheresDrawingActive
|
|
SET_DEBUG_LINES_AND_SPHERES_DRAWING_ACTIVE(TRUE)
|
|
bSetDebugLinesAndSpheresDrawingActive = TRUE
|
|
ENDIF
|
|
|
|
VECTOR vOffsetBase = <<0.3,0.2,0>>, vOffsetMult = <<0.0,0.010,0>>, vColumnMult = <<0.2,0.0,0>>
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
vOffsetBase = <<0.3,0.2,0>>*0.75
|
|
vOffsetMult = <<0.0,0.0175,0>>
|
|
ENDIF
|
|
|
|
INT iStrOffset = 0, iColumn = 0
|
|
INT iRed, iGreen, iBlue, iAlpha
|
|
TEXT_LABEL_63 str = ""
|
|
str = "site:"
|
|
str += GET_WEBSITE_FROM_INDEX(eStaticCurrentSite)
|
|
IF eStaticLastSite != eStaticCurrentSite
|
|
str += ", last:"
|
|
str += GET_WEBSITE_FROM_INDEX(eStaticLastSite)
|
|
ENDIF
|
|
GET_HUD_COLOUR(INT_TO_ENUM(HUD_COLOURS, iStrOffset), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "page:"
|
|
str += iStaticLastPage
|
|
str += ", current:"
|
|
str += iStaticCurrentPage
|
|
str += ", history:"
|
|
str += iStaticHistory
|
|
GET_HUD_COLOUR(INT_TO_ENUM(HUD_COLOURS, iStrOffset), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "last selected index:"
|
|
str += g_iLastSelectedWebIndex
|
|
str += ", colour:"
|
|
str += ENUM_TO_INT(g_eLastBuyableVehicleColourSelected)
|
|
IF iTVOnTimeoutFrameCount != -1
|
|
INT iGameTime = GET_FRAME_COUNT()
|
|
|
|
str += ", TVTime F:"
|
|
str += iTVOnTimeoutFrameCount-iGameTime
|
|
ENDIF
|
|
|
|
GET_HUD_COLOUR(INT_TO_ENUM(HUD_COLOURS, iStrOffset), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
IF eStaticCurrentSite = WWW_DOCKTEASE_COM
|
|
str = "iMod:"
|
|
str += g_sYachtDataStruct.iMod
|
|
GET_HUD_COLOUR(INT_TO_ENUM(HUD_COLOURS, iStrOffset), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iFixture:"
|
|
str += g_sYachtDataStruct.iFixture
|
|
GET_HUD_COLOUR(INT_TO_ENUM(HUD_COLOURS, iStrOffset), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iLighting:"
|
|
str += g_sYachtDataStruct.iLighting
|
|
GET_HUD_COLOUR(INT_TO_ENUM(HUD_COLOURS, iStrOffset), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iColour:"
|
|
str += g_sYachtDataStruct.iColour
|
|
GET_HUD_COLOUR(INT_TO_ENUM(HUD_COLOURS, iStrOffset), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iFlag:"
|
|
str += g_sYachtDataStruct.iFlag
|
|
str += " "
|
|
str += GET_MODEL_NAME_FOR_DEBUG(MODEL_NAME_FOR_YACHT_FLAG(g_sYachtDataStruct.iFlag))
|
|
GET_HUD_COLOUR(INT_TO_ENUM(HUD_COLOURS, iStrOffset), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "tl63Name:\""
|
|
str += g_sYachtDataStruct.tl63Name
|
|
str += "\" -> \""
|
|
str += g_sYachtDataStruct.tl63NewName
|
|
IF ARE_STRINGS_EQUAL(g_sYachtDataStruct.tl63Name, g_sYachtDataStruct.tl63NewName)
|
|
str += "\" same"
|
|
ELSE
|
|
str += "\" DIFF"
|
|
ENDIF
|
|
GET_HUD_COLOUR(INT_TO_ENUM(HUD_COLOURS, iStrOffset), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iYachtNameID:"
|
|
str += g_sYachtDataStruct.iYachtNameID
|
|
GET_HUD_COLOUR(INT_TO_ENUM(HUD_COLOURS, iStrOffset), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
ELIF eStaticCurrentSite = WWW_DYNASTY8EXECUTIVEREALTY_COM
|
|
|
|
|
|
str = "Cached Last Clocked Office:"
|
|
str += GET_CACHED_LAST_CLICKED_OFFICE()
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
INT iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop
|
|
GET_SCALEFORM_OFFICE_DATA(iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop)
|
|
|
|
str = "iOfficeID:"
|
|
str += g_sOfficeDataStruct.iOfficeID
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
TEXT_LABEL tlStyle = "PM_OFF_VAR_"
|
|
tlStyle += g_sOfficeDataStruct.iStyle
|
|
str = "iStyle:"
|
|
str += g_sOfficeDataStruct.iStyle
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlStyle)
|
|
str += "\""
|
|
str += PICK_STRING(g_sOfficeDataStruct.iStyle = iStyle, " == ", " != ")
|
|
str += iStyle
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sOfficeDataStruct.iStyle = iStyle), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iPersonnel:"
|
|
str += g_sOfficeDataStruct.iPersonnel
|
|
str += PICK_STRING(g_sOfficeDataStruct.iPersonnel = iPersonnel, " == ", " != ")
|
|
str += iPersonnel
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sOfficeDataStruct.iPersonnel = iPersonnel), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iFont:"
|
|
str += g_sOfficeDataStruct.iFont
|
|
str += PICK_STRING(g_sOfficeDataStruct.iFont = iFont, " == ", " != ")
|
|
str += iFont
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sOfficeDataStruct.iFont = iFont), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iColour:"
|
|
str += g_sOfficeDataStruct.iColour
|
|
str += PICK_STRING(g_sOfficeDataStruct.iColour = iColour, " == ", " != ")
|
|
str += iColour
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sOfficeDataStruct.iColour = iColour), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "tl63OldOrgName:\""
|
|
str += g_sOfficeDataStruct.tl63OldOrgName
|
|
str += "\""
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "tl63NewOrgName:\""
|
|
str += g_sOfficeDataStruct.tl63NewOrgName
|
|
str += "\""
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iGunLocker:"
|
|
str += g_sOfficeDataStruct.iGunLocker
|
|
str += PICK_STRING(g_sOfficeDataStruct.iGunLocker = iGunLocker, " == ", " != ")
|
|
str += iGunLocker
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sOfficeDataStruct.iGunLocker = iGunLocker), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iVault:"
|
|
str += g_sOfficeDataStruct.iVault
|
|
str += PICK_STRING(g_sOfficeDataStruct.iVault = iVault, " == ", " != ")
|
|
str += iVault
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sOfficeDataStruct.iVault = iVault), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iAccommodation:"
|
|
str += g_sOfficeDataStruct.iAccommodation
|
|
str += PICK_STRING(g_sOfficeDataStruct.iAccommodation = iAccommodation, " == ", " != ")
|
|
str += iAccommodation
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sOfficeDataStruct.iAccommodation = iAccommodation), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iOfficeNameID:"
|
|
str += g_sOfficeDataStruct.iOfficeNameID
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iGarage1Style:"
|
|
str += g_sOfficeDataStruct.iGarage1Style
|
|
str += PICK_STRING(g_sOfficeDataStruct.iGarage1Style = iGarage1Style, " == ", " != ")
|
|
str += iGarage1Style
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sOfficeDataStruct.iGarage1Style = iGarage1Style), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = " iGarage1Lighting:"
|
|
str += g_sOfficeDataStruct.iGarage1Lighting
|
|
str += PICK_STRING(g_sOfficeDataStruct.iGarage1Lighting = iGarage1Lighting, " == ", " != ")
|
|
str += iGarage1Lighting
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sOfficeDataStruct.iGarage1Lighting = iGarage1Lighting), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = " iGarage1Numb:"
|
|
str += g_sOfficeDataStruct.iGarage1Number
|
|
str += PICK_STRING(g_sOfficeDataStruct.iGarage1Number = iGarage1Number, " == ", " != ")
|
|
str += iGarage1Number
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sOfficeDataStruct.iGarage1Number = iGarage1Number), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iGarage2Style:"
|
|
str += g_sOfficeDataStruct.iGarage2Style
|
|
str += PICK_STRING(g_sOfficeDataStruct.iGarage2Style = iGarage2Style, " == ", " != ")
|
|
str += iGarage2Style
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sOfficeDataStruct.iGarage2Style = iGarage2Style), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = " iGarage2Lighting:"
|
|
str += g_sOfficeDataStruct.iGarage2Lighting
|
|
str += PICK_STRING(g_sOfficeDataStruct.iGarage2Lighting = iGarage2Lighting, " == ", " != ")
|
|
str += iGarage2Lighting
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sOfficeDataStruct.iGarage2Lighting = iGarage2Lighting), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = " iGarage2Numb:"
|
|
str += g_sOfficeDataStruct.iGarage2Number
|
|
str += PICK_STRING(g_sOfficeDataStruct.iGarage2Number = iGarage2Number, " == ", " != ")
|
|
str += iGarage2Number
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sOfficeDataStruct.iGarage2Number = iGarage2Number), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iGarage3Style:"
|
|
str += g_sOfficeDataStruct.iGarage3Style
|
|
str += PICK_STRING(g_sOfficeDataStruct.iGarage3Style = iGarage3Style, " == ", " != ")
|
|
str += iGarage3Style
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sOfficeDataStruct.iGarage3Style = iGarage3Style), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = " iGarage3Lighting:"
|
|
str += g_sOfficeDataStruct.iGarage3Lighting
|
|
str += PICK_STRING(g_sOfficeDataStruct.iGarage3Lighting = iGarage3Lighting, " == ", " != ")
|
|
str += iGarage3Lighting
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sOfficeDataStruct.iGarage3Lighting = iGarage3Lighting), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = " iGarage3Numb:"
|
|
str += g_sOfficeDataStruct.iGarage3Number
|
|
str += PICK_STRING(g_sOfficeDataStruct.iGarage3Number = iGarage3Number, " == ", " != ")
|
|
str += iGarage3Number
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sOfficeDataStruct.iGarage3Number = iGarage3Number), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iModshop:"
|
|
str += g_sOfficeDataStruct.iModshop
|
|
str += PICK_STRING(g_sOfficeDataStruct.iModshop = iModshop, " == ", " != ")
|
|
str += iModshop
|
|
str += " {stat:"
|
|
str += GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_MODSHOP)
|
|
str += "}"
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sOfficeDataStruct.iModshop = iModshop), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
// ----- FIXER HQ -----
|
|
|
|
#IF FEATURE_FIXER
|
|
str = "Last Clicked Fixer HQ:"
|
|
str += GET_LAST_CLICKED_FIXER_HQ()
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
FIXER_HQ_DATA_STRUCT sData
|
|
GET_SCALEFORM_FIXER_HQ_DATA(sData)
|
|
|
|
str = "iArt:"
|
|
str += g_sFixerHQDataStruct.iArt
|
|
str += PICK_STRING(g_sFixerHQDataStruct.iArt = sData.iArt, " == ", " != ")
|
|
str += sData.iArt
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sFixerHQDataStruct.iArt = sData.iArt), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iWallpaper:"
|
|
str += g_sFixerHQDataStruct.iWallpaper
|
|
str += PICK_STRING(g_sFixerHQDataStruct.iWallpaper = sData.iWallpaper, " == ", " != ")
|
|
str += sData.iWallpaper
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sFixerHQDataStruct.iWallpaper = sData.iWallpaper), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iTint:"
|
|
str += g_sFixerHQDataStruct.iTint
|
|
str += PICK_STRING(g_sFixerHQDataStruct.iTint = sData.iTint, " == ", " != ")
|
|
str += sData.iTint
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sFixerHQDataStruct.iTint = sData.iTint), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iVehWorkshop:"
|
|
str += g_sFixerHQDataStruct.iVehWorkshop
|
|
str += PICK_STRING(g_sFixerHQDataStruct.iVehWorkshop = sData.iVehWorkshop, " == ", " != ")
|
|
str += sData.iVehWorkshop
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sFixerHQDataStruct.iVehWorkshop = sData.iVehWorkshop), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iArmory:"
|
|
str += g_sFixerHQDataStruct.iArmory
|
|
str += PICK_STRING(g_sFixerHQDataStruct.iArmory = sData.iArmory, " == ", " != ")
|
|
str += sData.iArmory
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sFixerHQDataStruct.iArmory = sData.iArmory), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iPersonalQuarters:"
|
|
str += g_sFixerHQDataStruct.iPersonalQuarters
|
|
str += PICK_STRING(g_sFixerHQDataStruct.iPersonalQuarters = sData.iPersonalQuarters, " == ", " != ")
|
|
str += sData.iPersonalQuarters
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sFixerHQDataStruct.iPersonalQuarters = sData.iPersonalQuarters), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
#ENDIF
|
|
|
|
ELIF eStaticCurrentSite = FORECLOSURES_MAZE_D_BANK_COM
|
|
TEXT_LABEL_31 tlModName
|
|
INT iWall, iHanging, iFurniture, iColourScheme, iFont, iFontColour, iEmblem, iHideSinage, iGunLocker, iGarage
|
|
GET_SCALEFORM_CLUBHOUSE_DATA(g_sClubhouseDataStruct.iClubhouseID, iWall, iHanging, iFurniture, iColourScheme, iFont, iFontColour, iEmblem, iHideSinage, iGunLocker, iGarage)
|
|
|
|
tlModName = GET_PROPERTY_NAME(g_sClubhouseDataStruct.iClubhouseID)
|
|
str = "iClubhouseID:"
|
|
str += g_sClubhouseDataStruct.iClubhouseID
|
|
str += " \""
|
|
str += tlModName
|
|
str += "\""
|
|
INT iClubhouseIDStrOffset = iStrOffset
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = "FC_WALL_"
|
|
tlModName += g_sClubhouseDataStruct.iWall
|
|
str = "iWall:"
|
|
str += g_sClubhouseDataStruct.iWall
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " \""
|
|
str += (tlModName)
|
|
str += "\""
|
|
ENDIF
|
|
str += PICK_STRING(g_sClubhouseDataStruct.iWall = iWall, " == ", " != ")
|
|
str += iWall
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sClubhouseDataStruct.iWall = iWall), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = "FC_HANGING_"
|
|
tlModName += g_sClubhouseDataStruct.iWall
|
|
str = "iHanging:"
|
|
str += g_sClubhouseDataStruct.iHanging
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " \""
|
|
str += (tlModName)
|
|
str += "\""
|
|
ENDIF
|
|
str += PICK_STRING(g_sClubhouseDataStruct.iHanging = iHanging, " == ", " != ")
|
|
str += iHanging
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sClubhouseDataStruct.iHanging = iHanging), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = "FC_FURNITURE_"
|
|
tlModName += g_sClubhouseDataStruct.iFurniture
|
|
str = "iFurniture:"
|
|
str += g_sClubhouseDataStruct.iFurniture
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " \""
|
|
str += (tlModName)
|
|
str += "\""
|
|
ENDIF
|
|
str += PICK_STRING(g_sClubhouseDataStruct.iFurniture = iFurniture, " == ", " != ")
|
|
str += iFurniture
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sClubhouseDataStruct.iFurniture = iFurniture), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_PROPERTY_INTERIOR_NAME(g_sClubhouseDataStruct.iColourScheme, GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_CLUBHOUSE))
|
|
str = "iColourScheme:"
|
|
str += g_sClubhouseDataStruct.iColourScheme
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " \""
|
|
str += (tlModName)
|
|
str += "\""
|
|
ENDIF
|
|
str += PICK_STRING(g_sClubhouseDataStruct.iColourScheme = iColourScheme, " == ", " != ")
|
|
str += iColourScheme
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sClubhouseDataStruct.iColourScheme = iColourScheme), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iFont:"
|
|
str += g_sClubhouseDataStruct.iFont
|
|
str += PICK_STRING(g_sClubhouseDataStruct.iFont = iFont, " == ", " != ")
|
|
str += iFont
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sClubhouseDataStruct.iFont = iFont), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iFontColour:"
|
|
str += g_sClubhouseDataStruct.iFontColour
|
|
str += PICK_STRING(g_sClubhouseDataStruct.iFontColour = iFontColour, " == ", " != ")
|
|
str += iFontColour
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sClubhouseDataStruct.iFontColour = iFontColour), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iEmblem:"
|
|
str += g_sClubhouseDataStruct.iEmblem
|
|
str += PICK_STRING(g_sClubhouseDataStruct.iEmblem = iEmblem, " == ", " != ")
|
|
str += iEmblem
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sClubhouseDataStruct.iEmblem = iEmblem), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iHideSinage:"
|
|
str += g_sClubhouseDataStruct.iHideSinage
|
|
str += PICK_STRING(g_sClubhouseDataStruct.iHideSinage = iHideSinage, " == ", " != ")
|
|
str += iHideSinage
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sClubhouseDataStruct.iHideSinage = iHideSinage), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "tl63OldOrgName:\""
|
|
str += g_sClubhouseDataStruct.tl63OldSignage
|
|
str += "\""
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "tl63NewOrgName:\""
|
|
str += g_sClubhouseDataStruct.tl63NewSignage
|
|
str += "\""
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iGunLocker:"
|
|
str += g_sClubhouseDataStruct.iGunLocker
|
|
str += PICK_STRING(g_sClubhouseDataStruct.iGunLocker = iGunLocker, " == ", " != ")
|
|
str += iGunLocker
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sClubhouseDataStruct.iGunLocker = iGunLocker), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iGarage:"
|
|
str += g_sClubhouseDataStruct.iGarage
|
|
str += PICK_STRING(g_sClubhouseDataStruct.iGarage = iGarage, " == ", " != ")
|
|
str += iGarage
|
|
GET_HUD_COLOUR(GET_HUD_COLOUR_COMPARING_OLD_NEW(g_sClubhouseDataStruct.iGarage = iGarage), iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "tl63CrewEmblem:\""
|
|
str += g_sClubhouseDataStruct.tl63CrewEmblem
|
|
str += "\""
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iClubhouseNameID:"
|
|
str += g_sClubhouseDataStruct.iClubhouseNameID
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
//
|
|
iStrOffset = iClubhouseIDStrOffset
|
|
iColumn++
|
|
tlModName = GET_FACTORY_NAME_FROM_ID(INT_TO_ENUM(FACTORY_ID, g_sBunkerDataStruct.iBunkerID))
|
|
str = "iBunkerID:"
|
|
str += g_sBunkerDataStruct.iBunkerID
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " \""
|
|
str += (tlModName)
|
|
str += "\""
|
|
ENDIF
|
|
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iDecor:"
|
|
str += g_sBunkerDataStruct.iDecor
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iAccommodation:"
|
|
str += g_sBunkerDataStruct.iAccommodation
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iFiringRange:"
|
|
str += g_sBunkerDataStruct.iFiringRange
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iGunLocker:"
|
|
str += g_sBunkerDataStruct.iGunLocker
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iTransportation:"
|
|
str += g_sBunkerDataStruct.iTransportation
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
//
|
|
iStrOffset = iClubhouseIDStrOffset
|
|
iColumn++
|
|
tlModName = GET_HANGAR_NAME_FROM_ID(INT_TO_ENUM(HANGAR_ID, g_sHangarDataStruct.iHangarID))
|
|
str = "iHangarID:"
|
|
str += g_sHangarDataStruct.iHangarID
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " \""
|
|
str += (tlModName)
|
|
str += "\""
|
|
ENDIF
|
|
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = "FCHNGR_STY_"
|
|
tlModName += (g_sHangarDataStruct.iStyle+1)
|
|
str = "iStyle:"
|
|
str += g_sHangarDataStruct.iStyle
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " \""
|
|
str += (tlModName)
|
|
str += "\""
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = "FCHNGR_LGT_"
|
|
tlModName += (g_sHangarDataStruct.iLighting+1)
|
|
str = "iLighting:"
|
|
str += g_sHangarDataStruct.iLighting
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " \""
|
|
str += (tlModName)
|
|
str += "\""
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = "FCHNGR_FLR_"
|
|
tlModName += (g_sHangarDataStruct.iFlooring+1)
|
|
str = "iFlooring:"
|
|
str += g_sHangarDataStruct.iFlooring
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " \""
|
|
str += (tlModName)
|
|
str += "\""
|
|
ENDIF
|
|
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = "FCHNGR_FRN_"
|
|
tlModName += (g_sHangarDataStruct.iFurniture+1)
|
|
str = "iFurniture:"
|
|
str += g_sHangarDataStruct.iFurniture
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " \""
|
|
str += (tlModName)
|
|
str += "\""
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = "FCHNGR_FRN_"
|
|
tlModName += (g_sHangarDataStruct.iSleepingQuarters+1)
|
|
str = "iSleepingQuarters:"
|
|
str += g_sHangarDataStruct.iSleepingQuarters
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " \""
|
|
str += (tlModName)
|
|
str += "\""
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iWorkshop:"
|
|
str += g_sHangarDataStruct.iWorkshop
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
//
|
|
iStrOffset = iClubhouseIDStrOffset
|
|
iColumn++
|
|
tlModName = GET_DEFUNCT_BASE_NAME_FROM_ID(INT_TO_ENUM(DEFUNCT_BASE_ID, g_sDefunctBaseDataStruct.iBaseID))
|
|
str = "iBaseID:"
|
|
str += g_sDefunctBaseDataStruct.iBaseID
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " \""
|
|
str += (tlModName)
|
|
str += "\""
|
|
ENDIF
|
|
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_STYLE, g_sDefunctBaseDataStruct.iStyle)
|
|
str = "iStyle:"
|
|
str += g_sDefunctBaseDataStruct.iStyle
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " \""
|
|
str += (tlModName)
|
|
str += "\""
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_GRAPHIC, GET_SF_FROM_DBASE_GRAPHICS(g_sDefunctBaseDataStruct.iGraphics))
|
|
str = "iGraphics:"
|
|
str += g_sDefunctBaseDataStruct.iGraphics
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " \""
|
|
str += (tlModName)
|
|
str += "\""
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_ORBITAL_WEAPON, g_sDefunctBaseDataStruct.iOrbitalWeapon)
|
|
str = "iOrbitalWeapon:"
|
|
str += g_sDefunctBaseDataStruct.iOrbitalWeapon
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " \""
|
|
str += (tlModName)
|
|
str += "\""
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_SECURITY_ROOM, g_sDefunctBaseDataStruct.iSecurityRoom)
|
|
str = "iSecurityRoom:"
|
|
str += g_sDefunctBaseDataStruct.iSecurityRoom
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " \""
|
|
str += (tlModName)
|
|
str += "\""
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_LOUNGE, g_sDefunctBaseDataStruct.iLounge)
|
|
str = "iLounge:"
|
|
str += g_sDefunctBaseDataStruct.iLounge
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " \""
|
|
str += (tlModName)
|
|
str += "\""
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_PRIVACY_GLASS, g_sDefunctBaseDataStruct.iPrivicyGlass)
|
|
str = "iPrivicyGlass:"
|
|
str += g_sDefunctBaseDataStruct.iPrivicyGlass
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " \""
|
|
str += (tlModName)
|
|
str += "\""
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_PERSONAL_QUARTERS, g_sDefunctBaseDataStruct.iPersonalQuarters)
|
|
str = "iPersonalQuarters:"
|
|
str += g_sDefunctBaseDataStruct.iPersonalQuarters
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " \""
|
|
str += (tlModName)
|
|
str += "\""
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
//
|
|
iStrOffset = iClubhouseIDStrOffset
|
|
iColumn++
|
|
tlModName = GET_NIGHTCLUB_NAME_FROM_ID(INT_TO_ENUM(NIGHTCLUB_ID, g_sNightclubDataStruct.iNightclubID))
|
|
str = "eNightclubID:"
|
|
str += g_sNightclubDataStruct.iNightclubID
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_STYLE, g_sNightclubDataStruct.iStyle)
|
|
str = "iStyle:"
|
|
str += g_sNightclubDataStruct.iStyle
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_LIGHTING, GET_SF_FROM_NIGHTCLUB_LIGHTING(g_sNightclubDataStruct.iLighting))
|
|
str = "iLighting:"
|
|
str += g_sNightclubDataStruct.iLighting
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_DANCERS, g_sNightclubDataStruct.iDancers)
|
|
str = "iDancers:"
|
|
str += g_sNightclubDataStruct.iDancers
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_DRYICE, g_sNightclubDataStruct.iDryIce)
|
|
str = "iDryIce:"
|
|
str += g_sNightclubDataStruct.iDryIce
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_BUSINESS_HUB_MOD_NAME_FROM_ID(eBUSINESS_HUB_MOD_WAREHOUSE, g_sNightclubDataStruct.iStorage)
|
|
str = "iStorage:"
|
|
str += g_sNightclubDataStruct.iStorage
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_BUSINESS_HUB_MOD_NAME_FROM_ID(eBUSINESS_HUB_MOD_GARAGE, g_sNightclubDataStruct.iGarage)
|
|
str = "iGarage:"
|
|
str += g_sNightclubDataStruct.iGarage
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_NAME, /*GET_SF_FROM_NIGHTCLUB_NAME*/ (g_sNightclubDataStruct.iNameID))
|
|
str = "iNameID:"
|
|
str += g_sNightclubDataStruct.iNameID
|
|
str += ", SF_"
|
|
str += GET_SF_FROM_NIGHTCLUB_NAME(g_sNightclubDataStruct.iNameID)
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
#IF FEATURE_CASINO_HEIST
|
|
iStrOffset = iClubhouseIDStrOffset
|
|
|
|
iColumn++
|
|
|
|
tlModName = GET_ARCADE_NAME_FROM_ID(INT_TO_ENUM(ARCADE_PROPERTY_ID, g_sArcadeDataStruct.iArcadeID))
|
|
|
|
str = "eArcadeID: "
|
|
str += g_sArcadeDataStruct.iArcadeID
|
|
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase + (vOffsetMult * TO_FLOAT(iStrOffset)) + (<<0.175, 0.0, 0.0>> * TO_FLOAT(iColumn - 1)), iRed, iGreen, iBlue, iAlpha)
|
|
|
|
iStrOffset++
|
|
|
|
tlModName = GET_ARCADE_MOD_NAME_FROM_ID(eARCADE_MOD_FLOOR, g_sArcadeDataStruct.iFloor)
|
|
|
|
str = "iStyle:"
|
|
str += g_sNightclubDataStruct.iStyle
|
|
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase + (vOffsetMult * TO_FLOAT(iStrOffset)) + (<<0.175, 0.0, 0.0>> * TO_FLOAT(iColumn - 1)), iRed, iGreen, iBlue, iAlpha)
|
|
|
|
iStrOffset++
|
|
#ENDIF
|
|
|
|
#IF FEATURE_TUNER
|
|
iStrOffset = iClubhouseIDStrOffset
|
|
iColumn++
|
|
tlModName = GET_AUTO_SHOP_NAME_FROM_ID(INT_TO_ENUM(AUTO_SHOP_PROPERTY_ID, g_sAutoShopDataStruct.iAutoShopID))
|
|
|
|
str = "eAutoShopID: "
|
|
str += g_sAutoShopDataStruct.iAutoShopID
|
|
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase + (vOffsetMult * TO_FLOAT(iStrOffset)) + (<<0.175, 0.0, 0.0>> * TO_FLOAT(iColumn - 1)), iRed, iGreen, iBlue, iAlpha)
|
|
iStrOffset++
|
|
|
|
tlModName = GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_WALL, g_sAutoShopDataStruct.iWall)
|
|
str = "iWall:"
|
|
str += g_sAutoShopDataStruct.iWall
|
|
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase + (vOffsetMult * TO_FLOAT(iStrOffset)) + (<<0.175, 0.0, 0.0>> * TO_FLOAT(iColumn - 1)), iRed, iGreen, iBlue, iAlpha)
|
|
iStrOffset++
|
|
#ENDIF
|
|
ELIF eStaticCurrentSite = WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
str = "iCab:"
|
|
str += g_sTruckDataStruct.iCab
|
|
IF g_sTruckDataStruct.iCab != -1
|
|
str += " "
|
|
str += GET_SAFE_DISPLAY_NAME_FROM_VEHICLE_MODEL(INT_TO_ENUM(MODEL_NAMES, GET_TRUCK_CAB_FROM_SF(g_sTruckDataStruct.iCab)))
|
|
ENDIF
|
|
INT iTruckCabIDStrOffset = iStrOffset
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iSection1:"
|
|
str += g_sTruckDataStruct.iSection1
|
|
str += " "
|
|
str += GET_ARMORY_TRUCK_SECTION_TYPE_NAME(INT_TO_ENUM(ARMORY_TRUCK_SECTION_TYPE_ENUM, GET_TRUCK_SECTION_TYPE_FROM_SF(g_sTruckDataStruct.iSection1)))
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iSection2:"
|
|
str += g_sTruckDataStruct.iSection2
|
|
str += " "
|
|
str += GET_ARMORY_TRUCK_SECTION_TYPE_NAME(INT_TO_ENUM(ARMORY_TRUCK_SECTION_TYPE_ENUM, GET_TRUCK_SECTION_TYPE_FROM_SF(g_sTruckDataStruct.iSection2)))
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iSection3:"
|
|
str += g_sTruckDataStruct.iSection3
|
|
str += " "
|
|
str += GET_ARMORY_TRUCK_SECTION_TYPE_NAME(INT_TO_ENUM(ARMORY_TRUCK_SECTION_TYPE_ENUM, GET_TRUCK_SECTION_TYPE_FROM_SF(g_sTruckDataStruct.iSection3)))
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iColour:"
|
|
str += g_sTruckDataStruct.iColour
|
|
str += " "
|
|
str += GET_ARMORY_TRUCK_SECTION_TINT_NAME(INT_TO_ENUM(ARMORY_TRUCK_SECTION_TINT_ENUM, GET_TRUCK_SECTION_TINT_FROM_SF(g_sTruckDataStruct.iColour)))
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
//
|
|
iStrOffset = iTruckCabIDStrOffset
|
|
iColumn++
|
|
str = "iAvenger:"
|
|
str += g_sPlaneDataStruct.iAvenger
|
|
IF g_sPlaneDataStruct.iAvenger != -1
|
|
str += " "
|
|
str += GET_SAFE_DISPLAY_NAME_FROM_VEHICLE_MODEL(INT_TO_ENUM(MODEL_NAMES, g_sPlaneDataStruct.iAvenger))
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iInterior:"
|
|
str += g_sPlaneDataStruct.iInterior
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iGunTurret:"
|
|
str += g_sPlaneDataStruct.iGunTurret
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iVehShop:"
|
|
str += g_sPlaneDataStruct.iVehShop
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iWeaShop:"
|
|
str += g_sPlaneDataStruct.iWeaShop
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
//
|
|
iStrOffset = iTruckCabIDStrOffset
|
|
iColumn++
|
|
str = "iCab:"
|
|
str += g_sHackerTruckDataStruct.iCab
|
|
IF g_sHackerTruckDataStruct.iCab != -1
|
|
str += " "
|
|
str += GET_SAFE_DISPLAY_NAME_FROM_VEHICLE_MODEL(INT_TO_ENUM(MODEL_NAMES, g_sHackerTruckDataStruct.iCab))
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iTint:"
|
|
str += g_sHackerTruckDataStruct.iTint
|
|
str += " "
|
|
str += GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_TINT, GET_HACKER_TRUCK_TINT_FROM_SF(g_sHackerTruckDataStruct.iTint))
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iDecal:"
|
|
str += g_sHackerTruckDataStruct.iDecal
|
|
str += " "
|
|
str += GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_DECAL, GET_HACKER_TRUCK_DECAL_FROM_SF(g_sHackerTruckDataStruct.iDecal))
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iMissileLauncher:"
|
|
str += g_sHackerTruckDataStruct.iMissileLauncher
|
|
str += " "
|
|
str += GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_MISSILE_LAUNCHER, g_sHackerTruckDataStruct.iMissileLauncher)
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iDroneStation:"
|
|
str += g_sHackerTruckDataStruct.iDroneStation
|
|
str += " "
|
|
str += GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_DRONE_STATION, g_sHackerTruckDataStruct.iDroneStation)
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iWeaShop:"
|
|
str += g_sHackerTruckDataStruct.iWeaShop
|
|
str += " "
|
|
str += GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_WEAPON_STATION, g_sHackerTruckDataStruct.iWeaShop)
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iVehShop:"
|
|
str += g_sHackerTruckDataStruct.iVehShop
|
|
str += " "
|
|
str += GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_MOTORCYCLE_WORKSHOP, g_sHackerTruckDataStruct.iVehShop)
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(vColumnMult*TO_FLOAT(iColumn)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
ELIF eStaticCurrentSite = WWW_ARENAWAR_TV
|
|
|
|
//
|
|
iColumn = 0
|
|
TEXT_LABEL_31 tlModName = GET_ARENA_GARAGE_NAME_FROM_ID(INT_TO_ENUM(ARENA_GARAGE_ID, g_sArenaDataStruct.iArenaID))
|
|
str = "iArenaID:"
|
|
str += g_sArenaDataStruct.iArenaID
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_STYLE, g_sArenaDataStruct.iStyle)
|
|
str = "iStyle:"
|
|
str += g_sArenaDataStruct.iStyle
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_GRAPHICS, g_sArenaDataStruct.iGraphics)
|
|
str = "iGraphics:"
|
|
str += g_sArenaDataStruct.iGraphics
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_COLOUR, g_sArenaDataStruct.iColour)
|
|
str = "iColour:"
|
|
str += g_sArenaDataStruct.iColour
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_EXPANSION_FLOOR_0, g_sArenaDataStruct.iExpansionFloorB1)
|
|
str = "iExpansionFloorB1:"
|
|
str += g_sArenaDataStruct.iExpansionFloorB1
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_EXPANSION_FLOOR_1, g_sArenaDataStruct.iExpansionFloorB2)
|
|
str = "iExpansionFloorB2:"
|
|
str += g_sArenaDataStruct.iExpansionFloorB2
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_BENNY_MECHANIC, g_sArenaDataStruct.iBennyMechanic)
|
|
str = "iBennyMechanic:"
|
|
str += g_sArenaDataStruct.iBennyMechanic
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_WEAPON_MECHANIC, g_sArenaDataStruct.iWeaponMechanic)
|
|
str = "iWeaponMechanic:"
|
|
str += g_sArenaDataStruct.iWeaponMechanic
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_PERSONAL_QUARTERS, g_sArenaDataStruct.iPersonalQuarters)
|
|
str = "iPersonalQuarters:"
|
|
str += g_sArenaDataStruct.iPersonalQuarters
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
ELIF eStaticCurrentSite = WWW_THEDIAMONDCASINOANDRESORT_COM
|
|
|
|
//
|
|
iColumn = 0
|
|
TEXT_LABEL_31 tlModName = GET_CASINO_APT_NAME_FROM_ID(INT_TO_ENUM(CASINO_APT_ID, g_sCasinoDataStruct.iCasinoID))
|
|
str = "iCasinoID:"
|
|
str += g_sCasinoDataStruct.iCasinoID
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_COLOUR_OPTION, g_sCasinoDataStruct.iColourOption)
|
|
str = "iColourOption:"
|
|
str += g_sCasinoDataStruct.iColourOption
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_STYLE_OPTION, g_sCasinoDataStruct.iStyleOption)
|
|
str = "iStyleOption:"
|
|
str += g_sCasinoDataStruct.iStyleOption
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_LOUNGE, g_sCasinoDataStruct.iLounge)
|
|
str = "iLounge:"
|
|
str += g_sCasinoDataStruct.iLounge
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_BAR, g_sCasinoDataStruct.iBar)
|
|
str = "iBar:"
|
|
str += g_sCasinoDataStruct.iBar
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_DEALER, g_sCasinoDataStruct.iDealer)
|
|
str = "iDealer:"
|
|
str += g_sCasinoDataStruct.iDealer
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_BEDROOM, g_sCasinoDataStruct.iBedroom)
|
|
str = "iBedroom:"
|
|
str += g_sCasinoDataStruct.iBedroom
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_MEDIAROOM, g_sCasinoDataStruct.iMediaroom)
|
|
str = "iMediaroom:"
|
|
str += g_sCasinoDataStruct.iMediaroom
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_SPA, g_sCasinoDataStruct.iSpa)
|
|
str = "iSpa:"
|
|
str += g_sCasinoDataStruct.iSpa
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_OFFICE, g_sCasinoDataStruct.iOffice)
|
|
str = "iOffice:"
|
|
str += g_sCasinoDataStruct.iOffice
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
tlModName = GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_GARAGE, g_sCasinoDataStruct.iGarage)
|
|
str = "iGarage:"
|
|
str += g_sCasinoDataStruct.iGarage
|
|
IF DOES_TEXT_LABEL_EXIST(tlModName)
|
|
str += " \""
|
|
str += GET_STRING_FROM_TEXT_FILE(tlModName)
|
|
str += "\""
|
|
ELSE
|
|
str += " "
|
|
str += (tlModName)
|
|
ENDIF
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "iCasinoMembership:"
|
|
str += g_sCasinoDataStruct.iCasinoMembership
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "tl63Gamertag:\""
|
|
str += g_sCasinoDataStruct.tl63Gamertag
|
|
str += "\""
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
|
|
str = "tl23MugshotTexture:\""
|
|
str += g_sCasinoDataStruct.tl23MugshotTexture
|
|
str += "\""
|
|
GET_HUD_COLOUR(HUD_COLOUR_PURE_WHITE, iRed, iGreen, iBlue, iAlpha)
|
|
DRAW_DEBUG_TEXT_2D(str, vOffsetBase+(vOffsetMult*TO_FLOAT(iStrOffset))+(<<0.175,0.0,0>>*TO_FLOAT(iColumn-1)), iRed, iGreen, iBlue, iAlpha) iStrOffset++
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
ENDPROC
|
|
|
|
PROC PLAY_TACO_LINE(TACO_SITE_LINES tsl, structPedsForConversation &thisSpfc)
|
|
IF IS_SCRIPTED_CONVERSATION_ONGOING()
|
|
TEXT_LABEL_23 tl23 = GET_LAST_PASSED_STANDARD_CONVERSATION_ROOT()
|
|
CPRINTLN(DEBUG_INTERNET, "PLAY_TACO_LINE: Conversation already playing (\"", tl23, "\")")
|
|
EXIT
|
|
ENDIF
|
|
|
|
INT iGameTime = GET_GAME_TIMER()+2000
|
|
|
|
SWITCH tsl
|
|
CASE TSL_PACOW_TASTY
|
|
ADD_PED_FOR_DIALOGUE(thisSpfc,1,NULL,"PACO")
|
|
CPRINTLN(DEBUG_INTERNET, "PLAY_TACO_LINE: trying to create conversation - TSL_PACOW_TASTY")
|
|
WHILE NOT CREATE_CONVERSATION_USING_V_CONTENT_IN_DLC(thisSpfc, "PACOWAU", "PACOW_TASTY",
|
|
CONV_PRIORITY_AMBIENT_LOW, DISPLAY_SUBTITLES, DO_NOT_ADD_TO_BRIEF_SCREEN)
|
|
AND GET_GAME_TIMER() <= iGameTime
|
|
CDEBUG1LN(DEBUG_INTERNET, "PLAY_TACO_LINE: waiting for CREATE_CONVERSATION_USING_V_CONTENT_IN_DLC to return true [", iGameTime-GET_GAME_TIMER(), "ms, ", g_CurrentlyPlayingConvPriority, "]")
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
BREAK
|
|
CASE TSL_PACOW_COLON
|
|
ADD_PED_FOR_DIALOGUE(thisSpfc,1,NULL,"PACO")
|
|
CPRINTLN(DEBUG_INTERNET, "PLAY_TACO_LINE: trying to create conversation - TSL_PACOW_COLON")
|
|
WHILE NOT CREATE_CONVERSATION_USING_V_CONTENT_IN_DLC(thisSpfc, "PACOWAU", "PACOW_COLON",
|
|
CONV_PRIORITY_AMBIENT_LOW, DISPLAY_SUBTITLES, DO_NOT_ADD_TO_BRIEF_SCREEN)
|
|
AND GET_GAME_TIMER() <= iGameTime
|
|
CDEBUG1LN(DEBUG_INTERNET, "PLAY_TACO_LINE: waiting for CREATE_CONVERSATION_USING_V_CONTENT_IN_DLC to return true [", iGameTime-GET_GAME_TIMER(), "ms, ", g_CurrentlyPlayingConvPriority, "]")
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
BREAK
|
|
CASE TSL_PACOW_CSEC
|
|
ADD_PED_FOR_DIALOGUE(thisSpfc,1,NULL,"PACO")
|
|
CPRINTLN(DEBUG_INTERNET, "PLAY_TACO_LINE: trying to create conversation - TSL_PACOW_CSEC")
|
|
WHILE NOT CREATE_CONVERSATION_USING_V_CONTENT_IN_DLC(thisSpfc, "PACOWAU", "PACOW_CSEC",
|
|
CONV_PRIORITY_AMBIENT_LOW, DISPLAY_SUBTITLES, DO_NOT_ADD_TO_BRIEF_SCREEN)
|
|
AND GET_GAME_TIMER() <= iGameTime
|
|
CDEBUG1LN(DEBUG_INTERNET, "PLAY_TACO_LINE: waiting for CREATE_CONVERSATION_USING_V_CONTENT_IN_DLC to return true [", iGameTime-GET_GAME_TIMER(), "ms, ", g_CurrentlyPlayingConvPriority, "]")
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
BREAK
|
|
CASE TSL_PACOW_DOG
|
|
ADD_PED_FOR_DIALOGUE(thisSpfc,1,NULL,"PACO")
|
|
CPRINTLN(DEBUG_INTERNET, "PLAY_TACO_LINE: trying to create conversation - TSL_PACOW_DOG")
|
|
WHILE NOT CREATE_CONVERSATION_USING_V_CONTENT_IN_DLC(thisSpfc, "PACOWAU", "PACOW_DOG",
|
|
CONV_PRIORITY_AMBIENT_LOW, DISPLAY_SUBTITLES, DO_NOT_ADD_TO_BRIEF_SCREEN)
|
|
AND GET_GAME_TIMER() <= iGameTime
|
|
CDEBUG1LN(DEBUG_INTERNET, "PLAY_TACO_LINE: waiting for CREATE_CONVERSATION_USING_V_CONTENT_IN_DLC to return true [", iGameTime-GET_GAME_TIMER(), "ms, ", g_CurrentlyPlayingConvPriority, "]")
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
BREAK
|
|
CASE TSL_PACOW_VOMIT
|
|
ADD_PED_FOR_DIALOGUE(thisSpfc,1,NULL,"PACO")
|
|
CPRINTLN(DEBUG_INTERNET, "PLAY_TACO_LINE: trying to create conversation - TSL_PACOW_VOMIT")
|
|
WHILE NOT CREATE_CONVERSATION_USING_V_CONTENT_IN_DLC(thisSpfc, "PACOWAU", "PACOW_VOMIT",
|
|
CONV_PRIORITY_AMBIENT_LOW, DISPLAY_SUBTITLES, DO_NOT_ADD_TO_BRIEF_SCREEN)
|
|
AND GET_GAME_TIMER() <= iGameTime
|
|
CDEBUG1LN(DEBUG_INTERNET, "PLAY_TACO_LINE: waiting for CREATE_CONVERSATION_USING_V_CONTENT_IN_DLC to return true [", iGameTime-GET_GAME_TIMER(), "ms, ", g_CurrentlyPlayingConvPriority, "]")
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
BREAK
|
|
CASE TSL_PACOW_PAIN
|
|
ADD_PED_FOR_DIALOGUE(thisSpfc,1,NULL,"PACO")
|
|
CPRINTLN(DEBUG_INTERNET, "PLAY_TACO_LINE: trying to create conversation - TSL_PACOW_PAIN")
|
|
WHILE NOT CREATE_CONVERSATION_USING_V_CONTENT_IN_DLC(thisSpfc, "PACOWAU", "PACOW_PAIN",
|
|
CONV_PRIORITY_AMBIENT_LOW, DISPLAY_SUBTITLES, DO_NOT_ADD_TO_BRIEF_SCREEN)
|
|
AND GET_GAME_TIMER() <= iGameTime
|
|
CDEBUG1LN(DEBUG_INTERNET, "PLAY_TACO_LINE: waiting for CREATE_CONVERSATION_USING_V_CONTENT_IN_DLC to return true [", iGameTime-GET_GAME_TIMER(), "ms, ", g_CurrentlyPlayingConvPriority, "]")
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
BREAK
|
|
CASE TSL_PACOW_MELT
|
|
ADD_PED_FOR_DIALOGUE(thisSpfc,1,NULL,"PACO")
|
|
CPRINTLN(DEBUG_INTERNET, "PLAY_TACO_LINE: trying to create conversation - TSL_PACOW_MELT")
|
|
WHILE NOT CREATE_CONVERSATION_USING_V_CONTENT_IN_DLC(thisSpfc, "PACOWAU", "PACOW_MELT",
|
|
CONV_PRIORITY_AMBIENT_LOW, DISPLAY_SUBTITLES, DO_NOT_ADD_TO_BRIEF_SCREEN)
|
|
AND GET_GAME_TIMER() <= iGameTime
|
|
CDEBUG1LN(DEBUG_INTERNET, "PLAY_TACO_LINE: waiting for CREATE_CONVERSATION_USING_V_CONTENT_IN_DLC to return true [", iGameTime-GET_GAME_TIMER(), "ms, ", g_CurrentlyPlayingConvPriority, "]")
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
PROC DO_VEHICLE_PURCHASE_NOTIFICATION_FEED_MESSAGE(WEBSITE_INDEX_ENUM eSite, SITE_BUYABLE_VEHICLE sbv, STRING vehicleNameTag, BOOL bPegasus, BOOL bClubhouse, BOOL bMobileOperationsCenter, BOOL bSmugglerHangar, BOOL bDefuctBase, BOOL bNightclub, BOOL bHackerTruck, BOOL bArenaGarage, BOOL bCasinoGarage ,BOOL bSubmarine #IF FEATURE_TUNER, BOOL bAutoShop #ENDIF)
|
|
IF NETWORK_IS_GAME_IN_PROGRESS()
|
|
REQUEST_SYSTEM_ACTIVITY_TYPE_PURCHASED_VEHICLE()
|
|
|
|
TEXT_LABEL_31 txdict = "", fstr = ""
|
|
TEXT_LABEL_63 fYachtName = ""
|
|
|
|
BOOL bImportExportGarage = GET_SVM_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1
|
|
BOOL bGunrunningGarage = GET_WVM_VEHICLE_SLOT(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1
|
|
IF NOT bDefuctBase
|
|
IF GET_FDS_VEHICLE_SLOT(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1
|
|
bDefuctBase = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
IF bDefuctBase
|
|
bSmugglerHangar = FALSE
|
|
ENDIF
|
|
|
|
IF bPegasus
|
|
txdict = GET_FILENAME_FOR_AUDIO_CONVERSATION(g_sCharacterSheetAll[CHAR_PEGASUS_DELIVERY].picture)
|
|
fstr = "DELVIRLP" // Your ~a~ will be available from Pegasus shortly.
|
|
IF IS_STRING_NULL_OR_EMPTY(vehicleNameTag)
|
|
fstr = "DELVIRLB" // Your new vehicle will be available from Pegasus shortly.
|
|
ENDIF
|
|
ELSE
|
|
IF (sbv = BV_DLC_BIG_YACHT)
|
|
IF NOT bPreviousPegasus
|
|
IF SHOULD_PRIVATE_YACHTS_BE_ACTIVE()
|
|
fstr = "DELVIRLY" // Your new yacht ~a~ is now available.
|
|
ELSE
|
|
fstr = "DELVIRLYS" // Your new yacht ~a~ will soon be made available to you.
|
|
ENDIF
|
|
ELSE
|
|
fstr = "DELVIRLYR" // Your yacht ~a~ has now been redesigned.
|
|
ENDIF
|
|
fYachtName = GET_MP_LONG_STRING_CHARACTER_STAT(MP_STAT_YACHT_NAME, MP_STAT_YACHT_NAME2)
|
|
|
|
IF IS_STRING_NULL_OR_EMPTY(fYachtName)
|
|
fstr += "a"
|
|
ENDIF
|
|
ELIF (sbv = BV_DLC_BIG_TRUCK)
|
|
fYachtName = ""
|
|
IF NOT bPreviousPegasus
|
|
fstr = "DELVIRLT" // Your new Mobile Operations Center ~a~ is now available.
|
|
ELSE
|
|
fstr = "DELVIRLTR" // Your renovated Mobile Operations Center ~a~ is now available.
|
|
ENDIF
|
|
IF IS_STRING_NULL_OR_EMPTY(fYachtName)
|
|
fstr += "a"
|
|
ENDIF
|
|
ELIF (sbv = BV_DLC_BIG_PLANE)
|
|
fYachtName = ""
|
|
IF NOT bPreviousPegasus
|
|
fstr = "DELVIRLO" // Your new Osprey ~a~ is now available.
|
|
ELSE
|
|
fstr = "DELVIRLOR" // Your renovated Osprey ~a~ is now available.
|
|
ENDIF
|
|
IF IS_STRING_NULL_OR_EMPTY(fYachtName)
|
|
fstr += "a"
|
|
ENDIF
|
|
ELIF (sbv = BV_DLC_HACKER_TRUCK)
|
|
fYachtName = ""
|
|
IF NOT bPreviousPegasus
|
|
fstr = "DELVIRLH" // Your new Terrorbyte ~a~ is now available.
|
|
ELSE
|
|
fstr = "DELVIRLHR" // Your renovated Terrorbyte ~a~ is now available.
|
|
ENDIF
|
|
IF IS_STRING_NULL_OR_EMPTY(fYachtName)
|
|
fstr += "a"
|
|
ENDIF
|
|
#IF FEATURE_HEIST_ISLAND
|
|
ELIF (sbv = BV_IH_KOSATKA)
|
|
fYachtName = ""
|
|
IF NOT bPreviousPegasus
|
|
fstr = "DELSUBT" // Your new Submarine ~a~ is now available.
|
|
ELSE
|
|
fstr = "DELSUBTR" // Your renovated Submarine ~a~ is now available.
|
|
ENDIF
|
|
IF IS_STRING_NULL_OR_EMPTY(fYachtName)
|
|
fstr += "a"
|
|
ENDIF
|
|
#ENDIF
|
|
#IF FEATURE_COPS_N_CROOKS
|
|
ELIF sbv = BV_CNC_POLBATI
|
|
OR sbv = BV_CNC_POLBUFFALO
|
|
OR sbv = BV_CNC_POLGAUNTLET
|
|
OR sbv = BV_CNC_POLGRANGER
|
|
OR sbv = BV_CNC_POLICE5
|
|
OR sbv = BV_CNC_POLICE6
|
|
OR sbv = BV_CNC_POLICEB2
|
|
OR sbv = BV_CNC_POLICET2
|
|
OR sbv = BV_CNC_POLPANTO
|
|
OR sbv = BV_CNC_POLCARACARA
|
|
OR sbv = BV_CNC_POLRIATA
|
|
OR sbv = BV_CNC_POLGREENWOOD
|
|
|
|
|
|
IF NOT IS_BIT_SET(MPGlobalsAmbience.iFmNmhBitSet12, BI_FM_NMH12_CNC_POLICE_DISPATCH_JOBS_HELP)
|
|
SET_BIT(MPGlobalsAmbience.iFmNmhBitSet12, BI_FM_NMH12_CNC_POLICE_DISPATCH_JOBS_HELP)
|
|
PRINTLN("DO_VEHICLE_PURCHASE_NOTIFICATION_FEED_MESSAGE BI_FM_NMH12_CNC_POLICE_DISPATCH_JOBS_HELP TRUE")
|
|
ENDIF
|
|
|
|
fstr = "DELVIRL" // Your ~a~ will be delivered to your Garage shortly.
|
|
IF IS_STRING_NULL_OR_EMPTY(vehicleNameTag)
|
|
fstr = "DELVIRLG" // Your new vehicle will be delivered to your Garage shortly.
|
|
ENDIF
|
|
#ENDIF
|
|
ELSE
|
|
IF bClubhouse
|
|
fstr = "DELCIRL" // Your ~a~ will be delivered to your Clubhouse shortly.
|
|
IF IS_STRING_NULL_OR_EMPTY(vehicleNameTag)
|
|
fstr = "DELCIRLG" // Your new vehicle will be delivered to your Clubhouse shortly.
|
|
ENDIF
|
|
ELIF bImportExportGarage
|
|
fstr = "DELSIRL" // Your ~a~ will be delivered to your Import Export Garage shortly.
|
|
IF IS_STRING_NULL_OR_EMPTY(vehicleNameTag)
|
|
fstr = "DELSIRLG" // Your new vehicle will be delivered to your Import Export Garage shortly.
|
|
ENDIF
|
|
ELIF bGunrunningGarage
|
|
IF DOES_PLAYER_OWN_A_BUNKER(PLAYER_ID())
|
|
fstr = "DELWIRL" // Your ~a~ will be delivered to your Bunker shortly.
|
|
IF IS_STRING_NULL_OR_EMPTY(vehicleNameTag)
|
|
fstr = "DELWIRLG" // Your new vehicle will be delivered to your Bunker shortly.
|
|
ENDIF
|
|
ELSE
|
|
fstr = "DELPIRL" // Your ~a~ will be available from the Vehicle section of the Interaction Menu Menu shortly.
|
|
IF IS_STRING_NULL_OR_EMPTY(vehicleNameTag)
|
|
fstr = "DELPIRLG" // Your new vehicle will be available from the Vehicle section of the Interaction Menu Menu shortly.
|
|
ENDIF
|
|
ENDIF
|
|
ELIF bMobileOperationsCenter
|
|
fstr = "DELMIRL" // Your ~a~ will be delivered to your MOC shortly.
|
|
IF IS_STRING_NULL_OR_EMPTY(vehicleNameTag)
|
|
fstr = "DELMIRLG" // Your new vehicle will be delivered to your MOC shortly.
|
|
ENDIF
|
|
ELIF bSmugglerHangar
|
|
fstr = "DELHARL" // Your ~a~ will be delivered to the Hangar shortly.
|
|
IF IS_STRING_NULL_OR_EMPTY(vehicleNameTag)
|
|
fstr = "DELHARLG" // Your new vehicle will be delivered to the Hangar shortly.
|
|
ENDIF
|
|
ELIF bDefuctBase
|
|
fstr = "DELFIRL" // Your ~a~ will be delivered to your Facility shortly.
|
|
IF IS_STRING_NULL_OR_EMPTY(vehicleNameTag)
|
|
fstr = "DELFIRLG" // Your new vehicle will be delivered to your Facility shortly.
|
|
ENDIF
|
|
ELIF bNightclub
|
|
fstr = "DELNCRL" // Your ~a~ will be delivered to your Nightclub shortly.
|
|
IF IS_STRING_NULL_OR_EMPTY(vehicleNameTag)
|
|
fstr = "DELNCRLG" // Your new vehicle will be delivered to your Nightclub shortly.
|
|
ENDIF
|
|
ELIF bHackerTruck
|
|
fstr = "DELHTRL" // Your ~a~ will be delivered to your Terbyte shortly.
|
|
IF IS_STRING_NULL_OR_EMPTY(vehicleNameTag)
|
|
fstr = "DELHTRLG" // Your new vehicle will be delivered to your Terbyte shortly.
|
|
ENDIF
|
|
ELIF bArenaGarage
|
|
fstr = "DELARRL" // Your ~a~ will be delivered to your Nightclub shortly.
|
|
IF IS_STRING_NULL_OR_EMPTY(vehicleNameTag)
|
|
fstr = "DELARRLG" // Your new vehicle will be delivered to your Nightclub shortly.
|
|
ENDIF
|
|
ELIF bCasinoGarage
|
|
fstr = "DELCARL" // Your ~a~ will be delivered to your Casino Garage shortly.
|
|
IF IS_STRING_NULL_OR_EMPTY(vehicleNameTag)
|
|
fstr = "DELCARLG" // Your new vehicle will be delivered to your Casino Garage shortly.
|
|
ENDIF
|
|
ELIF bSubmarine
|
|
fstr = "DELSUB" // Your ~a~ will be delivered to your Submarine Moonpool shortly.
|
|
IF IS_STRING_NULL_OR_EMPTY(vehicleNameTag)
|
|
fstr = "DELSUBG" // Your new vehicle will be delivered to your Submarine Moonpool shortly.
|
|
ENDIF
|
|
#IF FEATURE_TUNER
|
|
ELIF bAutoShop
|
|
fstr = "DEL_AS" // Your ~a~ will be delivered to your Auto Shop shortly.
|
|
IF IS_STRING_NULL_OR_EMPTY(vehicleNameTag)
|
|
fstr = "DEL_ASG" // Your new vehicle will be delivered to your Auto Shop shortly.
|
|
ENDIF
|
|
#ENDIF
|
|
ELSE
|
|
fstr = "DELVIRL" // Your ~a~ will be delivered to your Garage shortly.
|
|
IF IS_STRING_NULL_OR_EMPTY(vehicleNameTag)
|
|
fstr = "DELVIRLG" // Your new vehicle will be delivered to your Garage shortly.
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
SWITCH eSite
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
txdict = "CHAR_CARSITE"
|
|
BREAK
|
|
CASE WWW_ELITASTRAVEL_COM
|
|
txdict = "CHAR_PLANESITE"
|
|
BREAK
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
txdict = "CHAR_MILSITE"
|
|
BREAK
|
|
CASE WWW_DOCKTEASE_COM
|
|
txdict = "CHAR_BOATSITE"
|
|
BREAK
|
|
CASE WWW_PANDMCYCLES_COM
|
|
txdict = "CHAR_BIKESITE"
|
|
BREAK
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
txdict = "CHAR_CARSITE2"
|
|
BREAK
|
|
CASE WWW_BENNYSORIGINALMOTORWORKS_COM
|
|
txdict = "CHAR_CARSITE3"
|
|
BREAK
|
|
CASE WWW_ARENAWAR_TV
|
|
txdict = "CHAR_CARSITE4"
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "DO_VEHICLE_PURCHASE_NOTIFICATION_FEED_MESSAGE: invalid eSite ", GET_WEBSITE_FROM_INDEX(eSite))
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
|
|
|
|
TEXT_LABEL_63 tl63 = ""
|
|
IF bPegasus tl63 += ", bPegasus" ENDIF
|
|
IF bClubhouse tl63 += ", bClubhouse" ENDIF
|
|
IF bImportExportGarage tl63 += ", bImportExportGarage" ENDIF
|
|
IF bGunrunningGarage tl63 += ", bGunrunningGarage" ENDIF
|
|
IF bMobileOperationsCenter tl63 += ", bMobileOperationsCenter" ENDIF
|
|
IF bSmugglerHangar tl63 += ", bSmugglerHangar" ENDIF
|
|
IF bDefuctBase tl63 += ", bDefuctBase" ENDIF
|
|
IF bNightclub tl63 += ", bNightclub" ENDIF
|
|
IF bArenaGarage tl63 += ", bArenaGarage" ENDIF
|
|
IF bCasinoGarage tl63 += ", bCasinoGarage" ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_VEHICLE_PURCHASE_NOTIFICATION_FEED_MESSAGE(", GET_WEBSITE_FROM_INDEX(eSite), ", \"", vehicleNameTag, "\"", tl63, "), fstr:\"", fstr, "\", txdict:\"", txdict, "\"" )
|
|
UNUSED_PARAMETER(tl63)
|
|
|
|
BEGIN_TEXT_COMMAND_THEFEED_POST(fstr)
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(vehicleNameTag)
|
|
AND NOT (sbv = BV_DLC_BIG_YACHT OR sbv = BV_DLC_BIG_TRUCK OR sbv = BV_DLC_BIG_PLANE
|
|
OR sbv = BV_DLC_HACKER_TRUCK #IF FEATURE_HEIST_ISLAND OR sbv = BV_IH_KOSATKA #ENDIF
|
|
)
|
|
ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL(vehicleNameTag)
|
|
ELIF NOT IS_STRING_NULL_OR_EMPTY(fYachtName)
|
|
AND (sbv = BV_DLC_BIG_YACHT OR sbv = BV_DLC_BIG_TRUCK OR sbv = BV_DLC_BIG_PLANE
|
|
OR sbv = BV_DLC_HACKER_TRUCK #IF FEATURE_HEIST_ISLAND OR sbv = BV_IH_KOSATKA #ENDIF
|
|
)
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(fYachtName)
|
|
ENDIF
|
|
END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT(txdict, txdict, FALSE, TEXT_ICON_BLANK, "DELPURCN")
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
|
|
PROC SEND_MP_VEHICLE_CONFIRMATION_TEXT(SITE_BUYABLE_VEHICLE veh, SITE_BUYABLE_VEHICLE_COLOURS col, WEBSITE_INDEX_ENUM siteID, INT iDisplaySlot, INT iSlot)
|
|
CPRINTLN(DEBUG_INTERNET, "SEND_MP_VEHICLE_CONFIRMATION_TEXT ", GET_LABEL_BUYABLE_VEHICLE(veh), ", ", GET_STRING_FROM_SITE_BUYABLE_VEHICLE_COLOURS(veh, col), ", ", GET_WEBSITE_FROM_INDEX(siteID), ", iDisplaySlot:", iDisplaySlot, ", iSlot:", iSlot)
|
|
|
|
enumCharacterList char
|
|
|
|
TEXT_LABEL_23 csitebase
|
|
TEXT_LABEL_63 vehname = GET_LABEL_BUYABLE_VEHICLE(veh)
|
|
|
|
//#1932819
|
|
IF veh = BV_MP_COQUETTE2_TOPLESS
|
|
vehname = GET_LABEL_BUYABLE_VEHICLE(BV_MP_COQUETTE2)
|
|
ENDIF
|
|
|
|
//STRING garagestring = "TXT_TO_GARAGE"
|
|
BOOL pegMode = FALSE
|
|
// Vehicle is too large to deliver to garage
|
|
IF GET_BIGASS_VEHICLE_INDICE_BIT_FROM_ENUM(veh, col) != -1
|
|
char = CHAR_PEGASUS_DELIVERY // B*1396526
|
|
//garagestring = "TXT_FROM_PEGASUS"
|
|
pegMode = TRUE
|
|
ENDIF
|
|
|
|
BOOL clubhouseMode = FALSE
|
|
IF DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY(iDisplaySlot, GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_CLUBHOUSE), PROPERTY_OWNED_SLOT_CLUBHOUSE)
|
|
clubhouseMode = TRUE
|
|
ENDIF
|
|
|
|
BOOL undergroundGarageMode = FALSE
|
|
IF DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY(iDisplaySlot, GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_IE_WAREHOUSE), PROPERTY_OWNED_SLOT_IE_WAREHOUSE)
|
|
undergroundGarageMode = TRUE
|
|
ENDIF
|
|
BOOL bOfficeGarage = FALSE
|
|
IF DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY(iDisplaySlot, GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1), PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1)
|
|
OR DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY(iDisplaySlot, GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2), PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2)
|
|
OR DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY(iDisplaySlot, GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3), PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3)
|
|
bOfficeGarage = TRUE
|
|
ENDIF
|
|
|
|
BOOL hangarMode = FALSE
|
|
IF DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY(iDisplaySlot, GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_HANGAR), PROPERTY_OWNED_SLOT_HANGAR)
|
|
hangarMode = TRUE
|
|
ENDIF
|
|
|
|
// #IF FEATURE_GANG_OPS
|
|
// BOOL defunctBaseMode = FALSE
|
|
// IF DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY(iDisplaySlot, GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_DEFUNCBASE), PROPERTY_OWNED_SLOT_DEFUNCBASE)
|
|
// defunctBaseMode = TRUE
|
|
// ENDIF
|
|
// #ENDIF
|
|
|
|
SWITCH siteID
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
char = CHAR_CARSITE
|
|
IF pegMode
|
|
char = CHAR_PEGASUS_DELIVERY
|
|
csitebase = "TXT_CAR_BASEPEG"
|
|
ELSE
|
|
csitebase = "TXT_CAR_GARN"
|
|
IF NOT IS_SBV_A_VEHICLE_WITH_LIVERIES(veh)
|
|
AND NOT IS_SBV_A_VEHICLE_WITH_ARMOUR_OPTION(veh)
|
|
AND veh != BV_BI_RATBIKE
|
|
TEXT_LABEL_23 csitetemp
|
|
csitetemp = ""
|
|
SWITCH col
|
|
CASE BCV_RED_COLOUR csitetemp = "TXT_CAR_GARN0" BREAK
|
|
CASE BCV_PINK_COLOUR csitetemp = "TXT_CAR_GARN1" BREAK
|
|
CASE BCV_YELLOW_COLOUR csitetemp = "TXT_CAR_GARN2" BREAK
|
|
CASE BCV_ORANGE_COLOUR csitetemp = "TXT_CAR_GARN3" BREAK
|
|
CASE BCV_GREEN_COLOUR csitetemp = "TXT_CAR_GARN4" BREAK
|
|
CASE BCV_BLUE_COLOUR csitetemp = "TXT_CAR_GARN5" BREAK
|
|
CASE BCV_BLACK_COLOUR csitetemp = "TXT_CAR_GARN6" BREAK
|
|
CASE BCV_WHITE_COLOUR csitetemp = "TXT_CAR_GARN7" BREAK
|
|
ENDSWITCH
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(csitetemp)
|
|
AND DOES_TEXT_LABEL_EXIST(csitetemp)
|
|
csitebase = csitetemp
|
|
ENDIF
|
|
ENDIF
|
|
IF bOfficeGarage
|
|
csitebase += "f"
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_ELITASTRAVEL_COM
|
|
char = CHAR_PLANESITE
|
|
IF pegMode
|
|
char = CHAR_PEGASUS_DELIVERY
|
|
csitebase = "TXT_CAR_BASEPEG"
|
|
ELIF hangarMode
|
|
csitebase = "TXT_VEH_BASEHA"
|
|
ELSE
|
|
csitebase = "TXT_CAR_GARN"
|
|
IF bOfficeGarage
|
|
csitebase += "f"
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
char = CHAR_MILSITE
|
|
IF pegMode
|
|
char = CHAR_PEGASUS_DELIVERY
|
|
csitebase = "TXT_CAR_BASEPEG"
|
|
ELIF undergroundGarageMode
|
|
csitebase = "TXT_VEH_BASEUG"
|
|
ELIF hangarMode
|
|
csitebase = "TXT_VEH_BASEHA"
|
|
ELSE
|
|
csitebase = "TXT_CAR_GARN"
|
|
IF bOfficeGarage
|
|
csitebase += "f"
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_DOCKTEASE_COM
|
|
char = CHAR_BOATSITE
|
|
IF pegMode
|
|
char = CHAR_PEGASUS_DELIVERY
|
|
csitebase = "TXT_CAR_BASEPEG"
|
|
ELSE
|
|
csitebase = "TXT_CAR_GARN"
|
|
IF bOfficeGarage
|
|
csitebase += "f"
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_PANDMCYCLES_COM
|
|
char = CHAR_BIKESITE_PAMC
|
|
IF pegMode
|
|
char = CHAR_PEGASUS_DELIVERY
|
|
csitebase = "TXT_CAR_BASEPEG"
|
|
ELSE
|
|
csitebase = "TXT_CAR_GARN"
|
|
IF bOfficeGarage
|
|
csitebase += "f"
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
char = CHAR_CARSITE_SSASA
|
|
IF pegMode
|
|
char = CHAR_PEGASUS_DELIVERY
|
|
csitebase = "TXT_CAR_BASEPEG"
|
|
ELIF clubhouseMode
|
|
csitebase = "TXT_VEH_BASECH"
|
|
ELSE
|
|
csitebase = "TXT_CAR_GARN"
|
|
IF NOT IS_SBV_A_VEHICLE_WITH_LIVERIES(veh)
|
|
AND NOT IS_SBV_A_VEHICLE_WITH_ARMOUR_OPTION(veh)
|
|
AND veh != BV_BI_RATBIKE
|
|
TEXT_LABEL_23 csitetemp
|
|
csitetemp = ""
|
|
SWITCH col
|
|
CASE BCV_RED_COLOUR csitetemp = "TXT_CAR_GARN0" BREAK
|
|
CASE BCV_PINK_COLOUR csitetemp = "TXT_CAR_GARN1" BREAK
|
|
CASE BCV_YELLOW_COLOUR csitetemp = "TXT_CAR_GARN2" BREAK
|
|
CASE BCV_ORANGE_COLOUR csitetemp = "TXT_CAR_GARN3" BREAK
|
|
CASE BCV_GREEN_COLOUR csitetemp = "TXT_CAR_GARN4" BREAK
|
|
CASE BCV_BLUE_COLOUR csitetemp = "TXT_CAR_GARN5" BREAK
|
|
CASE BCV_BLACK_COLOUR csitetemp = "TXT_CAR_GARN6" BREAK
|
|
CASE BCV_WHITE_COLOUR csitetemp = "TXT_CAR_GARN7" BREAK
|
|
ENDSWITCH
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(csitetemp)
|
|
AND DOES_TEXT_LABEL_EXIST(csitetemp)
|
|
csitebase = csitetemp
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bOfficeGarage
|
|
csitebase += "f"
|
|
ENDIF
|
|
|
|
#IF FEATURE_GEN9_EXCLUSIVE
|
|
IF col = BCV_COLOUR_39
|
|
csitebase = "TXT_CAR_GARN8f"
|
|
ENDIF
|
|
#ENDIF
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_BENNYSORIGINALMOTORWORKS_COM
|
|
char = CHAR_BENNYS_OMW
|
|
IF pegMode
|
|
char = CHAR_PEGASUS_DELIVERY
|
|
csitebase = "TXT_CAR_BASEPEG"
|
|
ELSE
|
|
csitebase = "TXT_CAR_GARN"
|
|
IF bOfficeGarage
|
|
csitebase += "f"
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_ARENAWAR_TV
|
|
char = CHAR_ARENA
|
|
IF pegMode
|
|
char = CHAR_PEGASUS_DELIVERY
|
|
csitebase = "TXT_CAR_BASEPEG"
|
|
ELSE
|
|
csitebase = "TXT_CAR_GARN"
|
|
IF bOfficeGarage
|
|
csitebase += "f"
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "SEND_MP_VEHICLE_CONFIRMATION_TEXT - invalid siteID parameter for switch statement")
|
|
BREAK
|
|
ENDSWITCH
|
|
// IF (veh = BV_GO_THRUSTER)
|
|
// char = CHAR_LESTER
|
|
// csitebase = "TXT_CAR_THRUST"
|
|
// ENDIF
|
|
|
|
IF GET_CURRENT_LANGUAGE() = LANGUAGE_RUSSIAN
|
|
OR GET_CURRENT_LANGUAGE() = LANGUAGE_JAPANESE
|
|
CPRINTLN(DEBUG_INTERNET, "SEND_MP_VEHICLE_CONFIRMATION_TEXT: \"", csitebase, "\":\"", GET_STRING_FROM_TEXT_FILE(csitebase), "\", \"", vehname, "\":\"", GET_STRING_FROM_TEXT_FILE(vehname), "\"")
|
|
|
|
IF pegMode
|
|
char = CHAR_PEGASUS_DELIVERY
|
|
csitebase = "TXT_VEH_BASEPEG"
|
|
ELSE
|
|
csitebase = "TXT_VEH_GARN"
|
|
ENDIF
|
|
vehname = ""
|
|
ENDIF
|
|
|
|
///#IF IS_DEBUG_BUILD
|
|
// CPRINTLN(DEBUG_INTERNET, "Sending two component text message for vehicle buy :",GET_PLAYER_NAME(GET_PLAYER_INDEX()),":",vehname,":")
|
|
//#ENDIF
|
|
|
|
//INT iTimeout = g_iBrowserTimer + 4000
|
|
IF GET_BIGASS_VEHICLE_INDICE_BIT_FROM_ENUM(veh, col) != -1
|
|
IF veh = BV_DLC_BIG_YACHT
|
|
DO_VEHICLE_PURCHASE_NOTIFICATION_FEED_MESSAGE(siteID,veh,vehname,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE #IF FEATURE_TUNER,FALSE #ENDIF)
|
|
|
|
SET_BIT(MPGlobalsAmbience.iFmNmhBitSet12, BI_FM_NMH12_YACHT_PURCHASED_THIS_BOOT)
|
|
|
|
IF NOT bPreviousPegasus
|
|
IF NOT g_sMPTunables.byacht_disable_captain_phone_contact
|
|
IF NOT IS_CONTACT_IN_PHONEBOOK(CHAR_YACHT_CAPTAIN, MULTIPLAYER_BOOK)
|
|
BOOL bDisplay = FALSE
|
|
INT iStatInt = GET_MP_INT_CHARACTER_STAT(MP_STAT_FM_NON_MS_HELP_TEXT8)
|
|
IF NOT IS_BIT_SET(iStatInt, BI_FM_NMH11_UNLOCKED_YACHT_CAPTAIN)
|
|
SET_BIT(iStatInt, BI_FM_NMH11_UNLOCKED_YACHT_CAPTAIN)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_FM_NON_MS_HELP_TEXT8, iStatInt)
|
|
bDisplay = TRUE
|
|
ENDIF
|
|
ADD_CONTACT_TO_PHONEBOOK(CHAR_YACHT_CAPTAIN, MULTIPLAYER_BOOK,bDisplay)
|
|
CPRINTLN(DEBUG_SHOPS, "SEND_MP_VEHICLE_CONFIRMATION_TEXT - [YACHT_CAPTAIN_CONTACT] MAINTAIN_ADD_YACHT_CAPTAIN_CONTACT - ADD_CONTACT_TO_PHONEBOOK(CHAR_YACHT_CAPTAIN, MULTIPLAYER_BOOK, ", bDisplay, ")")
|
|
ENDIF
|
|
|
|
IF GET_ENTITY_MODEL(PLAYER_PED_ID()) = MP_M_FREEMODE_01
|
|
csitebase = "TXT_YACHT_M"
|
|
ELSE
|
|
csitebase = "TXT_YACHT_F"
|
|
ENDIF
|
|
ADD_ITEM_TO_MP_VEHICLE_TEXT(CHAR_YACHT_CAPTAIN, csitebase, vehname, "", 3000)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "SEND_MP_VEHICLE_CONFIRMATION_TEXT - don't call for CHAR_YACHT_CAPTAIN, byacht_disable_captain_phone_contact:", GET_STRING_FROM_BOOL(g_sMPTunables.byacht_disable_captain_phone_contact))
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "SEND_MP_VEHICLE_CONFIRMATION_TEXT - don't call for CHAR_YACHT_CAPTAIN, bPreviousPegasus:", GET_STRING_FROM_BOOL(bPreviousPegasus))
|
|
ENDIF
|
|
ELIF veh = BV_DLC_BIG_TRUCK
|
|
DO_VEHICLE_PURCHASE_NOTIFICATION_FEED_MESSAGE(siteID,veh,vehname,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE #IF FEATURE_TUNER,FALSE #ENDIF)
|
|
CPRINTLN(DEBUG_INTERNET, "SEND_MP_VEHICLE_CONFIRMATION_TEXT - don't call for CHAR_YACHT_CAPTAIN, bPreviousPegasus:", GET_STRING_FROM_BOOL(bPreviousPegasus))
|
|
ELIF veh = BV_DLC_BIG_PLANE
|
|
DO_VEHICLE_PURCHASE_NOTIFICATION_FEED_MESSAGE(siteID,veh,vehname,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE #IF FEATURE_TUNER,FALSE #ENDIF)
|
|
CPRINTLN(DEBUG_INTERNET, "SEND_MP_VEHICLE_CONFIRMATION_TEXT - don't call for CHAR_YACHT_CAPTAIN, bPreviousPegasus:", GET_STRING_FROM_BOOL(bPreviousPegasus))
|
|
ELIF veh = BV_DLC_BALLISTIC_EQUIPMENT
|
|
CPRINTLN(DEBUG_INTERNET, "SEND_MP_VEHICLE_CONFIRMATION_TEXT - don't call for ballistic, bPreviousPegasus:", GET_STRING_FROM_BOOL(bPreviousPegasus))
|
|
ELIF veh = BV_GR_TRAILERSMALL2
|
|
DO_VEHICLE_PURCHASE_NOTIFICATION_FEED_MESSAGE(siteID,veh,vehname,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE #IF FEATURE_TUNER,FALSE #ENDIF)
|
|
CPRINTLN(DEBUG_INTERNET, "SEND_MP_VEHICLE_CONFIRMATION_TEXT - don't call for CHAR_YACHT_CAPTAIN, bPreviousPegasus:", GET_STRING_FROM_BOOL(bPreviousPegasus))
|
|
ELIF veh = BV_DLC_HACKER_TRUCK
|
|
DO_VEHICLE_PURCHASE_NOTIFICATION_FEED_MESSAGE(siteID,veh,vehname,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE #IF FEATURE_TUNER,FALSE #ENDIF)
|
|
CPRINTLN(DEBUG_INTERNET, "SEND_MP_VEHICLE_CONFIRMATION_TEXT - don't call for CHAR_YACHT_CAPTAIN, bPreviousPegasus:", GET_STRING_FROM_BOOL(bPreviousPegasus))
|
|
#IF FEATURE_HEIST_ISLAND
|
|
ELIF veh = BV_IH_KOSATKA
|
|
SET_BIT(MPGlobalsAmbience.iFmNmhBitSet12, BI_FM_NMH12_H4_BOUGHT_SUBMARINE)
|
|
|
|
#IF FEATURE_GEN9_EXCLUSIVE
|
|
RESUME_ISLAND_HEIST_UDS_ACTIVITY()
|
|
END_ISLAND_HEIST_UDS_ACTIVITY(UDS_ACTIVITY_END_REASON_ABANDONED)
|
|
#ENDIF
|
|
|
|
IF NOT IS_PLAYER_IN_SMPL_INT_SUBMARINE_THEY_OWN(PLAYER_ID())
|
|
DO_VEHICLE_PURCHASE_NOTIFICATION_FEED_MESSAGE(siteID,veh,vehname,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE #IF FEATURE_TUNER,FALSE #ENDIF)
|
|
CPRINTLN(DEBUG_INTERNET, "SEND_MP_VEHICLE_CONFIRMATION_TEXT - don't call for KOSATKA, bPreviousPegasus:", GET_STRING_FROM_BOOL(bPreviousPegasus))
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "SEND_MP_VEHICLE_CONFIRMATION_TEXT - no call or ticker notification for KOSATKA, bPreviousPegasus:", GET_STRING_FROM_BOOL(bPreviousPegasus))
|
|
ENDIF
|
|
#ENDIF
|
|
ELIF veh = BV_AW_RCBANDITO
|
|
CPRINTLN(DEBUG_INTERNET, "SEND_MP_VEHICLE_CONFIRMATION_TEXT - don't call for RC Bandito, bPreviousPegasus:", GET_STRING_FROM_BOOL(bPreviousPegasus))
|
|
ELSE
|
|
DO_VEHICLE_PURCHASE_NOTIFICATION_FEED_MESSAGE(siteID,veh,vehname,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE #IF FEATURE_TUNER,FALSE #ENDIF)
|
|
ADD_ITEM_TO_MP_VEHICLE_TEXT(char,csitebase,vehname,"",MP_VEHICLE_TEXT_DELAY_FOR_PURCHASED_VEHICLE)
|
|
ENDIF
|
|
ELSE
|
|
IF iSlot = -1
|
|
#IF IS_DEBUG_BUILD
|
|
CASSERTLN(DEBUG_INTERNET, "SEND_MP_VEHICLE_CONFIRMATION_TEXT player ordered a personal vehicle but no slot was set? See conor.")
|
|
#ENDIF
|
|
#IF FEATURE_CASINO_HEIST
|
|
ELIF veh = BV_CH_MINITANK
|
|
CPRINTLN(DEBUG_INTERNET, "SEND_MP_VEHICLE_CONFIRMATION_TEXT - don't call for RC Tank, bPreviousPegasus:", GET_STRING_FROM_BOOL(bPreviousPegasus))
|
|
#ENDIF
|
|
ELSE
|
|
STRING sGarageString = ""
|
|
INT iGarageSlot = iSlot
|
|
BOOL bClubhouse = FALSE, bMobileOperationsCenter = FALSE, bSmugglerHangar = FALSE, bDefuctBase = FALSE, bNightclub = FALSE, bHackerTruck = FALSE, bArenaGarage = FALSE, bCasinoGarage = FALSE
|
|
#IF FEATURE_HEIST_ISLAND
|
|
BOOL bSubmarine
|
|
#ENDIF
|
|
#IF FEATURE_TUNER
|
|
BOOL bAutoShop
|
|
#ENDIF
|
|
bClubhouse = DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY(iDisplaySlot, GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_CLUBHOUSE), PROPERTY_OWNED_SLOT_CLUBHOUSE)
|
|
IF (iDisplaySlot = DISPLAY_SLOT_START_ARMOURY_TRUCK)
|
|
sGarageString = "PIM_MTRUCK"
|
|
csitebase = "TXT_TRUCK_GAR"
|
|
///iGarageSlot = -1
|
|
bMobileOperationsCenter = TRUE
|
|
ENDIF
|
|
bSmugglerHangar = DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY(iDisplaySlot, GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_HANGAR), PROPERTY_OWNED_SLOT_HANGAR)
|
|
bDefuctBase = DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY(iDisplaySlot, GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_DEFUNCBASE), PROPERTY_OWNED_SLOT_DEFUNCBASE)
|
|
bNightclub = DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY(iDisplaySlot, GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_NIGHTCLUB), PROPERTY_OWNED_SLOT_NIGHTCLUB)
|
|
IF NOT bNightclub
|
|
IF DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY(iDisplaySlot, GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL1), PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL1)
|
|
OR DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY(iDisplaySlot, GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL2), PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL2)
|
|
OR DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY(iDisplaySlot, GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL3), PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL3)
|
|
bNightclub = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
IF NOT bNightclub
|
|
IF (iDisplaySlot = DISPLAY_SLOT_CLUBSPEEDO)
|
|
OR (iDisplaySlot = DISPLAY_SLOT_CLUBMULE)
|
|
OR (iDisplaySlot = DISPLAY_SLOT_CLUBPOUNDER)
|
|
bNightclub = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
IF (iDisplaySlot = DISPLAY_SLOT_TEROBYTE_OPP2)
|
|
// sGarageString = "PIM_MTRUCK"""
|
|
// csitebase = "TXT_TRUCK_GAR"""
|
|
///iGarageSlot = -1
|
|
bHackerTruck = TRUE
|
|
ENDIF
|
|
#IF FEATURE_HEIST_ISLAND
|
|
IF (iDisplaySlot = DISPLAY_SLOT_SUB_AQUA_CAR)
|
|
// sGarageString = "PIM_MTRUCK"""
|
|
// csitebase = "TXT_TRUCK_GAR"""
|
|
///iGarageSlot = -1
|
|
bSubmarine = TRUE
|
|
|
|
ENDIF
|
|
#ENDIF
|
|
IF DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY(iDisplaySlot, GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL1), PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL1)
|
|
OR DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY(iDisplaySlot, GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL2), PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL2)
|
|
OR DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY(iDisplaySlot, GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL3), PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL3)
|
|
bArenaGarage = TRUE
|
|
ENDIF
|
|
IF NOT bArenaGarage
|
|
IF (iDisplaySlot = DISPLAY_SLOT_CERBERUS)
|
|
OR (iDisplaySlot = DISPLAY_SLOT_CERBERUS2)
|
|
OR (iDisplaySlot = DISPLAY_SLOT_CERBERUS3)
|
|
OR (iDisplaySlot = DISPLAY_SLOT_RCCAR)
|
|
bArenaGarage = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
IF DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY(iDisplaySlot, GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_CASINO_GARAGE), PROPERTY_OWNED_SLOT_CASINO_GARAGE)
|
|
bCasinoGarage = TRUE
|
|
ENDIF
|
|
IF DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY(iDisplaySlot, GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_AUTOSHOP_PROPERTY), PROPERTY_OWNED_SLOT_AUTOSHOP_PROPERTY)
|
|
bAutoShop = TRUE
|
|
ENDIF
|
|
|
|
|
|
DO_VEHICLE_PURCHASE_NOTIFICATION_FEED_MESSAGE(siteID,veh,vehname,FALSE,bClubhouse, bMobileOperationsCenter, bSmugglerHangar, bDefuctBase, bNightclub, bHackerTruck, bArenaGarage, bCasinoGarage,bSubmarine #IF FEATURE_TUNER,bAutoShop #ENDIF)
|
|
ADD_ITEM_TO_MP_VEHICLE_TEXT(char,csitebase,vehname,sGarageString,MP_VEHICLE_TEXT_DELAY_FOR_PURCHASED_VEHICLE,MP_SAVE_VEH_TEXT_ACTION_GIVE_PERSONAL_VEHICLE,iGarageSlot)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Appinternet waiting for mp vehicle text message to send...")
|
|
///MOVED TO MAINTAIN_MP_VEHICLE_TEXT_MESSAGES
|
|
// WHILE (NOT Request_MP_Comms_Txtmsg_With_Components(char,
|
|
// csitebase,
|
|
// GET_PLAYER_NAME(GET_PLAYER_INDEX()),
|
|
// TRUE,
|
|
// NO_INT_SUBSTRING_COMPONENT_VALUE,
|
|
// (vehname),
|
|
// (garagestring),
|
|
// FALSE,
|
|
// ALL_MP_COMMS_MODIFIERS_CLEAR))
|
|
// AND (iTimeout > g_iBrowserTimer)
|
|
BROWSER_CURSOR_LOADING(FALSE)
|
|
IF IS_USING_CURSOR(FRONTEND_CONTROL)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_MOUSE_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_X ))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_Y ))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
fMouseWheelScrollSpeed = 0.0
|
|
ENDIF
|
|
RENDER_BROWSER(TRUE)
|
|
WAIT(0)
|
|
//ENDWHILE
|
|
ENDPROC
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
// Widget handles and setup
|
|
WIDGET_GROUP_ID DebugBrowserWidgets
|
|
BOOL DebugAttemptToForceWebsite = FALSE
|
|
BOOL DebugLudicrousMoney = FALSE//2147483647
|
|
INT DebugNagScreen = 0
|
|
|
|
BOOL bSetOwnedProperties = FALSE
|
|
|
|
BOOL bSaveVehicleLabels = FALSE
|
|
|
|
BOOL bDrawMysteriousPageValues = FALSE
|
|
|
|
///STRING DebugForceSiteTo = "WWW_EYEFIND_INFO"
|
|
TEXT_WIDGET_ID forceTo
|
|
|
|
INT iStoryCount[BAWSAQ_STORIES_PER_CATEGORY]
|
|
TEXT_WIDGET_ID storyHeader[BAWSAQ_STORIES_PER_CATEGORY], storyText[BAWSAQ_STORIES_PER_CATEGORY]
|
|
|
|
PROC DEBUG_DRAW_MYSTERIOUS_PAGE_VALUES()
|
|
IF bDrawMysteriousPageValues
|
|
OR GET_COMMANDLINE_PARAM_EXISTS("sc_DrawWebsiteMysteriousPageValues")
|
|
TEXT_LABEL_63 tlText
|
|
VECTOR vPos = <<0.1, 0.3, 0.0>>
|
|
VECTOR vOffset = << 0.0, 0.02, 0.0>>
|
|
|
|
SET_DEBUG_LINES_AND_SPHERES_DRAWING_ACTIVE(TRUE)
|
|
|
|
tlText = "*** WEBSITE PAGE VALUES ***"
|
|
DRAW_DEBUG_TEXT_2D(Get_String_From_TextLabel(tlText), vPos, 0, 255, 0)
|
|
vPos += vOffset
|
|
vPos += vOffset
|
|
|
|
tlText = "iStaticCurrentPage: "
|
|
tlText += GET_STRING_FROM_INT(iStaticCurrentPage)
|
|
DRAW_DEBUG_TEXT_2D(Get_String_From_TextLabel(tlText), vPos, 0, 255, 0)
|
|
vPos += vOffset
|
|
|
|
tlText = "g_iLastSelectedWebIndex: "
|
|
tlText += GET_STRING_FROM_INT(g_iLastSelectedWebIndex)
|
|
DRAW_DEBUG_TEXT_2D(Get_String_From_TextLabel(tlText), vPos, 0, 255, 0)
|
|
vPos += vOffset
|
|
|
|
tlText = "iStaticLastPage: "
|
|
tlText += GET_STRING_FROM_INT(iStaticLastPage)
|
|
DRAW_DEBUG_TEXT_2D(Get_String_From_TextLabel(tlText), vPos, 0, 255, 0)
|
|
vPos += vOffset
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC DEBUG_MAKE_BROWSER_WIDGETS()
|
|
|
|
IF DOES_WIDGET_GROUP_EXIST(DebugBrowserWidgets)
|
|
DELETE_WIDGET_GROUP(DebugBrowserWidgets)
|
|
ENDIF
|
|
|
|
DebugBrowserWidgets = START_WIDGET_GROUP("Web Browser Overrides")
|
|
|
|
ADD_WIDGET_BOOL("Draw Mysterious Page Values", bDrawMysteriousPageValues)
|
|
ADD_WIDGET_BOOL("Do force", DebugAttemptToForceWebsite)
|
|
|
|
forceTo = ADD_TEXT_WIDGET("Force site")
|
|
SET_CONTENTS_OF_TEXT_WIDGET(forceTo,"WWW_EYEFIND_INFO")
|
|
|
|
ADD_WIDGET_BOOL("Force Specific Eye Find News Story : ", bDebug_ForceSpecificEyeFindNewsStory)
|
|
ADD_WIDGET_INT_SLIDER("Set Forced Specific Eye Find News Story : ", iDebug_ForcedSpecificEyeFindNewsStory, 1, 10, 1)
|
|
|
|
ADD_WIDGET_BOOL("bBrowserTutorialSeen", g_savedGlobals.sFinanceData.bBrowserTutorialSeen)
|
|
|
|
ADD_WIDGET_BOOL("GEIF ME ALL THE MONEYS", DebugLudicrousMoney)
|
|
|
|
START_NEW_WIDGET_COMBO()
|
|
ADD_TO_WIDGET_COMBO("NSR_CASH")
|
|
ADD_TO_WIDGET_COMBO("NSR_DLC")
|
|
ADD_TO_WIDGET_COMBO("NSR_VOUCHER")
|
|
STOP_WIDGET_COMBO("TRIGGER NAG SCREEN", DebugNagScreen)
|
|
|
|
// ADD_WIDGET_INT_READ_ONLY("eStaticLastSite", eStaticLastSite)
|
|
// ADD_WIDGET_INT_READ_ONLY("eStaticCurrentSite", eStaticCurrentSite)
|
|
ADD_WIDGET_INT_READ_ONLY("iStaticLastPage", iStaticLastPage)
|
|
ADD_WIDGET_INT_READ_ONLY("iStaticCurrentPage", iStaticCurrentPage)
|
|
|
|
START_WIDGET_GROUP("Force Bawsaq News")
|
|
ADD_WIDGET_BOOL("g_bForceBawsaqNews", g_bForceBawsaqNews)
|
|
TEXT_LABEL str
|
|
INT iStory
|
|
REPEAT BAWSAQ_STORIES_PER_CATEGORY iStory
|
|
str = "iStoryCount["
|
|
str += iStory
|
|
str += "]"
|
|
ADD_WIDGET_INT_SLIDER(str, iStoryCount[iStory], 0, PRICE_TRIGGER_STACK_TOTAL, 1)
|
|
str = "storyHeader["
|
|
str += iStory
|
|
str += "]"
|
|
storyHeader[iStory] = ADD_TEXT_WIDGET(str) SET_CONTENTS_OF_TEXT_WIDGET(storyHeader[iStory], "null")
|
|
str = "storyText["
|
|
str += iStory
|
|
str += "]"
|
|
storyText[iStory] = ADD_TEXT_WIDGET(str) SET_CONTENTS_OF_TEXT_WIDGET(storyText[iStory], "null")
|
|
ENDREPEAT
|
|
STOP_WIDGET_GROUP()
|
|
|
|
START_WIDGET_GROUP("SF Eyefind advert indexes")
|
|
ADD_WIDGET_STRING("Large advert indexes")
|
|
ADD_WIDGET_INT_SLIDER("Large advert index 0", g_sMPTunables.iSF_EYEFIND_MP_LARGE_ADVERT_INDEX_0, -1, 14, 1)
|
|
ADD_WIDGET_INT_SLIDER("Large advert index 1", g_sMPTunables.iSF_EYEFIND_MP_LARGE_ADVERT_INDEX_1, -1, 14, 1)
|
|
ADD_WIDGET_INT_SLIDER("Large advert index 2", g_sMPTunables.iSF_EYEFIND_MP_LARGE_ADVERT_INDEX_2, -1, 14, 1)
|
|
ADD_WIDGET_STRING("Small advert indexes")
|
|
ADD_WIDGET_INT_SLIDER("Small advert index 0", g_sMPTunables.iSF_EYEFIND_MP_SMALL_ADVERT_INDEX_0, -1, 78, 1)
|
|
ADD_WIDGET_INT_SLIDER("Small advert index 1", g_sMPTunables.iSF_EYEFIND_MP_SMALL_ADVERT_INDEX_1, -1, 78, 1)
|
|
ADD_WIDGET_INT_SLIDER("Small advert index 2", g_sMPTunables.iSF_EYEFIND_MP_SMALL_ADVERT_INDEX_2, -1, 78, 1)
|
|
ADD_WIDGET_INT_SLIDER("Small advert index 3", g_sMPTunables.iSF_EYEFIND_MP_SMALL_ADVERT_INDEX_3, -1, 78, 1)
|
|
ADD_WIDGET_INT_SLIDER("Small advert index 4", g_sMPTunables.iSF_EYEFIND_MP_SMALL_ADVERT_INDEX_4, -1, 78, 1)
|
|
ADD_WIDGET_INT_SLIDER("Small advert index 5", g_sMPTunables.iSF_EYEFIND_MP_SMALL_ADVERT_INDEX_5, -1, 78, 1)
|
|
ADD_WIDGET_INT_SLIDER("Small advert index 6", g_sMPTunables.iSF_EYEFIND_MP_SMALL_ADVERT_INDEX_6, -1, 78, 1)
|
|
ADD_WIDGET_INT_SLIDER("Small advert index 7", g_sMPTunables.iSF_EYEFIND_MP_SMALL_ADVERT_INDEX_7, -1, 78, 1)
|
|
ADD_WIDGET_INT_SLIDER("Small advert index 8", g_sMPTunables.iSF_EYEFIND_MP_SMALL_ADVERT_INDEX_8, -1, 78, 1)
|
|
ADD_WIDGET_INT_SLIDER("Small advert index 9", g_sMPTunables.iSF_EYEFIND_MP_SMALL_ADVERT_INDEX_9, -1, 78, 1)
|
|
STOP_WIDGET_GROUP()
|
|
|
|
ADD_WIDGET_BOOL("Catalogue missing entries", b_debug_CatalogueMissingEntries)
|
|
|
|
START_WIDGET_GROUP("GET_OWNED_PROPERTY")
|
|
INT iSlot = GET_ACTIVE_CHARACTER_SLOT()
|
|
ADD_WIDGET_INT_SLIDER("PROPERTY_OWNED_SLOT_APT_1", g_MP_STAT_PROPERTY_HOUSE[iSlot], 0, MAX_MP_PROPERTIES, 1)
|
|
ADD_WIDGET_INT_SLIDER("PROPERTY_OWNED_SLOT_APT_2", g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_APT_2-1][iSlot], 0, MAX_MP_PROPERTIES, 1)
|
|
ADD_WIDGET_INT_SLIDER("PROPERTY_OWNED_SLOT_APT_3", g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_APT_3-1][iSlot], 0, MAX_MP_PROPERTIES, 1)
|
|
ADD_WIDGET_INT_SLIDER("PROPERTY_OWNED_SLOT_APT_4", g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_APT_4-1][iSlot], 0, MAX_MP_PROPERTIES, 1)
|
|
ADD_WIDGET_INT_SLIDER("PROPERTY_OWNED_SLOT_APT_5", g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_APT_5-1][iSlot], 0, MAX_MP_PROPERTIES, 1)
|
|
|
|
ADD_WIDGET_INT_SLIDER("PROPERTY_OWNED_SLOT_OFFICE_0", g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_OFFICE_0-1][iSlot], 0, MAX_MP_PROPERTIES, 1)
|
|
|
|
ADD_WIDGET_INT_SLIDER("PROPERTY_OWNED_SLOT_CLUBHOUSE", g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_CLUBHOUSE-1][iSlot], 0, MAX_MP_PROPERTIES, 1)
|
|
ADD_WIDGET_INT_SLIDER("PROPERTY_OWNED_SLOT_APT_6", g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_APT_6-1][iSlot], 0, MAX_MP_PROPERTIES, 1)
|
|
ADD_WIDGET_INT_SLIDER("PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1", g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1-1][iSlot], 0, MAX_MP_PROPERTIES, 1)
|
|
ADD_WIDGET_INT_SLIDER("PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2", g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2-1][iSlot], 0, MAX_MP_PROPERTIES, 1)
|
|
ADD_WIDGET_INT_SLIDER("PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3", g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3-1][iSlot], 0, MAX_MP_PROPERTIES, 1)
|
|
ADD_WIDGET_INT_SLIDER("PROPERTY_OWNED_SLOT_IE_WAREHOUSE", g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_IE_WAREHOUSE-1][iSlot], 0, MAX_MP_PROPERTIES, 1)
|
|
ADD_WIDGET_INT_SLIDER("PROPERTY_OWNED_SLOT_HANGAR", g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_HANGAR-1][iSlot], 0, MAX_MP_PROPERTIES, 1)
|
|
#IF FEATURE_SUMMER_2020
|
|
ADD_WIDGET_INT_SLIDER("PROPERTY_OWNED_SLOT_APT_7", g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_APT_7-1][iSlot], 0, MAX_MP_PROPERTIES, 1)
|
|
ADD_WIDGET_INT_SLIDER("PROPERTY_OWNED_SLOT_APT_8", g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_APT_8-1][iSlot], 0, MAX_MP_PROPERTIES, 1)
|
|
#ENDIF
|
|
#IF FEATURE_DLC_1_2022
|
|
ADD_WIDGET_INT_SLIDER("PROPERTY_OWNED_SLOT_APT_9", g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_APT_9-1][iSlot], 0, MAX_MP_PROPERTIES, 1)
|
|
ADD_WIDGET_INT_SLIDER("PROPERTY_OWNED_SLOT_APT_10", g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_APT_10-1][iSlot], 0, MAX_MP_PROPERTIES, 1)
|
|
#ENDIF
|
|
// ADD_WIDGET_INT_SLIDER("PROPERTY_OWNED_SLOT_XXXXXX", g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_XXXXXX-1][iSlot], 0, MAX_MP_PROPERTIES, 1)
|
|
|
|
ADD_WIDGET_BOOL("GET_OWNED_PROPERTY - save all", bSetOwnedProperties)
|
|
STOP_WIDGET_GROUP()
|
|
|
|
ADD_WIDGET_BOOL("Browser MBANKHELP seen", g_bBrowser_MBANKHELP_seen)
|
|
|
|
#IF FEATURE_CASINO_HEIST
|
|
ADD_WIDGET_BOOL("Browser ARCADEHELP seen", g_bBrowser_ARCADEHELP_seen)
|
|
#ENDIF
|
|
|
|
ADD_WIDGET_BOOL("bSaveVehicleLabels", bSaveVehicleLabels)
|
|
|
|
ADD_WIDGET_BOOL("Draw Debug Stuff", bDrawDebugStuff)
|
|
STOP_WIDGET_GROUP()
|
|
ENDPROC
|
|
#ENDIF
|
|
|
|
|
|
CONST_FLOAT SCRIPT_INVALID_SCALEFORM_PARAM -1.0
|
|
|
|
PROC CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_NORET(SCALEFORM_INDEX &thisMov,
|
|
STRING method,
|
|
FLOAT p1,
|
|
FLOAT p2 = SCRIPT_INVALID_SCALEFORM_PARAM,
|
|
FLOAT p3 = SCRIPT_INVALID_SCALEFORM_PARAM,
|
|
FLOAT p4 = SCRIPT_INVALID_SCALEFORM_PARAM,
|
|
FLOAT p5 = SCRIPT_INVALID_SCALEFORM_PARAM)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(thisMov,method)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(p1)
|
|
|
|
IF p2 != SCRIPT_INVALID_SCALEFORM_PARAM
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(p2)
|
|
ENDIF
|
|
IF p3 != SCRIPT_INVALID_SCALEFORM_PARAM
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(p3)
|
|
ENDIF
|
|
IF p4 != SCRIPT_INVALID_SCALEFORM_PARAM
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(p4)
|
|
ENDIF
|
|
IF p5 != SCRIPT_INVALID_SCALEFORM_PARAM
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(p5)
|
|
ENDIF
|
|
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
|
|
SCALEFORM_RETURN_INDEX fudp
|
|
INT fudret = 0
|
|
WEBSITE_INDEX_ENUM eSiteIDCheck = INVALID_WEBSITE_INDEX
|
|
INT iPageIDCheck = -1
|
|
INT iPageIDLast = -1
|
|
BOOL bDynamic = FALSE
|
|
BOOL bHasLoadedChildContent = FALSE
|
|
|
|
INT iBSTutorialProgress = 0
|
|
|
|
BOOL bSelectionHoldActionDetector = FALSE
|
|
BOOL bSelectionHoldActionPolarity = FALSE
|
|
INT iSelectionHoldActionRateTracker = 0
|
|
|
|
BOOL bLifeInvaderTutorialMode = FALSE
|
|
|
|
CONST_INT HOUSE_GPS_SITE_OFFSET 5
|
|
|
|
BOOL bClickDetector = FALSE // Flagged true when g_iLastSelectedWebIndex is set
|
|
|
|
BOOL bPrimedAveryGps
|
|
INT iStaticAveryPrevious = -1
|
|
INT iPgBack = 0
|
|
|
|
BOOL bColourPickingMode = FALSE
|
|
|
|
PROC DO_VEHICLE_SITE_FAIL_PAGE_REASON(VEHICLE_SITE_FAIL_REASON &reason)
|
|
|
|
//SlotID 1 = heading
|
|
//SlotID 2 = message text
|
|
SWITCH reason
|
|
|
|
CASE VSFR_INSUFFCIENT_RANK
|
|
CPRINTLN(DEBUG_INTERNET, "DO_VEHICLE_SITE_FAIL_PAGE_REASON: Web browser updating VSFR_INSUFFCIENT_RANK error text ")
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITALRIRANK")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITALRIRANK2")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BREAK
|
|
CASE VSFR_INSUFFCIENT_RANK_PENDING
|
|
CPRINTLN(DEBUG_INTERNET, "DO_VEHICLE_SITE_FAIL_PAGE_REASON: Web browser updating VSFR_INSUFFCIENT_RANK_PENDING error text ")
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITALRIRANK")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITALRIRANKC2")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BREAK
|
|
CASE VSFR_CANCELED
|
|
CPRINTLN(DEBUG_INTERNET, "DO_VEHICLE_SITE_FAIL_PAGE_REASON: Web browser updating VSFR_CANCELED error text ")
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITALRPURC")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITALVECBNE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BREAK
|
|
|
|
CASE VSFR_UNSET
|
|
//REDIRECT TO MAIN SITES
|
|
CPRINTLN(DEBUG_INTERNET, "DO_VEHICLE_SITE_FAIL_PAGE_REASON: Web browser updating VSFR_UNSET - redirect to main sites ")
|
|
BREAK
|
|
|
|
CASE VSFR_NO_STORAGE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_VEHICLE_SITE_FAIL_PAGE_REASON: Web browser updating VSFR_NO_STORAGE error text ")
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VHSITPURFH")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
|
|
SWITCH GET_CURRENT_PLAYER_PED_ENUM()
|
|
|
|
CASE CHAR_MICHAEL
|
|
SWITCH GET_VEHICLE_STORAGE_TYPE(lastVehicleFailVehicle)
|
|
CASE VST_HANGAR
|
|
IF GET_VEHICLE_GEN_SAVED_FLAG_STATE(VEHGEN_WEB_HANGAR_MICHAEL, VEHGEN_S_FLAG_AVAILABLE)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA_HANGAR")
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA")
|
|
ENDIF
|
|
BREAK
|
|
CASE VST_MARINA
|
|
IF GET_VEHICLE_GEN_SAVED_FLAG_STATE(VEHGEN_WEB_MARINA_MICHAEL, VEHGEN_S_FLAG_AVAILABLE)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA_MARINA")
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA")
|
|
ENDIF
|
|
BREAK
|
|
CASE VST_HELI
|
|
IF GET_VEHICLE_GEN_SAVED_FLAG_STATE(VEHGEN_WEB_HELIPAD_MICHAEL, VEHGEN_S_FLAG_AVAILABLE)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA_HELIPAD")
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA")
|
|
ENDIF
|
|
BREAK
|
|
DEFAULT
|
|
IF NOT GET_VEHICLE_GEN_SAVED_FLAG_STATE(VEHGEN_WEB_CAR_MICHAEL, VEHGEN_S_FLAG_AVAILABLE)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA_GARAGE")
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA")
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE CHAR_FRANKLIN
|
|
SWITCH GET_VEHICLE_STORAGE_TYPE(lastVehicleFailVehicle)
|
|
CASE VST_HANGAR
|
|
IF GET_VEHICLE_GEN_SAVED_FLAG_STATE(VEHGEN_WEB_HANGAR_FRANKLIN, VEHGEN_S_FLAG_AVAILABLE)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA_HANGAR")
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA")
|
|
ENDIF
|
|
BREAK
|
|
CASE VST_MARINA
|
|
IF GET_VEHICLE_GEN_SAVED_FLAG_STATE(VEHGEN_WEB_MARINA_FRANKLIN, VEHGEN_S_FLAG_AVAILABLE)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA_MARINA")
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA")
|
|
ENDIF
|
|
BREAK
|
|
CASE VST_HELI
|
|
IF GET_VEHICLE_GEN_SAVED_FLAG_STATE(VEHGEN_WEB_HELIPAD_FRANKLIN, VEHGEN_S_FLAG_AVAILABLE)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA_HELIPAD")
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA")
|
|
ENDIF
|
|
BREAK
|
|
DEFAULT
|
|
IF NOT GET_VEHICLE_GEN_SAVED_FLAG_STATE(VEHGEN_WEB_CAR_FRANKLIN, VEHGEN_S_FLAG_AVAILABLE)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA_GARAGE")
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA")
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE CHAR_TREVOR
|
|
SWITCH GET_VEHICLE_STORAGE_TYPE(lastVehicleFailVehicle)
|
|
CASE VST_HANGAR
|
|
IF GET_VEHICLE_GEN_SAVED_FLAG_STATE(VEHGEN_WEB_HANGAR_TREVOR, VEHGEN_S_FLAG_AVAILABLE)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA_HANGAR")
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA")
|
|
ENDIF
|
|
BREAK
|
|
CASE VST_MARINA
|
|
IF GET_VEHICLE_GEN_SAVED_FLAG_STATE(VEHGEN_WEB_MARINA_TREVOR, VEHGEN_S_FLAG_AVAILABLE)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA_MARINA")
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA")
|
|
ENDIF
|
|
BREAK
|
|
CASE VST_HELI
|
|
IF GET_VEHICLE_GEN_SAVED_FLAG_STATE(VEHGEN_WEB_HELIPAD_TREVOR_COUNTRY, VEHGEN_S_FLAG_AVAILABLE)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA_HELIPAD")
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA")
|
|
ENDIF
|
|
BREAK
|
|
DEFAULT
|
|
IF NOT GET_VEHICLE_GEN_SAVED_FLAG_STATE(VEHGEN_WEB_CAR_TREVOR, VEHGEN_S_FLAG_AVAILABLE)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA_GARAGE")
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA")
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
DEFAULT
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITNSTA")
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BREAK
|
|
CASE VSFR_NO_MONEY
|
|
CPRINTLN(DEBUG_INTERNET, "DO_VEHICLE_SITE_FAIL_PAGE_REASON: Vehicle site no money fail page, VSFR_NO_MONEY")
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VHSITPURFH")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITINSF")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BREAK
|
|
CASE VSFR_INVALID_CATEGORY
|
|
CPRINTLN(DEBUG_INTERNET, "DO_VEHICLE_SITE_FAIL_PAGE_REASON: Vehicle invalid catagory, VSFR_INVALID_CATEGORY")
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VHSITPURFH")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITCATINVAL")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BREAK
|
|
CASE VSFR_ALREADY_OWNED
|
|
CPRINTLN(DEBUG_INTERNET, "DO_VEHICLE_SITE_FAIL_PAGE_REASON: Vehicle already owned, VSFR_ALREADY_OWNED")
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VHSITPURFH")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
IF lastVehicleFailVehicle != BV_DLC_BALLISTIC_EQUIPMENT
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITALRDOW") //You have already unlocked this vehicle.
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("ISITALRDOW") //You have already unlocked this item.
|
|
ENDIF
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BREAK
|
|
CASE VSFR_NO_INV_SPACE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_VEHICLE_SITE_FAIL_PAGE_REASON: Vehicle no inv space, VSFR_NO_INV_SPACE")
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VHSITPURFH")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITALRDOR")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BREAK
|
|
CASE VSFR_BIGASS_NOT_UNLOCKED
|
|
CPRINTLN(DEBUG_INTERNET, "DO_VEHICLE_SITE_FAIL_PAGE_REASON: Bigass Vehicle not unlocked, VSFR_BIGASS_NOT_UNLOCKED")
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VHSITPURFH")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITALRDPEG")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BREAK
|
|
CASE VSFR_NOT_SAFE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_VEHICLE_SITE_FAIL_PAGE_REASON: Vehicle not safe, VSFR_NOT_SAFE")
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VHSITPURFH")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
IF lastVehicleFailVehicle != BV_DLC_BALLISTIC_EQUIPMENT
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VSITSAVTRB") //Sorry, you may not purchase a vehicle at this time. Please try again later.
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("ISITSAVTRB") //Sorry, you may not purchase an item at this time. Please try again later.
|
|
ENDIF
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "DO_VEHICLE_SITE_FAIL_PAGE_REASON: Unknown fail reason ", lastVehicleFailReason)
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"UPDATE_TEXT")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
reason = VSFR_UNSET
|
|
ENDPROC
|
|
|
|
PROC DO_VEHICLE_CONF_PAGE_TEXT(WEBSITE_INDEX_ENUM vsite)
|
|
WEBSITE_INDEX_ENUM site = vsite
|
|
site = site
|
|
|
|
//SlotID 1 = message text
|
|
//SlotID 2 = YES button text HUD_YES
|
|
//slotID 3 = NO button text HUD_NO
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VHSITUSURE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("CELL_270")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(3)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("CELL_271")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"UPDATE_TEXT")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
PROC DO_VEHICLE_FAIL_PAGE(WEBSITE_INDEX_ENUM siteID, VEHICLE_SITE_FAIL_REASON reason, SITE_BUYABLE_VEHICLE sbv, INT iPrice)
|
|
|
|
lastVehicleFailReason = reason
|
|
lastVehicleFailVehicle = sbv
|
|
|
|
IF reason = VSFR_NO_MONEY
|
|
IF g_bInMultiplayer
|
|
//AND (NOT NETWORK_IS_ACTIVITY_SESSION())//1596812
|
|
//AND IS_STORE_AVAILABLE_TO_USER()
|
|
MODEL_NAMES thisModel = GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)
|
|
TRIGGER_BROWSER_NAG_SCREEN(ENUM_TO_INT(thisModel), iPrice)
|
|
|
|
BROWSER_SET_CURSOR_STATE("BUSY")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
CALL_SCALEFORM_MOVIE_METHOD(mov,"UPDATE_TEXT")//1587282
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL_15 sReason = ""
|
|
SWITCH reason
|
|
CASE VSFR_UNSET sReason = "UNSET" BREAK
|
|
CASE VSFR_NO_STORAGE sReason = "NO_STORAGE" BREAK
|
|
CASE VSFR_NO_MONEY sReason = "NO_MONEY" BREAK
|
|
CASE VSFR_INVALID_CATEGORY sReason = "INVALID_CATEGOR" BREAK
|
|
CASE VSFR_ALREADY_OWNED sReason = "ALREADY_OWNED" BREAK
|
|
CASE VSFR_NO_INV_SPACE sReason = "NO_INV_SPACE" BREAK
|
|
CASE VSFR_BIGASS_NOT_UNLOCKED sReason = "BIGASS_NOT_UNLO" BREAK
|
|
CASE VSFR_INSUFFCIENT_RANK sReason = "INSUF_RANK" BREAK
|
|
CASE VSFR_INSUFFCIENT_RANK_PENDING sReason = "INSUF_RANK_PEND" BREAK
|
|
CASE VSFR_CANCELED sReason = "CANCELED" BREAK
|
|
CASE VSFR_NOT_SAFE sReason = "NOT_SAFE" BREAK
|
|
DEFAULT
|
|
sReason = "???_"
|
|
sReason += ENUM_TO_INT(reason)
|
|
BREAK
|
|
ENDSWITCH
|
|
#ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "DO_VEHICLE_FAIL_PAGE(\"", GET_WEBSITE_FROM_INDEX(siteID), "\", reason:VSFR_", sReason, ", veh:", GET_LABEL_BUYABLE_VEHICLE(sbv), " $", iPrice, ")")
|
|
|
|
SWITCH siteID
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET GO_TO_WEBSITE("WWW_LEGENDARYMOTORSPORT_NET_S_PURCHASE_D_ERROR") BREAK
|
|
CASE WWW_ELITASTRAVEL_COM GO_TO_WEBSITE("WWW_ELITASTRAVEL_COM_S_PURCHASE_D_ERROR") BREAK
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
IF (sbv = BV_DLC_BIG_TRUCK)
|
|
GO_TO_WEBSITE("WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM_S_TRUCK_D_PURCHASE_FAIL")
|
|
ELIF (sbv = BV_DLC_BIG_PLANE)
|
|
GO_TO_WEBSITE("WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM_S_AVENGER_D_BUY_D_FAIL")
|
|
ELIF (sbv = BV_DLC_HACKER_TRUCK)
|
|
GO_TO_WEBSITE("WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM_S_HACKERTRUCK_D_NOSALE")
|
|
#IF FEATURE_HEIST_ISLAND
|
|
ELIF (sbv = BV_IH_KOSATKA)
|
|
GO_TO_WEBSITE("WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM_S_SUB_D_PURCHASE_FAIL")
|
|
#ENDIF
|
|
ELSE
|
|
GO_TO_WEBSITE("WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM_S_PURCHASE_D_ERROR")
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_DOCKTEASE_COM
|
|
IF (sbv = BV_DLC_BIG_YACHT)
|
|
GO_TO_WEBSITE("WWW_DOCKTEASE_COM_S_YACHT_D_PURCHASE_FAILED")
|
|
ELSE
|
|
GO_TO_WEBSITE("WWW_DOCKTEASE_COM_S_PURCHASE_D_ERROR")
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_PANDMCYCLES_COM GO_TO_WEBSITE("WWW_PANDMCYCLES_COM_S_PURCHASE_D_ERROR") BREAK
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM GO_TO_WEBSITE("WWW_SOUTHERNSANANDREASSUPERAUTOS_COM_S_PURCHASE_D_ERROR") BREAK
|
|
CASE WWW_BENNYSORIGINALMOTORWORKS_COM GO_TO_WEBSITE("WWW_BENNYSORIGINALMOTORWORKS_COM_S_PURCHASE_D_ERROR") BREAK
|
|
CASE WWW_ARENAWAR_TV GO_TO_WEBSITE("WWW_ARENAWAR_TV_S_PURCHASE_D_FAILED") BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "MISSING VEHICLE SITE FAIL PAGE")
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
IF sbv = BV_DLC_BIG_TRUCK
|
|
SETUP_TRUCK_GLOBALS_FROM_STATS()
|
|
ENDIF
|
|
IF sbv = BV_DLC_BIG_PLANE
|
|
SETUP_PLANE_GLOBALS_FROM_STATS()
|
|
ENDIF
|
|
IF sbv = BV_DLC_HACKER_TRUCK
|
|
SETUP_HACKER_TRUCK_GLOBALS_FROM_STATS()
|
|
ENDIF
|
|
#IF FEATURE_HEIST_ISLAND
|
|
IF sbv = BV_IH_KOSATKA
|
|
SETUP_KOSATKA_GLOBALS_FROM_STATS()
|
|
ENDIF
|
|
#ENDIF
|
|
ENDPROC
|
|
|
|
FUNC STRING GET_VEHICLE_PURCHASE_SUCCESS_PAGE(WEBSITE_INDEX_ENUM siteID, SITE_BUYABLE_VEHICLE sbv)
|
|
SWITCH siteID
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET RETURN "WWW_LEGENDARYMOTORSPORT_NET_S_PURCHASE_D_SUCCESS" BREAK
|
|
CASE WWW_ELITASTRAVEL_COM RETURN "WWW_ELITASTRAVEL_COM_S_PURCHASE_D_SUCCESS" BREAK
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
IF (sbv = BV_DLC_BIG_TRUCK)
|
|
RETURN "WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM_S_TRUCK_D_PURCHASE_OK"
|
|
ELIF (sbv = BV_DLC_BIG_PLANE)
|
|
RETURN "WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM_S_AVENGER_D_BUY_D_OK"
|
|
ELIF (sbv = BV_DLC_HACKER_TRUCK)
|
|
RETURN "WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM_S_HACKERTRUCK_D_SOLD"
|
|
#IF FEATURE_HEIST_ISLAND
|
|
ELIF (sbv = BV_IH_KOSATKA)
|
|
RETURN "WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM_S_SUB_D_PURCHASE_OK"
|
|
#ENDIF
|
|
ELSE
|
|
RETURN "WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM_S_PURCHASE_D_SUCCESS"
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_DOCKTEASE_COM
|
|
IF (sbv = BV_DLC_BIG_YACHT)
|
|
RETURN "WWW_DOCKTEASE_COM_S_YACHT_D_PURCHASE_SUCCESS"
|
|
ELSE
|
|
RETURN "WWW_DOCKTEASE_COM_S_PURCHASE_D_SUCCESS"
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_PANDMCYCLES_COM RETURN "WWW_PANDMCYCLES_COM_S_PURCHASE_D_SUCCESS" BREAK
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM RETURN "WWW_SOUTHERNSANANDREASSUPERAUTOS_COM_S_PURCHASE_D_SUCCESS" BREAK
|
|
CASE WWW_BENNYSORIGINALMOTORWORKS_COM RETURN "WWW_BENNYSORIGINALMOTORWORKS_COM_S_PURCHASE_D_SUCCESS" BREAK
|
|
CASE WWW_ARENAWAR_TV RETURN "WWW_ARENAWAR_TV_S_VEHICLE_D_PURCHASED" BREAK
|
|
ENDSWITCH
|
|
|
|
CASSERTLN(DEBUG_INTERNET, "MISSING VEHICLE SITE SUCCESS PAGE")
|
|
RETURN ""
|
|
ENDFUNC
|
|
|
|
|
|
|
|
SITE_BUYABLE_VEHICLE confSbv
|
|
INT confMpSlotIndex = -1, confMPDisplayIndex = -1
|
|
BOOL confCheck = FALSE
|
|
|
|
INT iLastPurchasedVehicleSlot
|
|
|
|
GENERIC_TRANSACTION_STATE eChipsTransactionState = TRANSACTION_STATE_DEFAULT
|
|
|
|
INT iYachtModPrice = 0
|
|
INT iYachtFlagPrice = 0
|
|
INT iYachtColourPrice = 0
|
|
INT iYachtLightingPrice = 0
|
|
INT iYachtFixturePrice = 0
|
|
INT iYachtNamePrice = 0
|
|
STRUCT OFFICE_PRICE_STRUCT
|
|
INT iStylePrice = 0
|
|
INT iPersonnelPrice = 0
|
|
INT iNamePrice = 0
|
|
INT iFontPrice = 0
|
|
INT iColourPrice = 0
|
|
INT iGunLockerPrice = 0
|
|
INT iVaultPrice = 0
|
|
INT iAccommodationPrice = 0
|
|
INT iGarage1StylePrice = 0
|
|
INT iGarage1LightingPrice = 0
|
|
INT iGarage1NumberPrice = 0
|
|
INT iGarage2StylePrice = 0
|
|
INT iGarage2LightingPrice = 0
|
|
INT iGarage2NumberPrice = 0
|
|
INT iGarage3StylePrice = 0
|
|
INT iGarage3LightingPrice = 0
|
|
INT iGarage3NumberPrice = 0
|
|
INT iModshopPrice = 0
|
|
ENDSTRUCT
|
|
OFFICE_PRICE_STRUCT sOffice_price_struct
|
|
STRUCT CLUBHOUSE_PRICE_STRUCT
|
|
INT iWallPrice = 0
|
|
INT iHangingPrice = 0
|
|
INT iFurniturePrice = 0
|
|
INT iStylePrice = 0
|
|
INT iNamePrice = 0
|
|
INT iFontPrice = 0
|
|
INT iFontColourPrice = 0
|
|
INT iHideSignagePrice = 0
|
|
INT iEmblemPrice = 0
|
|
INT iGunLockerPrice = 0
|
|
INT iGaragePrice = 0
|
|
ENDSTRUCT
|
|
CLUBHOUSE_PRICE_STRUCT sClubhouse_price_struct
|
|
STRUCT BUNKER_PRICE_STRUCT
|
|
INT iDecorPrice = 0
|
|
INT iAccommodationPrice = 0
|
|
INT iFiringRangePrice = 0
|
|
INT iGunLockerPrice = 0
|
|
INT iTransportationPrice = 0
|
|
ENDSTRUCT
|
|
BUNKER_PRICE_STRUCT sBunker_price_struct
|
|
TRUCK_PRICE_STRUCT sTruck_price_struct
|
|
STRUCT HANGAR_PRICE_STRUCT
|
|
INT iFlooringPrice = 0
|
|
INT iAccommodationPrice = 0
|
|
INT iFurniturePrice = 0
|
|
INT iModshopPrice = 0
|
|
INT iColourPrice = 0
|
|
INT iLightingPrice = 0
|
|
ENDSTRUCT
|
|
HANGAR_PRICE_STRUCT sHangar_price_struct
|
|
STRUCT DEFUNCT_BASE_PRICE_STRUCT
|
|
INT iStylePrice = 0
|
|
INT iGraphicsPrice = 0
|
|
INT iOrbitalWeaponPrice = 0
|
|
INT iPersonalQuartersPrice = 0
|
|
INT iSecurityRoomPrice = 0
|
|
INT iLoungePrice = 0
|
|
INT iPrivicyGlassPrice = 0
|
|
ENDSTRUCT
|
|
DEFUNCT_BASE_PRICE_STRUCT sDefunct_base_price_struct
|
|
PLANE_PRICE_STRUCT sPlane_price_struct
|
|
NIGHTCLUB_PRICE_STRUCT sNightclub_price_struct
|
|
HACKER_TRUCK_PRICE_STRUCT sHacker_truck_price_struct
|
|
ARENA_GARAGE_PRICE_STRUCT sArena_garage_price_struct
|
|
CASINO_APT_PRICE_STRUCT sCasino_apt_price_struct
|
|
ARCADE_PRICE_STRUCT sArcade_price_struct
|
|
KOSATKA_PRICE_STRUCT sKosatka_price_struct
|
|
AUTO_SHOP_PRICE_STRUCT sAutoShop_price_struct
|
|
|
|
#IF FEATURE_FIXER
|
|
FIXER_HQ_PRICE_STRUCT sFixerHQ_price_struct
|
|
#ENDIF
|
|
|
|
FUNC BOOL DOES_ITEM_MATCH_SELLING_ITEM(INT iItemId, INT iSellingItemId)
|
|
IF iItemId = iSellingItemId
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
IF IS_CATALOG_ITEM_AN_OFFICE_PROPERTY_ITEM(iItemId)
|
|
IF (iItemId = HASH("PR_MP_PROP_OFF2_t0_v0") AND iSellingItemId = HASH("PR_MP_PROP_OFF2_t0_v0_CESP"))
|
|
OR (iItemId = HASH("PR_MP_PROP_OFF2_t0_v0_CESP") AND iSellingItemId = HASH("PR_MP_PROP_OFF2_t0_v0"))
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELIF IS_CATALOG_ITEM_AN_OFFICE_GARAGE_PROPERTY_ITEM(iItemId)
|
|
ELIF IS_CATALOG_ITEM_A_CLUBHOUSE_PROPERTY_ITEM(iItemId)
|
|
IF (iItemId = HASH("PR_MP_PROP_CLUBH4_t0_v0") AND iSellingItemId = HASH("PR_MP_PROP_CLUBH4_t0_v0_CESP"))
|
|
OR (iItemId = HASH("PR_MP_PROP_CLUBH4_t0_v0_CESP") AND iSellingItemId = HASH("PR_MP_PROP_CLUBH4_t0_v0"))
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELIF IS_CATALOG_ITEM_A_BUNKER_ITEM(iItemID)
|
|
IF (iItemId = HASH("FACTORY_INDEX_28_t0_v0") AND iSellingItemId = HASH("FACTORY_INDEX_28_t0_v0_CESP"))
|
|
OR (iItemId = HASH("FACTORY_INDEX_28_t0_v0_CESP") AND iSellingItemId = HASH("FACTORY_INDEX_28_t0_v0"))
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF (iItemId = HASH("PR_MP_PROP_18_t0_v0") AND iSellingItemId = HASH("PR_MP_PROP_18_t0_v0_CESP"))
|
|
OR (iItemId = HASH("PR_MP_PROP_18_t0_v0_CESP") AND iSellingItemId = HASH("PR_MP_PROP_18_t0_v0"))
|
|
RETURN TRUE
|
|
ENDIF
|
|
IF (iItemId = HASH("PR_MP_PROP_62_t0_v0") AND iSellingItemId = HASH("PR_MP_PROP_62_t0_v0_CESP"))
|
|
OR (iItemId = HASH("PR_MP_PROP_62_t0_v0_CESP") AND iSellingItemId = HASH("PR_MP_PROP_62_t0_v0"))
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF (g_iPotentialFixForMatchingPropertySellingId != 0)
|
|
AND (g_iPotentialFixForMatchingPropertySellingId_CESP != 0)
|
|
IF (iItemId = g_iPotentialFixForMatchingPropertySellingId AND iSellingItemId = g_iPotentialFixForMatchingPropertySellingId_CESP)
|
|
OR (iItemId = g_iPotentialFixForMatchingPropertySellingId_CESP AND iSellingItemId = g_iPotentialFixForMatchingPropertySellingId)
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL PROCESSING_INTERNET_SHOPPING_BASKET(INT &iProcessSuccess, INT iPrice, INT iStatValue,
|
|
SHOP_ITEM_CATEGORIES eCategory, ITEM_ACTION_TYPES eAction,
|
|
INT iItemId, INT iInventoryKey, INT iDoCouponHash,
|
|
INT iSellingPrice = 0, INT iSellingItemId = 0, VEHICLE_INDEX tempVehID = NULL, INT iItemInteriorID = -1, INT iInventoryInteriorID = -1)
|
|
IF bProcessingBasket
|
|
IF NOT DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket transaction failed - terminate loop!")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF NOT NET_GAMESERVER_IS_SESSION_VALID(GET_ACTIVE_CHARACTER_SLOT())
|
|
OR NET_GAMESERVER_IS_SESSION_REFRESH_PENDING()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket transaction failed - session pending!")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
SWITCH iProcessingBasketStage
|
|
// Add item to basket
|
|
CASE SHOP_BASKET_STAGE_ADD
|
|
INT iCouponPrice
|
|
iCouponPrice = iPrice
|
|
BOOL bCouponPriceZero
|
|
IF IS_CATALOG_ITEM_AN_OFFICE_PROPERTY_ITEM(iItemId)
|
|
iCouponPrice += (sOffice_price_struct.iStylePrice+sOffice_price_struct.iPersonnelPrice+sOffice_price_struct.iNamePrice+sOffice_price_struct.iFontPrice+sOffice_price_struct.iColourPrice+sOffice_price_struct.iGunLockerPrice+sOffice_price_struct.iVaultPrice+sOffice_price_struct.iAccommodationPrice+sOffice_price_struct.iModshopPrice)
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Office: $", iCouponPrice)
|
|
ELIF IS_CATALOG_ITEM_A_CLUBHOUSE_PROPERTY_ITEM(iItemId)
|
|
iCouponPrice += (sClubhouse_price_struct.iWallPrice+sClubhouse_price_struct.iHangingPrice+sClubhouse_price_struct.iFurniturePrice+sClubhouse_price_struct.iStylePrice+sClubhouse_price_struct.iNamePrice+sClubhouse_price_struct.iFontPrice+sClubhouse_price_struct.iFontColourPrice+sClubhouse_price_struct.iHideSignagePrice+sClubhouse_price_struct.iEmblemPrice+sClubhouse_price_struct.iGunLockerPrice+sClubhouse_price_struct.iGaragePrice)
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Clubhouse: $", iCouponPrice)
|
|
ELIF IS_CATALOG_ITEM_AN_OFFICE_GARAGE_PROPERTY_ITEM(iItemId)
|
|
IF (GET_OFFICE_GARAGE_ITEM_FROM_CATALOG_ITEM(iItemID) = PROPERTY_OFFICE_1_GARAGE_LVL1)
|
|
iCouponPrice += (sOffice_price_struct.iGarage1StylePrice+sOffice_price_struct.iGarage1LightingPrice+sOffice_price_struct.iGarage1NumberPrice)
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Garage Lvl1: $", iCouponPrice)
|
|
ELIF (GET_OFFICE_GARAGE_ITEM_FROM_CATALOG_ITEM(iItemID) = PROPERTY_OFFICE_1_GARAGE_LVL2)
|
|
iCouponPrice += (sOffice_price_struct.iGarage2StylePrice+sOffice_price_struct.iGarage2LightingPrice+sOffice_price_struct.iGarage2NumberPrice)
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Garage Lvl2: $", iCouponPrice)
|
|
ELIF (GET_OFFICE_GARAGE_ITEM_FROM_CATALOG_ITEM(iItemID) = PROPERTY_OFFICE_1_GARAGE_LVL3)
|
|
iCouponPrice += (sOffice_price_struct.iGarage3StylePrice+sOffice_price_struct.iGarage3LightingPrice+sOffice_price_struct.iGarage3NumberPrice)
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Garage Lvl3: $", iCouponPrice)
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Garage Lvl Unknown: $", iCouponPrice)
|
|
ENDIF
|
|
ELIF IS_CATALOG_ITEM_A_TRUCK_ITEM(iItemId)
|
|
iCouponPrice = (sTruck_price_struct.iCabPrice+sTruck_price_struct.iSection1Price+sTruck_price_struct.iSection2Price+sTruck_price_struct.iSection3Price+sTruck_price_struct.iColourPrice)
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Truck: $", iCouponPrice,
|
|
" (iCabPrice:$", sTruck_price_struct.iCabPrice,
|
|
"+iSection1Price:$", sTruck_price_struct.iSection1Price,
|
|
"+iSection2Price:$", sTruck_price_struct.iSection2Price,
|
|
"+iSection3Price:$", sTruck_price_struct.iSection3Price,
|
|
"+iColourPrice:$", sTruck_price_struct.iColourPrice, ")")
|
|
ELIF IS_CATALOG_ITEM_A_BUNKER_ITEM(iItemId)
|
|
iCouponPrice += (sBunker_price_struct.iDecorPrice+sBunker_price_struct.iAccommodationPrice+sBunker_price_struct.iFiringRangePrice+sBunker_price_struct.iGunLockerPrice+sBunker_price_struct.iTransportationPrice)
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Bunker: $", iCouponPrice,
|
|
" (iDecorPrice:$", sBunker_price_struct.iDecorPrice,
|
|
"+iAccommodationPrice:$", sBunker_price_struct.iAccommodationPrice,
|
|
"+iFiringRangePrice:$", sBunker_price_struct.iFiringRangePrice,
|
|
"+iGunLockerPrice:$", sBunker_price_struct.iGunLockerPrice,
|
|
"+iTransportationPrice:$", sBunker_price_struct.iTransportationPrice, ")")
|
|
ELIF IS_CATALOG_ITEM_A_HANGAR_ITEM(iItemId)
|
|
iCouponPrice += (sHangar_price_struct.iFlooringPrice+sHangar_price_struct.iAccommodationPrice+sHangar_price_struct.iFurniturePrice+sHangar_price_struct.iModshopPrice+sHangar_price_struct.iColourPrice+sHangar_price_struct.iLightingPrice)
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Hangar: $", iCouponPrice)
|
|
ELIF IS_CATALOG_ITEM_A_DEFUNCT_BASE_ITEM(iItemId)
|
|
iCouponPrice += (sDefunct_base_price_struct.iPersonalQuartersPrice+sDefunct_base_price_struct.iOrbitalWeaponPrice+sDefunct_base_price_struct.iSecurityRoomPrice+sDefunct_base_price_struct.iLoungePrice+sDefunct_base_price_struct.iPrivicyGlassPrice+sDefunct_base_price_struct.iStylePrice+sDefunct_base_price_struct.iGraphicsPrice)
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Defunct Base: $", iCouponPrice,
|
|
" (iPersonalQuartersPrice:$", sDefunct_base_price_struct.iPersonalQuartersPrice,
|
|
"+iOrbitalWeaponPrice:$", sDefunct_base_price_struct.iOrbitalWeaponPrice,
|
|
"+iSecurityRoomPrice:$", sDefunct_base_price_struct.iSecurityRoomPrice,
|
|
"+iLoungePrice:$", sDefunct_base_price_struct.iLoungePrice, "...")
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Defunct Base... iPrivicyGlassPrice:$", sDefunct_base_price_struct.iPrivicyGlassPrice,
|
|
"+iStylePrice:$", sDefunct_base_price_struct.iStylePrice,
|
|
"+iGraphicsPrice:$", sDefunct_base_price_struct.iGraphicsPrice, ")")
|
|
ELIF IS_CATALOG_ITEM_A_PLANE_ITEM(iItemId)
|
|
iCouponPrice = (sPlane_price_struct.iAvengerPrice+sPlane_price_struct.iGunTurretPrice+sPlane_price_struct.iVehShopPrice+sPlane_price_struct.iWeaShopPrice+sPlane_price_struct.iInteriorPrice)
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Plane: $", iCouponPrice,
|
|
" (iAvengerPrice:$", sPlane_price_struct.iAvengerPrice,
|
|
"+iGunTurretPrice:$", sPlane_price_struct.iGunTurretPrice,
|
|
"+iVehShopPrice:$", sPlane_price_struct.iVehShopPrice,
|
|
"+iWeaShopPrice:$", sPlane_price_struct.iWeaShopPrice,
|
|
"+iInteriorPrice:$", sPlane_price_struct.iInteriorPrice, ")")
|
|
ELIF IS_CATALOG_ITEM_A_NIGHTCLUB_ITEM(iItemId)
|
|
iCouponPrice += (sNightclub_price_struct.iStylePrice+sNightclub_price_struct.iLightingPrice+sNightclub_price_struct.iDancersPrice+sNightclub_price_struct.iDryIcePrice+sNightclub_price_struct.iStoragePrice+sNightclub_price_struct.iGaragePrice+sNightclub_price_struct.iNamePrice)
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Nightclub: $", iCouponPrice,
|
|
" (iStylePrice:$", sNightclub_price_struct.iStylePrice,
|
|
"+iLightingPrice:$", sNightclub_price_struct.iLightingPrice,
|
|
"+iDancersPrice:$", sNightclub_price_struct.iDancersPrice,
|
|
"+iDryIcePrice:$", sNightclub_price_struct.iDryIcePrice, "...")
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Nightclub... iStoragePrice:$", sNightclub_price_struct.iStoragePrice,
|
|
"+iGaragePrice:$", sNightclub_price_struct.iGaragePrice,
|
|
"+iNamePrice:$", sNightclub_price_struct.iNamePrice, ")")
|
|
ELIF IS_CATALOG_ITEM_A_HACKER_TRUCK_ITEM(iItemId)
|
|
iCouponPrice = (sHacker_truck_price_struct.iCabPrice+sHacker_truck_price_struct.iDecalPrice+sHacker_truck_price_struct.iTintPrice+sHacker_truck_price_struct.iMissileLauncherPrice+sHacker_truck_price_struct.iDroneStationPrice+sHacker_truck_price_struct.iWeaShopPrice+sHacker_truck_price_struct.iVehShopPrice)
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Hacker Truck: $", iCouponPrice,
|
|
" (iCabPrice:$", sHacker_truck_price_struct.iCabPrice,
|
|
"+iDecalPrice:$", sHacker_truck_price_struct.iDecalPrice,
|
|
"+iTintPrice:$", sHacker_truck_price_struct.iTintPrice, "...")
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Hacker Truck... iMissileLauncherPrice:$", sHacker_truck_price_struct.iMissileLauncherPrice,
|
|
"+iDroneStationPrice:$", sHacker_truck_price_struct.iDroneStationPrice,
|
|
"+iWeaShopPrice:$", sHacker_truck_price_struct.iWeaShopPrice,
|
|
"+iVehShopPrice:$", sHacker_truck_price_struct.iVehShopPrice, ")")
|
|
#IF FEATURE_HEIST_ISLAND
|
|
ELIF IS_CATALOG_ITEM_A_KOSATKA_ITEM(iItemId)
|
|
iCouponPrice = (sKosatka_price_struct.iOwnedPrice+sKosatka_price_struct.iColourPrice+sKosatka_price_struct.iFlagPrice+sKosatka_price_struct.iSonarPrice+sKosatka_price_struct.iMissilesPrice+sKosatka_price_struct.iWeaShopPrice+sKosatka_price_struct.iAvisaPrice+sKosatka_price_struct.iSeaSparrow2Price)
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Kosatka: $", iCouponPrice,
|
|
" (sKosatka_price_struct.iOwnedPrice:$", sKosatka_price_struct.iOwnedPrice,
|
|
"+sKosatka_price_struct.iColourPrice:$", sKosatka_price_struct.iColourPrice,
|
|
"+sKosatka_price_struct.iFlagPrice:$", sKosatka_price_struct.iFlagPrice, "...")
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Kosatka... sKosatka_price_struct.iSonarPrice:$", sKosatka_price_struct.iSonarPrice,
|
|
"+sKosatka_price_struct.iMissilesPrice:$", sKosatka_price_struct.iMissilesPrice,
|
|
"+sKosatka_price_struct.iWeaShopPrice:$", sKosatka_price_struct.iWeaShopPrice,
|
|
"+sKosatka_price_struct.iAvisaPrice:$", sKosatka_price_struct.iAvisaPrice, ")")
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Kosatka... sKosatka_price_struct.iSeaSparrow2Price$", sKosatka_price_struct.iSeaSparrow2Price)
|
|
#ENDIF
|
|
ELIF IS_CATALOG_ITEM_AN_ARENA_GARAGE_ITEM(iItemId)
|
|
iCouponPrice += (sArena_garage_price_struct.iStylePrice+sArena_garage_price_struct.iGraphicsPrice+sArena_garage_price_struct.iColourPrice+sArena_garage_price_struct.iExpansionFloorB1Price+sArena_garage_price_struct.iExpansionFloorB2Price+sArena_garage_price_struct.iBennyMechanicPrice+sArena_garage_price_struct.iWeaponMechanicPrice+sArena_garage_price_struct.iPersonalQuartersPrice)
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Arena Garage: $", iCouponPrice,
|
|
" (iStylePrice:$", sArena_garage_price_struct.iStylePrice,
|
|
"+iGraphicsPrice:$", sArena_garage_price_struct.iGraphicsPrice,
|
|
"+iColourPrice:$", sArena_garage_price_struct.iColourPrice,
|
|
"+iExpansionFloorB1Price:$", sArena_garage_price_struct.iExpansionFloorB1Price,
|
|
"+iExpansionFloorB2Price:$", sArena_garage_price_struct.iExpansionFloorB2Price, "...")
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Arena Garage... iBennyMechanicPrice:$", sArena_garage_price_struct.iBennyMechanicPrice,
|
|
"+iWeaponMechanicPrice:$", sArena_garage_price_struct.iWeaponMechanicPrice,
|
|
"+iPersonalQuartersPrice:$", sArena_garage_price_struct.iPersonalQuartersPrice, ")")
|
|
ELIF IS_CATALOG_ITEM_AN_CASINO_APT_ITEM(iItemId)
|
|
iCouponPrice += (sCasino_apt_price_struct.iColourOptionPrice+sCasino_apt_price_struct.iStyleOptionPrice+sCasino_apt_price_struct.iLoungePrice+sCasino_apt_price_struct.iBarPrice+sCasino_apt_price_struct.iDealerPrice+sCasino_apt_price_struct.iBedroomPrice+sCasino_apt_price_struct.iMediaroomPrice+sCasino_apt_price_struct.iSpaPrice+sCasino_apt_price_struct.iOfficePrice+sCasino_apt_price_struct.iGaragePrice)
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Casino Apt: $", iCouponPrice,
|
|
" (iColourOptionPrice:$", sCasino_apt_price_struct.iColourOptionPrice,
|
|
"+iStyleOptionPrice:$", sCasino_apt_price_struct.iStyleOptionPrice,
|
|
"+iLoungePrice:$", sCasino_apt_price_struct.iLoungePrice,
|
|
"+iBarPrice:$", sCasino_apt_price_struct.iBarPrice,
|
|
"+iDealerPrice:$", sCasino_apt_price_struct.iDealerPrice, "...")
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Casino Apt... iBennyMechanicPrice:$", sCasino_apt_price_struct.iBedroomPrice,
|
|
"+iMediaroomPrice:$", sCasino_apt_price_struct.iMediaroomPrice,
|
|
"+iSpaPrice:$", sCasino_apt_price_struct.iSpaPrice,
|
|
"+iOfficePrice:$", sCasino_apt_price_struct.iOfficePrice,
|
|
"+iGaragePrice:$", sCasino_apt_price_struct.iGaragePrice, ")")
|
|
ELIF IS_CATALOG_ITEM_AN_ARCADE_ITEM(iItemId)
|
|
iCouponPrice += (sArcade_price_struct.iFloorPrice + sArcade_price_struct.iCeilingPrice + sArcade_price_struct.iWallPrice + sArcade_price_struct.iPersonalQuartersPrice + sArcade_price_struct.iGaragePrice + sArcade_price_struct.iNeonLightsPrice + sArcade_price_struct.iScreensPrice)
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Arcade: $", iCouponPrice,
|
|
" (iFloorPrice:$", sArcade_price_struct.iFloorPrice,
|
|
"+iCeilingPrice:$", sArcade_price_struct.iCeilingPrice,
|
|
"+iWallPrice:$", sArcade_price_struct.iWallPrice, "...")
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Arcade... iPersonalQuartersPrice:$", sArcade_price_struct.iPersonalQuartersPrice,
|
|
"+iGaragePrice:$", sArcade_price_struct.iGaragePrice,
|
|
"+iNeonLightsPrice:$", sArcade_price_struct.iNeonLightsPrice,
|
|
"+iScreensPrice:$", sArcade_price_struct.iScreensPrice, ")")
|
|
ELIF IS_CATALOG_ITEM_AN_AUTO_SHOP_ITEM(iItemId)
|
|
iCouponPrice += (sAutoShop_price_struct.iWallPrice + sAutoShop_price_struct.iTintPrice + sAutoShop_price_struct.iEmblemPrice + sAutoShop_price_struct.iCrewNamePrice + sAutoShop_price_struct.iStaff1Price + sAutoShop_price_struct.iStaff2Price + sAutoShop_price_struct.iCarLiftPrice + sAutoShop_price_struct.iPersonalQuartersPrice)
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Auto Shop: $", iCouponPrice,
|
|
"+iWallPrice:$", sAutoShop_price_struct.iWallPrice,
|
|
"+iStaff1Price:$", sAutoShop_price_struct.iStaff1Price, "...")
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Auto Shop... iTintPrice:$", sAutoShop_price_struct.iTintPrice,
|
|
"+iEmblemPrice:$", sAutoShop_price_struct.iEmblemPrice,
|
|
"+iCrewNamePrice:$", sAutoShop_price_struct.iCrewNamePrice, ")")
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Auto Shop... iStaff2Price:$", sAutoShop_price_struct.iStaff2Price,
|
|
"+iCarLiftPrice:$", sAutoShop_price_struct.iCarLiftPrice,
|
|
"+iPersonalQuartersPrice:$", sAutoShop_price_struct.iPersonalQuartersPrice, ")")
|
|
#IF FEATURE_FIXER
|
|
ELIF IS_CATALOG_ITEM_A_FIXER_HQ_ITEM(iItemId)
|
|
iCouponPrice += (sFixerHQ_price_struct.iArtPrice + sFixerHQ_price_struct.iWallpaperPrice + sFixerHQ_price_struct.iTintPrice + sFixerHQ_price_struct.iVehWorkshopPrice + sFixerHQ_price_struct.iArmoryPrice + sFixerHQ_price_struct.iPersonalQuartersPrice)
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Fixer HQ: $", iCouponPrice,
|
|
"+iArtPrice:$", sFixerHQ_price_struct.iArtPrice,
|
|
"+iWallpaperPrice:$", sFixerHQ_price_struct.iWallpaperPrice, "...")
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Fixer HQ... iTintPrice:$", sFixerHQ_price_struct.iTintPrice,
|
|
"+iVehWorkshopPrice:$", sFixerHQ_price_struct.iVehWorkshopPrice,
|
|
"+iArmoryPrice:$", sFixerHQ_price_struct.iArmoryPrice, ")")
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Fixer HQ... iPersonalQuartersPrice:$", sFixerHQ_price_struct.iPersonalQuartersPrice, ")")
|
|
#ENDIF
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Other: $", iCouponPrice)
|
|
ENDIF
|
|
bCouponPriceZero = FALSE
|
|
IF iSellingItemId != 0
|
|
IF NOT DOES_ITEM_MATCH_SELLING_ITEM(iItemId, iSellingItemId)
|
|
iCouponPrice -= iSellingPrice
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Selling: $", iCouponPrice, ", iSellingPrice $", iSellingPrice)
|
|
ENDIF
|
|
IF iCouponPrice < 0
|
|
IF (eCategory = CATEGORY_INVENTORY_PROPERTIE OR eCategory = CATEGORY_INVENTORY_WAREHOUSE)
|
|
IF IS_CATALOG_ITEM_A_CLUBHOUSE_PROPERTY_ITEM(iItemId)
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Selling Clubhouse, dont reduce: $", iCouponPrice)
|
|
ELIF IS_CATALOG_ITEM_AN_APARTMENT_OR_GARAGE(iItemId)
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Selling Apt or Garage, dont reduce: $", iCouponPrice)
|
|
ELSE
|
|
iCouponPrice = 0
|
|
bCouponPriceZero = TRUE
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] iCouponPrice Selling Reduced: $", iCouponPrice)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF iDoCouponHash != 0
|
|
SWITCH iDoCouponHash
|
|
CASE HASH("PM_COUPON_CAR_SITE")
|
|
iCouponPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE HASH("PM_COUPON_PLANE_SITE")
|
|
iCouponPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE HASH("PM_COUPON_MIL_SITE")
|
|
iCouponPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
|
|
CASE HASH("PO_COUPON_CAR_XMAS2017")
|
|
iCouponPrice = 0
|
|
bCouponPriceZero = TRUE
|
|
BREAK
|
|
CASE HASH("PO_COUPON_CAR_XMAS2018")
|
|
iCouponPrice = 0
|
|
bCouponPriceZero = TRUE
|
|
BREAK
|
|
CASE HASH("PO_COUPON_HELI_XMAS2018")
|
|
iCouponPrice = 0
|
|
bCouponPriceZero = TRUE
|
|
BREAK
|
|
CASE HASH("PO_COUPON_CAR2_XMAS2018")
|
|
iCouponPrice = 0
|
|
bCouponPriceZero = TRUE
|
|
BREAK
|
|
|
|
CASE HASH("PM_COUPON_CASINO_PLANE_SITE")
|
|
iCouponPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE HASH("PM_COUPON_CASINO_BOAT_SITE")
|
|
iCouponPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE HASH("PM_COUPON_CASINO_CAR_SITE")
|
|
iCouponPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE HASH("PM_COUPON_CASINO_CAR_SITE2")
|
|
iCouponPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE HASH("PM_COUPON_CASINO_MIL_SITE")
|
|
iCouponPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE HASH("PM_COUPON_CASINO_BIKE_SITE")
|
|
iCouponPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "[BASKET] unknown coupon hash ", iDoCouponHash, " for temp price")
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
|
|
// Override the players cash.
|
|
INT iWalletAmount, iBankAmount
|
|
IF NOT bBypassFakeCash
|
|
INT iTempPrice
|
|
iWalletAmount = 0
|
|
iBankAmount = 0
|
|
iTempPrice = iCouponPrice
|
|
// Bank first
|
|
IF (NETWORK_GET_VC_BANK_BALANCE() > 0)
|
|
IF NETWORK_GET_VC_BANK_BALANCE() >= iTempPrice
|
|
iBankAmount = iTempPrice
|
|
ELSE
|
|
iBankAmount = iTempPrice-(iTempPrice-NETWORK_GET_VC_BANK_BALANCE())
|
|
ENDIF
|
|
iTempPrice -= iBankAmount
|
|
ENDIF
|
|
IF iTempPrice > 0
|
|
IF (NETWORK_GET_VC_WALLET_BALANCE() > 0)
|
|
IF NETWORK_GET_VC_WALLET_BALANCE() >= iTempPrice
|
|
iWalletAmount = iTempPrice
|
|
ELSE
|
|
iWalletAmount = iTempPrice-(iTempPrice-NETWORK_GET_VC_WALLET_BALANCE())
|
|
ENDIF
|
|
iTempPrice -= iWalletAmount
|
|
ENDIF
|
|
ENDIF
|
|
IF iTempPrice > 0
|
|
CASSERTLN(DEBUG_INTERNET, "[BASKET] PROCESSING_INTERNET_SHOPPING_BASKET - Player can't afford this item! iTempPrice=", iTempPrice, ", iWalletAmount=", iWalletAmount, ", iBankAmount=", iBankAmount)
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] PROCESSING_INTERNET_SHOPPING_BASKET - Player can afford this item... iTempPrice=", iTempPrice,
|
|
", iWalletAmount=", iWalletAmount, ", iBankAmount=", iBankAmount,
|
|
" (iCouponPrice=", iCouponPrice, ")")
|
|
ENDIF
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] PROCESSING_INTERNET_SHOPPING_BASKET - bypass fake cash (iCouponPrice=", iCouponPrice, ")")
|
|
iWalletAmount = 0
|
|
iBankAmount = 0
|
|
ENDIF
|
|
|
|
IF eCategory = CATEGORY_INVENTORY_PROPERTIE
|
|
IF IS_CATALOG_ITEM_AN_OFFICE_PROPERTY_ITEM(iItemId)
|
|
INT g_sOfficeDataStruct_iOfficeNameID
|
|
g_sOfficeDataStruct_iOfficeNameID = g_sOfficeDataStruct.iOfficeNameID
|
|
|
|
INT g_sOfficeDataStruct_iStyle, g_sOfficeDataStruct_iPersonnel, g_sOfficeDataStruct_iFont, g_sOfficeDataStruct_iColour, g_sOfficeDataStruct_iGunLocker, g_sOfficeDataStruct_iVault, g_sOfficeDataStruct_iAccommodation
|
|
INT g_sOfficeDataStruct_iGarage1Style, g_sOfficeDataStruct_iGarage1Lighting, g_sOfficeDataStruct_iGarage1Number, g_sOfficeDataStruct_iGarage2Style, g_sOfficeDataStruct_iGarage2Lighting, g_sOfficeDataStruct_iGarage2Number, g_sOfficeDataStruct_iGarage3Style, g_sOfficeDataStruct_iGarage3Lighting, g_sOfficeDataStruct_iGarage3Number, g_sOfficeDataStruct_iModshop
|
|
GET_SCALEFORM_OFFICE_DATA(g_sOfficeDataStruct_iStyle, g_sOfficeDataStruct_iPersonnel, g_sOfficeDataStruct_iFont, g_sOfficeDataStruct_iColour, g_sOfficeDataStruct_iGunLocker, g_sOfficeDataStruct_iVault, g_sOfficeDataStruct_iAccommodation, g_sOfficeDataStruct_iGarage1Style, g_sOfficeDataStruct_iGarage1Lighting, g_sOfficeDataStruct_iGarage1Number, g_sOfficeDataStruct_iGarage2Style, g_sOfficeDataStruct_iGarage2Lighting, g_sOfficeDataStruct_iGarage2Number, g_sOfficeDataStruct_iGarage3Style, g_sOfficeDataStruct_iGarage3Lighting, g_sOfficeDataStruct_iGarage3Number, g_sOfficeDataStruct_iModshop)
|
|
g_sOfficeDataStruct_iStyle -= 1
|
|
|
|
IF NOT DOES_ITEM_MATCH_SELLING_ITEM(iItemId, iSellingItemId) //
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding new office property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iStyle = ", g_sOfficeDataStruct_iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iStylePrice = ", sOffice_price_struct.iStylePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iPersonnel = ", g_sOfficeDataStruct_iPersonnel)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iPersonnelPrice = ", sOffice_price_struct.iPersonnelPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iOfficeNameID = ", g_sOfficeDataStruct_iOfficeNameID)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iNamePrice = ", sOffice_price_struct.iNamePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iFont = ", g_sOfficeDataStruct_iFont)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iFontPrice = ", sOffice_price_struct.iFontPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iColour = ", g_sOfficeDataStruct_iColour)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iColourPrice = ", sOffice_price_struct.iColourPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iGunLocker = ", g_sOfficeDataStruct_iGunLocker)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGunLockerPrice = ", sOffice_price_struct.iGunLockerPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iVault = ", g_sOfficeDataStruct_iVault)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iVaultPrice = ", sOffice_price_struct.iVaultPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iAccommodation = ", g_sOfficeDataStruct_iAccommodation)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iAccommodationPrice = ", sOffice_price_struct.iAccommodationPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iModshop = ", g_sOfficeDataStruct_iModshop)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iModshopPrice = ", sOffice_price_struct.iModshopPrice)
|
|
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemId, eAction, 1, iPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
|
|
|
|
// new office property we are trading in.
|
|
IF iSellingItemId != 0
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding trade new office property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iSellingPrice:$", iSellingPrice)
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iSellingItemId, eAction, 1, iSellingPrice, 1, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added new office property iSellingItemId ", iSellingItemId)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add selling item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF (NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemInteriorID, eAction, 1, 0, 0, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryInteriorID))
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added new office property iItemInteriorID ", iItemInteriorID)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add interior item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added new office property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add new office property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] - Ignore new office property coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_OFFICE_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR,
|
|
g_sOfficeDataStruct_iStyle, sOffice_price_struct.iStylePrice,
|
|
g_sOfficeDataStruct_iPersonnel, sOffice_price_struct.iPersonnelPrice,
|
|
g_sOfficeDataStruct_iOfficeNameID, sOffice_price_struct.iNamePrice,
|
|
g_sOfficeDataStruct_iFont, sOffice_price_struct.iFontPrice,
|
|
g_sOfficeDataStruct_iColour, sOffice_price_struct.iColourPrice,
|
|
g_sOfficeDataStruct_iGunLocker, sOffice_price_struct.iGunLockerPrice,
|
|
g_sOfficeDataStruct_iVault, sOffice_price_struct.iVaultPrice,
|
|
g_sOfficeDataStruct_iAccommodation, sOffice_price_struct.iAccommodationPrice,
|
|
// g_sOfficeDataStruct_iGarage1, sOffice_price_struct.iGarage1Price,
|
|
// g_sOfficeDataStruct_iGarage2, sOffice_price_struct.iGarage2Price,
|
|
// g_sOfficeDataStruct_iGarage3, sOffice_price_struct.iGarage3Price,
|
|
g_sOfficeDataStruct_iModshop, sOffice_price_struct.iModshopPrice)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New office failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start office basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add office item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding office property upgrade to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iStyle = ", g_sOfficeDataStruct_iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iStylePrice = ", sOffice_price_struct.iStylePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iPersonnel = ", g_sOfficeDataStruct_iPersonnel)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iPersonnelPrice = ", sOffice_price_struct.iPersonnelPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iOfficeNameID = ", g_sOfficeDataStruct_iOfficeNameID)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iNamePrice = ", sOffice_price_struct.iNamePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iFont = ", g_sOfficeDataStruct_iFont)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iFontPrice = ", sOffice_price_struct.iFontPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iColour = ", g_sOfficeDataStruct_iColour)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iColourPrice = ", sOffice_price_struct.iColourPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iGunLocker = ", g_sOfficeDataStruct_iGunLocker)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGunLockerPrice = ", sOffice_price_struct.iGunLockerPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iVault = ", g_sOfficeDataStruct_iVault)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iVaultPrice = ", sOffice_price_struct.iVaultPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iAccommodation = ", g_sOfficeDataStruct_iAccommodation)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iAccommodationPrice = ", sOffice_price_struct.iAccommodationPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iModshop = ", g_sOfficeDataStruct_iModshop)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iModshopPrice = ", sOffice_price_struct.iModshopPrice)
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added office property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add office property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore office property upgrade coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_OFFICE_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR,
|
|
g_sOfficeDataStruct_iStyle, sOffice_price_struct.iStylePrice,
|
|
g_sOfficeDataStruct_iPersonnel, sOffice_price_struct.iPersonnelPrice,
|
|
g_sOfficeDataStruct_iOfficeNameID, sOffice_price_struct.iNamePrice,
|
|
g_sOfficeDataStruct_iFont, sOffice_price_struct.iFontPrice,
|
|
g_sOfficeDataStruct_iColour, sOffice_price_struct.iColourPrice,
|
|
g_sOfficeDataStruct_iGunLocker, sOffice_price_struct.iGunLockerPrice,
|
|
g_sOfficeDataStruct_iVault, sOffice_price_struct.iVaultPrice,
|
|
g_sOfficeDataStruct_iAccommodation, sOffice_price_struct.iAccommodationPrice,
|
|
g_sOfficeDataStruct_iModshop, sOffice_price_struct.iModshopPrice)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New office failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start office basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELIF IS_CATALOG_ITEM_A_CLUBHOUSE_PROPERTY_ITEM(iItemId)
|
|
INT g_sClubhouseDataStruct_iClubhouseNameID
|
|
g_sClubhouseDataStruct_iClubhouseNameID = g_sClubhouseDataStruct.iClubhouseNameID
|
|
|
|
INT g_sClubhouseDataStruct_iWall, g_sClubhouseDataStruct_iHanging, g_sClubhouseDataStruct_iFurniture, g_sClubhouseDataStruct_iColour, g_sClubhouseDataStruct_iFont, g_sClubhouseDataStruct_iFontColour, g_sClubhouseDataStruct_iEmblem, g_sClubhouseDataStruct_iHideSinage, g_sClubhouseDataStruct_iGunLocker, g_sClubhouseDataStruct_iGarage
|
|
GET_SCALEFORM_CLUBHOUSE_DATA(GET_CLUBHOUSE_ITEM_FROM_CATALOG_ITEM(iItemID), g_sClubhouseDataStruct_iWall, g_sClubhouseDataStruct_iHanging, g_sClubhouseDataStruct_iFurniture, g_sClubhouseDataStruct_iColour, g_sClubhouseDataStruct_iFont, g_sClubhouseDataStruct_iFontColour, g_sClubhouseDataStruct_iEmblem, g_sClubhouseDataStruct_iHideSinage, g_sClubhouseDataStruct_iGunLocker, g_sClubhouseDataStruct_iGarage)
|
|
g_sClubhouseDataStruct_iColour = GET_ACTIONSCRIPT_PARAM(GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA), 9, 4)
|
|
|
|
IF NOT DOES_ITEM_MATCH_SELLING_ITEM(iItemId, iSellingItemId) //
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding new Clubhouse property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sClubhouseDataStruct_iColour = ", g_sClubhouseDataStruct_iColour)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iStylePrice = ", sClubhouse_price_struct.iStylePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sClubhouseDataStruct_iClubhouseNameID = ", g_sClubhouseDataStruct_iClubhouseNameID)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iNamePrice = ", sClubhouse_price_struct.iNamePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sClubhouseDataStruct_iFont = ", g_sClubhouseDataStruct_iFont)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iFontPrice = ", sClubhouse_price_struct.iFontPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sClubhouseDataStruct_iFontColour = ", g_sClubhouseDataStruct_iFontColour)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iFontColourPrice = ", sClubhouse_price_struct.iFontColourPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sClubhouseDataStruct_iHideSignage = ", g_sClubhouseDataStruct_iHideSinage)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iHideSignageColourPrice = ", sClubhouse_price_struct.iHideSignagePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sClubhouseDataStruct_iEmblem = ", g_sClubhouseDataStruct_iEmblem)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iEmblemPrice = ", sClubhouse_price_struct.iEmblemPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sClubhouseDataStruct_iGunLocker = ", g_sClubhouseDataStruct_iGunLocker)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGunLockerPrice = ", sClubhouse_price_struct.iGunLockerPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sClubhouseDataStruct_iGarage = ", g_sClubhouseDataStruct_iGarage)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGaragePrice = ", sClubhouse_price_struct.iGaragePrice)
|
|
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemId, eAction, 1, iPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
|
|
|
|
// new Clubhouse property we are trading in.
|
|
IF iSellingItemId != 0
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding trade new Clubhouse property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iSellingPrice:$", iSellingPrice)
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iSellingItemId, eAction, 1, iSellingPrice, 1, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
//
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add selling item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// IF (NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemInteriorID, eAction, 1, 0, 0, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryInteriorID))
|
|
// //
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add interior item to basket")
|
|
// iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
// RETURN TRUE
|
|
// ENDIF
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added new Clubhouse property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add new Clubhouse property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore new Clubhouse property coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_CLUBHOUSE_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR,
|
|
g_sClubhouseDataStruct_iWall, sClubhouse_price_struct.iWallPrice,
|
|
g_sClubhouseDataStruct_iHanging, sClubhouse_price_struct.iHangingPrice,
|
|
g_sClubhouseDataStruct_iFurniture, sClubhouse_price_struct.iFurniturePrice,
|
|
g_sClubhouseDataStruct_iColour, sClubhouse_price_struct.iStylePrice,
|
|
g_sClubhouseDataStruct_iClubhouseNameID, sClubhouse_price_struct.iNamePrice,
|
|
g_sClubhouseDataStruct_iFont, sClubhouse_price_struct.iFontPrice,
|
|
g_sClubhouseDataStruct_iFontColour, sClubhouse_price_struct.iFontColourPrice,
|
|
g_sClubhouseDataStruct_iHideSinage, sClubhouse_price_struct.iHideSignagePrice,
|
|
g_sClubhouseDataStruct_iEmblem, sClubhouse_price_struct.iEmblemPrice,
|
|
g_sClubhouseDataStruct_iGunLocker, sClubhouse_price_struct.iGunLockerPrice,
|
|
g_sClubhouseDataStruct_iGarage, sClubhouse_price_struct.iGaragePrice)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New Clubhouse failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start clubhouse basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add clubhouse item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding Clubhouse property upgrade to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sClubhouseDataStruct_iColour = ", g_sClubhouseDataStruct_iColour)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iStylePrice = ", sClubhouse_price_struct.iStylePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sClubhouseDataStruct_iClubhouseNameID = ", g_sClubhouseDataStruct_iClubhouseNameID)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iNamePrice = ", sClubhouse_price_struct.iNamePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sClubhouseDataStruct_iFont = ", g_sClubhouseDataStruct_iFont)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iFontPrice = ", sClubhouse_price_struct.iFontPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sClubhouseDataStruct_iFontColour = ", g_sClubhouseDataStruct_iFontColour)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iFontColourPrice = ", sClubhouse_price_struct.iFontColourPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sClubhouseDataStruct_iHideSignage = ", g_sClubhouseDataStruct_iHideSinage)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iHideSignageColourPrice = ", sClubhouse_price_struct.iHideSignagePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sClubhouseDataStruct_iEmblem = ", g_sClubhouseDataStruct_iEmblem)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iEmblemPrice = ", sClubhouse_price_struct.iEmblemPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sClubhouseDataStruct_iGunLocker = ", g_sClubhouseDataStruct_iGunLocker)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGunLockerPrice = ", sClubhouse_price_struct.iGunLockerPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sClubhouseDataStruct_iGarage = ", g_sClubhouseDataStruct_iGarage)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGaragePrice = ", sClubhouse_price_struct.iGaragePrice)
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added Clubhouse property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add Clubhouse property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore Clubhouse property upgrade coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_CLUBHOUSE_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR,
|
|
g_sClubhouseDataStruct_iWall, sClubhouse_price_struct.iWallPrice,
|
|
g_sClubhouseDataStruct_iHanging, sClubhouse_price_struct.iHangingPrice,
|
|
g_sClubhouseDataStruct_iFurniture, sClubhouse_price_struct.iFurniturePrice,
|
|
g_sClubhouseDataStruct_iColour, sClubhouse_price_struct.iStylePrice,
|
|
g_sClubhouseDataStruct_iClubhouseNameID, sClubhouse_price_struct.iNamePrice,
|
|
g_sClubhouseDataStruct_iFont, sClubhouse_price_struct.iFontPrice,
|
|
g_sClubhouseDataStruct_iFontColour, sClubhouse_price_struct.iFontColourPrice,
|
|
g_sClubhouseDataStruct_iHideSinage, sClubhouse_price_struct.iHideSignagePrice,
|
|
g_sClubhouseDataStruct_iEmblem, sClubhouse_price_struct.iEmblemPrice,
|
|
g_sClubhouseDataStruct_iGunLocker, sClubhouse_price_struct.iGunLockerPrice,
|
|
g_sClubhouseDataStruct_iGarage, sClubhouse_price_struct.iGaragePrice)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New Clubhouse failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start clubhouse basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELIF IS_CATALOG_ITEM_AN_OFFICE_GARAGE_PROPERTY_ITEM(iItemId)
|
|
INT g_sOfficeDataStruct_iStyle, g_sOfficeDataStruct_iPersonnel, g_sOfficeDataStruct_iFont, g_sOfficeDataStruct_iColour, g_sOfficeDataStruct_iGunLocker, g_sOfficeDataStruct_iVault, g_sOfficeDataStruct_iAccommodation
|
|
INT g_sOfficeDataStruct_iGarage1Style, g_sOfficeDataStruct_iGarage1Lighting, g_sOfficeDataStruct_iGarage1Number, g_sOfficeDataStruct_iGarage2Style, g_sOfficeDataStruct_iGarage2Lighting, g_sOfficeDataStruct_iGarage2Number, g_sOfficeDataStruct_iGarage3Style, g_sOfficeDataStruct_iGarage3Lighting, g_sOfficeDataStruct_iGarage3Number, g_sOfficeDataStruct_iModshop
|
|
GET_SCALEFORM_OFFICE_DATA(g_sOfficeDataStruct_iStyle, g_sOfficeDataStruct_iPersonnel, g_sOfficeDataStruct_iFont, g_sOfficeDataStruct_iColour, g_sOfficeDataStruct_iGunLocker, g_sOfficeDataStruct_iVault, g_sOfficeDataStruct_iAccommodation, g_sOfficeDataStruct_iGarage1Style, g_sOfficeDataStruct_iGarage1Lighting, g_sOfficeDataStruct_iGarage1Number, g_sOfficeDataStruct_iGarage2Style, g_sOfficeDataStruct_iGarage2Lighting, g_sOfficeDataStruct_iGarage2Number, g_sOfficeDataStruct_iGarage3Style, g_sOfficeDataStruct_iGarage3Lighting, g_sOfficeDataStruct_iGarage3Number, g_sOfficeDataStruct_iModshop)
|
|
g_sOfficeDataStruct_iGarage1Style -= 1
|
|
g_sOfficeDataStruct_iGarage2Style -= 1
|
|
g_sOfficeDataStruct_iGarage3Style -= 1
|
|
|
|
IF NOT DOES_ITEM_MATCH_SELLING_ITEM(iItemId, iSellingItemId) //
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding new office garage property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
IF (GET_OFFICE_GARAGE_ITEM_FROM_CATALOG_ITEM(iItemID) = PROPERTY_OFFICE_1_GARAGE_LVL1)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iGarage1Style = ", g_sOfficeDataStruct_iGarage1Style)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGarage1StylePrice = ", sOffice_price_struct.iGarage1StylePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iGarage1Lighting = ", g_sOfficeDataStruct_iGarage1Lighting)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGarage1LightingPrice = ", sOffice_price_struct.iGarage1LightingPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iGarage1Number = ", g_sOfficeDataStruct_iGarage1Number)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGarage1NumberPrice = ", sOffice_price_struct.iGarage1NumberPrice)
|
|
ENDIF
|
|
IF (GET_OFFICE_GARAGE_ITEM_FROM_CATALOG_ITEM(iItemID) = PROPERTY_OFFICE_1_GARAGE_LVL2)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iGarage2Style = ", g_sOfficeDataStruct_iGarage2Style)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGarage2StylePrice = ", sOffice_price_struct.iGarage2StylePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iGarage2Lighting = ", g_sOfficeDataStruct_iGarage2Lighting)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGarage2LightingPrice = ", sOffice_price_struct.iGarage2LightingPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iGarage2Number = ", g_sOfficeDataStruct_iGarage2Number)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGarage2NumberPrice = ", sOffice_price_struct.iGarage2NumberPrice)
|
|
ENDIF
|
|
IF (GET_OFFICE_GARAGE_ITEM_FROM_CATALOG_ITEM(iItemID) = PROPERTY_OFFICE_1_GARAGE_LVL3)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iGarage3Style = ", g_sOfficeDataStruct_iGarage3Style)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGarage3StylePrice = ", sOffice_price_struct.iGarage3StylePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iGarage3Lighting = ", g_sOfficeDataStruct_iGarage3Lighting)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGarage3LightingPrice = ", sOffice_price_struct.iGarage3LightingPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iGarage3Number = ", g_sOfficeDataStruct_iGarage3Number)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGarage3NumberPrice = ", sOffice_price_struct.iGarage3NumberPrice)
|
|
ENDIF
|
|
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemId, eAction, 1, iPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
|
|
|
|
// new office garage property we are trading in.
|
|
IF iSellingItemId != 0
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding trade new office garage property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iSellingPrice:$", iSellingPrice)
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iSellingItemId, eAction, 1, iSellingPrice, 1, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
//
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add selling item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
INT iCost
|
|
iCost = 0
|
|
IF (GET_OFFICE_GARAGE_ITEM_FROM_CATALOG_ITEM(iItemID) = PROPERTY_OFFICE_1_GARAGE_LVL1)
|
|
iCost = sOffice_price_struct.iGarage1StylePrice
|
|
ENDIF
|
|
IF (GET_OFFICE_GARAGE_ITEM_FROM_CATALOG_ITEM(iItemID) = PROPERTY_OFFICE_1_GARAGE_LVL2)
|
|
iCost = sOffice_price_struct.iGarage2StylePrice
|
|
ENDIF
|
|
IF (GET_OFFICE_GARAGE_ITEM_FROM_CATALOG_ITEM(iItemID) = PROPERTY_OFFICE_1_GARAGE_LVL3)
|
|
iCost = sOffice_price_struct.iGarage3StylePrice
|
|
ENDIF
|
|
|
|
IF (NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemInteriorID, eAction, 1, iCost, 0, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryInteriorID))
|
|
//
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add office garage interior item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added new office garage property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add new office garage property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore new office garage property coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_OFFICE_GARAGE_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR, FALSE,
|
|
g_sOfficeDataStruct_iGarage1Style, sOffice_price_struct.iGarage1StylePrice,
|
|
g_sOfficeDataStruct_iGarage1Lighting, sOffice_price_struct.iGarage1LightingPrice,
|
|
g_sOfficeDataStruct_iGarage1Number, sOffice_price_struct.iGarage1NumberPrice,
|
|
g_sOfficeDataStruct_iGarage2Style, sOffice_price_struct.iGarage2StylePrice,
|
|
g_sOfficeDataStruct_iGarage2Lighting, sOffice_price_struct.iGarage2LightingPrice,
|
|
g_sOfficeDataStruct_iGarage2Number, sOffice_price_struct.iGarage2NumberPrice,
|
|
g_sOfficeDataStruct_iGarage3Style, sOffice_price_struct.iGarage3StylePrice,
|
|
g_sOfficeDataStruct_iGarage3Lighting, sOffice_price_struct.iGarage3LightingPrice,
|
|
g_sOfficeDataStruct_iGarage3Number, sOffice_price_struct.iGarage3NumberPrice)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New office garage failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start office garage basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add office garage item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding office garage property upgrade to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
IF (GET_OFFICE_GARAGE_ITEM_FROM_CATALOG_ITEM(iItemID) = PROPERTY_OFFICE_1_GARAGE_LVL1)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iGarage1Style = ", g_sOfficeDataStruct_iGarage1Style)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGarage1StylePrice = ", sOffice_price_struct.iGarage1StylePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iGarage1Lighting = ", g_sOfficeDataStruct_iGarage1Lighting)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGarage1LightingPrice = ", sOffice_price_struct.iGarage1LightingPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iGarage1Number = ", g_sOfficeDataStruct_iGarage1Number)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGarage1NumberPrice = ", sOffice_price_struct.iGarage1NumberPrice)
|
|
ENDIF
|
|
IF (GET_OFFICE_GARAGE_ITEM_FROM_CATALOG_ITEM(iItemID) = PROPERTY_OFFICE_1_GARAGE_LVL2)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iGarage2Style = ", g_sOfficeDataStruct_iGarage2Style)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGarage2StylePrice = ", sOffice_price_struct.iGarage2StylePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iGarage2Lighting = ", g_sOfficeDataStruct_iGarage2Lighting)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGarage2LightingPrice = ", sOffice_price_struct.iGarage2LightingPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iGarage2Number = ", g_sOfficeDataStruct_iGarage2Number)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGarage2NumberPrice = ", sOffice_price_struct.iGarage2NumberPrice)
|
|
ENDIF
|
|
IF (GET_OFFICE_GARAGE_ITEM_FROM_CATALOG_ITEM(iItemID) = PROPERTY_OFFICE_1_GARAGE_LVL3)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iGarage3Style = ", g_sOfficeDataStruct_iGarage3Style)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGarage3StylePrice = ", sOffice_price_struct.iGarage3StylePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iGarage3Lighting = ", g_sOfficeDataStruct_iGarage3Lighting)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGarage3LightingPrice = ", sOffice_price_struct.iGarage3LightingPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sOfficeDataStruct_iGarage3Number = ", g_sOfficeDataStruct_iGarage3Number)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGarage3NumberPrice = ", sOffice_price_struct.iGarage3NumberPrice)
|
|
ENDIF
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added office garage property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add office garage property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore office garage property upgrade coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_OFFICE_GARAGE_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR, TRUE,
|
|
g_sOfficeDataStruct_iGarage1Style, sOffice_price_struct.iGarage1StylePrice,
|
|
g_sOfficeDataStruct_iGarage1Lighting, sOffice_price_struct.iGarage1LightingPrice,
|
|
g_sOfficeDataStruct_iGarage1Number, sOffice_price_struct.iGarage1NumberPrice,
|
|
g_sOfficeDataStruct_iGarage2Style, sOffice_price_struct.iGarage2StylePrice,
|
|
g_sOfficeDataStruct_iGarage2Lighting, sOffice_price_struct.iGarage2LightingPrice,
|
|
g_sOfficeDataStruct_iGarage2Number, sOffice_price_struct.iGarage2NumberPrice,
|
|
g_sOfficeDataStruct_iGarage3Style, sOffice_price_struct.iGarage3StylePrice,
|
|
g_sOfficeDataStruct_iGarage3Lighting, sOffice_price_struct.iGarage3LightingPrice,
|
|
g_sOfficeDataStruct_iGarage3Number, sOffice_price_struct.iGarage3NumberPrice)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New office garage failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start office garage basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemId, eAction, 1, iPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
AND (NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemInteriorID, eAction, 1, 0, 0, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryInteriorID))
|
|
|
|
// Property we are trading in.
|
|
IF iSellingItemId != 0
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding trade property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iSellingPrice:$", iSellingPrice)
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iSellingItemId, eAction, 1, iSellingPrice, 1, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
//
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add selling item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore property coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start property basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add property item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// YACHTS
|
|
ELIF eCategory = CATEGORY_INVENTORY_VEHICLE AND IS_CATALOG_ITEM_A_YACHT_ITEM(iItemId)
|
|
IF GET_MP_INT_CHARACTER_STAT(MP_STAT_INV_YACHT_MODEL_0) = 0
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding new yacht to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sYachtDataStruct.iMod = ", g_sYachtDataStruct.iMod)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iModPrice = ", iYachtModPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sYachtDataStruct.iLighting = ", g_sYachtDataStruct.iLighting)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iLightingPrice = ", iYachtLightingPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sYachtDataStruct.iFixture = ", g_sYachtDataStruct.iFixture)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iFixturePrice = ", iYachtFixturePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sYachtDataStruct.iFlag = ", g_sYachtDataStruct.iFlag)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iFlagPrice = ", iYachtFlagPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sYachtDataStruct.iColour = ", g_sYachtDataStruct.iColour)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iColourPrice = ", iYachtColourPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iNamePrice = ", iYachtNamePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sYachtDataStruct.iYachtNameID = ", g_sYachtDataStruct.iYachtNameID)
|
|
|
|
// vehicle = 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, GET_VEHICLE_INVENTORY_ITEM_FROM_PEGASUS_ITEM(iItemID), eAction, 1, 0, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
// add all the yacht mods.
|
|
IF ADD_YACHT_MODS_TO_BASKET(0, eCategory, g_sYachtDataStruct.iMod, iYachtModPrice, g_sYachtDataStruct.iLighting, iYachtLightingPrice, g_sYachtDataStruct.iFixture, iYachtFixturePrice, g_sYachtDataStruct.iFlag, iYachtFlagPrice, g_sYachtDataStruct.iColour, iYachtColourPrice, g_sYachtDataStruct.iYachtNameID, iYachtNamePrice)
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New yacht Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New yacht CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New yacht failed to start basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New yacht failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add new yacht to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding yacht update to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(CATEGORY_INVENTORY_VEHICLE_MOD), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sYachtDataStruct.iMod = ", g_sYachtDataStruct.iMod)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iModPrice = ", iYachtModPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sYachtDataStruct.iLighting = ", g_sYachtDataStruct.iLighting)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iLightingPrice = ", iYachtLightingPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sYachtDataStruct.iFixture = ", g_sYachtDataStruct.iFixture)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iFixturePrice = ", iYachtFixturePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sYachtDataStruct.iFlag = ", g_sYachtDataStruct.iFlag)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iFlagPrice = ", iYachtFlagPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sYachtDataStruct.iColour = ", g_sYachtDataStruct.iColour)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iColourPrice = ", iYachtColourPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iNamePrice = ", iYachtNamePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sYachtDataStruct.iYachtNameID = ", g_sYachtDataStruct.iYachtNameID)
|
|
|
|
// add all the yacht mods.
|
|
IF ADD_YACHT_MODS_TO_BASKET(0, CATEGORY_INVENTORY_VEHICLE_MOD, g_sYachtDataStruct.iMod, iYachtModPrice, g_sYachtDataStruct.iLighting, iYachtLightingPrice, g_sYachtDataStruct.iFixture, iYachtFixturePrice, g_sYachtDataStruct.iFlag, iYachtFlagPrice, g_sYachtDataStruct.iColour, iYachtColourPrice, g_sYachtDataStruct.iYachtNameID, iYachtNamePrice)
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Yacht update Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Yacht update CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Yacht update failed to start basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Yacht update failed to add mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// TRUCKS
|
|
ELIF eCategory = CATEGORY_INVENTORY_VEHICLE AND IS_CATALOG_ITEM_A_TRUCK_ITEM(iItemId)
|
|
ARMORY_TRUCK_SECTION_TYPE_ENUM eSection1, eSection2, eSection3
|
|
eSection1 = INT_TO_ENUM(ARMORY_TRUCK_SECTION_TYPE_ENUM, GET_TRUCK_SECTION_TYPE_FROM_SF(g_sTruckDataStruct.iSection1))
|
|
eSection2 = INT_TO_ENUM(ARMORY_TRUCK_SECTION_TYPE_ENUM, GET_TRUCK_SECTION_TYPE_FROM_SF(g_sTruckDataStruct.iSection2))
|
|
eSection3 = INT_TO_ENUM(ARMORY_TRUCK_SECTION_TYPE_ENUM, GET_TRUCK_SECTION_TYPE_FROM_SF(g_sTruckDataStruct.iSection3))
|
|
|
|
VALIDATE_TRUCK_EMPTY_SECTIONS(eSection1, eSection2, eSection3)
|
|
|
|
IF GET_MP_INT_CHARACTER_STAT(MP_STAT_INV_TRUCK_MODEL_0) = 0
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding new truck to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sTruckDataStruct.iCab = ", g_sTruckDataStruct.iCab, ", eCab = ", GET_MODEL_NAME_FOR_DEBUG(INT_TO_ENUM(MODEL_NAMES, GET_TRUCK_CAB_FROM_SF(g_sTruckDataStruct.iCab))))
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iCabPrice = ", sTruck_price_struct.iCabPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sTruckDataStruct.iSection1 = ", g_sTruckDataStruct.iSection1, ", eSection1 = ", GET_ARMORY_TRUCK_SECTION_TYPE_NAME(eSection1))
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iSection1Price = ", sTruck_price_struct.iSection1Price)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sTruckDataStruct.iSection2 = ", g_sTruckDataStruct.iSection2, ", eSection2 = ", GET_ARMORY_TRUCK_SECTION_TYPE_NAME(eSection2))
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iSection2Price = ", sTruck_price_struct.iSection2Price)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sTruckDataStruct.iSection3 = ", g_sTruckDataStruct.iSection3, ", eSection3 = ", GET_ARMORY_TRUCK_SECTION_TYPE_NAME(eSection3))
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iSection3Price = ", sTruck_price_struct.iSection3Price)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sTruckDataStruct.iColour = ", g_sTruckDataStruct.iColour, ", eColour = ", GET_ARMORY_TRUCK_SECTION_TINT_NAME(INT_TO_ENUM(ARMORY_TRUCK_SECTION_TINT_ENUM, GET_TRUCK_SECTION_TINT_FROM_SF(g_sTruckDataStruct.iColour))))
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iColourPrice = ", sTruck_price_struct.iColourPrice)
|
|
|
|
// vehicle = 0
|
|
// IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, GET_VEHICLE_INVENTORY_ITEM_FROM_PEGASUS_ITEM(iItemID), eAction, 1, 0, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
// add all the truck mods.
|
|
IF ADD_TRUCK_MODS_TO_BASKET(0, eCategory,
|
|
GET_TRUCK_CAB_FROM_SF(g_sTruckDataStruct.iCab), sTruck_price_struct.iCabPrice,
|
|
ENUM_TO_INT(eSection1), sTruck_price_struct.iSection1Price,
|
|
ENUM_TO_INT(eSection2), sTruck_price_struct.iSection2Price,
|
|
ENUM_TO_INT(eSection3), sTruck_price_struct.iSection3Price,
|
|
GET_TRUCK_SECTION_TINT_FROM_SF(g_sTruckDataStruct.iColour), sTruck_price_struct.iColourPrice)
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New truck Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New truck CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New truck failed to start basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New truck failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add new truck to basket")
|
|
// iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
// ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding truck update to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(CATEGORY_INVENTORY_VEHICLE_MOD), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sTruckDataStruct.iCab = ", g_sTruckDataStruct.iCab, ", eCab = ", GET_MODEL_NAME_FOR_DEBUG(INT_TO_ENUM(MODEL_NAMES, GET_TRUCK_CAB_FROM_SF(g_sTruckDataStruct.iCab))))
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iCabPrice = ", sTruck_price_struct.iCabPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sTruckDataStruct.iSection1 = ", g_sTruckDataStruct.iSection1, ", eSection1 = ", GET_ARMORY_TRUCK_SECTION_TYPE_NAME(eSection1))
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iSection1Price = ", sTruck_price_struct.iSection1Price)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sTruckDataStruct.iSection2 = ", g_sTruckDataStruct.iSection2, ", eSection2 = ", GET_ARMORY_TRUCK_SECTION_TYPE_NAME(eSection2))
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iSection2Price = ", sTruck_price_struct.iSection2Price)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sTruckDataStruct.iSection3 = ", g_sTruckDataStruct.iSection3, ", eSection3 = ", GET_ARMORY_TRUCK_SECTION_TYPE_NAME(eSection3))
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iSection3Price = ", sTruck_price_struct.iSection3Price)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sTruckDataStruct.iColour = ", g_sTruckDataStruct.iColour, ", eColour = ", GET_ARMORY_TRUCK_SECTION_TINT_NAME(INT_TO_ENUM(ARMORY_TRUCK_SECTION_TINT_ENUM, GET_TRUCK_SECTION_TINT_FROM_SF(g_sTruckDataStruct.iColour))))
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iColourPrice = ", sTruck_price_struct.iColourPrice)
|
|
|
|
// add all the truck mods.
|
|
IF ADD_TRUCK_MODS_TO_BASKET(0, eCategory,
|
|
GET_TRUCK_CAB_FROM_SF(g_sTruckDataStruct.iCab), sTruck_price_struct.iCabPrice,
|
|
ENUM_TO_INT(eSection1), sTruck_price_struct.iSection1Price,
|
|
ENUM_TO_INT(eSection2), sTruck_price_struct.iSection2Price,
|
|
ENUM_TO_INT(eSection3), sTruck_price_struct.iSection3Price,
|
|
GET_TRUCK_SECTION_TINT_FROM_SF(g_sTruckDataStruct.iColour), sTruck_price_struct.iColourPrice)
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - truck update Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - truck update CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - truck update failed to start basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - truck update failed to add mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ELIF eCategory = CATEGORY_INVENTORY_VEHICLE AND IS_CATALOG_ITEM_A_PLANE_ITEM(iItemId)
|
|
IF GET_MP_INT_CHARACTER_STAT(MP_STAT_INV_PLANE_MODEL_0) = 0
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding new plane to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sPlaneDataStruct.iGunTurret = ", g_sPlaneDataStruct.iGunTurret)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGunTurretPrice = ", sPlane_price_struct.iGunTurretPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sPlaneDataStruct.iVehShop = ", g_sPlaneDataStruct.iVehShop)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iVehShopPrice = ", sPlane_price_struct.iVehShopPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sPlaneDataStruct.iWeaShop = ", g_sPlaneDataStruct.iWeaShop)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iWeaShopPrice = ", sPlane_price_struct.iWeaShopPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sPlaneDataStruct.iInterior = ", g_sPlaneDataStruct.iInterior)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iInteriorPrice = ", sPlane_price_struct.iInteriorPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sPlaneDataStruct.iAvenger = ", g_sPlaneDataStruct.iAvenger)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iAvengerPrice = ", sPlane_price_struct.iAvengerPrice)
|
|
|
|
// vehicle = 0
|
|
// IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, GET_VEHICLE_INVENTORY_ITEM_FROM_PEGASUS_ITEM(iItemID), eAction, 1, 0, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
// add all the plane mods.
|
|
IF ADD_PLANE_MODS_TO_BASKET(0, eCategory, g_sPlaneDataStruct,
|
|
sPlane_price_struct.iGunTurretPrice,
|
|
sPlane_price_struct.iVehShopPrice,
|
|
sPlane_price_struct.iWeaShopPrice,
|
|
sPlane_price_struct.iInteriorPrice,
|
|
sPlane_price_struct.iAvengerPrice)
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New plane Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New plane CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New plane failed to start basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New plane failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add new plane to basket")
|
|
// iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
// ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding plane update to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(CATEGORY_INVENTORY_VEHICLE_MOD), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sPlaneDataStruct.iGunTurret = ", g_sPlaneDataStruct.iGunTurret)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGunTurretPrice = ", sPlane_price_struct.iGunTurretPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sPlaneDataStruct.iVehShop = ", g_sPlaneDataStruct.iVehShop)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iVehShopPrice = ", sPlane_price_struct.iVehShopPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sPlaneDataStruct.iWeaShop = ", g_sPlaneDataStruct.iWeaShop)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iWeaShopPrice = ", sPlane_price_struct.iWeaShopPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sPlaneDataStruct.iInterior = ", g_sPlaneDataStruct.iInterior)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iInteriorPrice = ", sPlane_price_struct.iInteriorPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sPlaneDataStruct.iAvenger = ", g_sPlaneDataStruct.iAvenger)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iAvengerPrice = ", sPlane_price_struct.iAvengerPrice)
|
|
|
|
// add all the plane mods.
|
|
IF ADD_PLANE_MODS_TO_BASKET(0, eCategory, g_sPlaneDataStruct,
|
|
sPlane_price_struct.iGunTurretPrice,
|
|
sPlane_price_struct.iVehShopPrice,
|
|
sPlane_price_struct.iWeaShopPrice,
|
|
sPlane_price_struct.iInteriorPrice,
|
|
sPlane_price_struct.iAvengerPrice)
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - plane update Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - plane update CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - plane update failed to start basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - plane update failed to add mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ELIF eCategory = CATEGORY_INVENTORY_VEHICLE AND IS_CATALOG_ITEM_A_HACKER_TRUCK_ITEM(iItemId)
|
|
|
|
IF GET_MP_INT_CHARACTER_STAT(MP_STAT_INV_HACKERTRUCK_MODEL_0) = 0
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding new hacker truck to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHackerTruckDataStruct.iCab = ", g_sHackerTruckDataStruct.iCab, ", eCab = ", GET_MODEL_NAME_FOR_DEBUG(INT_TO_ENUM(MODEL_NAMES, g_sHackerTruckDataStruct.iCab)))
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iCabPrice = ", sHacker_truck_price_struct.iCabPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHackerTruckDataStruct.iDecal = ", g_sHackerTruckDataStruct.iDecal, " ", GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_DECAL, g_sHackerTruckDataStruct.iDecal))
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iDecalPrice = ", sHacker_truck_price_struct.iDecalPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHackerTruckDataStruct.iTint = ", g_sHackerTruckDataStruct.iTint)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iTintPrice = ", sHacker_truck_price_struct.iTintPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHackerTruckDataStruct.iMissileLauncher = ", g_sHackerTruckDataStruct.iMissileLauncher)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iMissileLauncherPrice = ", sHacker_truck_price_struct.iMissileLauncherPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHackerTruckDataStruct.iDroneStation = ", g_sHackerTruckDataStruct.iDroneStation)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iDroneStationPrice = ", sHacker_truck_price_struct.iDroneStationPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHackerTruckDataStruct.iWeaShop = ", g_sHackerTruckDataStruct.iWeaShop)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iWeaShopPrice = ", sHacker_truck_price_struct.iWeaShopPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHackerTruckDataStruct.iVehShop = ", g_sHackerTruckDataStruct.iVehShop)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iVehShopPrice = ", sHacker_truck_price_struct.iVehShopPrice)
|
|
|
|
// vehicle = 0
|
|
// IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, GET_VEHICLE_INVENTORY_ITEM_FROM_PEGASUS_ITEM(iItemID), eAction, 1, 0, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
// add all the hacker truck mods.
|
|
IF ADD_HACKER_TRUCK_MODS_TO_BASKET(0, eCategory,
|
|
g_sHackerTruckDataStruct, sHacker_truck_price_struct)
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New hacker truck Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New hacker truck CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New hacker truck failed to start basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New hacker truck failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add new hacker truck to basket")
|
|
// iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
// ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding hacker truck update to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(CATEGORY_INVENTORY_VEHICLE_MOD), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHackerTruckDataStruct.iCab = ", g_sHackerTruckDataStruct.iCab, ", eCab = ", GET_MODEL_NAME_FOR_DEBUG(INT_TO_ENUM(MODEL_NAMES, g_sHackerTruckDataStruct.iCab)))
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iCabPrice = ", sHacker_truck_price_struct.iCabPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHackerTruckDataStruct.iDecal = ", g_sHackerTruckDataStruct.iDecal, " ", GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_DECAL, g_sHackerTruckDataStruct.iDecal))
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iDecalPrice = ", sHacker_truck_price_struct.iDecalPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHackerTruckDataStruct.iTint = ", g_sHackerTruckDataStruct.iTint)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iTintPrice = ", sHacker_truck_price_struct.iTintPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHackerTruckDataStruct.iMissileLauncher = ", g_sHackerTruckDataStruct.iMissileLauncher)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iMissileLauncherPrice = ", sHacker_truck_price_struct.iMissileLauncherPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHackerTruckDataStruct.iDroneStation = ", g_sHackerTruckDataStruct.iDroneStation)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iDroneStationPrice = ", sHacker_truck_price_struct.iDroneStationPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHackerTruckDataStruct.iWeaShop = ", g_sHackerTruckDataStruct.iWeaShop)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iWeaShopPrice = ", sHacker_truck_price_struct.iWeaShopPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHackerTruckDataStruct.iVehShop = ", g_sHackerTruckDataStruct.iVehShop)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iVehShopPrice = ", sHacker_truck_price_struct.iVehShopPrice)
|
|
|
|
// add all the hacker truck mods.
|
|
IF ADD_HACKER_TRUCK_MODS_TO_BASKET(0, eCategory,
|
|
g_sHackerTruckDataStruct, sHacker_truck_price_struct)
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - hacker truck update Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - hacker truck update CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - hacker truck update failed to start basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - hacker truck update failed to add mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
#IF FEATURE_HEIST_ISLAND
|
|
ELIF eCategory = CATEGORY_INVENTORY_VEHICLE AND IS_CATALOG_ITEM_A_KOSATKA_ITEM(iItemId)
|
|
|
|
IF GET_MP_INT_CHARACTER_STAT(MP_STAT_IH_SUB_OWNED) = 0
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding new kosatka to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sKosatkaDataStruct.iOwned = ", g_sKosatkaDataStruct.iOwned, ", iOwned = ", GET_MODEL_NAME_FOR_DEBUG(INT_TO_ENUM(MODEL_NAMES, g_sKosatkaDataStruct.iOwned)))
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iOwnedPrice = ", sKosatka_price_struct.iOwnedPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sKosatkaDataStruct.iColour = ", g_sKosatkaDataStruct.iColour, " ", GET_KOSATKA_MOD_NAME_FROM_ID(eKOSATKA_MOD_COLOUR, g_sKosatkaDataStruct.iColour))
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iDecalPrice = ", sKosatka_price_struct.iColourPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sKosatkaDataStruct.iFlag = ", g_sKosatkaDataStruct.iFlag)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iFlagPrice = ", sKosatka_price_struct.iFlagPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sKosatkaDataStruct.iSonar = ", g_sKosatkaDataStruct.iSonar)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iSonarPrice = ", sKosatka_price_struct.iSonarPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sKosatkaDataStruct.iMissiles = ", g_sKosatkaDataStruct.iMissiles)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iMissilesPrice = ", sKosatka_price_struct.iMissilesPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sKosatkaDataStruct.iWeaShop = ", g_sKosatkaDataStruct.iWeaShop)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iWeaShopPrice = ", sKosatka_price_struct.iWeaShopPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sKosatkaDataStruct.iSeaSparrow2 = ", g_sKosatkaDataStruct.iSeaSparrow2)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iSeaSparrow2Price = ", sKosatka_price_struct.iSeaSparrow2Price)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sKosatkaDataStruct.iAvisa = ", g_sKosatkaDataStruct.iAvisa)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iAvisaPrice = ", sKosatka_price_struct.iAvisaPrice)
|
|
|
|
// vehicle = 0
|
|
// IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, GET_VEHICLE_INVENTORY_ITEM_FROM_PEGASUS_ITEM(iItemID), eAction, 1, 0, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
// add all the kosatka mods.
|
|
IF ADD_KOSATKA_MODS_TO_BASKET(0, eCategory,
|
|
g_sKosatkaDataStruct, sKosatka_price_struct)
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New kosatka Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New kosatka CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New kosatka failed to start basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New kosatka failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add new hacker truck to basket")
|
|
// iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
// ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding kosatka update to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(CATEGORY_INVENTORY_VEHICLE_MOD), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sKosatkaDataStruct.iOwned = ", g_sKosatkaDataStruct.iOwned, ", iOwned = ", GET_MODEL_NAME_FOR_DEBUG(INT_TO_ENUM(MODEL_NAMES, g_sKosatkaDataStruct.iOwned)))
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iOwnedPrice = ", sKosatka_price_struct.iOwnedPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sKosatkaDataStruct.iColour = ", g_sKosatkaDataStruct.iColour, " ", GET_KOSATKA_MOD_NAME_FROM_ID(eKOSATKA_MOD_COLOUR, g_sKosatkaDataStruct.iColour))
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iDecalPrice = ", sKosatka_price_struct.iColourPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sKosatkaDataStruct.iFlag = ", g_sKosatkaDataStruct.iFlag)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iFlagPrice = ", sKosatka_price_struct.iFlagPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sKosatkaDataStruct.iSonar = ", g_sKosatkaDataStruct.iSonar)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iSonarPrice = ", sKosatka_price_struct.iSonarPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sKosatkaDataStruct.iMissiles = ", g_sKosatkaDataStruct.iMissiles)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iMissilesPrice = ", sKosatka_price_struct.iMissilesPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sKosatkaDataStruct.iWeaShop = ", g_sKosatkaDataStruct.iWeaShop)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iWeaShopPrice = ", sKosatka_price_struct.iWeaShopPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sKosatkaDataStruct.iSeaSparrow2 = ", g_sKosatkaDataStruct.iSeaSparrow2)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iSeaSparrow2Price = ", sKosatka_price_struct.iSeaSparrow2Price)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sKosatkaDataStruct.iAvisa = ", g_sKosatkaDataStruct.iAvisa)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iAvisaPrice = ", sKosatka_price_struct.iAvisaPrice)
|
|
|
|
// add all the kosatka mods.
|
|
IF ADD_KOSATKA_MODS_TO_BASKET(0, CATEGORY_INVENTORY_VEHICLE_MOD,
|
|
g_sKosatkaDataStruct, sKosatka_price_struct)
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - kosatka update Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - kosatka update CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - kosatka update failed to start basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - kosatka update failed to add mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
ELIF eCategory = CATEGORY_INVENTORY_WAREHOUSE
|
|
|
|
IF IS_CATALOG_ITEM_A_BUNKER_ITEM(iItemID)
|
|
INT g_sBunkerDataStruct_iDecor, g_sBunkerDataStruct_iAccommodation, g_sBunkerDataStruct_iFiringRange, g_sBunkerDataStruct_iGunLocker, g_sBunkerDataStruct_iTransportation
|
|
GET_SCALEFORM_FACTORY_DATA(g_sBunkerDataStruct_iDecor, g_sBunkerDataStruct_iAccommodation, g_sBunkerDataStruct_iFiringRange, g_sBunkerDataStruct_iGunLocker, g_sBunkerDataStruct_iTransportation)
|
|
|
|
IF NOT DOES_ITEM_MATCH_SELLING_ITEM(iItemId, iSellingItemId) //
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding new factory property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemId, eAction, 1, iPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
|
|
|
|
// new factory property we are trading in.
|
|
IF iSellingItemId != 0
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding trade new factory property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iSellingPrice:$", iSellingPrice)
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iSellingItemId, eAction, 1, iSellingPrice, 1, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added new factory property iSellingItemId ", iSellingItemId)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add selling item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
/* IF (NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemInteriorID, eAction, 1, 0, 0, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryInteriorID))
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added new factory property iItemInteriorID ", iItemInteriorID)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add interior item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
*/
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sBunkerDataStruct_iDecor = ", g_sBunkerDataStruct_iDecor)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iDecorPrice = ", sBunker_price_struct.iDecorPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sBunkerDataStruct_iAccommodation = ", g_sBunkerDataStruct_iAccommodation)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iAccommodationPrice = ", sBunker_price_struct.iAccommodationPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sBunkerDataStruct_iFiringRange = ", g_sBunkerDataStruct_iFiringRange)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iFiringRangePrice = ", sBunker_price_struct.iFiringRangePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sBunkerDataStruct_iGunLocker = ", g_sBunkerDataStruct_iGunLocker)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGunLockerPrice = ", sBunker_price_struct.iGunLockerPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sBunkerDataStruct_iTransportation = ", g_sBunkerDataStruct_iTransportation)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iTransportationPrice = ", sBunker_price_struct.iTransportationPrice)
|
|
|
|
IF ADD_BUNKER_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_WAREHOUSE_INTERIOR,
|
|
g_sBunkerDataStruct_iDecor, sBunker_price_struct.iDecorPrice,
|
|
g_sBunkerDataStruct_iAccommodation, sBunker_price_struct.iAccommodationPrice,
|
|
g_sBunkerDataStruct_iFiringRange, sBunker_price_struct.iFiringRangePrice,
|
|
g_sBunkerDataStruct_iGunLocker, sBunker_price_struct.iGunLockerPrice,
|
|
g_sBunkerDataStruct_iTransportation, sBunker_price_struct.iTransportationPrice)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New gunrunning bunker failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start factory basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add factory item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding factory property upgrade to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sBunkerDataStruct_iDecor = ", g_sBunkerDataStruct_iDecor)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iDecorPrice = ", sBunker_price_struct.iDecorPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sBunkerDataStruct_iAccommodation = ", g_sBunkerDataStruct_iAccommodation)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iAccommodationPrice = ", sBunker_price_struct.iAccommodationPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sBunkerDataStruct_iFiringRange = ", g_sBunkerDataStruct_iFiringRange)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iFiringRangePrice = ", sBunker_price_struct.iFiringRangePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sBunkerDataStruct_iGunLocker = ", g_sBunkerDataStruct_iGunLocker)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGunLockerPrice = ", sBunker_price_struct.iGunLockerPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sBunkerDataStruct_iTransportation = ", g_sBunkerDataStruct_iTransportation)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iTransportationPrice = ", sBunker_price_struct.iTransportationPrice)
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added factory property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add factory property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore factory property upgrade coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_BUNKER_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_WAREHOUSE_INTERIOR,
|
|
g_sBunkerDataStruct_iDecor, sBunker_price_struct.iDecorPrice,
|
|
g_sBunkerDataStruct_iAccommodation, sBunker_price_struct.iAccommodationPrice,
|
|
g_sBunkerDataStruct_iFiringRange, sBunker_price_struct.iFiringRangePrice,
|
|
g_sBunkerDataStruct_iGunLocker, sBunker_price_struct.iGunLockerPrice,
|
|
g_sBunkerDataStruct_iTransportation, sBunker_price_struct.iTransportationPrice)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New gunrunning bunker failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start factory basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELIF IS_CATALOG_ITEM_A_HANGAR_ITEM(iItemId)
|
|
HANGAR_DATA_STRUCT g_sHangarData
|
|
GET_SCALEFORM_HANGAR_DATA(g_sHangarData)
|
|
|
|
IF NOT DOES_ITEM_MATCH_SELLING_ITEM(iItemId, iSellingItemId) //
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding new hangar property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHangarData.iFlooring = ", g_sHangarData.iFlooring)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iFlooringPrice = ", sHangar_price_struct.iFlooringPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHangarData.iSleepingQuarters = ", g_sHangarData.iSleepingQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iAccommodationPrice = ", sHangar_price_struct.iAccommodationPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHangarData.iFurniture = ", g_sHangarData.iFurniture)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iFurniturePrice = ", sHangar_price_struct.iFurniturePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHangarData.iWorkshop = ", g_sHangarData.iWorkshop)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iModshopPrice = ", sHangar_price_struct.iModshopPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHangarData.iStyle = ", g_sHangarData.iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iColourPrice = ", sHangar_price_struct.iColourPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHangarData.iLighting = ", g_sHangarData.iLighting)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iLightingPrice = ", sHangar_price_struct.iLightingPrice)
|
|
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemId, eAction, 1, iPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
|
|
// new hangar property we are trading in.
|
|
IF iSellingItemId != 0
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding trade new hangar property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iSellingPrice:$", iSellingPrice)
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iSellingItemId, eAction, 1, iSellingPrice, 1, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
//
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add selling item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// IF (NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemInteriorID, eAction, 1, 0, 0, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryInteriorID))
|
|
// //
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add interior item to basket")
|
|
// iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
// RETURN TRUE
|
|
// ENDIF
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added new hangar property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add new hangar property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore new hangar property coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_HANGAR_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR,
|
|
g_sHangarData.iFlooring, sHangar_price_struct.iFlooringPrice,
|
|
g_sHangarData.iSleepingQuarters, sHangar_price_struct.iAccommodationPrice,
|
|
g_sHangarData.iFurniture, sHangar_price_struct.iFurniturePrice,
|
|
g_sHangarData.iWorkshop, sHangar_price_struct.iModshopPrice,
|
|
g_sHangarData.iStyle, sHangar_price_struct.iColourPrice,
|
|
g_sHangarData.iLighting, sHangar_price_struct.iLightingPrice)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New hangar failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start hangar basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add new hangar item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding hangar property upgrade to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHangarData.iFlooring = ", g_sHangarData.iFlooring)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iFlooringPrice = ", sHangar_price_struct.iFlooringPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHangarData.iSleepingQuarters = ", g_sHangarData.iSleepingQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iAccommodationPrice = ", sHangar_price_struct.iAccommodationPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHangarData.iFurniture = ", g_sHangarData.iFurniture)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iFurniturePrice = ", sHangar_price_struct.iFurniturePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHangarData.iWorkshop = ", g_sHangarData.iWorkshop)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iModshopPrice = ", sHangar_price_struct.iModshopPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHangarData.iStyle = ", g_sHangarData.iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iColourPrice = ", sHangar_price_struct.iColourPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sHangarData.iLighting = ", g_sHangarData.iLighting)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iLightingPrice = ", sHangar_price_struct.iLightingPrice)
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added hangar property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add hangar property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore hangar property upgrade coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_HANGAR_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR,
|
|
g_sHangarData.iFlooring, sHangar_price_struct.iFlooringPrice,
|
|
g_sHangarData.iSleepingQuarters, sHangar_price_struct.iAccommodationPrice,
|
|
g_sHangarData.iFurniture, sHangar_price_struct.iFurniturePrice,
|
|
g_sHangarData.iWorkshop, sHangar_price_struct.iModshopPrice,
|
|
g_sHangarData.iStyle, sHangar_price_struct.iColourPrice,
|
|
g_sHangarData.iLighting, sHangar_price_struct.iLightingPrice)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Hangar upgrade failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start hangar upgrade basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELIF IS_CATALOG_ITEM_A_DEFUNCT_BASE_ITEM(iItemId)
|
|
DEFUNCT_BASE_DATA_STRUCT g_sDefunctBaseData
|
|
GET_SCALEFORM_DEFUNCT_BASE_DATA(g_sDefunctBaseData)
|
|
|
|
IF NOT DOES_ITEM_MATCH_SELLING_ITEM(iItemId, iSellingItemId) //
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding new defunct base property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sDefunctBaseData.iPersonalQuarters = ", g_sDefunctBaseData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iPersonalQuartersPrice = ", sDefunct_base_price_struct.iPersonalQuartersPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sDefunctBaseData.iOrbitalWeapon = ", g_sDefunctBaseData.iOrbitalWeapon)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iOrbitalWeaponPrice = ", sDefunct_base_price_struct.iOrbitalWeaponPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sDefunctBaseData.iSecurityRoom = ", g_sDefunctBaseData.iSecurityRoom)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iSecurityRoomPrice = ", sDefunct_base_price_struct.iSecurityRoomPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sDefunctBaseData.iLounge = ", g_sDefunctBaseData.iLounge)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iLoungePrice = ", sDefunct_base_price_struct.iLoungePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sDefunctBaseData.iPrivicyGlass = ", g_sDefunctBaseData.iPrivicyGlass)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iPrivicyGlassPrice = ", sDefunct_base_price_struct.iPrivicyGlassPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sDefunctBaseData.iStyle = ", g_sDefunctBaseData.iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iStylePrice = ", sDefunct_base_price_struct.iStylePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sDefunctBaseData.iGraphics = ", g_sDefunctBaseData.iGraphics)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGraphicsPrice = ", sDefunct_base_price_struct.iGraphicsPrice)
|
|
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemId, eAction, 1, iPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
|
|
// new defunct base property we are trading in.
|
|
IF iSellingItemId != 0
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding trade new defunct base property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iSellingPrice:$", iSellingPrice)
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iSellingItemId, eAction, 1, iSellingPrice, 1, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
//
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add selling item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// IF (NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemInteriorID, eAction, 1, 0, 0, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryInteriorID))
|
|
// //
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add interior item to basket")
|
|
// iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
// RETURN TRUE
|
|
// ENDIF
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added new defunct base property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add new defunct base property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore new defunct base property coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_DEFUNCT_BASE_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR, g_sDefunctBaseData,
|
|
sDefunct_base_price_struct.iPersonalQuartersPrice,
|
|
sDefunct_base_price_struct.iOrbitalWeaponPrice,
|
|
sDefunct_base_price_struct.iSecurityRoomPrice,
|
|
sDefunct_base_price_struct.iLoungePrice,
|
|
sDefunct_base_price_struct.iPrivicyGlassPrice,
|
|
sDefunct_base_price_struct.iStylePrice,
|
|
sDefunct_base_price_struct.iGraphicsPrice)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New defunct base failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start defunct base basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add new defunct base item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding defunct base property upgrade to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sDefunctBaseData.iPersonalQuarters = ", g_sDefunctBaseData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iPersonalQuartersPrice = ", sDefunct_base_price_struct.iPersonalQuartersPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sDefunctBaseData.iOrbitalWeapon = ", g_sDefunctBaseData.iOrbitalWeapon)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iOrbitalWeaponPrice = ", sDefunct_base_price_struct.iOrbitalWeaponPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sDefunctBaseData.iSecurityRoom = ", g_sDefunctBaseData.iSecurityRoom)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iSecurityRoomPrice = ", sDefunct_base_price_struct.iSecurityRoomPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sDefunctBaseData.iLounge = ", g_sDefunctBaseData.iLounge)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iLoungePrice = ", sDefunct_base_price_struct.iLoungePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sDefunctBaseData.iPrivicyGlass = ", g_sDefunctBaseData.iPrivicyGlass)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iPrivicyGlassPrice = ", sDefunct_base_price_struct.iPrivicyGlassPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sDefunctBaseData.iStyle = ", g_sDefunctBaseData.iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iStylePrice = ", sDefunct_base_price_struct.iStylePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sDefunctBaseData.iGraphics = ", g_sDefunctBaseData.iGraphics)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGraphicsPrice = ", sDefunct_base_price_struct.iGraphicsPrice)
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added defunct base property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add defunct base property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore defunct base property upgrade coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_DEFUNCT_BASE_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR, g_sDefunctBaseData,
|
|
sDefunct_base_price_struct.iPersonalQuartersPrice,
|
|
sDefunct_base_price_struct.iOrbitalWeaponPrice,
|
|
sDefunct_base_price_struct.iSecurityRoomPrice,
|
|
sDefunct_base_price_struct.iLoungePrice,
|
|
sDefunct_base_price_struct.iPrivicyGlassPrice,
|
|
sDefunct_base_price_struct.iStylePrice,
|
|
sDefunct_base_price_struct.iGraphicsPrice)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - defunct base upgrade failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start defunct base upgrade basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELIF IS_CATALOG_ITEM_A_NIGHTCLUB_ITEM(iItemId)
|
|
NIGHTCLUB_DATA_STRUCT g_sNightclubData
|
|
GET_SCALEFORM_NIGHTCLUB_DATA(g_sNightclubData)
|
|
|
|
IF NOT DOES_ITEM_MATCH_SELLING_ITEM(iItemId, iSellingItemId) //
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding new nightclub property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sNightclubData.iStyle = ", g_sNightclubData.iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iStylePrice = ", sNightclub_price_struct.iStylePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sNightclubData.iLighting = ", g_sNightclubData.iLighting)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iLightingPrice = ", sNightclub_price_struct.iLightingPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sNightclubData.iDancers = ", g_sNightclubData.iDancers)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iDancersPrice = ", sNightclub_price_struct.iDancersPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sNightclubData.iDryIce = ", g_sNightclubData.iDryIce)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iDryIcePrice = ", sNightclub_price_struct.iDryIcePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sNightclubData.iStorage = ", g_sNightclubData.iStorage)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iStoragePrice = ", sNightclub_price_struct.iStoragePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sNightclubData.iNameID = ", g_sNightclubData.iNameID)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iNamePrice = ", sNightclub_price_struct.iNamePrice)
|
|
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemId, eAction, 1, iPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
|
|
// new nightclub property we are trading in.
|
|
IF iSellingItemId != 0
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding trade new nightclub property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iSellingPrice:$", iSellingPrice)
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iSellingItemId, eAction, 1, iSellingPrice, 1, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
//
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add selling item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// IF (NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemInteriorID, eAction, 1, 0, 0, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryInteriorID))
|
|
// //
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add interior item to basket")
|
|
// iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
// RETURN TRUE
|
|
// ENDIF
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added new nightclub property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add new nightclub property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore new nightclub property coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_NIGHTCLUB_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR,
|
|
g_sNightclubData, sNightclub_price_struct)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New nightclub failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start nightclub basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add new nightclub item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding nightclub property upgrade to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sNightclubData.iStyle = ", g_sNightclubData.iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iStylePrice = ", sNightclub_price_struct.iStylePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sNightclubData.iLighting = ", g_sNightclubData.iLighting)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iLightingPrice = ", sNightclub_price_struct.iLightingPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sNightclubData.iDancers = ", g_sNightclubData.iDancers)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iDancersPrice = ", sNightclub_price_struct.iDancersPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sNightclubData.iDryIce = ", g_sNightclubData.iDryIce)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iDryIcePrice = ", sNightclub_price_struct.iDryIcePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sNightclubData.iStorage = ", g_sNightclubData.iStorage)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iStoragePrice = ", sNightclub_price_struct.iStoragePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sNightclubData.iNameID = ", g_sNightclubData.iNameID)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iNamePrice = ", sNightclub_price_struct.iNamePrice)
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added nightclub property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add nightclub property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore nightclub property upgrade coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_NIGHTCLUB_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR,
|
|
g_sNightclubData, sNightclub_price_struct)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - nightclub upgrade failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start nightclub upgrade basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELIF IS_CATALOG_ITEM_AN_ARENA_GARAGE_ITEM(iItemId)
|
|
ARENA_GARAGE_DATA_STRUCT g_sArenaData
|
|
GET_SCALEFORM_ARENA_GARAGE_DATA(g_sArenaData)
|
|
|
|
IF NOT DOES_ITEM_MATCH_SELLING_ITEM(iItemId, iSellingItemId) //
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding new arena garage property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArenaData.iStyle = ", g_sArenaData.iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iStylePrice = ", sArena_garage_price_struct.iStylePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArenaData.iGraphics = ", g_sArenaData.iGraphics)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGraphicsPrice = ", sArena_garage_price_struct.iGraphicsPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArenaData.iColour = ", g_sArenaData.iColour)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iColourPrice = ", sArena_garage_price_struct.iColourPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArenaData.iExpansionFloorB1 = ", g_sArenaData.iExpansionFloorB1)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iExpansionFloorB1Price = ", sArena_garage_price_struct.iExpansionFloorB1Price)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArenaData.iExpansionFloorB2 = ", g_sArenaData.iExpansionFloorB2)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iExpansionFloorB2Price = ", sArena_garage_price_struct.iExpansionFloorB2Price)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArenaData.iBennyMechanic = ", g_sArenaData.iBennyMechanic)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iBennyMechanicPrice = ", sArena_garage_price_struct.iBennyMechanicPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArenaData.iPersonalQuarters = ", g_sArenaData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iPersonalQuartersPrice = ", sArena_garage_price_struct.iPersonalQuartersPrice)
|
|
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemId, eAction, 1, iPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
|
|
// new arena garage property we are trading in.
|
|
IF iSellingItemId != 0
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding trade new arena garage property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iSellingPrice:$", iSellingPrice)
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iSellingItemId, eAction, 1, iSellingPrice, 1, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
//
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add selling item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// IF (NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemInteriorID, eAction, 1, 0, 0, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryInteriorID))
|
|
// //
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add interior item to basket")
|
|
// iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
// RETURN TRUE
|
|
// ENDIF
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added new arena garage property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add new arena garage property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore new arena garage property coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_ARENA_GARAGE_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR,
|
|
g_sArenaData, sArena_garage_price_struct)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New arena garage failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start arena garage basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add new arena garage item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding arena garage property upgrade to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArenaData.iStyle = ", g_sArenaData.iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iStylePrice = ", sArena_garage_price_struct.iStylePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArenaData.iGraphics = ", g_sArenaData.iGraphics)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGraphicsPrice = ", sArena_garage_price_struct.iGraphicsPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArenaData.iColour = ", g_sArenaData.iColour)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iColourPrice = ", sArena_garage_price_struct.iColourPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArenaData.iExpansionFloorB1 = ", g_sArenaData.iExpansionFloorB1)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iExpansionFloorB1Price = ", sArena_garage_price_struct.iExpansionFloorB1Price)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArenaData.iExpansionFloorB2 = ", g_sArenaData.iExpansionFloorB2)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iExpansionFloorB2Price = ", sArena_garage_price_struct.iExpansionFloorB2Price)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArenaData.iBennyMechanic = ", g_sArenaData.iBennyMechanic)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iBennyMechanicPrice = ", sArena_garage_price_struct.iBennyMechanicPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArenaData.iPersonalQuarters = ", g_sArenaData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iPersonalQuartersPrice = ", sArena_garage_price_struct.iPersonalQuartersPrice)
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added arena garage property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add arena garage property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore arena garage property upgrade coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_ARENA_GARAGE_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR,
|
|
g_sArenaData, sArena_garage_price_struct)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - arena garage upgrade failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start arena garage upgrade basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELIF IS_CATALOG_ITEM_AN_CASINO_APT_ITEM(iItemId)
|
|
CASINO_APT_DATA_STRUCT g_sCasinoData
|
|
GET_SCALEFORM_CASINO_APT_DATA(g_sCasinoData)
|
|
|
|
IF NOT DOES_ITEM_MATCH_SELLING_ITEM(iItemId, iSellingItemId) //
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding new Casino Apt property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sCasinoData.iColourOption = ", g_sCasinoData.iColourOption)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iColourOptionPrice = ", sCasino_apt_price_struct.iColourOptionPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sCasinoData.iStyleOption = ", g_sCasinoData.iStyleOption)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iStyleOptionPrice = ", sCasino_apt_price_struct.iStyleOptionPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sCasinoData.iLounge = ", g_sCasinoData.iLounge)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iLoungePrice = ", sCasino_apt_price_struct.iLoungePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sCasinoData.iBar = ", g_sCasinoData.iBar)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iBarPrice = ", sCasino_apt_price_struct.iBarPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sCasinoData.iDealer = ", g_sCasinoData.iDealer)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iDealerPrice = ", sCasino_apt_price_struct.iDealerPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sCasinoData.iBedroom = ", g_sCasinoData.iBedroom)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iBedroomPrice = ", sCasino_apt_price_struct.iBedroomPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sCasinoData.iMediaroom = ", g_sCasinoData.iMediaroom)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iMediaroomPrice = ", sCasino_apt_price_struct.iMediaroomPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sCasinoData.iSpa = ", g_sCasinoData.iSpa)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iSpaPrice = ", sCasino_apt_price_struct.iSpaPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sCasinoData.iOffice = ", g_sCasinoData.iOffice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iOfficePrice = ", sCasino_apt_price_struct.iOfficePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sCasinoData.iGarage = ", g_sCasinoData.iGarage)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGaragePrice = ", sCasino_apt_price_struct.iGaragePrice)
|
|
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemId, eAction, 1, iPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
|
|
// new Casino Apt property we are trading in.
|
|
IF iSellingItemId != 0
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding trade new Casino Apt property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iSellingPrice:$", iSellingPrice)
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iSellingItemId, eAction, 1, iSellingPrice, 1, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
//
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add selling item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// IF (NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemInteriorID, eAction, 1, 0, 0, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryInteriorID))
|
|
// //
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add interior item to basket")
|
|
// iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
// RETURN TRUE
|
|
// ENDIF
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added new Casino Apt property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add new Casino Apt property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore new Casino Apt property coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_CASINO_APT_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR,
|
|
g_sCasinoData, sCasino_apt_price_struct)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New Casino Apt failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start Casino Apt basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add new Casino Apt item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding Casino Apt property upgrade to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sCasinoData.iColourOption = ", g_sCasinoData.iColourOption)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iColourOptionPrice = ", sCasino_apt_price_struct.iColourOptionPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sCasinoData.iStyleOption = ", g_sCasinoData.iStyleOption)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iStyleOptionPrice = ", sCasino_apt_price_struct.iStyleOptionPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sCasinoData.iLounge = ", g_sCasinoData.iLounge)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iLoungePrice = ", sCasino_apt_price_struct.iLoungePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sCasinoData.iBar = ", g_sCasinoData.iBar)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iBarPrice = ", sCasino_apt_price_struct.iBarPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sCasinoData.iDealer = ", g_sCasinoData.iDealer)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iDealerPrice = ", sCasino_apt_price_struct.iDealerPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sCasinoData.iBedroom = ", g_sCasinoData.iBedroom)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iBedroomPrice = ", sCasino_apt_price_struct.iBedroomPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sCasinoData.iMediaroom = ", g_sCasinoData.iMediaroom)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iMediaroomPrice = ", sCasino_apt_price_struct.iMediaroomPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sCasinoData.iSpa = ", g_sCasinoData.iSpa)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iSpaPrice = ", sCasino_apt_price_struct.iSpaPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sCasinoData.iOffice = ", g_sCasinoData.iOffice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iOfficePrice = ", sCasino_apt_price_struct.iOfficePrice)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sCasinoData.iGarage = ", g_sCasinoData.iGarage)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGaragePrice = ", sCasino_apt_price_struct.iGaragePrice)
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added Casino Apt property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add Casino Apt property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore Casino Apt property upgrade coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_CASINO_APT_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR,
|
|
g_sCasinoData, sCasino_apt_price_struct)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Casino Apt upgrade failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start Casino Apt upgrade basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELIF IS_CATALOG_ITEM_AN_ARCADE_ITEM(iItemId)
|
|
ARCADE_DATA_STRUCT g_sArcadeData
|
|
|
|
GET_SCALEFORM_ARCADE_DATA(g_sArcadeData)
|
|
|
|
IF NOT DOES_ITEM_MATCH_SELLING_ITEM(iItemId, iSellingItemId)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding new Arcade property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArcadeData.iFloor = ", g_sArcadeData.iFloor)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iFloorPrice = ", sArcade_price_struct.iFloorPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArcadeData.iCeiling = ", g_sArcadeData.iCeiling)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iCeilingPrice = ", sArcade_price_struct.iCeilingPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArcadeData.iWall = ", g_sArcadeData.iWall)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iWallPrice = ", sArcade_price_struct.iWallPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArcadeData.iPersonalQuarters = ", g_sArcadeData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iPersonalQuartersPrice = ", sArcade_price_struct.iPersonalQuartersPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArcadeData.iGarage = ", g_sArcadeData.iGarage)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGaragePrice = ", sArcade_price_struct.iGaragePrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArcadeData.iNeonLights = ", g_sArcadeData.iNeonLights)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iNeonLightsPrice = ", sArcade_price_struct.iNeonLightsPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArcadeData.iScreens = ", g_sArcadeData.iScreens)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iScreensPrice = ", sArcade_price_struct.iScreensPrice)
|
|
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemId, eAction, 1, iPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
IF iSellingItemId != 0
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding trade new Arcade property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iSellingPrice:$", iSellingPrice)
|
|
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iSellingItemId, eAction, 1, iSellingPrice, 1, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add selling item to basket")
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added new nightclub property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add new nightclub property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore new Arcade property coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_ARCADE_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR, g_sArcadeData, sArcade_price_struct)
|
|
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New Arcade failed to add default mods to basket")
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet = $-", iWalletAmount, ", bank = $-", iBankAmount, "): iPrice = $", iPrice, ", bankBalance = $", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance = $", NETWORK_GET_VC_WALLET_BALANCE())
|
|
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start Arcade basket checkout")
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add new Arcade item to basket")
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding Arcade property upgrade to basket eCategory: ", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction: ", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArcadeData.iFloor = ", g_sArcadeData.iFloor)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iFloorPrice = ", sArcade_price_struct.iFloorPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArcadeData.iCeiling = ", g_sArcadeData.iCeiling)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iCeilingPrice = ", sArcade_price_struct.iCeilingPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArcadeData.iWall = ", g_sArcadeData.iWall)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iWallPrice = ", sArcade_price_struct.iWallPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArcadeData.iPersonalQuarters = ", g_sArcadeData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iPersonalQuartersPrice = ", sArcade_price_struct.iPersonalQuartersPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArcadeData.iGarage = ", g_sArcadeData.iGarage)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iGaragePrice = ", sArcade_price_struct.iGaragePrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArcadeData.iNeonLights = ", g_sArcadeData.iNeonLights)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iNeonLightsPrice = ", sArcade_price_struct.iNeonLightsPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sArcadeData.iScreens = ", g_sArcadeData.iScreens)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iScreensPrice = ", sArcade_price_struct.iScreensPrice)
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added Arcade property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Failed to add Arcade property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore Arcade property upgrade coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_ARCADE_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR, g_sArcadeData, sArcade_price_struct)
|
|
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Arcade upgrade failed to add default mods to basket")
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet = $-", iWalletAmount, ", bank = $-", iBankAmount, "): iPrice = $", iPrice, ", bankBalance = $", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance = $", NETWORK_GET_VC_WALLET_BALANCE())
|
|
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start Arcade upgrade basket checkout")
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELIF IS_CATALOG_ITEM_AN_AUTO_SHOP_ITEM(iItemId)
|
|
AUTO_SHOP_DATA_STRUCT g_sAutoShopData
|
|
|
|
GET_SCALEFORM_AUTO_SHOP_DATA(g_sAutoShopData)
|
|
|
|
IF NOT DOES_ITEM_MATCH_SELLING_ITEM(iItemId, iSellingItemId)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding new Auto Shop property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sAutoShopData.iWall = ", g_sAutoShopData.iWall)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iWallPrice = ", sAutoShop_price_struct.iWallPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sAutoShopData.iTint = ", g_sAutoShopData.iTint)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iTintPrice = ", sAutoShop_price_struct.iTintPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sAutoShopData.iEmblem = ", g_sAutoShopData.iEmblem)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iEmblemPrice = ", sAutoShop_price_struct.iEmblemPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sAutoShopData.iCrewName = ", g_sAutoShopData.iCrewName)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iCrewNamePrice = ", sAutoShop_price_struct.iCrewNamePrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sAutoShopData.iStaff1 = ", g_sAutoShopData.iStaff1)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iStaff1Price = ", sAutoShop_price_struct.iStaff1Price)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sAutoShopData.iStaff2 = ", g_sAutoShopData.iStaff2)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iStaff2Price = ", sAutoShop_price_struct.iStaff2Price)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sAutoShopData.iCarLift = ", g_sAutoShopData.iCarLift)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iCarLiftPrice = ", sAutoShop_price_struct.iCarLiftPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sAutoShopData.iPersonalQuarters = ", g_sAutoShopData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iPersonalQuartersPrice = ", sAutoShop_price_struct.iPersonalQuartersPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sAutoShopData.iCarClubMembership = ", g_sAutoShopData.iCarClubMembership)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iCarClubMembershipPrice = ", sAutoShop_price_struct.iCarClubMembershipPrice)
|
|
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemId, eAction, 1, iPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
IF iSellingItemId != 0
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding trade new Auto Shop property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iSellingPrice:$", iSellingPrice)
|
|
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iSellingItemId, eAction, 1, iSellingPrice, 1, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add selling item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added new Auto Shop property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add new nightclub property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore new Auto Shop property coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_AUTO_SHOP_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR, g_sAutoShopData, sAutoShop_price_struct)
|
|
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New Auto Shop failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet = $-", iWalletAmount, ", bank = $-", iBankAmount, "): iPrice = $", iPrice, ", bankBalance = $", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance = $", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start Auto Shop basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add new Auto Shop item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding Auto Shop property upgrade to basket eCategory: ", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction: ", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sAutoShopData.iWall = ", g_sAutoShopData.iWall)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iWallPrice = ", sAutoShop_price_struct.iWallPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sAutoShopData.iTint = ", g_sAutoShopData.iTint)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iTintPrice = ", sAutoShop_price_struct.iTintPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sAutoShopData.iEmblem = ", g_sAutoShopData.iEmblem)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iEmblemPrice = ", sAutoShop_price_struct.iEmblemPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sAutoShopData.iCrewName = ", g_sAutoShopData.iCrewName)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iCrewNamePrice = ", sAutoShop_price_struct.iCrewNamePrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sAutoShopData.iStaff1 = ", g_sAutoShopData.iStaff1)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iStaff1Price = ", sAutoShop_price_struct.iStaff1Price)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sAutoShopData.iStaff2 = ", g_sAutoShopData.iStaff2)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iStaff2Price = ", sAutoShop_price_struct.iStaff2Price)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sAutoShopData.iCarLift = ", g_sAutoShopData.iCarLift)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iCarLiftPrice = ", sAutoShop_price_struct.iCarLiftPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sAutoShopData.iPersonalQuarters = ", g_sAutoShopData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iPersonalQuartersPrice = ", sAutoShop_price_struct.iPersonalQuartersPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...g_sAutoShopData.iCarClubMembership = ", g_sAutoShopData.iCarClubMembership)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iCarClubMembershipPrice = ", sAutoShop_price_struct.iCarClubMembershipPrice)
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added Auto Shop property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Failed to add Auto Shop property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore Auto Shop property upgrade coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_AUTO_SHOP_MODS_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR, g_sAutoShopData, sAutoShop_price_struct)
|
|
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Arcade upgrade failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet = $-", iWalletAmount, ", bank = $-", iBankAmount, "): iPrice = $", iPrice, ", bankBalance = $", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance = $", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start Auto Shop upgrade basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
#IF FEATURE_FIXER
|
|
ELIF IS_CATALOG_ITEM_A_FIXER_HQ_ITEM(iItemId)
|
|
FIXER_HQ_DATA_STRUCT sFixerHQData
|
|
|
|
GET_SCALEFORM_FIXER_HQ_DATA(sFixerHQData)
|
|
|
|
IF NOT DOES_ITEM_MATCH_SELLING_ITEM(iItemId, iSellingItemId)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding new Fixer HQ property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...sFixerHQData.iArt = ", sFixerHQData.iArt)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iArtPrice = ", sFixerHQ_price_struct.iArtPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...sFixerHQData.iWallpaper = ", sFixerHQData.iWallpaper)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iWallpaperPrice = ", sFixerHQ_price_struct.iWallpaperPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...sFixerHQData.iTint = ", sFixerHQData.iTint)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iTintPrice = ", sFixerHQ_price_struct.iTintPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...sFixerHQData.iVehWorkshop = ", sFixerHQData.iVehWorkshop)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iVehWorkshopPrice = ", sFixerHQ_price_struct.iVehWorkshopPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...sFixerHQData.iArmory = ", sFixerHQData.iArmory)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iArmorypPrice = ", sFixerHQ_price_struct.iArmoryPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...sFixerHQData.iPersonalQuarters = ", sFixerHQData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iPersonalQuartersPrice = ", sFixerHQ_price_struct.iPersonalQuartersPrice)
|
|
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemId, eAction, 1, iPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
IF iSellingItemId != 0
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding trade new Fixer HQ property to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iSellingPrice:$", iSellingPrice)
|
|
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iSellingItemId, eAction, 1, iSellingPrice, 1, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add selling Fixer HQ item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added new Fixer HQ property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add new Fixer HQ property coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore new Fixer HQ property coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_FIXER_HQ_UPGRADES_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR, sFixerHQData, sFixerHQ_price_struct)
|
|
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - New Fixer HQ failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet = $-", iWalletAmount, ", bank = $-", iBankAmount, "): iPrice = $", iPrice, ", bankBalance = $", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance = $", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start Fixer HQ basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add new Fixer HQ item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding Fixer HQ upgrade to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, ", iItemInteriorID: ", iItemInteriorID, ", iInventoryInteriorID: ", iInventoryInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...sFixerHQData.iArt = ", sFixerHQData.iArt)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iArtPrice = ", sFixerHQ_price_struct.iArtPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...sFixerHQData.iWallpaper = ", sFixerHQData.iWallpaper)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iWallpaperPrice = ", sFixerHQ_price_struct.iWallpaperPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...sFixerHQData.iTint = ", sFixerHQData.iTint)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iTintPrice = ", sFixerHQ_price_struct.iTintPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...sFixerHQData.iVehWorkshop = ", sFixerHQData.iVehWorkshop)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iVehWorkshopPrice = ", sFixerHQ_price_struct.iVehWorkshopPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...sFixerHQData.iArmory = ", sFixerHQData.iArmory)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iArmorypPrice = ", sFixerHQ_price_struct.iArmoryPrice)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...sFixerHQData.iPersonalQuarters = ", sFixerHQData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - ...iPersonalQuartersPrice = ", sFixerHQ_price_struct.iPersonalQuartersPrice)
|
|
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added Fixer HQ property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Failed to add Fixer HQ property upgrade coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore Fixer HQ property upgrade coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_FIXER_HQ_UPGRADES_TO_BASKET(iItemId, CATEGORY_INVENTORY_PROPERTY_INTERIOR, sFixerHQData, sFixerHQ_price_struct)
|
|
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Fixer HQ upgrade failed to add default upgrades to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage != SHOP_BASKET_STAGE_FAILED
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet = $-", iWalletAmount, ", bank = $-", iBankAmount, "): iPrice = $", iPrice, ", bankBalance = $", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance = $", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start Fixer HQ upgrade basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
ENDIF
|
|
|
|
|
|
// VEHICLES
|
|
ELIF eCategory = CATEGORY_INVENTORY_VEHICLE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding vehicle to basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey, " iCouponPrice: ", iCouponPrice)
|
|
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemId, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
|
|
/* <Item type="netCatalogOnlyItem" key="PM_COUPON_MIL_SITE">
|
|
<keyhash value="1776242445" />
|
|
<Item type="netCatalogOnlyItem" key="PM_COUPON_CAR_SITE">
|
|
<keyhash value="118439962" />
|
|
<Item type="netCatalogOnlyItem" key="PM_COUPON_PLANE_SITE">
|
|
<keyhash value="1514966546" />
|
|
<Item type="netCatalogOnlyItem" key="PO_COUPON_CAR_XMAS2017">
|
|
<keyhash value="-1996922865" />
|
|
<Item type="netCatalogOnlyItem" key="PO_COUPON_CAR2_XMAS2018>
|
|
<keyhash value="2125613953" />
|
|
<Item type="netCatalogOnlyItem" key="PO_COUPON_HELI_XMAS2018">
|
|
<keyhash value="-1462899015" />
|
|
<Item type="netCatalogOnlyItem" key="PO_COUPON_CAR2_XMAS2018">
|
|
<keyhash value="902521715" /> */
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iInventoryKey, eAction, 1, iCouponPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iDoCouponHash)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added vehicle coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add vehicle coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore vehicle coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF ADD_CURRENT_VEHICLE_MODS_TO_BASKET(confMpSlotIndex, tempVehID, TRUE)
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start vehicle basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add default mods to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add vehicle to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Adding basket eCategory:", GET_SHOP_ITEM_CATEGORIES_DEBUG_STRING(eCategory), ", eAction:", GET_CASH_TRANSACTION_ACTION_TYPE_DEBUG_STRING(eAction), ", iPrice:$", iPrice, ", iItemId:", iItemId, ", iInventoryKey:", iInventoryKey)
|
|
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iItemId, eAction, 1, iPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey)
|
|
IF iDoCouponHash != 0
|
|
IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, eCategory, iDoCouponHash, eAction, 1, iPrice, iStatValue, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iItemId)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Successfully added coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Faied to add coupon hash ", iDoCouponHash, " to basket (iItemId: ", iItemId, ").")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Ignore coupon hash ", iDoCouponHash)
|
|
ENDIF
|
|
|
|
IF NETWORK_START_BASKET_TRANSACTION_CHECKOUT()
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket checkout started")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
OR bCouponPriceZero
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPrice=$", iPrice, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_PENDING
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to start basket checkout")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - failed to add item to basket")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
// Pending
|
|
CASE SHOP_BASKET_STAGE_PENDING
|
|
INT iScriptTransactionIndex
|
|
iScriptTransactionIndex = GET_BASKET_TRANSACTION_SCRIPT_INDEX()
|
|
|
|
IF iScriptTransactionIndex >= 0
|
|
AND iScriptTransactionIndex < SHOPPING_TRANSACTION_MAX_NUMBER
|
|
IF IS_CASH_TRANSACTION_COMPLETE(iScriptTransactionIndex)
|
|
IF GET_CASH_TRANSACTION_STATUS(iScriptTransactionIndex) = CASH_TRANSACTION_STATUS_SUCCESS
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket transaction finished, success!")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_SUCCESS
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket transaction finished, failed!")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Basket transaction invalid, failed!")
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
ENDIF
|
|
BREAK
|
|
|
|
// Success
|
|
CASE SHOP_BASKET_STAGE_SUCCESS
|
|
//DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) -- we delete this later
|
|
bProcessingBasket = FALSE
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_ADD
|
|
|
|
IF NOT bBypassFakeCash
|
|
USE_FAKE_MP_CASH(FALSE)
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_CASH_CHANGE)
|
|
ENDIF
|
|
|
|
iProcessSuccess = GENERIC_TRANSACTION_STATE_SUCCESS
|
|
RETURN FALSE
|
|
BREAK
|
|
|
|
//Failed
|
|
CASE SHOP_BASKET_STAGE_FAILED
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
|
|
bProcessingBasket = FALSE
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_ADD
|
|
|
|
IF NOT bBypassFakeCash
|
|
USE_FAKE_MP_CASH(FALSE)
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_CASH_CHANGE)
|
|
ENDIF
|
|
|
|
iProcessSuccess = GENERIC_TRANSACTION_STATE_FAILED
|
|
RETURN FALSE
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
IF iProcessingBasketStage = SHOP_BASKET_STAGE_FAILED
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - was FORCE_CLOSE_BROWSER called to termiate the transaction? Set success to 0")
|
|
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
|
|
bProcessingBasket = FALSE
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_ADD
|
|
|
|
IF NOT bBypassFakeCash
|
|
USE_FAKE_MP_CASH(FALSE)
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_CASH_CHANGE)
|
|
ENDIF
|
|
|
|
iProcessSuccess = GENERIC_TRANSACTION_STATE_FAILED
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_ADD
|
|
iProcessSuccess = GENERIC_TRANSACTION_STATE_DEFAULT
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL SHOULD_ALLOW_DISABLE_WEAPON_LOADOUT_FROM_INTERNET()
|
|
IF NETWORK_IS_ACTIVITY_SESSION()
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF IS_PLAYER_CRITICAL_TO_ANY_EVENT(PLAYER_ID())
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
|
|
FUNC BOOL DO_BIGASS_VEHICLE_BUY(WEBSITE_INDEX_ENUM siteID,SITE_BUYABLE_VEHICLE sbv, INT iPrice, VEHICLE_SITE_FAIL_REASON &reason)
|
|
INT iBigAssID = GET_BIGASS_VEHICLE_INDICE_BIT_FROM_ENUM(sbv, g_eLastBuyableVehicleColourSelected)
|
|
COUPON_TYPE eDoCoupon = MAX_COUPONS
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: triggered on vehicle SBV ", GET_LABEL_BUYABLE_VEHICLE(sbv), ":", sbv, ", iBigAssID: ", iBigAssID)
|
|
|
|
IF iBigAssID < -1 //OR iBigAssID > 31
|
|
CWARNINGLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: failed due to invalid index ", iBigAssID)
|
|
reason = VSFR_INVALID_CATEGORY
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
//Are bigass vehicles not purchaseable yet?
|
|
IF NOT ARE_ALL_INSTANCED_TUTORIALS_COMPLETE()
|
|
CWARNINGLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: failed due to FM trigger not done yet")
|
|
reason = VSFR_BIGASS_NOT_UNLOCKED
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
BOOL bPreviousBigassVehicle
|
|
VEHICLE_INDEX vi = NULL
|
|
INT iSlotToUse = -1, iDisplaySlotToUse = -1
|
|
|
|
//is it already owned?
|
|
IF (sbv = BV_DLC_BIG_YACHT)
|
|
IF NOT IS_FM_TYPE_UNLOCKED(FMMC_TYPE_CUSTOM_CAR_GARAGE)
|
|
IF GET_PLAYER_RANK(GET_PLAYER_INDEX()) < 5
|
|
CWARNINGLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: failed due to insufficient rank:", GET_PLAYER_RANK(GET_PLAYER_INDEX()))
|
|
reason = VSFR_INSUFFCIENT_RANK
|
|
RETURN FALSE
|
|
ELSE
|
|
CWARNINGLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: failed due to pending sufficient rank")
|
|
reason = VSFR_INSUFFCIENT_RANK_PENDING
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PLAYER_CRITICAL_TO_ANY_EVENT(PLAYER_ID())
|
|
AND GB_GET_PLAYER_CURRENT_GANG_BOSS_MISSION(PLAYER_ID()) = FMMC_TYPE_GB_YACHT_ROBBERY
|
|
CWARNINGLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: failed due to yacht robbery active")
|
|
reason = VSFR_NOT_SAFE
|
|
RETURN FALSE
|
|
ENDIF
|
|
ELIF (sbv = BV_DLC_BIG_TRUCK)
|
|
FACTORY_ID eTradeInFactory = GET_OWNED_BUNKER(PLAYER_ID())
|
|
|
|
IF eTradeInFactory = FACTORY_ID_INVALID
|
|
OR eTradeInFactory = FACTORY_ID_MAX
|
|
CWARNINGLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: failed due to player not owing bunker")
|
|
reason = VSFR_NOT_SAFE
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF NOT USE_SERVER_TRANSACTIONS()
|
|
bPreviousBigassVehicle = IS_BIG_ASS_VEHICLE_BS_SET(GET_BIGASS_VEHICLE_INDICE_BIT_FROM_ENUM(BV_DLC_BIG_TRUCK))
|
|
ELSE
|
|
bPreviousBigassVehicle = (GET_MP_INT_CHARACTER_STAT(MP_STAT_INV_TRUCK_MODEL_0) != 0)
|
|
ENDIF
|
|
|
|
INT iAltVersion = g_sTruckDataStruct.iCab
|
|
BOOL bAltVersion = (iAltVersion = 0)
|
|
CONFIGURE_STRUCT_FOR_BUYABLE_VEHICLE(sbv, g_sConfVssMP, TRUE, DEFAULT, iAltVersion, siteID)
|
|
|
|
///IF NOT bPreviousBigassVehicle
|
|
// iSlotToUse = MP_SAVE_VEHICLE_GET_EMPTY_SAVE_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,g_sConfVssMP.VehicleSetup.eModel,DEFAULT)
|
|
//ELSE
|
|
iSlotToUse = MP_SAVE_VEHICLE_GET_EMPTY_SAVE_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,g_sConfVssMP.VehicleSetup.eModel,DEFAULT,DEFAULT,TRUE)
|
|
//ENDIF
|
|
iDisplaySlotToUse = DISPLAY_SLOT_MODDED_ARMOURY_TRUCK
|
|
|
|
IF NOT bPreviousBigassVehicle
|
|
AND iSlotToUse = -1
|
|
CASSERTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: failed due to buying truck but iSlotToUse = -1")
|
|
reason = VSFR_NOT_SAFE
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
confMpSlotIndex = iSlotToUse
|
|
confMPDisplayIndex = iDisplaySlotToUse
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - waiting for CREATE_AND_POPULATE_VEHICLE_DETAILS_FOR_MP_VEHICLE_BUY(", GET_LABEL_BUYABLE_VEHICLE(sbv), ", ", GET_WEBSITE_FROM_INDEX(siteID), ", ", GET_SAFE_DISPLAY_NAME_FROM_VEHICLE_MODEL(g_sConfVssMP.VehicleSetup.eModel), ", vi, iAltVersion:", iAltVersion, ")")
|
|
WHILE NOT CREATE_AND_POPULATE_VEHICLE_DETAILS_FOR_MP_WEBSITE_VEHICLE_BUY(sbv, siteID, g_sConfVssMP, vi, bAltVersion)
|
|
AND DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
|
|
BROWSER_CURSOR_LOADING(FALSE)
|
|
IF IS_USING_CURSOR(FRONTEND_CONTROL)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_MOUSE_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_X ))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_Y ))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
fMouseWheelScrollSpeed = 0.0
|
|
ENDIF
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ELIF (sbv = BV_DLC_BIG_PLANE)
|
|
DEFUNCT_BASE_ID eTradeInBase = GET_PLAYERS_OWNED_DEFUNCT_BASE(PLAYER_ID())
|
|
|
|
IF NOT IS_DEFUNCT_BASE_ID_VALID(eTradeInBase)
|
|
CWARNINGLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: failed due to player not owing base")
|
|
reason = VSFR_NOT_SAFE
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF NOT USE_SERVER_TRANSACTIONS()
|
|
bPreviousBigassVehicle = IS_BIG_ASS_VEHICLE_BS_SET(GET_BIGASS_VEHICLE_INDICE_BIT_FROM_ENUM(BV_DLC_BIG_PLANE))
|
|
ELSE
|
|
bPreviousBigassVehicle = (GET_MP_INT_CHARACTER_STAT(MP_STAT_INV_PLANE_MODEL_0) != 0)
|
|
ENDIF
|
|
|
|
INT iAltVersion = 0
|
|
BOOL bAltVersion = (iAltVersion = 0)
|
|
CONFIGURE_STRUCT_FOR_BUYABLE_VEHICLE(sbv, g_sConfVssMP, TRUE, DEFAULT, iAltVersion, siteID)
|
|
|
|
IF (g_sPlaneDataStruct.iGunTurret = 0)
|
|
g_sConfVssMP.VehicleSetup.iModIndex[MOD_ROOF] = 0
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: transaction, no turret")
|
|
ELSE
|
|
g_sConfVssMP.VehicleSetup.iModIndex[MOD_ROOF] = 1
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: transaction, has turret")
|
|
ENDIF
|
|
|
|
///IF NOT bPreviousBigassVehicle
|
|
// iSlotToUse = MP_SAVE_VEHICLE_GET_EMPTY_SAVE_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,g_sConfVssMP.VehicleSetup.eModel,DEFAULT)
|
|
//ELSE
|
|
iSlotToUse = MP_SAVE_VEHICLE_GET_EMPTY_SAVE_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,g_sConfVssMP.VehicleSetup.eModel,DEFAULT,DEFAULT,TRUE)
|
|
//ENDIF
|
|
iDisplaySlotToUse = DISPLAY_SLOT_AVENGER_HELI
|
|
|
|
IF NOT bPreviousBigassVehicle
|
|
AND iSlotToUse = -1
|
|
CASSERTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: failed due to buying plane but iSlotToUse = -1")
|
|
reason = VSFR_NOT_SAFE
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
confMpSlotIndex = iSlotToUse
|
|
confMPDisplayIndex = iDisplaySlotToUse
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - waiting for CREATE_AND_POPULATE_VEHICLE_DETAILS_FOR_MP_VEHICLE_BUY(", GET_LABEL_BUYABLE_VEHICLE(sbv), ", ", GET_WEBSITE_FROM_INDEX(siteID), ", ", GET_SAFE_DISPLAY_NAME_FROM_VEHICLE_MODEL(g_sConfVssMP.VehicleSetup.eModel), ", vi, iAltVersion:", iAltVersion, ")")
|
|
WHILE NOT CREATE_AND_POPULATE_VEHICLE_DETAILS_FOR_MP_WEBSITE_VEHICLE_BUY(sbv, siteID, g_sConfVssMP, vi, bAltVersion)
|
|
AND DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
|
|
BROWSER_CURSOR_LOADING(FALSE)
|
|
IF IS_USING_CURSOR(FRONTEND_CONTROL)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_MOUSE_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_X ))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_Y ))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
fMouseWheelScrollSpeed = 0.0
|
|
ENDIF
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ELIF (sbv = BV_DLC_HACKER_TRUCK)
|
|
BUSINESS_HUB_ID eTradeInBusinessHub = GET_PLAYERS_OWNED_BUSINESS_HUB(PLAYER_ID())
|
|
|
|
IF eTradeInBusinessHub = BUSINESS_HUB_ID_INVALID
|
|
OR eTradeInBusinessHub = BUSINESS_HUB_ID_COUNT
|
|
CWARNINGLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: failed due to player not owing business hub")
|
|
reason = VSFR_NOT_SAFE
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF NOT USE_SERVER_TRANSACTIONS()
|
|
bPreviousBigassVehicle = IS_BIG_ASS_VEHICLE_BS_SET(GET_BIGASS_VEHICLE_INDICE_BIT_FROM_ENUM(BV_DLC_HACKER_TRUCK))
|
|
ELSE
|
|
//
|
|
INT iSaveSlot, iModelInSaveSlot
|
|
MPSV_GET_SAVE_SLOT_FROM_DISPLAY_SLOT_USING_STATS(DISPLAY_SLOT_MEGAWARE_MOC, iSaveSlot)
|
|
IF iSaveSlot >= 0
|
|
iModelInSaveSlot = GET_MP_INT_CHARACTER_STAT(GET_INT_STAT_FOR_VEHICLE_SLOT(MPSV_STAT_ELEMENT_MODEL,iSaveSlot))
|
|
ENDIF
|
|
bPreviousBigassVehicle = (INT_TO_ENUM(MODEL_NAMES,iModelInSaveSlot) = TERBYTE)
|
|
ENDIF
|
|
|
|
INT iAltVersion = g_sHackerTruckDataStruct.iCab
|
|
BOOL bAltVersion = (iAltVersion = 0)
|
|
CONFIGURE_STRUCT_FOR_BUYABLE_VEHICLE(sbv, g_sConfVssMP, TRUE, DEFAULT, iAltVersion, siteID)
|
|
|
|
///IF NOT bPreviousBigassVehicle
|
|
// iSlotToUse = MP_SAVE_VEHICLE_GET_EMPTY_SAVE_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,g_sConfVssMP.VehicleSetup.eModel,DEFAULT)
|
|
//ELSE
|
|
iSlotToUse = MP_SAVE_VEHICLE_GET_EMPTY_SAVE_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,g_sConfVssMP.VehicleSetup.eModel,DEFAULT,DEFAULT,TRUE)
|
|
//ENDIF
|
|
iDisplaySlotToUse = DISPLAY_SLOT_MEGAWARE_MOC
|
|
|
|
IF NOT bPreviousBigassVehicle
|
|
AND iSlotToUse = -1
|
|
CASSERTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: failed due to buying hacker truck but iSlotToUse = -1")
|
|
reason = VSFR_NOT_SAFE
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
confMpSlotIndex = iSlotToUse
|
|
confMPDisplayIndex = iDisplaySlotToUse
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - waiting for CREATE_AND_POPULATE_VEHICLE_DETAILS_FOR_MP_VEHICLE_BUY(", GET_LABEL_BUYABLE_VEHICLE(sbv), ", ", GET_WEBSITE_FROM_INDEX(siteID), ", ", GET_SAFE_DISPLAY_NAME_FROM_VEHICLE_MODEL(g_sConfVssMP.VehicleSetup.eModel), ", vi, iAltVersion:", iAltVersion, ")")
|
|
WHILE NOT CREATE_AND_POPULATE_VEHICLE_DETAILS_FOR_MP_WEBSITE_VEHICLE_BUY(sbv, siteID, g_sConfVssMP, vi, bAltVersion)
|
|
AND DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
|
|
BROWSER_CURSOR_LOADING(FALSE)
|
|
IF IS_USING_CURSOR(FRONTEND_CONTROL)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_MOUSE_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_X ))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_Y ))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
fMouseWheelScrollSpeed = 0.0
|
|
ENDIF
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
#IF FEATURE_HEIST_ISLAND
|
|
ELIF (sbv = BV_IH_KOSATKA)
|
|
// Allow renovations.
|
|
IF NOT USE_SERVER_TRANSACTIONS()
|
|
bPreviousBigassVehicle = IS_BIG_ASS_VEHICLE_BS_SET(GET_BIGASS_VEHICLE_INDICE_BIT_FROM_ENUM(BV_IH_KOSATKA))
|
|
ELSE
|
|
bPreviousBigassVehicle = (GET_MP_INT_CHARACTER_STAT(MP_STAT_IH_SUB_OWNED) != 0)
|
|
ENDIF
|
|
#ENDIF
|
|
ELSE
|
|
|
|
|
|
IF (sbv = BV_GR_TRAILERSMALL2)
|
|
IF !HAS_PLAYER_COMPLETED_INITIAL_AMBIENT_TUTORIALS(PLAYER_ID())
|
|
CWARNINGLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: failed due to not completing online tutorial")
|
|
reason = VSFR_NOT_SAFE
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_BIG_ASS_VEHICLE_BS_SET(iBigAssID)
|
|
CWARNINGLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: failed due to player already owning ", GET_LABEL_BUYABLE_VEHICLE(sbv), " iBigAssID", iBigAssID)
|
|
reason = VSFR_ALREADY_OWNED
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// Check specific vehicle website
|
|
IF (eDoCoupon = MAX_COUPONS)
|
|
AND (iPrice > 0)
|
|
IF sbv = BV_GO_HERMES
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_CAR_XMAS2017)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: has coupon(COUPON_CAR_XMAS2017)")
|
|
eDoCoupon = COUPON_CAR_XMAS2017
|
|
ENDIF
|
|
ELIF sbv = BV_AW_CLIQUE
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_CAR_XMAS2018)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: has coupon(COUPON_CAR_XMAS2018)")
|
|
eDoCoupon = COUPON_CAR_XMAS2018
|
|
ENDIF
|
|
ELIF sbv = BV_A_BUZZARD
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_HELI_XMAS2018)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: has coupon(COUPON_HELI_XMAS2018)")
|
|
eDoCoupon = COUPON_HELI_XMAS2018
|
|
ENDIF
|
|
ELIF sbv = BV_DLC_INSURGENT
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_CAR2_XMAS2018)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: has coupon(COUPON_CAR2_XMAS2018)")
|
|
eDoCoupon = COUPON_CAR2_XMAS2018
|
|
ENDIF
|
|
#IF FEATURE_GEN9_EXCLUSIVE
|
|
ELIF sbv = BV_G9E_S95
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_CAR_GEN9_MIGRATION)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: has coupon(COUPON_CAR_GEN9_MIGRATION)")
|
|
eDoCoupon = COUPON_CAR_GEN9_MIGRATION
|
|
ENDIF
|
|
#ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF (eDoCoupon = MAX_COUPONS)
|
|
AND (iPrice > 0)
|
|
SWITCH siteID
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_CAR_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: has coupon(COUPON_CAR_SITE)")
|
|
eDoCoupon = COUPON_CAR_SITE
|
|
ELIF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_CAR_SITE, sbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_CAR_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: has coupon(COUPON_CASINO_CAR_SITE)")
|
|
eDoCoupon = COUPON_CASINO_CAR_SITE
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_ELITASTRAVEL_COM
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_PLANE_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: has coupon(COUPON_PLANE_SITE)")
|
|
eDoCoupon = COUPON_PLANE_SITE
|
|
ELIF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_PLANE_SITE, sbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_PLANE_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: has coupon(COUPON_CASINO_PLANE_SITE)")
|
|
eDoCoupon = COUPON_CASINO_PLANE_SITE
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_MIL_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: has coupon(COUPON_MIL_SITE)")
|
|
eDoCoupon = COUPON_MIL_SITE
|
|
ELIF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_MIL_SITE, sbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_MIL_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: has coupon(COUPON_CASINO_MIL_SITE)")
|
|
eDoCoupon = COUPON_CASINO_MIL_SITE
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_DOCKTEASE_COM
|
|
IF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_BOAT_SITE, sbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_BOAT_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: has coupon(COUPON_CASINO_BOAT_SITE)")
|
|
eDoCoupon = COUPON_CASINO_BOAT_SITE
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
IF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_CAR_SITE2, sbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_CAR_SITE2)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: has coupon(COUPON_CASINO_CAR_SITE2)")
|
|
eDoCoupon = COUPON_CASINO_CAR_SITE2
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_PANDMCYCLES_COM
|
|
IF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_BIKE_SITE, sbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_BIKE_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: has coupon(COUPON_CASINO_BIKE_SITE)")
|
|
eDoCoupon = COUPON_CASINO_BIKE_SITE
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
|
|
IF (eDoCoupon = COUPON_CASINO_PLANE_SITE)
|
|
OR (eDoCoupon = COUPON_CASINO_BOAT_SITE)
|
|
OR (eDoCoupon = COUPON_CASINO_CAR_SITE)
|
|
OR (eDoCoupon = COUPON_CASINO_CAR_SITE2)
|
|
OR (eDoCoupon = COUPON_CASINO_MIL_SITE)
|
|
OR (eDoCoupon = COUPON_CASINO_BIKE_SITE)
|
|
TRIGGER_BROWSER_NAG_SCREEN(ENUM_TO_INT(eDoCoupon), iPrice, NSR_VOUCHER)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Trigger browser voucher screen(", GET_COUPON_STRING(eDoCoupon), ", ", iPrice, ", NSR_VOUCHER)")
|
|
|
|
BOOL bInputFrontendAcceptPressed = FALSE, bInputFrontendCancelPressed = FALSE
|
|
|
|
WHILE NOT bInputFrontendAcceptPressed
|
|
AND NOT bInputFrontendCancelPressed
|
|
AND DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_ACCEPT)
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_ACCEPT)
|
|
OR (IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_CURSOR_ACCEPT) AND NOT IS_WARNING_MESSAGE_ACTIVE())
|
|
OR (IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_ACCEPT) AND NOT IS_WARNING_MESSAGE_ACTIVE())
|
|
bInputFrontendAcceptPressed = TRUE
|
|
|
|
g_bBrowserNagScreenState = FALSE
|
|
g_bBrowserVoucherNagScreenState = FALSE
|
|
g_bBrowserGoToStoreTrigger = FALSE
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(nagScreen)
|
|
nagScreen = null
|
|
g_iBrowserNoInputTimer = g_iBrowserTimer + 500
|
|
ELIF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_CANCEL)
|
|
OR (IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_CURSOR_CANCEL) AND NOT IS_WARNING_MESSAGE_ACTIVE())
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_CANCEL)
|
|
OR (IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_CURSOR_CANCEL) AND NOT IS_WARNING_MESSAGE_ACTIVE())
|
|
bInputFrontendCancelPressed = TRUE
|
|
|
|
g_bBrowserNagScreenState = FALSE
|
|
g_bBrowserVoucherNagScreenState = FALSE
|
|
g_bBrowserGoToStoreTrigger = FALSE
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(nagScreen)
|
|
nagScreen = null
|
|
g_iBrowserNoInputTimer = g_iBrowserTimer + 500
|
|
ENDIF
|
|
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
IF bInputFrontendAcceptPressed
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Accept voucher ", GET_COUPON_STRING(eDoCoupon))
|
|
ELIF bInputFrontendCancelPressed
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Cancel voucher ", GET_COUPON_STRING(eDoCoupon))
|
|
reason = VSFR_CANCELED
|
|
RETURN FALSE
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: UNKNOWN voucher ", GET_COUPON_STRING(eDoCoupon))
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
|
|
bProcessingBasket = TRUE
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_ADD
|
|
|
|
|
|
INT iVariation, iAltNumber
|
|
iVariation = 0
|
|
iAltNumber = -1
|
|
IF sbv = BV_NG_MARSHALL
|
|
SWITCH g_eLastBuyableVehicleColourSelected
|
|
CASE BCV_RED_COLOUR iVariation = 0 BREAK //USA
|
|
CASE BCV_PINK_COLOUR iVariation = 1 BREAK //AUS
|
|
CASE BCV_YELLOW_COLOUR iVariation = 2 BREAK //BRA
|
|
CASE BCV_ORANGE_COLOUR iVariation = 3 BREAK //SPA
|
|
CASE BCV_GREEN_COLOUR iVariation = 4 BREAK //CAN
|
|
CASE BCV_BLUE_COLOUR iVariation = 5 BREAK //FRA
|
|
CASE BCV_BLACK_COLOUR iVariation = 6 BREAK //GER
|
|
CASE BCV_WHITE_COLOUR iVariation = 7 BREAK //JAP
|
|
CASE BCV_COLOUR_1 iVariation = 8 BREAK //SCO
|
|
CASE BCV_COLOUR_2 iVariation = 9 BREAK //UK
|
|
CASE BCV_COLOUR_3 iVariation = 10 BREAK //ITA
|
|
CASE BCV_COLOUR_4 iVariation = 11 BREAK //SWI
|
|
CASE BCV_COLOUR_5 iVariation = 12 BREAK //JAM
|
|
CASE BCV_COLOUR_6 iVariation = 13 BREAK //COL
|
|
CASE BCV_COLOUR_7 iVariation = 14 BREAK //NOR
|
|
CASE BCV_COLOUR_8 iVariation = 15 BREAK //SWE
|
|
CASE BCV_COLOUR_9 iVariation = 16 BREAK //BEL
|
|
CASE BCV_COLOUR_10 iVariation = 17 BREAK //MEX
|
|
CASE BCV_COLOUR_11 iVariation = 18 BREAK //AUT
|
|
CASE BCV_COLOUR_12 iVariation = 19 BREAK //RUS
|
|
CASE BCV_COLOUR_13 iVariation = 20 BREAK //ARG
|
|
CASE BCV_COLOUR_14 iVariation = 21 BREAK //TUR
|
|
CASE BCV_COLOUR_15 iVariation = 22 BREAK //IRE
|
|
CASE BCV_COLOUR_16 iVariation = 23 BREAK //WAL
|
|
CASE BCV_COLOUR_17 iVariation = 24 BREAK //ENG
|
|
ENDSWITCH
|
|
ELIF sbv = BV_BB_BLIMP3
|
|
SWITCH g_eLastBuyableVehicleColourSelected
|
|
CASE BCV_RED_COLOUR iVariation = 0 BREAK //Livery #1
|
|
CASE BCV_PINK_COLOUR iVariation = 1 BREAK //Livery #2
|
|
CASE BCV_YELLOW_COLOUR iVariation = 2 BREAK //Livery #3
|
|
CASE BCV_ORANGE_COLOUR iVariation = 3 BREAK //Livery #4
|
|
CASE BCV_GREEN_COLOUR iVariation = 4 BREAK //Livery #5
|
|
CASE BCV_BLUE_COLOUR iVariation = 5 BREAK //Livery #6
|
|
CASE BCV_BLACK_COLOUR iVariation = 6 BREAK //Livery #7
|
|
CASE BCV_WHITE_COLOUR iVariation = 7 BREAK //Nightclub
|
|
ENDSWITCH
|
|
IF IS_SBV_AN_ALTERNATE_VEHICLE(sbv, siteID, g_eLastBuyableVehicleColourSelected)
|
|
iAltNumber = 1
|
|
ENDIF
|
|
ELIF sbv = BV_BB_PBUS2
|
|
SWITCH g_eLastBuyableVehicleColourSelected
|
|
CASE BCV_RED_COLOUR iVariation = 0 BREAK //Livery #1
|
|
CASE BCV_PINK_COLOUR iVariation = 1 BREAK //Livery #2
|
|
CASE BCV_YELLOW_COLOUR iVariation = 2 BREAK //Livery #3
|
|
CASE BCV_ORANGE_COLOUR iVariation = 3 BREAK //Livery #4
|
|
CASE BCV_GREEN_COLOUR iVariation = 4 BREAK //Livery #5
|
|
CASE BCV_BLUE_COLOUR iVariation = 5 BREAK //Livery #6
|
|
CASE BCV_BLACK_COLOUR iVariation = 6 BREAK //Livery #7
|
|
CASE BCV_WHITE_COLOUR iVariation = 7 BREAK //Livery #8
|
|
CASE BCV_COLOUR_1 iVariation = 8 BREAK //Livery #9
|
|
CASE BCV_COLOUR_2 iVariation = 9 BREAK //Livery #10
|
|
ENDSWITCH
|
|
IF IS_SBV_AN_ALTERNATE_VEHICLE(sbv, siteID, g_eLastBuyableVehicleColourSelected)
|
|
iAltNumber = 1
|
|
ENDIF
|
|
ELSE
|
|
IF IS_SBV_AN_ALTERNATE_VEHICLE(sbv, siteID, g_eLastBuyableVehicleColourSelected)
|
|
iVariation = 1
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BOOL bStarterPackItem = FALSE
|
|
IF IS_SBV_A_VEHICLE_FREE_FOR_CRIMINAL_ENTERPRISE_STARTER_PACK(sbv)
|
|
IF HAS_MP_CRIMINAL_ENTERPRISE_PREMIUM_OR_STARTER_ACCESS()
|
|
bStarterPackItem = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
INT iItemId
|
|
iItemId = GET_BA_VEHICLE_KEY_FOR_CATALOGUE(sbv, iVariation, iAltNumber, bStarterPackItem)
|
|
|
|
INT iStatValue
|
|
iStatValue = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedBigAssVehicles.iBigAssVehiclesBS[(iBigAssID/32)]
|
|
|
|
INT iProcessSuccess
|
|
iProcessSuccess = GENERIC_TRANSACTION_STATE_DEFAULT
|
|
///////////////////////////////////////////
|
|
/// TRANSACTION FOR BIG ASS VEHICLE
|
|
INT iDoCouponHash = 0
|
|
SWITCH eDoCoupon
|
|
CASE COUPON_CAR_SITE
|
|
iDoCouponHash = HASH("PM_COUPON_CAR_SITE") //<keyhash value="118439962" />
|
|
BREAK
|
|
CASE COUPON_PLANE_SITE
|
|
iDoCouponHash = HASH("PM_COUPON_PLANE_SITE") //<keyhash value="1514966546" />
|
|
BREAK
|
|
CASE COUPON_MIL_SITE
|
|
iDoCouponHash = HASH("PM_COUPON_MIL_SITE") //<keyhash value="1776242445" />
|
|
BREAK
|
|
|
|
CASE COUPON_CAR_XMAS2017
|
|
iDoCouponHash = HASH("PO_COUPON_CAR_XMAS2017") //<keyhash value="-1996922865" />
|
|
iPrice = 0
|
|
BREAK
|
|
CASE COUPON_CAR_XMAS2018
|
|
iDoCouponHash = HASH("PO_COUPON_CAR_XMAS2018") //<keyhash value="2125613953" />
|
|
iPrice = 0
|
|
BREAK
|
|
CASE COUPON_HELI_XMAS2018
|
|
iDoCouponHash = HASH("PO_COUPON_HELI_XMAS2018") //<keyhash value="-1462899015" />
|
|
iPrice = 0
|
|
BREAK
|
|
CASE COUPON_CAR2_XMAS2018
|
|
iDoCouponHash = HASH("PO_COUPON_CAR2_XMAS2018") //<keyhash value="902521715" />
|
|
iPrice = 0
|
|
BREAK
|
|
|
|
CASE COUPON_CASINO_PLANE_SITE
|
|
iDoCouponHash = HASH("PM_COUPON_CASINO_PLANE_SITE")
|
|
BREAK
|
|
CASE COUPON_CASINO_BOAT_SITE
|
|
iDoCouponHash = HASH("PM_COUPON_CASINO_BOAT_SITE")
|
|
BREAK
|
|
CASE COUPON_CASINO_CAR_SITE
|
|
iDoCouponHash = HASH("PM_COUPON_CASINO_CAR_SITE")
|
|
BREAK
|
|
CASE COUPON_CASINO_CAR_SITE2
|
|
iDoCouponHash = HASH("PM_COUPON_CASINO_CAR_SITE2")
|
|
BREAK
|
|
CASE COUPON_CASINO_MIL_SITE
|
|
iDoCouponHash = HASH("PM_COUPON_CASINO_MIL_SITE")
|
|
BREAK
|
|
CASE COUPON_CASINO_BIKE_SITE
|
|
iDoCouponHash = HASH("PM_COUPON_CASINO_BIKE_SITE")
|
|
BREAK
|
|
#IF FEATURE_GEN9_EXCLUSIVE
|
|
CASE COUPON_CAR_GEN9_MIGRATION
|
|
iPrice = 0
|
|
BREAK
|
|
#ENDIF
|
|
ENDSWITCH
|
|
|
|
ITEM_ACTION_TYPES eAction = NET_SHOP_ACTION_SPEND
|
|
SHOP_ITEM_CATEGORIES eCatageory = CATEGORY_SERVICE_UNLOCKED
|
|
INT iInventoryKey = 0
|
|
// Override yacht to use the buy vehicle action
|
|
IF sbv = BV_DLC_BIG_YACHT
|
|
IF NOT USE_SERVER_TRANSACTIONS()
|
|
bPreviousPegasus = IS_BIG_ASS_VEHICLE_BS_SET(GET_BIGASS_VEHICLE_INDICE_BIT_FROM_ENUM(BV_DLC_BIG_YACHT))
|
|
ELSE
|
|
bPreviousPegasus = (GET_MP_INT_CHARACTER_STAT(MP_STAT_INV_YACHT_MODEL_0) != 0)
|
|
ENDIF
|
|
|
|
eCatageory = CATEGORY_INVENTORY_VEHICLE
|
|
iInventoryKey = GET_YACHT_INVENTORY_KEY_FOR_CATALOGUE(0)
|
|
eAction = NET_SHOP_ACTION_BUY_VEHICLE
|
|
ENDIF
|
|
|
|
IF sbv = BV_DLC_BIG_TRUCK
|
|
BOOL bProcessBigTruckBasket
|
|
IF NOT bPreviousBigassVehicle
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: bProcessBigTruckBasket = TRUE, not bPreviousBigassVehicle")
|
|
bProcessBigTruckBasket = TRUE
|
|
ELSE
|
|
IF INT_TO_ENUM(MODEL_NAMES, GET_TRUCK_CAB_FROM_SF(g_sTruckDataStruct.iCab)) != GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.eTruckModel
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: bProcessBigTruckBasket = TRUE, cab model changed")
|
|
bProcessBigTruckBasket = TRUE
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: bProcessBigTruckBasket = FALSE, cab model same")
|
|
bProcessBigTruckBasket = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bProcessBigTruckBasket
|
|
MODEL_NAMES eThisVehModel = g_sConfVssMP.vehicleSetup.eModel
|
|
BOOL bThisAltVersion = TRUE //free
|
|
|
|
// // GET_VEHICLE_KEY_FOR_CATALOGUE // // // // // // // // // // // //
|
|
INT iAltNum = -1
|
|
INT iPriceVariation = GET_VEHICLE_MOD_PRICE_VARIATION_FOR_CATALOGUE(eThisVehModel)
|
|
TEXT_LABEL_15 tlVehicleName = GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(eThisVehModel)
|
|
TEXT_LABEL_63 tlCategoryKey
|
|
IF bThisAltVersion
|
|
GENERATE_KEY_FOR_SHOP_CATALOGUE(tlCategoryKey, tlVehicleName, eThisVehModel, SHOP_TYPE_CARMOD, 1, iPriceVariation, iAltNum, DEFAULT, DEFAULT, bStarterPackItem)
|
|
ELSE
|
|
GENERATE_KEY_FOR_SHOP_CATALOGUE(tlCategoryKey, tlVehicleName, eThisVehModel, SHOP_TYPE_CARMOD, 0, iPriceVariation, iAltNum, DEFAULT, DEFAULT, bStarterPackItem)
|
|
ENDIF
|
|
INT iTruckItemId = GET_HASH_KEY(tlCategoryKey)
|
|
PRINTLN("[CATALOGUE_KEY] key '", tlCategoryKey, "' = ", iTruckItemId)
|
|
// // // // // // // // // // // // // // // // // // // // // // // //
|
|
|
|
INT iTruckInventoryKey = GET_VEHICLE_INVENTORY_KEY_FOR_CATALOGUE(confMpSlotIndex)
|
|
|
|
INT iTruckProcessSuccess = -1
|
|
|
|
///////////////////////////////////////////
|
|
/// TRANSACTION FOR TRUCK
|
|
WHILE PROCESSING_INTERNET_SHOPPING_BASKET(iTruckProcessSuccess, 0, ENUM_TO_INT(g_sConfVssMP.vehicleSetup.eModel), CATEGORY_INVENTORY_VEHICLE, NET_SHOP_ACTION_BUY_VEHICLE, iTruckItemId, iTruckInventoryKey, iDoCouponHash, DEFAULT, DEFAULT, vi)
|
|
RENDER_BROWSER()
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(TRUE)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(FALSE)
|
|
|
|
SWITCH iTruckProcessSuccess
|
|
CASE GENERIC_TRANSACTION_STATE_FAILED
|
|
CWARNINGLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: truck cab:failed to process transaction")
|
|
CLEAR_BIG_ASS_VEHICLE_BS(iBigAssID)
|
|
reason = VSFR_NOT_SAFE
|
|
|
|
IF DOES_ENTITY_EXIST(vi)
|
|
DELETE_VEHICLE(vi)
|
|
ENDIF
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(g_sConfVssMP.VehicleSetup.eModel)
|
|
confMpSlotIndex = -1
|
|
confMPDisplayIndex = -1
|
|
RESET_VEHICLE_SETUP_STRUCT_MP(g_sConfVssMP)
|
|
RETURN FALSE
|
|
BREAK
|
|
CASE GENERIC_TRANSACTION_STATE_SUCCESS
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: truck cab:success!!")
|
|
BREAK
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: truck cab:unknown iTruckProcessSuccess: \"", iTruckProcessSuccess, "\"")
|
|
BREAK
|
|
ENDSWITCH
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
ENDIF
|
|
bProcessingBasket = TRUE
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_ADD
|
|
ENDIF
|
|
|
|
eCatageory = CATEGORY_INVENTORY_VEHICLE
|
|
iInventoryKey = GET_TRUCK_INVENTORY_KEY_FOR_CATALOGUE(0)
|
|
eAction = NET_SHOP_ACTION_BUY_VEHICLE
|
|
ENDIF
|
|
IF sbv = BV_DLC_BALLISTIC_EQUIPMENT
|
|
// eCatageory = CATEGORY_INVENTORY_VEHICLE
|
|
// iInventoryKey = GET_BALLISTIC_EQUIPMENT_INVENTORY_KEY_FOR_CATALOGUE(0)
|
|
// eAction = NET_SHOP_ACTION_BUY_VEHICLE
|
|
ENDIF
|
|
IF sbv = BV_DLC_BIG_PLANE
|
|
BOOL bProcessBigPlaneBasket
|
|
IF NOT bPreviousBigassVehicle
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: bProcessBigPlaneBasket = TRUE, not bPreviousBigassVehicle")
|
|
bProcessBigPlaneBasket = TRUE
|
|
ELSE
|
|
// IF INT_TO_ENUM(MODEL_NAMES, GET_PLANE_CAB_FROM_SF(g_sPlaneDataStruct.iCab)) != GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.ePlaneModel
|
|
// CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: bProcessBigPlaneBasket = TRUE, cab model changed")
|
|
// bProcessBigPlaneBasket = TRUE
|
|
// ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: bProcessBigPlaneBasket = FALSE, cab model same")
|
|
bProcessBigPlaneBasket = FALSE
|
|
// ENDIF
|
|
ENDIF
|
|
|
|
IF bProcessBigPlaneBasket
|
|
MODEL_NAMES eThisVehModel = g_sConfVssMP.vehicleSetup.eModel
|
|
BOOL bThisAltVersion = TRUE //free
|
|
|
|
// // GET_VEHICLE_KEY_FOR_CATALOGUE // // // // // // // // // // // //
|
|
INT iAltNum = -1
|
|
INT iPriceVariation = GET_VEHICLE_MOD_PRICE_VARIATION_FOR_CATALOGUE(eThisVehModel)
|
|
TEXT_LABEL_15 tlVehicleName = GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(eThisVehModel)
|
|
TEXT_LABEL_63 tlCategoryKey
|
|
IF bThisAltVersion
|
|
GENERATE_KEY_FOR_SHOP_CATALOGUE(tlCategoryKey, tlVehicleName, eThisVehModel, SHOP_TYPE_CARMOD, 1, iPriceVariation, iAltNum, DEFAULT, DEFAULT, bStarterPackItem)
|
|
ELSE
|
|
GENERATE_KEY_FOR_SHOP_CATALOGUE(tlCategoryKey, tlVehicleName, eThisVehModel, SHOP_TYPE_CARMOD, 0, iPriceVariation, iAltNum, DEFAULT, DEFAULT, bStarterPackItem)
|
|
ENDIF
|
|
INT iPlaneItemId = GET_HASH_KEY(tlCategoryKey)
|
|
PRINTLN("[CATALOGUE_KEY] key '", tlCategoryKey, "' = ", iPlaneItemId)
|
|
// // // // // // // // // // // // // // // // // // // // // // // //
|
|
|
|
INT iPlaneInventoryKey = GET_VEHICLE_INVENTORY_KEY_FOR_CATALOGUE(confMpSlotIndex)
|
|
|
|
INT iPlaneProcessSuccess = -1
|
|
|
|
///////////////////////////////////////////
|
|
/// TRANSACTION FOR BIG PLANE
|
|
WHILE PROCESSING_INTERNET_SHOPPING_BASKET(iPlaneProcessSuccess, 0, ENUM_TO_INT(g_sConfVssMP.vehicleSetup.eModel), CATEGORY_INVENTORY_VEHICLE, NET_SHOP_ACTION_BUY_VEHICLE, iPlaneItemId, iPlaneInventoryKey, iDoCouponHash, DEFAULT, DEFAULT, vi)
|
|
RENDER_BROWSER()
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(TRUE)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(FALSE)
|
|
|
|
SWITCH iPlaneProcessSuccess
|
|
CASE GENERIC_TRANSACTION_STATE_FAILED
|
|
CWARNINGLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: plane cab:failed to process transaction")
|
|
CLEAR_BIG_ASS_VEHICLE_BS(iBigAssID)
|
|
reason = VSFR_NOT_SAFE
|
|
|
|
IF DOES_ENTITY_EXIST(vi)
|
|
DELETE_VEHICLE(vi)
|
|
ENDIF
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(g_sConfVssMP.VehicleSetup.eModel)
|
|
confMpSlotIndex = -1
|
|
confMPDisplayIndex = -1
|
|
RESET_VEHICLE_SETUP_STRUCT_MP(g_sConfVssMP)
|
|
RETURN FALSE
|
|
BREAK
|
|
CASE GENERIC_TRANSACTION_STATE_SUCCESS
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: plane cab:success!!")
|
|
BREAK
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: plane cab:unknown iPlaneProcessSuccess: \"", iPlaneProcessSuccess, "\"")
|
|
BREAK
|
|
ENDSWITCH
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
ENDIF
|
|
bProcessingBasket = TRUE
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_ADD
|
|
ENDIF
|
|
|
|
eCatageory = CATEGORY_INVENTORY_VEHICLE
|
|
iInventoryKey = GET_PLANE_INVENTORY_KEY_FOR_CATALOGUE(0)
|
|
eAction = NET_SHOP_ACTION_BUY_VEHICLE
|
|
ENDIF
|
|
IF sbv = BV_DLC_HACKER_TRUCK
|
|
BOOL bProcessHackerTruckBasket
|
|
IF NOT bPreviousBigassVehicle
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: bProcessHackerTruckBasket = TRUE, not bPreviousBigassVehicle")
|
|
bProcessHackerTruckBasket = TRUE
|
|
ELSE
|
|
// IF IINT_TO_ENUM(MODEL_NAMES, GET_HACKER_TRUCK_CAB_FROM_SF(g_sHackerTruckDataStruct.iCab)) != GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.eHackerTruckModel
|
|
// CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: bProcessHackerTruckBasket = TRUE, cab model changed")
|
|
// bProcessHackerTruckBasket = TRUE
|
|
// ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: bProcessHackerTruckBasket = FALSE, cab model same")
|
|
bProcessHackerTruckBasket = FALSE
|
|
// ENDIF
|
|
ENDIF
|
|
|
|
IF bProcessHackerTruckBasket
|
|
MODEL_NAMES eThisVehModel = g_sConfVssMP.vehicleSetup.eModel
|
|
BOOL bThisAltVersion = TRUE //free
|
|
|
|
// // GET_VEHICLE_KEY_FOR_CATALOGUE // // // // // // // // // // // //
|
|
INT iAltNum = -1
|
|
INT iPriceVariation = GET_VEHICLE_MOD_PRICE_VARIATION_FOR_CATALOGUE(eThisVehModel)
|
|
TEXT_LABEL_15 tlVehicleName = GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(eThisVehModel)
|
|
TEXT_LABEL_63 tlCategoryKey
|
|
IF bThisAltVersion
|
|
GENERATE_KEY_FOR_SHOP_CATALOGUE(tlCategoryKey, tlVehicleName, eThisVehModel, SHOP_TYPE_CARMOD, 1, iPriceVariation, iAltNum, DEFAULT, DEFAULT, bStarterPackItem)
|
|
ELSE
|
|
GENERATE_KEY_FOR_SHOP_CATALOGUE(tlCategoryKey, tlVehicleName, eThisVehModel, SHOP_TYPE_CARMOD, 0, iPriceVariation, iAltNum, DEFAULT, DEFAULT, bStarterPackItem)
|
|
ENDIF
|
|
INT iHackerTruckItemId = GET_HASH_KEY(tlCategoryKey)
|
|
PRINTLN("[CATALOGUE_KEY] key '", tlCategoryKey, "' = ", iHackerTruckItemId)
|
|
// // // // // // // // // // // // // // // // // // // // // // // //
|
|
|
|
INT iHackerTruckInventoryKey = GET_VEHICLE_INVENTORY_KEY_FOR_CATALOGUE(confMpSlotIndex)
|
|
|
|
INT iHackerTruckProcessSuccess = -1
|
|
|
|
///////////////////////////////////////////
|
|
/// TRANSACTION FOR HACKER TRUCK
|
|
WHILE PROCESSING_INTERNET_SHOPPING_BASKET(iHackerTruckProcessSuccess, 0, ENUM_TO_INT(g_sConfVssMP.vehicleSetup.eModel), CATEGORY_INVENTORY_VEHICLE, NET_SHOP_ACTION_BUY_VEHICLE, iHackerTruckItemId, iHackerTruckInventoryKey, iDoCouponHash, DEFAULT, DEFAULT, vi)
|
|
RENDER_BROWSER()
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(TRUE)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(FALSE)
|
|
|
|
SWITCH iHackerTruckProcessSuccess
|
|
CASE GENERIC_TRANSACTION_STATE_FAILED
|
|
CWARNINGLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: hacker truck cab:failed to process transaction")
|
|
CLEAR_BIG_ASS_VEHICLE_BS(iBigAssID)
|
|
reason = VSFR_NOT_SAFE
|
|
|
|
IF DOES_ENTITY_EXIST(vi)
|
|
DELETE_VEHICLE(vi)
|
|
ENDIF
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(g_sConfVssMP.VehicleSetup.eModel)
|
|
confMpSlotIndex = -1
|
|
confMPDisplayIndex = -1
|
|
RESET_VEHICLE_SETUP_STRUCT_MP(g_sConfVssMP)
|
|
RETURN FALSE
|
|
BREAK
|
|
CASE GENERIC_TRANSACTION_STATE_SUCCESS
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: hacker truck cab:success!!")
|
|
BREAK
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: hacker truck cab:unknown iHackerTruckProcessSuccess: \"", iHackerTruckProcessSuccess, "\"")
|
|
BREAK
|
|
ENDSWITCH
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
ENDIF
|
|
bProcessingBasket = TRUE
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_ADD
|
|
ENDIF
|
|
|
|
eCatageory = CATEGORY_INVENTORY_VEHICLE
|
|
iInventoryKey = GET_HACKER_TRUCK_INVENTORY_KEY_FOR_CATALOGUE(0)
|
|
eAction = NET_SHOP_ACTION_BUY_VEHICLE
|
|
ENDIF
|
|
#IF FEATURE_HEIST_ISLAND
|
|
// Override submarine to use the buy vehicle action
|
|
IF sbv = BV_IH_KOSATKA
|
|
IF NOT USE_SERVER_TRANSACTIONS()
|
|
bPreviousPegasus = IS_BIG_ASS_VEHICLE_BS_SET(GET_BIGASS_VEHICLE_INDICE_BIT_FROM_ENUM(BV_IH_KOSATKA))
|
|
ELSE
|
|
bPreviousPegasus = (GET_MP_INT_CHARACTER_STAT(MP_STAT_IH_SUB_OWNED) != 0)
|
|
ENDIF
|
|
|
|
eCatageory = CATEGORY_INVENTORY_VEHICLE
|
|
iInventoryKey = GET_KOSATKA_INVENTORY_KEY_FOR_CATALOGUE(0)
|
|
eAction = NET_SHOP_ACTION_BUY_VEHICLE
|
|
ENDIF
|
|
#ENDIF
|
|
IF sbv = BV_AW_RCBANDITO
|
|
// eCatageory = CATEGORY_INVENTORY_VEHICLE
|
|
// iInventoryKey = GET_BALLISTIC_EQUIPMENT_INVENTORY_KEY_FOR_CATALOGUE(0)
|
|
// eAction = NET_SHOP_ACTION_BUY_VEHICLE
|
|
ENDIF
|
|
|
|
WHILE PROCESSING_INTERNET_SHOPPING_BASKET(iProcessSuccess, iPrice, iStatValue, eCatageory, eAction, iItemId, iInventoryKey, iDoCouponHash, DEFAULT, DEFAULT, vi, DEFAULT, DEFAULT)
|
|
RENDER_BROWSER()
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(TRUE)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(FALSE)
|
|
|
|
SWITCH iProcessSuccess
|
|
CASE GENERIC_TRANSACTION_STATE_FAILED
|
|
CWARNINGLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: failed to process transaction")
|
|
CLEAR_BIG_ASS_VEHICLE_BS(iBigAssID)
|
|
reason = VSFR_NOT_SAFE
|
|
|
|
IF DOES_ENTITY_EXIST(vi)
|
|
DELETE_VEHICLE(vi)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(g_sConfVssMP.VehicleSetup.eModel)
|
|
ENDIF
|
|
confMpSlotIndex = -1
|
|
confMPDisplayIndex = -1
|
|
RESET_VEHICLE_SETUP_STRUCT_MP(g_sConfVssMP)
|
|
RETURN FALSE
|
|
BREAK
|
|
CASE GENERIC_TRANSACTION_STATE_SUCCESS
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: success!!")
|
|
BREAK
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: unknown iProcessSuccess: \"", iProcessSuccess, "\"")
|
|
BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: ignore NETWORK_REQUEST_BASKET_TRANSACTION")
|
|
ENDIF
|
|
GO_TO_WEBSITE(GET_VEHICLE_PURCHASE_SUCCESS_PAGE(siteID, sbv))
|
|
|
|
// Check specific vehicle website
|
|
SWITCH eDoCoupon
|
|
CASE COUPON_CAR_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CAR_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_PLANE_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_PLANE_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_MIL_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_MIL_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
|
|
CASE COUPON_CAR_XMAS2017
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CAR_XMAS2017)")
|
|
iPrice = 0
|
|
BREAK
|
|
CASE COUPON_CAR_XMAS2018
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CAR_XMAS2018)")
|
|
iPrice = 0
|
|
BREAK
|
|
CASE COUPON_HELI_XMAS2018
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_HELI_XMAS2018)")
|
|
iPrice = 0
|
|
BREAK
|
|
CASE COUPON_CAR2_XMAS2018
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CAR2_XMAS2018)")
|
|
iPrice = 0
|
|
BREAK
|
|
|
|
CASE COUPON_CASINO_PLANE_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_PLANE_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_CASINO_BOAT_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_BOAT_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_CASINO_CAR_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_CAR_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_CASINO_CAR_SITE2
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_CAR_SITE2)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_CASINO_MIL_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_MIL_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_CASINO_BIKE_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_BIKE_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
#IF FEATURE_GEN9_EXCLUSIVE
|
|
CASE COUPON_CAR_GEN9_MIGRATION
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CAR_GEN9_MIGRATION)")
|
|
iPrice = 0
|
|
BREAK
|
|
#ENDIF
|
|
ENDSWITCH
|
|
|
|
MODEL_NAMES thisModel = GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)
|
|
IF thisModel != GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)
|
|
IF DOES_ENTITY_EXIST(vi)
|
|
DELETE_VEHICLE(vi)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(g_sConfVssMP.VehicleSetup.eModel)
|
|
ENDIF
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
ENDIF
|
|
|
|
CASSERTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - thisModel[", GET_SAFE_DISPLAY_NAME_FROM_VEHICLE_MODEL(thisModel), "] is different from GET_MODEL_FOR_BUYABLE_VEHICLE(", GET_LABEL_BUYABLE_VEHICLE(sbv), ")!!!")
|
|
reason = VSFR_BIGASS_NOT_UNLOCKED
|
|
RETURN FALSE
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - thisModel[", GET_SAFE_DISPLAY_NAME_FROM_VEHICLE_MODEL(thisModel), "] matches GET_MODEL_FOR_BUYABLE_VEHICLE(", GET_LABEL_BUYABLE_VEHICLE(sbv), ")")
|
|
ENDIF
|
|
|
|
IF IS_THIS_MODEL_A_BOAT(thisModel)
|
|
SET_MP_BOOL_CHARACTER_STAT(MP_STAT_BOAT_ACCESS, TRUE)
|
|
#IF IS_DEBUG_BUILD
|
|
NET_PRINT("[RANKUP] ... MP_STAT_BOAT_ACCESS AVAILABLE ")
|
|
#ENDIF
|
|
ELIF IS_THIS_MODEL_A_HELI(thisModel)
|
|
SET_MP_BOOL_CHARACTER_STAT(MP_STAT_HELI_ACCESS, TRUE)
|
|
#IF IS_DEBUG_BUILD
|
|
NET_PRINT("[RANKUP] ... MP_STAT_HELI_ACCESS AVAILABLE ")
|
|
#ENDIF
|
|
ELIF IS_THIS_MODEL_A_PLANE(thisModel)
|
|
SET_MP_BOOL_CHARACTER_STAT(MP_STAT_PLANE_ACCESS, TRUE)
|
|
#IF IS_DEBUG_BUILD
|
|
NET_PRINT("[RANKUP] ... MP_STAT_PLANE_ACCESS AVAILABLE ")
|
|
#ENDIF
|
|
ENDIF
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Special","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
SWITCH eDoCoupon
|
|
CASE COUPON_CAR_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CAR_SITE)")
|
|
REDEEM_COUPON(COUPON_CAR_SITE)
|
|
BREAK
|
|
CASE COUPON_PLANE_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_PLANE_SITE)")
|
|
REDEEM_COUPON(COUPON_PLANE_SITE)
|
|
BREAK
|
|
CASE COUPON_MIL_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_MIL_SITE)")
|
|
REDEEM_COUPON(COUPON_MIL_SITE)
|
|
BREAK
|
|
|
|
CASE COUPON_CAR_XMAS2017
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CAR_XMAS2017)")
|
|
REDEEM_COUPON(COUPON_CAR_XMAS2017)
|
|
BREAK
|
|
CASE COUPON_CAR_XMAS2018
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CAR_XMAS2018)")
|
|
REDEEM_COUPON(COUPON_CAR_XMAS2018)
|
|
BREAK
|
|
CASE COUPON_HELI_XMAS2018
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_HELI_XMAS2018)")
|
|
REDEEM_COUPON(COUPON_HELI_XMAS2018)
|
|
BREAK
|
|
CASE COUPON_CAR2_XMAS2018
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CAR2_XMAS2018)")
|
|
REDEEM_COUPON(COUPON_CAR2_XMAS2018)
|
|
BREAK
|
|
|
|
CASE COUPON_CASINO_PLANE_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_PLANE_SITE)")
|
|
REDEEM_COUPON(COUPON_CASINO_PLANE_SITE)
|
|
BREAK
|
|
CASE COUPON_CASINO_BOAT_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_BOAT_SITE)")
|
|
REDEEM_COUPON(COUPON_CASINO_BOAT_SITE)
|
|
BREAK
|
|
CASE COUPON_CASINO_CAR_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_CAR_SITE)")
|
|
REDEEM_COUPON(COUPON_CASINO_CAR_SITE)
|
|
BREAK
|
|
CASE COUPON_CASINO_CAR_SITE2
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_CAR_SITE2)")
|
|
REDEEM_COUPON(COUPON_CASINO_CAR_SITE2)
|
|
BREAK
|
|
CASE COUPON_CASINO_MIL_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_MIL_SITE)")
|
|
REDEEM_COUPON(COUPON_CASINO_MIL_SITE)
|
|
BREAK
|
|
CASE COUPON_CASINO_BIKE_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_BIKE_SITE)")
|
|
REDEEM_COUPON(COUPON_CASINO_BIKE_SITE)
|
|
BREAK
|
|
#IF FEATURE_GEN9_EXCLUSIVE
|
|
CASE COUPON_CAR_GEN9_MIGRATION
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: REDEEM_COUPON(COUPON_CAR_GEN9_MIGRATION)")
|
|
REDEEM_COUPON(COUPON_CAR_GEN9_MIGRATION)
|
|
BREAK
|
|
#ENDIF
|
|
ENDSWITCH
|
|
|
|
IF iPrice < 0
|
|
AND thisModel != eDLC_BIG_YACHT_MODEL
|
|
AND thisModel != eDLC_BIG_TRUCK_MODEL
|
|
AND thisModel != eDLC_BALLISTIC_EQUIPMENT_MODEL
|
|
AND thisModel != eDLC_BIG_PLANE_MODEL
|
|
AND !IS_SBV_A_VEHICLE_FREE_FOR_CRIMINAL_ENTERPRISE_STARTER_PACK(confSbv)
|
|
AND thisModel != eDLC_HACKER_TRUCK_MODEL
|
|
AND thisModel != GET_SUBMARINE_MODEL()
|
|
IF DOES_ENTITY_EXIST(vi)
|
|
DELETE_VEHICLE(vi)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(g_sConfVssMP.VehicleSetup.eModel)
|
|
ENDIF
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: free vehicle ", GET_SAFE_DISPLAY_NAME_FROM_VEHICLE_MODEL(thisModel), " $", iPrice)
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
IF iPrice >= 0
|
|
OR (thisModel = eDLC_BIG_TRUCK_MODEL)
|
|
OR (thisModel = eDLC_BIG_PLANE_MODEL)
|
|
OR IS_SBV_A_VEHICLE_FREE_FOR_CRIMINAL_ENTERPRISE_STARTER_PACK(confSbv)
|
|
OR (thisModel = eDLC_HACKER_TRUCK_MODEL)
|
|
OR (thisModel = GET_SUBMARINE_MODEL())
|
|
//ENUM_TO_INT(thisModel)
|
|
BANK_ACCOUNT_ACTION_SOURCE_BAAC basource
|
|
SWITCH siteID
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET basource = BAAC_MOTORSPORT_SITE BREAK
|
|
CASE WWW_ELITASTRAVEL_COM basource = BAAC_PLANE_SITE BREAK
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM basource = BAAC_ARMY_SITE BREAK
|
|
CASE WWW_DOCKTEASE_COM basource = BAAC_BOAT_SITE BREAK
|
|
CASE WWW_PANDMCYCLES_COM basource = BAAC_BIKE_SITE BREAK
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM basource = BAAC_SUPERAUTO_SITE BREAK
|
|
CASE WWW_BENNYSORIGINALMOTORWORKS_COM basource = BAAC_LOWRIDER_SITE BREAK
|
|
CASE WWW_ARENAWAR_TV basource = BAAC_ARENA_SITE BREAK
|
|
ENDSWITCH
|
|
|
|
INCREMENT_BY_MP_INT_PLAYER_STAT(MPPLY_INGAMESTORE_MONEYSPENT, iPrice)
|
|
|
|
IF thisModel = eDLC_BIG_YACHT_MODEL
|
|
|
|
IF (iYachtModPrice >= 0 AND g_sYachtDataStruct.iMod != GET_PACKED_STAT_INT(PACKED_MP_CHAR_YACHT_MOD))
|
|
OR !DOES_PLAYER_OWN_PRIVATE_YACHT(PLAYER_ID())
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_SHOPS, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
BOOL fromBank = (NETWORK_GET_VC_BANK_BALANCE() > 0)
|
|
BOOL fromBankAndWallet = (NETWORK_GET_VC_BANK_BALANCE() < iYachtModPrice)
|
|
SWITCH g_sYachtDataStruct.iMod
|
|
CASE 0
|
|
CASE 3
|
|
CPRINTLN(DEBUG_SHOPS, "kr_debug: yacht model = ", g_sYachtDataStruct.iMod, ", HASH(\"BIG_YACHT_0\") ", HASH("BIG_YACHT_0"), " ", PICK_STRING(fromBank, "fromBank", "not fromBank"), " + $", PICK_STRING(fromBankAndWallet, "fromBankAndWallet", "not fromBankAndWallet"))
|
|
NETWORK_BUY_PROPERTY(iYachtModPrice,HASH("BIG_YACHT_0"),fromBank,fromBankAndWallet)
|
|
BREAK
|
|
CASE 1
|
|
CASE 4
|
|
CPRINTLN(DEBUG_SHOPS, "kr_debug: yacht model = ", g_sYachtDataStruct.iMod, ", HASH(\"BIG_YACHT_1\") ", HASH("BIG_YACHT_1"), " ", PICK_STRING(fromBank, "fromBank", "not fromBank"), " + $", PICK_STRING(fromBankAndWallet, "fromBankAndWallet", "not fromBankAndWallet"))
|
|
NETWORK_BUY_PROPERTY(iYachtModPrice,HASH("BIG_YACHT_1"),fromBank,fromBankAndWallet)
|
|
BREAK
|
|
CASE 2
|
|
CASE 5
|
|
CPRINTLN(DEBUG_SHOPS, "kr_debug: yacht model = ", g_sYachtDataStruct.iMod, ", HASH(\"BIG_YACHT_2\") ", HASH("BIG_YACHT_2"), " ", PICK_STRING(fromBank, "fromBank", "not fromBank"), " + $", PICK_STRING(fromBankAndWallet, "fromBankAndWallet", "not fromBankAndWallet"))
|
|
NETWORK_BUY_PROPERTY(iYachtModPrice,HASH("BIG_YACHT_2"),fromBank,fromBankAndWallet)
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_SHOPS, "kr_debug: yacht model = ", g_sYachtDataStruct.iMod, " unknown???")
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
|
|
TEXT_LABEL_23 str
|
|
IF iYachtLightingPrice > 0
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_SHOPS, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
BOOL fromBank = (NETWORK_GET_VC_BANK_BALANCE() > 0)
|
|
BOOL fromBankAndWallet = (NETWORK_GET_VC_BANK_BALANCE() < iYachtLightingPrice)
|
|
str = "BIG_YACHT_LIGHT_" //range 0 - 11
|
|
str += g_sYachtDataStruct.iLighting
|
|
CPRINTLN(DEBUG_SHOPS, "kr_debug: yacht light = ", g_sYachtDataStruct.iLighting, ", GET_HASH_KEY(\"", str, "\") ", GET_HASH_KEY(str), " $", iYachtLightingPrice)
|
|
NETWORK_BUY_PROPERTY(iYachtLightingPrice,GET_HASH_KEY(str),fromBank,fromBankAndWallet)
|
|
ENDIF
|
|
IF iYachtFixturePrice > 0
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_SHOPS, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
BOOL fromBank = (NETWORK_GET_VC_BANK_BALANCE() > 0)
|
|
BOOL fromBankAndWallet = (NETWORK_GET_VC_BANK_BALANCE() < iYachtFixturePrice)
|
|
str = "BIG_YACHT_FIXT_" //range 0 - 1
|
|
str += g_sYachtDataStruct.iFixture
|
|
CPRINTLN(DEBUG_SHOPS, "kr_debug: yacht fixt = ", g_sYachtDataStruct.iFixture, ", GET_HASH_KEY(\"", str, "\") ", GET_HASH_KEY(str), " $", iYachtFixturePrice)
|
|
NETWORK_BUY_PROPERTY(iYachtFixturePrice,GET_HASH_KEY(str),fromBank,fromBankAndWallet)
|
|
ENDIF
|
|
IF iYachtFlagPrice > 0
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_SHOPS, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
BOOL fromBank = (NETWORK_GET_VC_BANK_BALANCE() > 0)
|
|
BOOL fromBankAndWallet = (NETWORK_GET_VC_BANK_BALANCE() < iYachtFlagPrice)
|
|
str = "BIG_YACHT_FLAG_" //range 0 - 45
|
|
str += g_sYachtDataStruct.iFlag
|
|
CPRINTLN(DEBUG_SHOPS, "kr_debug: yacht flag = ", g_sYachtDataStruct.iFlag, ", GET_HASH_KEY(\"", str, "\") ", GET_HASH_KEY(str), " $", iYachtFlagPrice)
|
|
NETWORK_BUY_PROPERTY(iYachtFlagPrice,GET_HASH_KEY(str),fromBank,fromBankAndWallet)
|
|
ENDIF
|
|
IF iYachtColourPrice > 0
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_SHOPS, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
BOOL fromBank = (NETWORK_GET_VC_BANK_BALANCE() > 0)
|
|
BOOL fromBankAndWallet = (NETWORK_GET_VC_BANK_BALANCE() < iYachtColourPrice)
|
|
str = "BIG_YACHT_COL_" //range 0 - 15
|
|
str += g_sYachtDataStruct.iColour
|
|
CPRINTLN(DEBUG_SHOPS, "kr_debug: yacht col = ", g_sYachtDataStruct.iColour, ", GET_HASH_KEY(\"", str, "\") ", GET_HASH_KEY(str), " $", iYachtColourPrice)
|
|
NETWORK_BUY_PROPERTY(iYachtColourPrice,GET_HASH_KEY(str),fromBank,fromBankAndWallet)
|
|
ENDIF
|
|
IF iYachtNamePrice > 0
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_SHOPS, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
BOOL fromBank = (NETWORK_GET_VC_BANK_BALANCE() > 0)
|
|
BOOL fromBankAndWallet = (NETWORK_GET_VC_BANK_BALANCE() < iYachtNamePrice)
|
|
str = "BIG_YACHT_NAME"
|
|
CPRINTLN(DEBUG_SHOPS, "kr_debug: yacht name = ", g_sYachtDataStruct.tl63Name, ", GET_HASH_KEY(\"", str, "\") ", GET_HASH_KEY(str), " $", iYachtNamePrice)
|
|
NETWORK_BUY_PROPERTY(iYachtNamePrice,GET_HASH_KEY(str),fromBank,fromBankAndWallet)
|
|
ENDIF
|
|
ELIF thisModel = eDLC_BIG_TRUCK_MODEL
|
|
ARMORY_TRUCK_SECTION_TYPE_ENUM eSection1 = INT_TO_ENUM(ARMORY_TRUCK_SECTION_TYPE_ENUM, GET_TRUCK_SECTION_TYPE_FROM_SF(g_sTruckDataStruct.iSection1))
|
|
ARMORY_TRUCK_SECTION_TYPE_ENUM eSection2 = INT_TO_ENUM(ARMORY_TRUCK_SECTION_TYPE_ENUM, GET_TRUCK_SECTION_TYPE_FROM_SF(g_sTruckDataStruct.iSection2))
|
|
ARMORY_TRUCK_SECTION_TYPE_ENUM eSection3 = INT_TO_ENUM(ARMORY_TRUCK_SECTION_TYPE_ENUM, GET_TRUCK_SECTION_TYPE_FROM_SF(g_sTruckDataStruct.iSection3))
|
|
VALIDATE_TRUCK_EMPTY_SECTIONS(eSection1, eSection2, eSection3)
|
|
|
|
ARMORY_TRUCK_SECTION_TINT_ENUM eTint = INT_TO_ENUM(ARMORY_TRUCK_SECTION_TINT_ENUM, GET_TRUCK_SECTION_TINT_FROM_SF(g_sTruckDataStruct.iColour))
|
|
|
|
SPENT_ON_TRUCK data
|
|
//Check if we're trading of just buying
|
|
IF NOT bPreviousBigassVehicle
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
BOOL bUpgradeTrailer = FALSE
|
|
IF (sTruck_price_struct.iCabPrice >= 0)
|
|
data.m_vehicle = g_sTruckDataStruct.iCab
|
|
data.m_vehicle_amount = sTruck_price_struct.iCabPrice
|
|
ENDIF
|
|
// IF (sTruck_price_struct.iTrailerPrice >= 0)
|
|
// data.m_trailer = 0
|
|
// data.m_trailer_amount = 0
|
|
// ENDIF
|
|
IF (sTruck_price_struct.iSection1Price >= 0)
|
|
data.m_slot1 = ENUM_TO_INT(eSection1)
|
|
data.m_slot1_amount = sTruck_price_struct.iSection1Price
|
|
bUpgradeTrailer = TRUE
|
|
ENDIF
|
|
IF (sTruck_price_struct.iSection2Price >= 0)
|
|
data.m_slot2 = ENUM_TO_INT(eSection2)
|
|
data.m_slot2_amount = sTruck_price_struct.iSection2Price
|
|
bUpgradeTrailer = TRUE
|
|
ENDIF
|
|
IF (sTruck_price_struct.iSection3Price >= 0)
|
|
data.m_slot3 = ENUM_TO_INT(eSection3)
|
|
data.m_slot3_amount = sTruck_price_struct.iSection3Price
|
|
bUpgradeTrailer = TRUE
|
|
ENDIF
|
|
IF (sTruck_price_struct.iColourPrice >= 0)
|
|
data.m_colorscheme = ENUM_TO_INT(eTint)
|
|
data.m_colorscheme_amount = sTruck_price_struct.iColourPrice
|
|
bUpgradeTrailer = TRUE
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Bought truck for $", iPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_vehicle:", data.m_vehicle, " m_vehicle_amount:$", data.m_vehicle_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_trailer:", data.m_trailer, " m_trailer_amount:$", data.m_trailer_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_slot1:", data.m_slot1, " m_slot1_amount:$", data.m_slot1_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_slot2:", data.m_slot2, " m_slot2_amount:$", data.m_slot2_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_slot3:", data.m_slot3, " m_slot3_amount:$", data.m_slot3_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_colorscheme:", data.m_colorscheme, " m_colorscheme_amount:$", data.m_colorscheme_amount)
|
|
NETWORK_SPENT_BUY_TRUCK(iPrice, FALSE, TRUE, data)
|
|
UNLOCK_CLOTHING_AWARD(CLOTHING_AWARD_PURCH_TRUCK)
|
|
|
|
IF bUpgradeTrailer
|
|
UNLOCK_CLOTHING_AWARD(CLOTHING_AWARD_PURCH_UPGRADETRAILER)
|
|
ENDIF
|
|
ELSE
|
|
// IF USE_SERVER_TRANSACTIONS()
|
|
// CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
// NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
// ENDIF
|
|
//
|
|
// CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Trading the business is earning the player: ", (iOwnedtruckValue * -1))
|
|
// NETWORK_EARN_FROM_PROPERTY(iOwnedtruckValue, GET_HASH_KEY(GET_truck_NAME_FROM_ID(eTradeIntruck)))
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
BOOL bUpgradeTrailer = FALSE
|
|
IF (sTruck_price_struct.iCabPrice >= 0)
|
|
data.m_vehicle = g_sTruckDataStruct.iCab
|
|
data.m_vehicle_amount = sTruck_price_struct.iCabPrice
|
|
bUpgradeTrailer = TRUE
|
|
ENDIF
|
|
IF (eSection1 != GET_ARMORY_TRUCK_SECTION_TYPE_STAT(ATS_FIRST_SECTION))
|
|
data.m_slot1 = ENUM_TO_INT(eSection1)
|
|
data.m_slot1_amount = sTruck_price_struct.iSection1Price
|
|
bUpgradeTrailer = TRUE
|
|
ENDIF
|
|
IF (eSection2 != GET_ARMORY_TRUCK_SECTION_TYPE_STAT(ATS_SECOND_SECTION))
|
|
ARMORY_TRUCK_SECTION_TYPE_ENUM eSavedSection2 = GET_ARMORY_TRUCK_SECTION_TYPE_STAT(ATS_SECOND_SECTION)
|
|
|
|
IF ((eSection2 = AT_ST_EMPTY_SINGLE) OR (eSection2 = AT_ST_EMPTY_DOUBLE) OR (eSection2 = AT_ST_EMPTY_SINGLE_DOOR))
|
|
AND ((eSavedSection2 = AT_ST_EMPTY_SINGLE) OR (eSavedSection2 = AT_ST_EMPTY_DOUBLE) OR (eSavedSection2 = AT_ST_EMPTY_SINGLE_DOOR))
|
|
//
|
|
ELSE
|
|
data.m_slot2 = ENUM_TO_INT(eSection2)
|
|
data.m_slot2_amount = sTruck_price_struct.iSection2Price
|
|
bUpgradeTrailer = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
IF (eSection3 != GET_ARMORY_TRUCK_SECTION_TYPE_STAT(ATS_THIRD_SECTION))
|
|
ARMORY_TRUCK_SECTION_TYPE_ENUM eSavedSection3 = GET_ARMORY_TRUCK_SECTION_TYPE_STAT(ATS_THIRD_SECTION)
|
|
|
|
IF ((eSection3 = AT_ST_EMPTY_SINGLE) OR (eSection3 = AT_ST_EMPTY_DOUBLE) OR (eSection3 = AT_ST_EMPTY_SINGLE_DOOR))
|
|
AND ((eSavedSection3 = AT_ST_EMPTY_SINGLE) OR (eSavedSection3 = AT_ST_EMPTY_DOUBLE) OR (eSavedSection3 = AT_ST_EMPTY_SINGLE_DOOR))
|
|
//
|
|
ELSE
|
|
data.m_slot3 = ENUM_TO_INT(eSection3)
|
|
data.m_slot3_amount = sTruck_price_struct.iSection3Price
|
|
bUpgradeTrailer = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
IF (eTint != GET_ARMORY_TRUCK_SECTION_TINT_STAT(ATS_FIRST_SECTION))
|
|
data.m_colorscheme = ENUM_TO_INT(eTint)
|
|
data.m_colorscheme_amount = sTruck_price_struct.iColourPrice
|
|
bUpgradeTrailer = TRUE
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Renovating truck to $", iPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_vehicle:", data.m_vehicle, " m_vehicle_amount:$", data.m_vehicle_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_trailer:", data.m_trailer, " m_trailer_amount:$", data.m_trailer_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_slot1:", data.m_slot1, " m_slot1_amount:$", data.m_slot1_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_slot2:", data.m_slot2, " m_slot2_amount:$", data.m_slot2_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_slot3:", data.m_slot3, " m_slot3_amount:$", data.m_slot3_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_colorscheme:", data.m_colorscheme, " m_colorscheme_amount:$", data.m_colorscheme_amount)
|
|
NETWORK_SPENT_UPGRADE_TRUCK(iPrice, FALSE, TRUE, data)
|
|
|
|
IF bUpgradeTrailer
|
|
UNLOCK_CLOTHING_AWARD(CLOTHING_AWARD_PURCH_UPGRADETRAILER)
|
|
ENDIF
|
|
ENDIF
|
|
ELIF thisModel = eDLC_BIG_PLANE_MODEL
|
|
|
|
SPENT_ON_TILTROTOR data
|
|
//Check if we're trading of just buying
|
|
IF NOT bPreviousBigassVehicle
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
TEXT_LABEL_23 str23 = ""
|
|
IF (sPlane_price_struct.iGunTurretPrice >= 0)
|
|
str23 = GET_ARMORY_AIRCRAFT_MOD_NAME(AAM_GUN_TURRET)
|
|
str23 += "_"
|
|
str23 += ENUM_TO_INT(g_sPlaneDataStruct.iGunTurret)
|
|
data.m_turret = GET_HASH_KEY(str23)
|
|
data.m_turret_amount = sPlane_price_struct.iGunTurretPrice
|
|
ENDIF
|
|
IF (sPlane_price_struct.iVehShopPrice >= 0)
|
|
str23 = GET_ARMORY_AIRCRAFT_MOD_NAME(AAM_VEHICLE_WORKSHOP)
|
|
str23 += "_"
|
|
str23 += ENUM_TO_INT(g_sPlaneDataStruct.iVehShop)
|
|
data.m_vehicleworkshop = GET_HASH_KEY(str23)
|
|
data.m_vehicleworkshop_amount = sPlane_price_struct.iVehShopPrice
|
|
ENDIF
|
|
IF (sPlane_price_struct.iWeaShopPrice >= 0)
|
|
str23 = GET_ARMORY_AIRCRAFT_MOD_NAME(AAM_WEAPON_WORKSHOP)
|
|
str23 += "_"
|
|
str23 += ENUM_TO_INT(g_sPlaneDataStruct.iWeaShop)
|
|
data.m_weaponworkshop = GET_HASH_KEY(str23)
|
|
data.m_weaponworkshop_amount = sPlane_price_struct.iWeaShopPrice
|
|
ENDIF
|
|
IF (sPlane_price_struct.iInteriorPrice >= 0)
|
|
str23 = GET_ARMORY_AIRCRAFT_MOD_NAME(AAM_INTERIOR)
|
|
str23 += "_"
|
|
str23 += ENUM_TO_INT(GET_PLANE_SECTION_TINT_FROM_SF(g_sPlaneDataStruct.iInterior))
|
|
data.m_interiortint = GET_HASH_KEY(str23)
|
|
data.m_interiortint_amount = sPlane_price_struct.iInteriorPrice
|
|
ENDIF
|
|
IF (sPlane_price_struct.iAvengerPrice >= 0)
|
|
data.m_aircraft = ENUM_TO_INT(INT_TO_ENUM(MODEL_NAMES, g_sPlaneDataStruct.iAvenger))
|
|
data.m_aircraft_amount = sPlane_price_struct.iAvengerPrice
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Bought plane for $", iPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_aircraft:", data.m_aircraft, " m_aircraft_amount:$", data.m_aircraft_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_turret:", data.m_turret, " m_turret_amount:$", data.m_turret_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_vehicleworkshop:", data.m_vehicleworkshop, " m_vehicleworkshop_amount:$", data.m_vehicleworkshop_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_weaponworkshop:", data.m_weaponworkshop, " m_weaponworkshop_amount:$", data.m_weaponworkshop_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_interiortint:", data.m_interiortint, " m_interiortint_amount:$", data.m_interiortint_amount)
|
|
NETWORK_SPENT_BUY_TILTROTOR(iPrice, FALSE, TRUE, data)
|
|
ELSE
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
TEXT_LABEL_23 str23 = ""
|
|
IF (sPlane_price_struct.iGunTurretPrice >= 0)
|
|
str23 = GET_ARMORY_AIRCRAFT_MOD_NAME(AAM_GUN_TURRET)
|
|
str23 += "_"
|
|
str23 += ENUM_TO_INT(g_sPlaneDataStruct.iGunTurret)
|
|
data.m_turret = GET_HASH_KEY(str23)
|
|
data.m_turret_amount = sPlane_price_struct.iGunTurretPrice
|
|
ENDIF
|
|
IF (sPlane_price_struct.iVehShopPrice >= 0)
|
|
str23 = GET_ARMORY_AIRCRAFT_MOD_NAME(AAM_VEHICLE_WORKSHOP)
|
|
str23 += "_"
|
|
str23 += ENUM_TO_INT(g_sPlaneDataStruct.iVehShop)
|
|
data.m_vehicleworkshop = GET_HASH_KEY(str23)
|
|
data.m_vehicleworkshop_amount = sPlane_price_struct.iVehShopPrice
|
|
ENDIF
|
|
IF (sPlane_price_struct.iWeaShopPrice >= 0)
|
|
str23 = GET_ARMORY_AIRCRAFT_MOD_NAME(AAM_WEAPON_WORKSHOP)
|
|
str23 += "_"
|
|
str23 += ENUM_TO_INT(g_sPlaneDataStruct.iWeaShop)
|
|
data.m_weaponworkshop = GET_HASH_KEY(str23)
|
|
data.m_weaponworkshop_amount = sPlane_price_struct.iWeaShopPrice
|
|
ENDIF
|
|
IF (sPlane_price_struct.iInteriorPrice >= 0)
|
|
str23 = GET_ARMORY_AIRCRAFT_MOD_NAME(AAM_INTERIOR)
|
|
str23 += "_"
|
|
str23 += ENUM_TO_INT(GET_PLANE_SECTION_TINT_FROM_SF(g_sPlaneDataStruct.iInterior))
|
|
data.m_interiortint = GET_HASH_KEY(str23)
|
|
data.m_interiortint_amount = sPlane_price_struct.iInteriorPrice
|
|
ENDIF
|
|
IF (sPlane_price_struct.iAvengerPrice >= 0)
|
|
data.m_aircraft = ENUM_TO_INT(INT_TO_ENUM(MODEL_NAMES, g_sPlaneDataStruct.iAvenger))
|
|
data.m_aircraft_amount = sPlane_price_struct.iAvengerPrice
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Renovating plane to $", iPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_aircraft:", data.m_aircraft, " m_aircraft_amount:$", data.m_aircraft_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_turret:", data.m_turret, " m_turret_amount:$", data.m_turret_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_vehicleworkshop:", data.m_vehicleworkshop, " m_vehicleworkshop_amount:$", data.m_vehicleworkshop_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_weaponworkshop:", data.m_weaponworkshop, " m_weaponworkshop_amount:$", data.m_weaponworkshop_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_interiortint:", data.m_interiortint, " m_interiortint_amount:$", data.m_interiortint_amount)
|
|
NETWORK_SPENT_UPGRADE_TILTROTOR(iPrice, FALSE, TRUE, data)
|
|
ENDIF
|
|
ELIF thisModel = eDLC_BALLISTIC_EQUIPMENT_MODEL
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_SHOPS, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
BOOL fromBank = (NETWORK_GET_VC_BANK_BALANCE() > 0)
|
|
BOOL fromBankAndWallet = (NETWORK_GET_VC_BANK_BALANCE() < iPrice)
|
|
|
|
INT colorHash = 0
|
|
NETWORK_BUY_ITEM(iPrice,ENUM_TO_INT(thisModel),PURCHASE_CLOTHES,1,fromBank,GET_LABEL_BUYABLE_VEHICLE(sbv),ENUM_TO_INT(basource),0,colorHash,fromBankAndWallet)//ENUM_TO_INT(sbv)
|
|
UNLOCK_CLOTHING_AWARD(CLOTHING_AWARD_PURCH_BALLISTIC)
|
|
SET_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_BAEQ2A)
|
|
ELIF thisModel = eDLC_HACKER_TRUCK_MODEL
|
|
INT iDecalSF = GET_HACKER_TRUCK_DECAL_FROM_SF(g_sHackerTruckDataStruct.iDecal)
|
|
INT iTintSF = GET_HACKER_TRUCK_TINT_FROM_SF(g_sHackerTruckDataStruct.iTint)
|
|
INT iMissileLauncher = g_sHackerTruckDataStruct.iMissileLauncher
|
|
INT iDroneStation = g_sHackerTruckDataStruct.iDroneStation
|
|
INT iWeaShop = g_sHackerTruckDataStruct.iWeaShop
|
|
INT iVehShop = g_sHackerTruckDataStruct.iVehShop
|
|
|
|
STRUCT_SPENT_ON_HACKER_TRUCK data
|
|
//Check if we're trading of just buying
|
|
IF NOT bPreviousBigassVehicle
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
IF (sHacker_truck_price_struct.iCabPrice >= 0)
|
|
data.m_truck = ENUM_TO_INT(INT_TO_ENUM(MODEL_NAMES, g_sHackerTruckDataStruct.iCab))
|
|
data.m_truck_amount = sHacker_truck_price_struct.iCabPrice
|
|
ENDIF
|
|
IF (sHacker_truck_price_struct.iDecalPrice >= 0)
|
|
data.m_pattern = GET_HASH_KEY(GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_DECAL, iDecalSF))
|
|
data.m_pattern_amount = sHacker_truck_price_struct.iDecalPrice
|
|
ENDIF
|
|
IF (sHacker_truck_price_struct.iTintPrice >= 0)
|
|
data.m_tint = GET_HASH_KEY(GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_TINT, iTintSF))
|
|
data.m_tint_amount = sHacker_truck_price_struct.iTintPrice
|
|
ENDIF
|
|
IF (sHacker_truck_price_struct.iMissileLauncherPrice >= 0)
|
|
data.m_missileLauncher = GET_HASH_KEY(GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_MISSILE_LAUNCHER, iMissileLauncher))
|
|
data.m_missileLauncher_amount = sHacker_truck_price_struct.iMissileLauncherPrice
|
|
ENDIF
|
|
IF (sHacker_truck_price_struct.iDroneStationPrice >= 0)
|
|
data.m_droneStation = GET_HASH_KEY(GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_DRONE_STATION, iDroneStation))
|
|
data.m_droneStation_amount = sHacker_truck_price_struct.iDroneStationPrice
|
|
ENDIF
|
|
IF (sHacker_truck_price_struct.iWeaShopPrice >= 0)
|
|
data.m_weaponWorkshop = GET_HASH_KEY(GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_WEAPON_STATION, iWeaShop))
|
|
data.m_weaponWorkshop_amount = sHacker_truck_price_struct.iWeaShopPrice
|
|
ENDIF
|
|
IF (sHacker_truck_price_struct.iVehShopPrice >= 0)
|
|
data.m_bikeWorkshop = GET_HASH_KEY(GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_MOTORCYCLE_WORKSHOP, iVehShop))
|
|
data.m_bikeWorkshop_amount = sHacker_truck_price_struct.iVehShopPrice
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Bought hacker truck for $", iPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_truck:", data.m_truck, " m_truck_amount:$", data.m_truck_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_tint:", data.m_tint, " m_tint_amount:$", data.m_tint_amount, " ", GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_TINT, iTintSF))
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_pattern:", data.m_pattern, " m_pattern_amount:$", data.m_pattern_amount, " ", GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_DECAL, iDecalSF))
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_missileLauncher:", data.m_missileLauncher, " m_missileLauncher_amount:$", data.m_missileLauncher_amount, " ", GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_MISSILE_LAUNCHER, iMissileLauncher))
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_droneStation:", data.m_droneStation, " m_droneStation_amount:$", data.m_droneStation_amount, " ", GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_DRONE_STATION, iDroneStation))
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_weaponWorkshop:", data.m_weaponWorkshop, " m_weaponWorkshop_amount:$", data.m_weaponWorkshop_amount, " ", GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_WEAPON_STATION, iWeaShop))
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_bikeWorkshop:", data.m_bikeWorkshop, " m_bikeWorkshop_amount:$", data.m_bikeWorkshop_amount, " ", GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_MOTORCYCLE_WORKSHOP, iVehShop))
|
|
NETWORK_SPENT_PURCHASE_HACKER_TRUCK(iPrice, data, FALSE, TRUE)
|
|
SET_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_HACKT2)
|
|
ELSE
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
IF (sHacker_truck_price_struct.iCabPrice >= 0)
|
|
data.m_truck = ENUM_TO_INT(INT_TO_ENUM(MODEL_NAMES, g_sHackerTruckDataStruct.iCab))
|
|
data.m_truck_amount = sHacker_truck_price_struct.iCabPrice
|
|
ENDIF
|
|
IF (sHacker_truck_price_struct.iDecalPrice >= 0)
|
|
data.m_pattern = GET_HASH_KEY(GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_DECAL, iDecalSF))
|
|
data.m_pattern_amount = sHacker_truck_price_struct.iDecalPrice
|
|
ENDIF
|
|
IF (sHacker_truck_price_struct.iTintPrice >= 0)
|
|
data.m_tint = GET_HASH_KEY(GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_TINT, iTintSF))
|
|
data.m_tint_amount = sHacker_truck_price_struct.iTintPrice
|
|
ENDIF
|
|
IF (sHacker_truck_price_struct.iMissileLauncherPrice >= 0)
|
|
data.m_missileLauncher = GET_HASH_KEY(GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_MISSILE_LAUNCHER, iMissileLauncher))
|
|
data.m_missileLauncher_amount = sHacker_truck_price_struct.iMissileLauncherPrice
|
|
ENDIF
|
|
IF (sHacker_truck_price_struct.iDroneStationPrice >= 0)
|
|
data.m_droneStation = GET_HASH_KEY(GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_DRONE_STATION, iDroneStation))
|
|
data.m_droneStation_amount = sHacker_truck_price_struct.iDroneStationPrice
|
|
ENDIF
|
|
IF (sHacker_truck_price_struct.iWeaShopPrice >= 0)
|
|
data.m_weaponWorkshop = GET_HASH_KEY(GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_WEAPON_STATION, iWeaShop))
|
|
data.m_weaponWorkshop_amount = sHacker_truck_price_struct.iWeaShopPrice
|
|
ENDIF
|
|
IF (sHacker_truck_price_struct.iVehShopPrice >= 0)
|
|
data.m_bikeWorkshop = GET_HASH_KEY(GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_MOTORCYCLE_WORKSHOP, iVehShop))
|
|
data.m_bikeWorkshop_amount = sHacker_truck_price_struct.iVehShopPrice
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Renovating hacker truck to $", iPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_truck:", data.m_truck, " m_truck_amount:$", data.m_truck_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_tint:", data.m_tint, " m_tint_amount:$", data.m_tint_amount, " ", GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_TINT, iTintSF))
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_pattern:", data.m_pattern, " m_pattern_amount:$", data.m_pattern_amount, " ", GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_DECAL, iDecalSF))
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_missileLauncher:", data.m_missileLauncher, " m_missileLauncher_amount:$", data.m_missileLauncher_amount, " ", GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_MISSILE_LAUNCHER, iMissileLauncher))
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_droneStation:", data.m_droneStation, " m_droneStation_amount:$", data.m_droneStation_amount, " ", GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_DRONE_STATION, iDroneStation))
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_weaponWorkshop:", data.m_weaponWorkshop, " m_weaponWorkshop_amount:$", data.m_weaponWorkshop_amount, " ", GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_WEAPON_STATION, iWeaShop))
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: m_bikeWorkshop:", data.m_bikeWorkshop, " m_bikeWorkshop_amount:$", data.m_bikeWorkshop_amount, " ", GET_HACKER_TRUCK_MOD_NAME_FROM_ID(eHACKER_TRUCK_MOD_MOTORCYCLE_WORKSHOP, iVehShop))
|
|
NETWORK_SPENT_UPGRADE_HACKER_TRUCK(iPrice, data, FALSE, TRUE)
|
|
ENDIF
|
|
#IF FEATURE_HEIST_ISLAND
|
|
ELIF thisModel = GET_SUBMARINE_MODEL()
|
|
// ----- TELEMETRY SPEND -----
|
|
|
|
STRUCT_BUY_SUB sSubData
|
|
|
|
// Default values are -1, when they should be 0. Easier to change them via script at this stage.
|
|
sSubData.submarine_amount = 0
|
|
sSubData.color = 0
|
|
sSubData.color_amount = 0
|
|
sSubData.flag = 0
|
|
sSubData.flag_amount = 0
|
|
sSubData.anti_aircraft_amount = 0
|
|
sSubData.missile_station = 0
|
|
sSubData.missile_station_amount = 0
|
|
sSubData.sonar = 0
|
|
sSubData.sonar_amount = 0
|
|
sSubData.weapon_workshop = 0
|
|
sSubData.weapon_workshop_amount = 0
|
|
sSubData.iavisa = 0
|
|
sSubData.avisa_pool_amount = 0
|
|
sSubData.iseasparrow = 0
|
|
sSubData.seasparrow_pool_amount = 0
|
|
|
|
INT iKosatkaColourSF = GET_KOSATKA_COLOUR_FROM_SF(g_sKosatkaDataStruct.iColour) // 0 - 15
|
|
INT iKosatkaFlagSF = GET_KOSATKA_FLAG_FROM_SF(g_sKosatkaDataStruct.iFlag) // 0 - 49
|
|
INT iKosatkaMissilesSF = g_sKosatkaDataStruct.iMissiles // 0 - 1
|
|
INT iKosatkaSonarSF = g_sKosatkaDataStruct.iSonar // 0 - 1
|
|
INT iKosatkaWeaShopSF = g_sKosatkaDataStruct.iWeaShop // 0 - 1
|
|
INT iKosatkaSeaSparrow2SF = g_sKosatkaDataStruct.iSeaSparrow2 // 0 - 1
|
|
INT iKosatkaAvisaSF = g_sKosatkaDataStruct.iAvisa // 0 - 1
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
// If buying for the first time, pass in data for everything (purchased or not purchased).
|
|
IF NOT bPreviousBigassVehicle
|
|
|
|
// ----- Kosatka -----
|
|
IF (sKosatka_price_struct.iOwnedPrice >= 0)
|
|
sSubData.submarine_amount = sKosatka_price_struct.iOwnedPrice
|
|
ENDIF
|
|
|
|
// ----- Colour -----
|
|
IF (sKosatka_price_struct.iColourPrice >= 0)
|
|
sSubData.color = GET_HASH_KEY(GET_KOSATKA_MOD_NAME_FROM_ID(eKOSATKA_MOD_COLOUR, iKosatkaColourSF))
|
|
sSubData.color_amount = sKosatka_price_struct.iColourPrice
|
|
ENDIF
|
|
|
|
// ----- Flag -----
|
|
IF (sKosatka_price_struct.iFlagPrice >= 0)
|
|
sSubData.flag = GET_HASH_KEY(GET_KOSATKA_MOD_NAME_FROM_ID(eKOSATKA_MOD_FLAG, iKosatkaFlagSF))
|
|
sSubData.flag_amount = sKosatka_price_struct.iFlagPrice
|
|
ENDIF
|
|
|
|
// ----- Sonar -----
|
|
IF (sKosatka_price_struct.iSonarPrice >= 0)
|
|
sSubData.sonar = GET_HASH_KEY(GET_KOSATKA_MOD_NAME_FROM_ID(eKOSATKA_MOD_SONAR, iKosatkaSonarSF))
|
|
sSubData.sonar_amount = sKosatka_price_struct.iSonarPrice
|
|
ENDIF
|
|
|
|
// ----- Missiles -----
|
|
IF (sKosatka_price_struct.iMissilesPrice >= 0)
|
|
sSubData.missile_station = GET_HASH_KEY(GET_KOSATKA_MOD_NAME_FROM_ID(eKOSATKA_MOD_MISSILES, iKosatkaMissilesSF))
|
|
sSubData.missile_station_amount = sKosatka_price_struct.iMissilesPrice
|
|
ENDIF
|
|
|
|
// ----- Weapon Workshop -----
|
|
IF (sKosatka_price_struct.iWeaShopPrice >= 0)
|
|
sSubData.weapon_workshop = GET_HASH_KEY(GET_KOSATKA_MOD_NAME_FROM_ID(eKOSATKA_MOD_WEAPON_STATION, iKosatkaWeaShopSF))
|
|
sSubData.weapon_workshop_amount = sKosatka_price_struct.iWeaShopPrice
|
|
ENDIF
|
|
|
|
// ----- Avisa -----
|
|
IF (sKosatka_price_struct.iAvisaPrice >= 0)
|
|
sSubData.iavisa = GET_HASH_KEY(GET_KOSATKA_MOD_NAME_FROM_ID(eKOSATKA_MOD_AVISA, iKosatkaAvisaSF))
|
|
sSubData.avisa_pool_amount = sKosatka_price_struct.iAvisaPrice
|
|
ENDIF
|
|
|
|
// ----- Sparrow -----
|
|
IF (sKosatka_price_struct.iSeaSparrow2Price >= 0)
|
|
sSubData.iseasparrow = GET_HASH_KEY(GET_KOSATKA_MOD_NAME_FROM_ID(eKOSATKA_MOD_SEASPARROW2, iKosatkaSeaSparrow2SF))
|
|
sSubData.seasparrow_pool_amount = sKosatka_price_struct.iSeaSparrow2Price
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_INTERNET, "***** DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - SPEND - BUY *****")
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.submarine_amount: ", sSubData.submarine_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.color: ", sSubData.color)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.color_amount: ", sSubData.color_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.flag: ", sSubData.flag)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.flag_amount: ", sSubData.flag_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.sonar: ", sSubData.sonar)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.sonar_amount: ", sSubData.sonar_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.missile_station: ", sSubData.missile_station)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.missile_station_amount: ", sSubData.missile_station_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.weapon_workshop: ", sSubData.weapon_workshop)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.weapon_workshop_amount: ", sSubData.weapon_workshop_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.iavisa: ", sSubData.iavisa)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.avisa_pool_amount: ", sSubData.avisa_pool_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.iseasparrow: ", sSubData.iseasparrow)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.seasparrow_pool_amount: ", sSubData.seasparrow_pool_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - iPrice: ", iPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "")
|
|
#ENDIF
|
|
|
|
NETWORK_SPEND_BUY_SUB(iPrice, FALSE, TRUE, sSubData)
|
|
ELSE
|
|
// If renovating, only pass in data for the add-ons that are being purchased, but still pass in the amount (purchased or not).
|
|
|
|
// ----- Kosatka -----
|
|
IF (sKosatka_price_struct.iOwnedPrice >= 0)
|
|
sSubData.submarine_amount = sKosatka_price_struct.iOwnedPrice
|
|
ENDIF
|
|
|
|
// ----- Colour -----
|
|
INT iKosatkaStoredColour = GET_PACKED_STAT_INT(PACKED_MP_INT_KOSATKA_COLOUR)
|
|
|
|
IF (iKosatkaColourSF != iKosatkaStoredColour)
|
|
OR (sKosatka_price_struct.iColourPrice > 0)
|
|
sSubData.color = GET_HASH_KEY(GET_KOSATKA_MOD_NAME_FROM_ID(eKOSATKA_MOD_COLOUR, iKosatkaColourSF))
|
|
ENDIF
|
|
IF (sKosatka_price_struct.iColourPrice >= 0)
|
|
sSubData.color_amount = sKosatka_price_struct.iColourPrice
|
|
ENDIF
|
|
|
|
// ----- Flag -----
|
|
INT iKosatkaStoredFlag = GET_PACKED_STAT_INT(PACKED_MP_INT_KOSATKA_FLAG)
|
|
|
|
IF (iKosatkaFlagSF != iKosatkaStoredFlag)
|
|
OR (sKosatka_price_struct.iFlagPrice > 0)
|
|
sSubData.flag = GET_HASH_KEY(GET_KOSATKA_MOD_NAME_FROM_ID(eKOSATKA_MOD_FLAG, iKosatkaFlagSF))
|
|
ENDIF
|
|
IF (sKosatka_price_struct.iFlagPrice >= 0)
|
|
sSubData.flag_amount = sKosatka_price_struct.iFlagPrice
|
|
ENDIF
|
|
|
|
// ----- Sonar -----
|
|
INT iKosatkaStoredSonar = GET_PACKED_STAT_INT(PACKED_MP_INT_KOSATKA_SONAR)
|
|
|
|
IF (iKosatkaSonarSF != iKosatkaStoredSonar)
|
|
OR (sKosatka_price_struct.iSonarPrice > 0)
|
|
sSubData.sonar = GET_HASH_KEY(GET_KOSATKA_MOD_NAME_FROM_ID(eKOSATKA_MOD_SONAR, iKosatkaSonarSF))
|
|
ENDIF
|
|
IF (sKosatka_price_struct.iSonarPrice >= 0)
|
|
sSubData.sonar_amount = sKosatka_price_struct.iSonarPrice
|
|
ENDIF
|
|
|
|
// ----- Missiles -----
|
|
INT iKosatkaStoredMissiles = GET_PACKED_STAT_INT(PACKED_MP_INT_KOSATKA_GUIDED_MISSILES)
|
|
|
|
IF (iKosatkaMissilesSF != iKosatkaStoredMissiles)
|
|
OR (sKosatka_price_struct.iMissilesPrice > 0)
|
|
sSubData.missile_station = GET_HASH_KEY(GET_KOSATKA_MOD_NAME_FROM_ID(eKOSATKA_MOD_MISSILES, iKosatkaMissilesSF))
|
|
ENDIF
|
|
IF (sKosatka_price_struct.iMissilesPrice >= 0)
|
|
sSubData.missile_station_amount = sKosatka_price_struct.iMissilesPrice
|
|
ENDIF
|
|
|
|
// ----- Weapon Workshop -----
|
|
INT iKosatkaStoredWeaShop = GET_PACKED_STAT_INT(PACKED_MP_INT_KOSATKA_WEAPON_WORKSHOP)
|
|
|
|
IF (iKosatkaWeaShopSF != iKosatkaStoredWeaShop)
|
|
OR (sKosatka_price_struct.iWeaShopPrice > 0)
|
|
sSubData.weapon_workshop = GET_HASH_KEY(GET_KOSATKA_MOD_NAME_FROM_ID(eKOSATKA_MOD_WEAPON_STATION, iKosatkaWeaShopSF))
|
|
ENDIF
|
|
IF (sKosatka_price_struct.iWeaShopPrice >= 0)
|
|
sSubData.weapon_workshop_amount = sKosatka_price_struct.iWeaShopPrice
|
|
ENDIF
|
|
|
|
// ----- Avisa -----
|
|
INT iKosatkaStoredAvisa = GET_PACKED_STAT_INT(PACKED_MP_INT_KOSATKA_AVISA)
|
|
|
|
IF (iKosatkaAvisaSF != iKosatkaStoredAvisa)
|
|
OR (sKosatka_price_struct.iAvisaPrice > 0)
|
|
sSubData.iavisa = GET_HASH_KEY(GET_KOSATKA_MOD_NAME_FROM_ID(eKOSATKA_MOD_AVISA, iKosatkaAvisaSF))
|
|
ENDIF
|
|
IF (sKosatka_price_struct.iAvisaPrice >= 0)
|
|
sSubData.avisa_pool_amount = sKosatka_price_struct.iAvisaPrice
|
|
ENDIF
|
|
|
|
// ----- Sparrow -----
|
|
INT iKosatkaStoredSparrow = GET_PACKED_STAT_INT(PACKED_MP_INT_KOSATKA_SEASPARROW2)
|
|
|
|
IF (iKosatkaSeaSparrow2SF != iKosatkaStoredSparrow)
|
|
OR (sKosatka_price_struct.iSeaSparrow2Price > 0)
|
|
sSubData.iseasparrow = GET_HASH_KEY(GET_KOSATKA_MOD_NAME_FROM_ID(eKOSATKA_MOD_SEASPARROW2, iKosatkaSeaSparrow2SF))
|
|
ENDIF
|
|
IF (sKosatka_price_struct.iSeaSparrow2Price >= 0)
|
|
sSubData.seasparrow_pool_amount = sKosatka_price_struct.iSeaSparrow2Price
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_INTERNET, "***** DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - SPEND - RENOVATE *****")
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.submarine_amount: ", sSubData.submarine_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.color: ", sSubData.color)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.color_amount: ", sSubData.color_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.flag: ", sSubData.flag)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.flag_amount: ", sSubData.flag_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.sonar: ", sSubData.sonar)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.sonar_amount: ", sSubData.sonar_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.missile_station: ", sSubData.missile_station)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.missile_station_amount: ", sSubData.missile_station_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.weapon_workshop: ", sSubData.weapon_workshop)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.weapon_workshop_amount: ", sSubData.weapon_workshop_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.iavisa: ", sSubData.iavisa)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.avisa_pool_amount: ", sSubData.avisa_pool_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.iseasparrow: ", sSubData.iseasparrow)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - sSubData.seasparrow_pool_amount: ", sSubData.seasparrow_pool_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: Kosatka - TELEMETRY - iPrice: ", iPrice)
|
|
CPRINTLN(DEBUG_INTERNET, "")
|
|
#ENDIF
|
|
|
|
NETWORK_SPEND_UPGRADE_SUB(iPrice, FALSE, TRUE, sSubData)
|
|
ENDIF
|
|
#ENDIF
|
|
ELSE
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_SHOPS, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
BOOL fromBank = (NETWORK_GET_VC_BANK_BALANCE() > 0)
|
|
BOOL fromBankAndWallet = (NETWORK_GET_VC_BANK_BALANCE() < iPrice)
|
|
|
|
INT colorHash = 0
|
|
|
|
INT iSVMIndex = GET_SVM_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
INT iWVMIndex = GET_WVM_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
INT iWAMIndex = WAM_GET_STEAL_MISSION_UNLOCK_COUNT_FROM_VEHICLE_MODEL(g_sConfVssMP.vehicleSetup.eModel)
|
|
INT iFDSSlot = GET_FDS_VEHICLE_SLOT(g_sConfVssMP.vehicleSetup.eModel)
|
|
INT iBBSIndex = GET_BBS_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
INT iAWSIndex = GET_AWS_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
#IF FEATURE_CASINO_HEIST
|
|
INT iCHIndex = GET_CH_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
#ENDIF
|
|
#IF FEATURE_COPS_N_CROOKS
|
|
INT iCNCIndex = GET_CNC_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
#ENDIF
|
|
// #IF FEATURE_SUMMER_2020
|
|
// INT iSUMIndex = GET_SUMMER20_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
// #ENDIF
|
|
INT iIHIndex = GET_ISLAND_HEIST_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
INT iTunerIndex = GET_TUNER_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
INT iFixerIndex = GET_FIXER_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
#IF FEATURE_DLC_1_2022
|
|
INT iSum2Index = GET_SUMMER_2022_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
#ENDIF
|
|
|
|
IF iSVMIndex != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
INT iMission = SVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(g_sConfVssMP.vehicleSetup.eModel)
|
|
IF NOT SVM_HAS_PLAYER_UNLOCKED_MISSION(iMission)
|
|
colorHash = 1
|
|
ELIF NOT SVM_HAS_THIS_MISSION_BEEN_PASSED(iMission, ciFLOW_MISSION_TYPE_SVM) //SVM_IS_SPECIAL_VEHICLE_UNLOCKED
|
|
colorHash = 2
|
|
ELSE
|
|
colorHash = 3
|
|
ENDIF
|
|
SMV_RESET_VEHICLE_UNLOCK_INT(iMission)
|
|
SET_BIT(iSVM_Unlock_Feed_Message, iMission)
|
|
ELIF IS_SBV_A_VEHICLE_PREVIOUSLY_HEIST_LOCKED(sbv)
|
|
//1 = for not unlocked through heist
|
|
//2 = for unlocked through heist
|
|
|
|
IF NOT IS_BUYABLE_VEHICLE_UNLOCKED(sbv)
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
ELIF iWVMIndex != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
INT iMission = WVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(g_sConfVssMP.vehicleSetup.eModel)
|
|
// IF NOT TRUE //WVM_HAS_PLAYER_UNLOCKED_MISSION(iMission)
|
|
// colorHash = 1
|
|
// EL
|
|
IF NOT SVM_HAS_THIS_MISSION_BEEN_PASSED(iMission, ciFLOW_MISSION_TYPE_WVM) //WVM_IS_SPECIAL_VEHICLE_UNLOCKED
|
|
colorHash = 2
|
|
ELSE
|
|
colorHash = 3
|
|
ENDIF
|
|
SMV_RESET_VEHICLE_UNLOCK_INT(iMission)
|
|
SET_BIT(iWVM_Unlock_Feed_Message, iMission)
|
|
|
|
UNLOCK_CLOTHING_AWARD(CLOTHING_AWARD_PURCH_SINGLEWEAPONIZEDVEHICLE)
|
|
|
|
BOOL bClothingAwardPurchAllWeaponizedVehicle = FALSE
|
|
INT i, iSavedWVMBitset = 0
|
|
SET_BIT(iSavedWVMBitset, iWVMIndex)
|
|
REPEAT MAX_MP_SAVED_VEHICLES i
|
|
INT iSavedWVMIndex = GET_WVM_VEHICLE_INDEX(g_MpSavedVehicles[i].vehicleSetupMP.VehicleSetup.eModel)
|
|
IF iSavedWVMIndex != -1
|
|
AND NOT IS_BIT_SET(iSavedWVMBitset, iSavedWVMIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: purchase weaponized veh ", iWVMIndex, ", already own ", iSavedWVMIndex, ", in slot ", i, ".")
|
|
SET_BIT(iSavedWVMBitset, iSavedWVMIndex)
|
|
ENDIF
|
|
|
|
IF (IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(DUNE3))
|
|
AND IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(HALFTRACK))
|
|
AND IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(TRAILERSMALL2))
|
|
AND IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(APC))
|
|
AND IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(TAMPA3))
|
|
AND IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(OPPRESSOR)))
|
|
UNLOCK_CLOTHING_AWARD(CLOTHING_AWARD_PURCH_ALLWEAPONIZEDVEHICLE)
|
|
bClothingAwardPurchAllWeaponizedVehicle = TRUE
|
|
i = MAX_MP_SAVED_VEHICLES
|
|
ENDIF
|
|
ENDREPEAT
|
|
IF NOT bClothingAwardPurchAllWeaponizedVehicle
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: purchase weaponized veh ", iWVMIndex,
|
|
PICK_STRING(IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(DUNE3)), ", own DUNE3", ", dont own DUNE3"),
|
|
PICK_STRING(IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(HALFTRACK)), ", own HALFTRACK", ", dont own HALFTRACK"),
|
|
PICK_STRING(IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(TRAILERSMALL2)), ", own TRAILERSMALL2", ", dont own TRAILERSMALL2"),
|
|
PICK_STRING(IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(APC)), ", own APC", ", dont own APC"),
|
|
PICK_STRING(IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(TAMPA3)), ", own TAMPA3", ", dont own TAMPA3"),
|
|
PICK_STRING(IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(OPPRESSOR)), ", own OPPRESSOR", ", dont own OPPRESSOR"))
|
|
ENDIF
|
|
ELIF iWAMIndex > 0
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
IF NOT WAM_IS_SPECIAL_VEHICLE_UNLOCKED(g_sConfVssMP.vehicleSetup.eModel)
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
ELIF iFDSSlot != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
IF NOT HAS_PLAYER_UNLOCKED_GANG_OPS_VEHICLE_TRADE_PRICE(g_sConfVssMP.vehicleSetup.eModel)
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
SET_BIT(iFDS_Unlock_Feed_Message, iFDSSlot)
|
|
ELIF iBBSIndex != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
IF NOT IS_BUSINESS_BATTLES_VEHICLE_REWARD_UNLOCKED(g_sConfVssMP.vehicleSetup.eModel)
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
SET_BIT(iBBS_Unlock_Feed_Message, iBBSIndex)
|
|
ELIF iAWSIndex != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
IF NOT IS_ARENA_WARS_VEHICLE_REWARD_UNLOCKED(g_sConfVssMP.vehicleSetup.eModel)
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
// SET_BIT(iBBS_Unlock_Feed_Message, iAWSIndex)
|
|
|
|
IF IS_VEHICLE_AN_ARENA_CONTENDER_VEHICLE(g_sConfVssMP.vehicleSetup.eModel)
|
|
// Player purchases an Arena vehicle (already supermodded):
|
|
GB_SETUP_ARENA_WARS_FIRST_ARENA_VEHICLE_PURCHASED_CALL()
|
|
SET_OWNED_ARENA_READY_VEHICLE_STAT(g_sConfVssMP.vehicleSetup.eModel)
|
|
ELSE
|
|
// Player purchases a base vehicle (can be supermodded to become Arena vehicle):
|
|
GB_SETUP_ARENA_WARS_FIRST_BASE_VEHICLE_PURCHASED_CALL()
|
|
ENDIF
|
|
#IF FEATURE_CASINO_HEIST
|
|
ELIF iCHIndex != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
IF NOT IS_CASINO_HEIST_VEHICLE_REWARD_UNLOCKED(g_sConfVssMP.vehicleSetup.eModel)
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
#ENDIF
|
|
#IF FEATURE_COPS_N_CROOKS
|
|
ELIF iCNCIndex != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
// if not unlocked
|
|
IF NOT IS_CNC_VEHICLE_REWARD_UNLOCKED()
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
#ENDIF
|
|
// #IF FEATURE_SUMMER_2020
|
|
// ELIF iSUMIndex != -1
|
|
// //1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// // of Export missions to unlock the related Special Vehicle Mission
|
|
// //2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// // of Export missions to unlock the related Special Vehicle Mission
|
|
// //3 = Purchased at the Securo Serve Discount value
|
|
//
|
|
// // if not unlocked
|
|
// IF NOT IS_SUMMER20_VEHICLE_REWARD_UNLOCKED()
|
|
// colorHash = 1
|
|
// ELSE
|
|
// colorHash = 2
|
|
// ENDIF
|
|
// #ENDIF
|
|
ELIF iIHIndex != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
// if not unlocked
|
|
IF NOT IS_ISLAND_HEIST_VEHICLE_REWARD_UNLOCKED(g_sConfVssMP.vehicleSetup.eModel)
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
ELIF iTunerIndex != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
// if not unlocked
|
|
IF NOT IS_TUNER_VEHICLE_REWARD_UNLOCKED(g_sConfVssMP.vehicleSetup.eModel)
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
ELIF iFixerIndex != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
// if not unlocked
|
|
IF NOT IS_FIXER_VEHICLE_REWARD_UNLOCKED(g_sConfVssMP.vehicleSetup.eModel)
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
#IF FEATURE_DLC_1_2022
|
|
ELIF iSum2Index != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
// if not unlocked
|
|
IF NOT IS_SUMMER_2022_VEHICLE_REWARD_UNLOCKED(g_sConfVssMP.vehicleSetup.eModel)
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
#ENDIF
|
|
ELIF thisModel = RCBANDITO
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_RCBANDITO_OWNED, ENUM_TO_INT(thisModel) != 0)
|
|
BROADCAST_PLAYER_RC_BANDITO_PURCHASED(TRUE)
|
|
CPRINTLN(DEBUG_SHOPS, "DO_BIGASS_VEHICLE_BUY: Big Ass Vehicle details: making sure player owns the RC Bandito!")
|
|
#IF FEATURE_CASINO_HEIST
|
|
ELIF thisModel = MINITANK
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_RC_TANK_OWNED, ENUM_TO_INT(thisModel) != 0)
|
|
SET_PLAYER_PURCHASED_RC_TANK(TRUE)
|
|
CPRINTLN(DEBUG_SHOPS, "DO_BIGASS_VEHICLE_BUY: Big Ass Vehicle details: making sure player owns the RC Tank!")
|
|
#ENDIF
|
|
ENDIF
|
|
|
|
IF IS_SBV_A_VEHICLE_FREE_FOR_CRIMINAL_ENTERPRISE_STARTER_PACK(sbv)
|
|
IF HAS_MP_CRIMINAL_ENTERPRISE_PREMIUM_OR_STARTER_ACCESS()
|
|
SWITCH sbv
|
|
CASE BV_GR_DUNE3 SET_PLAYER_PURCHASED_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT(CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_BF_DUNE_FAV) BREAK
|
|
CASE BV_BI_VORTEX SET_PLAYER_PURCHASED_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT(CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_PEGASSI_VORTEX) BREAK
|
|
CASE BV_ST_OMNIS SET_PLAYER_PURCHASED_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT(CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_OBEY_OMNIS) BREAK
|
|
CASE BV_P_FROGGER SET_PLAYER_PURCHASED_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT(CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_MAIBATSU_FROGGER) BREAK
|
|
CASE BV_BI_ZOMBIEB SET_PLAYER_PURCHASED_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT(CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_WESTERN_ZOMBIE_CHOPPER) BREAK
|
|
CASE BV_DLC_TURISMO SET_PLAYER_PURCHASED_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT(CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_GROTTI_TURISMO_R) BREAK
|
|
CASE BV_LX_WINDSOR SET_PLAYER_PURCHASED_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT(CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_ENUS_WINDSOR) BREAK
|
|
CASE BV_C_BANSHEE SET_PLAYER_PURCHASED_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT(CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_BRAVADO_BANSHEE) BREAK
|
|
CASE BV_MP_COQUETTE2 SET_PLAYER_PURCHASED_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT(CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_INVETERO_COQUETTE_CLASSIC) BREAK
|
|
CASE BV_DLC_HUNTLEY SET_PLAYER_PURCHASED_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT(CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_ENUS_HUNTLEY_S) BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: unknown free Criminal Enterprise Starter Pack vehicle ", sbv)
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
ENDIF
|
|
|
|
NETWORK_BUY_ITEM(iPrice,ENUM_TO_INT(thisModel),PURCHASE_VEHICLES,1,fromBank,GET_LABEL_BUYABLE_VEHICLE(sbv),ENUM_TO_INT(basource),0,colorHash,fromBankAndWallet)//ENUM_TO_INT(sbv)
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY, price = ", iPrice, ", bypass natives")
|
|
ENDIF
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
ENDIF
|
|
|
|
IF NETWORK_IS_GAME_IN_PROGRESS()
|
|
IF (thisModel != eDLC_BIG_TRUCK_MODEL)
|
|
AND (thisModel != eDLC_BALLISTIC_EQUIPMENT_MODEL)
|
|
AND (thisModel != eDLC_BIG_PLANE_MODEL)
|
|
AND (thisModel != eDLC_HACKER_TRUCK_MODEL)
|
|
AND (thisModel != GET_SUBMARINE_MODEL())
|
|
CHECK_LIVE_A_LITTLE_ACHIEVEMENT(thisModel, iPrice)
|
|
ENDIF
|
|
|
|
SET_CLOTHING_FOR_VEHICLE_PURCHASE(siteID, sbv)
|
|
WHILE NOT SET_CHIPS_FOR_VEHICLE_PURCHASE(sbv, eChipsTransactionState)
|
|
AND DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
eChipsTransactionState = TRANSACTION_STATE_DEFAULT
|
|
|
|
IF (GET_WVM_VEHICLE_INDEX(thisModel) != -1)
|
|
AND thisModel != TRAILERSMALL2
|
|
IF g_bPurchasedWeaponisedVehicle = FALSE
|
|
PRINTLN("[GUNRUN_CALL] - DO_BIGASS_VEHICLE_BUY - g_bPurchasedWeaponisedVehicle = TRUE, player has purchased a weaponised vehicle")
|
|
g_bPurchasedWeaponisedVehicle = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SET_MP_VEHICLE_PURCHASED_PACKED_STAT_BOOL(thisModel)
|
|
|
|
IF thisModel = eDLC_BIG_YACHT_MODEL
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(g_sYachtDataStruct.tl63NewName)
|
|
g_sYachtDataStruct.tl63Name = g_sYachtDataStruct.tl63NewName
|
|
ENDIF
|
|
g_sYachtDataStruct.tl63NewName = ""
|
|
|
|
SET_PACKED_STAT_INT(PACKED_MP_CHAR_YACHT_MOD, g_sYachtDataStruct.iMod)
|
|
SET_PACKED_STAT_INT(PACKED_MP_CHAR_YACHT_FIXTURE, g_sYachtDataStruct.iFixture)
|
|
SET_PACKED_STAT_INT(PACKED_MP_CHAR_YACHT_LIGHTING, g_sYachtDataStruct.iLighting)
|
|
SET_LOCAL_PLAYER_OWNS_PRIVATE_YACHT(TRUE, g_sYachtDataStruct.iMod, g_sYachtDataStruct.iColour, g_sYachtDataStruct.iLighting, g_sYachtDataStruct.iFixture, g_sYachtDataStruct.iFlag)
|
|
SET_LOCAL_PLAYER_BD_DESIRED_YACHT_LOCATION(GET_ENTITY_COORDS(PLAYER_PED_ID(), FALSE))
|
|
SET_LOCAL_PLAYER_BD_YACHT_NAME(g_sYachtDataStruct.tl63Name)
|
|
|
|
SET_PACKED_STAT_INT(PACKED_MP_CHAR_YACHT_FLAG, g_sYachtDataStruct.iFlag)
|
|
SET_MP_LONG_STRING_CHARACTER_STAT(MP_STAT_YACHT_NAME, MP_STAT_YACHT_NAME2, g_sYachtDataStruct.tl63Name)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_INV_YACHT_NAME_ID, g_sYachtDataStruct.iYachtNameID)
|
|
SET_PACKED_STAT_INT(PACKED_MP_CHAR_YACHT_COLOR, g_sYachtDataStruct.iColour)
|
|
|
|
SET_BIG_ASS_VEHICLE_BS(GET_BIGASS_VEHICLE_INDICE_BIT_FROM_ENUM(BV_DLC_BIG_YACHT))
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_INV_YACHT_MODEL_0, HASH("BIG_YACHT"))
|
|
|
|
CPRINTLN(DEBUG_SHOPS, "DO_BIGASS_VEHICLE_BUY: Big Ass Vehicle details: making sure player owns the yacht!")
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: g_sYachtDataStruct.iMod:", g_sYachtDataStruct.iMod, " iFixture:", g_sYachtDataStruct.iFixture, " iLighting:", g_sYachtDataStruct.iLighting, " iColour:", g_sYachtDataStruct.iColour, " iFlag:", g_sYachtDataStruct.iFlag, " tl63Name:\"", g_sYachtDataStruct.tl63Name, "\"")
|
|
ENDIF
|
|
|
|
IF thisModel = eDLC_BIG_TRUCK_MODEL
|
|
bPreviousPegasus = bPreviousBigassVehicle
|
|
|
|
ARMORY_TRUCK_SECTION_TYPE_ENUM eSection1 = INT_TO_ENUM(ARMORY_TRUCK_SECTION_TYPE_ENUM, GET_TRUCK_SECTION_TYPE_FROM_SF(g_sTruckDataStruct.iSection1))
|
|
ARMORY_TRUCK_SECTION_TYPE_ENUM eSection2 = INT_TO_ENUM(ARMORY_TRUCK_SECTION_TYPE_ENUM, GET_TRUCK_SECTION_TYPE_FROM_SF(g_sTruckDataStruct.iSection2))
|
|
ARMORY_TRUCK_SECTION_TYPE_ENUM eSection3 = INT_TO_ENUM(ARMORY_TRUCK_SECTION_TYPE_ENUM, GET_TRUCK_SECTION_TYPE_FROM_SF(g_sTruckDataStruct.iSection3))
|
|
PRINTLN("[AT-INTERIOR][AT-STAT]INTERNET SF - before validation(", GET_ARMORY_TRUCK_SECTION_TYPE_NAME(eSection1), ", ", GET_ARMORY_TRUCK_SECTION_TYPE_NAME(eSection2), ", ", GET_ARMORY_TRUCK_SECTION_TYPE_NAME(eSection3), ")")
|
|
VALIDATE_TRUCK_EMPTY_SECTIONS(eSection1, eSection2, eSection3)
|
|
|
|
IF NOT bPreviousBigassVehicle
|
|
IF DOES_ENTITY_EXIST(vi)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: new vi exists")
|
|
|
|
MP_SAVE_VEHICLE_STORE_CAR_DETAILS_IN_SLOT(vi,iSlotToUse,TRUE,TRUE,FALSE,TRUE,TRUE)
|
|
MPSV_SET_DISPLAY_SLOT(iDisplaySlotToUse,iSlotToUse)
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: new vi doesnt exist...")
|
|
ENDIF
|
|
SET_MP_TRUCK_MOD_STAT(TRUCK_MOD_TRAILER_COL_1, 0)
|
|
SET_MP_TRUCK_MOD_STAT(TRUCK_MOD_TRAILER_COL_2, 0)
|
|
SET_MP_TRUCK_MOD_STAT(TRUCK_MOD_TRAILER_COL_EXTRA_1, 0)
|
|
SET_MP_TRUCK_MOD_STAT(TRUCK_MOD_TRAILER_COL_EXTRA_2, 0)
|
|
SET_MP_TRUCK_MOD_STAT(TRUCK_MOD_TRAILER_COL_GROUP_1, 255)
|
|
SET_MP_TRUCK_MOD_STAT(TRUCK_MOD_TRAILER_COL_GROUP_2, 255)
|
|
|
|
IF eSection1 = AT_ST_COMMAND_CENTER
|
|
OR eSection2 = AT_ST_COMMAND_CENTER
|
|
OR eSection3 = AT_ST_COMMAND_CENTER
|
|
SET_MP_TRUCK_MOD_STAT(TRUCK_MOD_TRAILER_MOD_ROOF, 1) // front turrets
|
|
ELSE
|
|
SET_MP_TRUCK_MOD_STAT(TRUCK_MOD_TRAILER_MOD_ROOF, 0) // no turrets
|
|
ENDIF
|
|
|
|
SET_MP_TRUCK_MOD_STAT(TRUCK_MOD_TRAILER_MOD_LIVERY, -1)
|
|
SET_MP_TRUCK_MOD_STAT(TRUCK_MOD_TRAILER_PLATE_INDEX, 0)
|
|
|
|
SET_MP_TRUCK_MOD_STAT(TRUCK_MOD_TRAILER_COL_CREW_1, 0)
|
|
|
|
SET_ARMORY_TRUCK_IS_IN_BUNKER(TRUE)
|
|
ELSE
|
|
IF INT_TO_ENUM(MODEL_NAMES, GET_TRUCK_CAB_FROM_SF(g_sTruckDataStruct.iCab)) != GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.eTruckModel
|
|
IF DOES_ENTITY_EXIST(vi)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: renovated vi exists")
|
|
|
|
MP_SAVE_VEHICLE_STORE_CAR_DETAILS_IN_SLOT(vi,iSlotToUse,TRUE,TRUE,FALSE,TRUE,TRUE)
|
|
MPSV_SET_DISPLAY_SLOT(iDisplaySlotToUse,iSlotToUse)
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: renovated vi doesnt exist...")
|
|
ENDIF
|
|
|
|
SET_OWNER_RENOVATED_TRUCK_CAB(TRUE)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - ...g_sTruckDataStruct.iCab = ", g_sTruckDataStruct.iCab, ", eCab = ", GET_MODEL_NAME_FOR_DEBUG(INT_TO_ENUM(MODEL_NAMES, GET_TRUCK_CAB_FROM_SF(g_sTruckDataStruct.iCab))))
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - ...eTruckModel = ", GET_MODEL_NAME_FOR_DEBUG(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.eTruckModel))
|
|
ENDIF
|
|
|
|
IF eSection1 = AT_ST_COMMAND_CENTER
|
|
OR eSection2 = AT_ST_COMMAND_CENTER
|
|
OR eSection3 = AT_ST_COMMAND_CENTER
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - player has command centre, roof stat:", GET_MP_TRUCK_MOD_STAT(TRUCK_MOD_TRAILER_MOD_ROOF))
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - player doesn't have command centre, roof stat:", GET_MP_TRUCK_MOD_STAT(TRUCK_MOD_TRAILER_MOD_ROOF))
|
|
ENDIF
|
|
|
|
SET_OWNER_RENOVATED_TRUCK_TRAILER(TRUE)
|
|
ENDIF
|
|
|
|
MODEL_NAMES eCabModel = INT_TO_ENUM(MODEL_NAMES, GET_TRUCK_CAB_FROM_SF(g_sTruckDataStruct.iCab))
|
|
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_INV_TRUCK_MODEL_0, ENUM_TO_INT(eCabModel))
|
|
SET_BIG_ASS_VEHICLE_BS(GET_BIGASS_VEHICLE_INDICE_BIT_FROM_ENUM(BV_DLC_BIG_TRUCK))
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.eTruckModel = eCabModel
|
|
|
|
BROADCAST_PLAYER_PURCHASED_ARMORY_TRUCK(TRUE)
|
|
|
|
IF NOT bPreviousBigassVehicle
|
|
SET_REQUEST_TO_CREATE_ARMORY_TRUCK_IN_BUNKER(TRUE)
|
|
ENDIF
|
|
|
|
PRINTLN("[AT-INTERIOR][AT-STAT]INTERNET SF - after validation (", GET_ARMORY_TRUCK_SECTION_TYPE_NAME(eSection1), ", ", GET_ARMORY_TRUCK_SECTION_TYPE_NAME(eSection2), ", ", GET_ARMORY_TRUCK_SECTION_TYPE_NAME(eSection3), ")")
|
|
ARMORY_TRUCK_SECTION_TINT_ENUM eTint = INT_TO_ENUM(ARMORY_TRUCK_SECTION_TINT_ENUM, GET_TRUCK_SECTION_TINT_FROM_SF(g_sTruckDataStruct.iColour))
|
|
|
|
SET_ARMORY_TRUCK_SECTION_TYPE_STAT(ATS_FIRST_SECTION, eSection1)
|
|
SET_ARMORY_TRUCK_SECTION_TYPE_STAT(ATS_SECOND_SECTION, eSection2)
|
|
SET_ARMORY_TRUCK_SECTION_TYPE_STAT(ATS_THIRD_SECTION, eSection3)
|
|
PRINTLN("[AT-INTERIOR][AT-STAT]INTERNET SF - stats set (", GET_ARMORY_TRUCK_SECTION_TYPE_NAME(eSection1), ", ", GET_ARMORY_TRUCK_SECTION_TYPE_NAME(eSection2), ", ", GET_ARMORY_TRUCK_SECTION_TYPE_NAME(eSection3), ")")
|
|
SET_ARMORY_TRUCK_TINT_STAT(eTint)
|
|
|
|
//ARMORY_TRUCK_REQUEST_INTERIOR_UPDATE()
|
|
|
|
IF NOT IS_PLAYER_PURCHASED_GUN_LOCKER_FOR_TRUCK(PLAYER_ID())
|
|
IF SHOULD_ALLOW_DISABLE_WEAPON_LOADOUT_FROM_INTERNET()
|
|
SET_CUSTOM_WEAPON_LOADOUT(FALSE)
|
|
RESET_CUSTOM_WEAPON_LOADOUT_STATS()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// Phonecall if the player has purchased the truck property and has already done enough resupplies to unlock some WVMs (see the call above for details)
|
|
// -
|
|
// [Trigger after you buy the truck but have already unlocked some missions] - GNRC_TRUCK
|
|
// -
|
|
INT iStatInt = GET_MP_INT_CHARACTER_STAT(MP_STAT_HELP_BUNK_EMAIL)
|
|
IF NOT IS_BIT_SET(iStatInt, biGR_Help_BOUGHT_TRUCK_WVM_AVAILABLE)
|
|
IF IS_BIT_SET(iStatInt, biGR_Help_DIDNT_MAKE_FIRST_WVM_CALL)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - [GUNRUN_CALL] - MAINTAIN_GUNRUNNING_NOTIFICATIONS - eGB_LOCAL_GUNRUN_CALL_BITSET_NOTIFICATION_FLOW_TRUCK_BOUGHT_WVM_AVAILABLE - Player has bought the truck, requesting call")
|
|
GB_SET_LOCAL_GUNRUN_CALL_BIT(eGB_LOCAL_GUNRUN_CALL_BITSET_NOTIFICATION_FLOW_TRUCK_BOUGHT_WVM_AVAILABLE)
|
|
SET_BIT(iStatInt, biGR_Help_BOUGHT_TRUCK_WVM_AVAILABLE)
|
|
SET_BIT(iStatInt, biGR_Help_FIRST_WVM_UNLOCKED) // Set this so we know its safe to let players know when they unlock subsequent WVMs
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_HELP_BUNK_EMAIL, iStatInt)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - [GUNRUN_CALL] - MAINTAIN_GUNRUNNING_NOTIFICATIONS - biGR_Help_DIDNT_MAKE_FIRST_WVM_CALL not set")
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - [GUNRUN_CALL] - MAINTAIN_GUNRUNNING_NOTIFICATIONS - biGR_Help_BOUGHT_TRUCK_WVM_AVAILABLE already set")
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_SHOPS, "DO_BIGASS_VEHICLE_BUY: Big Ass Vehicle details: making sure player owns the truck!")
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: g_sTruckDataStruct.iCab:", g_sTruckDataStruct.iCab, " iFixture:", g_sTruckDataStruct.iSection1, " iLighting:", g_sTruckDataStruct.iSection2, " iColour:", g_sTruckDataStruct.iColour, " iFlag:", g_sTruckDataStruct.iSection3)
|
|
ENDIF
|
|
IF thisModel = eDLC_BALLISTIC_EQUIPMENT_MODEL
|
|
IF NOT USE_SERVER_TRANSACTIONS()
|
|
bPreviousPegasus = IS_BIG_ASS_VEHICLE_BS_SET(GET_BIGASS_VEHICLE_INDICE_BIT_FROM_ENUM(BV_DLC_BALLISTIC_EQUIPMENT))
|
|
ELSE
|
|
bPreviousPegasus = !(GET_PACKED_STAT_BOOL(PACKED_MP_BOOL_BALLASTIC_OWNED))
|
|
ENDIF
|
|
SET_BIG_ASS_VEHICLE_BS(GET_BIGASS_VEHICLE_INDICE_BIT_FROM_ENUM(BV_DLC_BALLISTIC_EQUIPMENT))
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_BALLASTIC_OWNED, ENUM_TO_INT(thisModel) != 0)
|
|
|
|
CPRINTLN(DEBUG_SHOPS, "DO_BIGASS_VEHICLE_BUY: Big Ass Vehicle details: making sure player owns the BallisticEquipment!")
|
|
ENDIF
|
|
IF thisModel = eDLC_BIG_PLANE_MODEL
|
|
bPreviousPegasus = bPreviousBigassVehicle
|
|
|
|
IF NOT bPreviousBigassVehicle
|
|
IF DOES_ENTITY_EXIST(vi)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: new vi exists")
|
|
|
|
MP_SAVE_VEHICLE_STORE_CAR_DETAILS_IN_SLOT(vi,iSlotToUse,TRUE,TRUE,FALSE,TRUE,TRUE)
|
|
MPSV_SET_DISPLAY_SLOT(iDisplaySlotToUse,iSlotToUse)
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: new vi doesnt exist...")
|
|
ENDIF
|
|
|
|
SET_ARMORY_AIRCRAFT_IS_IN_DEFUNCT_BASE(TRUE)
|
|
ELSE
|
|
// IF INT_TO_ENUM(MODEL_NAMES, GET_PLANE_CAB_FROM_SF(g_sPlaneDataStruct.iCab)) != GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.ePlaneModel
|
|
// IF DOES_ENTITY_EXIST(vi)
|
|
// CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: renovated vi exists")
|
|
//
|
|
// MP_SAVE_VEHICLE_STORE_CAR_DETAILS_IN_SLOT(vi,iSlotToUse,TRUE,TRUE,FALSE,TRUE,TRUE)
|
|
// MPSV_SET_DISPLAY_SLOT(iDisplaySlotToUse,iSlotToUse)
|
|
// ELSE
|
|
// CASSERTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: renovated vi doesnt exist...")
|
|
// ENDIF
|
|
//
|
|
// SET_OWNER_RENOVATED_TRUCK_CAB(TRUE)
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - ...g_sPlaneDataStruct.iCab = ", g_sPlaneDataStruct.iCab, ", eCab = ", GET_MODEL_NAME_FOR_DEBUG(INT_TO_ENUM(MODEL_NAMES, GET_PLANE_CAB_FROM_SF(g_sPlaneDataStruct.iCab))))
|
|
// CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - ...eTruckModel = ", GET_MODEL_NAME_FOR_DEBUG(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.ePlaneModel))
|
|
// ENDIF
|
|
//
|
|
// SET_OWNER_RENOVATED_TRUCK_TRAILER(TRUE)
|
|
ENDIF
|
|
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_INV_PLANE_MODEL_0, ENUM_TO_INT(GET_ARMORY_AIRCRAFT_MODEL()))
|
|
SET_ARMORY_AIRCRAFT_AS_OWNED()
|
|
SET_BIG_ASS_VEHICLE_BS(GET_BIGASS_VEHICLE_INDICE_BIT_FROM_ENUM(BV_DLC_BIG_PLANE))
|
|
|
|
|
|
IF NOT bPreviousBigassVehicle
|
|
SET_REQUEST_TO_CREATE_ARMORY_AIRCRAFT_IN_DEFUNCT_BASE(TRUE)
|
|
ELSE
|
|
SET_OWNER_RENOVATED_AVENGER(TRUE)
|
|
ENDIF
|
|
|
|
SET_PACKED_STAT_INT(PACKED_MP_INT_ARMORY_AIRCRAFT_GUN_TURRET, g_sPlaneDataStruct.iGunTurret)
|
|
SET_PACKED_STAT_INT(PACKED_MP_INT_ARMORY_AIRCRAFT_VEH_SHOP, g_sPlaneDataStruct.iVehShop)
|
|
SET_PACKED_STAT_INT(PACKED_MP_INT_ARMORY_AIRCRAFT_WEA_SHOP, g_sPlaneDataStruct.iWeaShop)
|
|
SET_PACKED_STAT_INT(PACKED_MP_INT_ARMORY_AIRCRAFT_INTERIOR, GET_PLANE_SECTION_TINT_FROM_SF(g_sPlaneDataStruct.iInterior))
|
|
|
|
BROADCAST_PLAYER_PURCHASED_ARMORY_AIRCRAFT(TRUE)
|
|
BROADCAST_PLAYER_ARMORY_AIRCRAFT_PURCHASED_MODS()
|
|
|
|
IF iSlotToUse = -1
|
|
MPSV_GET_SAVE_SLOT_FROM_DISPLAY_SLOT(DISPLAY_SLOT_AVENGER_HELI, iSlotToUse)
|
|
ENDIF
|
|
IF (g_sPlaneDataStruct.iGunTurret = 0)
|
|
g_MpSavedVehicles[iSlotToUse].vehicleSetupMP.VehicleSetup.iModIndex[MOD_ROOF] = 0
|
|
MP_SAVE_VEHICLE_SLOT_STATS_FROM_SAVEGAME(iSlotToUse,g_MpSavedVehicles[iSlotToUse] ,TRUE)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: purchased, no turret")
|
|
ELSE
|
|
IF g_MpSavedVehicles[iSlotToUse].vehicleSetupMP.VehicleSetup.iModIndex[MOD_ROOF] != 1
|
|
AND g_MpSavedVehicles[iSlotToUse].vehicleSetupMP.VehicleSetup.iModIndex[MOD_ROOF] != 2
|
|
g_MpSavedVehicles[iSlotToUse].vehicleSetupMP.VehicleSetup.iModIndex[MOD_ROOF] = 1
|
|
MP_SAVE_VEHICLE_SLOT_STATS_FROM_SAVEGAME(iSlotToUse,g_MpSavedVehicles[iSlotToUse] ,TRUE)
|
|
SET_PLAYER_RENOVATED_AVENGER_TURRET(TRUE)
|
|
SET_EMPTY_AVENGER_HOLD(TRUE)
|
|
CLEANUP_MP_SAVED_AVENGER(DEFAULT , DEFAULT, TRUE, DEFAULT, TRUE)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: purchased, has turret")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//ARMORY_TRUCK_REQUEST_INTERIOR_UPDATE()
|
|
|
|
// Phonecall if the player has purchased the plane property and has already done enough resupplies to unlock some WVMs (see the call above for details)
|
|
// -
|
|
// [Trigger after you buy the plane but have already unlocked some missions] - GNRC_TRUCK
|
|
// -
|
|
// INT iStatInt = GET_MP_INT_CHARACTER_STAT(MP_STAT_HELP_BUNK_EMAIL)
|
|
// IF NOT IS_BIT_SET(iStatInt, biGR_Help_BOUGHT_TRUCK_WVM_AVAILABLE)
|
|
// IF IS_BIT_SET(iStatInt, biGR_Help_DIDNT_MAKE_FIRST_WVM_CALL)
|
|
// CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - [GUNRUN_CALL] - MAINTAIN_GUNRUNNING_NOTIFICATIONS - eGB_LOCAL_GUNRUN_CALL_BITSET_NOTIFICATION_FLOW_TRUCK_BOUGHT_WVM_AVAILABLE - Player has bought the truck, requesting call")
|
|
// GB_SET_LOCAL_GUNRUN_CALL_BIT(eGB_LOCAL_GUNRUN_CALL_BITSET_NOTIFICATION_FLOW_TRUCK_BOUGHT_WVM_AVAILABLE)
|
|
// SET_BIT(iStatInt, biGR_Help_BOUGHT_TRUCK_WVM_AVAILABLE)
|
|
// SET_BIT(iStatInt, biGR_Help_FIRST_WVM_UNLOCKED) // Set this so we know its safe to let players know when they unlock subsequent WVMs
|
|
// SET_MP_INT_CHARACTER_STAT(MP_STAT_HELP_BUNK_EMAIL, iStatInt)
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - [GUNRUN_CALL] - MAINTAIN_GUNRUNNING_NOTIFICATIONS - biGR_Help_DIDNT_MAKE_FIRST_WVM_CALL not set")
|
|
// ENDIF
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - [GUNRUN_CALL] - MAINTAIN_GUNRUNNING_NOTIFICATIONS - biGR_Help_BOUGHT_TRUCK_WVM_AVAILABLE already set")
|
|
// ENDIF
|
|
|
|
CPRINTLN(DEBUG_SHOPS, "DO_BIGASS_VEHICLE_BUY: Big Ass Vehicle details: making sure player owns the plane!")
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: g_sPlaneDataStruct.iGunTurret:", g_sPlaneDataStruct.iGunTurret, " iVehShop:", g_sPlaneDataStruct.iVehShop, " iWeaShop:", g_sPlaneDataStruct.iWeaShop, " iInterior:", g_sPlaneDataStruct.iInterior, " iAvenger:", g_sPlaneDataStruct.iAvenger)
|
|
ENDIF
|
|
IF thisModel = eDLC_HACKER_TRUCK_MODEL
|
|
bPreviousPegasus = bPreviousBigassVehicle
|
|
|
|
INT iDecalSF = GET_HACKER_TRUCK_DECAL_FROM_SF(g_sHackerTruckDataStruct.iDecal)
|
|
INT iTintSF = GET_HACKER_TRUCK_TINT_FROM_SF(g_sHackerTruckDataStruct.iTint)
|
|
|
|
IF NOT bPreviousBigassVehicle
|
|
IF DOES_ENTITY_EXIST(vi)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: new vi exists")
|
|
|
|
MP_SAVE_VEHICLE_STORE_CAR_DETAILS_IN_SLOT(vi,iSlotToUse,TRUE,TRUE,FALSE,TRUE,TRUE)
|
|
MPSV_SET_DISPLAY_SLOT(iDisplaySlotToUse,iSlotToUse)
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: new vi doesnt exist...")
|
|
ENDIF
|
|
|
|
SET_HACKER_TRUCK_IS_IN_BUSINESS_HUB(TRUE)
|
|
SET_BIT(MPGlobalsAmbience.iFmGbHelpBitSet7, BI_FM_GANG_BOSS_HELP_7_TERRORBYTE_JUST_PURCHASED)
|
|
ELSE
|
|
SET_EMPTY_HACKER_TRUCK_TRAILER(TRUE)
|
|
SET_OWNER_RENOVATED_HACKER_TRUCK(TRUE)
|
|
// IF INT_TO_ENUM(MODEL_NAMES, GET_HACKER_TRUCK_CAB_FROM_SF(g_sHackerTruckDataStruct.iCab)) != GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.eHackerTruckModel
|
|
// IF DOES_ENTITY_EXIST(vi)
|
|
// CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: renovated vi exists")
|
|
//
|
|
// MP_SAVE_VEHICLE_STORE_CAR_DETAILS_IN_SLOT(vi,iSlotToUse,TRUE,TRUE,FALSE,TRUE,TRUE)
|
|
// MPSV_SET_DISPLAY_SLOT(iDisplaySlotToUse,iSlotToUse)
|
|
// ELSE
|
|
// CASSERTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: renovated vi doesnt exist...")
|
|
// ENDIF
|
|
//
|
|
// SET_OWNER_RENOVATED_TRUCK_CAB(TRUE)
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - ...g_sHackerTruckDataStruct.iCab = ", g_sHackerTruckDataStruct.iCab, ", eCab = ", GET_MODEL_NAME_FOR_DEBUG(INT_TO_ENUM(MODEL_NAMES, GET_HACKER_TRUCK_CAB_FROM_SF(g_sHackerTruckDataStruct.iCab))))
|
|
// CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - ...eHackerTruckModel = ", GET_MODEL_NAME_FOR_DEBUG(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.eHackerTruckModel))
|
|
// ENDIF
|
|
//
|
|
// SET_OWNER_RENOVATED_TRUCK_TRAILER(TRUE)
|
|
ENDIF
|
|
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_INV_HACKERTRUCK_MODEL_0, ENUM_TO_INT(GET_HACKER_TRUCK_MODEL()))
|
|
SET_BIG_ASS_VEHICLE_BS(GET_BIGASS_VEHICLE_INDICE_BIT_FROM_ENUM(BV_DLC_HACKER_TRUCK))
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.eHackerTruckModel = GET_HACKER_TRUCK_MODEL()
|
|
|
|
IF NOT bPreviousBigassVehicle
|
|
IF IS_PLAYER_IN_BUSINESS_HUB_THEY_OWN(PLAYER_ID())
|
|
SET_REQUEST_TO_CREATE_HACKER_TRUCK_IN_BUSINESS_HUB(TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SET_PACKED_STAT_INT(PACKED_MP_INT_HACKERTRUCK_INTERIOR_DECAL, iDecalSF)
|
|
SET_PACKED_STAT_INT(PACKED_MP_INT_HACKERTRUCK_INTERIOR_TINT, iTintSF)
|
|
SET_PACKED_STAT_INT(PACKED_MP_INT_HACKERTRUCK_MISSILE_LAUNCHER, g_sHackerTruckDataStruct.iMissileLauncher)
|
|
SET_PACKED_STAT_INT(PACKED_MP_INT_HACKERTRUCK_DRONE_STATION, g_sHackerTruckDataStruct.iDroneStation)
|
|
SET_PACKED_STAT_INT(PACKED_MP_INT_HACKERTRUCK_WEAPON_STATION, g_sHackerTruckDataStruct.iWeaShop)
|
|
SET_PACKED_STAT_INT(PACKED_MP_INT_HACKERTRUCK_MOTORCYCLE_WORKSHOP, g_sHackerTruckDataStruct.iVehShop)
|
|
|
|
//HACKER_TRUCK_REQUEST_INTERIOR_UPDATE()
|
|
|
|
IF NOT IS_PLAYER_PURCHASED_GUN_LOCKER_FOR_TRUCK(PLAYER_ID())
|
|
IF SHOULD_ALLOW_DISABLE_WEAPON_LOADOUT_FROM_INTERNET()
|
|
SET_CUSTOM_WEAPON_LOADOUT(FALSE)
|
|
RESET_CUSTOM_WEAPON_LOADOUT_STATS()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BROADCAST_PLAYER_PURCHASED_HACKER_TRUCK(TRUE)
|
|
BROADCAST_PLAYER_HACKER_TRUCK_PURCHASED_MODS()
|
|
|
|
enumCharacterList CharacterToAdd = GET_BUSINESS_BATTLE_HACKERTRUCK_CONTACT()
|
|
IF NOT IS_CONTACT_IN_PHONEBOOK(CharacterToAdd, MULTIPLAYER_BOOK)
|
|
BOOL bDisplay = TRUE
|
|
ADD_CONTACT_TO_PHONEBOOK(CharacterToAdd, MULTIPLAYER_BOOK,bDisplay)
|
|
CPRINTLN(DEBUG_INTERNET, "[HACKERTRUCK_CONTACT] MAINTAIN_ADD_BUSINESS_BATTLE_NIGHTCLUB_CONTACT - ADD_CONTACT_TO_PHONEBOOK(", g_sCharacterSheetAll[CharacterToAdd].label, ", MULTIPLAYER_BOOK, ", bDisplay, ")")
|
|
ENDIF
|
|
|
|
/* // Phonecall if the player has purchased the hacker truck property and has already done enough resupplies to unlock some WVMs (see the call above for details)
|
|
// -
|
|
// [Trigger after you buy the hacker truck but have already unlocked some missions] - GNRC_TRUCK_1
|
|
// -
|
|
INT iStatInt = GET_MP_INT_CHARACTER_STAT(MP_STAT_HELP_BUNK_EMAIL)
|
|
IF NOT IS_BIT_SET(iStatInt, biGR_Help_BOUGHT_TRUCK_1_WVM_AVAILABLE)
|
|
IF IS_BIT_SET(iStatInt, biGR_Help_DIDNT_MAKE_FIRST_WVM_CALL)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - [GUNRUN_CALL] - MAINTAIN_GUNRUNNING_NOTIFICATIONS - eGB_LOCAL_GUNRUN_CALL_BITSET_NOTIFICATION_FLOW_TRUCK_1_BOUGHT_WVM_AVAILABLE - Player has bought the TRUCK_1, requesting call")
|
|
GB_SET_LOCAL_GUNRUN_CALL_BIT(eGB_LOCAL_GUNRUN_CALL_BITSET_NOTIFICATION_FLOW_TRUCK_1_BOUGHT_WVM_AVAILABLE)
|
|
SET_BIT(iStatInt, biGR_Help_BOUGHT_TRUCK_1_WVM_AVAILABLE)
|
|
SET_BIT(iStatInt, biGR_Help_FIRST_WVM_UNLOCKED) // Set this so we know its safe to let players know when they unlock subsequent WVMs
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_HELP_BUNK_EMAIL, iStatInt)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - [GUNRUN_CALL] - MAINTAIN_GUNRUNNING_NOTIFICATIONS - biGR_Help_DIDNT_MAKE_FIRST_WVM_CALL not set")
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY - [GUNRUN_CALL] - MAINTAIN_GUNRUNNING_NOTIFICATIONS - biGR_Help_BOUGHT_TRUCK_1_WVM_AVAILABLE already set")
|
|
ENDIF
|
|
*/
|
|
|
|
IF IS_BIT_SET(iPurchaseHelpBS, PURCHASE_HELP_BS_BBSE0HT)
|
|
CDEBUG1LN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: purchased hacker truck, set bDisplayed_HELP_BBSE0ht false")
|
|
CLEAR_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_BBSE0HT)
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_SHOPS, "DO_BIGASS_VEHICLE_BUY: Big Ass Vehicle details: making sure player owns the hacker truck!")
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: g_sHackerTruckDataStruct.iCab:", g_sHackerTruckDataStruct.iCab,
|
|
" iDecal:", g_sHackerTruckDataStruct.iDecal,
|
|
" iTint:", g_sHackerTruckDataStruct.iTint,
|
|
" iMissileLauncher:", g_sHackerTruckDataStruct.iMissileLauncher,
|
|
" iDroneStation:", g_sHackerTruckDataStruct.iDroneStation,
|
|
" iWeaShop:", g_sHackerTruckDataStruct.iWeaShop,
|
|
" iVehShop:", g_sHackerTruckDataStruct.iVehShop)
|
|
ENDIF
|
|
#IF FEATURE_HEIST_ISLAND
|
|
IF thisModel = GET_SUBMARINE_MODEL()
|
|
//bPreviousPegasus = bPreviousBigassVehicle
|
|
|
|
INT iColourSF = GET_KOSATKA_COLOUR_FROM_SF(g_sKosatkaDataStruct.iColour)
|
|
INT iFlagSF = GET_KOSATKA_FLAG_FROM_SF(g_sKosatkaDataStruct.iFlag)
|
|
|
|
IF NOT bPreviousBigassVehicle
|
|
|
|
SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_SUBMARINE)
|
|
|
|
// MPGlobalsAmbience.bLaunchVehicleDropSubmarine = TRUE
|
|
// SET_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_SUBMARINE)
|
|
ENDIF
|
|
|
|
SET_BIG_ASS_VEHICLE_BS(GET_BIGASS_VEHICLE_INDICE_BIT_FROM_ENUM(BV_IH_KOSATKA))
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.sSubmarinePropertyData.eModel = GET_SUBMARINE_MODEL()
|
|
|
|
SET_SUBMARINE_AS_OWNED(TRUE)
|
|
SET_PACKED_STAT_INT(PACKED_MP_INT_KOSATKA_COLOUR, iColourSF)
|
|
SET_PACKED_STAT_INT(PACKED_MP_INT_KOSATKA_FLAG, iFlagSF)
|
|
SET_SUBMARINE_SONAR_AS_OWNED(INT_TO_BOOL(g_sKosatkaDataStruct.iSonar))
|
|
SET_SUBMARINE_GUIDED_MISSILES_AS_OWNED(INT_TO_BOOL(g_sKosatkaDataStruct.iMissiles))
|
|
SET_SUBMARINE_WORKSHOP_AS_OWNED(INT_TO_BOOL(g_sKosatkaDataStruct.iWeaShop))
|
|
SET_SEASPARROW2_AS_OWNED(INT_TO_BOOL(g_sKosatkaDataStruct.iSeaSparrow2))
|
|
SET_AVISA_AS_OWNED(INT_TO_BOOL(g_sKosatkaDataStruct.iAvisa))
|
|
|
|
BROADCAST_PLAYER_PURCHASED_SUBMARINE(TRUE)
|
|
BROADCAST_PLAYER_KOSATKA_PURCHASED_MODS()
|
|
|
|
IF IS_BIT_SET(iPurchaseHelpBS, PURCHASE_HELP_BS_BBSE0HT)
|
|
CDEBUG1LN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: purchased kosatka, set bDisplayed_HELP_BBSE0ht false")
|
|
CLEAR_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_BBSE0HT)
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_SHOPS, "DO_BIGASS_VEHICLE_BUY: Big Ass Vehicle details: making sure player owns the Submarine!")
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: g_sKosatkaDataStruct.iColour:", g_sKosatkaDataStruct.iColour,
|
|
" iFlag:", g_sKosatkaDataStruct.iFlag,
|
|
" iMissiles:", g_sKosatkaDataStruct.iMissiles,
|
|
" iSonar:", g_sKosatkaDataStruct.iSonar,
|
|
" iWeaShop:", g_sKosatkaDataStruct.iWeaShop,
|
|
" iSeaSparrow2:", g_sKosatkaDataStruct.iSeaSparrow2,
|
|
" iAvisa:", g_sKosatkaDataStruct.iAvisa)
|
|
ENDIF
|
|
#ENDIF
|
|
IF thisModel = BLIMP3
|
|
CPRINTLN(DEBUG_SHOPS, "DO_BIGASS_VEHICLE_BUY: set BLIMP3_LIVERY ", ENUM_TO_INT(g_eLastBuyableVehicleColourSelected), "!")
|
|
SET_PACKED_STAT_INT(PACKED_MP_INT_PEGASUS_BLIMP3_LIVERY, ENUM_TO_INT(g_eLastBuyableVehicleColourSelected))
|
|
ENDIF
|
|
|
|
INT iVehicleSpend = GET_MP_INT_CHARACTER_STAT(MP_STAT_MONEY_SPENT_ON_VEHICLES)
|
|
CONST_INT iCONST_THRESHOLD 1000000 //$1,000,000
|
|
INT iSpendTarget = ((iVehicleSpend/iCONST_THRESHOLD)+1) * iCONST_THRESHOLD
|
|
CPRINTLN(DEBUG_SHOPS, "DO_BIGASS_VEHICLE_BUY: request high vehicle spend ($", iVehicleSpend ," + $", iPrice, ") >= $", iSpendTarget)
|
|
IF (iVehicleSpend+iPrice) >= iSpendTarget
|
|
REQUEST_SYSTEM_ACTIVITY_TYPE_HIGH_VEHICLE_SPEND((iSpendTarget/iCONST_THRESHOLD)+1)
|
|
ENDIF
|
|
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_MONEY_SPENT_ON_VEHICLES, iVehicleSpend+iPrice)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vi)
|
|
DELETE_VEHICLE(vi)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(g_sConfVssMP.VehicleSetup.eModel)
|
|
ENDIF
|
|
bBrowserShoppingSavePending = TRUE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.bAnyMpVehicleBought = TRUE
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
///
|
|
/// PARAMS:
|
|
/// siteID -
|
|
/// iPrice - -1 indicates look up the price
|
|
/// RETURNS:
|
|
///
|
|
FUNC BOOL DO_MP_VEHICLE_BUY(WEBSITE_INDEX_ENUM siteID, INT iAltVersion, INT iPriceIn = -1)
|
|
IF !confCheck
|
|
DO_VEHICLE_FAIL_PAGE(siteID,VSFR_NOT_SAFE,confSbv, GET_BUYABLE_VEHICLE_PRICE_MP(siteID, confSbv, FALSE))
|
|
CERRORLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: \"", GET_WEBSITE_FROM_INDEX(siteID), "\", ", iAltVersion, ", ", iPriceIn, ") - confCheck is false!!!")
|
|
RETURN FALSE
|
|
ENDIF
|
|
confCheck = FALSE
|
|
|
|
IF g_sConfVssMP.VehicleSetup.eModel != GET_MODEL_FOR_BUYABLE_VEHICLE(confSbv, iAltVersion)
|
|
CASSERTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: \"", GET_WEBSITE_FROM_INDEX(siteID), "\", ", iAltVersion, ", ", iPriceIn, ") - g_sConfVssMP.VehicleSetup.eModel[", GET_SAFE_DISPLAY_NAME_FROM_VEHICLE_MODEL(g_sConfVssMP.VehicleSetup.eModel), "] is different from GET_MODEL_FOR_BUYABLE_VEHICLE(", GET_LABEL_BUYABLE_VEHICLE(confSbv), ")!!!")
|
|
RETURN FALSE
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: \"", GET_WEBSITE_FROM_INDEX(siteID), "\", ", iAltVersion, ", ", iPriceIn, ") - g_sConfVssMP.VehicleSetup.eModel[", GET_SAFE_DISPLAY_NAME_FROM_VEHICLE_MODEL(g_sConfVssMP.VehicleSetup.eModel), "] matches GET_MODEL_FOR_BUYABLE_VEHICLE(", GET_LABEL_BUYABLE_VEHICLE(confSbv), ")")
|
|
ENDIF
|
|
|
|
VEHICLE_INDEX vi
|
|
BOOL bAltVersion = IS_SBV_AN_ALTERNATE_VEHICLE(confSbv, siteID, g_eLastBuyableVehicleColourSelected)
|
|
|
|
IF !IS_VEH_ENABLED_BY_TUNABLE(siteID, g_sConfVssMP.VehicleSetup.eModel)
|
|
CASSERTLN(DEBUG_INTERNET, "Appinternet: vehicle ", GET_SAFE_DISPLAY_NAME_FROM_VEHICLE_MODEL(g_sConfVssMP.VehicleSetup.eModel), " is not enabled by tunables")
|
|
|
|
#IF NOT IS_NEXTGEN_BUILD
|
|
DO_VEHICLE_FAIL_PAGE(siteID,VSFR_NOT_SAFE,confSbv, GET_BUYABLE_VEHICLE_PRICE_MP(siteID, confSbv))
|
|
#ENDIF
|
|
#IF IS_NEXTGEN_BUILD
|
|
DO_VEHICLE_FAIL_PAGE(siteID,VSFR_NOT_SAFE,confSbv, GET_BUYABLE_VEHICLE_PRICE_MP(siteID, confSbv, bAltVersion))
|
|
#ENDIF
|
|
IF DOES_ENTITY_EXIST(vi)
|
|
DELETE_VEHICLE(vi)
|
|
ENDIF
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(g_sConfVssMP.VehicleSetup.eModel)
|
|
iLastPurchasedVehicleSlot = confMpSlotIndex
|
|
confMpSlotIndex = -1
|
|
confMPDisplayIndex = -1
|
|
RESET_VEHICLE_SETUP_STRUCT_MP(g_sConfVssMP)
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY - waiting for CREATE_AND_POPULATE_VEHICLE_DETAILS_FOR_MP_VEHICLE_BUY(", GET_LABEL_BUYABLE_VEHICLE(confSbv), ", ", GET_WEBSITE_FROM_INDEX(siteID), ", ", GET_SAFE_DISPLAY_NAME_FROM_VEHICLE_MODEL(g_sConfVssMP.VehicleSetup.eModel), ", vi, ", GET_STRING_FROM_BOOL(bAltVersion), ")")
|
|
WHILE NOT CREATE_AND_POPULATE_VEHICLE_DETAILS_FOR_MP_WEBSITE_VEHICLE_BUY(confSbv, siteID, g_sConfVssMP, vi, bAltVersion)
|
|
AND DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
|
|
BROWSER_CURSOR_LOADING(FALSE)
|
|
IF IS_USING_CURSOR(FRONTEND_CONTROL)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_MOUSE_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_X ))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_Y ))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
fMouseWheelScrollSpeed = 0.0
|
|
ENDIF
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
INT iSlotToUse = -1
|
|
INT iDisplaySlotToUse = -1
|
|
|
|
IF confMpSlotIndex = -1
|
|
iSlotToUse = MP_SAVE_VEHICLE_GET_EMPTY_SAVE_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,g_sConfVssMP.VehicleSetup.eModel)
|
|
ELSE
|
|
iSlotToUse = confMpSlotIndex
|
|
CPRINTLN(DEBUG_INTERNET, "setting iSlotToUse = confMpSlotIndex = ",iSlotToUse)
|
|
ENDIF
|
|
|
|
IF confMPDisplayIndex = -1
|
|
iDisplaySlotToUse = MP_SAVE_VEHICLE_GET_EMPTY_DISPLAY_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,g_sConfVssMP.VehicleSetup.eModel)
|
|
ELSE
|
|
iDisplaySlotToUse = confMPDisplayIndex
|
|
CPRINTLN(DEBUG_INTERNET, "setting iDisplaySlotToUse = confMPDisplayIndex = ",iDisplaySlotToUse)
|
|
ENDIF
|
|
|
|
// auto-pick slot for hangar if necessary
|
|
IF iSlotToUse > -1
|
|
AND iDisplaySlotToUse > -1
|
|
AND MP_SAVE_VEHICLE_IS_DISPLAY_SLOT_HANGAR(iDisplaySlotToUse)
|
|
MP_SAVE_VEHICLE_GET_SUITABLE_HANGAR_SLOT(iDisplaySlotToUse, iSlotToUse, g_sConfVssMP.VehicleSetup.eModel)
|
|
ENDIF
|
|
|
|
IF g_sMPTunables.bDisableDisplaySlots
|
|
iDisplaySlotToUse = iSlotToUse
|
|
CPRINTLN(DEBUG_INTERNET, "g_sMPTunables.bDisableDisplaySlots internet 1 setting iDisplaySlotToUse = iSlotToUse ")
|
|
ENDIF
|
|
|
|
IF iSlotToUse > -1
|
|
AND iDisplaySlotToUse > -1
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY - use slots ", GET_LABEL_BUYABLE_VEHICLE(confSbv), ", ", GET_WEBSITE_FROM_INDEX(siteID), ", iSlotToUse: ", iSlotToUse, ", iDisplaySlotToUse:", iDisplaySlotToUse)
|
|
|
|
// are we replacing the last used car? (see 1685165)
|
|
IF (g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iLastSavedCarUsed = iSlotToUse)
|
|
|
|
NET_PRINT("DO_MP_VEHICLE_BUY - replacing last used car") NET_NL()
|
|
CLEANUP_MP_SAVED_VEHICLE()
|
|
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iLastSavedCarUsed = -1
|
|
ENDIF
|
|
|
|
INT iPrice = GET_BUYABLE_VEHICLE_PRICE_MP(siteID, confSbv, bAltVersion)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: iPrice: ", iPrice, " bAltVersion: ", GET_STRING_FROM_BOOL(bAltVersion))
|
|
|
|
COUPON_TYPE eDoCoupon = MAX_COUPONS
|
|
|
|
// Adjust prices for MP tunables
|
|
SWITCH siteID
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
CASE WWW_BENNYSORIGINALMOTORWORKS_COM
|
|
CASE WWW_ARENAWAR_TV
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: g_sMPTunables.fCarsWebsiteMultiplier: ", g_sMPTunables.fCarsWebsiteMultiplier)
|
|
iPrice = CEIL(g_sMPTunables.fCarsWebsiteMultiplier * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE WWW_ELITASTRAVEL_COM
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
IF GET_VEHICLE_STORAGE_TYPE(confSbv) = VST_HANGAR
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: g_sMPTunables.fPlanesWebsiteMultiplier: ", g_sMPTunables.fPlanesWebsiteMultiplier)
|
|
iPrice = CEIL(g_sMPTunables.fPlanesWebsiteMultiplier * (TO_FLOAT(iPrice)))
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: g_sMPTunables.fHelisWebsiteMultiplier: ", g_sMPTunables.fHelisWebsiteMultiplier)
|
|
iPrice = CEIL(g_sMPTunables.fHelisWebsiteMultiplier * (TO_FLOAT(iPrice)))
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_DOCKTEASE_COM
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: g_sMPTunables.fBoatsWebsiteMultiplier: ", g_sMPTunables.fBoatsWebsiteMultiplier)
|
|
iPrice = CEIL(g_sMPTunables.fBoatsWebsiteMultiplier * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE WWW_PANDMCYCLES_COM
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: g_sMPTunables.fBikesWebsiteMultiplier: ", g_sMPTunables.fBikesWebsiteMultiplier)
|
|
iPrice = CEIL(g_sMPTunables.fBikesWebsiteMultiplier * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
IF g_smpTunables.bTurn_on_promotional_eyefind_homepage
|
|
CASSERTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: Promotional eyefind homepage discount hooked up, check site \"", GET_WEBSITE_FROM_INDEX(siteID), "\"")
|
|
|
|
SWITCH siteID
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: g_sMPTunables.fLEGENDARY_DISPLAYED_DISCOUNT: ", g_sMPTunables.fLEGENDARY_DISPLAYED_DISCOUNT)
|
|
iPrice = CEIL((100-g_sMPTunables.fLEGENDARY_DISPLAYED_DISCOUNT)/100.0 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE WWW_ELITASTRAVEL_COM
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: g_sMPTunables.fELITAS_DISPLAYED_DISCOUNT: ", g_sMPTunables.fELITAS_DISPLAYED_DISCOUNT)
|
|
iPrice = CEIL((100-g_sMPTunables.fELITAS_DISPLAYED_DISCOUNT)/100.0 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: g_sMPTunables.fSSASA_DISPLAYED_DISCOUNT: ", g_sMPTunables.fSSASA_DISPLAYED_DISCOUNT)
|
|
iPrice = CEIL((100-g_sMPTunables.fSSASA_DISPLAYED_DISCOUNT)/100.0 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
|
|
IF iPriceIn > -1
|
|
iPrice = iPriceIn
|
|
ENDIF
|
|
|
|
IF (eDoCoupon = MAX_COUPONS)
|
|
AND (iPrice > 0)
|
|
IF confSbv = BV_GO_HERMES
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_CAR_XMAS2017)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: has coupon(COUPON_CAR_XMAS2017)")
|
|
eDoCoupon = COUPON_CAR_XMAS2017
|
|
ENDIF
|
|
ELIF confSbv = BV_AW_CLIQUE
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_CAR_XMAS2018)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: has coupon(COUPON_CAR_XMAS2018)")
|
|
eDoCoupon = COUPON_CAR_XMAS2018
|
|
ENDIF
|
|
ELIF confSbv = BV_A_BUZZARD
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_HELI_XMAS2018)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: has coupon(COUPON_HELI_XMAS2018)")
|
|
eDoCoupon = COUPON_HELI_XMAS2018
|
|
ENDIF
|
|
ELIF confSbv = BV_DLC_INSURGENT
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_CAR2_XMAS2018)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: has coupon(COUPON_CAR2_XMAS2018)")
|
|
eDoCoupon = COUPON_CAR2_XMAS2018
|
|
ENDIF
|
|
#IF FEATURE_GEN9_EXCLUSIVE
|
|
ELIF confSbv = BV_G9E_S95
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_CAR_GEN9_MIGRATION)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_BIGASS_VEHICLE_BUY: has coupon(COUPON_CAR_GEN9_MIGRATION)")
|
|
eDoCoupon = COUPON_CAR_GEN9_MIGRATION
|
|
ENDIF
|
|
#ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF (eDoCoupon = MAX_COUPONS)
|
|
AND (iPrice > 0)
|
|
SWITCH siteID
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_CAR_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: has coupon(COUPON_CAR_SITE)")
|
|
eDoCoupon = COUPON_CAR_SITE
|
|
ELIF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_CAR_SITE, confSbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_CAR_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: has coupon(COUPON_CASINO_CAR_SITE)")
|
|
eDoCoupon = COUPON_CASINO_CAR_SITE
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_ELITASTRAVEL_COM
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_PLANE_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: has coupon(COUPON_PLANE_SITE)")
|
|
eDoCoupon = COUPON_PLANE_SITE
|
|
ELIF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_PLANE_SITE, confSbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_PLANE_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: has coupon(COUPON_CASINO_PLANE_SITE)")
|
|
eDoCoupon = COUPON_CASINO_PLANE_SITE
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_MIL_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: has coupon(COUPON_MIL_SITE)")
|
|
eDoCoupon = COUPON_MIL_SITE
|
|
ELIF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_MIL_SITE, confSbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_MIL_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: has coupon(COUPON_CASINO_MIL_SITE)")
|
|
eDoCoupon = COUPON_CASINO_MIL_SITE
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_DOCKTEASE_COM
|
|
IF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_BOAT_SITE, confSbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_BOAT_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: has coupon(COUPON_CASINO_BOAT_SITE)")
|
|
eDoCoupon = COUPON_CASINO_BOAT_SITE
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
IF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_CAR_SITE2, confSbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_CAR_SITE2)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: has coupon(COUPON_CASINO_CAR_SITE2)")
|
|
eDoCoupon = COUPON_CASINO_CAR_SITE2
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_PANDMCYCLES_COM
|
|
IF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_BIKE_SITE, confSbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_BIKE_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: has coupon(COUPON_CASINO_BIKE_SITE)")
|
|
eDoCoupon = COUPON_CASINO_BIKE_SITE
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
|
|
IF (eDoCoupon = COUPON_CASINO_PLANE_SITE)
|
|
OR (eDoCoupon = COUPON_CASINO_BOAT_SITE)
|
|
OR (eDoCoupon = COUPON_CASINO_CAR_SITE)
|
|
OR (eDoCoupon = COUPON_CASINO_CAR_SITE2)
|
|
OR (eDoCoupon = COUPON_CASINO_MIL_SITE)
|
|
OR (eDoCoupon = COUPON_CASINO_BIKE_SITE)
|
|
TRIGGER_BROWSER_NAG_SCREEN(ENUM_TO_INT(eDoCoupon), iPrice, NSR_VOUCHER)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: Trigger browser voucher screen(", GET_COUPON_STRING(eDoCoupon), ", ", iPrice, ", NSR_VOUCHER)")
|
|
|
|
BOOL bInputFrontendReleased = FALSE
|
|
BOOL bInputFrontendAcceptPressed = FALSE, bInputFrontendCancelPressed = FALSE
|
|
|
|
WHILE NOT bInputFrontendAcceptPressed
|
|
AND NOT bInputFrontendCancelPressed
|
|
AND DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
IF bInputFrontendReleased
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_ACCEPT)
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_ACCEPT)
|
|
OR (IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_CURSOR_ACCEPT) AND NOT IS_WARNING_MESSAGE_ACTIVE())
|
|
OR (IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_ACCEPT) AND NOT IS_WARNING_MESSAGE_ACTIVE())
|
|
bInputFrontendAcceptPressed = TRUE
|
|
|
|
g_bBrowserNagScreenState = FALSE
|
|
g_bBrowserVoucherNagScreenState = FALSE
|
|
g_bBrowserGoToStoreTrigger = FALSE
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(nagScreen)
|
|
nagScreen = null
|
|
g_iBrowserNoInputTimer = g_iBrowserTimer + 500
|
|
ELIF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_CANCEL)
|
|
OR (IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_CURSOR_CANCEL) AND NOT IS_WARNING_MESSAGE_ACTIVE())
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_CANCEL)
|
|
OR (IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_CURSOR_CANCEL) AND NOT IS_WARNING_MESSAGE_ACTIVE())
|
|
bInputFrontendCancelPressed = TRUE
|
|
|
|
g_bBrowserNagScreenState = FALSE
|
|
g_bBrowserVoucherNagScreenState = FALSE
|
|
g_bBrowserGoToStoreTrigger = FALSE
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(nagScreen)
|
|
nagScreen = null
|
|
g_iBrowserNoInputTimer = g_iBrowserTimer + 500
|
|
ENDIF
|
|
ENDIF
|
|
IF NOT bInputFrontendReleased
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: Triggered browser voucher screen, bInputFrontendReleased = true")
|
|
bInputFrontendReleased = TRUE
|
|
ENDIF
|
|
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
IF bInputFrontendAcceptPressed
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: Accept voucher ", GET_COUPON_STRING(eDoCoupon))
|
|
ELIF bInputFrontendCancelPressed
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: Cancel voucher ", GET_COUPON_STRING(eDoCoupon))
|
|
|
|
//canceled the buy process
|
|
#IF NOT IS_NEXTGEN_BUILD
|
|
DO_VEHICLE_FAIL_PAGE(siteID,VSFR_CANCELED,confSbv, GET_BUYABLE_VEHICLE_PRICE_MP(siteID, confSbv))
|
|
#ENDIF
|
|
#IF IS_NEXTGEN_BUILD
|
|
DO_VEHICLE_FAIL_PAGE(siteID,VSFR_CANCELED,confSbv, GET_BUYABLE_VEHICLE_PRICE_MP(siteID, confSbv, bAltVersion))
|
|
#ENDIF
|
|
IF DOES_ENTITY_EXIST(vi)
|
|
DELETE_VEHICLE(vi)
|
|
ENDIF
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(g_sConfVssMP.VehicleSetup.eModel)
|
|
iLastPurchasedVehicleSlot = confMpSlotIndex
|
|
confMpSlotIndex = -1
|
|
confMPDisplayIndex = -1
|
|
RESET_VEHICLE_SETUP_STRUCT_MP(g_sConfVssMP)
|
|
RETURN FALSE
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: UNKNOWN voucher ", GET_COUPON_STRING(eDoCoupon))
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// Process cash transaction.
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
bProcessingBasket = TRUE
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_ADD
|
|
|
|
MODEL_NAMES eThisVehModel = g_sConfVssMP.vehicleSetup.eModel
|
|
BOOL bThisAltVersion = bAltVersion
|
|
IF IS_SBV_A_VEHICLE_WITH_ARMOUR_OPTION(confSbv)
|
|
AND bAltVersion
|
|
SWITCH confSbv
|
|
CASE BV_AP_BALLER3 eThisVehModel = BALLER5 BREAK
|
|
CASE BV_AP_BALLER4 eThisVehModel = BALLER6 BREAK
|
|
CASE BV_AP_COG55 eThisVehModel = COG552 BREAK
|
|
CASE BV_AP_COGNOSCENTI eThisVehModel = COGNOSCENTI2 BREAK
|
|
CASE BV_AP_SCHAFTER3 eThisVehModel = SCHAFTER5 BREAK
|
|
CASE BV_AP_SCHAFTER4 eThisVehModel = SCHAFTER6 BREAK
|
|
|
|
DEFAULT
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: unknown armouted vehicle ", GET_LABEL_BUYABLE_VEHICLE(confSbv))
|
|
BREAK
|
|
ENDSWITCH
|
|
bThisAltVersion = FALSE
|
|
ENDIF
|
|
|
|
IF (eThisVehModel = COGNOSCENTI)
|
|
OR (eThisVehModel = COGNOSCENTI2)
|
|
IF IS_ARENA_WARS_VEHICLE_REWARD_UNLOCKED(eThisVehModel)
|
|
bThisAltVersion = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BOOL bStarterPackItem = FALSE
|
|
IF IS_SBV_A_VEHICLE_FREE_FOR_CRIMINAL_ENTERPRISE_STARTER_PACK(confSbv)
|
|
IF HAS_MP_CRIMINAL_ENTERPRISE_PREMIUM_OR_STARTER_ACCESS()
|
|
bStarterPackItem = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
INT iItemId = GET_VEHICLE_KEY_FOR_CATALOGUE(eThisVehModel, bThisAltVersion, DEFAULT, bStarterPackItem)
|
|
INT iInventoryKey = GET_VEHICLE_INVENTORY_KEY_FOR_CATALOGUE(confMpSlotIndex)
|
|
|
|
INT iProcessSuccess = GENERIC_TRANSACTION_STATE_DEFAULT
|
|
|
|
///////////////////////////////////////////
|
|
/// TRANSACTION FOR INVENTORY VEHICLE
|
|
INT iDoCouponHash = 0
|
|
SWITCH eDoCoupon
|
|
CASE COUPON_CAR_SITE
|
|
iDoCouponHash = HASH("PM_COUPON_CAR_SITE") //<keyhash value="118439962" />
|
|
BREAK
|
|
CASE COUPON_PLANE_SITE
|
|
iDoCouponHash = HASH("PM_COUPON_PLANE_SITE") //<keyhash value="1514966546" />
|
|
BREAK
|
|
CASE COUPON_MIL_SITE
|
|
iDoCouponHash = HASH("PM_COUPON_MIL_SITE") //<keyhash value="1776242445" />
|
|
BREAK
|
|
|
|
CASE COUPON_CAR_XMAS2017
|
|
iDoCouponHash = HASH("PO_COUPON_CAR_XMAS2017") //<keyhash value="-1996922865" />
|
|
iPriceIn = 0
|
|
BREAK
|
|
CASE COUPON_CAR_XMAS2018
|
|
iDoCouponHash = HASH("PO_COUPON_CAR_XMAS2018") //<keyhash value="2125613953" />
|
|
iPriceIn = 0
|
|
BREAK
|
|
CASE COUPON_HELI_XMAS2018
|
|
iDoCouponHash = HASH("PO_COUPON_HELI_XMAS2018") //<keyhash value="-1462899015" />
|
|
iPriceIn = 0
|
|
BREAK
|
|
CASE COUPON_CAR2_XMAS2018
|
|
iDoCouponHash = HASH("PO_COUPON_CAR2_XMAS2018") //<keyhash value="902521715" />
|
|
iPriceIn = 0
|
|
BREAK
|
|
|
|
CASE COUPON_CASINO_PLANE_SITE
|
|
iDoCouponHash = HASH("PM_COUPON_CASINO_PLANE_SITE")
|
|
BREAK
|
|
CASE COUPON_CASINO_BOAT_SITE
|
|
iDoCouponHash = HASH("PM_COUPON_CASINO_BOAT_SITE")
|
|
BREAK
|
|
CASE COUPON_CASINO_CAR_SITE
|
|
iDoCouponHash = HASH("PM_COUPON_CASINO_CAR_SITE")
|
|
BREAK
|
|
CASE COUPON_CASINO_CAR_SITE2
|
|
iDoCouponHash = HASH("PM_COUPON_CASINO_CAR_SITE2")
|
|
BREAK
|
|
CASE COUPON_CASINO_MIL_SITE
|
|
iDoCouponHash = HASH("PM_COUPON_CASINO_MIL_SITE")
|
|
BREAK
|
|
CASE COUPON_CASINO_BIKE_SITE
|
|
iDoCouponHash = HASH("PM_COUPON_CASINO_BIKE_SITE")
|
|
BREAK
|
|
ENDSWITCH
|
|
WHILE PROCESSING_INTERNET_SHOPPING_BASKET(iProcessSuccess, iPriceIn, ENUM_TO_INT(g_sConfVssMP.vehicleSetup.eModel), CATEGORY_INVENTORY_VEHICLE, NET_SHOP_ACTION_BUY_VEHICLE, iItemId, iInventoryKey, iDoCouponHash, DEFAULT, DEFAULT, vi)
|
|
RENDER_BROWSER()
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(TRUE)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(FALSE)
|
|
|
|
SWITCH iProcessSuccess
|
|
CASE GENERIC_TRANSACTION_STATE_FAILED
|
|
#IF NOT IS_DEBUG_BUILD
|
|
TEXT_LABEL tlCategoryKey
|
|
tlCategoryKey = GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(g_sConfVssMP.vehicleSetup.eModel)
|
|
#ENDIF
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL_63 tlCategoryKey
|
|
INT iPriceVariation
|
|
TEXT_LABEL_15 tlVehicleName
|
|
iPriceVariation = GET_VEHICLE_MOD_PRICE_VARIATION_FOR_CATALOGUE(g_sConfVssMP.vehicleSetup.eModel)
|
|
tlVehicleName = GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(g_sConfVssMP.vehicleSetup.eModel)
|
|
IF bAltVersion
|
|
GENERATE_KEY_FOR_SHOP_CATALOGUE(tlCategoryKey, tlVehicleName, g_sConfVssMP.vehicleSetup.eModel, SHOP_TYPE_CARMOD, 1, iPriceVariation)
|
|
ELSE
|
|
GENERATE_KEY_FOR_SHOP_CATALOGUE(tlCategoryKey, tlVehicleName, g_sConfVssMP.vehicleSetup.eModel, SHOP_TYPE_CARMOD, 0, iPriceVariation)
|
|
ENDIF
|
|
#ENDIF
|
|
CWARNINGLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: failed to process transaction \"", tlCategoryKey, "\"")
|
|
#IF NOT IS_NEXTGEN_BUILD
|
|
DO_VEHICLE_FAIL_PAGE(siteID,VSFR_NOT_SAFE,confSbv, GET_BUYABLE_VEHICLE_PRICE_MP(siteID, confSbv))
|
|
#ENDIF
|
|
#IF IS_NEXTGEN_BUILD
|
|
DO_VEHICLE_FAIL_PAGE(siteID,VSFR_NOT_SAFE,confSbv, GET_BUYABLE_VEHICLE_PRICE_MP(siteID, confSbv, bAltVersion))
|
|
#ENDIF
|
|
|
|
DELETE_VEHICLE(vi)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(g_sConfVssMP.VehicleSetup.eModel)
|
|
confMpSlotIndex = -1
|
|
confMPDisplayIndex = -1
|
|
RESET_VEHICLE_SETUP_STRUCT_MP(g_sConfVssMP)
|
|
|
|
RETURN FALSE
|
|
BREAK
|
|
CASE GENERIC_TRANSACTION_STATE_SUCCESS
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: success!!")
|
|
BREAK
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: unknown iProcessSuccess: \"", iProcessSuccess, "\"")
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
SWITCH eDoCoupon
|
|
CASE COUPON_CAR_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CAR_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_PLANE_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_PLANE_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_MIL_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_MIL_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
|
|
CASE COUPON_CAR_XMAS2017
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CAR_XMAS2017)")
|
|
iPrice = 0
|
|
BREAK
|
|
CASE COUPON_CAR_XMAS2018
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CAR_XMAS2018)")
|
|
iPrice = 0
|
|
BREAK
|
|
CASE COUPON_HELI_XMAS2018
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_HELI_XMAS2018)")
|
|
iPrice = 0
|
|
BREAK
|
|
CASE COUPON_CAR2_XMAS2018
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CAR2_XMAS2018)")
|
|
iPrice = 0
|
|
BREAK
|
|
|
|
CASE COUPON_CASINO_PLANE_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_PLANE_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_CASINO_BOAT_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_BOAT_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_CASINO_CAR_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_CAR_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_CASINO_CAR_SITE2
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_CAR_SITE2)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_CASINO_MIL_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_MIL_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_CASINO_BIKE_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_BIKE_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
#IF FEATURE_GEN9_EXCLUSIVE
|
|
CASE COUPON_CAR_GEN9_MIGRATION
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CAR_GEN9_MIGRATION)")
|
|
iPrice = 0
|
|
BREAK
|
|
#ENDIF
|
|
ENDSWITCH
|
|
ELSE
|
|
SWITCH eDoCoupon
|
|
CASE COUPON_CAR_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CAR_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_PLANE_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_PLANE_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_MIL_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_MIL_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
|
|
CASE COUPON_CAR_XMAS2017
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CAR_XMAS2017)")
|
|
iPrice = 0
|
|
BREAK
|
|
CASE COUPON_CAR_XMAS2018
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CAR_XMAS2018)")
|
|
iPrice = 0
|
|
BREAK
|
|
CASE COUPON_HELI_XMAS2018
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_HELI_XMAS2018)")
|
|
iPrice = 0
|
|
BREAK
|
|
CASE COUPON_CAR2_XMAS2018
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CAR2_XMAS2018)")
|
|
iPrice = 0
|
|
BREAK
|
|
|
|
CASE COUPON_CASINO_PLANE_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_PLANE_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_CASINO_BOAT_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_BOAT_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_CASINO_CAR_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_CAR_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_CASINO_CAR_SITE2
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_CAR_SITE2)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_CASINO_MIL_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_MIL_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE COUPON_CASINO_BIKE_SITE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CASINO_BIKE_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
#IF FEATURE_GEN9_EXCLUSIVE
|
|
CASE COUPON_CAR_GEN9_MIGRATION
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(COUPON_CAR_GEN9_MIGRATION)")
|
|
iPrice = 0
|
|
BREAK
|
|
#ENDIF
|
|
ENDSWITCH
|
|
|
|
BOOL fromBank = (NETWORK_GET_VC_BANK_BALANCE() >= 0)
|
|
BOOL fromBankAndWallet = (NETWORK_GET_VC_BANK_BALANCE() < iPrice)
|
|
IF (fromBank AND NETWORK_CAN_SPEND_MONEY(iPrice,TRUE,FALSE,FALSE))
|
|
OR (fromBankAndWallet AND NETWORK_CAN_SPEND_MONEY(iPrice,FALSE,TRUE,FALSE))
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: ignore NETWORK_REQUEST_BASKET_TRANSACTION")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY() - vehicle site fail reason \"cannot spend money\"")
|
|
DO_VEHICLE_FAIL_PAGE(siteID, VSFR_NO_MONEY, confSbv, iPrice)
|
|
|
|
DELETE_VEHICLE(vi)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(g_sConfVssMP.VehicleSetup.eModel)
|
|
iLastPurchasedVehicleSlot = confMpSlotIndex
|
|
confMpSlotIndex = -1
|
|
confMPDisplayIndex = -1
|
|
RESET_VEHICLE_SETUP_STRUCT_MP(g_sConfVssMP)
|
|
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDIF
|
|
GO_TO_WEBSITE(GET_VEHICLE_PURCHASE_SUCCESS_PAGE(siteID, confSbv))
|
|
|
|
MP_SAVE_VEHICLE_STORE_CAR_DETAILS_IN_SLOT(vi,iSlotToUse,TRUE,TRUE,FALSE,TRUE,TRUE)
|
|
MPSV_SET_DISPLAY_SLOT(iDisplaySlotToUse,iSlotToUse)
|
|
#IF FEATURE_GTAO_MEMBERSHIP
|
|
MP_SAVE_VEHICLE_CHECK_SET_MEMBERSHIP_PURCHASE(g_sConfVssMP.VehicleSetup.eModel,iSlotToUse)
|
|
#ENDIF
|
|
|
|
IF iDisplaySlotToUse >= DISPLAY_SLOT_START_ARENAWARS_GARAGE_LVL1
|
|
AND iDisplaySlotToUse <= DISPLAY_SLOT_END_ARENAWARS_GARAGE_LVL3
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY() - SET_ARENA_VEHICLE_NAME to NULL for ",iDisplaySlotToUse-DISPLAY_SLOT_START_ARENAWARS_GARAGE_LVL1)
|
|
CLEAR_ARENA_VEHICLE_NAME(iDisplaySlotToUse-DISPLAY_SLOT_START_ARENAWARS_GARAGE_LVL1)
|
|
ENDIF
|
|
IF NOT IS_VEHICLE_A_CYCLE(g_sConfVssMP.VehicleSetup.eModel)
|
|
INSURE_MP_SAVED_VEHICLE_PRIVATE(iSlotToUse)
|
|
ENDIF
|
|
// g_MpSavedVehicles[iSlotToUse].vehicleSetupMP.VehicleSetup.iColour1 = g_sConfVssMP.VehicleSetup.iColour1
|
|
SET_VEHICLE_AS_JUST_PURCHASED(iSlotToUse)
|
|
GB_SET_SHOULD_REFRESH_OWNED_ABILITY_VEHICLES()
|
|
|
|
IF !(eDoCoupon = MAX_COUPONS)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: REDEEM_COUPON(", eDoCoupon, ")")
|
|
REDEEM_COUPON(eDoCoupon)
|
|
ENDIF
|
|
|
|
BANK_ACCOUNT_ACTION_SOURCE_BAAC basource
|
|
SWITCH siteID
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
basource = BAAC_MOTORSPORT_SITE
|
|
BREAK
|
|
CASE WWW_ELITASTRAVEL_COM
|
|
basource = BAAC_PLANE_SITE
|
|
BREAK
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
basource = BAAC_ARMY_SITE
|
|
BREAK
|
|
CASE WWW_DOCKTEASE_COM
|
|
basource = BAAC_BOAT_SITE
|
|
BREAK
|
|
CASE WWW_PANDMCYCLES_COM
|
|
basource = BAAC_BIKE_SITE
|
|
BREAK
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
basource = BAAC_SUPERAUTO_SITE
|
|
BREAK
|
|
CASE WWW_BENNYSORIGINALMOTORWORKS_COM
|
|
basource = BAAC_LOWRIDER_SITE
|
|
BREAK
|
|
CASE WWW_ARENAWAR_TV
|
|
basource = BAAC_ARENA_SITE
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: invalid siteID ", GET_WEBSITE_FROM_INDEX(siteID))
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
INT iData = GET_MP_INT_PLAYER_STAT(MPPLY_VEHICLE_ID_ADMIN_WEB)
|
|
IF INT_TO_ENUM(MODEL_NAMES, iData) = g_sConfVssMP.VehicleSetup.eModel
|
|
SET_MP_INT_PLAYER_STAT(MPPLY_VEHICLE_ID_ADMIN_WEB, 0)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_INTERNET, "Appinternet: MPPLY_VEHICLE_ID_ADMIN_WEB is ", iData, " == \"", GET_LABEL_BUYABLE_VEHICLE(confSbv), "\" ", ENUM_TO_INT(GET_MODEL_FOR_BUYABLE_VEHICLE(confSbv, iAltVersion)))
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "Appinternet: MPPLY_VEHICLE_ID_ADMIN_WEB is ", iData, " != \"", GET_LABEL_BUYABLE_VEHICLE(confSbv), "\" ", ENUM_TO_INT(GET_MODEL_FOR_BUYABLE_VEHICLE(confSbv, iAltVersion)))
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_INTERNET, "PLAYSTATS_SHOP_ITEM(", GET_LABEL_BUYABLE_VEHICLE(confSbv), ", ", iPrice, ")")
|
|
#ENDIF
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Special","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
IF iPrice >= 0
|
|
|
|
INCREMENT_BY_MP_INT_PLAYER_STAT(MPPLY_INGAMESTORE_MONEYSPENT, iPrice)
|
|
|
|
BOOL fromBank = (NETWORK_GET_VC_BANK_BALANCE() >= 0)
|
|
BOOL fromBankAndWallet = (NETWORK_GET_VC_BANK_BALANCE() < iPrice)
|
|
IF (fromBank AND NETWORK_CAN_SPEND_MONEY(iPrice,TRUE,FALSE,FALSE))
|
|
OR (fromBankAndWallet AND NETWORK_CAN_SPEND_MONEY(iPrice,FALSE,TRUE,FALSE))
|
|
OR USE_SERVER_TRANSACTIONS() // Transaction would have already taken cash off here.
|
|
INT colorHash = 0
|
|
|
|
INT iSVMIndex = GET_SVM_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
INT iWVMIndex = GET_WVM_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
INT iWAMIndex = WAM_GET_STEAL_MISSION_UNLOCK_COUNT_FROM_VEHICLE_MODEL(g_sConfVssMP.vehicleSetup.eModel)
|
|
INT iFDSSlot = GET_FDS_VEHICLE_SLOT(g_sConfVssMP.vehicleSetup.eModel)
|
|
INT iBBSIndex = GET_BBS_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
INT iAWSIndex = GET_AWS_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
#IF FEATURE_CASINO_HEIST
|
|
INT iCHIndex = GET_CH_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
#ENDIF
|
|
#IF FEATURE_COPS_N_CROOKS
|
|
INT iCNCIndex = GET_CNC_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
#ENDIF
|
|
// #IF FEATURE_SUMMER_2020
|
|
// INT iSUMIndex = GET_SUMMER20_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
// #ENDIF
|
|
INT iIHIndex = GET_ISLAND_HEIST_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
INT iTunerIndex = GET_TUNER_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
INT iFixerIndex = GET_FIXER_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
#IF FEATURE_DLC_1_2022
|
|
INT iSum2Index = GET_SUMMER_2022_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel)
|
|
#ENDIF
|
|
IF iSVMIndex != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
INT iMission = SVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(g_sConfVssMP.vehicleSetup.eModel)
|
|
IF NOT SVM_HAS_PLAYER_UNLOCKED_MISSION(iMission)
|
|
colorHash = 1
|
|
ELIF NOT SVM_HAS_THIS_MISSION_BEEN_PASSED(iMission, ciFLOW_MISSION_TYPE_SVM) //SVM_IS_SPECIAL_VEHICLE_UNLOCKED
|
|
colorHash = 2
|
|
ELSE
|
|
colorHash = 3
|
|
ENDIF
|
|
SMV_RESET_VEHICLE_UNLOCK_INT(iMission)
|
|
SET_BIT(iSVM_Unlock_Feed_Message, iMission)
|
|
ELIF IS_SBV_A_VEHICLE_PREVIOUSLY_HEIST_LOCKED(confSbv)
|
|
//1 = for not unlocked through heist
|
|
//2 = for unlocked through heist
|
|
|
|
IF NOT IS_BUYABLE_VEHICLE_UNLOCKED(confSbv)
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
ELIF iWVMIndex != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
INT iMission = WVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(g_sConfVssMP.vehicleSetup.eModel)
|
|
// IF NOT TRUE //WVM_HAS_PLAYER_UNLOCKED_MISSION(iMission)
|
|
// colorHash = 1
|
|
// EL
|
|
IF NOT SVM_HAS_THIS_MISSION_BEEN_PASSED(iMission, ciFLOW_MISSION_TYPE_WVM) //WVM_IS_SPECIAL_VEHICLE_UNLOCKED
|
|
colorHash = 2
|
|
ELSE
|
|
colorHash = 3
|
|
ENDIF
|
|
SMV_RESET_VEHICLE_UNLOCK_INT(iMission)
|
|
SET_BIT(iWVM_Unlock_Feed_Message, iMission)
|
|
|
|
UNLOCK_CLOTHING_AWARD(CLOTHING_AWARD_PURCH_SINGLEWEAPONIZEDVEHICLE)
|
|
|
|
BOOL bClothingAwardPurchAllWeaponizedVehicle = FALSE
|
|
INT i, iSavedWVMBitset = 0
|
|
SET_BIT(iSavedWVMBitset, iWVMIndex)
|
|
REPEAT MAX_MP_SAVED_VEHICLES i
|
|
INT iSavedWVMIndex = GET_WVM_VEHICLE_INDEX(g_MpSavedVehicles[i].vehicleSetupMP.VehicleSetup.eModel)
|
|
IF iSavedWVMIndex != -1
|
|
AND NOT IS_BIT_SET(iSavedWVMBitset, iSavedWVMIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: purchase weaponized veh ", iWVMIndex, ", already own ", iSavedWVMIndex, ", in slot ", i, ".")
|
|
SET_BIT(iSavedWVMBitset, iSavedWVMIndex)
|
|
ENDIF
|
|
|
|
IF (IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(DUNE3))
|
|
AND IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(HALFTRACK))
|
|
AND IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(TRAILERSMALL2))
|
|
AND IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(APC))
|
|
AND IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(TAMPA3))
|
|
AND IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(OPPRESSOR)))
|
|
UNLOCK_CLOTHING_AWARD(CLOTHING_AWARD_PURCH_ALLWEAPONIZEDVEHICLE)
|
|
bClothingAwardPurchAllWeaponizedVehicle = TRUE
|
|
i = MAX_MP_SAVED_VEHICLES
|
|
ENDIF
|
|
ENDREPEAT
|
|
IF NOT bClothingAwardPurchAllWeaponizedVehicle
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: purchase weaponized veh ", iWVMIndex,
|
|
PICK_STRING(IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(DUNE3)), ", own DUNE3", ", dont own DUNE3"),
|
|
PICK_STRING(IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(HALFTRACK)), ", own HALFTRACK", ", dont own HALFTRACK"),
|
|
PICK_STRING(IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(TRAILERSMALL2)), ", own TRAILERSMALL2", ", dont own TRAILERSMALL2"),
|
|
PICK_STRING(IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(APC)), ", own APC", ", dont own APC"),
|
|
PICK_STRING(IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(TAMPA3)), ", own TAMPA3", ", dont own TAMPA3"),
|
|
PICK_STRING(IS_BIT_SET(iSavedWVMBitset, GET_WVM_VEHICLE_INDEX(OPPRESSOR)), ", own OPPRESSOR", ", dont own OPPRESSOR"))
|
|
ENDIF
|
|
ELIF iWAMIndex > 0
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
IF NOT WAM_IS_SPECIAL_VEHICLE_UNLOCKED(g_sConfVssMP.vehicleSetup.eModel)
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
ELIF iFDSSlot != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
IF NOT HAS_PLAYER_UNLOCKED_GANG_OPS_VEHICLE_TRADE_PRICE(g_sConfVssMP.vehicleSetup.eModel)
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
SET_BIT(iFDS_Unlock_Feed_Message, iFDSSlot)
|
|
ELIF iBBSIndex != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
IF NOT IS_BUSINESS_BATTLES_VEHICLE_REWARD_UNLOCKED(g_sConfVssMP.vehicleSetup.eModel)
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
SET_BIT(iBBS_Unlock_Feed_Message, iBBSIndex)
|
|
ELIF iAWSIndex != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
IF NOT IS_ARENA_WARS_VEHICLE_REWARD_UNLOCKED(g_sConfVssMP.vehicleSetup.eModel)
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
// SET_BIT(iBBS_Unlock_Feed_Message, iAWSIndex)
|
|
|
|
IF IS_VEHICLE_AN_ARENA_CONTENDER_VEHICLE(g_sConfVssMP.vehicleSetup.eModel)
|
|
// Player purchases an Arena vehicle (already supermodded):
|
|
GB_SETUP_ARENA_WARS_FIRST_ARENA_VEHICLE_PURCHASED_CALL()
|
|
SET_OWNED_ARENA_READY_VEHICLE_STAT(g_sConfVssMP.vehicleSetup.eModel)
|
|
ELSE
|
|
// Player purchases a base vehicle (can be supermodded to become Arena vehicle):
|
|
GB_SETUP_ARENA_WARS_FIRST_BASE_VEHICLE_PURCHASED_CALL()
|
|
ENDIF
|
|
#IF FEATURE_CASINO_HEIST
|
|
ELIF iCHIndex != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
IF NOT IS_CASINO_HEIST_VEHICLE_REWARD_UNLOCKED(g_sConfVssMP.vehicleSetup.eModel)
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
#ENDIF
|
|
#IF FEATURE_COPS_N_CROOKS
|
|
ELIF iCNCIndex != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
// if not unlocked
|
|
IF NOT IS_CNC_VEHICLE_REWARD_UNLOCKED()
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
#ENDIF
|
|
// #IF FEATURE_SUMMER_2020
|
|
// ELIF iSUMIndex != -1
|
|
// //1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// // of Export missions to unlock the related Special Vehicle Mission
|
|
// //2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// // of Export missions to unlock the related Special Vehicle Mission
|
|
// //3 = Purchased at the Securo Serve Discount value
|
|
//
|
|
// // if not unlocked
|
|
// IF NOT IS_SUMMER20_VEHICLE_REWARD_UNLOCKED()
|
|
// colorHash = 1
|
|
// ELSE
|
|
// colorHash = 2
|
|
// ENDIF
|
|
// #ENDIF
|
|
ELIF iIHIndex != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
// if not unlocked
|
|
IF NOT IS_ISLAND_HEIST_VEHICLE_REWARD_UNLOCKED(g_sConfVssMP.vehicleSetup.eModel)
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
ELIF iTunerIndex != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
// if not unlocked
|
|
IF NOT IS_TUNER_VEHICLE_REWARD_UNLOCKED(g_sConfVssMP.vehicleSetup.eModel)
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
ELIF iFixerIndex != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
// if not unlocked
|
|
IF NOT IS_FIXER_VEHICLE_REWARD_UNLOCKED(g_sConfVssMP.vehicleSetup.eModel)
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
#IF FEATURE_DLC_1_2022
|
|
ELIF iSum2Index != -1
|
|
//1 = used 'Buy it Now' option and had NOT completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//2 = used 'Buy it Now' option and HAD completed the requisite number
|
|
// of Export missions to unlock the related Special Vehicle Mission
|
|
//3 = Purchased at the Securo Serve Discount value
|
|
|
|
// if not unlocked
|
|
IF NOT IS_SUMMER_2022_VEHICLE_REWARD_UNLOCKED(g_sConfVssMP.vehicleSetup.eModel)
|
|
colorHash = 1
|
|
ELSE
|
|
colorHash = 2
|
|
ENDIF
|
|
#ENDIF
|
|
ELIF g_sConfVssMP.vehicleSetup.eModel = RCBANDITO
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_RCBANDITO_OWNED, ENUM_TO_INT(g_sConfVssMP.vehicleSetup.eModel) != 0)
|
|
BROADCAST_PLAYER_RC_BANDITO_PURCHASED(TRUE)
|
|
CPRINTLN(DEBUG_SHOPS, "DO_MP_VEHICLE_BUY: Big Ass Vehicle details: making sure player owns the RC Bandito!")
|
|
#IF FEATURE_CASINO_HEIST
|
|
ELIF g_sConfVssMP.vehicleSetup.eModel = MINITANK
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_RC_TANK_OWNED, ENUM_TO_INT(g_sConfVssMP.vehicleSetup.eModel) != 0)
|
|
SET_PLAYER_PURCHASED_RC_TANK(TRUE)
|
|
CPRINTLN(DEBUG_SHOPS, "DO_MP_VEHICLE_BUY: Big Ass Vehicle details: making sure player owns the RC Tank!")
|
|
#ENDIF
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "NETWORK_BUY_ITEM(", iPrice, ",", ENUM_TO_INT(g_sConfVssMP.vehicleSetup.eModel), ",PURCHASE_VEHICLES,1,fromBank:", fromBank, ",\"", GET_LABEL_BUYABLE_VEHICLE(confSbv), "\",ENUM_TO_INT(basource),0,colorHash:", colorHash, ",fromBankAndWallet:", fromBankAndWallet, ")")
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_SHOPS, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
INT iItemHash = ENUM_TO_INT(g_sConfVssMP.vehicleSetup.eModel)
|
|
|
|
NETWORK_BUY_ITEM(iPrice, iItemHash, PURCHASE_VEHICLES, 1, fromBank, GET_LABEL_BUYABLE_VEHICLE(confSbv), ENUM_TO_INT(basource), 0, colorHash, fromBankAndWallet)
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
ENDIF
|
|
|
|
IF NETWORK_IS_GAME_IN_PROGRESS()
|
|
SET_MP_VEHICLE_PURCHASED_PACKED_STAT_BOOL(g_sConfVssMP.VehicleSetup.eModel)
|
|
|
|
IF WAM_GET_STEAL_MISSION_UNLOCK_COUNT_FROM_VEHICLE_MODEL(g_sConfVssMP.vehicleSetup.eModel) > 0
|
|
GB_SMUGGLER_SETUP_WAM_PURCHASED_FLOW_PHONECALL()
|
|
ENDIF
|
|
|
|
IF (g_sConfVssMP.vehicleSetup.eModel != eDLC_BALLISTIC_EQUIPMENT_MODEL)
|
|
CHECK_LIVE_A_LITTLE_ACHIEVEMENT(g_sConfVssMP.vehicleSetup.eModel, iPrice)
|
|
ENDIF
|
|
|
|
SET_CLOTHING_FOR_VEHICLE_PURCHASE(siteID, confSbv)
|
|
WHILE NOT SET_CHIPS_FOR_VEHICLE_PURCHASE(confSbv, eChipsTransactionState)
|
|
AND DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
eChipsTransactionState = TRANSACTION_STATE_DEFAULT
|
|
|
|
IF (GET_WVM_VEHICLE_INDEX(g_sConfVssMP.vehicleSetup.eModel) != -1)
|
|
AND g_sConfVssMP.vehicleSetup.eModel != TRAILERSMALL2
|
|
IF g_bPurchasedWeaponisedVehicle = FALSE
|
|
PRINTLN("[GUNRUN_CALL] - DO_MP_VEHICLE_BUY - g_bPurchasedWeaponisedVehicle = TRUE, player has purchased a weaponised vehicle")
|
|
g_bPurchasedWeaponisedVehicle = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_SBV_A_VEHICLE_FREE_FOR_CRIMINAL_ENTERPRISE_STARTER_PACK(confSbv)
|
|
SET_PLAYER_PURCHASED_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT(GET_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_FOR_SBV(confSbv))
|
|
ENDIF
|
|
|
|
INT iVehicleSpend = GET_MP_INT_CHARACTER_STAT(MP_STAT_MONEY_SPENT_ON_VEHICLES)
|
|
CONST_INT iCONST_THRESHOLD 1000000 //$1,000,000
|
|
INT iSpendTarget = ((iVehicleSpend/iCONST_THRESHOLD)+1) * iCONST_THRESHOLD
|
|
CPRINTLN(DEBUG_SHOPS, "DO_MP_VEHICLE_BUY: request high vehicle spend ($", iVehicleSpend ," + $", iPrice, ") >= $", iSpendTarget)
|
|
IF (iVehicleSpend+iPrice) >= iSpendTarget
|
|
REQUEST_SYSTEM_ACTIVITY_TYPE_HIGH_VEHICLE_SPEND((iSpendTarget/iCONST_THRESHOLD)+1)
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_MONEY_SPENT_ON_VEHICLES, iVehicleSpend+iPrice)
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY() - vehicle site fail reason \"cannot spend money\"")
|
|
DO_VEHICLE_FAIL_PAGE(siteID, VSFR_NO_MONEY, confSbv, iPrice)
|
|
|
|
DELETE_VEHICLE(vi)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(g_sConfVssMP.VehicleSetup.eModel)
|
|
iLastPurchasedVehicleSlot = confMpSlotIndex
|
|
confMpSlotIndex = -1
|
|
confMPDisplayIndex = -1
|
|
RESET_VEHICLE_SETUP_STRUCT_MP(g_sConfVssMP)
|
|
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
g_MpSavedVehicles[iSlotToUse].iPricePaid = iPrice
|
|
ENDIF
|
|
|
|
IF iPrice = 0
|
|
//CDM: 2013-08-27 set flag on vehicle to indicate it was free so player can't sell it to make money. 1596988
|
|
SET_BIT(g_MpSavedVehicles[iSlotToUse].iVehicleBS ,MP_SAVED_VEHICLE_FREE_VEHICLE)
|
|
ENDIF
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.bAnyMpVehicleBought = TRUE
|
|
bBrowserShoppingSavePending = TRUE
|
|
//note for posterity, the app can only work on an instantiated vehicle - ask kenneth why
|
|
//UPDATE_STORED_MP_SAVED_VEHICLE_DATA_FROM_VEHICLE(vi, TRUE,FALSE)
|
|
//INT iPerVehBS = GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_PLYVEH_BITSET)
|
|
//SET_BIT(iPerVehBS,MP_PERSONAL_VEHICLE_AT_GARAGE)
|
|
//CLEAR_BIT(iPerVehBS,MP_PERSONAL_TAKEN_OUT_OF_GARAGE)
|
|
//SET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_PLYVEH_BITSET, iPerVehBS)
|
|
MP_SAVE_VEHICLE_SLOT_STATS_FROM_SAVEGAME(iSlotToUse,g_MpSavedVehicles[iSlotToUse],FALSE)
|
|
CPRINTLN(DEBUG_INTERNET, "Appinternet: Setting car as owned using UPDATE_STORED_MP_SAVED_VEHICLE_DATA_FROM_VEHICLE")
|
|
|
|
DELETE_VEHICLE(vi)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(g_sConfVssMP.VehicleSetup.eModel)
|
|
iLastPurchasedVehicleSlot = confMpSlotIndex
|
|
confMpSlotIndex = -1
|
|
confMPDisplayIndex = -1
|
|
RESET_VEHICLE_SETUP_STRUCT_MP(g_sConfVssMP)
|
|
RETURN TRUE
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "Appinternet: Couldnt find a free slot to save vehicle")
|
|
|
|
#IF NOT IS_NEXTGEN_BUILD
|
|
DO_VEHICLE_FAIL_PAGE(siteID,VSFR_NO_STORAGE,confSbv, GET_BUYABLE_VEHICLE_PRICE_MP(siteID, confSbv))
|
|
#ENDIF
|
|
#IF IS_NEXTGEN_BUILD
|
|
DO_VEHICLE_FAIL_PAGE(siteID,VSFR_NO_STORAGE,confSbv, GET_BUYABLE_VEHICLE_PRICE_MP(siteID, confSbv, bAltVersion))
|
|
#ENDIF
|
|
|
|
DELETE_VEHICLE(vi)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(g_sConfVssMP.VehicleSetup.eModel)
|
|
iLastPurchasedVehicleSlot = confMpSlotIndex
|
|
confMpSlotIndex = -1
|
|
confMPDisplayIndex = -1
|
|
RESET_VEHICLE_SETUP_STRUCT_MP(g_sConfVssMP)
|
|
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDFUNC
|
|
|
|
PROC UPDATE_VEHICLE_SITES_PAGE_CHANGE(WEBSITE_INDEX_ENUM siteID, INT pageFrom, INT pageTO)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: ",GET_WEBSITE_FROM_INDEX(siteID)," pageFrom: ",pageFrom,", pageTO: ",pageTO)
|
|
// Check if the transition is one we're interested in like index selection or purchase...
|
|
REPLACE_MP_VEH_OR_PROP_MENU scms
|
|
INT mpresult = -1, mpDisplaySlotReturned = -1
|
|
|
|
SITE_BUYABLE_VEHICLE sbv
|
|
COUPON_TYPE eDoCoupon = MAX_COUPONS
|
|
INT iPrice, iSlotToUse
|
|
|
|
//Check if this is the transaction complete webpage
|
|
BOOL bIsPurchase = FALSE
|
|
IF (siteID = WWW_SOUTHERNSANANDREASSUPERAUTOS_COM)
|
|
IF pageTo = 34
|
|
bIsPurchase = TRUE
|
|
ENDIF
|
|
ELIF (siteID = WWW_DOCKTEASE_COM)
|
|
IF pageTo = 12
|
|
OR pageTo = 26
|
|
bIsPurchase = TRUE
|
|
ENDIF
|
|
ELIF (siteID = WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM)
|
|
IF pageTo = 12
|
|
OR pageTo = 60
|
|
OR pageTo = 88
|
|
OR pageTo = 108
|
|
OR pageTo = 145
|
|
bIsPurchase = TRUE
|
|
ENDIF
|
|
ELIF (siteID = WWW_ARENAWAR_TV)
|
|
IF pageTo = 17
|
|
bIsPurchase = TRUE
|
|
ENDIF
|
|
ELIF (siteID <> WWW_SOUTHERNSANANDREASSUPERAUTOS_COM)
|
|
IF pageTo = 12
|
|
bIsPurchase = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF (siteID = WWW_DOCKTEASE_COM)
|
|
sbv = GET_VEHICLE_FROM_SITE_AND_PAGE_ID(siteID, pageFrom)
|
|
|
|
IF (sbv = BV_DLC_BIG_YACHT)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: ",GET_WEBSITE_FROM_INDEX(siteID)," sbv: ",GET_LABEL_BUYABLE_VEHICLE(sbv)," pageFrom: ",pageFrom,", pageTO: ",pageTO,", colpick: ",g_eLastBuyableVehicleColourSelected)
|
|
|
|
CONST_INT iYACHT_D_HOME 19
|
|
CONST_INT iYACHT_D_MODEL 20
|
|
CONST_INT iYACHT_D_FITTINGS 21
|
|
CONST_INT iYACHT_D_COLOUR 22
|
|
CONST_INT iYACHT_D_LIGHTING 23
|
|
CONST_INT iYACHT_D_FLAG 29
|
|
CONST_INT iYACHT_D_PERSONALIZE 24
|
|
CONST_INT iYACHT_D_CHECKOUT 25
|
|
CONST_INT iYACHT_D_PURCHASE 26
|
|
CONST_INT iYACHT_D_PURCHASE_SUCCESS 27
|
|
CONST_INT iYACHT_D_PURCHASE_FAILED 28
|
|
|
|
|
|
SWITCH pageFrom
|
|
CASE iYACHT_D_HOME
|
|
g_eLastBuyableVehicleColourSelected = BCV_NO_COLOUR
|
|
g_sYachtDataStruct.iMod = GET_PACKED_STAT_INT(PACKED_MP_CHAR_YACHT_MOD)
|
|
g_sYachtDataStruct.iFixture = GET_PACKED_STAT_INT(PACKED_MP_CHAR_YACHT_FIXTURE)
|
|
g_sYachtDataStruct.iLighting = GET_PACKED_STAT_INT(PACKED_MP_CHAR_YACHT_LIGHTING)
|
|
g_sYachtDataStruct.iFlag = GET_PACKED_STAT_INT(PACKED_MP_CHAR_YACHT_FLAG)
|
|
g_sYachtDataStruct.iColour = GET_PACKED_STAT_INT(PACKED_MP_CHAR_YACHT_COLOR)
|
|
g_sYachtDataStruct.tl63Name = GET_MP_LONG_STRING_CHARACTER_STAT(MP_STAT_YACHT_NAME, MP_STAT_YACHT_NAME2)
|
|
g_sYachtDataStruct.tl63NewName = ""
|
|
IF IS_STRING_NULL_OR_EMPTY(g_sYachtDataStruct.tl63Name)
|
|
g_sYachtDataStruct.tl63NewName = GET_FILENAME_FOR_AUDIO_CONVERSATION("YACHT_GSY")
|
|
ENDIF
|
|
g_sYachtDataStruct.iYachtNameID = GET_MP_INT_CHARACTER_STAT(MP_STAT_INV_YACHT_NAME_ID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, " - YACHT, Yacht home page iMod:", g_sYachtDataStruct.iMod,
|
|
" iFixture:", g_sYachtDataStruct.iFixture,
|
|
" iLighting:", g_sYachtDataStruct.iLighting,
|
|
" iColour:", g_sYachtDataStruct.iColour,
|
|
" iFlag:", g_sYachtDataStruct.iFlag)
|
|
CPRINTLN(DEBUG_INTERNET, " - YACHT, tl63Name:\"", g_sYachtDataStruct.tl63Name,
|
|
"\", tl63NewName:\"", g_sYachtDataStruct.tl63NewName,
|
|
"\", iYachtNameID:", g_sYachtDataStruct.iYachtNameID)
|
|
BREAK
|
|
CASE iYACHT_D_MODEL
|
|
// IF g_eLastBuyableVehicleColourSelected != BCV_NO_COLOUR
|
|
// g_sYachtDataStruct.iMod = ENUM_TO_INT(g_eLastBuyableVehicleColourSelected)-1
|
|
//
|
|
// // If we already own the yacht then we need to use the lower price items
|
|
// IF IS_BIG_ASS_VEHICLE_BS_SET(GET_BIGASS_VEHICLE_INDICE_BIT_FROM_ENUM(BV_DLC_BIG_YACHT))
|
|
// g_sYachtDataStruct.iMod += NUMBER_OF_PRIVATE_YACHT_VARIATIONS
|
|
// ENDIF
|
|
//
|
|
// CPRINTLN(DEBUG_INTERNET, " - YACHT_D_MODEL changed to ", g_sYachtDataStruct.iMod)
|
|
// ELSE
|
|
CPRINTLN(DEBUG_INTERNET, " - YACHT_D_MODEL unchanged (", g_sYachtDataStruct.iMod, ")")
|
|
// ENDIF
|
|
// g_eLastBuyableVehicleColourSelected = BCV_NO_COLOUR
|
|
BREAK
|
|
CASE iYACHT_D_FITTINGS
|
|
// IF g_eLastBuyableVehicleColourSelected != BCV_NO_COLOUR
|
|
// g_sYachtDataStruct.iFixture = ENUM_TO_INT(g_eLastBuyableVehicleColourSelected)-1
|
|
// CPRINTLN(DEBUG_INTERNET, " - YACHT_D_FITTINGS changed to ", g_sYachtDataStruct.iFixture)
|
|
// ELSE
|
|
CPRINTLN(DEBUG_INTERNET, " - YACHT_D_FITTINGS unchanged (", g_sYachtDataStruct.iFixture, ")")
|
|
// ENDIF
|
|
// g_eLastBuyableVehicleColourSelected = BCV_NO_COLOUR
|
|
BREAK
|
|
CASE iYACHT_D_COLOUR
|
|
// IF g_eLastBuyableVehicleColourSelected != BCV_NO_COLOUR
|
|
// g_sYachtDataStruct.iColour = ENUM_TO_INT(g_eLastBuyableVehicleColourSelected)-1
|
|
// CPRINTLN(DEBUG_INTERNET, " - YACHT_D_COLOUR changed to ", g_sYachtDataStruct.iColour)
|
|
// ELSE
|
|
CPRINTLN(DEBUG_INTERNET, " - YACHT_D_COLOUR unchanged (", g_sYachtDataStruct.iColour, ")")
|
|
// ENDIF
|
|
// g_eLastBuyableVehicleColourSelected = BCV_NO_COLOUR
|
|
BREAK
|
|
CASE iYACHT_D_LIGHTING
|
|
// IF g_eLastBuyableVehicleColourSelected != BCV_NO_COLOUR
|
|
// g_sYachtDataStruct.iLighting = ENUM_TO_INT(g_eLastBuyableVehicleColourSelected)-1
|
|
// CPRINTLN(DEBUG_INTERNET, " - YACHT_D_LIGHTING changed to ", g_sYachtDataStruct.iLighting)
|
|
// ELSE
|
|
CPRINTLN(DEBUG_INTERNET, " - iYACHT_D_LIGHTING unchanged (", g_sYachtDataStruct.iLighting, ")")
|
|
// ENDIF
|
|
// g_eLastBuyableVehicleColourSelected = BCV_NO_COLOUR
|
|
BREAK
|
|
CASE iYACHT_D_PERSONALIZE
|
|
// IF g_eLastBuyableVehicleColourSelected != BCV_NO_COLOUR
|
|
// g_sYachtDataStruct.iFont = ENUM_TO_INT(g_eLastBuyableVehicleColourSelected)-1
|
|
// CPRINTLN(DEBUG_INTERNET, " - iYACHT_D_PERSONALIZE changed to ", g_sYachtDataStruct.iFont)
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, " - iYACHT_D_PERSONALIZE unchanged (", g_sYachtDataStruct.iFont, ")")
|
|
// ENDIF
|
|
// g_eLastBuyableVehicleColourSelected = BCV_NO_COLOUR
|
|
BREAK
|
|
CASE iYACHT_D_FLAG
|
|
// IF g_eLastBuyableVehicleColourSelected != BCV_NO_COLOUR
|
|
// g_sYachtDataStruct.iFlag = GET_YACHT_FLAG_INT_FROM_COLOUR(g_eLastBuyableVehicleColourSelected)
|
|
// CPRINTLN(DEBUG_INTERNET, " - YACHT_D_FLAG col:", GET_STRING_FROM_SITE_BUYABLE_VEHICLE_COLOURS(sbv, g_eLastBuyableVehicleColourSelected),
|
|
// ", id:", g_sYachtDataStruct.iFlag, ", mod:", GET_MODEL_NAME_FOR_DEBUG(MODEL_NAME_FOR_YACHT_FLAG(g_sYachtDataStruct.iFlag)))
|
|
// ELSE
|
|
CPRINTLN(DEBUG_INTERNET, " - YACHT_D_FLAG unchanged (", g_sYachtDataStruct.iFlag, ")")
|
|
// ENDIF
|
|
// g_eLastBuyableVehicleColourSelected = BCV_NO_COLOUR
|
|
BREAK
|
|
CASE iYACHT_D_CHECKOUT
|
|
CPRINTLN(DEBUG_INTERNET, " - YACHT_D_CHECKOUT Page showing the user choices before the purchase page ", g_iLastSelectedWebIndex, ", ", GET_STRING_FROM_SITE_BUYABLE_VEHICLE_COLOURS(sbv, g_eLastBuyableVehicleColourSelected))
|
|
BREAK
|
|
CASE iYACHT_D_PURCHASE
|
|
CPRINTLN(DEBUG_INTERNET, " - YACHT_D_PURCHASE iMod:", g_sYachtDataStruct.iMod, " iFixture:", g_sYachtDataStruct.iFixture, " iLighting:", g_sYachtDataStruct.iLighting, " iColour:", g_sYachtDataStruct.iColour, " iFlag:", g_sYachtDataStruct.iFlag, " tl63Name:\"", g_sYachtDataStruct.tl63Name, "\"")
|
|
BREAK
|
|
CASE iYACHT_D_PURCHASE_SUCCESS
|
|
CPRINTLN(DEBUG_INTERNET, " - YACHT_D_PURCHASE_SUCCESS ", GET_STRING_FROM_SITE_BUYABLE_VEHICLE_COLOURS(sbv, g_eLastBuyableVehicleColourSelected))
|
|
BREAK
|
|
CASE iYACHT_D_PURCHASE_FAILED
|
|
CPRINTLN(DEBUG_INTERNET, " - YACHT_D_PURCHASE_FAILED reason:", lastVehicleFailReason)
|
|
DO_VEHICLE_SITE_FAIL_PAGE_REASON(lastVehicleFailReason)
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CPRINTLN(DEBUG_INTERNET, " - YACHT_D_UNKNOWN_", pageFrom)
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
ElIF (siteID = WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM)
|
|
sbv = GET_VEHICLE_FROM_SITE_AND_PAGE_ID(siteID, pageFrom)
|
|
|
|
IF (sbv = BV_DLC_BIG_TRUCK)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: ",GET_WEBSITE_FROM_INDEX(siteID)," sbv: ",GET_LABEL_BUYABLE_VEHICLE(sbv)," pageFrom: ",pageFrom,", pageTO: ",pageTO,", colpick: ",g_eLastBuyableVehicleColourSelected)
|
|
|
|
CONST_INT iTRUCK_D_CAB 54
|
|
CONST_INT iTRUCK_D_MODULE_D_1 55
|
|
CONST_INT iTRUCK_D_MODULE_D_2 56
|
|
CONST_INT iTRUCK_D_MODULE_D_3 57
|
|
CONST_INT iTRUCK_D_COLOR 58
|
|
CONST_INT iTRUCK_D_SUMMARY 59
|
|
CONST_INT iTRUCK_D_PURCHASE 60
|
|
CONST_INT iTRUCK_D_PURCHASE_SUCCESS 61
|
|
CONST_INT iTRUCK_D_PURCHASE_FAILED 62
|
|
|
|
SWITCH pageFrom
|
|
CASE iTRUCK_D_CAB
|
|
g_eLastBuyableVehicleColourSelected = BCV_NO_COLOUR
|
|
SETUP_TRUCK_GLOBALS_FROM_STATS()
|
|
|
|
CPRINTLN(DEBUG_INTERNET, " - TRUCK, TRUCK home page iCab:", g_sTruckDataStruct.iCab,
|
|
" iSection1:", g_sTruckDataStruct.iSection1,
|
|
" iSection2:", g_sTruckDataStruct.iSection2,
|
|
" iSection3:", g_sTruckDataStruct.iSection3,
|
|
" iColour:", g_sTruckDataStruct.iColour)
|
|
BREAK
|
|
CASE iTRUCK_D_MODULE_D_1
|
|
CPRINTLN(DEBUG_INTERNET, " - TRUCK_D_MODULE_D_1 unchanged (", g_sTruckDataStruct.iCab, ")")
|
|
BREAK
|
|
CASE iTRUCK_D_MODULE_D_2
|
|
CPRINTLN(DEBUG_INTERNET, " - TRUCK_D_MODULE_D_2 unchanged (", g_sTruckDataStruct.iSection1, ")")
|
|
BREAK
|
|
CASE iTRUCK_D_MODULE_D_3
|
|
CPRINTLN(DEBUG_INTERNET, " - TRUCK_D_MODULE_D_3 unchanged (", g_sTruckDataStruct.iSection1, ")")
|
|
BREAK
|
|
CASE iTRUCK_D_COLOR
|
|
CPRINTLN(DEBUG_INTERNET, " - TRUCK_D_COLOR unchanged (", g_sTruckDataStruct.iColour, ")")
|
|
BREAK
|
|
CASE iTRUCK_D_SUMMARY
|
|
CPRINTLN(DEBUG_INTERNET, " - TRUCK_D_SUMMARY Page showing the user choices before the purchase page ", g_iLastSelectedWebIndex, ", ", GET_STRING_FROM_SITE_BUYABLE_VEHICLE_COLOURS(sbv, g_eLastBuyableVehicleColourSelected))
|
|
BREAK
|
|
CASE iTRUCK_D_PURCHASE
|
|
CPRINTLN(DEBUG_INTERNET, " - TRUCK_D_PURCHASE iCab:", g_sTruckDataStruct.iCab, " iSection1:", g_sTruckDataStruct.iSection1, " iSection2:", g_sTruckDataStruct.iSection2, " iSection3:", g_sTruckDataStruct.iSection3, " iColour:", g_sTruckDataStruct.iColour)
|
|
BREAK
|
|
CASE iTRUCK_D_PURCHASE_SUCCESS
|
|
CPRINTLN(DEBUG_INTERNET, " - TRUCK_D_PURCHASE_SUCCESS ", GET_STRING_FROM_SITE_BUYABLE_VEHICLE_COLOURS(sbv, g_eLastBuyableVehicleColourSelected))
|
|
BREAK
|
|
CASE iTRUCK_D_PURCHASE_FAILED
|
|
CPRINTLN(DEBUG_INTERNET, " - TRUCK_D_PURCHASE_FAILED reason:", lastVehicleFailReason)
|
|
DO_VEHICLE_SITE_FAIL_PAGE_REASON(lastVehicleFailReason)
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CPRINTLN(DEBUG_INTERNET, " - TRUCK_D_UNKNOWN_", pageFrom)
|
|
BREAK
|
|
ENDSWITCH
|
|
ELIF (sbv = BV_DLC_BIG_PLANE)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: ",GET_WEBSITE_FROM_INDEX(siteID)," sbv: ",GET_LABEL_BUYABLE_VEHICLE(sbv)," pageFrom: ",pageFrom,", pageTO: ",pageTO,", colpick: ",g_eLastBuyableVehicleColourSelected)
|
|
|
|
CONST_INT iAVENGER_D_INTERIOR 83
|
|
CONST_INT iAVENGER_D_TURRET 84
|
|
CONST_INT iAVENGER_D_VEHICLE_D_WORKSHOP 85
|
|
CONST_INT iAVENGER_D_WEAPON_D_WORKSHOP 86
|
|
CONST_INT iAVENGER_D_SUMMARY 87
|
|
CONST_INT iAVENGER_D_BUY 88
|
|
CONST_INT iAVENGER_D_BUY_D_OK 89
|
|
CONST_INT iAVENGER_D_BUY_D_FAIL 90
|
|
|
|
SWITCH pageFrom
|
|
CASE iAVENGER_D_INTERIOR
|
|
g_eLastBuyableVehicleColourSelected = BCV_NO_COLOUR
|
|
SETUP_PLANE_GLOBALS_FROM_STATS()
|
|
|
|
CPRINTLN(DEBUG_INTERNET, " - iAVENGER_D_INTERIOR home page iGunTurret:", g_sPlaneDataStruct.iGunTurret,
|
|
" iVehShop:", g_sPlaneDataStruct.iVehShop,
|
|
" iWeaShop:", g_sPlaneDataStruct.iWeaShop,
|
|
" iInterior:", g_sPlaneDataStruct.iInterior,
|
|
" iAvenger:", g_sPlaneDataStruct.iAvenger)
|
|
BREAK
|
|
CASE iAVENGER_D_TURRET
|
|
CPRINTLN(DEBUG_INTERNET, " - iAVENGER_D_TURRET unchanged (", g_sPlaneDataStruct.iGunTurret, ")")
|
|
BREAK
|
|
CASE iAVENGER_D_VEHICLE_D_WORKSHOP
|
|
CPRINTLN(DEBUG_INTERNET, " - iAVENGER_D_VEHICLE_D_WORKSHOP unchanged (", g_sPlaneDataStruct.iWeaShop, ")")
|
|
BREAK
|
|
CASE iAVENGER_D_WEAPON_D_WORKSHOP
|
|
CPRINTLN(DEBUG_INTERNET, " - iAVENGER_D_WEAPON_D_WORKSHOP unchanged (", g_sPlaneDataStruct.iInterior, ")")
|
|
BREAK
|
|
CASE iAVENGER_D_SUMMARY
|
|
CPRINTLN(DEBUG_INTERNET, " - iAVENGER_D_SUMMARY Page showing the user choices before the purchase page ", g_iLastSelectedWebIndex, ", ", GET_STRING_FROM_SITE_BUYABLE_VEHICLE_COLOURS(sbv, g_eLastBuyableVehicleColourSelected))
|
|
BREAK
|
|
CASE iAVENGER_D_BUY
|
|
CPRINTLN(DEBUG_INTERNET, " - iAVENGER_D_BUY iGunTurret:", g_sPlaneDataStruct.iGunTurret, " iVehShop:", g_sPlaneDataStruct.iVehShop, " iWeaShop:", g_sPlaneDataStruct.iWeaShop, " iInterior:", g_sPlaneDataStruct.iInterior, " iAvenger:", g_sPlaneDataStruct.iAvenger)
|
|
BREAK
|
|
CASE iAVENGER_D_BUY_D_OK
|
|
CPRINTLN(DEBUG_INTERNET, " - iAVENGER_D_BUY_D_OK ", GET_STRING_FROM_SITE_BUYABLE_VEHICLE_COLOURS(sbv, g_eLastBuyableVehicleColourSelected))
|
|
BREAK
|
|
CASE iAVENGER_D_BUY_D_FAIL
|
|
CPRINTLN(DEBUG_INTERNET, " - iAVENGER_D_BUY_D_FAIL reason:", lastVehicleFailReason)
|
|
DO_VEHICLE_SITE_FAIL_PAGE_REASON(lastVehicleFailReason)
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CPRINTLN(DEBUG_INTERNET, " - PLANE_D_UNKNOWN_", pageFrom)
|
|
BREAK
|
|
ENDSWITCH
|
|
ELIF (sbv = BV_DLC_HACKER_TRUCK)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: ",GET_WEBSITE_FROM_INDEX(siteID)," sbv: ",GET_LABEL_BUYABLE_VEHICLE(sbv)," pageFrom: ",pageFrom,", pageTO: ",pageTO,", colpick: ",g_eLastBuyableVehicleColourSelected)
|
|
|
|
CONST_INT iHACKERTRUCK_D_TINT 101
|
|
CONST_INT iHACKERTRUCK_D_DECAL 102
|
|
CONST_INT iHACKERTRUCK_D_MISSILE_D_LAUNCHER 103
|
|
CONST_INT iHACKERTRUCK_D_DRONE_D_STATION 104
|
|
CONST_INT iHACKERTRUCK_D_WEAPON_D_STATION 105
|
|
CONST_INT iHACKERTRUCK_D_MOTORCYCLE_D_WORKSHOP 106
|
|
CONST_INT iHACKERTRUCK_D_SUMMARY 107
|
|
CONST_INT iHACKERTRUCK_D_BUY 108
|
|
CONST_INT iHACKERTRUCK_D_SOLD 109
|
|
CONST_INT iHACKERTRUCK_D_NOSALE 110
|
|
|
|
SWITCH pageFrom
|
|
CASE iHACKERTRUCK_D_TINT
|
|
g_eLastBuyableVehicleColourSelected = BCV_NO_COLOUR
|
|
SETUP_HACKER_TRUCK_GLOBALS_FROM_STATS()
|
|
|
|
CPRINTLN(DEBUG_INTERNET, " - HACKERTRUCK_D_TINT, hacker truck home page iCab:", g_sHackerTruckDataStruct.iCab,
|
|
" iTint:", g_sHackerTruckDataStruct.iTint)
|
|
BREAK
|
|
CASE iHACKERTRUCK_D_DECAL
|
|
CPRINTLN(DEBUG_INTERNET, " - HACKERTRUCK_D_DECAL unchanged (", g_sHackerTruckDataStruct.iDecal, ")")
|
|
BREAK
|
|
CASE iHACKERTRUCK_D_MISSILE_D_LAUNCHER
|
|
CPRINTLN(DEBUG_INTERNET, " - HACKERTRUCK_D_MISSILE_D_LAUNCHER unchanged (", g_sHackerTruckDataStruct.iMissileLauncher, ")")
|
|
BREAK
|
|
CASE iHACKERTRUCK_D_DRONE_D_STATION
|
|
CPRINTLN(DEBUG_INTERNET, " - HACKERTRUCK_D_DRONE_D_STATION unchanged (", g_sHackerTruckDataStruct.iDroneStation, ")")
|
|
BREAK
|
|
CASE iHACKERTRUCK_D_WEAPON_D_STATION
|
|
CPRINTLN(DEBUG_INTERNET, " - HACKERTRUCK_D_WEAPON_D_STATION unchanged (", g_sHackerTruckDataStruct.iWeaShop, ")")
|
|
BREAK
|
|
CASE iHACKERTRUCK_D_MOTORCYCLE_D_WORKSHOP
|
|
CPRINTLN(DEBUG_INTERNET, " - HACKERTRUCK_D_MOTORCYCLE_D_WORKSHOP unchanged (", g_sHackerTruckDataStruct.iVehShop, ")")
|
|
BREAK
|
|
CASE iHACKERTRUCK_D_SUMMARY
|
|
CPRINTLN(DEBUG_INTERNET, " - HACKERTRUCK_D_SUMMARY Page showing the user choices before the purchase page ", g_iLastSelectedWebIndex, ", ", GET_STRING_FROM_SITE_BUYABLE_VEHICLE_COLOURS(sbv, g_eLastBuyableVehicleColourSelected))
|
|
BREAK
|
|
CASE iHACKERTRUCK_D_BUY
|
|
CPRINTLN(DEBUG_INTERNET, " - HACKERTRUCK_D_BUY iCab:", g_sHackerTruckDataStruct.iCab,
|
|
" iDecal:", g_sHackerTruckDataStruct.iDecal,
|
|
" iColour:", g_sHackerTruckDataStruct.iTint,
|
|
" iMissileLauncher:", g_sHackerTruckDataStruct.iMissileLauncher,
|
|
" iDroneStation:", g_sHackerTruckDataStruct.iDroneStation,
|
|
" iWeaShop:", g_sHackerTruckDataStruct.iWeaShop,
|
|
" iVehShop:", g_sHackerTruckDataStruct.iVehShop)
|
|
BREAK
|
|
CASE iHACKERTRUCK_D_SOLD
|
|
CPRINTLN(DEBUG_INTERNET, " - HACKERTRUCK_D_SOLD ", GET_STRING_FROM_SITE_BUYABLE_VEHICLE_COLOURS(sbv, g_eLastBuyableVehicleColourSelected))
|
|
BREAK
|
|
CASE iHACKERTRUCK_D_NOSALE
|
|
CPRINTLN(DEBUG_INTERNET, " - HACKERTRUCK_D_NOSALE reason:", lastVehicleFailReason)
|
|
DO_VEHICLE_SITE_FAIL_PAGE_REASON(lastVehicleFailReason)
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CPRINTLN(DEBUG_INTERNET, " - TRUCK_1_D_UNKNOWN_", pageFrom)
|
|
BREAK
|
|
ENDSWITCH
|
|
#IF FEATURE_HEIST_ISLAND
|
|
ELIF (sbv = BV_IH_KOSATKA)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: ",GET_WEBSITE_FROM_INDEX(siteID)," sbv: ",GET_LABEL_BUYABLE_VEHICLE(sbv)," pageFrom: ",pageFrom,", pageTO: ",pageTO,", colpick: ",g_eLastBuyableVehicleColourSelected)
|
|
|
|
CONST_INT iSUB_D_COLOR 138
|
|
CONST_INT iSUB_D_FLAG 139
|
|
CONST_INT iSUB_D_SONAR 140
|
|
CONST_INT iSUB_D_MISSILES 141
|
|
CONST_INT iSUB_D_WEAPON_D_WORKSHOP 142
|
|
CONST_INT iSUB_D_VEHICLES 143
|
|
CONST_INT iSUB_D_SUMMARY 144
|
|
CONST_INT iSUB_D_PURCHASE 145
|
|
CONST_INT iSUB_D_PURCHASE_OK 146
|
|
CONST_INT iSUB_D_PURCHASE_FAIL 147
|
|
|
|
SWITCH pageFrom
|
|
CASE iSUB_D_COLOR
|
|
g_eLastBuyableVehicleColourSelected = BCV_NO_COLOUR
|
|
SETUP_KOSATKA_GLOBALS_FROM_STATS()
|
|
|
|
CPRINTLN(DEBUG_INTERNET, " - iSUB_D_COLOR, kosatka home page iOwned:", g_sKosatkaDataStruct.iOwned,
|
|
" iColour:", g_sKosatkaDataStruct.iColour)
|
|
BREAK
|
|
CASE iSUB_D_FLAG
|
|
CPRINTLN(DEBUG_INTERNET, " - iSUB_D_FLAG unchanged (", g_sKosatkaDataStruct.iFlag, ")")
|
|
BREAK
|
|
CASE iSUB_D_SONAR
|
|
CPRINTLN(DEBUG_INTERNET, " - iSUB_D_SONAR unchanged (", g_sKosatkaDataStruct.iSonar, ")")
|
|
BREAK
|
|
CASE iSUB_D_MISSILES
|
|
CPRINTLN(DEBUG_INTERNET, " - iSUB_D_MISSILES unchanged (", g_sKosatkaDataStruct.iMissiles, ")")
|
|
BREAK
|
|
CASE iSUB_D_WEAPON_D_WORKSHOP
|
|
CPRINTLN(DEBUG_INTERNET, " - iSUB_D_WEAPON_D_WORKSHOP unchanged (", g_sKosatkaDataStruct.iWeaShop, ")")
|
|
BREAK
|
|
CASE iSUB_D_VEHICLES
|
|
CPRINTLN(DEBUG_INTERNET, " - iSUB_D_WEAPON_D_VEHICLES unchanged, g_sKosatkaDataStruct.iSeaSparrow2 (", g_sKosatkaDataStruct.iSeaSparrow2, ")")
|
|
CPRINTLN(DEBUG_INTERNET, " - iSUB_D_WEAPON_D_VEHICLES unchanged, g_sKosatkaDataStruct.iAvisa (", g_sKosatkaDataStruct.iAvisa, ")")
|
|
BREAK
|
|
CASE iSUB_D_SUMMARY
|
|
CPRINTLN(DEBUG_INTERNET, " - iSUB_D_SUMMARY Page showing the user choices before the purchase page ", g_iLastSelectedWebIndex, ", ", GET_STRING_FROM_SITE_BUYABLE_VEHICLE_COLOURS(sbv, g_eLastBuyableVehicleColourSelected))
|
|
BREAK
|
|
CASE iSUB_D_PURCHASE
|
|
CPRINTLN(DEBUG_INTERNET, " - iSUB_D_PURCHASE iColour:", g_sKosatkaDataStruct.iColour,
|
|
" iFlag:", g_sKosatkaDataStruct.iFlag,
|
|
" iMissiles:", g_sKosatkaDataStruct.iMissiles,
|
|
" iSonar:", g_sKosatkaDataStruct.iSonar,
|
|
" iWeaShop:", g_sKosatkaDataStruct.iWeaShop,
|
|
" iSeaSparrow2:", g_sKosatkaDataStruct.iSeaSparrow2,
|
|
" iAvisa:", g_sKosatkaDataStruct.iAvisa)
|
|
BREAK
|
|
CASE iSUB_D_PURCHASE_OK
|
|
CPRINTLN(DEBUG_INTERNET, " - iSUB_D_PURCHASE_OK ", GET_STRING_FROM_SITE_BUYABLE_VEHICLE_COLOURS(sbv, g_eLastBuyableVehicleColourSelected))
|
|
BREAK
|
|
CASE iSUB_D_PURCHASE_FAIL
|
|
CPRINTLN(DEBUG_INTERNET, " - iSUB_D_PURCHASE_FAIL reason:", lastVehicleFailReason)
|
|
DO_VEHICLE_SITE_FAIL_PAGE_REASON(lastVehicleFailReason)
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CPRINTLN(DEBUG_INTERNET, " - UNKNOWN", pageFrom)
|
|
BREAK
|
|
ENDSWITCH
|
|
#ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bIsPurchase
|
|
|
|
// Check correct range for a transaction
|
|
// 3 to 33 for SP, multiplayer has more vehicles
|
|
IF (IS_INDEX_VALID_FOR_VEH_SITE(siteID, pageFrom-3))
|
|
OR (pageFrom > 2 AND pageFrom < 34)
|
|
|
|
// Attempt a transaction
|
|
// Is the vehicle valid for that page?
|
|
sbv = GET_VEHICLE_FROM_SITE_AND_PAGE_ID(siteID, pageFrom)
|
|
CPRINTLN(DEBUG_INTERNET, "GET_VEHICLE_FROM_SITE_AND_PAGE_ID(",GET_WEBSITE_FROM_INDEX(siteID), ", pageFrom:", pageFrom,", SBV_", GET_LABEL_BUYABLE_VEHICLE(sbv), ":", sbv, ")")
|
|
|
|
IF !g_bInMultiplayer
|
|
|
|
BOOL iAlternateVeh = IS_SBV_AN_ALTERNATE_VEHICLE(sbv, siteID, g_eLastBuyableVehicleColourSelected)
|
|
|
|
iPrice = GET_BUYABLE_VEHICLE_PRICE_SP(sbv, siteID, iAlternateVeh)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: Price: $", iPrice, " as iAlternateVeh = ", iAlternateVeh)
|
|
|
|
// Is the vehicle already owned for that page?
|
|
IF GET_HAS_VEHICLE_BEEN_BOUGHT_FROM_WEBSITE(sbv, GET_CURRENT_PLAYER_PED_ENUM())
|
|
CPRINTLN(DEBUG_INTERNET, "DO_VEHICLE_FAIL_PAGE: VSFR_ALREADY_OWNED")
|
|
DO_VEHICLE_FAIL_PAGE(siteID, VSFR_ALREADY_OWNED, sbv, iPrice)
|
|
EXIT
|
|
ENDIF
|
|
|
|
// Prevent the player from buying the Marshall if they were given it for free.
|
|
IF sbv = BV_NG_MARSHALL
|
|
AND g_savedGlobals.sCountryRaceData.bMarshallUnlocked
|
|
CPRINTLN(DEBUG_INTERNET, "DO_VEHICLE_FAIL_PAGE: VSFR_ALREADY_OWNED")
|
|
DO_VEHICLE_FAIL_PAGE(siteID, VSFR_ALREADY_OWNED, sbv, iPrice)
|
|
EXIT
|
|
ENDIF
|
|
|
|
// Can the current player afford the vehicle?
|
|
IF iPrice > 0
|
|
AND iPrice > GET_TOTAL_CASH(GET_CURRENT_PLAYER_PED_ENUM())
|
|
CPRINTLN(DEBUG_INTERNET, "DO_VEHICLE_FAIL_PAGE: VSFR_NO_MONEY")
|
|
DO_VEHICLE_FAIL_PAGE(siteID, VSFR_NO_MONEY, sbv, iPrice)
|
|
EXIT
|
|
ENDIF
|
|
|
|
// Does the player have a garage, hangar, etc. to store the vehicle?
|
|
IF NOT GET_SP_CAN_PLAYER_STORE_VEHICLE(sbv)
|
|
CPRINTLN(DEBUG_INTERNET, "DO_VEHICLE_FAIL_PAGE: VSFR_NO_STORAGE")
|
|
DO_VEHICLE_FAIL_PAGE(siteID, VSFR_NO_STORAGE,sbv, iPrice)
|
|
EXIT
|
|
ENDIF
|
|
|
|
//Can the player fit the vehicle into their inventory of vehicles
|
|
IF NOT GET_HAS_DOES_PLAYER_HAVE_SPACE_IN_GARAGE(sbv, GET_CURRENT_PLAYER_PED_ENUM())
|
|
CPRINTLN(DEBUG_INTERNET, "DO_VEHICLE_FAIL_PAGE: VSFR_NO_INV_SPACE")
|
|
DO_VEHICLE_FAIL_PAGE(siteID, VSFR_NO_INV_SPACE, sbv, iPrice)
|
|
EXIT
|
|
ENDIF
|
|
|
|
// Check specific vehicle website
|
|
IF (eDoCoupon = MAX_COUPONS)
|
|
AND (iPrice > 0)
|
|
IF sbv = BV_GO_HERMES
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_CAR_XMAS2017)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: REDEEM_COUPON(COUPON_CAR_XMAS2017)")
|
|
iPrice = 0
|
|
eDoCoupon = COUPON_CAR_XMAS2017
|
|
ENDIF
|
|
ELIF sbv = BV_AW_CLIQUE
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_CAR_XMAS2018)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: REDEEM_COUPON(COUPON_CAR_XMAS2018)")
|
|
iPrice = 0
|
|
eDoCoupon = COUPON_CAR_XMAS2018
|
|
ENDIF
|
|
ELIF sbv = BV_A_BUZZARD
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_HELI_XMAS2018)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: REDEEM_COUPON(COUPON_HELI_XMAS2018)")
|
|
iPrice = 0
|
|
eDoCoupon = COUPON_HELI_XMAS2018
|
|
ENDIF
|
|
ELIF sbv = BV_DLC_INSURGENT
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_CAR2_XMAS2018)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: REDEEM_COUPON(COUPON_CAR2_XMAS2018)")
|
|
iPrice = 0
|
|
eDoCoupon = COUPON_CAR2_XMAS2018
|
|
ENDIF
|
|
#IF FEATURE_GEN9_EXCLUSIVE
|
|
ELIF sbv = BV_G9E_S95
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_CAR_GEN9_MIGRATION)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: REDEEM_COUPON(COUPON_CAR_GEN9_MIGRATION)")
|
|
iPrice = 0
|
|
eDoCoupon = COUPON_CAR_GEN9_MIGRATION
|
|
ENDIF
|
|
#ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF (eDoCoupon = MAX_COUPONS)
|
|
AND (iPrice > 0)
|
|
SWITCH siteID
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_CAR_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: REDEEM_COUPON(COUPON_CAR_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
eDoCoupon = COUPON_CAR_SITE
|
|
ELIF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_CAR_SITE, sbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_CAR_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: REDEEM_COUPON(COUPON_CASINO_CAR_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
eDoCoupon = COUPON_CASINO_CAR_SITE
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_ELITASTRAVEL_COM
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_PLANE_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: REDEEM_COUPON(COUPON_PLANE_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
eDoCoupon = COUPON_PLANE_SITE
|
|
ELIF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_PLANE_SITE, sbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_PLANE_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: REDEEM_COUPON(COUPON_CASINO_PLANE_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
eDoCoupon = COUPON_CASINO_PLANE_SITE
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_MIL_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: REDEEM_COUPON(COUPON_MIL_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
eDoCoupon = COUPON_MIL_SITE
|
|
ELIF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_MIL_SITE, sbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_MIL_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: REDEEM_COUPON(COUPON_CASINO_MIL_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
eDoCoupon = COUPON_CASINO_MIL_SITE
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_DOCKTEASE_COM
|
|
IF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_BOAT_SITE, sbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_BOAT_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: REDEEM_COUPON(COUPON_CASINO_BOAT_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
eDoCoupon = COUPON_CASINO_BOAT_SITE
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
IF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_CAR_SITE2, sbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_CAR_SITE2)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: REDEEM_COUPON(COUPON_CASINO_CAR_SITE2)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
eDoCoupon = COUPON_CASINO_CAR_SITE2
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_PANDMCYCLES_COM
|
|
IF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_BIKE_SITE, sbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_BIKE_SITE)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: REDEEM_COUPON(COUPON_CASINO_BIKE_SITE)")
|
|
iPrice = CEIL(0.90 * (TO_FLOAT(iPrice)))
|
|
eDoCoupon = COUPON_CASINO_BIKE_SITE
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
|
|
IF !(eDoCoupon = MAX_COUPONS)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: REDEEM_COUPON(", eDoCoupon, ")")
|
|
REDEEM_COUPON(eDoCoupon)
|
|
ENDIF
|
|
|
|
// Do the payment
|
|
SWITCH siteID
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: DEBIT_BANK_ACCOUNT(BAAC_MOTORSPORT_SITE)")
|
|
DEBIT_BANK_ACCOUNT(GET_CURRENT_PLAYER_PED_ENUM(), BAAC_MOTORSPORT_SITE, iPrice)
|
|
BREAK
|
|
CASE WWW_ELITASTRAVEL_COM
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: DEBIT_BANK_ACCOUNT(BAAC_PLANE_SITE)")
|
|
DEBIT_BANK_ACCOUNT(GET_CURRENT_PLAYER_PED_ENUM(), BAAC_PLANE_SITE, iPrice)
|
|
BREAK
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: DEBIT_BANK_ACCOUNT(BAAC_ARMY_SITE)")
|
|
DEBIT_BANK_ACCOUNT(GET_CURRENT_PLAYER_PED_ENUM(), BAAC_ARMY_SITE, iPrice)
|
|
BREAK
|
|
CASE WWW_DOCKTEASE_COM
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: DEBIT_BANK_ACCOUNT(BAAC_BOAT_SITE)")
|
|
DEBIT_BANK_ACCOUNT(GET_CURRENT_PLAYER_PED_ENUM(), BAAC_BOAT_SITE, iPrice)
|
|
BREAK
|
|
CASE WWW_PANDMCYCLES_COM
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: DEBIT_BANK_ACCOUNT(BAAC_BIKE_SITE)")
|
|
DEBIT_BANK_ACCOUNT(GET_CURRENT_PLAYER_PED_ENUM(), BAAC_BIKE_SITE, iPrice)
|
|
BREAK
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: DEBIT_BANK_ACCOUNT(BAAC_SUPERAUTO_SITE)")
|
|
DEBIT_BANK_ACCOUNT(GET_CURRENT_PLAYER_PED_ENUM(), BAAC_SUPERAUTO_SITE, iPrice)
|
|
BREAK
|
|
CASE WWW_BENNYSORIGINALMOTORWORKS_COM
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: DEBIT_BANK_ACCOUNT(BAAC_LOWRIDER_SITE)")
|
|
DEBIT_BANK_ACCOUNT(GET_CURRENT_PLAYER_PED_ENUM(), BAAC_LOWRIDER_SITE, iPrice)
|
|
BREAK
|
|
CASE WWW_ARENAWAR_TV
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: DEBIT_BANK_ACCOUNT(BAAC_ARENA_SITE)")
|
|
DEBIT_BANK_ACCOUNT(GET_CURRENT_PLAYER_PED_ENUM(), BAAC_ARENA_SITE, iPrice)
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: invalid siteID ", GET_WEBSITE_FROM_INDEX(siteID))
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
INT iVehicleSpendSP0, iVehicleSpendSP1, iVehicleSpendSP2
|
|
STAT_GET_INT(SP0_SP_MONEY_SPENT_ON_VEHICLES, iVehicleSpendSP0)
|
|
STAT_GET_INT(SP1_SP_MONEY_SPENT_ON_VEHICLES, iVehicleSpendSP1)
|
|
STAT_GET_INT(SP2_SP_MONEY_SPENT_ON_VEHICLES, iVehicleSpendSP2)
|
|
SWITCH GET_CURRENT_PLAYER_PED_ENUM()
|
|
CASE CHAR_MICHAEL STAT_SET_INT(SP0_SP_MONEY_SPENT_ON_VEHICLES, iVehicleSpendSP0+iPrice) BREAK
|
|
CASE CHAR_FRANKLIN STAT_SET_INT(SP1_SP_MONEY_SPENT_ON_VEHICLES, iVehicleSpendSP1+iPrice) BREAK
|
|
CASE CHAR_TREVOR STAT_SET_INT(SP2_SP_MONEY_SPENT_ON_VEHICLES, iVehicleSpendSP2+iPrice) BREAK
|
|
ENDSWITCH
|
|
|
|
PURCHASE_COMPLETE_AUDIO_LINE()
|
|
DO_SP_VEHICLE_BUY(sbv, GET_CURRENT_PLAYER_PED_ENUM(), g_sConfVssMP.VehicleSetup, siteID)
|
|
|
|
GO_TO_WEBSITE(GET_VEHICLE_PURCHASE_SUCCESS_PAGE(siteID, sbv))
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Special"," WEB_NAVIGATION_SOUNDS_PHONE")
|
|
ELSE
|
|
confMpSlotIndex = -1
|
|
iLastPurchasedVehicleSlot = -1
|
|
confMPDisplayIndex = -1
|
|
RESET_VEHICLE_SETUP_STRUCT_MP(g_sConfVssMP)
|
|
BOOL bAltVersion = IS_SBV_AN_ALTERNATE_VEHICLE(sbv, siteID, g_eLastBuyableVehicleColourSelected)
|
|
INT iAltVersion = -1
|
|
IF bAltVersion
|
|
iAltVersion = 1
|
|
ENDIF
|
|
|
|
iPrice = GET_BUYABLE_VEHICLE_PRICE_MP(siteID, sbv, bAltVersion)
|
|
IF IS_BUYABLE_VEHICLE_SUITABLE_FOR_GARAGE(sbv)
|
|
IF NOT DOES_PLAYER_OWN_VEHICLE_STORAGE_FOR_VEHICLE_MODEL(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv, iAltVersion))
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: VSFR_NO_STORAGE ", GET_LABEL_BUYABLE_VEHICLE(sbv), " ")
|
|
|
|
DO_VEHICLE_FAIL_PAGE(siteID,VSFR_NO_STORAGE,sbv, iPrice)
|
|
EXIT
|
|
ENDIF
|
|
|
|
INT iSVMIndex = GET_SVM_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv, iAltVersion))
|
|
IF iSVMIndex != -1
|
|
IF SVM_IS_SPECIAL_VEHICLE_SLOT_OCCUPUED(iSVMIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: Special Vehicle ",
|
|
GET_LABEL_BUYABLE_VEHICLE(sbv), " (index:",
|
|
iSVMIndex, ") is already owned")
|
|
DO_VEHICLE_FAIL_PAGE(siteID,VSFR_ALREADY_OWNED,sbv, iPrice)
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
INT iWVMSlot = GET_WVM_VEHICLE_SLOT(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv, iAltVersion))
|
|
IF iWVMSlot != -1
|
|
IF WVM_IS_SPECIAL_VEHICLE_SLOT_OCCUPUED(iWVMSlot)
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: Weaponized Vehicle ",
|
|
GET_LABEL_BUYABLE_VEHICLE(sbv), " (slot:",
|
|
iWVMSlot, ") is already owned")
|
|
DO_VEHICLE_FAIL_PAGE(siteID,VSFR_ALREADY_OWNED,sbv, iPrice)
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
INT iFDSDisplaySlot = GET_FDS_VEHICLE_DISPLAY_SLOT(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv, iAltVersion))
|
|
IF iFDSDisplaySlot != -1
|
|
INT iSaveSlot = -1
|
|
MPSV_GET_SAVE_SLOT_FROM_DISPLAY_SLOT(iFDSDisplaySlot, iSaveSlot)
|
|
|
|
IF iSaveSlot >= 0
|
|
MODEL_NAMES vehModel = INT_TO_ENUM(MODEL_NAMES,GET_MP_INT_CHARACTER_STAT(GET_INT_STAT_FOR_VEHICLE_SLOT(MPSV_STAT_ELEMENT_MODEL,iSaveSlot)))
|
|
|
|
IF vehModel != DUMMY_MODEL_FOR_SCRIPT
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: Special Vehicle ",
|
|
GET_SAFE_DISPLAY_NAME_FROM_VEHICLE_MODEL(vehModel),
|
|
" (iDisplaySlot:", iFDSDisplaySlot, ", iSaveSlot:", iSaveSlot,
|
|
") is already owned")
|
|
DO_VEHICLE_FAIL_PAGE(siteID,VSFR_ALREADY_OWNED,sbv, iPrice)
|
|
EXIT
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: Special Vehicle ",
|
|
"DUMMY_MODEL_FOR_SCRIPT",
|
|
" (iDisplaySlot:", iFDSDisplaySlot, ", iSaveSlot:", iSaveSlot,
|
|
") is not currently owned")
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: Special Vehicle ",
|
|
GET_LABEL_BUYABLE_VEHICLE(sbv),
|
|
" (iDisplaySlot:", iFDSDisplaySlot, ", iSaveSlot:", iSaveSlot,
|
|
") has unknown save slot")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
ELSE
|
|
//is it already owned?
|
|
INT iBigAssID = GET_BIGASS_VEHICLE_INDICE_BIT_FROM_ENUM(sbv, g_eLastBuyableVehicleColourSelected)
|
|
IF (sbv = BV_DLC_BIG_YACHT)
|
|
INT ydFlag = GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_YACHT_DATA)
|
|
|
|
// Data Index Bit Width Notes
|
|
// Vechicle ID 0 6 18 is used for the Yacht
|
|
// Colour 6 6 Valid range 0 - 63, expected range 0 - 15
|
|
// Lighting 12 6 Valid range 0 - 63, expected range 0 - 11
|
|
// Flag 18 6 Valid range 0 - 63, expected range 0 - 45
|
|
// Model 24 2 Valid range 0 - 3, expected range 0 - 2
|
|
// Fittings 26 2 Valid range 0 - 3, expected range 0 - 1
|
|
g_sYachtDataStruct.iColour = GET_ACTIONSCRIPT_PARAM(ydFlag, 6,6)
|
|
g_sYachtDataStruct.iLighting = GET_ACTIONSCRIPT_PARAM(ydFlag, 12,6)
|
|
g_sYachtDataStruct.iFlag = GET_ACTIONSCRIPT_PARAM(ydFlag, 18,6)
|
|
g_sYachtDataStruct.iMod = GET_ACTIONSCRIPT_PARAM(ydFlag, 24,2)
|
|
g_sYachtDataStruct.iFixture = GET_ACTIONSCRIPT_PARAM(ydFlag, 26,2)
|
|
|
|
IF NOT IS_YACHT_STRUCT_VALID(g_sYachtDataStruct)
|
|
DO_VEHICLE_FAIL_PAGE(siteID,VSFR_NOT_SAFE,sbv, iPrice)
|
|
EXIT
|
|
ENDIF
|
|
|
|
// If we already own the yacht then we need to use the lower price items
|
|
IF IS_BIG_ASS_VEHICLE_BS_SET(iBigAssID)
|
|
g_sYachtDataStruct.iMod += NUMBER_OF_PRIVATE_YACHT_VARIATIONS
|
|
ENDIF
|
|
iPrice = GET_BIG_YACHT_MP_PRICE_MP(IS_BIG_ASS_VEHICLE_BS_SET(iBigAssID),
|
|
g_sYachtDataStruct.iColour, g_sYachtDataStruct.iLighting, g_sYachtDataStruct.iFlag, g_sYachtDataStruct.iMod, g_sYachtDataStruct.iFixture, g_sYachtDataStruct.tl63NewName,
|
|
iYachtColourPrice, iYachtLightingPrice, iYachtFlagPrice, iYachtModPrice, iYachtFixturePrice, iYachtNamePrice)
|
|
ELIF (sbv = BV_DLC_BIG_TRUCK)
|
|
INT ydFlag = GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_TRUCK_DATA)
|
|
|
|
// Data Index Bit Width Notes
|
|
// Cab 0 4 Valid range: 0 - 15, expected values: 0, 1
|
|
// Slot 1 Module 4 4 Valid range: 0 - 15, expected values: 0 - 6 (see Modules table above)
|
|
// Slot 2 Module 8 4 Valid range: 0 - 15, expected values: 0 - 6 (see Modules table above)
|
|
// Slot 3 Module 12 4 Valid range: 0 - 15, expected values: 0 - 6 (see Modules table above)
|
|
// Colour Scheme 16 4 Valid range: 0 - 15, expected values: 0 - 13 (see Colours table above)
|
|
g_sTruckDataStruct.iCab = GET_ACTIONSCRIPT_PARAM(ydFlag,0,4)
|
|
g_sTruckDataStruct.iSection1 = GET_ACTIONSCRIPT_PARAM(ydFlag,4,4)
|
|
g_sTruckDataStruct.iSection2 = GET_ACTIONSCRIPT_PARAM(ydFlag,8,4)
|
|
g_sTruckDataStruct.iSection3 = GET_ACTIONSCRIPT_PARAM(ydFlag,12,4)
|
|
g_sTruckDataStruct.iColour = GET_ACTIONSCRIPT_PARAM(ydFlag,16,4)
|
|
|
|
// IF NOT IS_TRUCK_STRUCT_VALID(g_sTruckDataStruct)
|
|
// DO_VEHICLE_FAIL_PAGE(siteID,VSFR_NOT_SAFE,sbv, iPrice)
|
|
// EXIT
|
|
// ENDIF
|
|
|
|
iPrice = GET_BIG_TRUCK_MP_PRICE_MP(IS_BIG_ASS_VEHICLE_BS_SET(iBigAssID),
|
|
g_sTruckDataStruct.iCab, g_sTruckDataStruct.iSection1, g_sTruckDataStruct.iSection2, g_sTruckDataStruct.iSection3, g_sTruckDataStruct.iColour,
|
|
sTruck_price_struct)
|
|
ELIF (sbv = BV_DLC_BIG_PLANE)
|
|
INT ydFlag = GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_PLANE_DATA)
|
|
|
|
// Data Index Bit Width Notes
|
|
// Gun Turret 0 1 Valid range: 0 - 1, expected values: 0 (not purchased), 1 (purchased)
|
|
// Vehicle Workshop 1 1 Valid range: 0 - 1, expected values: 0 (not purchased), 1 (purchased)
|
|
// Weapon Workshop 2 1 Valid range: 0 - 1, expected values: 0 (not purchased), 1 (purchased)
|
|
// Interior Style 3 4 Valid range: 0 - 15, expected values: 0 - 8
|
|
g_sPlaneDataStruct.iAvenger = ENUM_TO_INT(GET_ARMORY_AIRCRAFT_MODEL())
|
|
g_sPlaneDataStruct.iGunTurret = GET_ACTIONSCRIPT_PARAM(ydFlag,0,1)
|
|
g_sPlaneDataStruct.iVehShop = GET_ACTIONSCRIPT_PARAM(ydFlag,1,1)
|
|
g_sPlaneDataStruct.iWeaShop = GET_ACTIONSCRIPT_PARAM(ydFlag,2,1)
|
|
g_sPlaneDataStruct.iInterior = GET_ACTIONSCRIPT_PARAM(ydFlag,3,4)
|
|
|
|
// IF NOT IS_PLANE_STRUCT_VALID(g_sPlaneDataStruct)
|
|
// DO_VEHICLE_FAIL_PAGE(siteID,VSFR_NOT_SAFE,sbv, iPrice)
|
|
// EXIT
|
|
// ENDIF
|
|
|
|
iPrice = GET_BIG_PLANE_MP_PRICE_MP(IS_BIG_ASS_VEHICLE_BS_SET(iBigAssID),
|
|
g_sPlaneDataStruct.iGunTurret, g_sPlaneDataStruct.iVehShop, g_sPlaneDataStruct.iWeaShop, g_sPlaneDataStruct.iInterior, g_sPlaneDataStruct.iAvenger,
|
|
sPlane_price_struct)
|
|
ELIF (sbv = BV_DLC_HACKER_TRUCK)
|
|
INT ydFlag = GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_PLANE_DATA)
|
|
|
|
// Data Index Bit Width Notes
|
|
// Tint 0 4 Valid range: 0 - 15, expected values: 0 - 8
|
|
// Decal 4 5 Valid range: 0 - 32, expected values: 0 - 24
|
|
// Missile Launcher 9 1 Valid range: 0 - 1, expected values: 0 (not purchased), 1 (purchased)
|
|
// Drone Station 10 1 Valid range: 0 - 1, expected values: 0 (not purchased), 1 (purchased)
|
|
// Weapon Station 11 1 Valid range: 0 - 1, expected values: 0 (not purchased), 1 (purchased)
|
|
// Vehicle Workshop 12 1 Valid range: 0 - 1, expected values: 0 (not purchased), 1 (purchased)
|
|
g_sHackerTruckDataStruct.iCab = ENUM_TO_INT(GET_HACKER_TRUCK_MODEL())
|
|
g_sHackerTruckDataStruct.iTint = GET_ACTIONSCRIPT_PARAM(ydFlag,0,4)
|
|
g_sHackerTruckDataStruct.iDecal = GET_ACTIONSCRIPT_PARAM(ydFlag,4,5)
|
|
g_sHackerTruckDataStruct.iMissileLauncher = GET_ACTIONSCRIPT_PARAM(ydFlag,9,1)
|
|
g_sHackerTruckDataStruct.iDroneStation = GET_ACTIONSCRIPT_PARAM(ydFlag,10,1)
|
|
g_sHackerTruckDataStruct.iWeaShop = GET_ACTIONSCRIPT_PARAM(ydFlag,11,1)
|
|
g_sHackerTruckDataStruct.iVehShop = GET_ACTIONSCRIPT_PARAM(ydFlag,12,1)
|
|
|
|
// IF NOT IS_HACKER_TRUCK_STRUCT_VALID(g_sHackerTruckDataStruct)
|
|
// DO_VEHICLE_FAIL_PAGE(siteID,VSFR_NOT_SAFE,sbv, iPrice)
|
|
// EXIT
|
|
// ENDIF
|
|
|
|
iPrice = GET_HACKER_TRUCK_MP_PRICE_MP(IS_BIG_ASS_VEHICLE_BS_SET(iBigAssID),
|
|
g_sHackerTruckDataStruct, sHacker_truck_price_struct)
|
|
#IF FEATURE_HEIST_ISLAND
|
|
ELIF (sbv = BV_IH_KOSATKA)
|
|
INT ydFlag = GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_PLANE_DATA)
|
|
|
|
//Colour 0 5 Valid range: 0 - 31, expected values: 0 - 15
|
|
//Flag 5 6 Valid range: 0 - 63, expected values: 0 - 49
|
|
//Sonar 11 1 Valid range: 0 - 1, expected values: 0 (not purchased), 1 (purchased)
|
|
//Missiles 12 1 Valid range: 0 - 1, expected values: 0 (not purchased), 1 (purchased)
|
|
//Weapon Workshop 13 1 Valid range: 0 - 1, expected values: 0 (not purchased), 1 (purchased)
|
|
//Helicopter 14 1 Valid range: 0 - 1, expected values: 0 (not purchased), 1 (purchased)
|
|
//Mini Submarine 15 1 Valid range: 0 - 1, expected values: 0 (not purchased), 1 (purchased)
|
|
g_sKosatkaDataStruct.iOwned = ENUM_TO_INT(GET_SUBMARINE_MODEL())
|
|
g_sKosatkaDataStruct.iColour = GET_ACTIONSCRIPT_PARAM(ydFlag,0,5)
|
|
g_sKosatkaDataStruct.iFlag = GET_ACTIONSCRIPT_PARAM(ydFlag,5,6)
|
|
g_sKosatkaDataStruct.iSonar = GET_ACTIONSCRIPT_PARAM(ydFlag,11,1)
|
|
g_sKosatkaDataStruct.iMissiles = GET_ACTIONSCRIPT_PARAM(ydFlag,12,1)
|
|
g_sKosatkaDataStruct.iWeaShop = GET_ACTIONSCRIPT_PARAM(ydFlag,13,1)
|
|
g_sKosatkaDataStruct.iSeaSparrow2 = GET_ACTIONSCRIPT_PARAM(ydFlag,14,1)
|
|
g_sKosatkaDataStruct.iAvisa = GET_ACTIONSCRIPT_PARAM(ydFlag,15,1)
|
|
|
|
iPrice = GET_KOSATKA_PRICE_MP(IS_BIG_ASS_VEHICLE_BS_SET(iBigAssID),
|
|
g_sKosatkaDataStruct, sKosatka_price_struct)
|
|
#ENDIF
|
|
ELSE
|
|
IF IS_BIG_ASS_VEHICLE_BS_SET(iBigAssID)
|
|
CWARNINGLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: failed due to player already owning ", GET_LABEL_BUYABLE_VEHICLE(sbv), " iBigAssID ", iBigAssID)
|
|
DO_VEHICLE_FAIL_PAGE(siteID,VSFR_ALREADY_OWNED,sbv, iPrice)
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF g_bInMultiplayer
|
|
SWITCH siteID
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
CASE WWW_BENNYSORIGINALMOTORWORKS_COM
|
|
CASE WWW_ARENAWAR_TV
|
|
iPrice = CEIL(g_sMPTunables.fCarsWebsiteMultiplier * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE WWW_ELITASTRAVEL_COM
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
IF GET_VEHICLE_STORAGE_TYPE(sbv) = VST_HANGAR
|
|
iPrice = CEIL(g_sMPTunables.fPlanesWebsiteMultiplier * (TO_FLOAT(iPrice)))
|
|
ELSE
|
|
iPrice = CEIL(g_sMPTunables.fHelisWebsiteMultiplier * (TO_FLOAT(iPrice)))
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_DOCKTEASE_COM
|
|
iPrice = CEIL(g_sMPTunables.fBoatsWebsiteMultiplier * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE WWW_PANDMCYCLES_COM
|
|
iPrice = CEIL(g_sMPTunables.fBikesWebsiteMultiplier * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
IF g_smpTunables.bTurn_on_promotional_eyefind_homepage
|
|
CASSERTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: Promotional eyefind homepage discount hooked up, check site \"", GET_WEBSITE_FROM_INDEX(siteID), "\"")
|
|
|
|
SWITCH siteID
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: g_sMPTunables.fLEGENDARY_DISPLAYED_DISCOUNT: ", g_sMPTunables.fLEGENDARY_DISPLAYED_DISCOUNT)
|
|
iPrice = CEIL((100-g_sMPTunables.fLEGENDARY_DISPLAYED_DISCOUNT)/100.0 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE WWW_ELITASTRAVEL_COM
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: g_sMPTunables.fELITAS_DISPLAYED_DISCOUNT: ", g_sMPTunables.fELITAS_DISPLAYED_DISCOUNT)
|
|
iPrice = CEIL((100-g_sMPTunables.fELITAS_DISPLAYED_DISCOUNT)/100.0 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: g_sMPTunables.fSSASA_DISPLAYED_DISCOUNT: ", g_sMPTunables.fSSASA_DISPLAYED_DISCOUNT)
|
|
iPrice = CEIL((100-g_sMPTunables.fSSASA_DISPLAYED_DISCOUNT)/100.0 * (TO_FLOAT(iPrice)))
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
ENDIF
|
|
|
|
COUPON_TYPE eDoCouponPrice = MAX_COUPONS
|
|
INT iCouponPrice = iPrice
|
|
|
|
// Check specific vehicle website
|
|
IF (eDoCouponPrice = MAX_COUPONS)
|
|
IF sbv = BV_GO_HERMES
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_CAR_XMAS2017)
|
|
iCouponPrice = 0
|
|
eDoCouponPrice = COUPON_CAR_XMAS2017
|
|
ENDIF
|
|
ELIF sbv = BV_AW_CLIQUE
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_CAR_XMAS2018)
|
|
iCouponPrice = 0
|
|
eDoCouponPrice = COUPON_CAR_XMAS2018
|
|
|
|
iAltVersion = 1
|
|
CPRINTLN(DEBUG_INTERNET, "UPDATE_VEHICLE_SITES_PAGE_CHANGE: Set BV_AW_CLIQUE iAltVersion to ", iAltVersion)
|
|
ENDIF
|
|
ELIF sbv = BV_A_BUZZARD
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_HELI_XMAS2018)
|
|
iCouponPrice = 0
|
|
eDoCouponPrice = COUPON_HELI_XMAS2018
|
|
ENDIF
|
|
ELIF sbv = BV_DLC_INSURGENT
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_CAR2_XMAS2018)
|
|
iCouponPrice = 0
|
|
eDoCouponPrice = COUPON_CAR2_XMAS2018
|
|
ENDIF
|
|
#IF FEATURE_GEN9_EXCLUSIVE
|
|
ELIF sbv = BV_G9E_S95
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_CAR_GEN9_MIGRATION)
|
|
iCouponPrice = 0
|
|
eDoCouponPrice = COUPON_CAR_GEN9_MIGRATION
|
|
ENDIF
|
|
#ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF (eDoCouponPrice = MAX_COUPONS)
|
|
SWITCH siteID
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_CAR_SITE)
|
|
iCouponPrice = CEIL(0.90 * (TO_FLOAT(iCouponPrice)))
|
|
eDoCouponPrice = COUPON_CAR_SITE
|
|
ELIF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_CAR_SITE, sbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_CAR_SITE)
|
|
iCouponPrice = CEIL(0.90 * (TO_FLOAT(iCouponPrice)))
|
|
eDoCouponPrice = COUPON_CASINO_CAR_SITE
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_ELITASTRAVEL_COM
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_PLANE_SITE)
|
|
iCouponPrice = CEIL(0.90 * (TO_FLOAT(iCouponPrice)))
|
|
eDoCouponPrice = COUPON_PLANE_SITE
|
|
ELIF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_PLANE_SITE, sbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_PLANE_SITE)
|
|
iCouponPrice = CEIL(0.90 * (TO_FLOAT(iCouponPrice)))
|
|
eDoCouponPrice = COUPON_CASINO_PLANE_SITE
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
IF DOES_SAVE_HAVE_COUPON(COUPON_MIL_SITE)
|
|
iCouponPrice = CEIL(0.90 * (TO_FLOAT(iCouponPrice)))
|
|
eDoCouponPrice = COUPON_MIL_SITE
|
|
ELIF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_MIL_SITE, sbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_MIL_SITE)
|
|
iCouponPrice = CEIL(0.90 * (TO_FLOAT(iCouponPrice)))
|
|
eDoCouponPrice = COUPON_CASINO_MIL_SITE
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_DOCKTEASE_COM
|
|
IF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_BOAT_SITE, sbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_BOAT_SITE)
|
|
iCouponPrice = CEIL(0.90 * (TO_FLOAT(iCouponPrice)))
|
|
eDoCouponPrice = COUPON_CASINO_BOAT_SITE
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
IF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_CAR_SITE2, sbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_CAR_SITE2)
|
|
iCouponPrice = CEIL(0.90 * (TO_FLOAT(iCouponPrice)))
|
|
eDoCouponPrice = COUPON_CASINO_CAR_SITE2
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_PANDMCYCLES_COM
|
|
IF CAN_USE_COUPON_ON_VEHICLE(COUPON_CASINO_BIKE_SITE, sbv)
|
|
AND DOES_SAVE_HAVE_COUPON(COUPON_CASINO_BIKE_SITE)
|
|
iCouponPrice = CEIL(0.90 * (TO_FLOAT(iCouponPrice)))
|
|
eDoCouponPrice = COUPON_CASINO_BIKE_SITE
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "iPrice[$", iPrice, ", $", iCouponPrice, "], NETWORK_GET_VC_BANK_BALANCE(", NETWORK_GET_VC_BANK_BALANCE(), "), NETWORK_GET_VC_WALLET_BALANCE(", NETWORK_GET_VC_WALLET_BALANCE(), ")")
|
|
|
|
IF iCouponPrice > 0
|
|
AND NOT NETWORK_CAN_SPEND_MONEY(iCouponPrice, FALSE, TRUE, FALSE)
|
|
CPRINTLN(DEBUG_INTERNET, "NETWORK_CAN_SPEND_MONEY() - vehicle site fail reason \"cannot spend money\" ", GET_LABEL_BUYABLE_VEHICLE(sbv), " $", iPrice)
|
|
DO_VEHICLE_FAIL_PAGE(siteID, VSFR_NO_MONEY, sbv, iCouponPrice)
|
|
EXIT
|
|
ENDIF
|
|
|
|
//#1697899
|
|
IF IS_SAVING_HAVING_TROUBLE()
|
|
CPRINTLN(DEBUG_INTERNET, "IS_SAVING_HAVING_TROUBLE() - vehicle site fail reason \"not safe\"")
|
|
DO_VEHICLE_FAIL_PAGE(siteID, VSFR_NOT_SAFE, sbv, iPrice)
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF NOT IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv, iAltVersion))
|
|
CPRINTLN(DEBUG_INTERNET, "IS_SAVING_HAVING_TROUBLE() - vehicle site fail reason \"not safe\" past current time")
|
|
DO_VEHICLE_FAIL_PAGE(siteID, VSFR_NOT_SAFE, sbv, iPrice)
|
|
EXIT
|
|
ENDIF
|
|
|
|
confSbv = sbv
|
|
CONFIGURE_STRUCT_FOR_BUYABLE_VEHICLE(confSbv, g_sConfVssMP, TRUE, DEFAULT, iAltVersion, siteID)
|
|
|
|
IF NOT IS_BUYABLE_VEHICLE_SUITABLE_FOR_GARAGE(sbv)
|
|
// It is a bigass vehicle, try to buy it
|
|
VEHICLE_SITE_FAIL_REASON reason = VSFR_UNSET
|
|
IF NOT DO_BIGASS_VEHICLE_BUY(siteID,sbv,iPrice, reason)
|
|
DO_VEHICLE_FAIL_PAGE(siteID,reason,sbv,iPrice)
|
|
ELSE
|
|
// Send the bigass confirmation vehicle conftext
|
|
IF lastVehicleFailReason != VSFR_ALREADY_OWNED
|
|
AND lastVehicleFailReason != VSFR_BIGASS_NOT_UNLOCKED
|
|
SEND_MP_VEHICLE_CONFIRMATION_TEXT(sbv,BCV_NO_COLOUR,siteID,-1,-1)
|
|
ENDIF
|
|
|
|
//set the damn bit
|
|
SET_BIG_ASS_VEHICLE_BS(GET_BIGASS_VEHICLE_INDICE_BIT_FROM_ENUM(sbv, g_eLastBuyableVehicleColourSelected))
|
|
GB_SET_SHOULD_REFRESH_OWNED_ABILITY_VEHICLES()
|
|
|
|
IF lastVehicleFailReason != VSFR_ALREADY_OWNED
|
|
AND lastVehicleFailReason != VSFR_BIGASS_NOT_UNLOCKED
|
|
MP_BIG_ASS_VEHICLES_STORE_DATA_IN_STATS()
|
|
REQUEST_SAVE(SSR_REASON_PURCHASE_VEHICLE, STAT_SAVETYPE_IMMEDIATE_FLUSH)
|
|
ENDIF
|
|
|
|
// Auto close browser if we want to
|
|
IF SHOULD_BROWSER_CLOSE_AFTER_SUCCESSFUL_BIGASS_VEHICLE_BUY(siteID, sbv)
|
|
AND NOT bPreviousPegasus // And not renovating vehicle
|
|
CPRINTLN(DEBUG_INTERNET, "[UPDATE_VEHICLE_SITES_PAGE_CHANGE] Auto closing browser after successful purchase.")
|
|
CLOSE_BROWSER_AFTER_SUCCESSFUL_PURCHASE()
|
|
ENDIF
|
|
ENDIF
|
|
EXIT
|
|
ENDIF
|
|
|
|
//if there are no saved models go ahead and do the buy
|
|
INT iSVMIndex = GET_SVM_VEHICLE_INDEX(g_sConfVssMP.VehicleSetup.eModel)
|
|
INT iWVMSlot = GET_WVM_VEHICLE_SLOT(g_sConfVssMP.VehicleSetup.eModel)
|
|
INT iWAMIndex = WAM_GET_STEAL_MISSION_UNLOCK_COUNT_FROM_VEHICLE_MODEL(g_sConfVssMP.vehicleSetup.eModel)
|
|
INT iFDSDisplaySlot = GET_FDS_VEHICLE_DISPLAY_SLOT(g_sConfVssMP.VehicleSetup.eModel)
|
|
IF iSVMIndex != -1
|
|
iSlotToUse = MP_SAVE_VEHICLE_GET_EMPTY_SAVE_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,g_sConfVssMP.VehicleSetup.eModel,GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_IE_WAREHOUSE))
|
|
mpDisplaySlotReturned = iSVMIndex+GET_PROPERTY_SLOT_DISPLAY_START_INDEX(PROPERTY_OWNED_SLOT_IE_WAREHOUSE)
|
|
|
|
confMPDisplayIndex = mpDisplaySlotReturned
|
|
ELIF iWVMSlot != -1
|
|
iSlotToUse = MP_SAVE_VEHICLE_GET_EMPTY_SAVE_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,g_sConfVssMP.VehicleSetup.eModel,DEFAULT)
|
|
mpDisplaySlotReturned = iWVMSlot+DISPLAY_SLOT_AA_TRAILER
|
|
confMPDisplayIndex = mpDisplaySlotReturned
|
|
ELIF iWAMIndex > 0
|
|
iSlotToUse = MP_SAVE_VEHICLE_GET_EMPTY_SAVE_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,g_sConfVssMP.VehicleSetup.eModel,DEFAULT)
|
|
//MP_SAVE_VEHICLE_GET_SUITABLE_HANGAR_SLOT(mpDisplaySlotReturned, iSlotToUse, g_sConfVssMP.VehicleSetup.eModel, TRUE)
|
|
|
|
IF iSlotToUse != -1
|
|
//AND mpDisplaySlotReturned = -1
|
|
mpDisplaySlotReturned = MP_SAVE_VEHICLE_GET_EMPTY_DISPLAY_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,g_sConfVssMP.VehicleSetup.eModel,GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_HANGAR))
|
|
ENDIF
|
|
confMPDisplayIndex = mpDisplaySlotReturned
|
|
ELIF iFDSDisplaySlot != -1
|
|
iSlotToUse = MP_SAVE_VEHICLE_GET_EMPTY_SAVE_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,g_sConfVssMP.VehicleSetup.eModel,GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_DEFUNCBASE))
|
|
mpDisplaySlotReturned = GET_FDS_VEHICLE_DISPLAY_SLOT(g_sConfVssMP.VehicleSetup.eModel)
|
|
|
|
confMPDisplayIndex = mpDisplaySlotReturned
|
|
ELSE
|
|
INT iOnlySuitableProperty = -1
|
|
CHECK_ONLY_ONE_SUITABLE_PROPERTY(g_sConfVssMP.VehicleSetup.eModel,iOnlySuitableProperty)
|
|
IF iOnlySuitableProperty != -1
|
|
iSlotToUse = MP_SAVE_VEHICLE_GET_EMPTY_SAVE_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,g_sConfVssMP.VehicleSetup.eModel,iOnlySuitableProperty)
|
|
mpDisplaySlotReturned = MP_SAVE_VEHICLE_GET_EMPTY_DISPLAY_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,g_sConfVssMP.VehicleSetup.eModel,iOnlySuitableProperty)
|
|
ELSE
|
|
iSlotToUse = -1
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iSlotToUse = -1
|
|
OR mpDisplaySlotReturned = -1
|
|
g_sMenuData.bKeepPhoneForNextDrawMenuCall = TRUE
|
|
mpDisplaySlotReturned = -1
|
|
WHILE !HANDLE_REPLACE_MP_SV_MENU(scms,mpresult,mpDisplaySlotReturned, g_sConfVssMP.VehicleSetup.eModel)
|
|
AND DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
AND !DO_CHECK_FOR_RAGDOLL_OR_DEAD()
|
|
//RENDER_BROWSER()
|
|
DISABLE_SELECTOR_THIS_FRAME()
|
|
DISABLE_CELLPHONE_THIS_FRAME_ONLY()
|
|
WAIT(0)
|
|
g_sMenuData.bKeepPhoneForNextDrawMenuCall = TRUE
|
|
ENDWHILE
|
|
g_sMenuData.bKeepPhoneForNextDrawMenuCall = FALSE
|
|
confMpSlotIndex = mpresult
|
|
confMPDisplayIndex = mpDisplaySlotReturned
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Menu result was ",confMpSlotIndex, ", ", confMPDisplayIndex)
|
|
|
|
//reload the damn buttons
|
|
PREP_BROWSER_BUTTONS(FALSE)
|
|
|
|
IF mpresult = -1
|
|
OR mpDisplaySlotReturned = -1
|
|
//canceled the buy process
|
|
DO_VEHICLE_FAIL_PAGE(siteID,VSFR_CANCELED,sbv, iPrice)
|
|
EXIT
|
|
ENDIF
|
|
ELSE
|
|
confMpSlotIndex = iSlotToUse
|
|
ENDIF
|
|
|
|
confCheck = TRUE
|
|
|
|
IF DO_MP_VEHICLE_BUY(siteID,iAltVersion,iPrice)
|
|
SEND_MP_VEHICLE_CONFIRMATION_TEXT(sbv, g_eLastBuyableVehicleColourSelected, siteID, mpDisplaySlotReturned, iLastPurchasedVehicleSlot)
|
|
//REQUEST_SAVE(STAT_SAVETYPE_SCRIPT_MP_GLOBALS)
|
|
ELSE
|
|
DO_VEHICLE_FAIL_PAGE(siteID, VSFR_NOT_SAFE, sbv, iPrice)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "GET_VEHICLE_FROM_SITE_AND_PAGE_ID(",GET_WEBSITE_FROM_INDEX(siteID), ", pageFrom:", pageFrom,", SBV_", GET_LABEL_BUYABLE_VEHICLE(sbv), ":", sbv, ") - INVALID???")
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC HANDLE_BLEETER_SELECT(SCALEFORM_INDEX pagemov)
|
|
|
|
INT iTemp
|
|
|
|
IF g_iLastSelectedWebIndex < 1
|
|
EXIT
|
|
ENDIF
|
|
|
|
INT iPrevBleetPageNo
|
|
|
|
IF g_iLastSelectedWebIndex = 1
|
|
iCurrentBleetPageNumber = 1
|
|
|
|
ELIF g_iLastSelectedWebIndex = 2
|
|
iCurrentBleetPageNumber = BLEETER_GET_LAST_PAGE_NUMBER()
|
|
|
|
ELIF g_iLastSelectedWebIndex = 3
|
|
-- iCurrentBleetPageNumber
|
|
|
|
ELIF g_iLastSelectedWebIndex = 4
|
|
++ iCurrentBleetPageNumber
|
|
ELSE
|
|
IF g_iLastSelectedWebIndex > 4 and g_iLastSelectedWebIndex < 15
|
|
|
|
IF iCurrentBleetPageNumber > 10
|
|
iTemp = (((iCurrentBleetPageNumber - 1) / 10) * 10)
|
|
iCurrentBleetPageNumber = (g_iLastSelectedWebIndex - 4) + iTemp
|
|
ELSE
|
|
iCurrentBleetPageNumber = (g_iLastSelectedWebIndex - 4)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iPrevBleetPageNo != iCurrentBleetPageNumber
|
|
BLEETER_UPDATE_BLEETS( pagemov )
|
|
BLEETER_ADD_PAGE_TO_HISTORY(iCurrentBleetPageNumber)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Check player's donation on the Epsilon website unlocking the RC flowflags
|
|
PROC CHECK_EPSILON_DONATION_UNLOCKS(INT iDonation)
|
|
|
|
// Increase saved global
|
|
IF (g_savedGlobals.sRandomChars.g_iCurrentEpsilonPayment < 1000000)
|
|
g_savedGlobals.sRandomChars.g_iCurrentEpsilonPayment += iDonation
|
|
CPRINTLN(DEBUG_RANDOM_CHAR, "Current donation to Epsilon Program is = $", g_savedGlobals.sRandomChars.g_iCurrentEpsilonPayment)
|
|
ENDIF
|
|
|
|
// $10000
|
|
IF IS_THIS_RANDOM_CHARACTER_MISSION_COMPLETED(RC_EPSILON_4)
|
|
IF NOT GET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_EPSILON_DONATED_10000)
|
|
IF g_savedGlobals.sRandomChars.g_iCurrentEpsilonPayment >= 10000
|
|
CPRINTLN(DEBUG_RANDOM_CHAR, "FLOWFLAG_EPSILON_DONATED_10000")
|
|
//Set epsilon step stat
|
|
INT iCurrent
|
|
STAT_GET_INT(NUM_EPSILON_STEP,iCurrent)
|
|
IF iCurrent < 13
|
|
STAT_SET_INT(NUM_EPSILON_STEP,13)
|
|
SET_ACHIEVEMENT_PROGRESS_SAFE(ENUM_TO_INT(ACH20),13)
|
|
CPRINTLN(debug_dan,"Epsilon progress:",13)
|
|
ENDIF
|
|
|
|
SET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_EPSILON_DONATED_10000, TRUE)
|
|
CANCEL_COMMUNICATION(EMAIL_EPSILON4_DONATE)
|
|
MAKE_AUTOSAVE_REQUEST()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// $5000
|
|
ELIF IS_THIS_RANDOM_CHARACTER_MISSION_COMPLETED(RC_EPSILON_2)
|
|
IF NOT GET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_EPSILON_DONATED_5000)
|
|
IF g_savedGlobals.sRandomChars.g_iCurrentEpsilonPayment >= 5000
|
|
CPRINTLN(DEBUG_RANDOM_CHAR, "FLOWFLAG_EPSILON_DONATED_5000")
|
|
//Set epsilon step stat
|
|
INT iCurrent
|
|
STAT_GET_INT(NUM_EPSILON_STEP,iCurrent)
|
|
IF iCurrent < 5
|
|
STAT_SET_INT(NUM_EPSILON_STEP,5)
|
|
SET_ACHIEVEMENT_PROGRESS_SAFE(ENUM_TO_INT(ACH20),5)
|
|
CPRINTLN(debug_dan,"Epsilon progress:",5)
|
|
ENDIF
|
|
|
|
SET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_EPSILON_DONATED_5000, TRUE)
|
|
CANCEL_COMMUNICATION(EMAIL_EPSILON2_DONATE)
|
|
MAKE_AUTOSAVE_REQUEST()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// $500
|
|
ELIF IS_THIS_RANDOM_CHARACTER_MISSION_COMPLETED(RC_EPSILON_1)
|
|
IF NOT GET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_EPSILON_DONATED_500)
|
|
IF g_savedGlobals.sRandomChars.g_iCurrentEpsilonPayment >= 500
|
|
CPRINTLN(DEBUG_RANDOM_CHAR, "FLOWFLAG_EPSILON_DONATED_500")
|
|
//Set epsilon step stat
|
|
INT iCurrent
|
|
STAT_GET_INT(NUM_EPSILON_STEP,iCurrent)
|
|
IF iCurrent < 3
|
|
STAT_SET_INT(NUM_EPSILON_STEP,3)
|
|
SET_ACHIEVEMENT_PROGRESS_SAFE(ENUM_TO_INT(ACH20),3)
|
|
CPRINTLN(debug_dan,"Epsilon progress:",3)
|
|
ENDIF
|
|
|
|
SET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_EPSILON_DONATED_500, TRUE)
|
|
CANCEL_COMMUNICATION(EMAIL_EPSILON1_DONATE)
|
|
MAKE_AUTOSAVE_REQUEST()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC HANDLE_EPSILON_SELECT(INT iSelection)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "HANDLE_EPSILON_SELECT(iSelection:", iSelection, ", g_iWebPageIndexFeedback:", g_iWebPageIndexFeedback, ")")
|
|
|
|
//5 20 : Selection 2 // $500
|
|
//5 20 : Selection 3 // $5000
|
|
//5 21 : Selection 1 // $25k - Robes
|
|
SWITCH g_iWebPageIndexFeedback
|
|
|
|
CASE 20
|
|
|
|
SWITCH iSelection
|
|
|
|
CASE 2
|
|
CPRINTLN(DEBUG_RANDOM_CHAR, "Attempting to donate $500 to Epsilon Program")
|
|
|
|
IF GET_TOTAL_CASH(CHAR_MICHAEL) < 500
|
|
CPRINTLN(DEBUG_RANDOM_CHAR, "Not enough money to donate...")
|
|
SF_EPSILON_FAIL(EPSILON_NO_MONEY)
|
|
EXIT
|
|
ENDIF
|
|
|
|
// Debit account by $500
|
|
DO_BANK_ACCOUNT_ACTION(BANK_ACCOUNT_MICHAEL, BAA_DEBIT, BAAC_EPSILON_SITE_DONATION, 500)
|
|
|
|
// Update donation unlocks
|
|
CHECK_EPSILON_DONATION_UNLOCKS(500)
|
|
BREAK
|
|
|
|
CASE 3
|
|
CPRINTLN(DEBUG_RANDOM_CHAR, "Attempting to donate $5000 to Epsilon Program")
|
|
|
|
IF GET_TOTAL_CASH(CHAR_MICHAEL) < 5000
|
|
CPRINTLN(DEBUG_RANDOM_CHAR, "Not enough money to donate...")
|
|
SF_EPSILON_FAIL(EPSILON_NO_MONEY)
|
|
EXIT
|
|
ENDIF
|
|
|
|
// Debit account by $5000
|
|
DO_BANK_ACCOUNT_ACTION(BANK_ACCOUNT_MICHAEL, BAA_DEBIT, BAAC_EPSILON_SITE_DONATION, 5000)
|
|
|
|
// Update donation unlocks
|
|
CHECK_EPSILON_DONATION_UNLOCKS(5000)
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE 21
|
|
IF iSelection = 1
|
|
CPRINTLN(DEBUG_RANDOM_CHAR, "Robes buy triggered, 25k")
|
|
|
|
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("epsrobes")) < 1
|
|
CPRINTLN(DEBUG_RANDOM_CHAR, "Robes buy failed since epsrobes wasn't running")
|
|
SF_EPSILON_FAIL(EPSILON_OUT_OF_STOCK)
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF GET_TOTAL_CASH(CHAR_MICHAEL) < 25000
|
|
SF_EPSILON_FAIL(EPSILON_NO_MONEY)
|
|
EXIT
|
|
ENDIF
|
|
|
|
DO_BANK_ACCOUNT_ACTION(BANK_ACCOUNT_MICHAEL,BAA_DEBIT,BAAC_EPSILON_ROBES_DONATION, 25000)
|
|
IF !GET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_EPSILON_ROBES_BOUGHT)
|
|
Set_Mission_Flow_Flag_State(FLOWFLAG_EPSILON_ROBES_BOUGHT, TRUE)
|
|
//Set epsilon step stat
|
|
INT iCurrent
|
|
STAT_GET_INT(NUM_EPSILON_STEP,iCurrent)
|
|
IF iCurrent < 15
|
|
STAT_SET_INT(NUM_EPSILON_STEP,15)
|
|
SET_ACHIEVEMENT_PROGRESS_SAFE(ENUM_TO_INT(ACH20),15)
|
|
CPRINTLN(debug_dan,"Epsilon progress:",15)
|
|
ENDIF
|
|
|
|
PURCHASE_COMPLETE_AUDIO_LINE()
|
|
MAKE_AUTOSAVE_REQUEST()
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
PROC MARK_ROBE_PAGE_VISITED()
|
|
|
|
IF g_iWebPageIndexFeedback = 1
|
|
|
|
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("epsrobes")) < 1
|
|
CPRINTLN(DEBUG_AMBIENT, "Don't mark Eps robe page visited because Eps Robes isn't running")
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF GET_CURRENT_PLAYER_PED_ENUM() != CHAR_MICHAEL
|
|
CPRINTLN(DEBUG_AMBIENT, "Don't mark Eps robe page visited because player isn't Michael")
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF g_bMikeVisitedCultRobePage != TRUE
|
|
CPRINTLN(DEBUG_AMBIENT, "Mike visited Robe page marked true...")
|
|
g_bMikeVisitedCultRobePage = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
FUNC BOOL BOUGHT_CON_SITE()
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BOUGHT_CON_SITE: Checked")
|
|
SWITCH GET_CURRENT_PLAYER_PED_ENUM()
|
|
|
|
CASE CHAR_MICHAEL
|
|
IF GET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_MIKE_CON_BOUGHT)
|
|
RETURN TRUE
|
|
ELSE
|
|
RETURN FALSE
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE CHAR_TREVOR
|
|
IF GET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_TREV_CON_BOUGHT)
|
|
RETURN TRUE
|
|
ELSE
|
|
RETURN FALSE
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE CHAR_FRANKLIN
|
|
IF GET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_FRANK_CON_BOUGHT)
|
|
RETURN TRUE
|
|
ELSE
|
|
RETURN FALSE
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
RETURN TRUE // Assume MP char has bought it already
|
|
ENDFUNC
|
|
|
|
FUNC BOOL BUY_CON_SITE()
|
|
|
|
IF BOUGHT_CON_SITE()
|
|
CPRINTLN(DEBUG_INTERNET, "BOUGHT_CON_SITE: Already bought")
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
SWITCH GET_CURRENT_PLAYER_PED_ENUM()
|
|
|
|
CASE CHAR_MICHAEL
|
|
|
|
IF GET_TOTAL_CASH(CHAR_MICHAEL) < 10000
|
|
RETURN FALSE
|
|
ELSE
|
|
SET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_MIKE_CON_BOUGHT, TRUE)
|
|
PURCHASE_COMPLETE_AUDIO_LINE()
|
|
DO_BANK_ACCOUNT_ACTION(BANK_ACCOUNT_MICHAEL,BAA_DEBIT, BAAC_CONSITE, 10000, TRUE)
|
|
CPRINTLN(DEBUG_INTERNET, "BOUGHT_CON_SITE: Transaction BANK_ACCOUNT_MICHAEL")
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE CHAR_TREVOR
|
|
IF GET_TOTAL_CASH(CHAR_TREVOR) < 10000
|
|
RETURN FALSE
|
|
ELSE
|
|
SET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_TREV_CON_BOUGHT, TRUE)
|
|
PURCHASE_COMPLETE_AUDIO_LINE()
|
|
DO_BANK_ACCOUNT_ACTION(BANK_ACCOUNT_TREVOR, BAA_DEBIT, BAAC_CONSITE, 10000, TRUE)
|
|
CPRINTLN(DEBUG_INTERNET, "BOUGHT_CON_SITE: Transaction BANK_ACCOUNT_TREVOR")
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE CHAR_FRANKLIN
|
|
IF GET_TOTAL_CASH(CHAR_FRANKLIN) < 10000
|
|
RETURN FALSE
|
|
ELSE
|
|
SET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_FRANK_CON_BOUGHT, TRUE)
|
|
PURCHASE_COMPLETE_AUDIO_LINE()
|
|
DO_BANK_ACCOUNT_ACTION(BANK_ACCOUNT_FRANKLIN, BAA_DEBIT, BAAC_CONSITE,10000,TRUE)
|
|
CPRINTLN(DEBUG_INTERNET, "BOUGHT_CON_SITE: Transaction BANK_ACCOUNT_FRANKLIN")
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
MAKE_AUTOSAVE_REQUEST()
|
|
CPRINTLN(DEBUG_INTERNET, "BOUGHT_CON_SITE: Transaction complete")
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
PROC SET_INTERIOR_STAT_FOR_CUSTOM_APT(INT iResultSlot, INT &iInteriorVariation)
|
|
|
|
IF iInteriorVariation = -1
|
|
//Deal with case in which the default option was selected
|
|
iInteriorVariation = 1
|
|
CDEBUG1LN(DEBUG_INTERNET, "SET_INTERIOR_STAT_FOR_CUSTOM_APT: iInteriorVariation: ", iInteriorVariation)
|
|
ENDIF
|
|
|
|
IF iResultSlot = 0
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_APPARTMENT_VAR_0, iInteriorVariation)
|
|
CPRINTLN(DEBUG_INTERNET, "SET_INTERIOR_STAT_FOR_CUSTOM_APT: Setting stat for specified \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iInteriorVariation:", iInteriorVariation)
|
|
ELIF iResultSlot = 1
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_APPARTMENT_VAR_1, iInteriorVariation)
|
|
CPRINTLN(DEBUG_INTERNET, "SET_INTERIOR_STAT_FOR_CUSTOM_APT: Setting stat for specified \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iInteriorVariation:", iInteriorVariation)
|
|
ELIF iResultSlot = 2
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_APPARTMENT_VAR_2, iInteriorVariation)
|
|
CPRINTLN(DEBUG_INTERNET, "SET_INTERIOR_STAT_FOR_CUSTOM_APT: Setting stat for specified \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iInteriorVariation:", iInteriorVariation)
|
|
ELIF iResultSlot = 3
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_APPARTMENT_VAR_3, iInteriorVariation)
|
|
CPRINTLN(DEBUG_INTERNET, "SET_INTERIOR_STAT_FOR_CUSTOM_APT: Setting stat for specified \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iInteriorVariation:", iInteriorVariation)
|
|
ELIF iResultSlot = 4
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_APPARTMENT_VAR_4, iInteriorVariation)
|
|
CPRINTLN(DEBUG_INTERNET, "SET_INTERIOR_STAT_FOR_CUSTOM_APT: Setting stat for specified \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iInteriorVariation:", iInteriorVariation)
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_OFFICE_0
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_VAR, iInteriorVariation)
|
|
CPRINTLN(DEBUG_INTERNET, "SET_INTERIOR_STAT_FOR_CUSTOM_APT: Setting stat for specified \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iInteriorVariation:", iInteriorVariation)
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_CLUBHOUSE
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_CLUBHOUSE_VAR, iInteriorVariation)
|
|
CPRINTLN(DEBUG_INTERNET, "SET_INTERIOR_STAT_FOR_CUSTOM_APT: Setting stat for specified \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iInteriorVariation:", iInteriorVariation)
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_APT_6
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_APPARTMENT_VAR_5, iInteriorVariation)
|
|
CPRINTLN(DEBUG_INTERNET, "SET_INTERIOR_STAT_FOR_CUSTOM_APT: Setting stat for specified \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iInteriorVariation:", iInteriorVariation)
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR1_VAR, iInteriorVariation)
|
|
CPRINTLN(DEBUG_INTERNET, "SET_INTERIOR_STAT_FOR_CUSTOM_APT: Setting stat for specified \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iInteriorVariation:", iInteriorVariation)
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR2_VAR, iInteriorVariation)
|
|
CPRINTLN(DEBUG_INTERNET, "SET_INTERIOR_STAT_FOR_CUSTOM_APT: Setting stat for specified \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iInteriorVariation:", iInteriorVariation)
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR3_VAR, iInteriorVariation)
|
|
CPRINTLN(DEBUG_INTERNET, "SET_INTERIOR_STAT_FOR_CUSTOM_APT: Setting stat for specified \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iInteriorVariation:", iInteriorVariation)
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_IE_WAREHOUSE
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_IE_WAREHOUSE_VAR, iInteriorVariation)
|
|
CPRINTLN(DEBUG_INTERNET, "SET_INTERIOR_STAT_FOR_CUSTOM_APT: Setting stat for specified \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iInteriorVariation:", iInteriorVariation)
|
|
#IF FEATURE_SUMMER_2020
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_APT_7
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_APPARTMENT_VAR_6, iInteriorVariation)
|
|
CPRINTLN(DEBUG_INTERNET, "SET_INTERIOR_STAT_FOR_CUSTOM_APT: Setting stat for specified \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iInteriorVariation:", iInteriorVariation)
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_APT_8
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_APPARTMENT_VAR_7, iInteriorVariation)
|
|
CPRINTLN(DEBUG_INTERNET, "SET_INTERIOR_STAT_FOR_CUSTOM_APT: Setting stat for specified \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iInteriorVariation:", iInteriorVariation)
|
|
#ENDIF
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_APT_9 //CDM PROPERTY STAT UPDATE //OLD PROPERTIES
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_APPARTMENT_VAR_8, iInteriorVariation)
|
|
CPRINTLN(DEBUG_INTERNET, "SET_INTERIOR_STAT_FOR_CUSTOM_APT: Setting stat for specified \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iInteriorVariation:", iInteriorVariation)
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_APT_10
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_APPARTMENT_VAR_9, iInteriorVariation)
|
|
CPRINTLN(DEBUG_INTERNET, "SET_INTERIOR_STAT_FOR_CUSTOM_APT: Setting stat for specified \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iInteriorVariation:", iInteriorVariation)
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "SET_INTERIOR_STAT_FOR_CUSTOM_APT: Not setting stat, invalid slot specified iResultSlot:", iResultSlot)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
/// Purpose: Grabs the relevant string for office purchase results
|
|
FUNC STRING GET_OFFICE_PURCHASE_RESULT_STRING(INT iPropertyType, BOOL bPurchaseSucceeded, BOOL bRenovation)
|
|
|
|
BOOL bOffice = (iPropertyType = 1)
|
|
BOOL bClubhouse = (iPropertyType = 2)
|
|
BOOL bOfficeGarage = (iPropertyType = 3)
|
|
BOOL bFactoryBunker = (iPropertyType = 4)
|
|
BOOL bHangar = (iPropertyType = 5)
|
|
BOOL bDefunctBase = (iPropertyType = 6)
|
|
BOOL bNightclub = (iPropertyType = 7)
|
|
BOOL bArenaGarage = (iPropertyType = 8)
|
|
BOOL bCasinoApt = (iPropertyType = 9)
|
|
BOOL bArcade = (iPropertyType = 10)
|
|
BOOL bAutoShop = (iPropertyType = 11)
|
|
#IF FEATURE_FIXER
|
|
BOOL bFixerHQ = (iPropertyType = 12)
|
|
#ENDIF
|
|
|
|
IF bOffice
|
|
AND NOT bOfficeGarage
|
|
INT iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop
|
|
GET_SCALEFORM_OFFICE_DATA(iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop)
|
|
|
|
IF iModshop != 0
|
|
INT iPrevModshop = GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_MODSHOP)
|
|
|
|
CDEBUG1LN(DEBUG_INTERNET, "GET_OFFICE_PURCHASE_RESULT_STRING iModshop: ", iModshop, ", iPrevModshop:", iPrevModshop)
|
|
|
|
IF iModshop != iPrevModshop
|
|
//
|
|
bOffice = FALSE
|
|
bOfficeGarage = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
TEXT_LABEL_23 tl23Str = ""
|
|
IF bRenovation IF bOffice RETURN "MP_OFF_S_REN" ELIF bClubhouse RETURN "MP_CLU_S_REN" ELIF bOfficeGarage RETURN "MP_GAR_S_REN" ELIF bFactoryBunker RETURN "MP_BUN_S_REN" ELIF bHangar RETURN "MP_HAN_S_REN" ELIF bDefunctBase RETURN "MP_DBA_S_REN" ELIF bNightclub RETURN "MP_NCL_S_REN" ELIF bArenaGarage RETURN "MP_MBA_S_REN" ELIF bCasinoApt RETURN "MP_CASWEB_S_REN" ELIF bArcade RETURN "MP_ARC_S_REN" ELIF bAutoShop RETURN "MP_AUT_S_REN" #IF FEATURE_FIXER ELIF bFixerHQ RETURN "MP_FIX_S_REN" #ENDIF ENDIF
|
|
ELIF bPurchaseSucceeded IF bOffice RETURN "MP_OFF_S_BUY" ELIF bClubhouse RETURN "MP_CLU_S_BUY" ELIF bOfficeGarage RETURN "MP_GAR_S_BUY" ELIF bFactoryBunker RETURN "MP_BUN_S_BUY" ELIF bHangar RETURN "MP_HAN_S_BUY" ELIF bDefunctBase RETURN "MP_DBA_S_BUY" ELIF bNightclub RETURN "MP_NCL_S_BUY" ELIF bArenaGarage RETURN "MP_MBA_S_BUY" ELIF bCasinoApt RETURN "MP_CASWEB_S_BUY" ELIF bArcade RETURN "MP_ARC_S_BUY" ELIF bAutoShop RETURN "MP_AUT_S_BUY" #IF FEATURE_FIXER ELIF bFixerHQ RETURN "MP_FIX_S_BUY" #ENDIF ENDIF
|
|
ELIF mpPropertySiteFailReason = MPSFR_NOT_UNLOCKED IF bOffice RETURN "MP_OFF_F_BUY_1" ELIF bClubhouse RETURN "MP_CLU_F_BUY_1" ELIF bOfficeGarage RETURN "MP_GAR_F_BUY_1" ELIF bFactoryBunker RETURN "MP_BUN_F_BUY_1" ELIF bHangar RETURN "MP_HAN_F_BUY_1" ELIF bDefunctBase RETURN "MP_DBA_F_BUY_1" ELIF bNightclub RETURN "MP_NCL_F_BUY_1" ELIF bArenaGarage RETURN "MP_MBA_F_BUY_1" ELIF bCasinoApt RETURN "MP_CASWEB_F_BUY_1" ELIF bArcade RETURN "MP_ARC_F_BUY_1" ELIF bAutoShop RETURN "MP_AUT_F_BUY_1" #IF FEATURE_FIXER ELIF bFixerHQ RETURN "MP_FIX_F_BUY_1" #ENDIF ENDIF
|
|
ELIF mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH IF bOffice RETURN "MP_OFF_F_BUY_2" ELIF bClubhouse RETURN "MP_CLU_F_BUY_2" ELIF bOfficeGarage RETURN "MP_GAR_F_BUY_2" ELIF bFactoryBunker RETURN "MP_BUN_F_BUY_2" ELIF bHangar RETURN "MP_HAN_F_BUY_2" ELIF bDefunctBase RETURN "MP_DBA_F_BUY_2" ELIF bNightclub RETURN "MP_NCL_F_BUY_2" ELIF bArenaGarage RETURN "MP_MBA_F_BUY_2" ELIF bCasinoApt RETURN "MP_CASWEB_F_BUY_2" ELIF bArcade RETURN "MP_ARC_F_BUY_2" ELIF bAutoShop RETURN "MP_AUT_F_BUY_2" #IF FEATURE_FIXER ELIF bFixerHQ RETURN "MP_FIX_F_BUY_2" #ENDIF ENDIF
|
|
ELIF mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK IF bOffice RETURN "MP_OFF_F_BUY_3" ELIF bClubhouse RETURN "MP_CLU_F_BUY_3" ELIF bOfficeGarage RETURN "MP_GAR_F_BUY_3" ELIF bFactoryBunker RETURN "MP_BUN_F_BUY_3" ELIF bHangar RETURN "MP_HAN_F_BUY_3" ELIF bDefunctBase RETURN "MP_DBA_F_BUY_3" ELIF bNightclub RETURN "MP_NCL_F_BUY_3" ELIF bArenaGarage RETURN "MP_MBA_F_BUY_3" ELIF bCasinoApt RETURN "MP_CASWEB_F_BUY_3" ELIF bArcade RETURN "MP_ARC_F_BUY_3" ELIF bAutoShop RETURN "MP_AUT_F_BUY_3" #IF FEATURE_FIXER ELIF bFixerHQ RETURN "MP_FIX_F_BUY_3" #ENDIF ENDIF
|
|
ELIF mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK_PENDING IF bOffice RETURN "MP_OFF_F_BUY_4" ELIF bClubhouse RETURN "MP_CLU_F_BUY_4" ELIF bOfficeGarage RETURN "MP_GAR_F_BUY_4" ELIF bFactoryBunker RETURN "MP_BUN_F_BUY_4" ELIF bHangar RETURN "MP_HAN_F_BUY_4" ELIF bDefunctBase RETURN "MP_DBA_F_BUY_4" ELIF bNightclub RETURN "MP_NCL_F_BUY_4" ELIF bArenaGarage RETURN "MP_MBA_F_BUY_4" ELIF bCasinoApt RETURN "MP_CASWEB_F_BUY_4" ELIF bArcade RETURN "MP_ARC_F_BUY_4" ELIF bAutoShop RETURN "MP_AUT_F_BUY_4" #IF FEATURE_FIXER ELIF bFixerHQ RETURN "MP_FIX_F_BUY_4" #ENDIF ENDIF
|
|
ELIF mpPropertySiteFailReason = MPSFR_CANCELED IF bOffice RETURN "MP_OFF_F_BUY_5" ELIF bClubhouse RETURN "MP_CLU_F_BUY_5" ELIF bOfficeGarage RETURN "MP_GAR_F_BUY_5" ELIF bFactoryBunker RETURN "MP_BUN_F_BUY_5" ELIF bHangar RETURN "MP_HAN_F_BUY_5" ELIF bDefunctBase RETURN "MP_DBA_F_BUY_5" ELIF bNightclub RETURN "MP_NCL_F_BUY_5" ELIF bArenaGarage RETURN "MP_MBA_F_BUY_5" ELIF bCasinoApt RETURN "MP_CASWEB_F_BUY_5" ELIF bArcade RETURN "MP_ARC_F_BUY_5" ELIF bAutoShop RETURN "MP_AUT_F_BUY_5" #IF FEATURE_FIXER ELIF bFixerHQ RETURN "MP_FIX_F_BUY_5" #ENDIF ENDIF
|
|
ELIF mpPropertySiteFailReason = MPSFR_NOT_SAFE IF bOffice RETURN "MP_OFF_F_BUY_6" ELIF bClubhouse RETURN "MP_CLU_F_BUY_6" ELIF bOfficeGarage RETURN "MP_GAR_F_BUY_6" ELIF bFactoryBunker RETURN "MP_BUN_F_BUY_6" ELIF bHangar RETURN "MP_HAN_F_BUY_6" ELIF bDefunctBase RETURN "MP_DBA_F_BUY_6" ELIF bNightclub RETURN "MP_NCL_F_BUY_6" ELIF bArenaGarage RETURN "MP_MBA_F_BUY_6" ELIF bCasinoApt RETURN "MP_CASWEB_F_BUY_6" ELIF bArcade RETURN "MP_ARC_F_BUY_6" ELIF bAutoShop RETURN "MP_AUT_F_BUY_6" #IF FEATURE_FIXER ELIF bFixerHQ RETURN "MP_FIX_F_BUY_6" #ENDIF ENDIF
|
|
ELIF g_bDontCrossRunning = TRUE IF bOffice RETURN "MP_OFF_F_BUY_7" ELIF bClubhouse RETURN "MP_CLU_F_BUY_7" ELIF bOfficeGarage RETURN "MP_GAR_F_BUY_7" ELIF bFactoryBunker RETURN "MP_BUN_F_BUY_7" ELIF bHangar RETURN "MP_HAN_F_BUY_7" ELIF bDefunctBase RETURN "MP_DBA_F_BUY_7" ELIF bNightclub RETURN "MP_NCL_F_BUY_7" ELIF bArenaGarage RETURN "MP_MBA_F_BUY_7" ELIF bCasinoApt RETURN "MP_CASWEB_F_BUY_7" ELIF bArcade RETURN "MP_ARC_F_BUY_7" ELIF bAutoShop RETURN "MP_AUT_F_BUY_7" #IF FEATURE_FIXER ELIF bFixerHQ RETURN "MP_FIX_F_BUY_7" #ENDIF ENDIF
|
|
ELIF mpPropertySiteFailReason = MPSFR_ON_MISSION IF bOffice RETURN "MP_OFF_F_BUY_8" ELIF bClubhouse RETURN "MP_CLU_F_BUY_8" ELIF bOfficeGarage RETURN "MP_GAR_F_BUY_8" ELIF bFactoryBunker RETURN "MP_BUN_F_BUY_8" ELIF bHangar tl23Str = "MP_HAN_F_BUY_8" ELIF bDefunctBase tl23Str = "MP_DBA_F_BUY_8" ELIF bNightclub tl23Str = "MP_NCL_F_BUY_8" ELIF bArenaGarage tl23Str = "MP_MBA_F_BUY_8" ELIF bCasinoApt tl23Str = "MP_CASWEB_F_BUY_8" ELIF bArcade tl23Str = "MP_ARC_F_BUY_8" ELIF bAutoShop tl23Str = "MP_AUT_F_BUY_8" #IF FEATURE_FIXER ELIF bFixerHQ tl23Str = "MP_FIX_F_BUY_8" #ENDIF ENDIF
|
|
ELIF mpPropertySiteFailReason = MPSFR_PAID_RESUPPLY IF bOffice RETURN "MP_OFF_F_BUY_9" ELIF bClubhouse RETURN "MP_CLU_F_BUY_9" ELIF bOfficeGarage RETURN "MP_GAR_F_BUY_9" ELIF bFactoryBunker RETURN "MP_BUN_F_BUY_9" ELIF bHangar tl23Str = "MP_HAN_F_BUY_9" ELIF bDefunctBase tl23Str = "MP_DBA_F_BUY_9" ELIF bNightclub tl23Str = "MP_NCL_F_BUY_9" ELIF bArenaGarage tl23Str = "MP_MBA_F_BUY_9" ELIF bCasinoApt tl23Str = "MP_CASWEB_F_BUY_9" ELIF bArcade tl23Str = "MP_ARC_F_BUY_9" ELIF bAutoShop tl23Str = "MP_AUT_F_BUY_9" #IF FEATURE_FIXER ELIF bFixerHQ tl23Str = "MP_FIX_F_BUY_9" #ENDIF ENDIF
|
|
ELIF mpPropertySiteFailReason = MPSFR_HAS_STOCK IF bOffice RETURN "MP_OFF_F_BUY_10" ELIF bClubhouse RETURN "MP_CLU_F_BUY_10" ELIF bOfficeGarage RETURN "MP_GAR_F_BUY_10" ELIF bFactoryBunker RETURN "MP_BUN_F_BUY_10" ELIF bHangar tl23Str = "MP_HAN_F_BUY_10" ELIF bDefunctBase tl23Str = "MP_DBA_F_BUY_10" ELIF bNightclub tl23Str = "MP_NCL_F_BUY_10" ELIF bArenaGarage tl23Str = "MP_MBA_F_BUY_10" ELIF bCasinoApt tl23Str = "MP_CASWEB_F_BUY_10" ELIF bArcade tl23Str = "MP_ARC_F_BUY_10" ELIF bAutoShop tl23Str = "MP_AUT_F_BUY_10" #IF FEATURE_FIXER ELIF bFixerHQ tl23Str = "MP_FIX_F_BUY_10" #ENDIF ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(tl23Str)
|
|
IF ARE_STRINGS_EQUAL(tl23Str, "MP_HAN_F_BUY_8")
|
|
OR ARE_STRINGS_EQUAL(tl23Str, "MP_HAN_F_BUY_9")
|
|
OR ARE_STRINGS_EQUAL(tl23Str, "MP_HAN_F_BUY_10")
|
|
|
|
HANGAR_ID eBuyingHangar = INT_TO_ENUM(HANGAR_ID, GET_LAST_CLICKED_HANGAR())
|
|
HANGAR_ID eOwnedHangar = GET_PLAYERS_OWNED_HANGAR(PLAYER_ID())
|
|
|
|
IF (eBuyingHangar = eOwnedHangar)
|
|
tl23Str += "b" //renovate
|
|
ELIF (eOwnedHangar = HANGAR_ID_INVALID)
|
|
tl23Str += "a" //buy
|
|
ELSE
|
|
tl23Str += "c" //trade
|
|
ENDIF
|
|
ELIF ARE_STRINGS_EQUAL(tl23Str, "MP_DBA_F_BUY_8")
|
|
OR ARE_STRINGS_EQUAL(tl23Str, "MP_DBA_F_BUY_9")
|
|
OR ARE_STRINGS_EQUAL(tl23Str, "MP_DBA_F_BUY_10")
|
|
|
|
DEFUNCT_BASE_ID eBuyingDefunctBase = INT_TO_ENUM(DEFUNCT_BASE_ID, GET_LAST_CLICKED_DEFUNCT_BASE())
|
|
DEFUNCT_BASE_ID eOwnedDefunctBase = GET_PLAYERS_OWNED_DEFUNCT_BASE(PLAYER_ID())
|
|
|
|
IF (eBuyingDefunctBase = eOwnedDefunctBase)
|
|
tl23Str += "b" //renovate
|
|
ELIF (eOwnedDefunctBase = DEFUNCT_BASE_ID_INVALID)
|
|
tl23Str += "a" //buy
|
|
ELSE
|
|
tl23Str += "c" //trade
|
|
ENDIF
|
|
ELIF ARE_STRINGS_EQUAL(tl23Str, "MP_NCL_F_BUY_8")
|
|
OR ARE_STRINGS_EQUAL(tl23Str, "MP_NCL_F_BUY_9")
|
|
OR ARE_STRINGS_EQUAL(tl23Str, "MP_NCL_F_BUY_10")
|
|
|
|
NIGHTCLUB_ID eBuyingNightclub = INT_TO_ENUM(NIGHTCLUB_ID, GET_LAST_CLICKED_NIGHTCLUB())
|
|
NIGHTCLUB_ID eOwnedNightclub = GET_PLAYERS_OWNED_NIGHTCLUB(PLAYER_ID())
|
|
|
|
IF (eBuyingNightclub = eOwnedNightclub)
|
|
tl23Str += "b" //renovate
|
|
ELIF (eOwnedNightclub = NIGHTCLUB_ID_INVALID)
|
|
tl23Str += "a" //buy
|
|
ELSE
|
|
tl23Str += "c" //trade
|
|
ENDIF
|
|
ELIF ARE_STRINGS_EQUAL(tl23Str, "MP_ARC_F_BUY_8")
|
|
OR ARE_STRINGS_EQUAL(tl23Str, "MP_ARC_F_BUY_9")
|
|
OR ARE_STRINGS_EQUAL(tl23Str, "MP_ARC_F_BUY_10")
|
|
ARCADE_PROPERTY_ID eBuyingArcade = INT_TO_ENUM(ARCADE_PROPERTY_ID, GET_LAST_CLICKED_ARCADE())
|
|
ARCADE_PROPERTY_ID eOwnedArcade = GET_PLAYERS_OWNED_ARCADE_PROPERTY(PLAYER_ID())
|
|
|
|
IF (eBuyingArcade = eOwnedArcade)
|
|
tl23Str += "b" //renovate
|
|
ELIF (eOwnedArcade = ARCADE_PROPERTY_ID_INVALID)
|
|
tl23Str += "a" //buy
|
|
ELSE
|
|
tl23Str += "c" //trade
|
|
ENDIF
|
|
ELIF ARE_STRINGS_EQUAL(tl23Str, "MP_AUT_F_BUY_8")
|
|
OR ARE_STRINGS_EQUAL(tl23Str, "MP_AUT_F_BUY_9")
|
|
AUTO_SHOP_PROPERTY_ID eBuyingAutoShop = INT_TO_ENUM(AUTO_SHOP_PROPERTY_ID, GET_LAST_CLICKED_AUTO_SHOP())
|
|
AUTO_SHOP_PROPERTY_ID eOwnedAutoShop = GET_PLAYERS_OWNED_AUTO_SHOP_PROPERTY(PLAYER_ID())
|
|
|
|
IF (eBuyingAutoShop = eOwnedAutoShop)
|
|
tl23Str += "b" //renovate
|
|
ELIF (eOwnedAutoShop = AUTO_SHOP_PROPERTY_ID_INVALID)
|
|
tl23Str += "a" //buy
|
|
ELSE
|
|
tl23Str += "c" //trade
|
|
ENDIF
|
|
#IF FEATURE_FIXER
|
|
ELIF ARE_STRINGS_EQUAL(tl23Str, "MP_FIX_F_BUY_8")
|
|
FIXER_HQ_ID eBuyingFixerHQ = INT_TO_ENUM(FIXER_HQ_ID, GET_LAST_CLICKED_FIXER_HQ())
|
|
FIXER_HQ_ID eOwnedFixerHQ = GET_PLAYERS_OWNED_FIXER_HQ(PLAYER_ID())
|
|
|
|
IF (eBuyingFixerHQ = eOwnedFixerHQ)
|
|
tl23Str += "b" //renovate
|
|
ELIF (eOwnedFixerHQ = FIXER_HQ_ID_INVALID)
|
|
tl23Str += "a" //buy
|
|
ELSE
|
|
tl23Str += "c" //trade
|
|
ENDIF
|
|
#ENDIF
|
|
ENDIF
|
|
RETURN GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME(tl23Str, 0, GET_LENGTH_OF_LITERAL_STRING(tl23Str))
|
|
ENDIF
|
|
|
|
//Return office buy Fail default
|
|
IF bOffice
|
|
RETURN "MP_OFF_F_BUY_6"
|
|
ELIF bClubhouse
|
|
RETURN "MP_CLU_F_BUY_6"
|
|
ELIF bOfficeGarage
|
|
RETURN "MP_GAR_F_BUY_6"
|
|
ELIF bFactoryBunker
|
|
RETURN "MP_BUN_F_BUY_6"
|
|
ELIF bHangar
|
|
RETURN "MP_HAN_F_BUY_6"
|
|
ELIF bDefunctBase
|
|
RETURN "MP_DBA_F_BUY_6"
|
|
ELIF bNightclub
|
|
RETURN "MP_NCL_F_BUY_6"
|
|
ELIF bArenaGarage
|
|
RETURN "MP_MBA_F_BUY_6"
|
|
ELIF bCasinoApt
|
|
RETURN "MP_CASWEB_F_BUY_6"
|
|
ELIF bArcade
|
|
RETURN "MP_ARC_F_BUY_6"
|
|
ELIF bAutoShop
|
|
RETURN "MP_AUT_F_BUY_6"
|
|
#IF FEATURE_FIXER
|
|
ELIF bFixerHQ
|
|
RETURN "MP_FIX_F_BUY_6"
|
|
#ENDIF
|
|
ENDIF
|
|
|
|
RETURN "MP_F_BUY_5"
|
|
ENDFUNC
|
|
|
|
///Purpose: Switches to either dynasty8 or dynasty8Exec for offices
|
|
/// To be used when displaying purchase results
|
|
PROC SWITCH_TO_PROPERTY_RESULTS_PAGE(INT iBuyPropertyIndex, STRING sPageExtension, BOOL bPurchaseSucceeded, BOOL bRenovation, BOOL bSetWaypointSuccess, BOOL bSetWaypointFail, REPLACE_PROPERTY_MENU_TYPE_ENUM ePropertyType)
|
|
|
|
TEXT_LABEL_63 sWebpage
|
|
BOOL bOffice, bClubhouse, bOfficeGarage
|
|
|
|
IF (ePropertyType = rpmt_0)
|
|
bOffice = IS_PROPERTY_OFFICE(iBuyPropertyIndex)
|
|
bClubhouse = IS_PROPERTY_CLUBHOUSE(iBuyPropertyIndex)
|
|
bOfficeGarage = IS_PROPERTY_OFFICE_GARAGE(iBuyPropertyIndex)
|
|
|
|
IF bOffice
|
|
AND NOT bOfficeGarage
|
|
INT iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop
|
|
GET_SCALEFORM_OFFICE_DATA(iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop)
|
|
|
|
IF iModshop != 0
|
|
INT iPrevModshop = GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_MODSHOP)
|
|
|
|
CDEBUG1LN(DEBUG_INTERNET, "SWITCH_TO_PROPERTY_RESULTS_PAGE iModshop: ", iModshop, ", iPrevModshop:", iPrevModshop)
|
|
|
|
IF iModshop != iPrevModshop
|
|
//
|
|
bOffice = FALSE
|
|
bOfficeGarage = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bOffice
|
|
OR bClubhouse
|
|
OR bOfficeGarage
|
|
OR (ePropertyType != rpmt_0)
|
|
//Purchase result screen - Title
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
IF bPurchaseSucceeded
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MP_OFF_S_BUY_T")
|
|
ELIF bSetWaypointSuccess
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MP_OFF_W_BUY_T")
|
|
ELIF bSetWaypointFail
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MP_OFF_WF_BUY_T")
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MP_OFF_F_BUY_T")
|
|
ENDIF
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
//Purchase result screen - Body text
|
|
TEXT_LABEL_23 tl23BodyParam = ""
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
IF bSetWaypointSuccess
|
|
IF bOffice
|
|
tl23BodyParam = "MP_OFF_S_WAY"
|
|
ELIF bClubhouse
|
|
tl23BodyParam = "MP_CLU_S_WAY"
|
|
ELIF bOfficeGarage
|
|
tl23BodyParam = "MP_GAR_S_WAY"
|
|
ELIF (ePropertyType = rpmt_1_FACTORY)
|
|
tl23BodyParam = "MP_BUN_S_WAY"
|
|
ELIF (ePropertyType = rpmt_2_HANGAR)
|
|
tl23BodyParam = "MP_HAN_S_WAY"
|
|
ELIF (ePropertyType = rpmt_3_DEFUNCT_BASE)
|
|
tl23BodyParam = "MP_DBA_S_WAY"
|
|
ELIF (ePropertyType = rpmt_4_NIGHTCLUB)
|
|
tl23BodyParam = "MP_NCL_S_WAY"
|
|
ELIF (ePropertyType = rpmt_5_ARENA_GARAGE)
|
|
tl23BodyParam = "MP_MBA_S_WAY"
|
|
ELIF (ePropertyType = rpmt_6_CASINO_APARTMENT)
|
|
tl23BodyParam = "MP_CASWEB_S_WAY"
|
|
ELIF (ePropertyType = rpmt_7_ARCADE)
|
|
tl23BodyParam = "MP_ARC_S_WAY"
|
|
ELIF (ePropertyType = rpmt_8_AUTO_SHOP)
|
|
tl23BodyParam = "MP_AUT_S_WAY"
|
|
#IF FEATURE_FIXER
|
|
ELIF (ePropertyType = rpmt_9_FIXER_HQ)
|
|
tl23BodyParam = "MP_FIX_S_WAY"
|
|
#ENDIF
|
|
ELSE
|
|
tl23BodyParam = "MP_XXX_S_WAY"
|
|
ENDIF
|
|
ELIF bSetWaypointFail
|
|
IF bOffice
|
|
tl23BodyParam = "MP_OFF_S_WAYF"
|
|
ELIF bClubhouse
|
|
tl23BodyParam = "MP_CLU_S_WAYF"
|
|
ELIF bOfficeGarage
|
|
tl23BodyParam = "MP_GAR_S_WAYF"
|
|
ELIF (ePropertyType = rpmt_1_FACTORY)
|
|
tl23BodyParam = "MP_BUN_S_WAYF"
|
|
ELIF (ePropertyType = rpmt_2_HANGAR)
|
|
tl23BodyParam = "MP_HAN_S_WAYF"
|
|
ELIF (ePropertyType = rpmt_3_DEFUNCT_BASE)
|
|
tl23BodyParam = "MP_DBA_S_WAYF"
|
|
ELIF (ePropertyType = rpmt_4_NIGHTCLUB)
|
|
tl23BodyParam = "MP_NCL_S_WAYF"
|
|
ELIF (ePropertyType = rpmt_5_ARENA_GARAGE)
|
|
tl23BodyParam = "MP_MBA_S_WAYF"
|
|
ELIF (ePropertyType = rpmt_6_CASINO_APARTMENT)
|
|
tl23BodyParam = "MP_CASWEB_S_WAYF"
|
|
ELIF (ePropertyType = rpmt_7_ARCADE)
|
|
tl23BodyParam = "MP_ARC_S_WAYF"
|
|
ELIF (ePropertyType = rpmt_8_AUTO_SHOP)
|
|
tl23BodyParam = "MP_AUT_S_WAYF"
|
|
#IF FEATURE_FIXER
|
|
ELIF (ePropertyType = rpmt_9_FIXER_HQ)
|
|
tl23BodyParam = "MP_FIX_S_WAYF"
|
|
#ENDIF
|
|
ELSE
|
|
tl23BodyParam = "MP_XXX_S_WAYF"
|
|
ENDIF
|
|
ELSE
|
|
IF bOffice
|
|
tl23BodyParam = GET_OFFICE_PURCHASE_RESULT_STRING(1, bPurchaseSucceeded, bRenovation)
|
|
ELIF bClubhouse
|
|
tl23BodyParam = GET_OFFICE_PURCHASE_RESULT_STRING(2, bPurchaseSucceeded, bRenovation)
|
|
ELIF bOfficeGarage
|
|
tl23BodyParam = GET_OFFICE_PURCHASE_RESULT_STRING(3, bPurchaseSucceeded, bRenovation)
|
|
ELIF (ePropertyType = rpmt_1_FACTORY)
|
|
tl23BodyParam = GET_OFFICE_PURCHASE_RESULT_STRING(4, bPurchaseSucceeded, bRenovation)
|
|
ELIF (ePropertyType = rpmt_2_HANGAR)
|
|
tl23BodyParam = GET_OFFICE_PURCHASE_RESULT_STRING(5, bPurchaseSucceeded, bRenovation)
|
|
ELIF (ePropertyType = rpmt_3_DEFUNCT_BASE)
|
|
tl23BodyParam = GET_OFFICE_PURCHASE_RESULT_STRING(6, bPurchaseSucceeded, bRenovation)
|
|
ELIF (ePropertyType = rpmt_4_NIGHTCLUB)
|
|
tl23BodyParam = GET_OFFICE_PURCHASE_RESULT_STRING(7, bPurchaseSucceeded, bRenovation)
|
|
ELIF (ePropertyType = rpmt_5_ARENA_GARAGE)
|
|
tl23BodyParam = GET_OFFICE_PURCHASE_RESULT_STRING(8, bPurchaseSucceeded, bRenovation)
|
|
ELIF (ePropertyType = rpmt_6_CASINO_APARTMENT)
|
|
tl23BodyParam = GET_OFFICE_PURCHASE_RESULT_STRING(9, bPurchaseSucceeded, bRenovation)
|
|
ELIF (ePropertyType = rpmt_7_ARCADE)
|
|
tl23BodyParam = GET_OFFICE_PURCHASE_RESULT_STRING(10, bPurchaseSucceeded, bRenovation)
|
|
ELIF (ePropertyType = rpmt_8_AUTO_SHOP)
|
|
tl23BodyParam = GET_OFFICE_PURCHASE_RESULT_STRING(11, bPurchaseSucceeded, bRenovation)
|
|
#IF FEATURE_FIXER
|
|
ELIF (ePropertyType = rpmt_9_FIXER_HQ)
|
|
tl23BodyParam = GET_OFFICE_PURCHASE_RESULT_STRING(12, bPurchaseSucceeded, bRenovation)
|
|
#ENDIF
|
|
ELSE
|
|
tl23BodyParam = GET_OFFICE_PURCHASE_RESULT_STRING(0, bPurchaseSucceeded, bRenovation)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(tl23BodyParam)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
IF bOffice
|
|
sWebpage = "WWW_DYNASTY8EXECUTIVEREALTY_COM"
|
|
ELIF bClubhouse
|
|
sWebpage = "FORECLOSURES_MAZE_D_BANK_COM"
|
|
ELIF bOfficeGarage
|
|
sWebpage = "WWW_DYNASTY8EXECUTIVEREALTY_COM"
|
|
ELIF (ePropertyType = rpmt_1_FACTORY)
|
|
sWebpage = "FORECLOSURES_MAZE_D_BANK_COM"
|
|
ELIF (ePropertyType = rpmt_2_HANGAR)
|
|
sWebpage = "FORECLOSURES_MAZE_D_BANK_COM"
|
|
ELIF (ePropertyType = rpmt_3_DEFUNCT_BASE)
|
|
sWebpage = "FORECLOSURES_MAZE_D_BANK_COM"
|
|
ELIF (ePropertyType = rpmt_4_NIGHTCLUB)
|
|
sWebpage = "FORECLOSURES_MAZE_D_BANK_COM"
|
|
ELIF (ePropertyType = rpmt_5_ARENA_GARAGE)
|
|
sWebpage = "WWW_ARENAWAR_TV"
|
|
ELIF (ePropertyType = rpmt_6_CASINO_APARTMENT)
|
|
sWebpage = "WWW_THEDIAMONDCASINOANDRESORT_COM"
|
|
ELIF (ePropertyType = rpmt_7_ARCADE)
|
|
sWebpage = "FORECLOSURES_MAZE_D_BANK_COM"
|
|
ELIF (ePropertyType = rpmt_8_AUTO_SHOP)
|
|
sWebpage = "FORECLOSURES_MAZE_D_BANK_COM"
|
|
#IF FEATURE_FIXER
|
|
ELIF (ePropertyType = rpmt_9_FIXER_HQ)
|
|
sWebpage = "WWW_DYNASTY8EXECUTIVEREALTY_COM"
|
|
#ENDIF
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "SWITCH_TO_PROPERTY_RESULTS_PAGE EXTENSION: unknown websitr")
|
|
ENDIF
|
|
|
|
CDEBUG1LN(DEBUG_INTERNET, "SWITCH_TO_PROPERTY_RESULTS_PAGE ",
|
|
PICK_STRING(bSetWaypointSuccess, "bSetWaypointSuccess", PICK_STRING(bSetWaypointFail, "bSetWaypointSuccess", "PURCHASE")),
|
|
PICK_STRING(bOffice, ", bOffice",
|
|
PICK_STRING(bClubhouse, ", bClubhouse",
|
|
PICK_STRING((ePropertyType = rpmt_1_FACTORY), ", rpmt_1_FACTORY",
|
|
PICK_STRING((ePropertyType = rpmt_2_HANGAR), ", rpmt_2_HANGAR",
|
|
PICK_STRING((ePropertyType = rpmt_3_DEFUNCT_BASE), ", rpmt_3_DEFUNCT_BASE",
|
|
PICK_STRING((ePropertyType = rpmt_4_NIGHTCLUB), ", rpmt_4_NIGHTCLUB",
|
|
PICK_STRING((ePropertyType = rpmt_5_ARENA_GARAGE), ", rpmt_5_ARENA_GARAGE",
|
|
PICK_STRING((ePropertyType = rpmt_6_CASINO_APARTMENT), ", rpmt_6_CASINO_APARTMENT",
|
|
PICK_STRING((ePropertyType = rpmt_7_ARCADE), ", rpmt_7_ARCADE",
|
|
PICK_STRING((ePropertyType = rpmt_8_AUTO_SHOP), ", rpmt_8_AUTO_SHOP",
|
|
PICK_STRING(bOfficeGarage, ", bOfficeGarage",
|
|
"UNKNOWN"))))))))))),
|
|
": \"", sWebpage, sPageExtension, "\", \"", tl23BodyParam, "\"")
|
|
|
|
#IF FEATURE_FIXER
|
|
CDEBUG1LN(DEBUG_INTERNET, "SWITCH_TO_PROPERTY_RESULTS_PAGE ",
|
|
PICK_STRING((ePropertyType = rpmt_9_FIXER_HQ), ", rpmt_9_FIXER_HQ",
|
|
"UNKNOWN"),
|
|
": \"", sWebpage, sPageExtension, "\", \"", tl23BodyParam, "\"")
|
|
#ENDIF
|
|
ELSE
|
|
sWebpage = "WWW_DYNASTY8REALESTATE_COM"
|
|
ENDIF
|
|
|
|
tl63sPropertyResultsWebpage = sWebpage
|
|
sWebpage += sPageExtension
|
|
GO_TO_WEBSITE(sWebpage)
|
|
ENDPROC
|
|
|
|
///Purpose: params returned from Scaleform are 0 or 1
|
|
/// Returns true if 1
|
|
FUNC BOOL HAS_SCALEFORM_OPTION_BEEN_SELECTED(INT iOption)
|
|
RETURN (iOption = 1)
|
|
ENDFUNC
|
|
|
|
FUNC INT CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES(INT iProperty,
|
|
INT &iOfficeStylePrice, INT &iOfficePersonnelPrice, INt &iOfficeNamePrice,
|
|
INT &iOfficeFontPrice, INT &iOfficeColourPrice,
|
|
INT &iOfficeGunLockerPrice, INT &iOfficeVaultPrice, INT &iOfficeAccommodationPrice,
|
|
INT &iOfficeModshopPrice)
|
|
|
|
|
|
INT iOwned = GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_0)
|
|
|
|
INT iCost = 0
|
|
INT iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop
|
|
GET_SCALEFORM_OFFICE_DATA(iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop)
|
|
|
|
|
|
iOfficeStylePrice = 0
|
|
IF GET_OWNED_PROPERTY_VARIATION(PROPERTY_OWNED_SLOT_OFFICE_0) != iStyle
|
|
#IF IS_DEBUG_BUILD
|
|
INT iOldStyle = GET_OWNED_PROPERTY_VARIATION(PROPERTY_OWNED_SLOT_OFFICE_0)
|
|
INT iOldStyleSF = -1
|
|
IF (iOldStyle != 0)
|
|
iOldStyleSF = GET_SF_FROM_OFFICE_INTERIOR(iOldStyle)
|
|
ENDIF
|
|
#ENDIF
|
|
INT iNewStyleSF = GET_SF_FROM_OFFICE_INTERIOR(iStyle)
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
iOfficeStylePrice = GET_MP_PROPERTY_INTERIOR_VALUE(iStyle-1, iProperty)
|
|
ELSE
|
|
iOfficeStylePrice = GET_MP_PROPERTY_INTERIOR_VALUE(iStyle-1, iProperty)
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
// use GET_PROPERTY_INTERIOR_NAME(INT iIndex, INT iCurrentProperty) // //
|
|
TEXT_LABEL tlOldStyle = "PM_OFF_VAR_" //
|
|
tlOldStyle += iOldStyleSF //
|
|
TEXT_LABEL tlNewStyle = "PM_OFF_VAR_" //
|
|
tlNewStyle += iNewStyleSF //
|
|
// // // // // // // // // // // // // // // // // // // // // // // // //
|
|
// STRING sOldStyleLabel = "null"
|
|
// IF DOES_TEXT_LABEL_EXIST(tlOldStyle)
|
|
// sOldStyleLabel = GET_STRING_FROM_TEXT_FILE(tlOldStyle)
|
|
// ENDIF
|
|
// STRING sNewStyleLabel = GET_STRING_FROM_TEXT_FILE(tlNewStyle)
|
|
#ENDIF
|
|
|
|
IF iOwned != iProperty
|
|
AND iNewStyleSF = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES: new property, interior ",
|
|
tlOldStyle, ":", iStyle,
|
|
" [sf:", iNewStyleSF,
|
|
"] is free")
|
|
iOfficeStylePrice = 0
|
|
ELSE
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL tlOldStyleData = tlOldStyle
|
|
tlOldStyleData += ":"
|
|
tlOldStyleData += iOldStyle
|
|
TEXT_LABEL tlNewStyleData = tlNewStyle
|
|
tlNewStyleData += ":"
|
|
tlNewStyleData += iStyle
|
|
#ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES: changing interior from ",
|
|
tlOldStyleData,
|
|
" [sf:", iOldStyleSF,
|
|
"] to ",
|
|
tlNewStyleData,
|
|
" [sf:", iNewStyleSF,
|
|
"] add $", iOfficeStylePrice, " ", GET_STRING_FROM_TEXT_FILE(tlNewStyle))
|
|
iCost += iOfficeStylePrice
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES: unchanged property, interior ",
|
|
GET_OWNED_PROPERTY_VARIATION(PROPERTY_OWNED_SLOT_OFFICE_0), " != ", iStyle,
|
|
" is free")
|
|
iOfficeStylePrice = 0
|
|
ENDIF
|
|
|
|
iOfficePersonnelPrice = 0
|
|
IF iOwned != iProperty
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES: new property, personel change is free")
|
|
ELSE
|
|
IF (GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_PERSONNEL) != iPersonnel)
|
|
IF NOT IS_OFFICE_PA_MALE(FALSE)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES: changing to male personel: add $", GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_PERSONNEL, 1))
|
|
|
|
iOfficePersonnelPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_PERSONNEL, 1)
|
|
iCost += iOfficePersonnelPrice
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES: changing to female personel: add $", GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_PERSONNEL, 0))
|
|
|
|
iOfficePersonnelPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_PERSONNEL, 0)
|
|
iCost += iOfficePersonnelPrice
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
iOfficeNamePrice = 0
|
|
iOfficeFontPrice = 0
|
|
iOfficeColourPrice = 0
|
|
IF iOwned != iProperty
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES: new property, name change is free")
|
|
ELSE
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(g_sOfficeDataStruct.tl63NewOrgName)
|
|
TEXT_LABEL_63 tlGB_OFFICE_NAME = GET_MP_LONG_STRING_CHARACTER_STAT(MP_STAT_GB_OFFICE_NAME, MP_STAT_GB_OFFICE_NAME2)
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(tlGB_OFFICE_NAME)
|
|
AND NOT ARE_STRINGS_EQUAL(g_sOfficeDataStruct.tl63NewOrgName, tlGB_OFFICE_NAME)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES: Updating name from \"", tlGB_OFFICE_NAME, "\" to \"", g_sOfficeDataStruct.tl63NewOrgName, "\" (\"", g_sOfficeDataStruct.tl63OldOrgName, "\") add $", GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_NAME_ID))
|
|
iOfficeNamePrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_NAME_ID)
|
|
iCost += iOfficeNamePrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iFont != GET_MP_INT_CHARACTER_STAT(MP_STAT_FONT_PLAYER_OFFICE)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES: changing font from ", iFont, " to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_FONT_PLAYER_OFFICE), " add $", GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_FONT))
|
|
iOfficeFontPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_FONT)
|
|
iCost += iOfficeFontPrice
|
|
ENDIF
|
|
|
|
IF iColour != GET_MP_INT_CHARACTER_STAT(MP_STAT_COLOUR_PLAYER_OFFICE)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES: changing colour from ", iColour, " to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_COLOUR_PLAYER_OFFICE), " add $", GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_COLOUR))
|
|
iOfficeColourPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_COLOUR)
|
|
iCost += iOfficeColourPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
iOfficeGunLockerPrice = 0
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGunLocker)
|
|
IF iOwned != iProperty
|
|
iOfficeGunLockerPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_LOCKER_GUN)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES: Buying gunlocker: ", HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGunLocker), " add $", iOfficeGunLockerPrice)
|
|
iCost += iOfficeGunLockerPrice
|
|
ELIF NOT IS_OFFICE_GUN_LOCKER_PURCHASED()
|
|
iOfficeGunLockerPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_LOCKER_GUN)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES: Adding gunlocker: ", HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGunLocker), " add $", iOfficeGunLockerPrice)
|
|
iCost += iOfficeGunLockerPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
iOfficeVaultPrice = 0
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iVault)
|
|
IF iOwned != iProperty
|
|
iOfficeVaultPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_LOCKER_CASH)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES: Buying vault: ", HAS_SCALEFORM_OPTION_BEEN_SELECTED(iVault), " add $", iOfficeVaultPrice)
|
|
iCost += iOfficeVaultPrice
|
|
ELIF NOT IS_OFFICE_CASH_VAULT_PURCHASED()
|
|
iOfficeVaultPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_LOCKER_CASH)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES: Adding vault: ", HAS_SCALEFORM_OPTION_BEEN_SELECTED(iVault), " add $", iOfficeVaultPrice)
|
|
iCost += iOfficeVaultPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
iOfficeAccommodationPrice = 0
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iAccommodation)
|
|
IF iOwned != iProperty
|
|
iOfficeAccommodationPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_ACCOMMODATION)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES: Buying accommodation: ", HAS_SCALEFORM_OPTION_BEEN_SELECTED(iAccommodation), " add $", iOfficeAccommodationPrice)
|
|
iCost += iOfficeAccommodationPrice
|
|
ELIF NOT IS_OFFICE_ACCOMMODATION_PURCHASED()
|
|
iOfficeAccommodationPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_ACCOMMODATION)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES: Adding accommodation: ", HAS_SCALEFORM_OPTION_BEEN_SELECTED(iAccommodation), " add $", iOfficeAccommodationPrice)
|
|
iCost += iOfficeAccommodationPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
iOfficeModShopPrice = 0
|
|
IF iModShop != GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_MODSHOP)
|
|
INT iOfficePropertyModShopPrice = 0
|
|
INT iModshopSF = GET_SF_FROM_OFFICE_MODSHOP_INTERIOR(iModShop)
|
|
IF NOT IS_OFFICE_MODSHOP_PURCHASED()
|
|
iOfficePropertyModShopPrice = GET_OFFICE_PROPERTY_MODSHOP_VALUE(iProperty)
|
|
|
|
IF (iModshopSF = 0) //
|
|
iOfficeModShopPrice = 0
|
|
ELSE
|
|
iOfficeModShopPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_MODSHOP, iModshopSF+1)
|
|
ENDIF
|
|
ELSE
|
|
iOfficeModShopPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_MODSHOP, iModshopSF+1)
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES: Adding ModShop:", iModShop, " (iModshopSF:", iModshopSF, " ) add prop:$", iOfficePropertyModShopPrice, " + var:$", iOfficeModShopPrice, ", replacing ", GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_MODSHOP))
|
|
iOfficeModShopPrice += iOfficePropertyModShopPrice
|
|
iCost += iOfficeModShopPrice
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES: Total cost of changes: $", iCost)
|
|
RETURN iCost
|
|
ENDFUNC
|
|
|
|
FUNC INT CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES(INT iProperty,
|
|
INT &iClubhouseWallPrice, INT &iClubhouseHangingPrice, INT &iClubhouseFurniturePrice,
|
|
INT &iClubhouseColourPrice, INT &iClubhouseNamePrice,
|
|
INT &iClubhouseFontPrice, INT &iClubhouseFontColourPrice, INT &iClubhouseHideSinagePrice,
|
|
INT &iClubhouseEmblemPrice,
|
|
INT &iClubhouseGunLockerPrice, INT &iClubhouseGaragePrice)
|
|
INT iOwned = GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_CLUBHOUSE)
|
|
|
|
INT iCost = 0
|
|
INT iWall, iHanging, iFurniture, iColourScheme, iFont, iFontColour, iEmblem, iHideSinage, iGunLocker, iGarage
|
|
GET_SCALEFORM_CLUBHOUSE_DATA(iProperty, iWall, iHanging, iFurniture, iColourScheme, iFont, iFontColour, iEmblem, iHideSinage, iGunLocker, iGarage)
|
|
|
|
iClubhouseWallPrice = 0
|
|
IF iOwned != iProperty
|
|
IF iWall = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: new property, wall A is free")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: new property, wall from ", iWall, " to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_WALL), " add $", GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_WALL, iWall))
|
|
iClubhouseWallPrice = GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_WALL, iWall)
|
|
iCost += iClubhouseWallPrice
|
|
ENDIF
|
|
ELSE
|
|
IF iWall != GET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_WALL)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: changing wall from ", iWall, " to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_WALL), " add $", GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_WALL, iWall))
|
|
iClubhouseWallPrice = GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_WALL, iWall)
|
|
iCost += iClubhouseWallPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
iClubhouseHangingPrice = 0
|
|
IF iOwned != iProperty
|
|
IF iHanging = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: new property, hanging A is free")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: new property, hanging from ", iHanging, " to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_HANGING), " add $", GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_HANGING, iHanging))
|
|
iClubhouseHangingPrice = GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_HANGING, iHanging)
|
|
iCost += iClubhouseHangingPrice
|
|
ENDIF
|
|
ELSE
|
|
IF iHanging != GET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_HANGING)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: changing hanging from ", iHanging, " to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_HANGING), " add $", GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_HANGING, iHanging))
|
|
iClubhouseHangingPrice = GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_HANGING, iHanging)
|
|
iCost += iClubhouseHangingPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
iClubhouseFurniturePrice = 0
|
|
IF iOwned != iProperty
|
|
IF iFurniture = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: new property, Furniture A is free")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: new property, Furniture from ", iFurniture, " to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_FURNATURE), " add $", GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_FURNITURE, iFurniture))
|
|
iClubhouseFurniturePrice = GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_FURNITURE, iFurniture)
|
|
iCost += iClubhouseFurniturePrice
|
|
ENDIF
|
|
ELSE
|
|
IF iFurniture != GET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_FURNATURE)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: changing Furniture from ", iFurniture, " to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_FURNATURE), " add $", GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_FURNITURE, iFurniture))
|
|
iClubhouseFurniturePrice = GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_FURNITURE, iFurniture)
|
|
iCost += iClubhouseFurniturePrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
iClubhouseColourPrice = 0
|
|
IF iOwned != iProperty
|
|
OR GET_OWNED_PROPERTY_VARIATION(PROPERTY_OWNED_SLOT_CLUBHOUSE) != iColourScheme
|
|
#IF IS_DEBUG_BUILD
|
|
INT iOldColour = GET_OWNED_PROPERTY_VARIATION(PROPERTY_OWNED_SLOT_CLUBHOUSE)
|
|
INT iOldColourSF = -1
|
|
IF (iOldColour != 0)
|
|
iOldColourSF = GET_SF_FROM_CLUBHOUSE_INTERIOR(iProperty, iOldColour)
|
|
ENDIF
|
|
#ENDIF
|
|
INT iNewColourSF = GET_SF_FROM_CLUBHOUSE_INTERIOR(iProperty, iColourScheme)
|
|
|
|
iClubhouseColourPrice = GET_MP_PROPERTY_INTERIOR_VALUE(iNewColourSF, iProperty)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
// use GET_PROPERTY_INTERIOR_NAME(INT iIndex, INT iCurrentProperty) // //
|
|
TEXT_LABEL tlOldColour = "FC_MURAL_" //
|
|
tlOldColour += iOldColourSF //
|
|
TEXT_LABEL tlNewColour = "FC_MURAL_" //
|
|
tlNewColour += iNewColourSF //
|
|
// // // // // // // // // // // // // // // // // // // // // // // // //
|
|
// STRING sOldColourLabel = "null"
|
|
// IF DOES_TEXT_LABEL_EXIST(tlOldColour)
|
|
// sOldColourLabel = GET_STRING_FROM_TEXT_FILE(tlOldColour)
|
|
// ENDIF
|
|
// STRING sNewColourLabel = GET_STRING_FROM_TEXT_FILE(tlNewColour)
|
|
#ENDIF
|
|
|
|
IF iOwned != iProperty
|
|
IF iNewColourSF = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: new property, interior ",
|
|
tlOldColour, ":", iColourScheme,
|
|
" [sf:", iNewColourSF,
|
|
"] is free")
|
|
iClubhouseColourPrice = 0
|
|
ELSE
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL tlNewColourData = tlNewColour
|
|
tlNewColourData += ":"
|
|
tlNewColourData += iColourScheme
|
|
#ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: new property, interior to ",
|
|
tlNewColourData,
|
|
" [sf:", iNewColourSF,
|
|
"] add $", iClubhouseColourPrice, " ", GET_STRING_FROM_TEXT_FILE(tlNewColour))
|
|
iCost += iClubhouseColourPrice
|
|
ENDIF
|
|
ELSE
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL tlOldColourData = tlOldColour
|
|
tlOldColourData += ":"
|
|
tlOldColourData += iOldColour
|
|
TEXT_LABEL tlNewColourData = tlNewColour
|
|
tlNewColourData += ":"
|
|
tlNewColourData += iColourScheme
|
|
#ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: changing interior from ",
|
|
tlOldColourData,
|
|
" [sf:", iOldColourSF,
|
|
"] to ",
|
|
tlNewColourData,
|
|
" [sf:", iNewColourSF,
|
|
"] add $", iClubhouseColourPrice, " ", GET_STRING_FROM_TEXT_FILE(tlNewColour))
|
|
iCost += iClubhouseColourPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
iClubhouseNamePrice = 0
|
|
iClubhouseFontPrice = 0
|
|
iClubhouseFontColourPrice = 0
|
|
iClubhouseHideSinagePrice = 0
|
|
IF iOwned != iProperty
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: new property, name change is free")
|
|
ELSE
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(g_sClubhouseDataStruct.tl63NewSignage)
|
|
TEXT_LABEL_63 tlGB_Clubhouse_NAME = GET_MP_LONG_STRING_CHARACTER_STAT(MP_STAT_MC_CLBHOSE_NAME, MP_STAT_MC_CLBHOSE_NAME2)
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(tlGB_Clubhouse_NAME)
|
|
AND NOT ARE_STRINGS_EQUAL(g_sClubhouseDataStruct.tl63NewSignage, tlGB_Clubhouse_NAME)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: Updating name from \"", tlGB_Clubhouse_NAME, "\" to \"", g_sClubhouseDataStruct.tl63NewSignage, "\" (\"", g_sClubhouseDataStruct.tl63OldSignage, "\") add $", GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_NAME_ID, 1))
|
|
iClubhouseNamePrice = GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_NAME_ID, 1)
|
|
iCost += iClubhouseNamePrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iFont != GET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_FONT)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: changing font from ", iFont, " to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_FONT), " add $", GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_FONT))
|
|
iClubhouseFontPrice = GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_FONT)
|
|
iCost += iClubhouseFontPrice
|
|
ENDIF
|
|
|
|
IF iFontColour != GET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_COLOUR)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: changing font colour from ", iFontColour, " to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_COLOUR), " add $", GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_FONT_COLOUR))
|
|
iClubhouseFontColourPrice = GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_FONT_COLOUR)
|
|
iCost += iClubhouseFontColourPrice
|
|
ENDIF
|
|
|
|
IF iHideSinage != GET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_SINAGEHIDE)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: changing hide signage from ", iHideSinage, " to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_SINAGEHIDE), " add $", GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_HIDE_SINAGE))
|
|
iClubhouseHideSinagePrice = GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_HIDE_SINAGE)
|
|
iCost += iClubhouseHideSinagePrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
iClubhouseEmblemPrice = 0
|
|
IF iOwned != iProperty
|
|
IF iEmblem = iCONST_DEFAULT_FREE_CLUBHOUSE_EMBLEM //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: new property, Emblem A is free")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: new property, Emblem from ", iEmblem, " to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_EMBLEM), " add $", GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_EMBLEM, iEmblem))
|
|
iClubhouseEmblemPrice = GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_EMBLEM, iEmblem)
|
|
iCost += iClubhouseEmblemPrice
|
|
ENDIF
|
|
ELSE
|
|
IF iEmblem != GET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_EMBLEM)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: changing Emblem from ", iEmblem, " to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_EMBLEM), " add $", GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_EMBLEM, iEmblem))
|
|
iClubhouseEmblemPrice = GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_EMBLEM, iEmblem)
|
|
iCost += iClubhouseEmblemPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
iClubhouseGunLockerPrice = 0
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGunLocker)
|
|
IF iOwned != iProperty
|
|
iClubhouseGunLockerPrice = GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_LOCKER_GUN, 1)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: Buying gunlocker: ", HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGunLocker), " add $", iClubhouseGunLockerPrice)
|
|
iCost += iClubhouseGunLockerPrice
|
|
ELIF NOT IS_CLUBHOUSE_GUN_LOCKER_PURCHASED()
|
|
iClubhouseGunLockerPrice = GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_LOCKER_GUN, 1)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: Adding gunlocker: ", HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGunLocker), " add $", iClubhouseGunLockerPrice)
|
|
iCost += iClubhouseGunLockerPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
iClubhouseGaragePrice = 0
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGarage)
|
|
IF iOwned != iProperty
|
|
iClubhouseGaragePrice = GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_GARAGE, 1)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: Buying Garage: ", HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGarage), " add $", iClubhouseGaragePrice)
|
|
iCost += iClubhouseGaragePrice
|
|
ELIF NOT IS_CLUBHOUSE_GARAGE_PURCHASED()
|
|
iClubhouseGaragePrice = GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_GARAGE, 1)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: Adding Garage: ", HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGarage), " add $", iClubhouseGaragePrice)
|
|
iCost += iClubhouseGaragePrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES: Total cost of changes: $", iCost)
|
|
RETURN iCost
|
|
ENDFUNC
|
|
|
|
FUNC INT CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES(INT iProperty,
|
|
INT &iOfficeGarage1StylePrice,
|
|
INT &iOfficeGarage1LightingPrice,
|
|
INT &iOfficeGarage1NumberPrice,
|
|
INT &iOfficeGarage2StylePrice,
|
|
INT &iOfficeGarage2LightingPrice,
|
|
INT &iOfficeGarage2NumberPrice,
|
|
INT &iOfficeGarage3StylePrice,
|
|
INT &iOfficeGarage3LightingPrice,
|
|
INT &iOfficeGarage3NumberPrice)
|
|
|
|
INT iCost = 0
|
|
INT iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop
|
|
GET_SCALEFORM_OFFICE_DATA(iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop)
|
|
|
|
INT iOwnedGarage1 = GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1)
|
|
iOfficeGarage1StylePrice = 0
|
|
iOfficeGarage1LightingPrice = 0
|
|
iOfficeGarage1NumberPrice = 0
|
|
IF iProperty = PROPERTY_OFFICE_1_GARAGE_LVL1
|
|
IF GET_OWNED_PROPERTY_VARIATION(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1) != iGarage1Style
|
|
AND iGarage1Style != -1
|
|
#IF IS_DEBUG_BUILD
|
|
INT iOldGarage = GET_OWNED_PROPERTY_VARIATION(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1)
|
|
INT iOldGarageSF = -1
|
|
IF (iOldGarage != 0)
|
|
iOldGarageSF = GET_SF_FROM_OFFICE_GARAGE_INTERIOR(iOldGarage)
|
|
ENDIF
|
|
#ENDIF
|
|
INT iNewGarageSF = GET_SF_FROM_OFFICE_GARAGE_INTERIOR(iGarage1Style)
|
|
|
|
iOfficeGarage1StylePrice = GET_MP_PROPERTY_INTERIOR_VALUE(iNewGarageSF, iProperty)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL tlOldGarage = GET_PROPERTY_INTERIOR_NAME(iProperty, iOldGarageSF)
|
|
TEXT_LABEL tlNewGarage = GET_PROPERTY_INTERIOR_NAME(iProperty, iNewGarageSF)
|
|
#ENDIF
|
|
|
|
IF iOwnedGarage1 != iProperty
|
|
IF iNewGarageSF = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: new property, garage 1 style ",
|
|
tlOldGarage, ":", iGarage1Style,
|
|
" [sf:", iNewGarageSF,
|
|
"] is free")
|
|
iOfficeGarage1StylePrice = 0
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: new property, garage 1 Style from ", iNewGarageSF, " to ", GET_OWNED_PROPERTY_VARIATION(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1), " add $", GET_MP_PROPERTY_INTERIOR_VALUE(iNewGarageSF, iProperty))
|
|
iOfficeGarage1StylePrice = GET_MP_PROPERTY_INTERIOR_VALUE(iNewGarageSF, iProperty)
|
|
iCost += iOfficeGarage1StylePrice
|
|
ENDIF
|
|
ELSE
|
|
IF iGarage1Style = GET_OWNED_PROPERTY_VARIATION(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: unchanging garage 1 Style ",
|
|
tlOldGarage, ":", iGarage1Style,
|
|
" [sf:", iNewGarageSF,
|
|
"] is free")
|
|
iOfficeGarage1StylePrice = 0
|
|
ELSE
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL tlOldGarageData = tlOldGarage
|
|
tlOldGarageData += ":"
|
|
tlOldGarageData += iOldGarage
|
|
TEXT_LABEL tlNewGarageData = tlNewGarage
|
|
tlNewGarageData += ":"
|
|
tlNewGarageData += iGarage1Style
|
|
#ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: changing garage 1 style from ",
|
|
tlOldGarageData,
|
|
" [sf:", iOldGarageSF,
|
|
"] to ",
|
|
tlNewGarageData,
|
|
" [sf:", iNewGarageSF,
|
|
"] add $", iOfficeGarage1StylePrice, " ", GET_STRING_FROM_TEXT_FILE(tlNewGarage))
|
|
iOfficeGarage1StylePrice = GET_MP_PROPERTY_INTERIOR_VALUE(iNewGarageSF, iProperty)
|
|
iCost += iOfficeGarage1StylePrice
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: ignore garage 1 style ", iGarage1Style)
|
|
ENDIF
|
|
|
|
IF iGarage1Lighting != -1
|
|
INT iGarage1LightingSF = GET_SF_FROM_OFFICE_GARAGE_LIGHTING(iGarage1Lighting)
|
|
IF iOwnedGarage1 != iProperty
|
|
IF iGarage1LightingSF = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: new property, garage 1 lighting ", iGarage1Lighting, " (iGarage1LightingSF:", iGarage1LightingSF, ") is free")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: new property, garage 1 lighting from ", iGarage1Lighting, " (iGarage1LightingSF:", iGarage1LightingSF, ") to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR1_LIGHTING), " add 1", GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE1_LIGHTING, iGarage1Lighting))
|
|
iOfficeGarage1LightingPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE1_LIGHTING, iGarage1LightingSF)
|
|
iCost += iOfficeGarage1LightingPrice
|
|
ENDIF
|
|
ELSE
|
|
IF iGarage1Lighting != GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR1_LIGHTING)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: changing garage 1 lighting from ", iGarage1Lighting, " (iGarage1LightingSF:", iGarage1LightingSF, ") to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR1_LIGHTING), " add 1", GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE1_LIGHTING, iGarage1Lighting))
|
|
iOfficeGarage1LightingPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE1_LIGHTING, iGarage1LightingSF)
|
|
iCost += iOfficeGarage1LightingPrice
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: ignore garage 1 lighting ", iGarage1Lighting)
|
|
ENDIF
|
|
|
|
IF iGarage1Number != -1
|
|
INT iGarage1NumberSF = GET_SF_FROM_OFFICE_GARAGE_NUMBERING(iGarage1Number)
|
|
IF iOwnedGarage1 != iProperty
|
|
IF iGarage1NumberSF = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: new property, garage 1 number ", iGarage1Number, " (iGarage1NumberSF:", iGarage1NumberSF, ") is free")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: new property, garage 1 number from ", iGarage1Number, " (iGarage1NumberSF:", iGarage1NumberSF, ") to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR1_NUMBERING), " add 1", GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE1_NUMBERING, iGarage1Number))
|
|
iOfficeGarage1NumberPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE1_NUMBERING, iGarage1NumberSF)
|
|
iCost += iOfficeGarage1NumberPrice
|
|
ENDIF
|
|
ELSE
|
|
IF iGarage1Number != GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR1_NUMBERING)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: changing garage 1 number from ", iGarage1Number, " (iGarage1NumberSF:", iGarage1NumberSF, ") to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR1_NUMBERING), " add 1", GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE1_NUMBERING, iGarage1Number))
|
|
iOfficeGarage1NumberPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE1_NUMBERING, iGarage1NumberSF)
|
|
iCost += iOfficeGarage1NumberPrice
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: ignore garage 1 number ", iGarage1Number)
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: ignore garage 1, iProperty:", iProperty)
|
|
ENDIF
|
|
|
|
INT iOwnedGarage2 = GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2)
|
|
iOfficeGarage2StylePrice = 0
|
|
iOfficeGarage2LightingPrice = 0
|
|
iOfficeGarage2NumberPrice = 0
|
|
IF iProperty = PROPERTY_OFFICE_1_GARAGE_LVL2
|
|
IF GET_OWNED_PROPERTY_VARIATION(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2) != iGarage2Style
|
|
AND iGarage2Style != -1
|
|
#IF IS_DEBUG_BUILD
|
|
INT iOldGarage = GET_OWNED_PROPERTY_VARIATION(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2)
|
|
INT iOldGarageSF = -1
|
|
IF (iOldGarage != 0)
|
|
iOldGarageSF = GET_SF_FROM_OFFICE_GARAGE_INTERIOR(iOldGarage)
|
|
ENDIF
|
|
#ENDIF
|
|
INT iNewGarageSF = GET_SF_FROM_OFFICE_GARAGE_INTERIOR(iGarage2Style)
|
|
|
|
iOfficeGarage2StylePrice = GET_MP_PROPERTY_INTERIOR_VALUE(iNewGarageSF, iProperty)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL tlOldGarage = GET_PROPERTY_INTERIOR_NAME(iProperty, iOldGarageSF)
|
|
TEXT_LABEL tlNewGarage = GET_PROPERTY_INTERIOR_NAME(iProperty, iNewGarageSF)
|
|
#ENDIF
|
|
|
|
IF iOwnedGarage2 != iProperty
|
|
IF iNewGarageSF = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: new property, garage 2 style ",
|
|
tlOldGarage, ":", iGarage2Style,
|
|
" [sf:", iNewGarageSF,
|
|
"] is free")
|
|
iOfficeGarage2StylePrice = 0
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: new property, garage 2 style from ", iNewGarageSF, " to ", GET_OWNED_PROPERTY_VARIATION(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2), " add $", GET_MP_PROPERTY_INTERIOR_VALUE(iNewGarageSF, iProperty))
|
|
iOfficeGarage2StylePrice = GET_MP_PROPERTY_INTERIOR_VALUE(iNewGarageSF, iProperty)
|
|
iCost += iOfficeGarage2StylePrice
|
|
ENDIF
|
|
ELSE
|
|
IF iGarage2Style = GET_OWNED_PROPERTY_VARIATION(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: unchanging garage 2 style ",
|
|
tlOldGarage, ":", iGarage2Style,
|
|
" [sf:", iNewGarageSF,
|
|
"] is free")
|
|
iOfficeGarage2StylePrice = 0
|
|
ELSE
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL tlOldGarageData = tlOldGarage
|
|
tlOldGarageData += ":"
|
|
tlOldGarageData += iOldGarage
|
|
TEXT_LABEL tlNewGarageData = tlNewGarage
|
|
tlNewGarageData += ":"
|
|
tlNewGarageData += iGarage2Style
|
|
#ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: changing garage 2 style from ",
|
|
tlOldGarageData,
|
|
" [sf:", iOldGarageSF,
|
|
"] to ",
|
|
tlNewGarageData,
|
|
" [sf:", iNewGarageSF,
|
|
"] add $", iOfficeGarage2StylePrice, " ", GET_STRING_FROM_TEXT_FILE(tlNewGarage))
|
|
iOfficeGarage2StylePrice = GET_MP_PROPERTY_INTERIOR_VALUE(iNewGarageSF, iProperty)
|
|
iCost += iOfficeGarage2StylePrice
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: ignore garage 2 style ", iGarage2Style)
|
|
ENDIF
|
|
|
|
IF iGarage2Lighting != -1
|
|
INT iGarage2LightingSF = GET_SF_FROM_OFFICE_GARAGE_LIGHTING(iGarage2Lighting)
|
|
IF iOwnedGarage2 != iProperty
|
|
IF iGarage2LightingSF = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: new property, garage 2 lighting ", iGarage2Lighting, " (iGarage2LightingSF:", iGarage2LightingSF, ") is free")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: new property, garage 2 lighting from ", iGarage2Lighting, " (iGarage2LightingSF:", iGarage2LightingSF, ") to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR2_LIGHTING), " add 2", GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE2_LIGHTING, iGarage2Lighting))
|
|
iOfficeGarage2LightingPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE2_LIGHTING, iGarage2LightingSF)
|
|
iCost += iOfficeGarage2LightingPrice
|
|
ENDIF
|
|
ELSE
|
|
IF iGarage2Lighting != GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR2_LIGHTING)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: changing garage 2 lighting from ", iGarage2Lighting, " (iGarage2LightingSF:", iGarage2LightingSF, ") to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR2_LIGHTING), " add 2", GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE2_LIGHTING, iGarage2Lighting))
|
|
iOfficeGarage2LightingPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE2_LIGHTING, iGarage2LightingSF)
|
|
iCost += iOfficeGarage2LightingPrice
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: ignore garage 2 lighting ", iGarage2Lighting)
|
|
ENDIF
|
|
|
|
IF iGarage2Number != -1
|
|
INT iGarage2NumberSF = GET_SF_FROM_OFFICE_GARAGE_NUMBERING(iGarage2Number)
|
|
IF iOwnedGarage2 != iProperty
|
|
IF iGarage2NumberSF = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: new property, garage 2 number ", iGarage2Number, " (iGarage2NumberSF:", iGarage2NumberSF, ") is free")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: new property, garage 2 number from ", iGarage2Number, " (iGarage2NumberSF:", iGarage2NumberSF, ") to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR2_NUMBERING), " add 2", GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE2_NUMBERING, iGarage2Number))
|
|
iOfficeGarage2NumberPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE2_NUMBERING, iGarage2NumberSF)
|
|
iCost += iOfficeGarage2NumberPrice
|
|
ENDIF
|
|
ELSE
|
|
IF iGarage2Number != GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR2_NUMBERING)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: changing garage 2 number from ", iGarage2Number, " (iGarage2NumberSF:", iGarage2NumberSF, ") to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR2_NUMBERING), " add 2", GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE2_NUMBERING, iGarage2Number))
|
|
iOfficeGarage2NumberPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE2_NUMBERING, iGarage2NumberSF)
|
|
iCost += iOfficeGarage2NumberPrice
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: ignore garage 2 number ", iGarage2Number)
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: ignore garage 2, iProperty:", iProperty)
|
|
ENDIF
|
|
|
|
INT iOwnedGarage3 = GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3)
|
|
iOfficeGarage3StylePrice = 0
|
|
iOfficeGarage3LightingPrice = 0
|
|
iOfficeGarage3NumberPrice = 0
|
|
IF iProperty = PROPERTY_OFFICE_1_GARAGE_LVL3
|
|
IF GET_OWNED_PROPERTY_VARIATION(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3) != iGarage3Style
|
|
AND iGarage3Style != -1
|
|
#IF IS_DEBUG_BUILD
|
|
INT iOldGarage = GET_OWNED_PROPERTY_VARIATION(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3)
|
|
INT iOldGarageSF = -1
|
|
IF (iOldGarage != 0)
|
|
iOldGarageSF = GET_SF_FROM_OFFICE_GARAGE_INTERIOR(iOldGarage)
|
|
ENDIF
|
|
#ENDIF
|
|
INT iNewGarageSF = GET_SF_FROM_OFFICE_GARAGE_INTERIOR(iGarage3Style)
|
|
|
|
iOfficeGarage3StylePrice = GET_MP_PROPERTY_INTERIOR_VALUE(iNewGarageSF, iProperty)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL tlOldGarage = GET_PROPERTY_INTERIOR_NAME(iProperty, iOldGarageSF)
|
|
TEXT_LABEL tlNewGarage = GET_PROPERTY_INTERIOR_NAME(iProperty, iNewGarageSF)
|
|
#ENDIF
|
|
|
|
IF iOwnedGarage3 != iProperty
|
|
IF iNewGarageSF = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: new property, garage 3 style ",
|
|
tlOldGarage, ":", iGarage3Style,
|
|
" [sf:", iNewGarageSF,
|
|
"] is free")
|
|
iOfficeGarage3StylePrice = 0
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: new property, garage 3 style from ", iNewGarageSF, " to ", GET_OWNED_PROPERTY_VARIATION(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3), " add $", GET_MP_PROPERTY_INTERIOR_VALUE(iNewGarageSF, iProperty))
|
|
iOfficeGarage3StylePrice = GET_MP_PROPERTY_INTERIOR_VALUE(iNewGarageSF, iProperty)
|
|
iCost += iOfficeGarage3StylePrice
|
|
ENDIF
|
|
ELSE
|
|
IF iGarage3Style = GET_OWNED_PROPERTY_VARIATION(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: unchanging garage 3 style ",
|
|
tlOldGarage, ":", iGarage3Style,
|
|
" [sf:", iNewGarageSF,
|
|
"] is free")
|
|
iOfficeGarage3StylePrice = 0
|
|
ELSE
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL tlOldGarageData = tlOldGarage
|
|
tlOldGarageData += ":"
|
|
tlOldGarageData += iOldGarage
|
|
TEXT_LABEL tlNewGarageData = tlNewGarage
|
|
tlNewGarageData += ":"
|
|
tlNewGarageData += iGarage3Style
|
|
#ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: changing garage 3 style from ",
|
|
tlOldGarageData,
|
|
" [sf:", iOldGarageSF,
|
|
"] to ",
|
|
tlNewGarageData,
|
|
" [sf:", iNewGarageSF,
|
|
"] add $", iOfficeGarage3StylePrice, " ", GET_STRING_FROM_TEXT_FILE(tlNewGarage))
|
|
iOfficeGarage3StylePrice = GET_MP_PROPERTY_INTERIOR_VALUE(iNewGarageSF, iProperty)
|
|
iCost += iOfficeGarage3StylePrice
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: ignore garage 3 style ", iGarage3Style)
|
|
ENDIF
|
|
|
|
IF iGarage3Lighting != -1
|
|
INT iGarage3LightingSF = GET_SF_FROM_OFFICE_GARAGE_LIGHTING(iGarage3Lighting)
|
|
IF iOwnedGarage3 != iProperty
|
|
IF iGarage3LightingSF = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: new property, garage 3 lighting ", iGarage3Lighting, " (iGarage3LightingSF:", iGarage3LightingSF, ") is free")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: new property, garage 3 lighting from ", iGarage3Lighting, " (iGarage3LightingSF:", iGarage3LightingSF, ") to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR3_LIGHTING), " add 3", GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE3_LIGHTING, iGarage3Lighting))
|
|
iOfficeGarage3LightingPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE3_LIGHTING, iGarage3LightingSF)
|
|
iCost += iOfficeGarage3LightingPrice
|
|
ENDIF
|
|
ELSE
|
|
IF iGarage3Lighting != GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR3_LIGHTING)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: changing garage 3 lighting from ", iGarage3Lighting, " (iGarage3LightingSF:", iGarage3LightingSF, ") to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR3_LIGHTING), " add 3", GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE3_LIGHTING, iGarage3Lighting))
|
|
iOfficeGarage3LightingPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE3_LIGHTING, iGarage3LightingSF)
|
|
iCost += iOfficeGarage3LightingPrice
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: ignore garage 3 lighting ", iGarage3Lighting)
|
|
ENDIF
|
|
|
|
IF iGarage3Number != -1
|
|
INT iGarage3NumberSF = GET_SF_FROM_OFFICE_GARAGE_NUMBERING(iGarage3Number)
|
|
IF iOwnedGarage3 != iProperty
|
|
IF iGarage3NumberSF = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: new property, garage 3 number ", iGarage3Number, " (iGarage3NumberSF:", iGarage3NumberSF, ") is free")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: new property, garage 3 number from ", iGarage3Number, " (iGarage3NumberSF:", iGarage3NumberSF, ") to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR3_NUMBERING), " add 3", GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE3_NUMBERING, iGarage3Number))
|
|
iOfficeGarage3NumberPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE3_NUMBERING, iGarage3NumberSF)
|
|
iCost += iOfficeGarage3NumberPrice
|
|
ENDIF
|
|
ELSE
|
|
IF iGarage3Number != GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR3_NUMBERING)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: changing garage 3 number from ", iGarage3Number, " (iGarage3NumberSF:", iGarage3NumberSF, ") to ", GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR3_NUMBERING), " add 3", GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE3_NUMBERING, iGarage3Number))
|
|
iOfficeGarage3NumberPrice = GET_OFFICE_PROPERTY_MOD_VALUE(OFFICE_MOD_GARAGE3_NUMBERING, iGarage3NumberSF)
|
|
iCost += iOfficeGarage3NumberPrice
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: ignore garage 3 number ", iGarage3Number)
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: ignore garage 3, iProperty:", iProperty)
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES: Total cost of changes: $", iCost)
|
|
RETURN iCost
|
|
ENDFUNC
|
|
|
|
FUNC INT CALCULATE_COST_OF_BUNKER_INTERIOR_UPGRADES(FACTORY_ID eFactoryId, BUNKER_PRICE_STRUCT &sBunkerPriceStruct)
|
|
FACTORY_ID eTradeInFactory = GET_OWNED_BUNKER(PLAYER_ID())
|
|
|
|
INT iCost = 0
|
|
|
|
INT iDecor, iAccommodation, iFiringRange, iGunLocker, iTransportation
|
|
GET_SCALEFORM_FACTORY_DATA(iDecor, iAccommodation, iFiringRange, iGunLocker, iTransportation)
|
|
|
|
sBunkerPriceStruct.iDecorPrice = 0
|
|
IF eTradeInFactory != eFactoryId
|
|
IF iDecor = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_BUNKER_INTERIOR_UPGRADES: new property, Decor A is free")
|
|
ELSE
|
|
SWITCH iDecor
|
|
CASE 0 sBunkerPriceStruct.iDecorPrice = GET_FACTORY_UPGRADE_COST(UPGRADE_ID_DECOR_0, eFactoryId) BREAK
|
|
CASE 1 sBunkerPriceStruct.iDecorPrice = GET_FACTORY_UPGRADE_COST(UPGRADE_ID_DECOR_1, eFactoryId) BREAK
|
|
CASE 2 sBunkerPriceStruct.iDecorPrice = GET_FACTORY_UPGRADE_COST(UPGRADE_ID_DECOR_2, eFactoryId) BREAK
|
|
ENDSWITCH
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_BUNKER_INTERIOR_UPGRADES: new property, Decor to ", iDecor, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_DECOR), " add $", sBunkerPriceStruct.iDecorPrice)
|
|
iCost += sBunkerPriceStruct.iDecorPrice
|
|
ENDIF
|
|
ELSE
|
|
IF iDecor != GET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_DECOR)
|
|
SWITCH iDecor
|
|
CASE 0 sBunkerPriceStruct.iDecorPrice = GET_FACTORY_UPGRADE_COST(UPGRADE_ID_DECOR_0, eFactoryId) BREAK
|
|
CASE 1 sBunkerPriceStruct.iDecorPrice = GET_FACTORY_UPGRADE_COST(UPGRADE_ID_DECOR_1, eFactoryId) BREAK
|
|
CASE 2 sBunkerPriceStruct.iDecorPrice = GET_FACTORY_UPGRADE_COST(UPGRADE_ID_DECOR_2, eFactoryId) BREAK
|
|
ENDSWITCH
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_BUNKER_INTERIOR_UPGRADES: changing Decor to ", iDecor, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_DECOR), " add $", sBunkerPriceStruct.iDecorPrice)
|
|
iCost += sBunkerPriceStruct.iDecorPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sBunkerPriceStruct.iAccommodationPrice = 0
|
|
IF eTradeInFactory != eFactoryId
|
|
IF iAccommodation = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_BUNKER_INTERIOR_UPGRADES: new property, Accommodation A is free")
|
|
ELSE
|
|
sBunkerPriceStruct.iAccommodationPrice = GET_FACTORY_UPGRADE_COST(UPGRADE_ID_PERSONAL_QUARTERS, eFactoryId)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_BUNKER_INTERIOR_UPGRADES: new property, Accommodation to ", iAccommodation, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_SAVEBED), " add $", sBunkerPriceStruct.iAccommodationPrice)
|
|
iCost += sBunkerPriceStruct.iAccommodationPrice
|
|
ENDIF
|
|
ELSE
|
|
IF iAccommodation != GET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_SAVEBED)
|
|
sBunkerPriceStruct.iAccommodationPrice = GET_FACTORY_UPGRADE_COST(UPGRADE_ID_PERSONAL_QUARTERS, eFactoryId)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_BUNKER_INTERIOR_UPGRADES: changing Accommodation to ", iAccommodation, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_SAVEBED), " add $", sBunkerPriceStruct.iAccommodationPrice)
|
|
iCost += sBunkerPriceStruct.iAccommodationPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sBunkerPriceStruct.iFiringRangePrice = 0
|
|
IF eTradeInFactory != eFactoryId
|
|
IF iFiringRange = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_BUNKER_INTERIOR_UPGRADES: new property, FiringRange A is free")
|
|
ELSE
|
|
SWITCH iFiringRange
|
|
CASE 0 sBunkerPriceStruct.iFiringRangePrice = 0 BREAK
|
|
CASE 1 sBunkerPriceStruct.iFiringRangePrice = GET_FACTORY_UPGRADE_COST(UPGRADE_ID_FIRING_RANGE_0, eFactoryId) BREAK
|
|
CASE 2 sBunkerPriceStruct.iFiringRangePrice = GET_FACTORY_UPGRADE_COST(UPGRADE_ID_FIRING_RANGE_1, eFactoryId) BREAK
|
|
ENDSWITCH
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_BUNKER_INTERIOR_UPGRADES: new property, FiringRange to ", iFiringRange, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_FIRING_RANGE), " add $", sBunkerPriceStruct.iFiringRangePrice)
|
|
iCost += sBunkerPriceStruct.iFiringRangePrice
|
|
ENDIF
|
|
ELSE
|
|
IF iFiringRange != GET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_FIRING_RANGE)
|
|
SWITCH iFiringRange
|
|
CASE 0 sBunkerPriceStruct.iFiringRangePrice = 0 BREAK
|
|
CASE 1 sBunkerPriceStruct.iFiringRangePrice = GET_FACTORY_UPGRADE_COST(UPGRADE_ID_FIRING_RANGE_0, eFactoryId) BREAK
|
|
CASE 2 sBunkerPriceStruct.iFiringRangePrice = GET_FACTORY_UPGRADE_COST(UPGRADE_ID_FIRING_RANGE_1, eFactoryId) BREAK
|
|
ENDSWITCH
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_BUNKER_INTERIOR_UPGRADES: changing FiringRange to ", iFiringRange, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_FIRING_RANGE), " add $", sBunkerPriceStruct.iFiringRangePrice)
|
|
iCost += sBunkerPriceStruct.iFiringRangePrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sBunkerPriceStruct.iGunLockerPrice = 0
|
|
IF eTradeInFactory != eFactoryId
|
|
IF iGunLocker = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_BUNKER_INTERIOR_UPGRADES: new property, GunLocker A is free")
|
|
ELSE
|
|
sBunkerPriceStruct.iGunLockerPrice = GET_FACTORY_UPGRADE_COST(UPGRADE_ID_GUN_LOCKER, eFactoryId)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_BUNKER_INTERIOR_UPGRADES: new property, GunLocker to ", iGunLocker, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_GUNLOCKER), " add $", sBunkerPriceStruct.iGunLockerPrice)
|
|
iCost += sBunkerPriceStruct.iGunLockerPrice
|
|
ENDIF
|
|
ELSE
|
|
IF iGunLocker != GET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_GUNLOCKER)
|
|
sBunkerPriceStruct.iGunLockerPrice = GET_FACTORY_UPGRADE_COST(UPGRADE_ID_GUN_LOCKER, eFactoryId)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_BUNKER_INTERIOR_UPGRADES: changing GunLocker to ", iGunLocker, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_GUNLOCKER), " add $", sBunkerPriceStruct.iGunLockerPrice)
|
|
iCost += sBunkerPriceStruct.iGunLockerPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sBunkerPriceStruct.iTransportationPrice = 0
|
|
IF eTradeInFactory != eFactoryId
|
|
IF iTransportation = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_BUNKER_INTERIOR_UPGRADES: new property, Transportation A is free")
|
|
ELSE
|
|
SWITCH iTransportation
|
|
CASE 0 sBunkerPriceStruct.iTransportationPrice = 0 BREAK
|
|
CASE 1 sBunkerPriceStruct.iTransportationPrice = GET_FACTORY_UPGRADE_COST(UPGRADE_ID_TRANSPORTATION_0, eFactoryId) BREAK
|
|
CASE 2 sBunkerPriceStruct.iTransportationPrice = GET_FACTORY_UPGRADE_COST(UPGRADE_ID_TRANSPORTATION_1, eFactoryId) BREAK
|
|
ENDSWITCH
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_BUNKER_INTERIOR_UPGRADES: new property, Transportation to ", iTransportation, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_TRANSPORTATION), " add $", sBunkerPriceStruct.iTransportationPrice)
|
|
iCost += sBunkerPriceStruct.iTransportationPrice
|
|
ENDIF
|
|
ELSE
|
|
IF iTransportation != GET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_TRANSPORTATION)
|
|
SWITCH iTransportation
|
|
CASE 0 sBunkerPriceStruct.iTransportationPrice = 0 BREAK
|
|
CASE 1 sBunkerPriceStruct.iTransportationPrice = GET_FACTORY_UPGRADE_COST(UPGRADE_ID_TRANSPORTATION_0, eFactoryId) BREAK
|
|
CASE 2 sBunkerPriceStruct.iTransportationPrice = GET_FACTORY_UPGRADE_COST(UPGRADE_ID_TRANSPORTATION_1, eFactoryId) BREAK
|
|
ENDSWITCH
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_BUNKER_INTERIOR_UPGRADES: changing Transportation to ", iTransportation, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_TRANSPORTATION), " add $", sBunkerPriceStruct.iTransportationPrice)
|
|
iCost += sBunkerPriceStruct.iTransportationPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_BUNKER_INTERIOR_UPGRADES: Total cost of changes: $", iCost)
|
|
RETURN iCost
|
|
ENDFUNC
|
|
|
|
FUNC INT CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES(HANGAR_ID eHangarID, HANGAR_PRICE_STRUCT &sHangarPriceStruct)
|
|
HANGAR_ID eTradeInHangar = GET_PLAYERS_OWNED_HANGAR(PLAYER_ID())
|
|
|
|
INT iCost = 0
|
|
|
|
HANGAR_DATA_STRUCT sHangarData
|
|
GET_SCALEFORM_HANGAR_DATA(sHangarData)
|
|
|
|
sHangarPriceStruct.iFlooringPrice = 0
|
|
IF eTradeInHangar != eHangarID
|
|
IF sHangarData.iFlooring = 4 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES: new property, FloorDecal A is free")
|
|
ELSE
|
|
sHangarPriceStruct.iFlooringPrice = GET_HANGAR_UPGRADE_COST(eHANGAR_MOD_FLOORING, eHangarID, sHangarData.iFlooring)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES: new property, FloorDecal to ", sHangarData.iFlooring, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_FLOOR_DECAL), " add $", sHangarPriceStruct.iFlooringPrice)
|
|
iCost += sHangarPriceStruct.iFlooringPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sHangarData.iFlooring != GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_FLOOR_DECAL)
|
|
sHangarPriceStruct.iFlooringPrice = GET_HANGAR_UPGRADE_COST(eHANGAR_MOD_FLOORING, eHangarID, sHangarData.iFlooring)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES: changing FloorDecal to ", sHangarData.iFlooring, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_FLOOR_DECAL), " add $", sHangarPriceStruct.iFlooringPrice)
|
|
iCost += sHangarPriceStruct.iFlooringPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sHangarPriceStruct.iAccommodationPrice = 0
|
|
IF eTradeInHangar != eHangarID
|
|
IF sHangarData.iSleepingQuarters = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES: new property, Accommodation A is free")
|
|
ELSE
|
|
sHangarPriceStruct.iAccommodationPrice = GET_HANGAR_UPGRADE_COST(eHANGAR_MOD_PERSONAL_QUARTERS, eHangarID, sHangarData.iSleepingQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES: new property, Accommodation to ", sHangarData.iSleepingQuarters, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_SAVEBED), " add $", sHangarPriceStruct.iAccommodationPrice)
|
|
iCost += sHangarPriceStruct.iAccommodationPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sHangarData.iSleepingQuarters != GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_SAVEBED)
|
|
sHangarPriceStruct.iAccommodationPrice = GET_HANGAR_UPGRADE_COST(eHANGAR_MOD_PERSONAL_QUARTERS, eHangarID, sHangarData.iSleepingQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES: changing Accommodation to ", sHangarData.iSleepingQuarters, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_SAVEBED), " add $", sHangarPriceStruct.iAccommodationPrice)
|
|
iCost += sHangarPriceStruct.iAccommodationPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sHangarPriceStruct.iFurniturePrice = 0
|
|
IF eTradeInHangar != eHangarID
|
|
IF sHangarData.iFurniture = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES: new property, Furniture A is free")
|
|
ELSE
|
|
sHangarPriceStruct.iFurniturePrice = GET_HANGAR_UPGRADE_COST(eHANGAR_MOD_FURNITURE, eHangarID, sHangarData.iFurniture)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES: new property, Furniture to ", sHangarData.iFurniture, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_FURNITURE), " add $", sHangarPriceStruct.iFurniturePrice)
|
|
iCost += sHangarPriceStruct.iFurniturePrice
|
|
ENDIF
|
|
ELSE
|
|
IF sHangarData.iFurniture != GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_FURNITURE)
|
|
sHangarPriceStruct.iFurniturePrice = GET_HANGAR_UPGRADE_COST(eHANGAR_MOD_FURNITURE, eHangarID, sHangarData.iFurniture)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES: changing Furniture to ", sHangarData.iFurniture, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_FURNITURE), " add $", sHangarPriceStruct.iFurniturePrice)
|
|
iCost += sHangarPriceStruct.iFurniturePrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sHangarPriceStruct.iModshopPrice = 0
|
|
IF eTradeInHangar != eHangarID
|
|
IF sHangarData.iWorkshop = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES: new property, Modshop A is free")
|
|
ELSE
|
|
sHangarPriceStruct.iModshopPrice = GET_HANGAR_UPGRADE_COST(eHANGAR_MOD_MODSHOP, eHangarID)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES: new property, Modshop to ", sHangarData.iWorkshop, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_MODSHOP), " add $", sHangarPriceStruct.iModshopPrice)
|
|
iCost += sHangarPriceStruct.iModshopPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sHangarData.iWorkshop != GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_MODSHOP)
|
|
sHangarPriceStruct.iModshopPrice = GET_HANGAR_UPGRADE_COST(eHANGAR_MOD_MODSHOP, eHangarID)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES: changing Modshop to ", sHangarData.iWorkshop, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_MODSHOP), " add $", sHangarPriceStruct.iModshopPrice)
|
|
iCost += sHangarPriceStruct.iModshopPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sHangarPriceStruct.iColourPrice = 0
|
|
IF eTradeInHangar != eHangarID
|
|
IF sHangarData.iStyle = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES: new property, Colour A is free")
|
|
ELSE
|
|
sHangarPriceStruct.iColourPrice = GET_HANGAR_UPGRADE_COST(eHANGAR_MOD_STYLE, eHangarID, sHangarData.iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES: new property, Colour to ", sHangarData.iStyle, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_COLOUR), " add $", sHangarPriceStruct.iColourPrice)
|
|
iCost += sHangarPriceStruct.iColourPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sHangarData.iStyle != GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_COLOUR)
|
|
sHangarPriceStruct.iColourPrice = GET_HANGAR_UPGRADE_COST(eHANGAR_MOD_STYLE, eHangarID, sHangarData.iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES: changing Colour to ", sHangarData.iStyle, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_COLOUR), " add $", sHangarPriceStruct.iColourPrice)
|
|
iCost += sHangarPriceStruct.iColourPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sHangarPriceStruct.iLightingPrice = 0
|
|
IF eTradeInHangar != eHangarID
|
|
IF sHangarData.iLighting = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES: new property, Lighting A is free")
|
|
ELSE
|
|
sHangarPriceStruct.iLightingPrice = GET_HANGAR_UPGRADE_COST(eHANGAR_MOD_LIGHTING, eHangarID, GET_HANGER_LIGHTING_ID_FROM_STYLE_AND_LIGHTING(sHangarData.iStyle, sHangarData.iLighting))
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES: new property, Lighting to ", sHangarData.iLighting, " (iStyle ", sHangarData.iStyle, ") from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_LIGHTING), " add $", sHangarPriceStruct.iLightingPrice)
|
|
iCost += sHangarPriceStruct.iLightingPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sHangarData.iLighting != GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_LIGHTING)
|
|
OR sHangarData.iStyle != GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_COLOUR)
|
|
IF sHangarData.iLighting = 0
|
|
AND sHangarData.iStyle != GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_COLOUR)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES: changing Lighting to ", sHangarData.iLighting, " (iStyle ", sHangarData.iStyle, ") from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_LIGHTING), " but changing Colour to ", sHangarData.iStyle, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_COLOUR), ", Lighting A is free")
|
|
ELSE
|
|
sHangarPriceStruct.iLightingPrice = GET_HANGAR_UPGRADE_COST(eHANGAR_MOD_LIGHTING, eHangarID, GET_HANGER_LIGHTING_ID_FROM_STYLE_AND_LIGHTING(sHangarData.iStyle, sHangarData.iLighting))
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES: changing Lighting to ", sHangarData.iLighting, " (iStyle ", sHangarData.iStyle, ") from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_LIGHTING), " add $", sHangarPriceStruct.iLightingPrice)
|
|
iCost += sHangarPriceStruct.iLightingPrice
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES: Total cost of changes: $", iCost)
|
|
RETURN iCost
|
|
ENDFUNC
|
|
|
|
FUNC INT CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES(DEFUNCT_BASE_ID eBaseID, DEFUNCT_BASE_PRICE_STRUCT &sDefunctBasePriceStruct)
|
|
DEFUNCT_BASE_ID eTradeInBase = GET_PLAYERS_OWNED_DEFUNCT_BASE(PLAYER_ID())
|
|
|
|
INT iCost = 0
|
|
|
|
DEFUNCT_BASE_DATA_STRUCT sDefunctBaseData
|
|
GET_SCALEFORM_DEFUNCT_BASE_DATA(sDefunctBaseData)
|
|
|
|
sDefunctBasePriceStruct.iStylePrice = 0
|
|
IF eTradeInBase != eBaseID
|
|
IF sDefunctBaseData.iStyle = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: new property, Style A is free")
|
|
ELSE
|
|
sDefunctBasePriceStruct.iStylePrice = GET_DEFUNCT_BASE_UPGRADE_COST(eDEFUNCT_BASE_MOD_STYLE, eBaseID, sDefunctBaseData.iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: new property, Style to ", sDefunctBaseData.iStyle, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_FACILITY_STYLE), " add $", sDefunctBasePriceStruct.iStylePrice)
|
|
iCost += sDefunctBasePriceStruct.iStylePrice
|
|
ENDIF
|
|
ELSE
|
|
IF sDefunctBaseData.iStyle != GET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_FACILITY_STYLE)
|
|
sDefunctBasePriceStruct.iStylePrice = GET_DEFUNCT_BASE_UPGRADE_COST(eDEFUNCT_BASE_MOD_STYLE, eBaseID, sDefunctBaseData.iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: changing Style to ", sDefunctBaseData.iStyle, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_FACILITY_STYLE), " add $", sDefunctBasePriceStruct.iStylePrice)
|
|
iCost += sDefunctBasePriceStruct.iStylePrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
INT iOldGraphic = GET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_FACILITY_GRAPHIC)
|
|
INT iOldGraphicSF = -1
|
|
IF (iOldGraphic != 0)
|
|
iOldGraphicSF = GET_SF_FROM_DBASE_GRAPHICS(iOldGraphic)
|
|
ENDIF
|
|
INT iNewGraphicSF = GET_SF_FROM_DBASE_GRAPHICS(sDefunctBaseData.iGraphics)
|
|
sDefunctBasePriceStruct.iGraphicsPrice = 0
|
|
IF eTradeInBase != eBaseID
|
|
IF iNewGraphicSF = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: new property, Graphics A is free")
|
|
ELSE
|
|
sDefunctBasePriceStruct.iGraphicsPrice = GET_DEFUNCT_BASE_UPGRADE_COST(eDEFUNCT_BASE_MOD_GRAPHIC, eBaseID, iNewGraphicSF)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: new property, Graphics to ", iNewGraphicSF, " from ", iOldGraphicSF, " add $", sDefunctBasePriceStruct.iGraphicsPrice)
|
|
iCost += sDefunctBasePriceStruct.iGraphicsPrice
|
|
ENDIF
|
|
ELSE
|
|
IF iNewGraphicSF != iOldGraphicSF
|
|
sDefunctBasePriceStruct.iGraphicsPrice = GET_DEFUNCT_BASE_UPGRADE_COST(eDEFUNCT_BASE_MOD_GRAPHIC, eBaseID, iNewGraphicSF)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: changing Graphics to ", iNewGraphicSF, " from ", iOldGraphicSF, " add $", sDefunctBasePriceStruct.iGraphicsPrice)
|
|
iCost += sDefunctBasePriceStruct.iGraphicsPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sDefunctBasePriceStruct.iOrbitalWeaponPrice = 0
|
|
IF eTradeInBase != eBaseID
|
|
IF sDefunctBaseData.iOrbitalWeapon = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: new property, OrbitalWeapon A is free")
|
|
ELSE
|
|
sDefunctBasePriceStruct.iOrbitalWeaponPrice = GET_DEFUNCT_BASE_UPGRADE_COST(eDEFUNCT_BASE_MOD_ORBITAL_WEAPON, eBaseID)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: new property, OrbitalWeapon to ", sDefunctBaseData.iOrbitalWeapon, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_ORBITAL_WEAPON), " add $", sDefunctBasePriceStruct.iOrbitalWeaponPrice)
|
|
iCost += sDefunctBasePriceStruct.iOrbitalWeaponPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sDefunctBaseData.iOrbitalWeapon != GET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_ORBITAL_WEAPON)
|
|
sDefunctBasePriceStruct.iOrbitalWeaponPrice = GET_DEFUNCT_BASE_UPGRADE_COST(eDEFUNCT_BASE_MOD_ORBITAL_WEAPON, eBaseID)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: changing OrbitalWeapon to ", sDefunctBaseData.iOrbitalWeapon, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_ORBITAL_WEAPON), " add $", sDefunctBasePriceStruct.iOrbitalWeaponPrice)
|
|
iCost += sDefunctBasePriceStruct.iOrbitalWeaponPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sDefunctBasePriceStruct.iSecurityRoomPrice = 0
|
|
IF eTradeInBase != eBaseID
|
|
IF sDefunctBaseData.iSecurityRoom = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: new property, SecurityRoom A is free")
|
|
ELSE
|
|
sDefunctBasePriceStruct.iSecurityRoomPrice = GET_DEFUNCT_BASE_UPGRADE_COST(eDEFUNCT_BASE_MOD_SECURITY_ROOM, eBaseID)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: new property, SecurityRoom to ", sDefunctBaseData.iSecurityRoom, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_SECURITY_ROOM), " add $", sDefunctBasePriceStruct.iSecurityRoomPrice)
|
|
iCost += sDefunctBasePriceStruct.iSecurityRoomPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sDefunctBaseData.iSecurityRoom != GET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_SECURITY_ROOM)
|
|
sDefunctBasePriceStruct.iSecurityRoomPrice = GET_DEFUNCT_BASE_UPGRADE_COST(eDEFUNCT_BASE_MOD_SECURITY_ROOM, eBaseID)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: changing SecurityRoom to ", sDefunctBaseData.iSecurityRoom, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_SECURITY_ROOM), " add $", sDefunctBasePriceStruct.iSecurityRoomPrice)
|
|
iCost += sDefunctBasePriceStruct.iSecurityRoomPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sDefunctBasePriceStruct.iLoungePrice = 0
|
|
IF eTradeInBase != eBaseID
|
|
IF sDefunctBaseData.iLounge = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: new property, Lounge A is free")
|
|
ELSE
|
|
sDefunctBasePriceStruct.iLoungePrice = GET_DEFUNCT_BASE_UPGRADE_COST(eDEFUNCT_BASE_MOD_LOUNGE, eBaseID, sDefunctBaseData.iLounge)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: new property, Lounge to ", sDefunctBaseData.iLounge, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_LOUNGE), " add $", sDefunctBasePriceStruct.iLoungePrice)
|
|
iCost += sDefunctBasePriceStruct.iLoungePrice
|
|
ENDIF
|
|
ELSE
|
|
IF sDefunctBaseData.iLounge != GET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_LOUNGE)
|
|
sDefunctBasePriceStruct.iLoungePrice = GET_DEFUNCT_BASE_UPGRADE_COST(eDEFUNCT_BASE_MOD_LOUNGE, eBaseID, sDefunctBaseData.iLounge)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: changing Lounge to ", sDefunctBaseData.iLounge, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_LOUNGE), " add $", sDefunctBasePriceStruct.iLoungePrice)
|
|
iCost += sDefunctBasePriceStruct.iLoungePrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sDefunctBasePriceStruct.iPrivicyGlassPrice = 0
|
|
IF eTradeInBase != eBaseID
|
|
IF sDefunctBaseData.iPrivicyGlass = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: new property, iPrivicyGlass A is free")
|
|
ELSE
|
|
sDefunctBasePriceStruct.iPrivicyGlassPrice = GET_DEFUNCT_BASE_UPGRADE_COST(eDEFUNCT_BASE_MOD_PRIVACY_GLASS, eBaseID)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: new property, iPrivicyGlass to ", sDefunctBaseData.iPrivicyGlass, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_PRIVACY_GLASS), " add $", sDefunctBasePriceStruct.iPrivicyGlassPrice)
|
|
iCost += sDefunctBasePriceStruct.iPrivicyGlassPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sDefunctBaseData.iPrivicyGlass != GET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_PRIVACY_GLASS)
|
|
sDefunctBasePriceStruct.iPrivicyGlassPrice = GET_DEFUNCT_BASE_UPGRADE_COST(eDEFUNCT_BASE_MOD_PRIVACY_GLASS, eBaseID)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: changing iPrivicyGlass to ", sDefunctBaseData.iPrivicyGlass, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_PRIVACY_GLASS), " add $", sDefunctBasePriceStruct.iPrivicyGlassPrice)
|
|
iCost += sDefunctBasePriceStruct.iPrivicyGlassPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sDefunctBasePriceStruct.iPersonalQuartersPrice = 0
|
|
IF eTradeInBase != eBaseID
|
|
IF sDefunctBaseData.iPersonalQuarters = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: new property, PersonalQuarters A is free")
|
|
ELSE
|
|
sDefunctBasePriceStruct.iPersonalQuartersPrice = GET_DEFUNCT_BASE_UPGRADE_COST(eDEFUNCT_BASE_MOD_PERSONAL_QUARTERS, eBaseID, sDefunctBaseData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: new property, PersonalQuarters to ", sDefunctBaseData.iPersonalQuarters, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_PERSONAL_QUARTERS), " add $", sDefunctBasePriceStruct.iPersonalQuartersPrice)
|
|
iCost += sDefunctBasePriceStruct.iPersonalQuartersPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sDefunctBaseData.iPersonalQuarters != GET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_PERSONAL_QUARTERS)
|
|
sDefunctBasePriceStruct.iPersonalQuartersPrice = GET_DEFUNCT_BASE_UPGRADE_COST(eDEFUNCT_BASE_MOD_PERSONAL_QUARTERS, eBaseID, sDefunctBaseData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: changing PersonalQuarters to ", sDefunctBaseData.iPersonalQuarters, " from ", GET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_PERSONAL_QUARTERS), " add $", sDefunctBasePriceStruct.iPersonalQuartersPrice)
|
|
iCost += sDefunctBasePriceStruct.iPersonalQuartersPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES: Total cost of changes: $", iCost)
|
|
RETURN iCost
|
|
ENDFUNC
|
|
|
|
FUNC INT CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES(NIGHTCLUB_ID eNightclubID, NIGHTCLUB_PRICE_STRUCT &sNightclubPriceStruct)
|
|
NIGHTCLUB_ID eTradeInNightclub = GET_PLAYERS_OWNED_NIGHTCLUB(PLAYER_ID())
|
|
|
|
INT iCost = 0
|
|
|
|
NIGHTCLUB_DATA_STRUCT sNightclubData
|
|
GET_SCALEFORM_NIGHTCLUB_DATA(sNightclubData)
|
|
|
|
sNightclubPriceStruct.iStylePrice = 0
|
|
IF eTradeInNightclub != eNightclubID
|
|
IF sNightclubData.iStyle = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: new property, Style A is free")
|
|
ELSE
|
|
sNightclubPriceStruct.iStylePrice = GET_NIGHTCLUB_UPGRADE_COST(eNIGHTCLUB_MOD_STYLE, eNightclubID, sNightclubData.iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: new property, Style to ", sNightclubData.iStyle, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_NIGHTCLUB_UPGRADE(eNIGHTCLUB_MOD_STYLE)), " add $", sNightclubPriceStruct.iStylePrice)
|
|
iCost += sNightclubPriceStruct.iStylePrice
|
|
ENDIF
|
|
ELSE
|
|
IF sNightclubData.iStyle != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_NIGHTCLUB_UPGRADE(eNIGHTCLUB_MOD_STYLE))
|
|
sNightclubPriceStruct.iStylePrice = GET_NIGHTCLUB_UPGRADE_COST(eNIGHTCLUB_MOD_STYLE, eNightclubID, sNightclubData.iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: changing Style to ", sNightclubData.iStyle, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_NIGHTCLUB_UPGRADE(eNIGHTCLUB_MOD_STYLE)), " add $", sNightclubPriceStruct.iStylePrice)
|
|
iCost += sNightclubPriceStruct.iStylePrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
INT iOldLighting = GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_NIGHTCLUB_UPGRADE(eNIGHTCLUB_MOD_LIGHTING))
|
|
INT iOldLightingSF = GET_SF_FROM_NIGHTCLUB_LIGHTING(iOldLighting)
|
|
INT iNewLightingSF = GET_SF_FROM_NIGHTCLUB_LIGHTING(sNightclubData.iLighting)
|
|
sNightclubPriceStruct.iLightingPrice = 0
|
|
IF eTradeInNightclub != eNightclubID
|
|
IF iNewLightingSF = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: new property, Lighting A is free")
|
|
ELSE
|
|
sNightclubPriceStruct.iLightingPrice = GET_NIGHTCLUB_UPGRADE_COST(eNIGHTCLUB_MOD_LIGHTING, eNightclubID, iNewLightingSF)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: new property, Lighting to ", iNewLightingSF, " from ", iOldLightingSF, " add $", sNightclubPriceStruct.iLightingPrice)
|
|
iCost += sNightclubPriceStruct.iLightingPrice
|
|
ENDIF
|
|
ELSE
|
|
IF iNewLightingSF != iOldLightingSF
|
|
sNightclubPriceStruct.iLightingPrice = GET_NIGHTCLUB_UPGRADE_COST(eNIGHTCLUB_MOD_LIGHTING, eNightclubID, iNewLightingSF)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: changing Lighting to ", iNewLightingSF, " from ", iOldLightingSF, " add $", sNightclubPriceStruct.iLightingPrice)
|
|
iCost += sNightclubPriceStruct.iLightingPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sNightclubPriceStruct.iDancersPrice = 0
|
|
IF eTradeInNightclub != eNightclubID
|
|
IF sNightclubData.iDancers = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: new property, Podium A is free")
|
|
ELSE
|
|
sNightclubPriceStruct.iDancersPrice = GET_NIGHTCLUB_UPGRADE_COST(eNIGHTCLUB_MOD_DANCERS, eNightclubID, sNightclubData.iDancers)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: new property, Podium to ", sNightclubData.iDancers, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_NIGHTCLUB_UPGRADE(eNIGHTCLUB_MOD_DANCERS)), " add $", sNightclubPriceStruct.iDancersPrice)
|
|
iCost += sNightclubPriceStruct.iDancersPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sNightclubData.iDancers != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_NIGHTCLUB_UPGRADE(eNIGHTCLUB_MOD_DANCERS))
|
|
sNightclubPriceStruct.iDancersPrice = GET_NIGHTCLUB_UPGRADE_COST(eNIGHTCLUB_MOD_DANCERS, eNightclubID, sNightclubData.iDancers)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: changing Podium to ", sNightclubData.iDancers, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_NIGHTCLUB_UPGRADE(eNIGHTCLUB_MOD_DANCERS)), " add $", sNightclubPriceStruct.iDancersPrice)
|
|
iCost += sNightclubPriceStruct.iDancersPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sNightclubPriceStruct.iDryIcePrice = 0
|
|
IF eTradeInNightclub != eNightclubID
|
|
IF sNightclubData.iDryIce = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: new property, Podium A is free")
|
|
ELSE
|
|
sNightclubPriceStruct.iDryIcePrice = GET_NIGHTCLUB_UPGRADE_COST(eNIGHTCLUB_MOD_DRYICE, eNightclubID, sNightclubData.iDryIce)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: new property, Podium to ", sNightclubData.iDryIce, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_NIGHTCLUB_UPGRADE(eNIGHTCLUB_MOD_DRYICE)), " add $", sNightclubPriceStruct.iDryIcePrice)
|
|
iCost += sNightclubPriceStruct.iDryIcePrice
|
|
ENDIF
|
|
ELSE
|
|
IF sNightclubData.iDryIce != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_NIGHTCLUB_UPGRADE(eNIGHTCLUB_MOD_DRYICE))
|
|
sNightclubPriceStruct.iDryIcePrice = GET_NIGHTCLUB_UPGRADE_COST(eNIGHTCLUB_MOD_DRYICE, eNightclubID, sNightclubData.iDryIce)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: changing Podium to ", sNightclubData.iDryIce, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_NIGHTCLUB_UPGRADE(eNIGHTCLUB_MOD_DRYICE)), " add $", sNightclubPriceStruct.iDryIcePrice)
|
|
iCost += sNightclubPriceStruct.iDryIcePrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
INT iOldName = GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_NIGHTCLUB_UPGRADE(eNIGHTCLUB_MOD_Name))
|
|
INT iOldNameSF = GET_SF_FROM_NIGHTCLUB_NAME(iOldName)
|
|
INT iNewNameSF = GET_SF_FROM_NIGHTCLUB_NAME(sNightclubData.iNameID)
|
|
sNightclubPriceStruct.iNamePrice = 0
|
|
IF eTradeInNightclub != eNightclubID
|
|
IF iNewNameSF = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: new property, Name A is free")
|
|
ELIF IS_NIGHTCLUB_ID_VALID(eTradeInNightclub)
|
|
AND iNewNameSF = iOldNameSF
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: new property, Name to ", iNewNameSF, " from ", iOldNameSF, " is free")
|
|
ELSE
|
|
sNightclubPriceStruct.iNamePrice = GET_NIGHTCLUB_UPGRADE_COST(eNIGHTCLUB_MOD_Name, eNightclubID, iNewNameSF)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: new property, Name to ", iNewNameSF, " from ", iOldNameSF, " add $", sNightclubPriceStruct.iNamePrice)
|
|
iCost += sNightclubPriceStruct.iNamePrice
|
|
ENDIF
|
|
ELSE
|
|
IF iNewNameSF != iOldNameSF
|
|
sNightclubPriceStruct.iNamePrice = GET_NIGHTCLUB_UPGRADE_COST(eNIGHTCLUB_MOD_Name, eNightclubID, iNewNameSF)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: changing Name to ", iNewNameSF, " from ", iOldNameSF, " add $", sNightclubPriceStruct.iNamePrice)
|
|
iCost += sNightclubPriceStruct.iNamePrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sNightclubPriceStruct.iStoragePrice = 0
|
|
IF eTradeInNightclub != eNightclubID
|
|
IF sNightclubData.iStorage = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: new property, Warehouse A is free")
|
|
ELIF IS_NIGHTCLUB_ID_VALID(eTradeInNightclub)
|
|
AND sNightclubData.iStorage = GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_BUSINESS_HUB_UPGRADE(eBUSINESS_HUB_MOD_WAREHOUSE))
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: new property, Warehouse ", sNightclubData.iStorage, " is kept for free")
|
|
ELSE
|
|
sNightclubPriceStruct.iStoragePrice = GET_BUSINESS_HUB_ADDITIVE_UPGRADE_COST(eBUSINESS_HUB_MOD_WAREHOUSE, INT_TO_ENUM(BUSINESS_HUB_ID, ENUM_TO_INT(eNightclubID)), sNightclubData.iStorage)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: new property, Warehouse to ", sNightclubData.iStorage, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_BUSINESS_HUB_UPGRADE(eBUSINESS_HUB_MOD_WAREHOUSE)), " add $", sNightclubPriceStruct.iStoragePrice)
|
|
iCost += sNightclubPriceStruct.iStoragePrice
|
|
ENDIF
|
|
ELSE
|
|
IF sNightclubData.iStorage != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_BUSINESS_HUB_UPGRADE(eBUSINESS_HUB_MOD_WAREHOUSE))
|
|
sNightclubPriceStruct.iStoragePrice = GET_BUSINESS_HUB_ADDITIVE_UPGRADE_COST(eBUSINESS_HUB_MOD_WAREHOUSE, INT_TO_ENUM(BUSINESS_HUB_ID, ENUM_TO_INT(eNightclubID)), sNightclubData.iStorage)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: changing Warehouse to ", sNightclubData.iStorage, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_BUSINESS_HUB_UPGRADE(eBUSINESS_HUB_MOD_WAREHOUSE)), " add $", sNightclubPriceStruct.iStoragePrice)
|
|
iCost += sNightclubPriceStruct.iStoragePrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sNightclubPriceStruct.iGaragePrice = 0
|
|
IF eTradeInNightclub != eNightclubID
|
|
IF sNightclubData.iGarage = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: new property, Garage A is free")
|
|
ELIF IS_NIGHTCLUB_ID_VALID(eTradeInNightclub)
|
|
AND sNightclubData.iGarage = GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_BUSINESS_HUB_UPGRADE(eBUSINESS_HUB_MOD_GARAGE))
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: new property, Garage ", sNightclubData.iGarage, " is kept for free")
|
|
ELSE
|
|
sNightclubPriceStruct.iGaragePrice = GET_BUSINESS_HUB_ADDITIVE_UPGRADE_COST(eBUSINESS_HUB_MOD_GARAGE, INT_TO_ENUM(BUSINESS_HUB_ID, ENUM_TO_INT(eNightclubID)), sNightclubData.iGarage)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: new property, Garage to ", sNightclubData.iGarage, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_BUSINESS_HUB_UPGRADE(eBUSINESS_HUB_MOD_GARAGE)), " add $", sNightclubPriceStruct.iGaragePrice)
|
|
iCost += sNightclubPriceStruct.iGaragePrice
|
|
ENDIF
|
|
ELSE
|
|
IF sNightclubData.iGarage != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_BUSINESS_HUB_UPGRADE(eBUSINESS_HUB_MOD_GARAGE))
|
|
sNightclubPriceStruct.iGaragePrice = GET_BUSINESS_HUB_ADDITIVE_UPGRADE_COST(eBUSINESS_HUB_MOD_GARAGE, INT_TO_ENUM(BUSINESS_HUB_ID, ENUM_TO_INT(eNightclubID)), sNightclubData.iGarage)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: changing Garage to ", sNightclubData.iGarage, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_BUSINESS_HUB_UPGRADE(eBUSINESS_HUB_MOD_GARAGE)), " add $", sNightclubPriceStruct.iGaragePrice)
|
|
iCost += sNightclubPriceStruct.iGaragePrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES: Total cost of changes: $", iCost)
|
|
RETURN iCost
|
|
ENDFUNC
|
|
|
|
FUNC INT CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES(ARENA_GARAGE_ID eArenaID, ARENA_GARAGE_PRICE_STRUCT &sArenaPriceStruct)
|
|
ARENA_GARAGE_ID eTradeInArena = GET_PLAYERS_OWNED_ARENA_GARAGE(PLAYER_ID())
|
|
|
|
INT iCost = 0
|
|
|
|
ARENA_GARAGE_DATA_STRUCT sArenaData
|
|
GET_SCALEFORM_ARENA_GARAGE_DATA(sArenaData)
|
|
|
|
sArenaPriceStruct.iStylePrice = 0
|
|
IF eTradeInArena != eArenaID
|
|
IF sArenaData.iStyle = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: new property, Style A is free")
|
|
ELSE
|
|
sArenaPriceStruct.iStylePrice = GET_ARENA_GARAGE_UPGRADE_COST(eARENA_GARAGE_MOD_STYLE, sArenaData.iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: new property, Style to ", sArenaData.iStyle, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_STYLE)), " add $", sArenaPriceStruct.iStylePrice)
|
|
iCost += sArenaPriceStruct.iStylePrice
|
|
ENDIF
|
|
ELSE
|
|
IF sArenaData.iStyle != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_STYLE))
|
|
sArenaPriceStruct.iStylePrice = GET_ARENA_GARAGE_UPGRADE_COST(eARENA_GARAGE_MOD_STYLE, sArenaData.iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: changing Style to ", sArenaData.iStyle, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_STYLE)), " add $", sArenaPriceStruct.iStylePrice)
|
|
iCost += sArenaPriceStruct.iStylePrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sArenaPriceStruct.iGraphicsPrice = 0
|
|
IF eTradeInArena != eArenaID
|
|
IF sArenaData.iGraphics = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: new property, Graphics A is free")
|
|
ELSE
|
|
sArenaPriceStruct.iGraphicsPrice = GET_ARENA_GARAGE_UPGRADE_COST(eARENA_GARAGE_MOD_GRAPHICS, sArenaData.iGraphics)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: new property, Graphics to ", sArenaData.iGraphics, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_GRAPHICS)), " add $", sArenaPriceStruct.iGraphicsPrice)
|
|
iCost += sArenaPriceStruct.iGraphicsPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sArenaData.iGraphics != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_GRAPHICS))
|
|
sArenaPriceStruct.iGraphicsPrice = GET_ARENA_GARAGE_UPGRADE_COST(eARENA_GARAGE_MOD_GRAPHICS, sArenaData.iGraphics)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: changing Graphics to ", sArenaData.iGraphics, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_GRAPHICS)), " add $", sArenaPriceStruct.iGraphicsPrice)
|
|
iCost += sArenaPriceStruct.iGraphicsPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sArenaPriceStruct.iColourPrice = 0
|
|
IF eTradeInArena != eArenaID
|
|
IF sArenaData.iColour = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: new property, Colour A is free")
|
|
ELSE
|
|
sArenaPriceStruct.iColourPrice = GET_ARENA_GARAGE_UPGRADE_COST(eARENA_GARAGE_MOD_COLOUR, sArenaData.iColour)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: new property, Colour to ", sArenaData.iColour, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_COLOUR)), " add $", sArenaPriceStruct.iColourPrice)
|
|
iCost += sArenaPriceStruct.iColourPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sArenaData.iColour != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_COLOUR))
|
|
sArenaPriceStruct.iColourPrice = GET_ARENA_GARAGE_UPGRADE_COST(eARENA_GARAGE_MOD_COLOUR, sArenaData.iColour)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: changing Colour to ", sArenaData.iColour, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_COLOUR)), " add $", sArenaPriceStruct.iColourPrice)
|
|
iCost += sArenaPriceStruct.iColourPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sArenaPriceStruct.iExpansionFloorB1Price = 0
|
|
IF eTradeInArena != eArenaID
|
|
IF sArenaData.iExpansionFloorB1 = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: new property, ExpansionFloorB1 A is free")
|
|
ELSE
|
|
sArenaPriceStruct.iExpansionFloorB1Price = GET_ARENA_GARAGE_UPGRADE_COST(eARENA_GARAGE_MOD_EXPANSION_FLOOR_0, sArenaData.iExpansionFloorB1)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: new property, ExpansionFloorB1 to ", sArenaData.iExpansionFloorB1, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_EXPANSION_FLOOR_0)), " add $", sArenaPriceStruct.iExpansionFloorB1Price)
|
|
iCost += sArenaPriceStruct.iExpansionFloorB1Price
|
|
ENDIF
|
|
ELSE
|
|
IF sArenaData.iExpansionFloorB1 != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_EXPANSION_FLOOR_0))
|
|
sArenaPriceStruct.iExpansionFloorB1Price = GET_ARENA_GARAGE_UPGRADE_COST(eARENA_GARAGE_MOD_EXPANSION_FLOOR_0, sArenaData.iExpansionFloorB1)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: changing ExpansionFloorB1 to ", sArenaData.iExpansionFloorB1, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_EXPANSION_FLOOR_0)), " add $", sArenaPriceStruct.iExpansionFloorB1Price)
|
|
iCost += sArenaPriceStruct.iExpansionFloorB1Price
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sArenaPriceStruct.iExpansionFloorB2Price = 0
|
|
IF eTradeInArena != eArenaID
|
|
IF sArenaData.iExpansionFloorB2 = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: new property, ExpansionFloorB2 A is free")
|
|
ELSE
|
|
sArenaPriceStruct.iExpansionFloorB2Price = GET_ARENA_GARAGE_UPGRADE_COST(eARENA_GARAGE_MOD_EXPANSION_FLOOR_1, sArenaData.iExpansionFloorB2)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: new property, ExpansionFloorB2 to ", sArenaData.iExpansionFloorB2, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_EXPANSION_FLOOR_1)), " add $", sArenaPriceStruct.iExpansionFloorB2Price)
|
|
iCost += sArenaPriceStruct.iExpansionFloorB2Price
|
|
ENDIF
|
|
ELSE
|
|
IF sArenaData.iExpansionFloorB2 != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_EXPANSION_FLOOR_1))
|
|
sArenaPriceStruct.iExpansionFloorB2Price = GET_ARENA_GARAGE_UPGRADE_COST(eARENA_GARAGE_MOD_EXPANSION_FLOOR_1, sArenaData.iExpansionFloorB2)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: changing ExpansionFloorB2 to ", sArenaData.iExpansionFloorB2, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_EXPANSION_FLOOR_1)), " add $", sArenaPriceStruct.iExpansionFloorB2Price)
|
|
iCost += sArenaPriceStruct.iExpansionFloorB2Price
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sArenaPriceStruct.iBennyMechanicPrice = 0
|
|
IF eTradeInArena != eArenaID
|
|
IF sArenaData.iBennyMechanic = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: new property, Warehouse A is free")
|
|
ELSE
|
|
sArenaPriceStruct.iBennyMechanicPrice = GET_ARENA_GARAGE_UPGRADE_COST(eARENA_GARAGE_MOD_BENNY_MECHANIC, sArenaData.iBennyMechanic)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: new property, Warehouse to ", sArenaData.iBennyMechanic, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_BENNY_MECHANIC)), " add $", sArenaPriceStruct.iBennyMechanicPrice)
|
|
iCost += sArenaPriceStruct.iBennyMechanicPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sArenaData.iBennyMechanic != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_BENNY_MECHANIC))
|
|
sArenaPriceStruct.iBennyMechanicPrice = GET_ARENA_GARAGE_UPGRADE_COST(eARENA_GARAGE_MOD_BENNY_MECHANIC, sArenaData.iBennyMechanic)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: changing Warehouse to ", sArenaData.iBennyMechanic, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_BENNY_MECHANIC)), " add $", sArenaPriceStruct.iBennyMechanicPrice)
|
|
iCost += sArenaPriceStruct.iBennyMechanicPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sArenaPriceStruct.iWeaponMechanicPrice = 0
|
|
IF eTradeInArena != eArenaID
|
|
IF sArenaData.iWeaponMechanic = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: new property, WEAPON_MECHANIC A is free")
|
|
ELSE
|
|
sArenaPriceStruct.iWeaponMechanicPrice = GET_ARENA_GARAGE_UPGRADE_COST(eARENA_GARAGE_MOD_WEAPON_MECHANIC, sArenaData.iWeaponMechanic)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: new property, WEAPON_MECHANIC to ", sArenaData.iWeaponMechanic, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_WEAPON_MECHANIC)), " add $", sArenaPriceStruct.iWeaponMechanicPrice)
|
|
iCost += sArenaPriceStruct.iWeaponMechanicPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sArenaData.iWeaponMechanic != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_WEAPON_MECHANIC))
|
|
sArenaPriceStruct.iWeaponMechanicPrice = GET_ARENA_GARAGE_UPGRADE_COST(eARENA_GARAGE_MOD_WEAPON_MECHANIC, sArenaData.iWeaponMechanic)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: changing WEAPON_MECHANIC to ", sArenaData.iWeaponMechanic, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_WEAPON_MECHANIC)), " add $", sArenaPriceStruct.iWeaponMechanicPrice)
|
|
iCost += sArenaPriceStruct.iWeaponMechanicPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sArenaPriceStruct.iPersonalQuartersPrice = 0
|
|
IF eTradeInArena != eArenaID
|
|
IF sArenaData.iPersonalQuarters = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: new property, PersonalQuarters A is free")
|
|
ELSE
|
|
sArenaPriceStruct.iPersonalQuartersPrice = GET_ARENA_GARAGE_UPGRADE_COST(eARENA_GARAGE_MOD_PERSONAL_QUARTERS, sArenaData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: new property, PersonalQuarters to ", sArenaData.iPersonalQuarters, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_PERSONAL_QUARTERS)), " add $", sArenaPriceStruct.iPersonalQuartersPrice)
|
|
iCost += sArenaPriceStruct.iPersonalQuartersPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sArenaData.iPersonalQuarters != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_PERSONAL_QUARTERS))
|
|
sArenaPriceStruct.iPersonalQuartersPrice = GET_ARENA_GARAGE_UPGRADE_COST(eARENA_GARAGE_MOD_PERSONAL_QUARTERS, sArenaData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: changing PersonalQuarters to ", sArenaData.iPersonalQuarters, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_PERSONAL_QUARTERS)), " add $", sArenaPriceStruct.iPersonalQuartersPrice)
|
|
iCost += sArenaPriceStruct.iPersonalQuartersPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eTradeInArena != eArenaID
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: Total cost of new property: $", iCost)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES: Total cost of changes: $", iCost)
|
|
ENDIF
|
|
RETURN iCost
|
|
ENDFUNC
|
|
|
|
FUNC INT CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES(CASINO_APT_ID eCasinoID, CASINO_APT_PRICE_STRUCT &sCasinoPriceStruct)
|
|
CASINO_APT_ID eTradeInCasino = GET_PLAYERS_OWNED_CASINO_APARTMENT(PLAYER_ID())
|
|
|
|
INT iCost = 0
|
|
|
|
CASINO_APT_DATA_STRUCT sCasinoData
|
|
GET_SCALEFORM_CASINO_APT_DATA(sCasinoData)
|
|
|
|
sCasinoPriceStruct.iColourOptionPrice = 0
|
|
IF eTradeInCasino != eCasinoID
|
|
IF sCasinoData.iColourOption = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, ColourOption A is free")
|
|
ELSE
|
|
sCasinoPriceStruct.iColourOptionPrice = GET_CASINO_APT_UPGRADE_COST(eCASINO_APT_MOD_COLOUR_OPTION, sCasinoData.iColourOption)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, ColourOption to ", sCasinoData.iColourOption, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_COLOUR_OPTION)), " add $", sCasinoPriceStruct.iColourOptionPrice)
|
|
iCost += sCasinoPriceStruct.iColourOptionPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sCasinoData.iColourOption != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_COLOUR_OPTION))
|
|
sCasinoPriceStruct.iColourOptionPrice = GET_CASINO_APT_UPGRADE_COST(eCASINO_APT_MOD_COLOUR_OPTION, sCasinoData.iColourOption)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: changing ColourOption to ", sCasinoData.iColourOption, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_COLOUR_OPTION)), " add $", sCasinoPriceStruct.iColourOptionPrice)
|
|
iCost += sCasinoPriceStruct.iColourOptionPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sCasinoPriceStruct.iStyleOptionPrice = 0
|
|
IF eTradeInCasino != eCasinoID
|
|
IF sCasinoData.iStyleOption = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, StyleOption A is free")
|
|
ELSE
|
|
sCasinoPriceStruct.iStyleOptionPrice = GET_CASINO_APT_UPGRADE_COST(eCASINO_APT_MOD_STYLE_OPTION, sCasinoData.iStyleOption)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, StyleOption to ", sCasinoData.iStyleOption, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_STYLE_OPTION)), " add $", sCasinoPriceStruct.iStyleOptionPrice)
|
|
iCost += sCasinoPriceStruct.iStyleOptionPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sCasinoData.iStyleOption != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_STYLE_OPTION))
|
|
sCasinoPriceStruct.iStyleOptionPrice = GET_CASINO_APT_UPGRADE_COST(eCASINO_APT_MOD_STYLE_OPTION, sCasinoData.iStyleOption)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: changing StyleOption to ", sCasinoData.iStyleOption, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_STYLE_OPTION)), " add $", sCasinoPriceStruct.iStyleOptionPrice)
|
|
iCost += sCasinoPriceStruct.iStyleOptionPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sCasinoPriceStruct.iLoungePrice = 0
|
|
IF eTradeInCasino != eCasinoID
|
|
IF sCasinoData.iLounge = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, Lounge A is free")
|
|
ELSE
|
|
sCasinoPriceStruct.iLoungePrice = GET_CASINO_APT_UPGRADE_COST(eCASINO_APT_MOD_LOUNGE, sCasinoData.iLounge)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, Lounge to ", sCasinoData.iLounge, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_LOUNGE)), " add $", sCasinoPriceStruct.iLoungePrice)
|
|
iCost += sCasinoPriceStruct.iLoungePrice
|
|
ENDIF
|
|
ELSE
|
|
IF sCasinoData.iLounge != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_LOUNGE))
|
|
sCasinoPriceStruct.iLoungePrice = GET_CASINO_APT_UPGRADE_COST(eCASINO_APT_MOD_LOUNGE, sCasinoData.iLounge)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: changing Lounge to ", sCasinoData.iLounge, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_LOUNGE)), " add $", sCasinoPriceStruct.iLoungePrice)
|
|
iCost += sCasinoPriceStruct.iLoungePrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sCasinoPriceStruct.iBarPrice = 0
|
|
IF eTradeInCasino != eCasinoID
|
|
IF sCasinoData.iBar = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, Bar A is free")
|
|
ELIF GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_BAR)) != 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, Bar to ", sCasinoData.iBar, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_BAR)), " is free")
|
|
ELSE
|
|
sCasinoPriceStruct.iBarPrice = GET_CASINO_APT_UPGRADE_COST(eCASINO_APT_MOD_BAR, sCasinoData.iBar)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, Bar to ", sCasinoData.iBar, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_BAR)), " add $", sCasinoPriceStruct.iBarPrice)
|
|
iCost += sCasinoPriceStruct.iBarPrice
|
|
ENDIF
|
|
ELSE
|
|
IF GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_BAR)) != 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: changing Bar to ", sCasinoData.iBar, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_BAR)), " is free")
|
|
ELIF sCasinoData.iBar != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_BAR))
|
|
sCasinoPriceStruct.iBarPrice = GET_CASINO_APT_UPGRADE_COST(eCASINO_APT_MOD_BAR, sCasinoData.iBar)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: changing Bar to ", sCasinoData.iBar, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_BAR)), " add $", sCasinoPriceStruct.iBarPrice)
|
|
iCost += sCasinoPriceStruct.iBarPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sCasinoPriceStruct.iDealerPrice = 0
|
|
IF eTradeInCasino != eCasinoID
|
|
IF sCasinoData.iDealer = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, Dealer A is free")
|
|
ELSE
|
|
sCasinoPriceStruct.iDealerPrice = GET_CASINO_APT_UPGRADE_COST(eCASINO_APT_MOD_DEALER, sCasinoData.iDealer)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, Dealer to ", sCasinoData.iDealer, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_DEALER)), " add $", sCasinoPriceStruct.iDealerPrice)
|
|
iCost += sCasinoPriceStruct.iDealerPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sCasinoData.iDealer != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_DEALER))
|
|
sCasinoPriceStruct.iDealerPrice = GET_CASINO_APT_UPGRADE_COST(eCASINO_APT_MOD_DEALER, sCasinoData.iDealer)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: changing Dealer to ", sCasinoData.iDealer, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_DEALER)), " add $", sCasinoPriceStruct.iDealerPrice)
|
|
iCost += sCasinoPriceStruct.iDealerPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sCasinoPriceStruct.iBedroomPrice = 0
|
|
IF eTradeInCasino != eCasinoID
|
|
IF sCasinoData.iBedroom = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, Bedroom A is free")
|
|
ELSE
|
|
sCasinoPriceStruct.iBedroomPrice = GET_CASINO_APT_UPGRADE_COST(eCASINO_APT_MOD_BEDROOM, sCasinoData.iBedroom)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, Bedroom to ", sCasinoData.iBedroom, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_BEDROOM)), " add $", sCasinoPriceStruct.iBedroomPrice)
|
|
iCost += sCasinoPriceStruct.iBedroomPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sCasinoData.iBedroom != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_BEDROOM))
|
|
sCasinoPriceStruct.iBedroomPrice = GET_CASINO_APT_UPGRADE_COST(eCASINO_APT_MOD_BEDROOM, sCasinoData.iBedroom)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: changing Bedroom to ", sCasinoData.iBedroom, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_BEDROOM)), " add $", sCasinoPriceStruct.iBedroomPrice)
|
|
iCost += sCasinoPriceStruct.iBedroomPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sCasinoPriceStruct.iMediaroomPrice = 0
|
|
IF eTradeInCasino != eCasinoID
|
|
IF sCasinoData.iMediaroom = 0 //
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, Mediaroom A is free")
|
|
ELSE
|
|
sCasinoPriceStruct.iMediaroomPrice = GET_CASINO_APT_UPGRADE_COST(eCASINO_APT_MOD_MEDIAROOM, sCasinoData.iMediaroom)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, Mediaroom to ", sCasinoData.iMediaroom, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_MEDIAROOM)), " add $", sCasinoPriceStruct.iMediaroomPrice)
|
|
iCost += sCasinoPriceStruct.iMediaroomPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sCasinoData.iMediaroom != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_MEDIAROOM))
|
|
sCasinoPriceStruct.iMediaroomPrice = GET_CASINO_APT_UPGRADE_COST(eCASINO_APT_MOD_MEDIAROOM, sCasinoData.iMediaroom)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: changing Mediaroom to ", sCasinoData.iMediaroom, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_MEDIAROOM)), " add $", sCasinoPriceStruct.iMediaroomPrice)
|
|
iCost += sCasinoPriceStruct.iMediaroomPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sCasinoPriceStruct.iSpaPrice = 0
|
|
IF eTradeInCasino != eCasinoID
|
|
IF sCasinoData.iSpa = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, Spa A is free")
|
|
ELSE
|
|
sCasinoPriceStruct.iSpaPrice = GET_CASINO_APT_UPGRADE_COST(eCASINO_APT_MOD_SPA, sCasinoData.iSpa)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, Spa to ", sCasinoData.iSpa, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_SPA)), " add $", sCasinoPriceStruct.iSpaPrice)
|
|
iCost += sCasinoPriceStruct.iSpaPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sCasinoData.iSpa != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_SPA))
|
|
sCasinoPriceStruct.iSpaPrice = GET_CASINO_APT_UPGRADE_COST(eCASINO_APT_MOD_SPA, sCasinoData.iSpa)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: changing Spa to ", sCasinoData.iSpa, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_SPA)), " add $", sCasinoPriceStruct.iSpaPrice)
|
|
iCost += sCasinoPriceStruct.iSpaPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sCasinoPriceStruct.iOfficePrice = 0
|
|
IF eTradeInCasino != eCasinoID
|
|
IF sCasinoData.iOffice = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, Office A is free")
|
|
ELSE
|
|
sCasinoPriceStruct.iOfficePrice = GET_CASINO_APT_UPGRADE_COST(eCASINO_APT_MOD_OFFICE, sCasinoData.iOffice)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, Office to ", sCasinoData.iOffice, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_OFFICE)), " add $", sCasinoPriceStruct.iOfficePrice)
|
|
iCost += sCasinoPriceStruct.iOfficePrice
|
|
ENDIF
|
|
ELSE
|
|
IF sCasinoData.iOffice != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_OFFICE))
|
|
sCasinoPriceStruct.iOfficePrice = GET_CASINO_APT_UPGRADE_COST(eCASINO_APT_MOD_OFFICE, sCasinoData.iOffice)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: changing Office to ", sCasinoData.iOffice, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_OFFICE)), " add $", sCasinoPriceStruct.iOfficePrice)
|
|
iCost += sCasinoPriceStruct.iOfficePrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sCasinoPriceStruct.iGaragePrice = 0
|
|
IF eTradeInCasino != eCasinoID
|
|
IF sCasinoData.iGarage = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, Garage A is free")
|
|
ELSE
|
|
sCasinoPriceStruct.iGaragePrice = GET_CASINO_APT_UPGRADE_COST(eCASINO_APT_MOD_GARAGE, sCasinoData.iGarage)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: new property, Garage to ", sCasinoData.iGarage, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_GARAGE)), " add $", sCasinoPriceStruct.iGaragePrice)
|
|
iCost += sCasinoPriceStruct.iGaragePrice
|
|
ENDIF
|
|
ELSE
|
|
IF sCasinoData.iGarage != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_GARAGE))
|
|
sCasinoPriceStruct.iGaragePrice = GET_CASINO_APT_UPGRADE_COST(eCASINO_APT_MOD_GARAGE, sCasinoData.iGarage)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: changing Garage to ", sCasinoData.iGarage, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_GARAGE)), " add $", sCasinoPriceStruct.iGaragePrice)
|
|
iCost += sCasinoPriceStruct.iGaragePrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eTradeInCasino != eCasinoID
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: Total cost of new property: $", iCost)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES: Total cost of changes: $", iCost)
|
|
ENDIF
|
|
RETURN iCost
|
|
ENDFUNC
|
|
|
|
FUNC INT CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES(ARCADE_PROPERTY_ID eArcadeID, ARCADE_PRICE_STRUCT &sArcadePriceStruct)
|
|
ARCADE_PROPERTY_ID eTradeInArcade = GET_PLAYERS_OWNED_ARCADE_PROPERTY(PLAYER_ID())
|
|
|
|
INT iCost = 0
|
|
|
|
ARCADE_DATA_STRUCT sArcadeData
|
|
|
|
GET_SCALEFORM_ARCADE_DATA(sArcadeData)
|
|
|
|
sArcadePriceStruct.iFloorPrice = 0
|
|
|
|
IF eTradeInArcade != eArcadeID
|
|
IF sArcadeData.iFloor = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: new property, Floor A is free")
|
|
ELSE
|
|
sArcadePriceStruct.iFloorPrice = GET_ARCADE_UPGRADE_COST(eARCADE_MOD_FLOOR, eArcadeID, sArcadeData.iFloor)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: new property, Floor to ", sArcadeData.iFloor, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_FLOOR)), " add $", sArcadePriceStruct.iFloorPrice)
|
|
|
|
iCost += sArcadePriceStruct.iFloorPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sArcadeData.iFloor != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_FLOOR))
|
|
sArcadePriceStruct.iFloorPrice = GET_ARCADE_UPGRADE_COST(eARCADE_MOD_FLOOR, eArcadeID, sArcadeData.iFloor)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: changing Floor to ", sArcadeData.iFloor, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_FLOOR)), " add $", sArcadePriceStruct.iFloorPrice)
|
|
|
|
iCost += sArcadePriceStruct.iFloorPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sArcadePriceStruct.iCeilingPrice = 0
|
|
|
|
IF eTradeInArcade != eArcadeID
|
|
IF sArcadeData.iCeiling = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: new property, Ceiling A is free")
|
|
ELSE
|
|
sArcadePriceStruct.iCeilingPrice = GET_ARCADE_UPGRADE_COST(eARCADE_MOD_CEILING, eArcadeID, sArcadeData.iCeiling)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: new property, Ceiling to ", sArcadeData.iCeiling, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_CEILING)), " add $", sArcadePriceStruct.iCeilingPrice)
|
|
|
|
iCost += sArcadePriceStruct.iCeilingPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sArcadeData.iCeiling != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_CEILING))
|
|
sArcadePriceStruct.iCeilingPrice = GET_ARCADE_UPGRADE_COST(eARCADE_MOD_CEILING, eArcadeID, sArcadeData.iCeiling)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: changing Ceiling to ", sArcadeData.iCeiling, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_CEILING)), " add $", sArcadePriceStruct.iCeilingPrice)
|
|
|
|
iCost += sArcadePriceStruct.iCeilingPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sArcadePriceStruct.iWallPrice = 0
|
|
|
|
IF eTradeInArcade != eArcadeID
|
|
IF sArcadeData.iWall = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: new property, Wall A is free")
|
|
ELSE
|
|
sArcadePriceStruct.iWallPrice = GET_ARCADE_UPGRADE_COST(eARCADE_MOD_WALL, eArcadeID, sArcadeData.iWall)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: new property, Wall to ", sArcadeData.iWall, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_WALL)), " add $", sArcadePriceStruct.iWallPrice)
|
|
|
|
iCost += sArcadePriceStruct.iWallPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sArcadeData.iWall != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_WALL))
|
|
sArcadePriceStruct.iWallPrice = GET_ARCADE_UPGRADE_COST(eARCADE_MOD_WALL, eArcadeID, sArcadeData.iWall)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: changing Wall to ", sArcadeData.iWall, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_WALL)), " add $", sArcadePriceStruct.iWallPrice)
|
|
|
|
iCost += sArcadePriceStruct.iWallPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sArcadePriceStruct.iPersonalQuartersPrice = 0
|
|
|
|
IF eTradeInArcade != eArcadeID
|
|
IF sArcadeData.iPersonalQuarters = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: new property, Personal Quarters A is free")
|
|
ELSE
|
|
sArcadePriceStruct.iPersonalQuartersPrice = GET_ARCADE_UPGRADE_COST(eARCADE_MOD_PERSONAL_QUARTERS, eArcadeID, sArcadeData.iPersonalQuarters)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: new property, Personal Quarters to ", sArcadeData.iPersonalQuarters, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_PERSONAL_QUARTERS)), " add $", sArcadePriceStruct.iPersonalQuartersPrice)
|
|
|
|
iCost += sArcadePriceStruct.iPersonalQuartersPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sArcadeData.iPersonalQuarters != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_PERSONAL_QUARTERS))
|
|
sArcadePriceStruct.iPersonalQuartersPrice = GET_ARCADE_UPGRADE_COST(eARCADE_MOD_PERSONAL_QUARTERS, eArcadeID, sArcadeData.iPersonalQuarters)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: changing Personal Quarters to ", sArcadeData.iPersonalQuarters, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_PERSONAL_QUARTERS)), " add $", sArcadePriceStruct.iPersonalQuartersPrice)
|
|
|
|
iCost += sArcadePriceStruct.iPersonalQuartersPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sArcadePriceStruct.iGaragePrice = 0
|
|
|
|
IF eTradeInArcade != eArcadeID
|
|
IF sArcadeData.iGarage = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: new property, Garage A is free")
|
|
ELIF IS_ARCADE_PROPERTY_ID_VALID(eTradeInArcade)
|
|
AND sArcadeData.iGarage = GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_GARAGE))
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: new property, Garage ", sArcadeData.iGarage, " is kept for free")
|
|
ELSE
|
|
sArcadePriceStruct.iGaragePrice = GET_ARCADE_UPGRADE_COST(eARCADE_MOD_GARAGE, eArcadeID, sArcadeData.iGarage)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: new property, Garage to ", sArcadeData.iGarage, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_GARAGE)), " add $", sArcadePriceStruct.iGaragePrice)
|
|
|
|
iCost += sArcadePriceStruct.iGaragePrice
|
|
ENDIF
|
|
ELSE
|
|
IF sArcadeData.iGarage != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_GARAGE))
|
|
sArcadePriceStruct.iGaragePrice = GET_ARCADE_UPGRADE_COST(eARCADE_MOD_GARAGE, eArcadeID, sArcadeData.iGarage)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: changing Garage to ", sArcadeData.iGarage, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_GARAGE)), " add $", sArcadePriceStruct.iGaragePrice)
|
|
|
|
iCost += sArcadePriceStruct.iGaragePrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sArcadePriceStruct.iNeonLightsPrice = 0
|
|
|
|
IF eTradeInArcade != eArcadeID
|
|
IF sArcadeData.iNeonLights = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: new property, Neon Lights A is free")
|
|
ELSE
|
|
sArcadePriceStruct.iNeonLightsPrice = GET_ARCADE_UPGRADE_COST(eARCADE_MOD_NEON_LIGHTS, eArcadeID, sArcadeData.iNeonLights)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: new property, Neon Lights to ", sArcadeData.iNeonLights, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_NEON_LIGHTS)), " add $", sArcadePriceStruct.iNeonLightsPrice)
|
|
|
|
iCost += sArcadePriceStruct.iNeonLightsPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sArcadeData.iNeonLights != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_NEON_LIGHTS))
|
|
sArcadePriceStruct.iNeonLightsPrice = GET_ARCADE_UPGRADE_COST(eARCADE_MOD_NEON_LIGHTS, eArcadeID, sArcadeData.iNeonLights)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: changing Neon Lights to ", sArcadeData.iNeonLights, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_NEON_LIGHTS)), " add $", sArcadePriceStruct.iNeonLightsPrice)
|
|
|
|
iCost += sArcadePriceStruct.iNeonLightsPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
sArcadePriceStruct.iScreensPrice = 0
|
|
|
|
IF eTradeInArcade != eArcadeID
|
|
IF sArcadeData.iScreens = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: new property, Screens A is free")
|
|
ELIF IS_ARCADE_PROPERTY_ID_VALID(eTradeInArcade)
|
|
AND sArcadeData.iScreens = GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_SCREENS))
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: new property, Screens ", sArcadeData.iScreens, " is kept for free")
|
|
ELSE
|
|
sArcadePriceStruct.iScreensPrice = GET_ARCADE_UPGRADE_COST(eARCADE_MOD_SCREENS, eArcadeID, sArcadeData.iScreens)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: new property, Screens to ", sArcadeData.iScreens, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_SCREENS)), " add $", sArcadePriceStruct.iScreensPrice)
|
|
|
|
iCost += sArcadePriceStruct.iScreensPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sArcadeData.iScreens != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_SCREENS))
|
|
sArcadePriceStruct.iScreensPrice = GET_ARCADE_UPGRADE_COST(eARCADE_MOD_SCREENS, eArcadeID, sArcadeData.iScreens)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: changing Screens to ", sArcadeData.iScreens, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_SCREENS)), " add $", sArcadePriceStruct.iScreensPrice)
|
|
|
|
iCost += sArcadePriceStruct.iScreensPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES: Total cost of changes: $", iCost)
|
|
|
|
RETURN iCost
|
|
ENDFUNC
|
|
|
|
FUNC INT CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES(AUTO_SHOP_PROPERTY_ID eAutoShopID, AUTO_SHOP_PRICE_STRUCT &sAutoShopPriceStruct)
|
|
AUTO_SHOP_PROPERTY_ID eTradeInAutoShop = GET_PLAYERS_OWNED_AUTO_SHOP_PROPERTY(PLAYER_ID())
|
|
|
|
INT iCost = 0
|
|
|
|
AUTO_SHOP_DATA_STRUCT sAutoShopData
|
|
GET_SCALEFORM_AUTO_SHOP_DATA(sAutoShopData)
|
|
|
|
// ----- WALL -----
|
|
sAutoShopPriceStruct.iWallPrice = 0
|
|
|
|
IF eTradeInAutoShop != eAutoShopID
|
|
IF sAutoShopData.iWall = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: new property, Wall A is free")
|
|
ELSE
|
|
sAutoShopPriceStruct.iWallPrice = GET_AUTO_SHOP_UPGRADE_COST(AUTO_SHOP_MOD_WALL, eAutoShopID, sAutoShopData.iWall)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: new property, Wall to ", sAutoShopData.iWall, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_WALL)), " add $", sAutoShopPriceStruct.iWallPrice)
|
|
iCost += sAutoShopPriceStruct.iWallPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sAutoShopData.iWall != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_WALL))
|
|
sAutoShopPriceStruct.iWallPrice = GET_AUTO_SHOP_UPGRADE_COST(AUTO_SHOP_MOD_WALL, eAutoShopID, sAutoShopData.iWall)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: changing Wall to ", sAutoShopData.iWall, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_WALL)), " add $", sAutoShopPriceStruct.iWallPrice)
|
|
iCost += sAutoShopPriceStruct.iWallPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// ----- TINT -----
|
|
sAutoShopPriceStruct.iTintPrice = 0
|
|
|
|
IF eTradeInAutoShop != eAutoShopID
|
|
IF sAutoShopData.iTint = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: new property, Tint A is free")
|
|
ELSE
|
|
sAutoShopPriceStruct.iTintPrice = GET_AUTO_SHOP_UPGRADE_COST(AUTO_SHOP_MOD_TINT, eAutoShopID, sAutoShopData.iTint)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: new property, Tint to ", sAutoShopData.iTint, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_TINT)), " add $", sAutoShopPriceStruct.iTintPrice)
|
|
iCost += sAutoShopPriceStruct.iTintPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sAutoShopData.iTint != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_TINT))
|
|
sAutoShopPriceStruct.iTintPrice = GET_AUTO_SHOP_UPGRADE_COST(AUTO_SHOP_MOD_TINT, eAutoShopID, sAutoShopData.iTint)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: changing Tint to ", sAutoShopData.iTint, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_TINT)), " add $", sAutoShopPriceStruct.iTintPrice)
|
|
iCost += sAutoShopPriceStruct.iTintPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// ----- EMBLEM -----
|
|
sAutoShopPriceStruct.iEmblemPrice = 0
|
|
|
|
IF eTradeInAutoShop != eAutoShopID
|
|
IF sAutoShopData.iEmblem = 0 // Crew
|
|
OR sAutoShopData.iEmblem = 1 // Hot Rod
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: new property, Emblem A and B is free")
|
|
ELSE
|
|
sAutoShopPriceStruct.iEmblemPrice = GET_AUTO_SHOP_UPGRADE_COST(AUTO_SHOP_MOD_EMBLEM, eAutoShopID, sAutoShopData.iEmblem)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: new property, Emblem to ", sAutoShopData.iEmblem, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_EMBLEM)), " add $", sAutoShopPriceStruct.iEmblemPrice)
|
|
iCost += sAutoShopPriceStruct.iEmblemPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sAutoShopData.iEmblem != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_EMBLEM))
|
|
sAutoShopPriceStruct.iEmblemPrice = GET_AUTO_SHOP_UPGRADE_COST(AUTO_SHOP_MOD_EMBLEM, eAutoShopID, sAutoShopData.iEmblem)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: changing Emblem to ", sAutoShopData.iEmblem, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_EMBLEM)), " add $", sAutoShopPriceStruct.iEmblemPrice)
|
|
iCost += sAutoShopPriceStruct.iEmblemPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// ----- CREW NAME -----
|
|
sAutoShopPriceStruct.iCrewNamePrice = 0
|
|
|
|
IF eTradeInAutoShop != eAutoShopID
|
|
IF sAutoShopData.iCrewName = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: new property, Crew Name A is free")
|
|
ELSE
|
|
sAutoShopPriceStruct.iCrewNamePrice = GET_AUTO_SHOP_UPGRADE_COST(AUTO_SHOP_MOD_CREW_NAME, eAutoShopID, sAutoShopData.iCrewName)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: new property, Crew Name to ", sAutoShopData.iCrewName, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_CREW_NAME)), " add $", sAutoShopPriceStruct.iCrewNamePrice)
|
|
iCost += sAutoShopPriceStruct.iCrewNamePrice
|
|
ENDIF
|
|
ELSE
|
|
IF sAutoShopData.iCrewName != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_CREW_NAME))
|
|
sAutoShopPriceStruct.iCrewNamePrice = GET_AUTO_SHOP_UPGRADE_COST(AUTO_SHOP_MOD_CREW_NAME, eAutoShopID, sAutoShopData.iCrewName)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: changing Crew Name to ", sAutoShopData.iCrewName, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_CREW_NAME)), " add $", sAutoShopPriceStruct.iCrewNamePrice)
|
|
iCost += sAutoShopPriceStruct.iCrewNamePrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// ----- STAFF 1 -----
|
|
sAutoShopPriceStruct.iStaff1Price = 0
|
|
|
|
IF eTradeInAutoShop != eAutoShopID
|
|
IF sAutoShopData.iStaff1 = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: new property, Staff 1 A is free")
|
|
ELSE
|
|
sAutoShopPriceStruct.iStaff1Price = GET_AUTO_SHOP_UPGRADE_COST(AUTO_SHOP_MOD_STAFF_ONE, eAutoShopID, sAutoShopData.iStaff1)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: new property, Staff 1 to ", sAutoShopData.iStaff1, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_STAFF_ONE)), " add $", sAutoShopPriceStruct.iStaff1Price)
|
|
iCost += sAutoShopPriceStruct.iStaff1Price
|
|
ENDIF
|
|
ELSE
|
|
IF sAutoShopData.iStaff1 != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_STAFF_ONE))
|
|
sAutoShopPriceStruct.iStaff1Price = GET_AUTO_SHOP_UPGRADE_COST(AUTO_SHOP_MOD_STAFF_ONE, eAutoShopID, sAutoShopData.iStaff1)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: changing Staff 1 to ", sAutoShopData.iStaff1, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_STAFF_ONE)), " add $", sAutoShopPriceStruct.iStaff1Price)
|
|
iCost += sAutoShopPriceStruct.iStaff1Price
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// ----- STAFF 2 -----
|
|
sAutoShopPriceStruct.iStaff2Price = 0
|
|
|
|
IF eTradeInAutoShop != eAutoShopID
|
|
IF sAutoShopData.iStaff2 = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: new property, Staff 2 A is free")
|
|
ELSE
|
|
sAutoShopPriceStruct.iStaff2Price = GET_AUTO_SHOP_UPGRADE_COST(AUTO_SHOP_MOD_STAFF_TWO, eAutoShopID, sAutoShopData.iStaff2)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: new property, Staff 2 to ", sAutoShopData.iStaff2, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_STAFF_TWO)), " add $", sAutoShopPriceStruct.iStaff2Price)
|
|
iCost += sAutoShopPriceStruct.iStaff2Price
|
|
ENDIF
|
|
ELSE
|
|
IF sAutoShopData.iStaff2 != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_STAFF_TWO))
|
|
sAutoShopPriceStruct.iStaff2Price = GET_AUTO_SHOP_UPGRADE_COST(AUTO_SHOP_MOD_STAFF_TWO, eAutoShopID, sAutoShopData.iStaff2)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: changing Staff 2 to ", sAutoShopData.iStaff2, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_STAFF_TWO)), " add $", sAutoShopPriceStruct.iStaff2Price)
|
|
iCost += sAutoShopPriceStruct.iStaff2Price
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// ----- CAR LIFT -----
|
|
sAutoShopPriceStruct.iCarLiftPrice = 0
|
|
|
|
IF eTradeInAutoShop != eAutoShopID
|
|
IF sAutoShopData.iCarLift = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: new property, iCarLift A is free")
|
|
ELSE
|
|
sAutoShopPriceStruct.iCarLiftPrice = GET_AUTO_SHOP_UPGRADE_COST(AUTO_SHOP_MOD_CAR_LIFT, eAutoShopID, sAutoShopData.iCarLift)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: new property, iCarLift to ", sAutoShopData.iCarLift, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_CAR_LIFT)), " add $", sAutoShopPriceStruct.iCarLiftPrice)
|
|
iCost += sAutoShopPriceStruct.iCarLiftPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sAutoShopData.iCarLift != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_CAR_LIFT))
|
|
sAutoShopPriceStruct.iCarLiftPrice = GET_AUTO_SHOP_UPGRADE_COST(AUTO_SHOP_MOD_CAR_LIFT, eAutoShopID, sAutoShopData.iCarLift)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: changing iCarLift to ", sAutoShopData.iCarLift, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_CAR_LIFT)), " add $", sAutoShopPriceStruct.iCarLiftPrice)
|
|
iCost += sAutoShopPriceStruct.iCarLiftPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// ----- PERSONAL QUARTERS -----
|
|
sAutoShopPriceStruct.iPersonalQuartersPrice = 0
|
|
|
|
IF eTradeInAutoShop != eAutoShopID
|
|
IF sAutoShopData.iPersonalQuarters = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: new property, iPersonalQuarters A is free")
|
|
ELSE
|
|
sAutoShopPriceStruct.iPersonalQuartersPrice = GET_AUTO_SHOP_UPGRADE_COST(AUTO_SHOP_MOD_PERSONAL_QUARTERS, eAutoShopID, sAutoShopData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: new property, iPersonalQuarters to ", sAutoShopData.iPersonalQuarters, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_PERSONAL_QUARTERS)), " add $", sAutoShopPriceStruct.iPersonalQuartersPrice)
|
|
iCost += sAutoShopPriceStruct.iPersonalQuartersPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sAutoShopData.iPersonalQuarters != GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_PERSONAL_QUARTERS))
|
|
sAutoShopPriceStruct.iPersonalQuartersPrice = GET_AUTO_SHOP_UPGRADE_COST(AUTO_SHOP_MOD_PERSONAL_QUARTERS, eAutoShopID, sAutoShopData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: changing iPersonalQuarters to ", sAutoShopData.iPersonalQuarters, " from ", GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_PERSONAL_QUARTERS)), " add $", sAutoShopPriceStruct.iPersonalQuartersPrice)
|
|
iCost += sAutoShopPriceStruct.iPersonalQuartersPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES: Total cost of changes: $", iCost)
|
|
|
|
RETURN iCost
|
|
ENDFUNC
|
|
|
|
#IF FEATURE_FIXER
|
|
FUNC INT CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES(FIXER_HQ_ID eFixerHQID, FIXER_HQ_PRICE_STRUCT &ref_sFixerHQPriceStruct)
|
|
FIXER_HQ_ID eTradeInFixerHQ = GET_PLAYERS_OWNED_FIXER_HQ(PLAYER_ID())
|
|
|
|
INT iCost = 0
|
|
|
|
FIXER_HQ_DATA_STRUCT sFixerHQData
|
|
GET_SCALEFORM_FIXER_HQ_DATA(sFixerHQData)
|
|
|
|
// ----- ART -----
|
|
ref_sFixerHQPriceStruct.iArtPrice = 0
|
|
|
|
IF eTradeInFixerHQ != eFixerHQID
|
|
IF sFixerHQData.iArt = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES: new property, Art 0 is free")
|
|
ELSE
|
|
ref_sFixerHQPriceStruct.iArtPrice = GET_FIXER_HQ_UPGRADE_COST(FIXER_HQ_UPGRADE_ART, eFixerHQID, sFixerHQData.iArt)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES: new property, Art to ", sFixerHQData.iArt, " from ", GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_ART)), " add $", ref_sFixerHQPriceStruct.iArtPrice)
|
|
iCost += ref_sFixerHQPriceStruct.iArtPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sFixerHQData.iArt != GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_ART))
|
|
ref_sFixerHQPriceStruct.iArtPrice = GET_FIXER_HQ_UPGRADE_COST(FIXER_HQ_UPGRADE_ART, eFixerHQID, sFixerHQData.iArt)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES: changing Art to ", sFixerHQData.iArt, " from ", GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_ART)), " add $", ref_sFixerHQPriceStruct.iArtPrice)
|
|
iCost += ref_sFixerHQPriceStruct.iArtPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// ----- WALLPAPER -----
|
|
ref_sFixerHQPriceStruct.iWallpaperPrice = 0
|
|
|
|
IF eTradeInFixerHQ != eFixerHQID
|
|
IF sFixerHQData.iWallpaper = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES: new property, iWallpaper 0 is free")
|
|
ELSE
|
|
ref_sFixerHQPriceStruct.iWallpaperPrice = GET_FIXER_HQ_UPGRADE_COST(FIXER_HQ_UPGRADE_WALLPAPER, eFixerHQID, sFixerHQData.iWallpaper)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES: new property, iWallpaper to ", sFixerHQData.iWallpaper, " from ", GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_WALLPAPER)), " add $", ref_sFixerHQPriceStruct.iWallpaperPrice)
|
|
iCost += ref_sFixerHQPriceStruct.iWallpaperPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sFixerHQData.iWallpaper != GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_WALLPAPER))
|
|
ref_sFixerHQPriceStruct.iWallpaperPrice = GET_FIXER_HQ_UPGRADE_COST(FIXER_HQ_UPGRADE_WALLPAPER, eFixerHQID, sFixerHQData.iWallpaper)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES: changing iWallpaper to ", sFixerHQData.iWallpaper, " from ", GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_WALLPAPER)), " add $", ref_sFixerHQPriceStruct.iWallpaperPrice)
|
|
iCost += ref_sFixerHQPriceStruct.iWallpaperPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// ----- TINT -----
|
|
ref_sFixerHQPriceStruct.iTintPrice = 0
|
|
|
|
IF eTradeInFixerHQ != eFixerHQID
|
|
IF sFixerHQData.iTint = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES: new property, iTint 0 is free")
|
|
ELSE
|
|
ref_sFixerHQPriceStruct.iTintPrice = GET_FIXER_HQ_UPGRADE_COST(FIXER_HQ_UPGRADE_TINT, eFixerHQID, sFixerHQData.iTint)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES: new property, iTint to ", sFixerHQData.iTint, " from ", GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_TINT)), " add $", ref_sFixerHQPriceStruct.iTintPrice)
|
|
iCost += ref_sFixerHQPriceStruct.iTintPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sFixerHQData.iTint != GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_TINT))
|
|
ref_sFixerHQPriceStruct.iTintPrice = GET_FIXER_HQ_UPGRADE_COST(FIXER_HQ_UPGRADE_TINT, eFixerHQID, sFixerHQData.iTint)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES: changing iTint to ", sFixerHQData.iTint, " from ", GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_TINT)), " add $", ref_sFixerHQPriceStruct.iTintPrice)
|
|
iCost += ref_sFixerHQPriceStruct.iTintPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// ----- VEHICLE WORKSHOP -----
|
|
ref_sFixerHQPriceStruct.iVehWorkshopPrice = 0
|
|
|
|
IF eTradeInFixerHQ != eFixerHQID
|
|
IF sFixerHQData.iVehWorkshop = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES: new property, iVehWorkshop 0 is free")
|
|
ELSE
|
|
ref_sFixerHQPriceStruct.iVehWorkshopPrice = GET_FIXER_HQ_UPGRADE_COST(FIXER_HQ_UPGRADE_VEH_WORKSHOP, eFixerHQID, sFixerHQData.iVehWorkshop)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES: new property, iVehWorkshop to ", sFixerHQData.iVehWorkshop, " from ", GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_VEH_WORKSHOP)), " add $", ref_sFixerHQPriceStruct.iVehWorkshopPrice)
|
|
iCost += ref_sFixerHQPriceStruct.iVehWorkshopPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sFixerHQData.iVehWorkshop != GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_VEH_WORKSHOP))
|
|
ref_sFixerHQPriceStruct.iVehWorkshopPrice = GET_FIXER_HQ_UPGRADE_COST(FIXER_HQ_UPGRADE_VEH_WORKSHOP, eFixerHQID, sFixerHQData.iVehWorkshop)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES: changing iVehWorkshop to ", sFixerHQData.iVehWorkshop, " from ", GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_VEH_WORKSHOP)), " add $", ref_sFixerHQPriceStruct.iVehWorkshopPrice)
|
|
iCost += ref_sFixerHQPriceStruct.iVehWorkshopPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// ----- ARMORY -----
|
|
ref_sFixerHQPriceStruct.iArmoryPrice = 0
|
|
|
|
IF eTradeInFixerHQ != eFixerHQID
|
|
IF sFixerHQData.iArmory = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES: new property, iArmory 0 is free")
|
|
ELSE
|
|
ref_sFixerHQPriceStruct.iArmoryPrice = GET_FIXER_HQ_UPGRADE_COST(FIXER_HQ_UPGRADE_ARMORY, eFixerHQID, sFixerHQData.iArmory)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES: new property, iArmory to ", sFixerHQData.iArmory, " from ", GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_ARMORY)), " add $", ref_sFixerHQPriceStruct.iArmoryPrice)
|
|
iCost += ref_sFixerHQPriceStruct.iArmoryPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sFixerHQData.iArmory != GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_ARMORY))
|
|
ref_sFixerHQPriceStruct.iArmoryPrice = GET_FIXER_HQ_UPGRADE_COST(FIXER_HQ_UPGRADE_ARMORY, eFixerHQID, sFixerHQData.iArmory)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES: changing iArmory to ", sFixerHQData.iArmory, " from ", GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_ARMORY)), " add $", ref_sFixerHQPriceStruct.iArmoryPrice)
|
|
iCost += ref_sFixerHQPriceStruct.iArmoryPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// ----- PERSONAL QUARTERS -----
|
|
ref_sFixerHQPriceStruct.iPersonalQuartersPrice = 0
|
|
|
|
IF eTradeInFixerHQ != eFixerHQID
|
|
IF sFixerHQData.iPersonalQuarters = 0
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES: new property, iPersonalQuarters 0 is free")
|
|
ELSE
|
|
ref_sFixerHQPriceStruct.iPersonalQuartersPrice = GET_FIXER_HQ_UPGRADE_COST(FIXER_HQ_UPGRADE_PERSONAL_QUARTERS, eFixerHQID, sFixerHQData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES: new property, iPersonalQuarters to ", sFixerHQData.iPersonalQuarters, " from ", GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_PERSONAL_QUARTERS)), " add $", ref_sFixerHQPriceStruct.iPersonalQuartersPrice)
|
|
iCost += ref_sFixerHQPriceStruct.iPersonalQuartersPrice
|
|
ENDIF
|
|
ELSE
|
|
IF sFixerHQData.iPersonalQuarters != GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_PERSONAL_QUARTERS))
|
|
ref_sFixerHQPriceStruct.iPersonalQuartersPrice = GET_FIXER_HQ_UPGRADE_COST(FIXER_HQ_UPGRADE_PERSONAL_QUARTERS, eFixerHQID, sFixerHQData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES: changing iPersonalQuarters to ", sFixerHQData.iPersonalQuarters, " from ", GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_PERSONAL_QUARTERS)), " add $", ref_sFixerHQPriceStruct.iPersonalQuartersPrice)
|
|
iCost += ref_sFixerHQPriceStruct.iPersonalQuartersPrice
|
|
ENDIF
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES: Total cost of changes: $", iCost)
|
|
|
|
RETURN iCost
|
|
ENDFUNC
|
|
#ENDIF
|
|
|
|
PROC SAFE_NETWORK_EARN_FROM_PROPERTY(INT amount, INT propertyType)
|
|
CONST_INT iEARN_FROM_PROPERTY_LIMIT 2500000
|
|
IF amount >= iEARN_FROM_PROPERTY_LIMIT
|
|
NETWORK_EARN_FROM_PROPERTY(iEARN_FROM_PROPERTY_LIMIT-1, propertyType)
|
|
amount -= iEARN_FROM_PROPERTY_LIMIT-1
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_SHOPS, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
NETWORK_EARN_FROM_PROPERTY(amount, propertyType)
|
|
ENDPROC
|
|
|
|
PROC SAFE_NETWORK_EARN_FROM_HANGAR_TRADE(INT amount, INT propertyHash)
|
|
CONST_INT iEARN_FROM_HANGAR_LIMIT 2500000
|
|
IF amount >= iEARN_FROM_HANGAR_LIMIT
|
|
NETWORK_EARN_FROM_HANGAR_TRADE(iEARN_FROM_HANGAR_LIMIT-1, propertyHash)
|
|
amount -= iEARN_FROM_HANGAR_LIMIT-1
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_SHOPS, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
NETWORK_EARN_FROM_HANGAR_TRADE(amount, propertyHash)
|
|
ENDPROC
|
|
|
|
FUNC BOOL IS_PLAYER_ON_MISSION_BLOCKING_GANG_CREATION()
|
|
#IF FEATURE_COPS_N_CROOKS
|
|
IF GB_GET_PLAYER_CURRENT_GANG_BOSS_MISSION(PLAYER_ID()) = FMMC_TYPE_DISPATCH
|
|
RETURN TRUE
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
PROC BUY_MP_PROPERTY_FROM_WEBSITE(INT iBuyPropertyIndex)
|
|
REPLACE_MP_VEH_OR_PROP_MENU replaceMenu
|
|
INT iResultSlot = -1, i, iOfficeRenovationCost, iClubhouseRenovationCost, iOfficeGarageRenovationCost
|
|
BOOL bUpgradingOffice = FALSE, bUpgradingClubhouse = FALSE, bUpgradingOfficeGarage = FALSE
|
|
|
|
IF iBuyPropertyIndex < 0
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: iBuyPropertyIndex invalid, bailing")
|
|
EXIT //bailout
|
|
ENDIF
|
|
|
|
IF IS_PROPERTY_CLUBHOUSE(iBuyPropertyIndex)
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_BKRCLNT")
|
|
CLEAR_HELP()
|
|
CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_FM_TYPE_UNLOCKED(FMMC_TYPE_CUSTOM_CAR_GARAGE)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: purchase failed, player doesn't have sufficient rank")
|
|
IF GET_PLAYER_RANK(GET_PLAYER_INDEX()) < 5
|
|
mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK
|
|
ELSE
|
|
mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK_PENDING
|
|
ENDIF
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
IF NOT NET_GAMESERVER_IS_SESSION_VALID(GET_ACTIVE_CHARACTER_SLOT())
|
|
OR NET_GAMESERVER_IS_SESSION_REFRESH_PENDING()
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: failed to process transaction - session pending!")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
#IF FEATURE_DLC_1_2022
|
|
IF IS_PROPERTY_CLUBHOUSE(iBuyPropertyIndex)
|
|
IF GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_BIKER_CLIENT_VEHICLE_MODIFICATION()) != 0
|
|
mpPropertySiteFailReason = MPSFR_HAS_STOCK
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ELIF GB_GET_PLAYER_CURRENT_GANG_BOSS_MISSION(PLAYER_ID()) = FMMC_TYPE_BAR_RESUPPLY
|
|
OR GB_GET_PLAYER_CURRENT_GANG_BOSS_MISSION(PLAYER_ID()) = FMMC_TYPE_CLUBHOUSE_CONTRACTS
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
//MP_PROPERTY_STRUCT propertyDetails
|
|
//GET_MP_PROPERTY_DETAILS(propertyDetails,iBuyPropertyIndex)
|
|
|
|
TEXT_LABEL_15 tLastClickedPropertyIndex = GET_PROPERTY_NAME(iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: trying to purchase property #", iBuyPropertyIndex, " \"", tLastClickedPropertyIndex, "\"")
|
|
|
|
INT iMaxTradeIn = 0
|
|
|
|
INT iOwned, propval
|
|
INT iReplaceSpecificPropertySlot = -1
|
|
IF IS_PROPERTY_RESTRICTED_SLOT_ONLY(iBuyPropertyIndex)
|
|
iReplaceSpecificPropertySlot = GET_PROPERTY_RESTRICTED_SLOT(iBuyPropertyIndex)
|
|
iMaxTradeIn = GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(iReplaceSpecificPropertySlot)
|
|
|
|
iOwned = GET_OWNED_PROPERTY(iReplaceSpecificPropertySlot)
|
|
|
|
PRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: iReplaceSpecificPropertySlot #", iReplaceSpecificPropertySlot, " iOwned =",iOwned, " iBuyPropertyIndex =",iBuyPropertyIndex)
|
|
|
|
IF iOwned = iBuyPropertyIndex
|
|
IF NOT IS_PROPERTY_OFFICE(iOwned)
|
|
AND NOT IS_PROPERTY_CLUBHOUSE(iOwned)
|
|
AND NOT IS_PROPERTY_OFFICE_GARAGE(iOwned)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
propval = 0
|
|
ELSE
|
|
propval = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ENDIF
|
|
ELSE
|
|
REPEAT MAX_OWNED_PROPERTIES i
|
|
IF iMaxTradeIn < GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(i)
|
|
iMaxTradeIn = GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(i)
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
REPEAT MAX_OWNED_PROPERTIES i
|
|
iOwned = GET_OWNED_PROPERTY(i)
|
|
IF iOwned = iBuyPropertyIndex
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
propval = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: prop value of #", iBuyPropertyIndex, " is propval:$", propval)
|
|
|
|
IF SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
propval = 0
|
|
ENDIF
|
|
IF IS_PROPERTY_OFFICE(iBuyPropertyIndex)
|
|
propval += CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES(iBuyPropertyIndex,
|
|
sOffice_price_struct.iStylePrice,
|
|
sOffice_price_struct.iPersonnelPrice,
|
|
sOffice_price_struct.iNamePrice,
|
|
sOffice_price_struct.iFontPrice,
|
|
sOffice_price_struct.iColourPrice,
|
|
sOffice_price_struct.iGunLockerPrice,
|
|
sOffice_price_struct.iVaultPrice,
|
|
sOffice_price_struct.iAccommodationPrice,
|
|
sOffice_price_struct.iModshopPrice)
|
|
ELIF IS_PROPERTY_CLUBHOUSE(iBuyPropertyIndex)
|
|
propval += CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES(iBuyPropertyIndex,
|
|
sClubhouse_price_struct.iWallPrice,
|
|
sClubhouse_price_struct.iHangingPrice,
|
|
sClubhouse_price_struct.iFurniturePrice,
|
|
sClubhouse_price_struct.iStylePrice,
|
|
sClubhouse_price_struct.iNamePrice,
|
|
sClubhouse_price_struct.iFontPrice,
|
|
sClubhouse_price_struct.iFontColourPrice,
|
|
sClubhouse_price_struct.iHideSignagePrice,
|
|
sClubhouse_price_struct.iEmblemPrice,
|
|
sClubhouse_price_struct.iGunLockerPrice,
|
|
sClubhouse_price_struct.iGaragePrice)
|
|
ELIF IS_PROPERTY_OFFICE_GARAGE(iBuyPropertyIndex)
|
|
propval += CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES(iBuyPropertyIndex,
|
|
sOffice_price_struct.iGarage1StylePrice,
|
|
sOffice_price_struct.iGarage1LightingPrice,
|
|
sOffice_price_struct.iGarage1NumberPrice,
|
|
sOffice_price_struct.iGarage2StylePrice,
|
|
sOffice_price_struct.iGarage2LightingPrice,
|
|
sOffice_price_struct.iGarage2NumberPrice,
|
|
sOffice_price_struct.iGarage3StylePrice,
|
|
sOffice_price_struct.iGarage3LightingPrice,
|
|
sOffice_price_struct.iGarage3NumberPrice)
|
|
ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: purchase valid, attempting index #", iBuyPropertyIndex, " for propval:$", propval)
|
|
INT minPendingTransactionValue = propval - iMaxTradeIn
|
|
INT finalPendingTransactionValue
|
|
|
|
INT iPrevModshop
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: min pending: propval:$", propval, " - $", iMaxTradeIn, " = $", minPendingTransactionValue)
|
|
|
|
IF IS_PROPERTY_OFFICE(iBuyPropertyIndex)
|
|
IF iOwned = iBuyPropertyIndex
|
|
OFFICE_PRICE_STRUCT sUpgrade_Office_price_struct
|
|
minPendingTransactionValue = CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES(iBuyPropertyIndex,
|
|
sUpgrade_Office_price_struct.iStylePrice,
|
|
sUpgrade_Office_price_struct.iPersonnelPrice,
|
|
sUpgrade_Office_price_struct.iNamePrice,
|
|
sUpgrade_Office_price_struct.iFontPrice,
|
|
sUpgrade_Office_price_struct.iColourPrice,
|
|
sUpgrade_Office_price_struct.iGunLockerPrice,
|
|
sUpgrade_Office_price_struct.iVaultPrice,
|
|
sUpgrade_Office_price_struct.iAccommodationPrice,
|
|
sUpgrade_Office_price_struct.iModshopPrice)
|
|
iOfficeRenovationCost = minPendingTransactionValue
|
|
bUpgradingOffice = TRUE
|
|
ENDIF
|
|
IF bUpgradingOffice
|
|
AND g_bDontCrossRunning
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ELIF IS_PROPERTY_CLUBHOUSE(iBuyPropertyIndex)
|
|
IF iOwned = iBuyPropertyIndex
|
|
CLUBHOUSE_PRICE_STRUCT sUpgrade_Clubhouse_price_struct
|
|
minPendingTransactionValue = CALCULATE_COST_OF_CLUBHOUSE_INTERIOR_UPGRADES(iBuyPropertyIndex,
|
|
sUpgrade_Clubhouse_price_struct.iWallPrice,
|
|
sUpgrade_Clubhouse_price_struct.iHangingPrice,
|
|
sUpgrade_Clubhouse_price_struct.iFurniturePrice,
|
|
sUpgrade_Clubhouse_price_struct.iStylePrice,
|
|
sUpgrade_Clubhouse_price_struct.iNamePrice,
|
|
sUpgrade_Clubhouse_price_struct.iFontPrice,
|
|
sUpgrade_Clubhouse_price_struct.iFontColourPrice,
|
|
sUpgrade_Clubhouse_price_struct.iHideSignagePrice,
|
|
sUpgrade_Clubhouse_price_struct.iEmblemPrice,
|
|
sUpgrade_Clubhouse_price_struct.iGunLockerPrice,
|
|
sUpgrade_Clubhouse_price_struct.iGaragePrice)
|
|
iClubhouseRenovationCost = minPendingTransactionValue
|
|
bUpgradingClubhouse = TRUE
|
|
ENDIF
|
|
IF bUpgradingClubhouse
|
|
AND g_bDontCrossRunning
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ELIF IS_PROPERTY_OFFICE_GARAGE(iBuyPropertyIndex)
|
|
IF iOwned = iBuyPropertyIndex
|
|
OFFICE_PRICE_STRUCT sUpgrade_Office_price_struct
|
|
minPendingTransactionValue = CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES(iBuyPropertyIndex,
|
|
sUpgrade_Office_price_struct.iGarage1StylePrice,
|
|
sUpgrade_Office_price_struct.iGarage1LightingPrice,
|
|
sUpgrade_Office_price_struct.iGarage1NumberPrice,
|
|
sUpgrade_Office_price_struct.iGarage2StylePrice,
|
|
sUpgrade_Office_price_struct.iGarage2LightingPrice,
|
|
sUpgrade_Office_price_struct.iGarage2NumberPrice,
|
|
sUpgrade_Office_price_struct.iGarage3StylePrice,
|
|
sUpgrade_Office_price_struct.iGarage3LightingPrice,
|
|
sUpgrade_Office_price_struct.iGarage3NumberPrice)
|
|
iOfficeGarageRenovationCost = minPendingTransactionValue
|
|
bUpgradingOfficeGarage = TRUE
|
|
ENDIF
|
|
IF bUpgradingOfficeGarage
|
|
AND g_bDontCrossRunning
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
iPrevModshop = GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_MODSHOP)
|
|
|
|
|
|
INT iBankBalance = NETWORK_GET_VC_BANK_BALANCE()
|
|
INT iWalletBalance = NETWORK_GET_VC_WALLET_BALANCE()
|
|
TEXT_LABEL_15 tl_15PropertyName
|
|
|
|
//is it a debit or refund
|
|
IF minPendingTransactionValue >0
|
|
//do they have enough money
|
|
// IF (iBankBalance+iWalletBalance) < minPendingTransactionValue
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " <> $", minPendingTransactionValue)
|
|
// IF (minPendingTransactionValue <= 0
|
|
// OR (minPendingTransactionValue > 0 AND ((iBankBalance+iWalletBalance) < minPendingTransactionValue)))
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < minPendingTransactionValue $", minPendingTransactionValue, "]")
|
|
// mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
// SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
// iCustomAptVariant = 1
|
|
// bCustomInteriorSelected = FALSE
|
|
//
|
|
// tl_15PropertyName = GET_PROPERTY_NAME(iBuyPropertyIndex)
|
|
// TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15PropertyName), minPendingTransactionValue)
|
|
//
|
|
// PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
// EXIT
|
|
// ENDIF
|
|
|
|
IF (minPendingTransactionValue <= 0
|
|
OR (minPendingTransactionValue > 0 AND NOT NETWORK_CAN_SPEND_MONEY(minPendingTransactionValue,FALSE,TRUE,FALSE)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < NETWORK_CAN_SPEND_MONEY:minPendingTransactionValue $", minPendingTransactionValue, "]")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
tl_15PropertyName = GET_PROPERTY_NAME(iBuyPropertyIndex)
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15PropertyName), minPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
// ENDIF
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: min pending: $", minPendingTransactionValue, ", MAX trade val $",iMaxTradeIn)
|
|
|
|
//BOOL bSmallerGarage
|
|
|
|
IF IS_PROPERTY_CUSTOMISABLE(iBuyPropertyIndex)
|
|
//IS_PROPERTY_CUSTOM_APARTMENT OR OFFICE_GARAGE(iBuyPropertyIndex)
|
|
IF DISABLE_INTERIOR_VARIATION(iCustomAptVariant, iBuyPropertyIndex)
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: purchase failed, custom apartment ", iCustomAptVariant, "is disabled")
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF (GET_OWNED_PROPERTY(0) > 0
|
|
AND iReplaceSpecificPropertySlot = -1 AND NOT (bUpgradingOffice OR bUpgradingClubhouse OR bUpgradingOfficeGarage))
|
|
OR ((iReplaceSpecificPropertySlot != -1 AND GET_OWNED_PROPERTY(iReplaceSpecificPropertySlot) > 0)
|
|
AND NOT (bUpgradingOffice OR bUpgradingClubhouse OR bUpgradingOfficeGarage))
|
|
|
|
WHILE NOT RUN_REPLACE_PROPERTY_MENU(replaceMenu,iResultSlot,iBuyPropertyIndex,iReplaceSpecificPropertySlot,rpmt_0)
|
|
AND DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
//RENDER_BROWSER()
|
|
DISABLE_SELECTOR_THIS_FRAME()
|
|
DISABLE_CELLPHONE_THIS_FRAME_ONLY()
|
|
WAIT(0)
|
|
g_sMenuData.bKeepPhoneForNextDrawMenuCall = TRUE
|
|
ENDWHILE
|
|
//RENDER_BROWSER()
|
|
DISABLE_SELECTOR_THIS_FRAME()
|
|
DISABLE_CELLPHONE_THIS_FRAME_ONLY()
|
|
WAIT(0)
|
|
g_sMenuData.bKeepPhoneForNextDrawMenuCall = TRUE
|
|
buttons = NULL
|
|
ELSE
|
|
IF iReplaceSpecificPropertySlot != -1
|
|
iResultSlot = iReplaceSpecificPropertySlot
|
|
ELSE
|
|
iResultSlot = 0
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iResultSlot = -1
|
|
mpPropertySiteFailReason = MPSFR_CANCELED
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
g_iPendingBrowserTimer = g_iBrowserTimer
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
CPRINTLN(DEBUG_INTERNET, "CDM: BUY_MP_PROPERTY_FROM_WEBSITE: Player backed out of property selection")
|
|
EXIT
|
|
ELSE
|
|
IF bUpgradingOffice
|
|
finalPendingTransactionValue = iOfficeRenovationCost
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: upgrade office[\"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\"] finalPendingTransactionValue:$", finalPendingTransactionValue)
|
|
ELIF bUpgradingClubhouse
|
|
finalPendingTransactionValue = iClubhouseRenovationCost
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: upgrade clubhouse[\"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\"] finalPendingTransactionValue:$", finalPendingTransactionValue)
|
|
ELIF bUpgradingOfficeGarage
|
|
finalPendingTransactionValue = iOfficeGarageRenovationCost
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: upgrade office garage[\"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\"] finalPendingTransactionValue:$", finalPendingTransactionValue)
|
|
ELSE
|
|
|
|
finalPendingTransactionValue = propval - GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(iResultSlot)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: buy new property[\"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\"] propval:$", propval, " - $", GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(iResultSlot), " = finalPendingTransactionValue:$", finalPendingTransactionValue)
|
|
|
|
IF IS_PROPERTY_OFFICE(iBuyPropertyIndex)
|
|
IF finalPendingTransactionValue < 0 //url:bugstar:2850740
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: floor the money pending for office finalPendingTransactionValue:$", finalPendingTransactionValue)
|
|
finalPendingTransactionValue = 0
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// Re-check if player can afford based on selected trade-in value
|
|
IF finalPendingTransactionValue > 0
|
|
|
|
//do they have enough money
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " + trade:$", GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(iResultSlot), " <> finalPendingTransactionValue:$", finalPendingTransactionValue)
|
|
// IF (iBankBalance+iWalletBalance+ GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(iResultSlot)) < finalPendingTransactionValue
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash after trade selection [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < finalPendingTransactionValue finalPendingTransactionValue:$", finalPendingTransactionValue, "]")
|
|
// mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
// SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
// iCustomAptVariant = 1
|
|
// bCustomInteriorSelected = FALSE
|
|
//
|
|
// tl_15PropertyName = GET_PROPERTY_NAME(iBuyPropertyIndex)
|
|
// TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15PropertyName), finalPendingTransactionValue)
|
|
//
|
|
// PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
// EXIT
|
|
// ENDIF
|
|
|
|
IF NOT NETWORK_CAN_SPEND_MONEY(finalPendingTransactionValue, FALSE, TRUE, FALSE)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: purchase failed, player failed on command NETWORK_CAN_SPEND_MONEY")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
tl_15PropertyName = GET_PROPERTY_NAME(iBuyPropertyIndex)
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15PropertyName), finalPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
IF IS_PROPERTY_OFFICE(iBuyPropertyIndex)
|
|
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(g_sOfficeDataStruct.tl63NewOrgName)
|
|
AND NOT ARE_STRINGS_EQUAL(g_sOfficeDataStruct.tl63OldOrgName, g_sOfficeDataStruct.tl63NewOrgName)
|
|
IF NOT CAN_ORGANIZATION_BE_RENAMED(DEFAULT, finalPendingTransactionValue)
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: purchase failed, organisation cannot be renamed from \"", g_sOfficeDataStruct.tl63OldOrgName, "\" to \"", g_sOfficeDataStruct.tl63NewOrgName, "\"")
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PROPERTY_OFFICE(iBuyPropertyIndex)
|
|
OR IS_PROPERTY_OFFICE_GARAGE(iBuyPropertyIndex)
|
|
IF DOES_CURRENT_MISSION_USE_GANG_BOSS_FLOW()
|
|
mpPropertySiteFailReason = MPSFR_ON_MISSION
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: purchase failed, mission is SVM Flow")
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
#IF FEATURE_GEN9_EXCLUSIVE
|
|
IF IS_PROPERTY_OFFICE(iBuyPropertyIndex)
|
|
OR IS_PROPERTY_OFFICE_GARAGE(iBuyPropertyIndex)
|
|
OR IS_PROPERTY_CLUBHOUSE(iBuyPropertyIndex)
|
|
IF IS_PLAYER_ON_MP_INTRO()
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: purchase failed, player is on MP Intro")
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
iCustomAptVariant = 1
|
|
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
INT iCachedReplaceProperty = GET_OWNED_PROPERTY(iResultSlot)
|
|
INT iCachedSellingPrice = GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(iResultSlot)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: cached replace property ", iCachedReplaceProperty, ", selling price $", iCachedSellingPrice)
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
// IF NOT IS_PROPERTY_OFFICE_XX(iBuyPropertyIndex)
|
|
INT iVariation = 0
|
|
BOOL bStarterPackItem = FALSE
|
|
IF SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
IF NOT COULD_PROPERTY_BE_FREE_FOR_PLAYER_WITH_CRIMINAL_ENTERPRISE_STARTER_PACK(iBuyPropertyIndex)
|
|
iVariation = 1
|
|
ELSE
|
|
bStarterPackItem = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PROPERTY_RESTRICTED_SLOT_ONLY(iBuyPropertyIndex)
|
|
IF iOwned = iBuyPropertyIndex
|
|
propval = 0
|
|
ELSE
|
|
propval = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
bProcessingBasket = TRUE
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_ADD
|
|
INT iItemId = GET_PROPERTY_KEY_FOR_CATALOGUE(iBuyPropertyIndex, iVariation, bStarterPackItem)
|
|
INT iInventoryKey = GET_PROPERTY_INVENTORY_KEY_FOR_CATALOGUE(iResultSlot)
|
|
INT iReplaceProperty = GET_OWNED_PROPERTY(iResultSlot)
|
|
|
|
INT iItemInteriorID, iInventoryInteriorID
|
|
IF IS_PROPERTY_CUSTOMISABLE(iBuyPropertyIndex)
|
|
//IS_PROPERTY_CUSTOM_APARTMENT OR OFFICE_GARAGE(iBuyPropertyIndex)
|
|
INT iItemType = 0
|
|
IF GET_BASE_PROPERTY_FROM_PROPERTY(iBuyPropertyIndex) = PROPERTY_OFFICE_2_BASE
|
|
AND ((iCustomAptVariant - 1) = 4) //Style 1: "Executive: Rich"
|
|
IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_0) != iBuyPropertyIndex
|
|
iItemType = 1
|
|
ENDIF
|
|
ENDIF
|
|
|
|
INT iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop
|
|
SWITCH iResultSlot
|
|
CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1
|
|
GET_SCALEFORM_OFFICE_DATA(iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop)
|
|
iItemInteriorID = GET_PROPERTY_INTERIOR_KEY_FOR_CATALOGUE(GET_SF_FROM_OFFICE_GARAGE_INTERIOR(iGarage1Style), iBuyPropertyIndex, iItemType)
|
|
BREAK
|
|
CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2
|
|
GET_SCALEFORM_OFFICE_DATA(iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop)
|
|
iItemInteriorID = GET_PROPERTY_INTERIOR_KEY_FOR_CATALOGUE(GET_SF_FROM_OFFICE_GARAGE_INTERIOR(iGarage2Style), iBuyPropertyIndex, iItemType)
|
|
BREAK
|
|
CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3
|
|
GET_SCALEFORM_OFFICE_DATA(iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop)
|
|
iItemInteriorID = GET_PROPERTY_INTERIOR_KEY_FOR_CATALOGUE(GET_SF_FROM_OFFICE_GARAGE_INTERIOR(iGarage3Style), iBuyPropertyIndex, iItemType)
|
|
BREAK
|
|
|
|
CASE PROPERTY_OWNED_SLOT_OFFICE_0
|
|
iItemInteriorID = GET_PROPERTY_INTERIOR_KEY_FOR_CATALOGUE(GET_OFFICE_INTERIOR_FROM_SF(iCustomAptVariant - 1)-1, iBuyPropertyIndex, iItemType)
|
|
BREAK
|
|
|
|
DEFAULT
|
|
iItemInteriorID = GET_PROPERTY_INTERIOR_KEY_FOR_CATALOGUE(iCustomAptVariant - 1, iBuyPropertyIndex, iItemType)
|
|
BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
iItemInteriorID = GET_PROPERTY_INTERIOR_KEY_FOR_CATALOGUE(-1, iBuyPropertyIndex)
|
|
ENDIF
|
|
iInventoryInteriorID = GET_PROPERTY_INTERIOR_INVENTORY_KEY_FOR_CATALOGUE(iResultSlot)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL_15 tlLastClickedPropertyIndex = GET_PROPERTY_NAME(iBuyPropertyIndex)
|
|
IF IS_STRING_NULL_OR_EMPTY(tlLastClickedPropertyIndex)
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: label for last clicked property index #", iBuyPropertyIndex, " is empty!")
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: label for last clicked property index #", iBuyPropertyIndex, " is \"", tlLastClickedPropertyIndex, "\" (iReplaceProperty: ", iReplaceProperty, ")")
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
//for selling property
|
|
INT iSellingPrice = 0
|
|
INT iSellingItemId = 0
|
|
IF (iReplaceProperty > 0)
|
|
INT iSellingPropertyVariation = 0
|
|
BOOL bSellingPropertyStarterPackItem = FALSE
|
|
iSellingPrice = GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(iResultSlot)
|
|
|
|
IF SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iReplaceProperty)
|
|
IF (iResultSlot = 0 AND GET_PACKED_STAT_BOOL(PACKED_MP_STAT_FREE_PROPERTY_SLOT_0))
|
|
OR (iResultSlot = 1 AND GET_PACKED_STAT_BOOL(PACKED_MP_STAT_FREE_PROPERTY_SLOT_1))
|
|
OR (iResultSlot = 2 AND GET_PACKED_STAT_BOOL(PACKED_MP_STAT_FREE_PROPERTY_SLOT_2))
|
|
OR (iResultSlot = 3 AND GET_PACKED_STAT_BOOL(PACKED_MP_STAT_FREE_PROPERTY_SLOT_3))
|
|
OR (iResultSlot = 4 AND GET_PACKED_STAT_BOOL(PACKED_MP_STAT_FREE_PROPERTY_SLOT_4))
|
|
OR (iResultSlot = PROPERTY_OWNED_SLOT_APT_6 AND GET_PACKED_STAT_BOOL(PACKED_MP_STAT_FREE_PROPERTY_SLOT_5))
|
|
#IF FEATURE_SUMMER_2020
|
|
OR (iResultSlot = PROPERTY_OWNED_SLOT_APT_7 AND GET_PACKED_STAT_BOOL(PACKED_MP_BOOL_FREE_OWNED_SLOT_APT_7))
|
|
OR (iResultSlot = PROPERTY_OWNED_SLOT_APT_8 AND GET_PACKED_STAT_BOOL(PACKED_MP_BOOL_FREE_OWNED_SLOT_APT_8))
|
|
#ENDIF
|
|
OR (iResultSlot = PROPERTY_OWNED_SLOT_APT_9 AND GET_PACKED_STAT_BOOL(PACKED_MP_BOOL_FREE_OWNED_SLOT_APT_9))
|
|
OR (iResultSlot = PROPERTY_OWNED_SLOT_APT_10 AND GET_PACKED_STAT_BOOL(PACKED_MP_BOOL_FREE_OWNED_SLOT_APT_10)) //CDM PROPERTY STAT UPDATE //OLD PROPERTIES
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: free property stat set for iResultSlot:", iResultSlot)
|
|
IF NOT COULD_PROPERTY_BE_FREE_FOR_PLAYER_WITH_CRIMINAL_ENTERPRISE_STARTER_PACK(iReplaceProperty)
|
|
iSellingPropertyVariation = 1
|
|
ELSE
|
|
bSellingPropertyStarterPackItem = TRUE
|
|
ENDIF
|
|
iSellingPrice = 0
|
|
ELIF (iSellingPrice = 0)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: no free property stat to get for \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iSellingPrice:$FREE")
|
|
IF NOT COULD_PROPERTY_BE_FREE_FOR_PLAYER_WITH_CRIMINAL_ENTERPRISE_STARTER_PACK(iReplaceProperty)
|
|
iSellingPropertyVariation = 1
|
|
ELSE
|
|
bSellingPropertyStarterPackItem = TRUE
|
|
ENDIF
|
|
iSellingPrice = 0
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: no free property stat to get for \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iSellingPrice:$", iSellingPrice)
|
|
ENDIF
|
|
ENDIF
|
|
iSellingItemId = GET_PROPERTY_KEY_FOR_CATALOGUE(iReplaceProperty, iSellingPropertyVariation, bSellingPropertyStarterPackItem)
|
|
|
|
IF (iReplaceProperty = iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Renovating in property slot \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\" itemID ", iSellingItemId, " with sale value $", iSellingPrice)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Trading in property slot \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\" itemID ", iSellingItemId, " with sale value $", iSellingPrice)
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL_15 tlOwnedResultSlotProperty = GET_PROPERTY_NAME(iReplaceProperty)
|
|
IF IS_STRING_NULL_OR_EMPTY(tlOwnedResultSlotProperty)
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: label for traded property[\"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\"] index #", iReplaceProperty, " is empty!")
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: label for traded property[\"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\"] index #", iReplaceProperty, " is \"", tlLastClickedPropertyIndex, "\"")
|
|
ENDIF
|
|
#ENDIF
|
|
ENDIF
|
|
//
|
|
|
|
INT iProcessSuccess = GENERIC_TRANSACTION_STATE_DEFAULT
|
|
///////////////////////////////////////////
|
|
/// TRANSACTION FOR PROPERTY
|
|
WHILE PROCESSING_INTERNET_SHOPPING_BASKET(iProcessSuccess, propval, iResultSlot, CATEGORY_INVENTORY_PROPERTIE, NET_SHOP_ACTION_BUY_PROPERTY, iItemId, iInventoryKey, 0, iSellingPrice, iSellingItemId, NULL, iItemInteriorID, iInventoryInteriorID)
|
|
RENDER_BROWSER()
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(TRUE)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(FALSE)
|
|
|
|
SWITCH iProcessSuccess
|
|
CASE GENERIC_TRANSACTION_STATE_FAILED
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: failed to process transaction")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
BREAK
|
|
CASE GENERIC_TRANSACTION_STATE_SUCCESS
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: success!!")
|
|
BREAK
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: unknown iProcessSuccess: \"", iProcessSuccess, "\"")
|
|
BREAK
|
|
ENDSWITCH
|
|
// ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: ignore NETWORK_REQUEST_BASKET_TRANSACTION")
|
|
ENDIF
|
|
|
|
IF IS_PROPERTY_OFFICE(iBuyPropertyIndex)
|
|
INT iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop
|
|
GET_SCALEFORM_OFFICE_DATA(iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop)
|
|
|
|
CDEBUG1LN(DEBUG_INTERNET, "[EXEC_BYPASS] Setting interior var to: ", iStyle)
|
|
IF iResultSlot >= 0
|
|
AND iResultSlot <= MAX_MP_PROPERTIES-1
|
|
FORCE_CLEAN_APARTMENT_MESS_DATA(iResultSlot)
|
|
ENDIF
|
|
IF GET_OWNED_PROPERTY_VARIATION(iResultSlot) != iStyle
|
|
SET_BIT(g_iOfficePersonalAssistantSpeechBitset, OFF_PA_SPEECH_DECOR)
|
|
ENDIF
|
|
SET_INTERIOR_STAT_FOR_CUSTOM_APT(PROPERTY_OWNED_SLOT_OFFICE_0, iStyle)
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iPersonnel)
|
|
//SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_PERSONNEL, 1)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_OFFICE_MALE_PA)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY_BROADCAST_BS_OFFICE_MALE_PA TRUE")
|
|
ELSE
|
|
//SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_PERSONNEL, 0)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_OFFICE_MALE_PA)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY_BROADCAST_BS_OFFICE_MALE_PA FALSE")
|
|
ENDIF
|
|
IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_PA_GENDER_SET)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_PA_GENDER_SET)
|
|
ENDIF
|
|
IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_PA_NEW_CLOTHES)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_PA_NEW_CLOTHES)
|
|
ENDIF
|
|
//SET_MP_INT_CHARACTER_STAT(MP_STAT_FONT_PLAYER_OFFICE, iFont)
|
|
//SET_MP_INT_CHARACTER_STAT(MP_STAT_COLOUR_PLAYER_OFFICE, iColour)
|
|
|
|
GlobalPlayerBD_FM_3[NATIVE_TO_INT(PLAYER_ID())].iOfficeNameFont = iFont
|
|
GlobalPlayerBD_FM_3[NATIVE_TO_INT(PLAYER_ID())].iOfficeNameFontColour = iColour
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: iFont: ", iFont)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: iColour: ", iColour)
|
|
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iAccommodation)
|
|
IF NOT IS_OFFICE_ACCOMMODATION_PURCHASED()
|
|
SET_BIT(g_iOfficePersonalAssistantSpeechBitset, OFF_PA_SPEECH_ADDQUARTERS)
|
|
ENDIF
|
|
//SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_ACCOMMODATION, 1)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo, PROPERTY_BROADCAST_BS2_OFFICE_LIVINGQ_PURCHASED)
|
|
ELSE
|
|
//SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_ACCOMMODATION, 0)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo, PROPERTY_BROADCAST_BS2_OFFICE_LIVINGQ_PURCHASED)
|
|
ENDIF
|
|
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(g_sOfficeDataStruct.tl63NewOrgName)
|
|
IF GB_IS_PLAYER_BOSS_OF_A_GANG(PLAYER_ID())
|
|
AND NOT GB_IS_PLAYER_BOSS_OF_A_BIKER_GANG(PLAYER_ID())
|
|
GB_SET_ORGANIZATION_NAME(g_sOfficeDataStruct.tl63NewOrgName,GB_ORGANISATION_NAME_TYPE_OFFICE, TRUE)
|
|
GB_SET_OFFICE_NAME(g_sOfficeDataStruct.tl63NewOrgName, TRUE)
|
|
//GB_SETUP_AFTER_NAMING_GANG(GBKeyBoardData)
|
|
GB_SEND_NAME_CHANGE_EVENT()
|
|
ELSE
|
|
GB_SET_OFFICE_NAME(g_sOfficeDataStruct.tl63NewOrgName, TRUE)
|
|
ENDIF
|
|
ELSE
|
|
TEXT_LABEL_63 tlOfficeName = GET_MP_LONG_STRING_CHARACTER_STAT(MP_STAT_GB_OFFICE_NAME, MP_STAT_GB_OFFICE_NAME2)
|
|
IF IS_STRING_NULL_OR_EMPTY(tlOfficeName)
|
|
STRING sDefaultOrgName = GET_DEFAULT_GANG_NAME(PLAYER_ID(), TRUE)
|
|
GB_SET_OFFICE_NAME(sDefaultOrgName, TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BOOL bUpgradingOfficeModshop = FALSE
|
|
IF IS_OFFICE_MODSHOP_PURCHASED()
|
|
IF iModshop != iPrevModshop
|
|
bUpgradingOfficeModshop = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF !bUpgradingOffice
|
|
IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_GUN_VAULT_DOOR_OPENED)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_GUN_VAULT_DOOR_OPENED)
|
|
ENDIF
|
|
IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_SAFE_VAULT_DOOR_OPENED)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_SAFE_VAULT_DOOR_OPENED)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF !HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGunLocker)
|
|
IF SHOULD_ALLOW_DISABLE_WEAPON_LOADOUT_FROM_INTERNET()
|
|
SET_CUSTOM_WEAPON_LOADOUT(FALSE)
|
|
RESET_CUSTOM_WEAPON_LOADOUT_STATS()
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_PROPERTY_OFFICE(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iCurrentlyInsideProperty)
|
|
AND IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_IN_OWNED_PROPERTY)
|
|
AND bUpgradingOffice
|
|
AND NOT bUpgradingOfficeModshop
|
|
IF IS_PLAYER_IN_APARTMENT_WITH_BUDDY()
|
|
AND NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED_WITH_BUDDY)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED_WITH_BUDDY)
|
|
ELSE
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED_WITH_BUDDY)
|
|
PRINTLN("COMPLETE_INTERIOR_PURCHASE: PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED_WITH_BUDDY set FALSE")
|
|
ENDIF
|
|
|
|
IF NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS , PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED )
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS , PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED )
|
|
ENDIF
|
|
IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PREVIEW)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PREVIEW)
|
|
PRINTLN("COMPLETE_INTERIOR_PURCHASE: PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PREVIEW set FALSE")
|
|
ENDIF
|
|
|
|
IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_CANCEL_PREVIEW)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_CANCEL_PREVIEW)
|
|
PRINTLN("COMPLETE_INTERIOR_PURCHASE: PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_CANCEL_PREVIEW set FALSE")
|
|
ENDIF
|
|
|
|
IF NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_RENOVATE)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_RENOVATE)
|
|
ENDIF
|
|
|
|
g_iCustomAptVariantPIM = iStyle
|
|
SET_UPDATE_CUSTOM_APT(TRUE)
|
|
ELIF bUpgradingOffice
|
|
g_iCustomAptVariantPIM = iStyle
|
|
IF NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_RENOVATE)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_RENOVATE)
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: office purchase valid for ", iBuyPropertyIndex, " transactions unavailable! going to purchase success")
|
|
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_SUCCESS", TRUE, bUpgradingOffice, FALSE, FALSE, rpmt_0)
|
|
ELIF IS_PROPERTY_CLUBHOUSE(iBuyPropertyIndex)
|
|
INT iWall, iHanging, iFurniture, iColourScheme, iFont, iFontColour, iEmblem, iHideSinage, iGunLocker, iGarage
|
|
GET_SCALEFORM_CLUBHOUSE_DATA(iBuyPropertyIndex, iWall, iHanging, iFurniture, iColourScheme, iFont, iFontColour, iEmblem, iHideSinage, iGunLocker, iGarage)
|
|
|
|
CDEBUG1LN(DEBUG_INTERNET, "[EXEC_BYPASS] Setting interior var to: ", iColourScheme)
|
|
IF iResultSlot >= 0
|
|
AND iResultSlot <= MAX_MP_PROPERTIES-1
|
|
FORCE_CLEAN_APARTMENT_MESS_DATA(iResultSlot)
|
|
ENDIF
|
|
|
|
//IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iWall)
|
|
// SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_WALL, 1)
|
|
//ELSE
|
|
// SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_WALL, 0)
|
|
//ENDIF
|
|
//IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iHanging)
|
|
// SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_HANGING, 1)
|
|
//ELSE
|
|
// SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_HANGING, 0)
|
|
//ENDIF
|
|
//IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iFurniture)
|
|
// SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_FURNATURE, 1)
|
|
//ELSE
|
|
// SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_FURNATURE, 0)
|
|
//ENDIF
|
|
|
|
SET_INTERIOR_STAT_FOR_CUSTOM_APT(PROPERTY_OWNED_SLOT_CLUBHOUSE, iColourScheme)
|
|
|
|
IF GET_BASE_PROPERTY_FROM_PROPERTY(iBuyPropertyIndex) = PROPERTY_CLUBHOUSE_1_BASE_A
|
|
//SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_PERSONNEL, 1)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_CLUBHOUSE_TRADITIONAL)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY_BROADCAST_BS2_CLUBHOUSE_TRADITIONAL TRUE")
|
|
ELIF GET_BASE_PROPERTY_FROM_PROPERTY(iBuyPropertyIndex) = PROPERTY_CLUBHOUSE_7_BASE_B
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_CLUBHOUSE_TRADITIONAL)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY_BROADCAST_BS2_CLUBHOUSE_TRADITIONAL FALSE")
|
|
ELSE
|
|
//
|
|
ENDIF
|
|
// IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_Clubhouse_PA_GENDER_SET)
|
|
// CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_Clubhouse_PA_GENDER_SET)
|
|
// ENDIF
|
|
// IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_Clubhouse_PA_NEW_CLOTHES)
|
|
// CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_Clubhouse_PA_NEW_CLOTHES)
|
|
// ENDIF
|
|
//SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_FONT, iFont)
|
|
//SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_COLOUR, iFontColour)
|
|
|
|
GlobalPlayerBD_FM_3[NATIVE_TO_INT(PLAYER_ID())].iClubhouseNameFont = iFont
|
|
GlobalPlayerBD_FM_3[NATIVE_TO_INT(PLAYER_ID())].iClubhouseNameFontColour = iFontColour
|
|
GlobalPlayerBD_FM_3[NATIVE_TO_INT(PLAYER_ID())].bClubhouseHideName = iHideSinage
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE (MC): iFont: ", iFont)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE (MC): iColour: ", iFontColour)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE (MC): iHideSinage: ", iHideSinage)
|
|
|
|
//SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_EMBLEM, iEmblem)
|
|
//IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iHideSinage)
|
|
// SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_SINAGEHIDE, 1)
|
|
//ELSE
|
|
// SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_SINAGEHIDE, 0)
|
|
//ENDIF
|
|
//
|
|
//IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGunLocker)
|
|
// SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_GUNLOCKER, 1)
|
|
//ELSE
|
|
// SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_GUNLOCKER, 0)
|
|
//ENDIF
|
|
//
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGarage)
|
|
//SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_GARAGE, 1)
|
|
SET_PLAYER_OWNS_CLUBHOUSE_MOD_BOOTH(TRUE)
|
|
ELSE
|
|
//SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_GARAGE, 0)
|
|
SET_PLAYER_OWNS_CLUBHOUSE_MOD_BOOTH(FALSE)
|
|
ENDIF
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGunLocker)
|
|
SET_PLAYER_OWNS_CLUBHOUSE_GUN_LOCKER(TRUE)
|
|
ELSE
|
|
SET_PLAYER_OWNS_CLUBHOUSE_GUN_LOCKER(FALSE)
|
|
ENDIF
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iWall)
|
|
SET_PLAYER_CLUBHOUSE_WALL_STYLE(TRUE)
|
|
ELSE
|
|
SET_PLAYER_CLUBHOUSE_WALL_STYLE(FALSE)
|
|
ENDIF
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iHanging)
|
|
SET_PLAYER_CLUBHOUSE_WALL_HANGING_STYLE(TRUE)
|
|
ELSE
|
|
SET_PLAYER_CLUBHOUSE_WALL_HANGING_STYLE(FALSE)
|
|
ENDIF
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iFurniture)
|
|
SET_PLAYER_CLUBHOUSE_FURNISHINGS_STYLE(TRUE)
|
|
ELSE
|
|
SET_PLAYER_CLUBHOUSE_FURNISHINGS_STYLE(FALSE)
|
|
ENDIF
|
|
|
|
SET_PLAYER_CLUBHOUSE_MURAL_STYLE(iColourScheme)
|
|
|
|
// IF NOT IS_STRING_NULL_OR_EMPTY(g_sClubhouseDataStruct.tl63NewSignage)
|
|
// IF GB_IS_PLAYER_BOSS_OF_A_GANG(PLAYER_ID())
|
|
// GB_SET_ORGANIZATION_NAME(g_sClubhouseDataStruct.tl63NewSignage, TRUE)
|
|
// GB_SET_MC_CLUBHOUSE_NAME(g_sClubhouseDataStruct.tl63NewSignage, TRUE)
|
|
// GB_SEND_NAME_CHANGE_EVENT()
|
|
// ELSE
|
|
// GB_SET_MC_CLUBHOUSE_NAME(g_sClubhouseDataStruct.tl63NewSignage, TRUE)
|
|
// ENDIF
|
|
// ELSE
|
|
// TEXT_LABEL_63 tlClubhouseName = GET_MP_LONG_STRING_CHARACTER_STAT(MP_STAT_MC_CLBHOSE_NAME, MP_STAT_MC_CLBHOSE_NAME2)
|
|
// IF IS_STRING_NULL_OR_EMPTY(tlClubhouseName)
|
|
// GB_SET_MC_CLUBHOUSE_NAME(GET_DEFAULT_GANG_NAME(PLAYER_ID()), TRUE)
|
|
// ENDIF
|
|
// ENDIF
|
|
|
|
// IF !bUpgradingClubhouse
|
|
// IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_GUN_Garage_DOOR_OPENED)
|
|
// CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_GUN_Garage_DOOR_OPENED)
|
|
// ENDIF
|
|
// IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_SAFE_Garage_DOOR_OPENED)
|
|
// CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_SAFE_Garage_DOOR_OPENED)
|
|
// ENDIF
|
|
// ENDIF
|
|
|
|
IF !HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGunLocker)
|
|
IF SHOULD_ALLOW_DISABLE_WEAPON_LOADOUT_FROM_INTERNET()
|
|
SET_CUSTOM_WEAPON_LOADOUT(FALSE)
|
|
RESET_CUSTOM_WEAPON_LOADOUT_STATS()
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_PROPERTY_CLUBHOUSE(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iCurrentlyInsideProperty)
|
|
AND IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_IN_OWNED_PROPERTY)
|
|
AND bUpgradingClubhouse
|
|
IF IS_PLAYER_IN_APARTMENT_WITH_BUDDY()
|
|
AND NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED_WITH_BUDDY)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED_WITH_BUDDY)
|
|
ELSE
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED_WITH_BUDDY)
|
|
PRINTLN("COMPLETE_INTERIOR_PURCHASE: PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED_WITH_BUDDY set FALSE")
|
|
ENDIF
|
|
|
|
IF NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS , PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED )
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS , PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED )
|
|
ENDIF
|
|
IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PREVIEW)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PREVIEW)
|
|
PRINTLN("COMPLETE_INTERIOR_PURCHASE: PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PREVIEW set FALSE")
|
|
ENDIF
|
|
|
|
IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_CANCEL_PREVIEW)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_CANCEL_PREVIEW)
|
|
PRINTLN("COMPLETE_INTERIOR_PURCHASE: PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_CANCEL_PREVIEW set FALSE")
|
|
ENDIF
|
|
|
|
IF NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_Clubhouse_RENOVATE)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_Clubhouse_RENOVATE)
|
|
ENDIF
|
|
|
|
g_iCustomAptVariantPIM = iColourScheme
|
|
SET_UPDATE_CUSTOM_APT(TRUE)
|
|
ELIF bUpgradingClubhouse
|
|
g_iCustomAptVariantPIM = iColourScheme
|
|
IF NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_Clubhouse_RENOVATE)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_Clubhouse_RENOVATE)
|
|
ENDIF
|
|
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iPropertyVariant[PROPERTY_OWNED_SLOT_CLUBHOUSE] = g_iCustomAptVariantPIM
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: clubhouse purchase valid for ", iBuyPropertyIndex, " transactions unavailable! going to purchase success")
|
|
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_SUCCESS", TRUE, bUpgradingClubhouse, FALSE, FALSE, rpmt_0)
|
|
ELIF IS_PROPERTY_OFFICE_GARAGE(iBuyPropertyIndex)
|
|
INT iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop
|
|
GET_SCALEFORM_OFFICE_DATA(iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop)
|
|
|
|
CDEBUG1LN(DEBUG_INTERNET, "[EXEC_BYPASS] Setting interior var to: ", iStyle)
|
|
IF iResultSlot >= 0
|
|
AND iResultSlot <= MAX_MP_PROPERTIES-1
|
|
FORCE_CLEAN_APARTMENT_MESS_DATA(iResultSlot)
|
|
ENDIF
|
|
|
|
PRINTLN("Setting iGarage1Style: ", iGarage1Style, " iGarage1Lighting: ",iGarage1Lighting, " iGarage1Number: ", iGarage1Number, " iModshop: ", iModshop)
|
|
PRINTLN("Setting iGarage2Style: ", iGarage2Style, " iGarage2Lighting: ",iGarage2Lighting, " iGarage2Number: ", iGarage2Number, " iModshop: ", iModshop)
|
|
PRINTLN("Setting iGarage3Style: ", iGarage3Style, " iGarage3Lighting: ",iGarage3Lighting, " iGarage3Number: ", iGarage3Number, " iModshop: ", iModshop)
|
|
|
|
SET_PLAYER_OFFICE_GARAGE_LVL1_INTERIOR_FLAGS(iGarage1Number, iGarage1Lighting, iGarage1Style, iModshop)
|
|
SET_PLAYER_OFFICE_GARAGE_LVL2_INTERIOR_FLAGS(iGarage2Number, iGarage2Lighting, iGarage2Style, iModshop)
|
|
SET_PLAYER_OFFICE_GARAGE_LVL3_INTERIOR_FLAGS(iGarage3Number, iGarage3Lighting, iGarage3Style, iModshop)
|
|
|
|
IF GET_PROPERTY_RESTRICTED_SLOT(iBuyPropertyIndex) = GET_PROPERTY_RESTRICTED_SLOT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iCurrentlyInsideProperty)
|
|
AND bUpgradingOfficeGarage
|
|
SET_PLAYER_RENOVATED_OFFICE_GARAGE_FLAG(TRUE)
|
|
ENDIF
|
|
|
|
// IF GET_OWNED_PROPERTY_VARIATION(iResultSlot) != iStyle
|
|
// SET_BIT(g_iOfficePersonalAssistantSpeechBitset, OFF_PA_SPEECH_DECOR)
|
|
// ENDIF
|
|
// SET_INTERIOR_STAT_FOR_CUSTOM_APT(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_0, iStyle)
|
|
|
|
// IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iPersonnel)
|
|
// //SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GARAGE_PERSONNEL, 1)
|
|
// SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_OFFICE_GARAGE_MALE_PA)
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY_BROADCAST_BS_OFFICE_GARAGE_MALE_PA TRUE")
|
|
// ELSE
|
|
// //SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GARAGE_PERSONNEL, 0)
|
|
// CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_OFFICE_GARAGE_MALE_PA)
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY_BROADCAST_BS_OFFICE_GARAGE_MALE_PA FALSE")
|
|
// ENDIF
|
|
// IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_GARAGE_PA_GENDER_SET)
|
|
// CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_GARAGE_PA_GENDER_SET)
|
|
// ENDIF
|
|
// IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_GARAGE_PA_NEW_CLOTHES)
|
|
// CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_GARAGE_PA_NEW_CLOTHES)
|
|
// ENDIF
|
|
//SET_MP_INT_CHARACTER_STAT(MP_STAT_FONT_PLAYER_OFFICE_GARAGE, iFont)
|
|
//SET_MP_INT_CHARACTER_STAT(MP_STAT_COLOUR_PLAYER_OFFICE_GARAGE, iColour)
|
|
|
|
// GlobalPlayerBD_FM_3[NATIVE_TO_INT(PLAYER_ID())].iOFFICE_GARAGENameFont = iFont
|
|
// GlobalPlayerBD_FM_3[NATIVE_TO_INT(PLAYER_ID())].iOFFICE_GARAGENameFontColour = iColour
|
|
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: iFont: ", iFont)
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: iColour: ", iColour)
|
|
|
|
|
|
// IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iAccommodation)
|
|
// IF NOT IS_OFFICE_GARAGE_ACCOMMODATION_PURCHASED()
|
|
// SET_BIT(g_iOFFICE_GARAGEPersonalAssistantSpeechBitset, OFF_PA_SPEECH_ADDQUARTERS)
|
|
// ENDIF
|
|
// //SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GARAGE_ACCOMMODATION, 1)
|
|
// SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo, PROPERTY_BROADCAST_BS2_OFFICE_GARAGE_LIVINGQ_PURCHASED)
|
|
// ELSE
|
|
// //SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GARAGE_ACCOMMODATION, 0)
|
|
// CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo, PROPERTY_BROADCAST_BS2_OFFICE_GARAGE_LIVINGQ_PURCHASED)
|
|
// ENDIF
|
|
//
|
|
// IF NOT IS_STRING_NULL_OR_EMPTY(g_sOFFICE_GARAGEDataStruct.tl63NewOrgName)
|
|
// IF GB_IS_PLAYER_BOSS_OF_A_GANG(PLAYER_ID())
|
|
// AND NOT GB_IS_PLAYER_BOSS_OF_A_BIKER_GANG(PLAYER_ID())
|
|
// GB_SET_ORGANIZATION_NAME(g_sOFFICE_GARAGEDataStruct.tl63NewOrgName,GB_ORGANISATION_NAME_TYPE_OFFICE_GARAGE, TRUE)
|
|
// GB_SET_OFFICE_GARAGE_NAME(g_sOFFICE_GARAGEDataStruct.tl63NewOrgName, TRUE)
|
|
// //GB_SETUP_AFTER_NAMING_GANG(GBKeyBoardData)
|
|
// GB_SEND_NAME_CHANGE_EVENT()
|
|
// ELSE
|
|
// GB_SET_OFFICE_GARAGE_NAME(g_sOFFICE_GARAGEDataStruct.tl63NewOrgName, TRUE)
|
|
// ENDIF
|
|
// ELSE
|
|
// TEXT_LABEL_63 tlOFFICE_GARAGEName = GET_MP_LONG_STRING_CHARACTER_STAT(MP_STAT_GB_OFFICE_GARAGE_NAME, MP_STAT_GB_OFFICE_GARAGE_NAME2)
|
|
// IF IS_STRING_NULL_OR_EMPTY(tlOFFICE_GARAGEName)
|
|
// STRING sDefaultOrgName = GET_DEFAULT_GANG_NAME(PLAYER_ID(), TRUE)
|
|
// GB_SET_OFFICE_GARAGE_NAME(sDefaultOrgName, TRUE)
|
|
// ENDIF
|
|
// ENDIF
|
|
//
|
|
// IF !bUpgradingOfficeGarage
|
|
// IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_GUN_VAULT_DOOR_OPENED)
|
|
// CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_GUN_VAULT_DOOR_OPENED)
|
|
// ENDIF
|
|
// IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_SAFE_VAULT_DOOR_OPENED)
|
|
// CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_SAFE_VAULT_DOOR_OPENED)
|
|
// ENDIF
|
|
// ENDIF
|
|
//
|
|
// IF !HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGunLocker)
|
|
// SET_CUSTOM_WEAPON_LOADOUT(FALSE)
|
|
// RESET_CUSTOM_WEAPON_LOADOUT_STATS()
|
|
// ENDIF
|
|
IF IS_PROPERTY_OFFICE_GARAGE(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iCurrentlyInsideProperty)
|
|
AND IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_IN_OWNED_PROPERTY)
|
|
AND bUpgradingOfficeGarage
|
|
IF IS_PLAYER_IN_APARTMENT_WITH_BUDDY()
|
|
AND NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED_WITH_BUDDY)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED_WITH_BUDDY)
|
|
ELSE
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED_WITH_BUDDY)
|
|
PRINTLN("COMPLETE_INTERIOR_PURCHASE: PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED_WITH_BUDDY set FALSE")
|
|
ENDIF
|
|
|
|
IF NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS , PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED )
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS , PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED )
|
|
ENDIF
|
|
IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PREVIEW)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PREVIEW)
|
|
PRINTLN("COMPLETE_INTERIOR_PURCHASE: PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PREVIEW set FALSE")
|
|
ENDIF
|
|
|
|
IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_CANCEL_PREVIEW)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_CANCEL_PREVIEW)
|
|
PRINTLN("COMPLETE_INTERIOR_PURCHASE: PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_CANCEL_PREVIEW set FALSE")
|
|
ENDIF
|
|
|
|
IF GET_PROPERTY_RESTRICTED_SLOT(iBuyPropertyIndex) = GET_PROPERTY_RESTRICTED_SLOT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iCurrentlyInsideProperty)
|
|
SET_PLAYER_RENOVATED_OFFICE_GARAGE_FLAG(TRUE)
|
|
ENDIF
|
|
|
|
// IF NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_GARAGE_RENOVATE)
|
|
// SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_GARAGE_RENOVATE)
|
|
// ENDIF
|
|
|
|
IF GET_PROPERTY_RESTRICTED_SLOT(iBuyPropertyIndex) = GET_PROPERTY_RESTRICTED_SLOT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iCurrentlyInsideProperty)
|
|
g_iCustomAptVariantPIM = iStyle
|
|
SET_UPDATE_CUSTOM_APT(TRUE)
|
|
ENDIF
|
|
ELIF bUpgradingOfficeGarage
|
|
g_iCustomAptVariantPIM = iStyle
|
|
// IF NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_GARAGE_RENOVATE)
|
|
// SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_GARAGE_RENOVATE)
|
|
// ENDIF
|
|
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: office garage purchase valid for ", iBuyPropertyIndex, " transactions unavailable! going to purchase success")
|
|
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_SUCCESS", TRUE, bUpgradingOfficeGarage, FALSE, FALSE, rpmt_0)
|
|
ELSE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_SUCCESS", TRUE, FALSE, FALSE, FALSE, rpmt_0)
|
|
ENDIF
|
|
|
|
// IF finalPendingTransactionValue != 0
|
|
// AND GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY() > 0 // 1633010
|
|
//
|
|
// INT itradeval = propval - iMaxTradeIn
|
|
//
|
|
// IF itradeval > 0 //its a cost
|
|
// //flip it around so you tell them how much it will save them
|
|
// itradeval = propval - itradeval
|
|
// //ELSE // its a profit
|
|
// // itradeval = -pendingTransactionValue//make sure its correct 1632591
|
|
// ENDIF
|
|
//
|
|
// IF GET_PROPERTY_GARAGE_SIZE(iBuyPropertyIndex) < GET_PROPERTY_GARAGE_SIZE()
|
|
// bSmallerGarage = TRUE
|
|
// ENDIF
|
|
//
|
|
// IF NOT BLOCKING_IS_PROPERTY_OVERWRITE_OK(itradeval,bSmallerGarage)
|
|
// GO_TO_WEBSITE("WWW_DYNASTY8REALESTATE_COM_S_PURCHASE_D_ERROR")
|
|
// mpPropertySiteFailReason = MPSFR_CANCELED
|
|
// PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
//
|
|
// EXIT
|
|
//
|
|
// ENDIF
|
|
// ENDIF
|
|
|
|
//GIVE_LOCAL_PLAYER_FM_CASH(-pendingTransasctionValue) //if its a refund then its a negative value already
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: final:$", finalPendingTransactionValue)
|
|
|
|
|
|
|
|
|
|
IF HAS_MP_CRIMINAL_ENTERPRISE_PREMIUM_OR_STARTER_ACCESS()
|
|
INT iReplaceProperty = GET_OWNED_PROPERTY(iResultSlot)
|
|
IF SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iReplaceProperty)
|
|
SWITCH iReplaceProperty
|
|
CASE PROPERTY_OFFICE_2_BASE SET_PLAYER_PURCHASED_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT(CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_PROPERTY_MAZE_BANK_WEST_EXECUTIVE_OFFICE, FALSE) BREAK
|
|
CASE PROPERTY_CLUBHOUSE_4_BASE_A SET_PLAYER_PURCHASED_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT(CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_PROPERTY_GREAT_CHAPARRAL_BIKER_CLUBHOUSE, FALSE) BREAK
|
|
CASE PROPERTY_LOW_APT_2 SET_PLAYER_PURCHASED_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT(CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_PROPERTY_1561_SAN_VITAS_STREET_APARTMENT, FALSE) BREAK
|
|
CASE PROPERTY_GARAGE_NEW_19 SET_PLAYER_PURCHASED_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT(CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_PROPERTY_1337_EXCEPTIONALISTS_WAY_10_CAR_GARAGE, FALSE) BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF finalPendingTransactionValue >= 0
|
|
AND (finalPendingTransactionValue = 0
|
|
OR (finalPendingTransactionValue > 0 AND (USE_SERVER_TRANSACTIONS() OR NETWORK_CAN_SPEND_MONEY(finalPendingTransactionValue,FALSE,TRUE,FALSE))))
|
|
// INCREMENT_BY_MP_INT_CHARACTER_STAT(MP_STAT_MONEY_SPENT_PROPERTY,pendingTransactionValue)
|
|
//NETWORK_SPENT_FROM_PROPERTY(-pendingTransactionValue, pendingTransactionValue)
|
|
|
|
tl_15PropertyName = GET_PROPERTY_NAME(iResultSlot)
|
|
IF finalPendingTransactionValue > 0
|
|
INCREMENT_BY_MP_INT_PLAYER_STAT(MPPLY_INGAMESTORE_MONEYSPENT, finalPendingTransactionValue)
|
|
ENDIF
|
|
//NETWORK_BUY_PROPERTY(finalPendingTransactionValue, GET_HASH_KEY(tl_15PropertyName),FALSE,TRUE)
|
|
IF iCachedReplaceProperty > 0
|
|
|
|
INT iSellingPrice = iCachedSellingPrice //GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(iResultSlot)
|
|
|
|
IF iCachedSellingPrice >= 0
|
|
AND NOT (bUpgradingOffice OR bUpgradingClubhouse OR bUpgradingOfficeGarage)
|
|
IF NOT IS_PROPERTY_CLUBHOUSE(iBuyPropertyIndex)
|
|
IF IS_PROPERTY_OFFICE(iBuyPropertyIndex)
|
|
IF SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Earn from office when buying free office set to zero :$", iSellingPrice, " ", tl_15PropertyName)
|
|
iSellingPrice = 0
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iSellingPrice >= 0
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_SHOPS, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
tl_15PropertyName = GET_PROPERTY_NAME(iCachedReplaceProperty)
|
|
SAFE_NETWORK_EARN_FROM_PROPERTY(iSellingPrice, GET_HASH_KEY(tl_15PropertyName))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Earn from property:$", iSellingPrice, " ", tl_15PropertyName)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Earn nothing from property:$", iSellingPrice, " ", tl_15PropertyName, " as was free")
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Earn nothing from clubhouse")
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Earn nothing from property:$", iCachedSellingPrice, " ", tl_15PropertyName,
|
|
PICK_STRING(bUpgradingOffice, ", bUpgradingOffice", ", not bUpgradingOffice"),
|
|
PICK_STRING(bUpgradingClubhouse, ", bUpgradingClubhouse", ", not bUpgradingClubhouse"),
|
|
PICK_STRING(bUpgradingOfficeGarage, ", bUpgradingOfficeGarage", ", not bUpgradingOfficeGarage"))
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Earn nothing, not trading")
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_SHOPS, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
IF IS_PROPERTY_OFFICE(iBuyPropertyIndex)
|
|
INT iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop
|
|
GET_SCALEFORM_OFFICE_DATA(iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop)
|
|
|
|
SPEND_OFFICE_AND_WAREHOUSE data
|
|
IF NOT bUpgradingOffice
|
|
data.m_Location = iBuyPropertyIndex
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
data.m_LocationAmount = GET_VALUE_OF_PROPERTY(iBuyPropertyIndex)
|
|
ELSE
|
|
data.m_LocationAmount = 0
|
|
ENDIF
|
|
|
|
data.m_Style = iStyle
|
|
data.m_StyleAmount = sOffice_price_struct.iStylePrice
|
|
|
|
data.m_PaGender = GET_GENDER_METRIC_FROM_PERSONEL_INT(iPersonnel)
|
|
data.m_PaGenderAmount = sOffice_price_struct.iPersonnelPrice
|
|
|
|
data.m_Signage = g_sOfficeDataStruct.iOfficeNameID
|
|
data.m_SignageAmount = (sOffice_price_struct.iNamePrice+sOffice_price_struct.iFontPrice+sOffice_price_struct.iColourPrice)
|
|
|
|
data.m_GunLocker = iGunLocker
|
|
data.m_GunLockerAmount = sOffice_price_struct.iGunLockerPrice
|
|
|
|
data.m_Vault = iVault
|
|
data.m_VaultAmount = sOffice_price_struct.iVaultPrice
|
|
|
|
data.m_PersonalQuarters = iAccommodation
|
|
data.m_PersonalQuartersAmount = sOffice_price_struct.iAccommodationPrice
|
|
|
|
data.m_ModShop = iModshop
|
|
data.m_ModShopAmount = sOffice_price_struct.iModshopPrice
|
|
|
|
INT iAmount = (data.m_LocationAmount+data.m_StyleAmount+data.m_PaGenderAmount+data.m_SignageAmount+data.m_GunLockerAmount+data.m_VaultAmount+data.m_PersonalQuartersAmount+data.m_ModShopAmount)
|
|
NETWORK_SPENT_PURCHASE_OFFICE_PROPERTY(iAmount, data, FALSE,TRUE)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Buying office for iAmount:$", iAmount, " finalPendingTransactionValue:$", finalPendingTransactionValue, " propval:$", propval)
|
|
ELSE
|
|
INT iAmount
|
|
data.m_Location = iBuyPropertyIndex
|
|
//IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
// data.m_LocationAmount = GET_VALUE_OF_PROPERTY(iBuyPropertyIndex)
|
|
//ELSE
|
|
// data.m_LocationAmount = 0
|
|
//ENDIF
|
|
//iAmount = data.m_LocationAmount <-- WE DON'T ADD THIS FOR UPGRADE !
|
|
IF (sOffice_price_struct.iStylePrice >= 0)
|
|
data.m_Style = iStyle
|
|
data.m_StyleAmount = sOffice_price_struct.iStylePrice
|
|
iAmount += data.m_StyleAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iPersonnelPrice >= 0)
|
|
data.m_PaGender = GET_GENDER_METRIC_FROM_PERSONEL_INT(iPersonnel)
|
|
data.m_PaGenderAmount = sOffice_price_struct.iPersonnelPrice
|
|
iAmount += data.m_PaGenderAmount
|
|
ENDIF
|
|
INT iSignageAmount = sOffice_price_struct.iNamePrice+sOffice_price_struct.iFontPrice+sOffice_price_struct.iColourPrice
|
|
IF (iSignageAmount != 0)
|
|
data.m_Signage = g_sOfficeDataStruct.iOfficeNameID
|
|
data.m_SignageAmount = iSignageAmount
|
|
iAmount += data.m_SignageAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iGunLockerPrice >= 0)
|
|
data.m_GunLocker = iGunLocker
|
|
data.m_GunLockerAmount = sOffice_price_struct.iGunLockerPrice
|
|
iAmount += data.m_GunLockerAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iVaultPrice >= 0)
|
|
data.m_Vault = iVault
|
|
data.m_VaultAmount = sOffice_price_struct.iVaultPrice
|
|
iAmount += data.m_VaultAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iAccommodationPrice >= 0)
|
|
data.m_PersonalQuarters = iAccommodation
|
|
data.m_PersonalQuartersAmount = sOffice_price_struct.iAccommodationPrice
|
|
iAmount += data.m_PersonalQuartersAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iModshopPrice >= 0)
|
|
data.m_ModShop = iModshop
|
|
data.m_ModShopAmount = sOffice_price_struct.iModshopPrice
|
|
iAmount += data.m_ModShopAmount
|
|
ENDIF
|
|
|
|
NETWORK_SPENT_UPGRADE_OFFICE_PROPERTY(iAmount, data, FALSE,TRUE)
|
|
propval = finalPendingTransactionValue
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Upgrading office for iAmount:$", iAmount, " finalPendingTransactionValue:$", finalPendingTransactionValue, " propval:$", propval)
|
|
ENDIF
|
|
ELIF IS_PROPERTY_CLUBHOUSE(iBuyPropertyIndex)
|
|
IF propval >= 0
|
|
OR finalPendingTransactionValue > 0
|
|
OR SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
OR GET_MP_PROPERTY_VALUE(iBuyPropertyIndex) = 0
|
|
INT iWall, iHanging, iFurniture, iColourScheme, iFont, iFontColour, iEmblem, iHideSinage, iGunLocker, iGarage
|
|
GET_SCALEFORM_CLUBHOUSE_DATA(iBuyPropertyIndex, iWall, iHanging, iFurniture, iColourScheme, iFont, iFontColour, iEmblem, iHideSinage, iGunLocker, iGarage)
|
|
|
|
INT iPropertyVariation = 0
|
|
BOOL bStarterPackItem = FALSE
|
|
// IF SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
// IF NOT COULD_PROPERTY_BE_FREE_FOR_PLAYER_WITH_CRIMINAL_ENTERPRISE_STARTER_PACK(iBuyPropertyIndex)
|
|
// iPropertyVariation = 1
|
|
// ELSE
|
|
// bStarterPackItem = TRUE
|
|
// ENDIF
|
|
// ENDIF
|
|
|
|
SPEND_CLUB_HOUSE data
|
|
IF NOT bUpgradingClubhouse
|
|
IF iCachedReplaceProperty != 0
|
|
INT iSellingPropertyVariation = 0
|
|
BOOL bSellingPropertyStarterPackItem = FALSE
|
|
|
|
// iCachedReplacePropertyPrice -= GET_VALUE_OF_CURRENTLY_OWNED_CLUBHOUSE_MODS(PROPERTY_OWNED_SLOT_CLUBHOUSE, TRUE)
|
|
// IF iCachedReplacePropertyPrice = 0
|
|
// IF NOT COULD_PROPERTY_BE_FREE_FOR_PLAYER_WITH_CRIMINAL_ENTERPRISE_STARTER_PACK(iCachedReplaceProperty)
|
|
// iSellingPropertyVariation = 1
|
|
// ELSE
|
|
// bSellingPropertyStarterPackItem = TRUE
|
|
// ENDIF
|
|
// ENDIF
|
|
|
|
SPEND_CLUB_HOUSE earnData
|
|
earnData.m_property_id = GET_PROPERTY_KEY_FOR_CATALOGUE(iCachedReplaceProperty, iSellingPropertyVariation, bSellingPropertyStarterPackItem)
|
|
earnData.m_property_id_amount = iCachedSellingPrice
|
|
earnData.m_mural_type = g_sClubhouseDataStruct.iColourScheme
|
|
earnData.m_mural_type_amount = -1
|
|
earnData.m_wall_style = g_sClubhouseDataStruct.iWall
|
|
earnData.m_wall_style_amount = -1
|
|
earnData.m_wall_hanging_style = g_sClubhouseDataStruct.iHanging
|
|
earnData.m_wall_hanging_style_amount = -1
|
|
earnData.m_furniture_style = g_sClubhouseDataStruct.iFurniture
|
|
earnData.m_furniture_style_amount = -1
|
|
earnData.m_emblem = g_sClubhouseDataStruct.iEmblem
|
|
earnData.m_emblem_amount = -1
|
|
earnData.m_gun_locker = g_sClubhouseDataStruct.iGunLocker
|
|
earnData.m_gun_locker_amount = GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_LOCKER_GUN, g_sClubhouseDataStruct.iGunLocker)
|
|
earnData.m_mod_shop = g_sClubhouseDataStruct.iGarage
|
|
earnData.m_mod_shop_amount = GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_GARAGE, g_sClubhouseDataStruct.iGarage)
|
|
earnData.m_signage = g_sClubhouseDataStruct.iClubhouseNameID
|
|
earnData.m_signage_amount = -1
|
|
earnData.m_font = g_sClubhouseDataStruct.iFont
|
|
earnData.m_font_amount = -1
|
|
|
|
NETWORK_EARN_PURCHASE_CLUB_HOUSE(iCachedSellingPrice, earnData)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Earning from Clubhouse for iAmount:$", iCachedSellingPrice, " - A")
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_SHOPS, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
ENDIF
|
|
|
|
data.m_property_id = GET_PROPERTY_KEY_FOR_CATALOGUE(iBuyPropertyIndex, iPropertyVariation, bStarterPackItem)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
data.m_property_id_amount = GET_VALUE_OF_PROPERTY(iBuyPropertyIndex)
|
|
ELSE
|
|
data.m_property_id_amount = 0
|
|
ENDIF
|
|
data.m_mural_type = iColourScheme
|
|
data.m_mural_type_amount = sClubhouse_price_struct.iStylePrice
|
|
data.m_wall_style = iWall
|
|
data.m_wall_style_amount = sClubhouse_price_struct.iWallPrice
|
|
data.m_wall_hanging_style = iHanging
|
|
data.m_wall_hanging_style_amount = sClubhouse_price_struct.iHangingPrice
|
|
data.m_furniture_style = iFurniture
|
|
data.m_furniture_style_amount = sClubhouse_price_struct.iFurniturePrice
|
|
data.m_emblem = iEmblem
|
|
data.m_emblem_amount = sClubhouse_price_struct.iEmblemPrice
|
|
IF (sClubhouse_price_struct.iGunLockerPrice >= 0)
|
|
data.m_gun_locker = iGunLocker
|
|
data.m_gun_locker_amount = sClubhouse_price_struct.iGunLockerPrice
|
|
ENDIF
|
|
IF (sClubhouse_price_struct.iGaragePrice >= 0)
|
|
data.m_mod_shop = iGarage
|
|
data.m_mod_shop_amount = sClubhouse_price_struct.iGaragePrice
|
|
ENDIF
|
|
data.m_signage = g_sClubhouseDataStruct.iClubhouseNameID
|
|
data.m_signage_amount = sClubhouse_price_struct.iNamePrice
|
|
data.m_font = iFont
|
|
data.m_font_amount = sClubhouse_price_struct.iFontPrice
|
|
|
|
INT iAmount = 0
|
|
IF (data.m_property_id_amount != -1) iAmount += data.m_property_id_amount ENDIF
|
|
IF (data.m_mural_type_amount != -1) iAmount += data.m_mural_type_amount ENDIF
|
|
IF (data.m_wall_style_amount != -1) iAmount += data.m_wall_style_amount ENDIF
|
|
IF (data.m_wall_hanging_style_amount != -1) iAmount += data.m_wall_hanging_style_amount ENDIF
|
|
IF (data.m_furniture_style_amount != -1) iAmount += data.m_furniture_style_amount ENDIF
|
|
IF (data.m_emblem_amount != -1) iAmount += data.m_emblem_amount ENDIF
|
|
IF (data.m_gun_locker_amount != -1) iAmount += data.m_gun_locker_amount ENDIF
|
|
IF (data.m_mod_shop_amount != -1) iAmount += data.m_mod_shop_amount ENDIF
|
|
IF (data.m_signage_amount != -1) iAmount += data.m_signage_amount ENDIF
|
|
IF (data.m_font_amount != -1) iAmount += data.m_font_amount ENDIF
|
|
|
|
NETWORK_SPENT_PURCHASE_CLUB_HOUSE(iAmount, data, FALSE,TRUE)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Buying Clubhouse for iAmount:$", iAmount, " finalPendingTransactionValue:$", finalPendingTransactionValue, " propval:$", propval, " iCachedSellingPrice:$", iCachedSellingPrice)
|
|
ELSE
|
|
INT iAmount = 0
|
|
// data.m_property_id = GET_PROPERTY_KEY_FOR_CATALOGUE(iBuyPropertyIndex, iPropertyVariation)
|
|
IF (sClubhouse_price_struct.iStylePrice >= 0)
|
|
data.m_mural_type = iColourScheme
|
|
data.m_mural_type_amount = sClubhouse_price_struct.iStylePrice
|
|
iAmount +=data.m_mural_type_amount
|
|
ENDIF
|
|
IF (sClubhouse_price_struct.iWallPrice >= 0)
|
|
data.m_wall_style = iWall
|
|
data.m_wall_style_amount = sClubhouse_price_struct.iWallPrice
|
|
iAmount +=data.m_wall_style_amount
|
|
ENDIF
|
|
IF (sClubhouse_price_struct.iHangingPrice >= 0)
|
|
data.m_wall_hanging_style = iHanging
|
|
data.m_wall_hanging_style_amount = sClubhouse_price_struct.iHangingPrice
|
|
iAmount +=data.m_wall_hanging_style_amount
|
|
ENDIF
|
|
IF (sClubhouse_price_struct.iFurniturePrice >= 0)
|
|
data.m_furniture_style = iFurniture
|
|
data.m_furniture_style_amount = sClubhouse_price_struct.iFurniturePrice
|
|
iAmount +=data.m_furniture_style_amount
|
|
ENDIF
|
|
IF (sClubhouse_price_struct.iEmblemPrice >= 0)
|
|
data.m_emblem = iEmblem
|
|
data.m_emblem_amount = sClubhouse_price_struct.iEmblemPrice
|
|
iAmount +=data.m_emblem_amount
|
|
ENDIF
|
|
IF (sClubhouse_price_struct.iGunLockerPrice >= 0)
|
|
data.m_gun_locker = iGunLocker
|
|
data.m_gun_locker_amount = sClubhouse_price_struct.iGunLockerPrice
|
|
iAmount +=data.m_gun_locker_amount
|
|
ENDIF
|
|
IF (sClubhouse_price_struct.iGaragePrice >= 0)
|
|
data.m_mod_shop = iGarage
|
|
data.m_mod_shop_amount = sClubhouse_price_struct.iGaragePrice
|
|
iAmount +=data.m_mod_shop_amount
|
|
ENDIF
|
|
IF (sClubhouse_price_struct.iNamePrice >= 0)
|
|
data.m_signage = g_sClubhouseDataStruct.iClubhouseNameID
|
|
data.m_signage_amount = sClubhouse_price_struct.iNamePrice
|
|
iAmount +=data.m_signage_amount
|
|
ENDIF
|
|
IF (sClubhouse_price_struct.iFontPrice >= 0)
|
|
data.m_font = iFont
|
|
data.m_font_amount = sClubhouse_price_struct.iFontPrice
|
|
iAmount +=data.m_font_amount
|
|
ENDIF
|
|
|
|
NETWORK_SPENT_UPGRADE_CLUB_HOUSE(iAmount, data, FALSE,TRUE)
|
|
propval = finalPendingTransactionValue
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Upgrading Clubhouse for iAmount:$", iAmount, " finalPendingTransactionValue:$", finalPendingTransactionValue, " propval:$", propval)
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: purchasing Clubhouse for finalPendingTransactionValue:$", finalPendingTransactionValue, " FREE")
|
|
ENDIF
|
|
ELIF IS_PROPERTY_OFFICE_GARAGE(iBuyPropertyIndex)
|
|
INT iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop
|
|
GET_SCALEFORM_OFFICE_DATA(iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop)
|
|
|
|
SPEND_OFFICE_GARAGE data
|
|
IF NOT bUpgradingOfficeGarage
|
|
data.m_Location = iBuyPropertyIndex
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
data.m_LocationAmount = GET_VALUE_OF_PROPERTY(iBuyPropertyIndex)
|
|
ELSE
|
|
data.m_LocationAmount = 0
|
|
ENDIF
|
|
|
|
SWITCH iResultSlot
|
|
CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1
|
|
data.m_Numbering = 1
|
|
data.m_NumberingAmount = 0
|
|
data.m_NumberingStyle = iGarage1Number
|
|
data.m_NumberingStyleAmount = sOffice_price_struct.iGarage1NumberPrice
|
|
data.m_Lighting = iGarage1Lighting
|
|
data.m_LightingAmount = sOffice_price_struct.iGarage1LightingPrice
|
|
data.m_Wall = iGarage1Style
|
|
data.m_WallAmount = sOffice_price_struct.iGarage1StylePrice
|
|
BREAK
|
|
CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2
|
|
data.m_Numbering = 2
|
|
data.m_NumberingAmount = 0
|
|
data.m_NumberingStyle = iGarage2Number
|
|
data.m_NumberingStyleAmount = sOffice_price_struct.iGarage2NumberPrice
|
|
data.m_Lighting = iGarage2Lighting
|
|
data.m_LightingAmount = sOffice_price_struct.iGarage2LightingPrice
|
|
data.m_Wall = iGarage2Style
|
|
data.m_WallAmount = sOffice_price_struct.iGarage2StylePrice
|
|
BREAK
|
|
CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3
|
|
data.m_Numbering = 3
|
|
data.m_NumberingAmount = 0
|
|
data.m_NumberingStyle = iGarage3Number
|
|
data.m_NumberingStyleAmount = sOffice_price_struct.iGarage3NumberPrice
|
|
data.m_Lighting = iGarage3Lighting
|
|
data.m_LightingAmount = sOffice_price_struct.iGarage3LightingPrice
|
|
data.m_Wall = iGarage3Style
|
|
data.m_WallAmount = sOffice_price_struct.iGarage3StylePrice
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: unknown iResultSlot ", iResultSlot, " for NETWORK_SPENT_PURCHASE_OFFICE_GARAGE")
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
INT iAmount = (data.m_LocationAmount+data.m_NumberingStyleAmount+data.m_LightingAmount+data.m_WallAmount)
|
|
NETWORK_SPENT_PURCHASE_OFFICE_GARAGE(iAmount, data, FALSE,TRUE)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Buying office garage ", iResultSlot, " for iAmount:$", iAmount, " finalPendingTransactionValue:$", finalPendingTransactionValue, " propval:$", propval)
|
|
ELSE
|
|
INT iAmount
|
|
data.m_Location = iBuyPropertyIndex
|
|
//IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
// data.m_LocationAmount = GET_VALUE_OF_PROPERTY(iBuyPropertyIndex)
|
|
//ELSE
|
|
// data.m_LocationAmount = 0
|
|
//ENDIF
|
|
//iAmount = data.m_LocationAmount <-- WE DON'T ADD THIS FOR UPGRADE !
|
|
|
|
SWITCH iResultSlot
|
|
CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1
|
|
IF (sOffice_price_struct.iGarage1NumberPrice >= 0)
|
|
data.m_Numbering = 1
|
|
data.m_NumberingAmount = 0
|
|
data.m_NumberingStyle = iGarage1Number
|
|
data.m_NumberingStyleAmount = sOffice_price_struct.iGarage1NumberPrice
|
|
iAmount += data.m_NumberingStyleAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iGarage1LightingPrice >= 0)
|
|
data.m_Lighting = iGarage1Lighting
|
|
data.m_LightingAmount = sOffice_price_struct.iGarage1LightingPrice
|
|
iAmount += data.m_LightingAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iGarage1StylePrice >= 0)
|
|
data.m_Wall = iGarage1Style
|
|
data.m_WallAmount = sOffice_price_struct.iGarage1StylePrice
|
|
iAmount += data.m_WallAmount
|
|
ENDIF
|
|
BREAK
|
|
CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2
|
|
IF (sOffice_price_struct.iGarage2NumberPrice >= 0)
|
|
data.m_Numbering = 2
|
|
data.m_NumberingAmount = 0
|
|
data.m_NumberingStyle = iGarage2Number
|
|
data.m_NumberingStyleAmount = sOffice_price_struct.iGarage2NumberPrice
|
|
iAmount += data.m_NumberingStyleAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iGarage2LightingPrice >= 0)
|
|
data.m_Lighting = iGarage2Lighting
|
|
data.m_LightingAmount = sOffice_price_struct.iGarage2LightingPrice
|
|
iAmount += data.m_LightingAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iGarage2StylePrice >= 0)
|
|
data.m_Wall = iGarage2Style
|
|
data.m_WallAmount = sOffice_price_struct.iGarage2StylePrice
|
|
iAmount += data.m_WallAmount
|
|
ENDIF
|
|
BREAK
|
|
CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3
|
|
IF (sOffice_price_struct.iGarage3NumberPrice >= 0)
|
|
data.m_Numbering = 3
|
|
data.m_NumberingAmount = 0
|
|
data.m_NumberingStyle = iGarage3Number
|
|
data.m_NumberingStyleAmount = sOffice_price_struct.iGarage3NumberPrice
|
|
iAmount += data.m_NumberingStyleAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iGarage3LightingPrice >= 0)
|
|
data.m_Lighting = iGarage3Lighting
|
|
data.m_LightingAmount = sOffice_price_struct.iGarage3LightingPrice
|
|
iAmount += data.m_LightingAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iGarage3StylePrice >= 0)
|
|
data.m_Wall = iGarage3Style
|
|
data.m_WallAmount = sOffice_price_struct.iGarage3StylePrice
|
|
iAmount += data.m_WallAmount
|
|
ENDIF
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: unknown iResultSlot ", iResultSlot, " for NETWORK_SPENT_PURCHASE_OFFICE_GARAGE")
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
NETWORK_SPENT_UPGRADE_OFFICE_GARAGE(iAmount, data, FALSE,TRUE)
|
|
propval = finalPendingTransactionValue
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Upgrading office garage ", iResultSlot, " for iAmount:$", iAmount, " finalPendingTransactionValue:$", finalPendingTransactionValue, " propval:$", propval)
|
|
ENDIF
|
|
ELSE
|
|
tl_15PropertyName = GET_PROPERTY_NAME(iBuyPropertyIndex)
|
|
NETWORK_BUY_PROPERTY(propval,GET_HASH_KEY(tl_15PropertyName),FALSE,TRUE)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Buying property for propval:$", propval)
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
DELETE_CASH_TRANSACTION(
|
|
GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
ENDIF
|
|
ELSE
|
|
IF finalPendingTransactionValue < 0
|
|
//INCREMENT_BY_MP_INT_CHARACTER_STAT(MP_STAT_MONEY_EARNED_PROPERTY,-pendingTransactionValue)
|
|
//NETWORK_EARN_FROM_PROPERTY(-finalPendingTransactionValue, GET_HASH_KEY(tl_15PropertyName))
|
|
IF GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(iResultSlot) > 0
|
|
AND NOT (bUpgradingOffice OR bUpgradingClubhouse OR bUpgradingOfficeGarage)
|
|
IF NOT IS_PROPERTY_CLUBHOUSE(iBuyPropertyIndex)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
OR (iBuyPropertyIndex = PROPERTY_LOW_APT_2
|
|
OR iBuyPropertyIndex = PROPERTY_GARAGE_NEW_19
|
|
// OR iBuyPropertyIndex = PROPERTY_OFFICE_2_BASE
|
|
// OR iBuyPropertyIndex = PROPERTY_CLUBHOUSE_4_BASE_A //IS_PROPERTY_CLUBHOUSE
|
|
)
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_SHOPS, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
tl_15PropertyName = GET_PROPERTY_NAME(GET_OWNED_PROPERTY(iResultSlot))
|
|
SAFE_NETWORK_EARN_FROM_PROPERTY(GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(iResultSlot), GET_HASH_KEY(tl_15PropertyName))
|
|
ELSE
|
|
tl_15PropertyName = GET_PROPERTY_NAME(GET_OWNED_PROPERTY(iResultSlot))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Earn nothing from property:$", GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(iResultSlot), " \"", tl_15PropertyName, "\" as was free")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_SHOPS, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
IF IS_PROPERTY_OFFICE(iBuyPropertyIndex)
|
|
INT iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop
|
|
GET_SCALEFORM_OFFICE_DATA(iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop)
|
|
|
|
SPEND_OFFICE_AND_WAREHOUSE data
|
|
IF NOT bUpgradingOffice
|
|
data.m_Location = iBuyPropertyIndex
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
data.m_LocationAmount = GET_VALUE_OF_PROPERTY(iBuyPropertyIndex)
|
|
ELSE
|
|
data.m_LocationAmount = 0
|
|
ENDIF
|
|
data.m_Style = iStyle
|
|
data.m_StyleAmount = sOffice_price_struct.iStylePrice
|
|
data.m_PaGender = GET_GENDER_METRIC_FROM_PERSONEL_INT(iPersonnel)
|
|
data.m_PaGenderAmount = sOffice_price_struct.iPersonnelPrice
|
|
data.m_Signage = g_sOfficeDataStruct.iOfficeNameID
|
|
data.m_SignageAmount = (sOffice_price_struct.iNamePrice+sOffice_price_struct.iFontPrice+sOffice_price_struct.iColourPrice)
|
|
data.m_GunLocker = iGunLocker
|
|
data.m_GunLockerAmount = sOffice_price_struct.iGunLockerPrice
|
|
data.m_Vault = iVault
|
|
data.m_VaultAmount = sOffice_price_struct.iVaultPrice
|
|
data.m_PersonalQuarters = iAccommodation
|
|
data.m_PersonalQuartersAmount = sOffice_price_struct.iAccommodationPrice
|
|
data.m_ModShop = iModshop
|
|
data.m_ModShopAmount = sOffice_price_struct.iModshopPrice
|
|
|
|
INT iAmount = (data.m_LocationAmount+data.m_StyleAmount+data.m_PaGenderAmount+data.m_SignageAmount+data.m_GunLockerAmount+data.m_VaultAmount+data.m_PersonalQuartersAmount+data.m_ModShopAmount)
|
|
NETWORK_SPENT_PURCHASE_OFFICE_PROPERTY(iAmount, data, FALSE,TRUE)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Earning from office for iAmount:$", iAmount, " finalPendingTransactionValue:$", finalPendingTransactionValue, " propval:$", propval)
|
|
ELSE
|
|
INT iAmount
|
|
data.m_Location = iBuyPropertyIndex
|
|
//IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
// data.m_LocationAmount = GET_VALUE_OF_PROPERTY(iBuyPropertyIndex)
|
|
//ELSE
|
|
// data.m_LocationAmount = 0
|
|
//ENDIF
|
|
//iAmount = data.m_LocationAmount <-- WE DON'T ADD THIS FOR UPGRADE !
|
|
|
|
IF (sOffice_price_struct.iStylePrice >= 0)
|
|
data.m_Style = iStyle
|
|
data.m_StyleAmount = sOffice_price_struct.iStylePrice
|
|
iAmount += data.m_StyleAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iPersonnelPrice >= 0)
|
|
data.m_PaGender = GET_GENDER_METRIC_FROM_PERSONEL_INT(iPersonnel)
|
|
data.m_PaGenderAmount = sOffice_price_struct.iPersonnelPrice
|
|
iAmount += data.m_PaGenderAmount
|
|
ENDIF
|
|
data.m_Signage = g_sOfficeDataStruct.iOfficeNameID
|
|
data.m_SignageAmount = (sOffice_price_struct.iNamePrice+sOffice_price_struct.iFontPrice+sOffice_price_struct.iColourPrice)
|
|
iAmount += data.m_SignageAmount
|
|
IF (sOffice_price_struct.iGunLockerPrice >= 0)
|
|
data.m_GunLocker = iGunLocker
|
|
data.m_GunLockerAmount = sOffice_price_struct.iGunLockerPrice
|
|
iAmount += data.m_GunLockerAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iVaultPrice >= 0)
|
|
data.m_Vault = iVault
|
|
data.m_VaultAmount = sOffice_price_struct.iVaultPrice
|
|
iAmount += data.m_VaultAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iAccommodationPrice >= 0)
|
|
data.m_PersonalQuarters = iAccommodation
|
|
data.m_PersonalQuartersAmount = sOffice_price_struct.iAccommodationPrice
|
|
iAmount += data.m_PersonalQuartersAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iModshopPrice >= 0)
|
|
data.m_ModShop = iModshop
|
|
data.m_ModShopAmount = sOffice_price_struct.iModshopPrice
|
|
iAmount += data.m_ModShopAmount
|
|
ENDIF
|
|
|
|
NETWORK_SPENT_UPGRADE_OFFICE_PROPERTY(iAmount, data, FALSE,TRUE)
|
|
propval = finalPendingTransactionValue
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Earning from office upgrade for iAmount:$", iAmount, " finalPendingTransactionValue:$", finalPendingTransactionValue, " propval:$", propval)
|
|
ENDIF
|
|
ELIF IS_PROPERTY_CLUBHOUSE(iBuyPropertyIndex)
|
|
INT iWall, iHanging, iFurniture, iColourScheme, iFont, iFontColour, iEmblem, iHideSinage, iGunLocker, iGarage
|
|
GET_SCALEFORM_CLUBHOUSE_DATA(iBuyPropertyIndex, iWall, iHanging, iFurniture, iColourScheme, iFont, iFontColour, iEmblem, iHideSinage, iGunLocker, iGarage)
|
|
|
|
INT iPropertyVariation = 0
|
|
BOOL bStarterPackItem = FALSE
|
|
// IF SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
// IF NOT COULD_PROPERTY_BE_FREE_FOR_PLAYER_WITH_CRIMINAL_ENTERPRISE_STARTER_PACK(i)
|
|
// iPropertyVariation = 1
|
|
// ELSE
|
|
// bStarterPackItem = TRUE
|
|
// ENDIF
|
|
// ENDIF
|
|
|
|
SPEND_CLUB_HOUSE data
|
|
IF NOT bUpgradingClubhouse
|
|
IF iCachedReplaceProperty != 0
|
|
INT iSellingPropertyVariation = 0
|
|
BOOL bSellingPropertyStarterPackItem = FALSE
|
|
|
|
// iCachedReplacePropertyPrice -= GET_VALUE_OF_CURRENTLY_OWNED_CLUBHOUSE_MODS(PROPERTY_OWNED_SLOT_CLUBHOUSE, TRUE)
|
|
// IF iCachedReplacePropertyPrice = 0
|
|
// IF NOT COULD_PROPERTY_BE_FREE_FOR_PLAYER_WITH_CRIMINAL_ENTERPRISE_STARTER_PACK(iCachedReplaceProperty)
|
|
// iSellingPropertyVariation = 1
|
|
// ELSE
|
|
// bSellingPropertyStarterPackItem = TRUE
|
|
// ENDIF
|
|
// ENDIF
|
|
|
|
SPEND_CLUB_HOUSE earnData
|
|
earnData.m_property_id = GET_PROPERTY_KEY_FOR_CATALOGUE(iCachedReplaceProperty, iSellingPropertyVariation, bSellingPropertyStarterPackItem)
|
|
earnData.m_property_id_amount = iCachedSellingPrice
|
|
earnData.m_mural_type = g_sClubhouseDataStruct.iColourScheme
|
|
earnData.m_mural_type_amount = -1
|
|
earnData.m_wall_style = g_sClubhouseDataStruct.iWall
|
|
earnData.m_wall_style_amount = -1
|
|
earnData.m_wall_hanging_style = g_sClubhouseDataStruct.iHanging
|
|
earnData.m_wall_hanging_style_amount = -1
|
|
earnData.m_furniture_style = g_sClubhouseDataStruct.iFurniture
|
|
earnData.m_furniture_style_amount = -1
|
|
earnData.m_emblem = g_sClubhouseDataStruct.iEmblem
|
|
earnData.m_emblem_amount = -1
|
|
earnData.m_gun_locker = g_sClubhouseDataStruct.iGunLocker
|
|
earnData.m_gun_locker_amount = GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_LOCKER_GUN, g_sClubhouseDataStruct.iGunLocker)
|
|
earnData.m_mod_shop = g_sClubhouseDataStruct.iGarage
|
|
earnData.m_mod_shop_amount = GET_CLUBHOUSE_PROPERTY_MOD_VALUE(CLUBHOUSE_MOD_GARAGE, g_sClubhouseDataStruct.iGarage)
|
|
earnData.m_signage = g_sClubhouseDataStruct.iClubhouseNameID
|
|
earnData.m_signage_amount = -1
|
|
earnData.m_font = g_sClubhouseDataStruct.iFont
|
|
earnData.m_font_amount = -1
|
|
|
|
NETWORK_EARN_PURCHASE_CLUB_HOUSE(iCachedSellingPrice, earnData)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Earning from Clubhouse for iAmount:$", iCachedSellingPrice, " - B")
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_SHOPS, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
ENDIF
|
|
|
|
INT iAmount = 0
|
|
|
|
data.m_property_id = GET_PROPERTY_KEY_FOR_CATALOGUE(iBuyPropertyIndex, iPropertyVariation, bStarterPackItem)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
data.m_property_id_amount = GET_VALUE_OF_PROPERTY(iBuyPropertyIndex)
|
|
ELSE
|
|
data.m_property_id_amount = 0
|
|
ENDIF
|
|
iAmount +=data.m_property_id_amount
|
|
|
|
data.m_mural_type = iColourScheme
|
|
data.m_mural_type_amount = sClubhouse_price_struct.iStylePrice
|
|
iAmount +=data.m_mural_type_amount
|
|
|
|
data.m_wall_style = iWall
|
|
data.m_wall_style_amount = sClubhouse_price_struct.iWallPrice
|
|
iAmount +=data.m_wall_style_amount
|
|
|
|
data.m_wall_hanging_style = iHanging
|
|
data.m_wall_hanging_style_amount = sClubhouse_price_struct.iHangingPrice
|
|
iAmount +=data.m_wall_hanging_style_amount
|
|
|
|
data.m_furniture_style = iFurniture
|
|
data.m_furniture_style_amount = sClubhouse_price_struct.iFurniturePrice
|
|
iAmount +=data.m_furniture_style_amount
|
|
|
|
data.m_emblem = iEmblem
|
|
data.m_emblem_amount = sClubhouse_price_struct.iEmblemPrice
|
|
iAmount +=data.m_emblem_amount
|
|
|
|
IF (sClubhouse_price_struct.iGunLockerPrice >= 0)
|
|
data.m_gun_locker = iGunLocker
|
|
data.m_gun_locker_amount = sClubhouse_price_struct.iGunLockerPrice
|
|
iAmount +=data.m_gun_locker_amount
|
|
ENDIF
|
|
IF (sClubhouse_price_struct.iGaragePrice >= 0)
|
|
data.m_mod_shop = iGarage
|
|
data.m_mod_shop_amount = sClubhouse_price_struct.iGaragePrice
|
|
iAmount +=data.m_mod_shop_amount
|
|
ENDIF
|
|
data.m_signage = g_sClubhouseDataStruct.iClubhouseNameID
|
|
data.m_signage_amount = sClubhouse_price_struct.iNamePrice
|
|
iAmount +=data.m_signage_amount
|
|
|
|
data.m_font = iFont
|
|
data.m_font_amount = sClubhouse_price_struct.iFontPrice
|
|
iAmount +=data.m_font_amount
|
|
|
|
NETWORK_SPENT_PURCHASE_CLUB_HOUSE(iAmount, data, FALSE,TRUE)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Spend after earning from Clubhouse for iAmount:$", iAmount, " finalPendingTransactionValue:$", finalPendingTransactionValue, " propval:$", propval)
|
|
ELSE
|
|
INT iAmount = 0
|
|
// data.m_property_id = GET_PROPERTY_KEY_FOR_CATALOGUE(iBuyPropertyIndex, iPropertyVariation)
|
|
IF (sClubhouse_price_struct.iStylePrice >= 0)
|
|
data.m_mural_type = iColourScheme
|
|
data.m_mural_type_amount = sClubhouse_price_struct.iStylePrice
|
|
iAmount +=data.m_mural_type_amount
|
|
ENDIF
|
|
IF (sClubhouse_price_struct.iWallPrice >= 0)
|
|
data.m_wall_style = iWall
|
|
data.m_wall_style_amount = sClubhouse_price_struct.iWallPrice
|
|
iAmount +=data.m_wall_style_amount
|
|
ENDIF
|
|
IF (sClubhouse_price_struct.iHangingPrice >= 0)
|
|
data.m_wall_hanging_style = iHanging
|
|
data.m_wall_hanging_style_amount = sClubhouse_price_struct.iHangingPrice
|
|
iAmount +=data.m_wall_hanging_style_amount
|
|
ENDIF
|
|
IF (sClubhouse_price_struct.iFurniturePrice >= 0)
|
|
data.m_furniture_style = iFurniture
|
|
data.m_furniture_style_amount = sClubhouse_price_struct.iFurniturePrice
|
|
iAmount +=data.m_furniture_style_amount
|
|
ENDIF
|
|
IF (sClubhouse_price_struct.iEmblemPrice >= 0)
|
|
data.m_emblem = iEmblem
|
|
data.m_emblem_amount = sClubhouse_price_struct.iEmblemPrice
|
|
iAmount +=data.m_emblem_amount
|
|
ENDIF
|
|
IF (sClubhouse_price_struct.iGunLockerPrice >= 0)
|
|
data.m_gun_locker = iGunLocker
|
|
data.m_gun_locker_amount = sClubhouse_price_struct.iGunLockerPrice
|
|
iAmount +=data.m_gun_locker_amount
|
|
ENDIF
|
|
IF (sClubhouse_price_struct.iGaragePrice >= 0)
|
|
data.m_mod_shop = iGarage
|
|
data.m_mod_shop_amount = sClubhouse_price_struct.iGaragePrice
|
|
iAmount +=data.m_mod_shop_amount
|
|
ENDIF
|
|
IF (sClubhouse_price_struct.iNamePrice >= 0)
|
|
data.m_signage = g_sClubhouseDataStruct.iClubhouseNameID
|
|
data.m_signage_amount = sClubhouse_price_struct.iNamePrice
|
|
iAmount +=data.m_signage_amount
|
|
ENDIF
|
|
IF (sClubhouse_price_struct.iFontPrice >= 0)
|
|
data.m_font = iFont
|
|
data.m_font_amount = sClubhouse_price_struct.iFontPrice
|
|
iAmount +=data.m_font_amount
|
|
ENDIF
|
|
|
|
NETWORK_SPENT_UPGRADE_CLUB_HOUSE(iAmount, data, FALSE,TRUE)
|
|
propval = finalPendingTransactionValue
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Spent on Clubhouse upgrade for iAmount:$", iAmount, " finalPendingTransactionValue:$", finalPendingTransactionValue, " propval:$", propval)
|
|
ENDIF
|
|
ELSE
|
|
tl_15PropertyName = GET_PROPERTY_NAME(iBuyPropertyIndex)
|
|
NETWORK_BUY_PROPERTY(propval,GET_HASH_KEY(tl_15PropertyName),FALSE,TRUE)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Earning from proprety: $", -finalPendingTransactionValue)
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
ENDIF
|
|
ELIF IS_PROPERTY_OFFICE_GARAGE(iBuyPropertyIndex)
|
|
IF propval > 0
|
|
INT iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop
|
|
GET_SCALEFORM_OFFICE_DATA(iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop)
|
|
|
|
SPEND_OFFICE_GARAGE data
|
|
IF NOT bUpgradingOfficeGarage
|
|
data.m_Location = iBuyPropertyIndex
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
data.m_LocationAmount = GET_VALUE_OF_PROPERTY(iBuyPropertyIndex)
|
|
ELSE
|
|
data.m_LocationAmount = 0
|
|
ENDIF
|
|
|
|
SWITCH iResultSlot
|
|
CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1
|
|
data.m_Numbering = 1
|
|
data.m_NumberingAmount = 0
|
|
data.m_NumberingStyle = iGarage1Number
|
|
data.m_NumberingStyleAmount = sOffice_price_struct.iGarage1NumberPrice
|
|
data.m_Lighting = iGarage1Lighting
|
|
data.m_LightingAmount = sOffice_price_struct.iGarage1LightingPrice
|
|
data.m_Wall = iGarage1Style
|
|
data.m_WallAmount = sOffice_price_struct.iGarage1StylePrice
|
|
BREAK
|
|
CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2
|
|
data.m_Numbering = 2
|
|
data.m_NumberingAmount = 0
|
|
data.m_NumberingStyle = iGarage2Number
|
|
data.m_NumberingStyleAmount = sOffice_price_struct.iGarage2NumberPrice
|
|
data.m_Lighting = iGarage2Lighting
|
|
data.m_LightingAmount = sOffice_price_struct.iGarage2LightingPrice
|
|
data.m_Wall = iGarage2Style
|
|
data.m_WallAmount = sOffice_price_struct.iGarage2StylePrice
|
|
BREAK
|
|
CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3
|
|
data.m_Numbering = 3
|
|
data.m_NumberingAmount = 0
|
|
data.m_NumberingStyle = iGarage3Number
|
|
data.m_NumberingStyleAmount = sOffice_price_struct.iGarage3NumberPrice
|
|
data.m_Lighting = iGarage3Lighting
|
|
data.m_LightingAmount = sOffice_price_struct.iGarage3LightingPrice
|
|
data.m_Wall = iGarage3Style
|
|
data.m_WallAmount = sOffice_price_struct.iGarage3StylePrice
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: unknown iResultSlot ", iResultSlot, " for NETWORK_SPENT_PURCHASE_OFFICE_GARAGE")
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
INT iAmount = (data.m_LocationAmount+data.m_NumberingStyleAmount+data.m_LightingAmount+data.m_WallAmount)
|
|
NETWORK_SPENT_PURCHASE_OFFICE_GARAGE(iAmount, data, FALSE,TRUE)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Earning from office garage for iAmount:$", iAmount, " finalPendingTransactionValue:$", finalPendingTransactionValue, " propval:$", propval)
|
|
ELSE
|
|
INT iAmount
|
|
data.m_Location = iBuyPropertyIndex
|
|
//IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
// data.m_LocationAmount = GET_VALUE_OF_PROPERTY(iBuyPropertyIndex)
|
|
//ELSE
|
|
// data.m_LocationAmount = 0
|
|
//ENDIF
|
|
|
|
SWITCH iResultSlot
|
|
CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1
|
|
IF (sOffice_price_struct.iGarage1NumberPrice >= 0)
|
|
data.m_Numbering = 1
|
|
data.m_NumberingAmount = 0
|
|
data.m_NumberingStyle = iGarage1Number
|
|
data.m_NumberingStyleAmount = sOffice_price_struct.iGarage1NumberPrice
|
|
iAmount += data.m_NumberingStyleAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iGarage1LightingPrice >= 0)
|
|
data.m_Lighting = iGarage1Lighting
|
|
data.m_LightingAmount = sOffice_price_struct.iGarage1LightingPrice
|
|
iAmount += data.m_LightingAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iGarage1StylePrice >= 0)
|
|
data.m_Wall = iGarage1Style
|
|
data.m_WallAmount = sOffice_price_struct.iGarage1StylePrice
|
|
iAmount += data.m_WallAmount
|
|
ENDIF
|
|
BREAK
|
|
CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2
|
|
IF (sOffice_price_struct.iGarage2NumberPrice >= 0)
|
|
data.m_Numbering = 2
|
|
data.m_NumberingAmount = 0
|
|
data.m_NumberingStyle = iGarage2Number
|
|
data.m_NumberingStyleAmount = sOffice_price_struct.iGarage2NumberPrice
|
|
iAmount += data.m_NumberingStyleAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iGarage2LightingPrice >= 0)
|
|
data.m_Lighting = iGarage2Lighting
|
|
data.m_LightingAmount = sOffice_price_struct.iGarage2LightingPrice
|
|
iAmount += data.m_LightingAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iGarage2StylePrice >= 0)
|
|
data.m_Wall = iGarage2Style
|
|
data.m_WallAmount = sOffice_price_struct.iGarage2StylePrice
|
|
iAmount += data.m_WallAmount
|
|
ENDIF
|
|
BREAK
|
|
CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3
|
|
IF (sOffice_price_struct.iGarage3NumberPrice >= 0)
|
|
data.m_Numbering = 3
|
|
data.m_NumberingAmount = 0
|
|
data.m_NumberingStyle = iGarage3Number
|
|
data.m_NumberingStyleAmount = sOffice_price_struct.iGarage3NumberPrice
|
|
iAmount += data.m_NumberingStyleAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iGarage3LightingPrice >= 0)
|
|
data.m_Lighting = iGarage3Lighting
|
|
data.m_LightingAmount = sOffice_price_struct.iGarage3LightingPrice
|
|
iAmount += data.m_LightingAmount
|
|
ENDIF
|
|
IF (sOffice_price_struct.iGarage3StylePrice >= 0)
|
|
data.m_Wall = iGarage3Style
|
|
data.m_WallAmount = sOffice_price_struct.iGarage3StylePrice
|
|
iAmount += data.m_WallAmount
|
|
ENDIF
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: unknown iResultSlot ", iResultSlot, " for NETWORK_SPENT_PURCHASE_OFFICE_GARAGE")
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
|
|
NETWORK_SPENT_UPGRADE_OFFICE_GARAGE(iAmount, data, FALSE,TRUE)
|
|
propval = finalPendingTransactionValue
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: Earning from office garage upgrade for iAmount:$", iAmount, " finalPendingTransactionValue:$", finalPendingTransactionValue, " propval:$", propval)
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: purchasing office garage for finalPendingTransactionValue:$", finalPendingTransactionValue, " FREE")
|
|
ENDIF
|
|
ELSE
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY DETAIL TYPE: purchase going ahead, transaction value $" ,finalPendingTransactionValue, " combined bank and wallet balance $",(iBankBalance+iWalletBalance) )
|
|
IF GET_OWNED_PROPERTY(iResultSlot) > 0
|
|
AND NOT (bUpgradingOffice OR bUpgradingClubhouse OR bUpgradingOfficeGarage)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: incrementing trade in.")
|
|
INCREMENT_BY_MP_INT_CHARACTER_AWARD(MP_AWARD_TRADE_IN_YOUR_PROPERTY,1)
|
|
ENDIF
|
|
|
|
WHILE NOT SET_CHIPS_FOR_PROPERTY_PURCHASE(iBuyPropertyIndex, eChipsTransactionState)
|
|
AND DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
eChipsTransactionState = TRANSACTION_STATE_DEFAULT
|
|
|
|
IF iResultSlot >= 0
|
|
AND iResultSlot <= MAX_MP_PROPERTIES-1
|
|
FORCE_CLEAN_APARTMENT_MESS_DATA(iResultSlot)
|
|
ENDIF
|
|
IF iResultSlot = PROPERTY_OWNED_SLOT_APT_1
|
|
IF GET_OWNED_PROPERTY(iResultSlot) <= 0
|
|
REQUEST_SYSTEM_ACTIVITY_TYPE_PURCHASED_FIRST_PROPERTY()
|
|
ENDIF
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROPERTY_HOUSE, iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY DETAIL TYPE:", mpProperties[iBuyPropertyIndex].iType)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY SIZE TYPE:", GET_PROPERTY_SIZE_TYPE(iBuyPropertyIndex))
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROPERTY_HOUSE_TIME,GET_CLOUD_TIME_AS_INT())
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROPERTY_HOUSE_NEW,iBuyPropertyIndex)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROPERTY_HOUSE_NEW_TIME,GET_CLOUD_TIME_AS_INT())
|
|
|
|
INCREMENT_MP_INT_CHARACTER_STAT(MP_STAT_NO_PROPERTIES_UNLOCK)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iCurrentPropertyValue = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iCurrentPropertyValue = 0
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROPERTY_HOUSE_NEW_VALUE,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iCurrentPropertyValue)
|
|
|
|
IF IS_PROPERTY_CUSTOM_APARTMENT(iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant:", iCustomAptVariant)
|
|
SET_INTERIOR_STAT_FOR_CUSTOM_APT(iResultSlot, iCustomAptVariant)
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iPropertyVariant[iResultSlot] = iCustomAptVariant
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant: NONE")
|
|
ENDIF
|
|
IF propval = 0
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_STAT_FREE_PROPERTY_SLOT_0, TRUE)
|
|
ELSE
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_STAT_FREE_PROPERTY_SLOT_0, FALSE)
|
|
ENDIF
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_APT_2
|
|
IF GET_OWNED_PROPERTY(iResultSlot) <= 0
|
|
REQUEST_SYSTEM_ACTIVITY_TYPE_PURCHASED_SECOND_PROPERTY()
|
|
ENDIF
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_1, iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY DETAIL TYPE:", mpProperties[iBuyPropertyIndex].iType)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY SIZE TYPE:", GET_PROPERTY_SIZE_TYPE(iBuyPropertyIndex))
|
|
INCREMENT_MP_INT_CHARACTER_STAT(MP_STAT_NO_PROPERTIES_UNLOCK)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiProperty1Value = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiProperty1Value = 0
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_VALUE_1,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiProperty1Value)
|
|
|
|
IF IS_PROPERTY_CUSTOM_APARTMENT(iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant:", iCustomAptVariant)
|
|
SET_INTERIOR_STAT_FOR_CUSTOM_APT(iResultSlot, iCustomAptVariant)
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iPropertyVariant[iResultSlot] = iCustomAptVariant
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant: NONE")
|
|
ENDIF
|
|
IF propval = 0
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_STAT_FREE_PROPERTY_SLOT_1, TRUE)
|
|
ELSE
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_STAT_FREE_PROPERTY_SLOT_1, FALSE)
|
|
ENDIF
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_APT_3
|
|
IF GET_OWNED_PROPERTY(iResultSlot) <= 0
|
|
REQUEST_SYSTEM_ACTIVITY_TYPE_PURCHASED_THIRD_PROPERTY()
|
|
ENDIF
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_2, iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY DETAIL TYPE:", mpProperties[iBuyPropertyIndex].iType)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY SIZE TYPE:", GET_PROPERTY_SIZE_TYPE(iBuyPropertyIndex))
|
|
INCREMENT_MP_INT_CHARACTER_STAT(MP_STAT_NO_PROPERTIES_UNLOCK)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[0] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[0] = 0
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_VALUE_2,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[0])
|
|
|
|
IF IS_PROPERTY_CUSTOM_APARTMENT(iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant:", iCustomAptVariant)
|
|
SET_INTERIOR_STAT_FOR_CUSTOM_APT(iResultSlot, iCustomAptVariant)
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iPropertyVariant[iResultSlot] = iCustomAptVariant
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant: NONE")
|
|
ENDIF
|
|
IF propval = 0
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_STAT_FREE_PROPERTY_SLOT_2, TRUE)
|
|
ELSE
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_STAT_FREE_PROPERTY_SLOT_2, FALSE)
|
|
ENDIF
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_APT_4
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_3, iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY DETAIL TYPE:", mpProperties[iBuyPropertyIndex].iType)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY SIZE TYPE:", GET_PROPERTY_SIZE_TYPE(iBuyPropertyIndex))
|
|
INCREMENT_MP_INT_CHARACTER_STAT(MP_STAT_NO_PROPERTIES_UNLOCK)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[1] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[1] = 0
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_VALUE_3,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[1])
|
|
|
|
IF IS_PROPERTY_CUSTOM_APARTMENT(iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant:", iCustomAptVariant)
|
|
SET_INTERIOR_STAT_FOR_CUSTOM_APT(iResultSlot, iCustomAptVariant)
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iPropertyVariant[iResultSlot] = iCustomAptVariant
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant: NONE")
|
|
ENDIF
|
|
IF propval = 0
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_STAT_FREE_PROPERTY_SLOT_3, TRUE)
|
|
ELSE
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_STAT_FREE_PROPERTY_SLOT_3, FALSE)
|
|
ENDIF
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_APT_5
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_4, iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY DETAIL TYPE:", mpProperties[iBuyPropertyIndex].iType)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY SIZE TYPE:", GET_PROPERTY_SIZE_TYPE(iBuyPropertyIndex))
|
|
INCREMENT_MP_INT_CHARACTER_STAT(MP_STAT_NO_PROPERTIES_UNLOCK)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = 0
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_VALUE_4,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
|
|
|
|
IF IS_PROPERTY_CUSTOM_APARTMENT(iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant:", iCustomAptVariant)
|
|
SET_INTERIOR_STAT_FOR_CUSTOM_APT(iResultSlot, iCustomAptVariant)
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iPropertyVariant[iResultSlot] = iCustomAptVariant
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant: NONE")
|
|
ENDIF
|
|
IF propval = 0
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_STAT_FREE_PROPERTY_SLOT_4, TRUE)
|
|
ELSE
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_STAT_FREE_PROPERTY_SLOT_4, FALSE)
|
|
ENDIF
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_OFFICE_0
|
|
BOOL bOwnsOffice
|
|
//Print a ticker the first time we purchase an office
|
|
IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_0) <= 0
|
|
PRINT_TICKER("OFFPURCH_TICK")
|
|
bOwnsOffice = FALSE
|
|
ELSE
|
|
bOwnsOffice = TRUE
|
|
ENDIF
|
|
|
|
//#2829938
|
|
g_bOfficeJustPurchased = TRUE
|
|
IF IS_BIT_SET(iPurchaseHelpBS, PURCHASE_HELP_BS_SPVE0A)
|
|
CDEBUG1LN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: purchased office, set PURCHASE_HELP_BS_SPVE0A false")
|
|
CLEAR_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_SPVE0A)
|
|
ENDIF
|
|
|
|
IF NOT bOwnsOffice
|
|
|
|
GB_SET_LOCAL_HELP_BIT(eGB_LOCAL_HELP_BITSET_NOTIFICATION_BUY_OFFICE)
|
|
|
|
IF NOT GB_IS_PLAYER_MEMBER_OF_A_GANG(PLAYER_ID())
|
|
AND GB_GET_NUM_BOSSES_IN_SESSION() < GB_GET_MAX_NUM_GANGS()
|
|
AND NOT NETWORK_IS_ACTIVITY_SESSION()
|
|
AND NOT GB_IS_VIP_GAMEPLAY_DISABLED_FOR_PLAYER(PLAYER_ID())
|
|
AND NOT IS_PLAYER_ON_MISSION_BLOCKING_GANG_CREATION()
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(g_sOfficeDataStruct.tl63NewOrgName)
|
|
GB_SET_ORGANIZATION_NAME(g_sOfficeDataStruct.tl63NewOrgName,GB_ORGANISATION_NAME_TYPE_OFFICE, TRUE)
|
|
GB_SET_OFFICE_NAME(g_sOfficeDataStruct.tl63NewOrgName, TRUE)
|
|
//GB_SETUP_AFTER_NAMING_GANG(GBKeyBoardData)
|
|
GB_SEND_NAME_CHANGE_EVENT()
|
|
ELSE
|
|
TEXT_LABEL_63 tlOfficeName = GET_MP_LONG_STRING_CHARACTER_STAT(MP_STAT_GB_OFFICE_NAME, MP_STAT_GB_OFFICE_NAME2)
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(tlOfficeName)
|
|
GB_SET_ORGANIZATION_NAME(tlOfficeName,GB_ORGANISATION_NAME_TYPE_OFFICE, TRUE)
|
|
GB_SET_OFFICE_NAME(tlOfficeName, TRUE)
|
|
ELSE
|
|
GB_SET_ORGANIZATION_NAME(GET_DEFAULT_GANG_NAME(PLAYER_ID()),GB_ORGANISATION_NAME_TYPE_OFFICE, TRUE)
|
|
GB_SET_OFFICE_NAME(GET_DEFAULT_GANG_NAME(PLAYER_ID(), TRUE), TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
GB_BOSS_CREATE_GANG()
|
|
CLEANUP_TEMP_PASSIVE_MODE()
|
|
CDEBUG1LN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: office GB_BOSS_CREATE_GANG \"", g_sOfficeDataStruct.tl63NewOrgName, "\"")
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: office don't call GB_BOSS_CREATE_GANG")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE, iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: office PROPERTY DETAIL TYPE:", mpProperties[iBuyPropertyIndex].iType)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: office PROPERTY SIZE TYPE:", GET_PROPERTY_SIZE_TYPE(iBuyPropertyIndex))
|
|
INCREMENT_MP_INT_CHARACTER_STAT(MP_STAT_NO_PROPERTIES_UNLOCK)
|
|
|
|
IF NOT bUpgradingOffice
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = 0
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: value:", g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_VALUE,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: value ignored (upgrading office)")
|
|
ENDIF
|
|
|
|
INT iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop
|
|
GET_SCALEFORM_OFFICE_DATA(iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop)
|
|
|
|
IF IS_PROPERTY_CUSTOMISABLE(iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: office \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iStyle:", iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: office iPersonnel: ", iPersonnel, ", iGunLocker: ", iGunLocker, " iVault: ", iVault, " iAccommodation: ", iAccommodation)
|
|
|
|
IF GET_OWNED_PROPERTY_VARIATION(iResultSlot) != iStyle
|
|
SET_BIT(g_iOfficePersonalAssistantSpeechBitset, OFF_PA_SPEECH_DECOR)
|
|
ENDIF
|
|
SET_INTERIOR_STAT_FOR_CUSTOM_APT(iResultSlot, iStyle)
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iPersonnel)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_PERSONNEL, 1)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_OFFICE_MALE_PA)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: office PROPERTY_BROADCAST_BS_OFFICE_MALE_PA TRUE")
|
|
ELSE
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_PERSONNEL, 0)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_OFFICE_MALE_PA)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: office PROPERTY_BROADCAST_BS_OFFICE_MALE_PA FALSE")
|
|
ENDIF
|
|
|
|
IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_PA_GENDER_SET)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_PA_GENDER_SET)
|
|
ENDIF
|
|
|
|
IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_PA_NEW_CLOTHES)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_PA_NEW_CLOTHES)
|
|
ENDIF
|
|
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_FONT_PLAYER_OFFICE, iFont)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_COLOUR_PLAYER_OFFICE, iColour)
|
|
|
|
GlobalPlayerBD_FM_3[NATIVE_TO_INT(PLAYER_ID())].iOfficeNameFont = iFont
|
|
GlobalPlayerBD_FM_3[NATIVE_TO_INT(PLAYER_ID())].iOfficeNameFontColour = iColour
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: office iFont: ", iFont)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: office iColour: ", iColour)
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGunLocker)
|
|
IF NOT IS_OFFICE_GUN_LOCKER_PURCHASED()
|
|
SET_BIT(g_iOfficePersonalAssistantSpeechBitset, OFF_PA_SPEECH_ADDLOCKER)
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_LOCKER_GUN, 1)
|
|
ELSE
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_LOCKER_GUN, 0)
|
|
ENDIF
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iVault)
|
|
IF NOT IS_OFFICE_CASH_VAULT_PURCHASED()
|
|
SET_BIT(g_iOfficePersonalAssistantSpeechBitset, OFF_PA_SPEECH_ADDSAFE)
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_LOCKER_CASH, 1)
|
|
ELSE
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_LOCKER_CASH, 0)
|
|
ENDIF
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iAccommodation)
|
|
IF NOT IS_OFFICE_ACCOMMODATION_PURCHASED()
|
|
SET_BIT(g_iOfficePersonalAssistantSpeechBitset, OFF_PA_SPEECH_ADDQUARTERS)
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_ACCOMMODATION, 1)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo, PROPERTY_BROADCAST_BS2_OFFICE_LIVINGQ_PURCHASED)
|
|
ELSE
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_ACCOMMODATION, 0)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo, PROPERTY_BROADCAST_BS2_OFFICE_LIVINGQ_PURCHASED)
|
|
ENDIF
|
|
|
|
BOOL bUpgradingOfficeModshop = FALSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: office iModshop: ", iModshop, ", previously: ", iPrevModshop)
|
|
#IF USE_FINAL_PRINTS
|
|
PRINTLN_FINAL("[appInternet] -BUY_MP_PROPERTY_FROM_WEBSITE: office iModshop: ", iModshop, ", previously: ", iPrevModshop)
|
|
#ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_MODSHOP, iModshop)
|
|
|
|
IF IS_OFFICE_MODSHOP_PURCHASED()
|
|
SET_PLAYER_OWNS_OFFICE_MOD_GARAGE(TRUE)
|
|
IF iModshop != iPrevModshop
|
|
bUpgradingOfficeModshop = TRUE
|
|
|
|
IF iPrevModshop = 0
|
|
SET_BIT(g_iOfficePersonalAssistantSpeechBitset, OFF_PA_SPEECH_MODSHOP)
|
|
ENDIF
|
|
ENDIF
|
|
#IF USE_FINAL_PRINTS
|
|
PRINTLN_FINAL("[appInternet] -IS_OFFICE_MODSHOP_PURCHASED - TRUE")
|
|
#ENDIF
|
|
ELSE
|
|
SET_PLAYER_OWNS_OFFICE_MOD_GARAGE(FALSE)
|
|
#IF USE_FINAL_PRINTS
|
|
PRINTLN_FINAL("[appInternet] - IS_OFFICE_MODSHOP_PURCHASED - FALSE")
|
|
#ENDIF
|
|
ENDIF
|
|
|
|
IF bUpgradingOfficeModshop
|
|
|
|
SET_PLAYER_OFFICE_GARAGE_MOD_INTERIOR_FLAGS(iModshop)
|
|
|
|
IF (IS_PROPERTY_OFFICE_MOD_GARAGE(PLAYER_ID())
|
|
OR IS_PROPERTY_OFFICE_GARAGE(GET_PROPERTY_THAT_IM_CURRENTLY_IN()))
|
|
AND (IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_IN_OWNED_PROPERTY))
|
|
SET_PLAYER_RENOVATED_OFFICE_GARAGE_FLAG(TRUE)
|
|
SET_UPDATE_CUSTOM_APT(TRUE)
|
|
g_iCustomAptVariantPIM = 999 // Setting to something obvious incase it breaks something.
|
|
PRINTLN("COMPLETE_INTERIOR_PURCHASE: RENOVATING OFFICE MOD SHOP")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF !bUpgradingOffice
|
|
IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_GUN_VAULT_DOOR_OPENED)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_GUN_VAULT_DOOR_OPENED)
|
|
ENDIF
|
|
IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_SAFE_VAULT_DOOR_OPENED)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_SAFE_VAULT_DOOR_OPENED)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF !HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGunLocker)
|
|
IF SHOULD_ALLOW_DISABLE_WEAPON_LOADOUT_FROM_INTERNET()
|
|
SET_CUSTOM_WEAPON_LOADOUT(FALSE)
|
|
RESET_CUSTOM_WEAPON_LOADOUT_STATS()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iPropertyVariant[iResultSlot] = iCustomAptVariant
|
|
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(g_sOfficeDataStruct.tl63NewOrgName)
|
|
IF (GB_IS_PLAYER_BOSS_OF_A_GANG(PLAYER_ID())
|
|
AND NOT GB_IS_PLAYER_BOSS_OF_A_BIKER_GANG(PLAYER_ID()))
|
|
OR NOT GB_IS_PLAYER_MEMBER_OF_A_GANG(PLAYER_ID())
|
|
GB_SET_ORGANIZATION_NAME(g_sOfficeDataStruct.tl63NewOrgName,GB_ORGANISATION_NAME_TYPE_OFFICE, TRUE)
|
|
GB_SET_OFFICE_NAME(g_sOfficeDataStruct.tl63NewOrgName, TRUE)
|
|
//GB_SETUP_AFTER_NAMING_GANG(GBKeyBoardData)
|
|
GB_SEND_NAME_CHANGE_EVENT()
|
|
ELSE
|
|
GB_SET_OFFICE_NAME(g_sOfficeDataStruct.tl63NewOrgName, TRUE)
|
|
ENDIF
|
|
ELIF NOT GB_IS_PLAYER_BOSS_OF_A_GANG(PLAYER_ID())
|
|
OR GB_IS_PLAYER_BOSS_OF_A_BIKER_GANG(PLAYER_ID())
|
|
TEXT_LABEL_63 tlOfficeName = GET_MP_LONG_STRING_CHARACTER_STAT(MP_STAT_GB_OFFICE_NAME, MP_STAT_GB_OFFICE_NAME2)
|
|
IF IS_STRING_NULL_OR_EMPTY(tlOfficeName)
|
|
STRING sDefaultOrgName = GET_DEFAULT_GANG_NAME(PLAYER_ID(), TRUE)
|
|
GB_SET_OFFICE_NAME(sDefaultOrgName, TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PROPERTY_OFFICE(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iCurrentlyInsideProperty)
|
|
AND IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_IN_OWNED_PROPERTY)
|
|
AND bUpgradingOffice
|
|
AND NOT bUpgradingOfficeModshop
|
|
IF IS_PLAYER_IN_APARTMENT_WITH_BUDDY()
|
|
AND NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED_WITH_BUDDY)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED_WITH_BUDDY)
|
|
ELSE
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED_WITH_BUDDY)
|
|
PRINTLN("COMPLETE_INTERIOR_PURCHASE: PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED_WITH_BUDDY set FALSE")
|
|
ENDIF
|
|
|
|
IF NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS , PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED )
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS , PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED )
|
|
ENDIF
|
|
IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PREVIEW)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PREVIEW)
|
|
PRINTLN("COMPLETE_INTERIOR_PURCHASE: PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PREVIEW set FALSE")
|
|
ENDIF
|
|
|
|
IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_CANCEL_PREVIEW)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_CANCEL_PREVIEW)
|
|
PRINTLN("COMPLETE_INTERIOR_PURCHASE: PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_CANCEL_PREVIEW set FALSE")
|
|
ENDIF
|
|
|
|
IF NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_RENOVATE)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_RENOVATE)
|
|
ENDIF
|
|
|
|
g_iCustomAptVariantPIM = iStyle
|
|
SET_UPDATE_CUSTOM_APT(TRUE)
|
|
ELIF bUpgradingOffice
|
|
g_iCustomAptVariantPIM = iStyle
|
|
IF NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_RENOVATE)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_OFFICE_RENOVATE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SET_PLAYER_OWNS_OFFICE(TRUE)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: office \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant: NONE")
|
|
ENDIF
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_CLUBHOUSE
|
|
BOOL bOwnsClubhouse
|
|
INT iForceDisplayUpdatedSlot
|
|
//Print a ticker the first time we purchase an Clubhouse
|
|
IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_CLUBHOUSE) <= 0
|
|
bOwnsClubhouse = FALSE
|
|
ELSE
|
|
bOwnsClubhouse = TRUE
|
|
ENDIF
|
|
|
|
//#2829938
|
|
SET_PLAYER_OWNS_CLUBHOUSE(TRUE)
|
|
|
|
IF NOT bOwnsClubhouse
|
|
|
|
IF NOT GB_IS_PLAYER_MEMBER_OF_A_GANG(PLAYER_ID())
|
|
GB_SET_LOCAL_BIKER_CALL_BIT(eGB_LOCAL_BIKER_CALL_BITSET_NOTIFICATION_BUY_CLUBHOUSE)
|
|
ENDIF
|
|
IF NOT GB_IS_PLAYER_MEMBER_OF_A_GANG(PLAYER_ID())
|
|
AND GB_GET_NUM_BOSSES_IN_SESSION() < GB_GET_MAX_NUM_GANGS()
|
|
AND NOT NETWORK_IS_ACTIVITY_SESSION()
|
|
AND NOT GB_IS_VIP_GAMEPLAY_DISABLED_FOR_PLAYER(PLAYER_ID())
|
|
AND NOT IS_PLAYER_ON_MISSION_BLOCKING_GANG_CREATION()
|
|
IF GB_IS_LOCAL_PLAYER_BOSS_OF_A_GANG()
|
|
GB_BOSS_RETIRE(FALSE)
|
|
ENDIF
|
|
GB_BOSS_CREATE_GANG(TRUE, GT_BIKER)
|
|
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(g_sClubhouseDataStruct.tl63NewSignage)
|
|
GB_SET_ORGANIZATION_NAME(g_sClubhouseDataStruct.tl63NewSignage,GB_ORGANISATION_NAME_TYPE_CLUBHOUSE, TRUE)
|
|
GB_SET_MC_CLUBHOUSE_NAME(g_sClubhouseDataStruct.tl63NewSignage, TRUE)
|
|
//GB_SETUP_AFTER_NAMING_GANG(GBKeyBoardData)
|
|
GB_SEND_NAME_CHANGE_EVENT()
|
|
ELSE
|
|
TEXT_LABEL_63 tlClubhouseName = GET_MP_LONG_STRING_CHARACTER_STAT(MP_STAT_MC_CLBHOSE_NAME, MP_STAT_MC_CLBHOSE_NAME2)
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(tlClubhouseName)
|
|
GB_SET_ORGANIZATION_NAME(tlClubhouseName,GB_ORGANISATION_NAME_TYPE_CLUBHOUSE, TRUE)
|
|
GB_SET_MC_CLUBHOUSE_NAME(tlClubhouseName, TRUE)
|
|
ELSE
|
|
GB_SET_ORGANIZATION_NAME(GET_DEFAULT_BIKER_GANG_NAME(),GB_ORGANISATION_NAME_TYPE_CLUBHOUSE, TRUE)
|
|
GB_SET_MC_CLUBHOUSE_NAME(GET_DEFAULT_BIKER_GANG_NAME(), TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
TEXT_LABEL_63 stName = GET_MP_LONG_STRING_CHARACTER_STAT(MP_STAT_GB_GANG_NAME, MP_STAT_GB_GANG_NAME2)
|
|
IF IS_STRING_NULL_OR_EMPTY(stName)
|
|
// IF NOT IS_TEMP_PASSIVE_MODE_ENABLED()
|
|
// SET_TEMP_PASSIVE_MODE()
|
|
// ENDIF
|
|
ELSE
|
|
CLEANUP_TEMP_PASSIVE_MODE()
|
|
GB_SET_ORGANIZATION_NAME_ON_ENTRY_TO_FM()
|
|
GB_SET_OFFICE_NAME_ON_ENTRY_TO_FM()
|
|
GB_SET_MC_CLUBHOUSE_NAME_ON_ENTRY_TO_FM()
|
|
ENDIF
|
|
|
|
CDEBUG1LN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: GB_BOSS_CREATE_GANG \"", stName, "\", GT_BIKER")
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: don't call GB_BOSS_CREATE_GANG")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_CONTACT_IN_PHONEBOOK(CHAR_BIKER_CH1, MULTIPLAYER_BOOK)
|
|
BOOL bDisplay = FALSE
|
|
// INT iStatInt = GET_MP_INT_CHARACTER_STAT(MP_STAT_FM_NON_MS_HELP_TEXT8)
|
|
// IF NOT IS_BIT_SET(iStatInt, BI_FM_NMH11_UNLOCKED_PERSONAL_bikerANT)
|
|
// SET_BIT(iStatInt, BI_FM_NMH11_UNLOCKED_PERSONAL_bikerANT)
|
|
// SET_MP_INT_CHARACTER_STAT(MP_STAT_FM_NON_MS_HELP_TEXT8, iStatInt)
|
|
// bDisplay = TRUE
|
|
// ENDIF
|
|
ADD_CONTACT_TO_PHONEBOOK(CHAR_BIKER_CH1,MULTIPLAYER_BOOK,bDisplay)
|
|
CPRINTLN(DEBUG_INTERNET, "[BIKER_CONTACT] MAINTAIN_ADD_BIKER_CLUBHOUSE_CONTACT - ADD_CONTACT_TO_PHONEBOOK(", g_sCharacterSheetAll[CHAR_BIKER_CH1].label, ", bDisplay:", GET_STRING_FROM_BOOL(bDisplay), ")")
|
|
ENDIF
|
|
IF IS_CONTACT_IN_PHONEBOOK(CHAR_MP_RAY_LAVOY,MULTIPLAYER_BOOK)
|
|
REMOVE_CONTACT_FROM_INDIVIDUAL_PHONEBOOK(CHAR_MP_RAY_LAVOY, MULTIPLAYER_BOOK)
|
|
CPRINTLN(DEBUG_INTERNET, "[BIKER_CONTACT] MAINTAIN_ADD_BIKER_CLUBHOUSE_CONTACT - REMOVE_CONTACT_FROM_INDIVIDUAL_PHONEBOOK(", g_sCharacterSheetAll[CHAR_MP_RAY_LAVOY].label, ") - url:bugstar:2954910 - Can we replace the SecuroServ contact with the new Clubhouse contact on becoming a Biker President")
|
|
ENDIF
|
|
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_CLUBHOUSE, iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY DETAIL TYPE:", mpProperties[iBuyPropertyIndex].iType)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY SIZE TYPE:", GET_PROPERTY_SIZE_TYPE(iBuyPropertyIndex))
|
|
INCREMENT_MP_INT_CHARACTER_STAT(MP_STAT_NO_PROPERTIES_UNLOCK)
|
|
IF NOT bUpgradingClubhouse
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = 0
|
|
ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: value:", g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_CLUBHOUSE_VALUE,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: value ignored (upgrading clubhouse)")
|
|
ENDIF
|
|
|
|
INT iWall, iHanging, iFurniture, iColourScheme, iFont, iFontColour, iEmblem, iHideSinage, iGunLocker, iGarage
|
|
GET_SCALEFORM_CLUBHOUSE_DATA(iBuyPropertyIndex, iWall, iHanging, iFurniture, iColourScheme, iFont, iFontColour, iEmblem, iHideSinage, iGunLocker, iGarage)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iColourScheme:", iColourScheme)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: iGunLocker: ", iGunLocker, " iGarage: ", iGarage)
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iWall)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_WALL, 1)
|
|
ELSE
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_WALL, 0)
|
|
ENDIF
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iHanging)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_HANGING, 1)
|
|
ELSE
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_HANGING, 0)
|
|
ENDIF
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iFurniture)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_FURNATURE, 1)
|
|
ELSE
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_FURNATURE, 0)
|
|
ENDIF
|
|
|
|
SET_INTERIOR_STAT_FOR_CUSTOM_APT(iResultSlot, iColourScheme)
|
|
|
|
IF GET_BASE_PROPERTY_FROM_PROPERTY(iBuyPropertyIndex) = PROPERTY_CLUBHOUSE_1_BASE_A
|
|
//SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_PERSONNEL, 1)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_CLUBHOUSE_TRADITIONAL)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY_BROADCAST_BS2_CLUBHOUSE_TRADITIONAL TRUE")
|
|
ELIF GET_BASE_PROPERTY_FROM_PROPERTY(iBuyPropertyIndex) = PROPERTY_CLUBHOUSE_7_BASE_B
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_CLUBHOUSE_TRADITIONAL)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY_BROADCAST_BS2_CLUBHOUSE_TRADITIONAL FALSE")
|
|
ELSE
|
|
//
|
|
ENDIF
|
|
|
|
// IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_Clubhouse_PA_GENDER_SET)
|
|
// CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_Clubhouse_PA_GENDER_SET)
|
|
// ENDIF
|
|
|
|
// IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_Clubhouse_PA_NEW_CLOTHES)
|
|
// CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_Clubhouse_PA_NEW_CLOTHES)
|
|
// ENDIF
|
|
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_FONT, iFont)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_COLOUR, iFontColour)
|
|
|
|
GlobalPlayerBD_FM_3[NATIVE_TO_INT(PLAYER_ID())].iClubhouseNameFont = iFont
|
|
GlobalPlayerBD_FM_3[NATIVE_TO_INT(PLAYER_ID())].iClubhouseNameFontColour = iFontColour
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE (MC): iFont: ", iFont)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE (MC): iColour: ", iFontColour)
|
|
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_EMBLEM, iEmblem)
|
|
GlobalPlayerBD_FM_3[NATIVE_TO_INT(PLAYER_ID())].iClubhouseEmblem = iEmblem
|
|
PRINTLN("[CREW_EMBLEM] BUY_MP_PROPERTY_FROM_WEBSITE - Setting emblem to: ", GlobalPlayerBD_FM_3[NATIVE_TO_INT(PLAYER_ID())].iClubhouseEmblem)
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iHideSinage)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_SINAGEHIDE, 1)
|
|
ELSE
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_SINAGEHIDE, 0)
|
|
ENDIF
|
|
|
|
GlobalPlayerBD_FM_3[NATIVE_TO_INT(PLAYER_ID())].bClubhouseHideName = iHideSinage
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE (MC): iEmblem: ", iEmblem)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE (MC): iHideSinage: ", iHideSinage)
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGunLocker)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_GUNLOCKER, 1)
|
|
ELSE
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_GUNLOCKER, 0)
|
|
ENDIF
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGarage)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_GARAGE, 1)
|
|
ELSE
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_GARAGE, 0)
|
|
ENDIF
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iWall)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_WALL, 1)
|
|
ELSE
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_WALL, 0)
|
|
ENDIF
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iHanging)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_HANGING, 1)
|
|
ELSE
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_HANGING, 0)
|
|
ENDIF
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iFurniture)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_FURNATURE, 1)
|
|
ELSE
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_CLBHOS_FURNATURE, 0)
|
|
ENDIF
|
|
|
|
IF !bUpgradingClubhouse
|
|
IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_GUN_VAULT_DOOR_OPENED)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_GUN_VAULT_DOOR_OPENED)
|
|
ENDIF
|
|
IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_SAFE_VAULT_DOOR_OPENED)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_SAFE_VAULT_DOOR_OPENED)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF !HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGunLocker)
|
|
IF SHOULD_ALLOW_DISABLE_WEAPON_LOADOUT_FROM_INTERNET()
|
|
SET_CUSTOM_WEAPON_LOADOUT(FALSE)
|
|
RESET_CUSTOM_WEAPON_LOADOUT_STATS()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iPropertyVariant[iResultSlot] = iCustomAptVariant
|
|
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(g_sClubhouseDataStruct.tl63NewSignage)
|
|
IF GB_IS_PLAYER_BOSS_OF_A_BIKER_GANG(PLAYER_ID())
|
|
OR NOT GB_IS_PLAYER_MEMBER_OF_A_GANG(PLAYER_ID())
|
|
GB_SET_ORGANIZATION_NAME(g_sClubhouseDataStruct.tl63NewSignage,GB_ORGANISATION_NAME_TYPE_CLUBHOUSE, TRUE)
|
|
GB_SET_MC_CLUBHOUSE_NAME(g_sClubhouseDataStruct.tl63NewSignage, TRUE)
|
|
//GB_SETUP_AFTER_NAMING_GANG(GBKeyBoardData)
|
|
GB_SEND_NAME_CHANGE_EVENT()
|
|
ELSE
|
|
GB_SET_MC_CLUBHOUSE_NAME(g_sClubhouseDataStruct.tl63NewSignage, TRUE)
|
|
ENDIF
|
|
ELIF NOT GB_IS_PLAYER_BOSS_OF_A_BIKER_GANG(PLAYER_ID())
|
|
TEXT_LABEL_63 tlClubhouseName = GET_MP_LONG_STRING_CHARACTER_STAT(MP_STAT_MC_CLBHOSE_NAME, MP_STAT_MC_CLBHOSE_NAME2)
|
|
IF IS_STRING_NULL_OR_EMPTY(tlClubhouseName)
|
|
GB_SET_MC_CLUBHOUSE_NAME(GET_DEFAULT_BIKER_GANG_NAME(), TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PROPERTY_CLUBHOUSE(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iCurrentlyInsideProperty)
|
|
AND IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_IN_OWNED_PROPERTY)
|
|
AND bUpgradingClubhouse
|
|
IF IS_PLAYER_IN_APARTMENT_WITH_BUDDY()
|
|
AND NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED_WITH_BUDDY)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED_WITH_BUDDY)
|
|
ELSE
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED_WITH_BUDDY)
|
|
PRINTLN("COMPLETE_INTERIOR_PURCHASE: PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED_WITH_BUDDY set FALSE")
|
|
ENDIF
|
|
|
|
IF NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS , PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED )
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS , PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PURCHASED )
|
|
ENDIF
|
|
IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PREVIEW)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PREVIEW)
|
|
PRINTLN("COMPLETE_INTERIOR_PURCHASE: PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_PREVIEW set FALSE")
|
|
ENDIF
|
|
|
|
IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_CANCEL_PREVIEW)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBS,PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_CANCEL_PREVIEW)
|
|
PRINTLN("COMPLETE_INTERIOR_PURCHASE: PROPERTY_BROADCAST_BS_PLAYER_APT_VARIANT_CANCEL_PREVIEW set FALSE")
|
|
ENDIF
|
|
|
|
IF NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_Clubhouse_RENOVATE)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_Clubhouse_RENOVATE)
|
|
ENDIF
|
|
|
|
g_iCustomAptVariantPIM = iColourScheme
|
|
SET_UPDATE_CUSTOM_APT(TRUE)
|
|
ELIF bUpgradingClubhouse
|
|
g_iCustomAptVariantPIM = iColourScheme
|
|
IF NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_Clubhouse_RENOVATE)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSTwo,PROPERTY_BROADCAST_BS2_Clubhouse_RENOVATE)
|
|
ENDIF
|
|
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iPropertyVariant[PROPERTY_OWNED_SLOT_CLUBHOUSE] = g_iCustomAptVariantPIM
|
|
ENDIF
|
|
IF NOT bOwnsClubhouse
|
|
IF GET_OWNED_PROPERTY(0) <= 0
|
|
IF IS_PERSONAL_VEHICLE_DRIVEABLE_IN_FREEMODE()
|
|
IF DOES_ENTITY_EXIST(MPGlobalsAmbience.vehPersonalVehicle)
|
|
MPSV_GET_DISPLAY_SLOT_FROM_SAVE_SLOT(CURRENT_SAVED_VEHICLE_SLOT(),iForceDisplayUpdatedSlot)
|
|
IF iForceDisplayUpdatedSlot <= 0
|
|
iForceDisplayUpdatedSlot = MP_SAVE_VEHICLE_GET_EMPTY_DISPLAY_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,GET_ENTITY_MODEL(MPGlobalsAmbience.vehPersonalVehicle))
|
|
IF iForceDisplayUpdatedSlot >= 0
|
|
PRINTLN("Forcing Current bike slot display to #",iForceDisplayUpdatedSlot," when buying clubhouse")
|
|
MPSV_SET_DISPLAY_SLOT(iForceDisplayUpdatedSlot,CURRENT_SAVED_VEHICLE_SLOT())
|
|
IF iForceDisplayUpdatedSlot != 0
|
|
MPSV_SET_DISPLAY_SLOT(0,-1)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_APT_6
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_5, iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY DETAIL TYPE:", mpProperties[iBuyPropertyIndex].iType)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY SIZE TYPE:", GET_PROPERTY_SIZE_TYPE(iBuyPropertyIndex))
|
|
INCREMENT_MP_INT_CHARACTER_STAT(MP_STAT_NO_PROPERTIES_UNLOCK)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = 0
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_VALUE_5,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
|
|
|
|
IF IS_PROPERTY_CUSTOM_APARTMENT(iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant:", iCustomAptVariant)
|
|
SET_INTERIOR_STAT_FOR_CUSTOM_APT(iResultSlot, iCustomAptVariant)
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iPropertyVariant[iResultSlot] = iCustomAptVariant
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant: NONE")
|
|
ENDIF
|
|
IF propval = 0
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_STAT_FREE_PROPERTY_SLOT_5, TRUE)
|
|
ELSE
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_STAT_FREE_PROPERTY_SLOT_5, FALSE)
|
|
ENDIF
|
|
#IF FEATURE_SUMMER_2020
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_APT_7
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_6, iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY DETAIL TYPE:", mpProperties[iBuyPropertyIndex].iType)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY SIZE TYPE:", GET_PROPERTY_SIZE_TYPE(iBuyPropertyIndex))
|
|
INCREMENT_MP_INT_CHARACTER_STAT(MP_STAT_NO_PROPERTIES_UNLOCK)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = 0
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_VALUE_6,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
|
|
|
|
IF IS_PROPERTY_CUSTOM_APARTMENT(iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant:", iCustomAptVariant)
|
|
SET_INTERIOR_STAT_FOR_CUSTOM_APT(iResultSlot, iCustomAptVariant)
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iPropertyVariant[iResultSlot] = iCustomAptVariant
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant: NONE")
|
|
ENDIF
|
|
IF propval = 0
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_FREE_OWNED_SLOT_APT_7, TRUE)
|
|
ELSE
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_FREE_OWNED_SLOT_APT_7, FALSE)
|
|
ENDIF
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_APT_8
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_7, iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY DETAIL TYPE:", mpProperties[iBuyPropertyIndex].iType)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY SIZE TYPE:", GET_PROPERTY_SIZE_TYPE(iBuyPropertyIndex))
|
|
INCREMENT_MP_INT_CHARACTER_STAT(MP_STAT_NO_PROPERTIES_UNLOCK)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = 0
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_VALUE_7,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
|
|
|
|
IF IS_PROPERTY_CUSTOM_APARTMENT(iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant:", iCustomAptVariant)
|
|
SET_INTERIOR_STAT_FOR_CUSTOM_APT(iResultSlot, iCustomAptVariant)
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iPropertyVariant[iResultSlot] = iCustomAptVariant
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant: NONE")
|
|
ENDIF
|
|
IF propval = 0
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_FREE_OWNED_SLOT_APT_8, TRUE)
|
|
ELSE
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_FREE_OWNED_SLOT_APT_8, FALSE)
|
|
ENDIF
|
|
#ENDIF
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_APT_9
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_8, iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY DETAIL TYPE:", mpProperties[iBuyPropertyIndex].iType)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY SIZE TYPE:", GET_PROPERTY_SIZE_TYPE(iBuyPropertyIndex))
|
|
INCREMENT_MP_INT_CHARACTER_STAT(MP_STAT_NO_PROPERTIES_UNLOCK)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = 0
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_VALUE_8,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
|
|
|
|
IF IS_PROPERTY_CUSTOM_APARTMENT(iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant:", iCustomAptVariant)
|
|
SET_INTERIOR_STAT_FOR_CUSTOM_APT(iResultSlot, iCustomAptVariant)
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iPropertyVariant[iResultSlot] = iCustomAptVariant
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant: NONE")
|
|
ENDIF
|
|
IF propval = 0
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_FREE_OWNED_SLOT_APT_9, TRUE)
|
|
ELSE
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_FREE_OWNED_SLOT_APT_9, FALSE)
|
|
ENDIF
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_APT_10 //MAX_OWNED_PROPERTIES //CDM PROPERTY STAT UPDATE //OLD PROPERTIES
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_9, iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY DETAIL TYPE:", mpProperties[iBuyPropertyIndex].iType)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY SIZE TYPE:", GET_PROPERTY_SIZE_TYPE(iBuyPropertyIndex))
|
|
INCREMENT_MP_INT_CHARACTER_STAT(MP_STAT_NO_PROPERTIES_UNLOCK)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = 0
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_VALUE_9,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
|
|
|
|
IF IS_PROPERTY_CUSTOM_APARTMENT(iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant:", iCustomAptVariant)
|
|
SET_INTERIOR_STAT_FOR_CUSTOM_APT(iResultSlot, iCustomAptVariant)
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iPropertyVariant[iResultSlot] = iCustomAptVariant
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant: NONE")
|
|
ENDIF
|
|
IF propval = 0
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_FREE_OWNED_SLOT_APT_10, TRUE)
|
|
ELSE
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_FREE_OWNED_SLOT_APT_10, FALSE)
|
|
ENDIF
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1
|
|
BOOL bOwnsOfficeGarage
|
|
INT iForceDisplayUpdatedSlot
|
|
//Print a ticker the first time we purchase an Clubhouse
|
|
IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1) <= 0
|
|
bOwnsOfficeGarage = FALSE
|
|
SET_BIT(g_iOfficePersonalAssistantSpeechBitset, OFF_PA_SPEECH_GARAGE)
|
|
ELSE
|
|
bOwnsOfficeGarage = TRUE
|
|
ENDIF
|
|
INT iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop
|
|
GET_SCALEFORM_OFFICE_DATA(iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop)
|
|
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR1, iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY DETAIL TYPE:", mpProperties[iBuyPropertyIndex].iType)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: PROPERTY SIZE TYPE:", GET_PROPERTY_SIZE_TYPE(iBuyPropertyIndex))
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = 0
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR1_VALUE,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iGarage1Style:", iGarage1Style, " iGarage1Lighting:", iGarage1Lighting, " iGarage1Number:", iGarage1Number)
|
|
SET_INTERIOR_STAT_FOR_CUSTOM_APT(iResultSlot, iGarage1Style)
|
|
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR1_LIGHTING, iGarage1Lighting)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR1_NUMBERING, iGarage1Number)
|
|
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iPropertyVariant[iResultSlot] = iGarage1Style
|
|
|
|
IF GET_PROPERTY_RESTRICTED_SLOT(iBuyPropertyIndex) = GET_PROPERTY_RESTRICTED_SLOT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iCurrentlyInsideProperty)
|
|
AND bUpgradingOfficeGarage
|
|
SET_PLAYER_RENOVATED_OFFICE_GARAGE_FLAG(TRUE)
|
|
ENDIF
|
|
IF NOT bOwnsOfficeGarage
|
|
IF GET_OWNED_PROPERTY(0) <= 0
|
|
IF IS_PERSONAL_VEHICLE_DRIVEABLE_IN_FREEMODE()
|
|
IF DOES_ENTITY_EXIST(MPGlobalsAmbience.vehPersonalVehicle)
|
|
MPSV_GET_DISPLAY_SLOT_FROM_SAVE_SLOT(CURRENT_SAVED_VEHICLE_SLOT(),iForceDisplayUpdatedSlot)
|
|
IF iForceDisplayUpdatedSlot <= 0
|
|
iForceDisplayUpdatedSlot = MP_SAVE_VEHICLE_GET_EMPTY_DISPLAY_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,GET_ENTITY_MODEL(MPGlobalsAmbience.vehPersonalVehicle))
|
|
IF iForceDisplayUpdatedSlot >= 0
|
|
PRINTLN("Forcing Current personal vehicle display to #",iForceDisplayUpdatedSlot," when buying an office garage")
|
|
MPSV_SET_DISPLAY_SLOT(iForceDisplayUpdatedSlot,CURRENT_SAVED_VEHICLE_SLOT())
|
|
IF iForceDisplayUpdatedSlot != 0
|
|
MPSV_SET_DISPLAY_SLOT(0,-1)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2
|
|
INT iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop
|
|
GET_SCALEFORM_OFFICE_DATA(iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop)
|
|
|
|
IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2) <= 0
|
|
SET_BIT(g_iOfficePersonalAssistantSpeechBitset, OFF_PA_SPEECH_FLOORS)
|
|
ENDIF
|
|
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR2, iBuyPropertyIndex)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = 0
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR2_VALUE,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iGarage2Style:", iGarage2Style, " iGarage2Lighting:", iGarage2Lighting, " iGarage2Number:", iGarage2Number)
|
|
SET_INTERIOR_STAT_FOR_CUSTOM_APT(iResultSlot, iGarage2Style)
|
|
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR2_LIGHTING, iGarage2Lighting)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR2_NUMBERING, iGarage2Number)
|
|
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iPropertyVariant[iResultSlot] = iGarage2Style
|
|
|
|
IF GET_PROPERTY_RESTRICTED_SLOT(iBuyPropertyIndex) = GET_PROPERTY_RESTRICTED_SLOT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iCurrentlyInsideProperty)
|
|
AND bUpgradingOfficeGarage
|
|
SET_PLAYER_RENOVATED_OFFICE_GARAGE_FLAG(TRUE)
|
|
ENDIF
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3
|
|
INT iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop
|
|
GET_SCALEFORM_OFFICE_DATA(iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop)
|
|
|
|
IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3) <= 0
|
|
SET_BIT(g_iOfficePersonalAssistantSpeechBitset, OFF_PA_SPEECH_FLOORS)
|
|
ENDIF
|
|
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR3, iBuyPropertyIndex)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = 0
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR3_VALUE,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
PRINTLN("PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3- iGarage3Style: ", iGarage3Style, " iGarage3Lighting: ", iGarage3Lighting, " iGarage3Number: ", iGarage3Number)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iGarage3Style:", iGarage3Style, " iGarage3Lighting:", iGarage3Lighting, " iGarage3Number:", iGarage3Number)
|
|
SET_INTERIOR_STAT_FOR_CUSTOM_APT(iResultSlot, iGarage3Style)
|
|
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR3_LIGHTING, iGarage3Lighting)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR3_NUMBERING, iGarage3Number)
|
|
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iPropertyVariant[iResultSlot] = iGarage3Style
|
|
|
|
IF GET_PROPERTY_RESTRICTED_SLOT(iBuyPropertyIndex) = GET_PROPERTY_RESTRICTED_SLOT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iCurrentlyInsideProperty)
|
|
AND bUpgradingOfficeGarage
|
|
SET_PLAYER_RENOVATED_OFFICE_GARAGE_FLAG(TRUE)
|
|
ENDIF
|
|
ELIF iResultSlot = PROPERTY_OWNED_SLOT_IE_WAREHOUSE
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_IE_WAREHOUSE, iBuyPropertyIndex)
|
|
INCREMENT_MP_INT_CHARACTER_STAT(MP_STAT_NO_PROPERTIES_UNLOCK)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = 0
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_IE_WAREHOUSE_VALUE,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
|
|
IF IS_PROPERTY_CUSTOM_APARTMENT(iBuyPropertyIndex)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant:", iCustomAptVariant)
|
|
SET_INTERIOR_STAT_FOR_CUSTOM_APT(iResultSlot, iCustomAptVariant)
|
|
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iPropertyVariant[iResultSlot] = iCustomAptVariant
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\", iBuyPropertyIndex:", iBuyPropertyIndex, " iCustomAptVariant: NONE")
|
|
ENDIF
|
|
// #IF FEATURE_TUNER
|
|
// ELIF iResultSlot = PROPERTY_OWNED_SLOT_AUTOSHOP_PROPERTY //MAX_OWNED_PROPERTIES
|
|
// SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_AUTO_SHOP_OWNED, iBuyPropertyIndex)
|
|
// INCREMENT_MP_INT_CHARACTER_STAT(MP_STAT_NO_PROPERTIES_UNLOCK)
|
|
// IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
// g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
// ELSE
|
|
// g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = 0
|
|
// ENDIF
|
|
// SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_AUTO_SHOP_VALUE,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
// ELSE
|
|
// #ENDIF
|
|
// #IF FEATURE_FIXER
|
|
// ELIF iResultSlot = PROPERTY_OWNED_SLOT_SECURITY_OFFICE_GAR //MAX_OWNED_PROPERTIES //CDM PROPERTY STAT UPDATE
|
|
// SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_SECURITY_OFFICE, iBuyPropertyIndex)
|
|
// INCREMENT_MP_INT_CHARACTER_STAT(MP_STAT_NO_PROPERTIES_UNLOCK)
|
|
// IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
// g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
// ELSE
|
|
// g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = 0
|
|
// ENDIF
|
|
// SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_SECURITY_OFFICE_VALUE,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
// ELSE
|
|
// #ENDIF
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: unknown iResultSlot: \"", GET_STRING_FROM_PROPERTY_OWNED_SLOT(iResultSlot), "\"")
|
|
ENDIF
|
|
|
|
SWITCH GET_PROPERTY_SIZE_TYPE(iBuyPropertyIndex)
|
|
CASE PROP_SIZE_TYPE_SMALL_APT
|
|
CASE PROP_SIZE_TYPE_MED_APT
|
|
CASE PROP_SIZE_TYPE_LARGE_APT
|
|
SET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_BUY_APPARTMENT, TRUE)
|
|
SET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_BUY_GARAGE , TRUE)
|
|
FALLTHRU// because all houses have garages
|
|
CASE PROP_SIZE_TYPE_2_GAR
|
|
CASE PROP_SIZE_TYPE_6_GAR
|
|
CASE PROP_SIZE_TYPE_10_GAR
|
|
SET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_BUY_GARAGE , TRUE)
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
|
|
IF SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
IF HAS_MP_CRIMINAL_ENTERPRISE_PREMIUM_OR_STARTER_ACCESS()
|
|
SWITCH iBuyPropertyIndex
|
|
CASE PROPERTY_OFFICE_2_BASE SET_PLAYER_PURCHASED_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT(CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_PROPERTY_MAZE_BANK_WEST_EXECUTIVE_OFFICE) BREAK
|
|
CASE PROPERTY_CLUBHOUSE_4_BASE_A SET_PLAYER_PURCHASED_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT(CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_PROPERTY_GREAT_CHAPARRAL_BIKER_CLUBHOUSE) BREAK
|
|
CASE PROPERTY_LOW_APT_2 SET_PLAYER_PURCHASED_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT(CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_PROPERTY_1561_SAN_VITAS_STREET_APARTMENT) BREAK
|
|
CASE PROPERTY_GARAGE_NEW_19 SET_PLAYER_PURCHASED_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT(CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_PROPERTY_1337_EXCEPTIONALISTS_WAY_10_CAR_GARAGE) BREAK
|
|
|
|
DEFAULT
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: unknown free Criminal Enterprise Starter Pack property ", iBuyPropertyIndex)
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
ENDIF
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Special","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
//REQUEST_SAVE(STAT_SAVETYPE_END_SHOPPING)
|
|
//REQUEST_SAVE(STAT_SAVETYPE_SCRIPT_MP_GLOBALS)
|
|
bBrowserShoppingSavePending = TRUE
|
|
CHECK_AMERICAN_DREAM_ACHIEVEMENT()
|
|
//bBoughtProperty = TRUE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: purchase complete, index #", iBuyPropertyIndex)
|
|
IF IS_PROPERTY_OFFICE(iBuyPropertyIndex)
|
|
POPULATE_MP_EXEC_PROPERTY_SITE_PIN_MAP(mov, TRUE)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_SUCCESS", TRUE, bUpgradingOffice, FALSE, FALSE, rpmt_0)
|
|
ELIF IS_PROPERTY_CLUBHOUSE(iBuyPropertyIndex)
|
|
|
|
#IF FEATURE_GEN9_STANDALONE
|
|
// if this is a purchase rather than an upgrade, report activity as complete
|
|
IF NOT bUpgradingClubhouse
|
|
NETWORK_POST_UDS_ACTIVITY_END("PurchasePropertyClubhouse", UDS_ACTIVITY_END_REASON_COMPLETED)
|
|
ENDIF
|
|
#ENDIF // FEATURE_GEN9_STANDALONE
|
|
|
|
#IF FEATURE_DLC_1_2022
|
|
IF !bUpgradingClubhouse
|
|
CLEAR_BIKER_CLIENT_VEHICLE_STATS()
|
|
CLEAR_BIKER_CLIENT_DELIVERY_DATA()
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
POPULATE_MP_BIKER_PROPERTY_SITE_PIN_MAP(mov, TRUE)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_SUCCESS", TRUE, bUpgradingClubhouse, FALSE, FALSE, rpmt_0)
|
|
ELIF IS_PROPERTY_OFFICE_GARAGE(iBuyPropertyIndex)
|
|
POPULATE_MP_EXEC_PROPERTY_SITE_PIN_MAP(mov, TRUE)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_SUCCESS", TRUE, bUpgradingOfficeGarage, FALSE, FALSE, rpmt_0)
|
|
ELSE
|
|
POPULATE_MP_PROPERTY_SITE_PIN_MAP(mov)
|
|
ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: purchase complete, refreshing pin map")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
iBoughtPropertyIndex = iBuyPropertyIndex
|
|
eBoughtFactoryIndex = FACTORY_ID_INVALID
|
|
eBoughtHangarIndex = HANGAR_ID_INVALID
|
|
eBoughtDefunctBaseIndex = DEFUNCT_BASE_ID_INVALID
|
|
eBoughtNightclubIndex = NIGHTCLUB_ID_INVALID
|
|
eBoughtArenaIndex = ARENA_GARAGE_ID_INVALID
|
|
eBoughtArcadeIndex = ARCADE_PROPERTY_ID_INVALID
|
|
eBoughtCasinoIndex = CASINO_APARTMENT_ID_INVALID
|
|
eBoughtAutoShopIndex = AUTO_SHOP_PROPERTY_ID_INVALID
|
|
#IF FEATURE_FIXER
|
|
eBoughtFixerHQIndex = FIXER_HQ_ID_INVALID
|
|
#ENDIF
|
|
iBoughtCasinoPreset = -1
|
|
REQUEST_SAVE(SSR_REASON_VEH_STORAGE_UPDATE,STAT_SAVETYPE_CRITICAL)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_PROPERTY_FROM_WEBSITE: purchase complete, resetting iCustomAptVariant to 1")
|
|
ENDPROC
|
|
|
|
PROC BUY_MP_FACTORY_FROM_WEBSITE(FACTORY_ID eFactoryId, INT &iResultSlot)
|
|
|
|
INT minPendingTransactionValue, finalPendingTransactionValue, iOwnedFactoryValue
|
|
|
|
INT iBankBalance = NETWORK_GET_VC_BANK_BALANCE()
|
|
INT iWalletBalance = NETWORK_GET_VC_WALLET_BALANCE()
|
|
|
|
IF NOT IS_FM_TYPE_UNLOCKED(FMMC_TYPE_CUSTOM_CAR_GARAGE)
|
|
IF GET_PLAYER_RANK(GET_PLAYER_INDEX()) < 5
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: purchase failed, player doesn't have sufficient rank (", GET_PLAYER_RANK(GET_PLAYER_INDEX()), ")")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: purchase failed, player pending unlock for sufficient rank")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK_PENDING
|
|
ENDIF
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_1_FACTORY)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
|
|
INT iCurrentMission = GB_GET_PLAYER_CURRENT_GANG_BOSS_MISSION(PLAYER_ID())
|
|
IF (iCurrentMission = FMMC_TYPE_GUNRUNNING_BUY
|
|
OR iCurrentMission = FMMC_TYPE_GUNRUNNING_SELL
|
|
OR iCurrentMission = FMMC_TYPE_GUNRUNNING_DEFEND
|
|
#IF FEATURE_DLC_1_2022
|
|
OR iCurrentMission = FMMC_TYPE_SOURCE_RESEARCH
|
|
#ENDIF)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: purchase failed, player current gang boss mission: ", GANG_BOSS_GET_NAME_FOR_TYPE_FOR_DEBUG_PRINT(iCurrentMission))
|
|
mpPropertySiteFailReason = MPSFR_ON_MISSION
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_1_FACTORY)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
|
|
#IF FEATURE_CASINO_HEIST
|
|
IF GB_GET_CASINO_HEIST_PREP_PLAYER_IS_ON(PLAYER_ID()) = CHV_ARMORED_EQUIPMENT_1
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: purchase failed, player on CHV_ARMORED_EQUIPMENT_1")
|
|
mpPropertySiteFailReason = MPSFR_ON_MISSION
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_1_FACTORY)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
IF NOT NET_GAMESERVER_IS_SESSION_VALID(GET_ACTIVE_CHARACTER_SLOT())
|
|
OR NET_GAMESERVER_IS_SESSION_REFRESH_PENDING()
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: purchase failed - session pending!")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_1_FACTORY)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
TEXT_LABEL_15 tl_15FactoryName = GET_FACTORY_NAME_FROM_ID(eFactoryId)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: trying to purchase factory ", tl_15FactoryName, " #", eFactoryId)
|
|
|
|
INT propval = CEIL(TO_FLOAT(GET_FACTORY_PRICE(eFactoryId))*g_sMPTunables.fPropertyMultiplier)
|
|
IF SHOULD_FACTORY_BE_FREE_FOR_PLAYER(eFactoryId)
|
|
propval = 0
|
|
ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: purchase valid, attempting index ", tl_15FactoryName, " $", propval)
|
|
|
|
minPendingTransactionValue = propval
|
|
|
|
FACTORY_ID eTradeInFactory = GET_OWNED_BUNKER(PLAYER_ID())
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: currently owns factory #", eFactoryId)
|
|
|
|
BOOL bRenovateFactory = FALSE
|
|
IF (eFactoryId = eTradeInFactory)
|
|
IF GET_LOCAL_PLAYER_USING_OFFICE_SEATID() != -1
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: purchase failed - using office seat ", GET_LOCAL_PLAYER_USING_OFFICE_SEATID(), "!")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_1_FACTORY)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
|
|
propval = CALCULATE_COST_OF_BUNKER_INTERIOR_UPGRADES(eFactoryId, sBunker_price_struct)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: renovate ", tl_15FactoryName, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
bRenovateFactory = TRUE
|
|
ELSE
|
|
IF IS_PAID_RESUPPLY_TIMER_RUNNING(BUNKER_SAVE_SLOT)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: purchase failed, paid resupply timer running")
|
|
mpPropertySiteFailReason = MPSFR_PAID_RESUPPLY
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_1_FACTORY)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
|
|
propval += CALCULATE_COST_OF_BUNKER_INTERIOR_UPGRADES(eFactoryId, sBunker_price_struct)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: purchase ", tl_15FactoryName, " for ", eTradeInFactory, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
ENDIF
|
|
|
|
minPendingTransactionValue = propval
|
|
|
|
//is it a debit or refund
|
|
IF eTradeInFactory = FACTORY_ID_INVALID
|
|
OR eTradeInFactory = FACTORY_ID_MAX
|
|
OR bRenovateFactory
|
|
IF minPendingTransactionValue > 0
|
|
//do they have enough money
|
|
// IF (iBankBalance+iWalletBalance) < minPendingTransactionValue
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " <> $", minPendingTransactionValue)
|
|
// IF (minPendingTransactionValue <= 0
|
|
// OR (minPendingTransactionValue > 0 AND ((iBankBalance+iWalletBalance) < minPendingTransactionValue)))
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < minPendingTransactionValue $", minPendingTransactionValue, "]")
|
|
// mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
// SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, TRUE)
|
|
// iCustomAptVariant = 1
|
|
// bCustomInteriorSelected = FALSE
|
|
//
|
|
// TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15FactoryName), minPendingTransactionValue)
|
|
//
|
|
// PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
// EXIT
|
|
// ENDIF
|
|
|
|
IF (minPendingTransactionValue <= 0
|
|
OR (minPendingTransactionValue > 0 AND NOT NETWORK_CAN_SPEND_MONEY(minPendingTransactionValue,FALSE,TRUE,FALSE)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < NETWORK_CAN_SPEND_MONEY:minPendingTransactionValue $", minPendingTransactionValue, "]")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_1_FACTORY)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15FactoryName), minPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
// ENDIF
|
|
ENDIF
|
|
ELSE
|
|
|
|
//is it a debit or refund
|
|
IF minPendingTransactionValue >0
|
|
//do they have enough money
|
|
// IF (iBankBalance+iWalletBalance) < minPendingTransactionValue
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " <> $", minPendingTransactionValue)
|
|
// IF (minPendingTransactionValue <= 0
|
|
// OR (minPendingTransactionValue > 0 AND ((iBankBalance+iWalletBalance) < minPendingTransactionValue)))
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < minPendingTransactionValue $", minPendingTransactionValue, "]")
|
|
// mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
// SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, TRUE)
|
|
// iCustomAptVariant = 1
|
|
// bCustomInteriorSelected = FALSE
|
|
//
|
|
// TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15FactoryName), minPendingTransactionValue)
|
|
//
|
|
// PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
// EXIT
|
|
// ENDIF
|
|
|
|
IF (minPendingTransactionValue <= 0
|
|
OR (minPendingTransactionValue > 0 AND NOT NETWORK_CAN_SPEND_MONEY(minPendingTransactionValue,FALSE,TRUE,FALSE)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < NETWORK_CAN_SPEND_MONEY:minPendingTransactionValue $", minPendingTransactionValue, "]")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_1_FACTORY)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15FactoryName), minPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
// ENDIF
|
|
ENDIF
|
|
|
|
iResultSlot = GET_SAVE_SLOT_FOR_FACTORY(eTradeInFactory)
|
|
|
|
INT iReplaceSpecificPropertySlot
|
|
REPLACE_MP_VEH_OR_PROP_MENU replaceMenu
|
|
WHILE NOT RUN_REPLACE_PROPERTY_MENU(replaceMenu,iResultSlot,ENUM_TO_INT(eFactoryId),iReplaceSpecificPropertySlot,rpmt_1_FACTORY)
|
|
AND DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
//RENDER_BROWSER()
|
|
DISABLE_SELECTOR_THIS_FRAME()
|
|
DISABLE_CELLPHONE_THIS_FRAME_ONLY()
|
|
WAIT(0)
|
|
g_sMenuData.bKeepPhoneForNextDrawMenuCall = TRUE
|
|
ENDWHILE
|
|
|
|
|
|
IF iResultSlot = -1
|
|
mpPropertySiteFailReason = MPSFR_CANCELED
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_1_FACTORY)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
g_iPendingBrowserTimer = g_iBrowserTimer
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
CPRINTLN(DEBUG_INTERNET, "CDM: BUY_MP_FACTORY_FROM_WEBSITE: purchase failed, player backed out of property selection")
|
|
EXIT
|
|
ELSE
|
|
// eTradeInFactory = GET_FACTORY_ID_FROM_FACTORY_SLOT(PLAYER_ID(), iResultSlot)
|
|
iOwnedFactoryValue = GET_FACTORY_SALE_VALUE(eTradeInFactory)
|
|
|
|
finalPendingTransactionValue = propval - iOwnedFactoryValue
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: Player selected iResultSlot ", iResultSlot, ", factory: ", eTradeInFactory, " for trade. propval $", propval, ", iOwnedFactoryValue: ", iOwnedFactoryValue, " Final trans value $", finalPendingTransactionValue)
|
|
ENDIF
|
|
|
|
// Re-check if player can afford based on selected trade-in value
|
|
IF finalPendingTransactionValue > 0
|
|
//do they have enough money
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " + trade:$", iOwnedFactoryValue, " <> $", finalPendingTransactionValue)
|
|
// IF (iBankBalance+iWalletBalance+ GET_FACTORY_SALE_VALUE(eTradeInFactory)) < finalPendingTransactionValue
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash after trade selection [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < finalPendingTransactionValue finalPendingTransactionValue:$", finalPendingTransactionValue, "]")
|
|
// mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
// SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, TRUE)
|
|
// iCustomAptVariant = 1
|
|
// bCustomInteriorSelected = FALSE
|
|
//
|
|
// TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15FactoryName), finalPendingTransactionValue)
|
|
//
|
|
// PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
// EXIT
|
|
// ENDIF
|
|
|
|
IF NOT NETWORK_CAN_SPEND_MONEY(finalPendingTransactionValue, FALSE, TRUE, FALSE)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: purchase failed, player failed on command NETWORK_CAN_SPEND_MONEY")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_1_FACTORY)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15FactoryName), finalPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
INT iDecor, iAccommodation, iFiringRange, iGunLocker, iTransportation
|
|
GET_SCALEFORM_FACTORY_DATA(iDecor, iAccommodation, iFiringRange, iGunLocker, iTransportation)
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
INT iPropval
|
|
IF eFactoryId = eTradeInFactory
|
|
iPropval = 0
|
|
ELSE
|
|
iPropval = CEIL(TO_FLOAT(GET_FACTORY_PRICE(eFactoryId))*g_sMPTunables.fPropertyMultiplier)
|
|
ENDIF
|
|
|
|
BOOL bStarterPackItem = FALSE
|
|
IF SHOULD_FACTORY_BE_FREE_FOR_PLAYER(eFactoryID)
|
|
bStarterPackItem = TRUE
|
|
ENDIF
|
|
|
|
bProcessingBasket = TRUE
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_ADD
|
|
INT iItemId = GET_FACTORY_KEY_FOR_CATALOGUE(eFactoryId, bStarterPackItem)
|
|
INT iInventoryKey = GET_FACTORY_INVENTORY_KEY_FOR_CATALOGUE(5) //bunker
|
|
INT iSellingItemId = 0
|
|
|
|
IF eTradeInFactory != FACTORY_ID_INVALID
|
|
AND eTradeInFactory != FACTORY_ID_MAX
|
|
iSellingItemId = GET_FACTORY_KEY_FOR_CATALOGUE(eTradeInFactory)
|
|
|
|
//for selling factory
|
|
BOOL bSellingFactoryVariation = FALSE
|
|
iOwnedFactoryValue = GET_FACTORY_SALE_VALUE(eTradeInFactory)
|
|
|
|
IF SHOULD_FACTORY_BE_FREE_FOR_PLAYER(eTradeInFactory)
|
|
IF (iOwnedFactoryValue = 0)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: free factory stat to get for \"", GET_FACTORY_NAME_FROM_ID(eTradeInFactory), "\", iOwnedFactoryValue:$FREE")
|
|
bSellingFactoryVariation = TRUE
|
|
iOwnedFactoryValue = 0
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: no free factory stat to get for \"", GET_FACTORY_NAME_FROM_ID(eTradeInFactory), "\", iOwnedFactoryValue:$", iOwnedFactoryValue)
|
|
ENDIF
|
|
ENDIF
|
|
iSellingItemId = GET_FACTORY_KEY_FOR_CATALOGUE(eTradeInFactory, bSellingFactoryVariation)
|
|
|
|
IF (bRenovateFactory)
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Renovating in factory slot \"", GET_FACTORY_NAME_FROM_ID(eTradeInFactory), "\" iSellingItemId ", iSellingItemId, " iItemId ", iItemId, " iOwnedFactoryValue $", iOwnedFactoryValue)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - Trading in factory slot \"", GET_FACTORY_NAME_FROM_ID(eTradeInFactory), "\" iSellingItemId ", iSellingItemId, " iItemId ", iItemId, " iOwnedFactoryValue $", iOwnedFactoryValue)
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL_15 tlOwnedResultSlotFactory = GET_FACTORY_NAME_FROM_ID(eTradeInFactory)
|
|
IF IS_STRING_NULL_OR_EMPTY(tlOwnedResultSlotFactory)
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: label for traded factory[\"", GET_FACTORY_NAME_FROM_ID(eTradeInFactory), "\"] index #", eTradeInFactory, " is empty!")
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: label for traded factory[\"", GET_FACTORY_NAME_FROM_ID(eTradeInFactory), "\"] index #", eTradeInFactory, " is \"", tlOwnedResultSlotFactory, "\"")
|
|
ENDIF
|
|
#ENDIF
|
|
//
|
|
ENDIF
|
|
|
|
INT iProcessSuccess = GENERIC_TRANSACTION_STATE_DEFAULT
|
|
///////////////////////////////////////////
|
|
/// TRANSACTION FOR FACTORY
|
|
WHILE PROCESSING_INTERNET_SHOPPING_BASKET(iProcessSuccess, iPropval, iResultSlot, CATEGORY_INVENTORY_WAREHOUSE, NET_SHOP_ACTION_BUY_WAREHOUSE, iItemId, iInventoryKey, 0, iOwnedFactoryValue, iSellingItemId)
|
|
RENDER_BROWSER()
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(TRUE)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(FALSE)
|
|
|
|
RENDER_BROWSER()
|
|
|
|
SWITCH iProcessSuccess
|
|
CASE GENERIC_TRANSACTION_STATE_FAILED
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: purchase failed, failed to process transaction")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_1_FACTORY)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
BREAK
|
|
CASE GENERIC_TRANSACTION_STATE_SUCCESS
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: success!!")
|
|
BREAK
|
|
DEFAULT
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: purchase failed, unknown iProcessSuccess: \"", iProcessSuccess, "\"")
|
|
EXIT
|
|
BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: ignore NETWORK_REQUEST_BASKET_TRANSACTION")
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: final:$", finalPendingTransactionValue, ", propval $", propval)
|
|
|
|
//Assign the telemetry data
|
|
//Increment the spending stat
|
|
IF finalPendingTransactionValue > 0
|
|
INCREMENT_BY_MP_INT_PLAYER_STAT(MPPLY_INGAMESTORE_MONEYSPENT, finalPendingTransactionValue)
|
|
ENDIF
|
|
|
|
SPENT_ON_BUNKER data
|
|
//Check if we're trading of just buying
|
|
IF (eTradeInFactory = FACTORY_ID_INVALID)
|
|
OR (eTradeInFactory = FACTORY_ID_MAX)
|
|
OR (bRenovateFactory)
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
|
|
INT iFinalPropValue = propval
|
|
IF (sBunker_price_struct.iDecorPrice >= 0)
|
|
SWITCH iDecor
|
|
CASE 0 data.m_style = 3 BREAK //url:bugstar:3770268
|
|
CASE 1 data.m_style = 1 BREAK
|
|
CASE 2 data.m_style = 2 BREAK
|
|
DEFAULT
|
|
data.m_style = iDecor
|
|
BREAK
|
|
ENDSWITCH
|
|
data.m_style_amount = sBunker_price_struct.iDecorPrice
|
|
iFinalPropValue -= data.m_style_amount
|
|
ENDIF
|
|
IF (sBunker_price_struct.iAccommodationPrice >= 0)
|
|
data.m_personalquarter = iAccommodation
|
|
data.m_personalquarter_amount = sBunker_price_struct.iAccommodationPrice
|
|
iFinalPropValue -= data.m_personalquarter_amount
|
|
ENDIF
|
|
IF (sBunker_price_struct.iFiringRangePrice >= 0)
|
|
data.m_firingrange = iFiringRange
|
|
data.m_firingrange_amount = sBunker_price_struct.iFiringRangePrice
|
|
iFinalPropValue -= data.m_firingrange_amount
|
|
ENDIF
|
|
IF (sBunker_price_struct.iGunLockerPrice >= 0)
|
|
data.m_gunlocker = iGunLocker
|
|
data.m_gunlocker_amount = sBunker_price_struct.iGunLockerPrice
|
|
iFinalPropValue -= data.m_gunlocker_amount
|
|
ENDIF
|
|
IF (sBunker_price_struct.iTransportationPrice >= 0)
|
|
data.m_caddy = iTransportation
|
|
data.m_caddy_amount = sBunker_price_struct.iTransportationPrice
|
|
iFinalPropValue -= data.m_caddy_amount
|
|
ENDIF
|
|
IF (iFinalPropValue >= 0)
|
|
OR (SHOULD_FACTORY_BE_FREE_FOR_PLAYER(eFactoryID) AND NOT bRenovateFactory)
|
|
data.m_location = GET_HASH_KEY(GET_FACTORY_NAME_FROM_ID(eFactoryId))
|
|
data.m_location_amount = iFinalPropValue
|
|
ENDIF
|
|
|
|
IF NOT bRenovateFactory
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: Bought factory for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: m_location:", data.m_location, " m_location_amount:$", data.m_location_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: m_style:", data.m_style, " m_style_amount:$", data.m_style_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: m_personalquarter:", data.m_personalquarter, " m_personalquarter_amount:$", data.m_personalquarter_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: m_firingrange:", data.m_firingrange, " m_firingrange_amount:$", data.m_firingrange_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: m_gunlocker:", data.m_gunlocker, " m_gunlocker_amount:$", data.m_gunlocker_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: m_caddy:", data.m_caddy, " m_caddy_amount:$", data.m_caddy_amount)
|
|
|
|
NETWORK_SPENT_BUY_BUNKER(propval, FALSE, TRUE, data)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: Renovate factory for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: m_location:", data.m_location, " m_location_amount:$", data.m_location_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: m_style:", data.m_style, " m_style_amount:$", data.m_style_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: m_personalquarter:", data.m_personalquarter, " m_personalquarter_amount:$", data.m_personalquarter_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: m_firingrange:", data.m_firingrange, " m_firingrange_amount:$", data.m_firingrange_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: m_gunlocker:", data.m_gunlocker, " m_gunlocker_amount:$", data.m_gunlocker_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: m_caddy:", data.m_caddy, " m_caddy_amount:$", data.m_caddy_amount)
|
|
|
|
NETWORK_SPENT_UPRADE_BUNKER(propval, FALSE, TRUE, data)
|
|
ENDIF
|
|
UNLOCK_CLOTHING_AWARD(CLOTHING_AWARD_PURCH_BUNKER)
|
|
|
|
IF NOT bRenovateFactory
|
|
SET_FACTORY_AS_OWNED(eFactoryId)
|
|
ENDIF
|
|
|
|
// Set up phonecall for purchasing bunker
|
|
INT iStatInt = GET_MP_INT_CHARACTER_STAT(MP_STAT_HELP_BUNK_EMAIL)
|
|
IF NOT IS_BIT_SET(iStatInt, biGR_Help_BOUGHT_BUNKER_CALL)
|
|
PRINTLN("BUY_MP_FACTORY_FROM_WEBSITE: [GUNRUN_CALL] - MAINTAIN_GUNRUNNING_NOTIFICATIONS - eGB_LOCAL_GUNRUN_CALL_BITSET_NOTIFICATION_FLOW_PURCHASE_BUNKER - Requested call for purchasing a bunker")
|
|
GB_SET_LOCAL_GUNRUN_CALL_BIT(eGB_LOCAL_GUNRUN_CALL_BITSET_NOTIFICATION_FLOW_PURCHASE_BUNKER)
|
|
IF GB_IS_LOCAL_GUNRUN_CALL_BIT_SET(eGB_LOCAL_GUNRUN_CALL_BITSET_NOTIFICATION_FLOW_NO_BUNKER)
|
|
PRINTLN("BUY_MP_FACTORY_FROM_WEBSITE: [GUNRUN_CALL] - MAINTAIN_GUNRUNNING_NOTIFICATIONS - Clearing call request for not owning a bunker")
|
|
GB_CLEAR_LOCAL_GUNRUN_CALL_BIT(eGB_LOCAL_GUNRUN_CALL_BITSET_NOTIFICATION_FLOW_NO_BUNKER)
|
|
ENDIF
|
|
SET_BIT(iStatInt, biGR_Help_BOUGHT_BUNKER_CALL)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_HELP_BUNK_EMAIL, iStatInt)
|
|
g_bResetTruckReminder = TRUE
|
|
IF IS_BIT_SET(MPGlobalsAmbience.iFmGbHelpBitSet3, BI_FM_GANG_BOSS_HELP_3_TRUCK_AVAILABLE_REMINDER_TEXT)
|
|
CLEAR_BIT(MPGlobalsAmbience.iFmGbHelpBitSet3, BI_FM_GANG_BOSS_HELP_3_TRUCK_AVAILABLE_REMINDER_TEXT)
|
|
PRINTLN("BUY_MP_FACTORY_FROM_WEBSITE: [GUNRUN_CALL] - MAINTAIN_GUNRUNNING_NOTIFICATIONS - Player has already received reminder text about buying a truck, resetting as we've just bought a bunker")
|
|
ENDIF
|
|
ELSE
|
|
PRINTLN("BUY_MP_FACTORY_FROM_WEBSITE: [GUNRUN_CALL] - MAINTAIN_GUNRUNNING_NOTIFICATIONS - Buying a bunker but already made the call, ignoring")
|
|
ENDIF
|
|
|
|
// // Update scaleform with the new businees status.
|
|
// ADD_FACTORY_TO_SCALEFORM_MOVIE(id)
|
|
|
|
// // Set a flag so that closing the overlay forces the site to display the homepage
|
|
// bGoHome = TRUE
|
|
|
|
//Clear the help call bits
|
|
GB_CLEAR_LOCAL_BIKER_CALL_BIT(eGB_LOCAL_BIKER_CALL_BITSET_NOTIFICATION_GET_BUSINESS_0)
|
|
GB_CLEAR_LOCAL_BIKER_CALL_BIT(eGB_LOCAL_BIKER_CALL_BITSET_NOTIFICATION_GET_BUSINESS_1)
|
|
|
|
START_FACTORY_DEFEND_MISSION_TIMER(GET_SAVE_SLOT_FOR_FACTORY(eFactoryId))
|
|
SAVE_FACOTRY_DEFEND_TIMER_FOR_SLOT(GET_SAVE_SLOT_FOR_FACTORY(eFactoryId))
|
|
|
|
SET_PACKED_STAT_BOOL(GET_STAT_ENUM_FOR_FACTORY_SETUP_DELAY_TIMER_SLOT(iResultSlot), FALSE)
|
|
|
|
CLEAR_FACTORY_STAFF_ARRIVED_TEXT_MESSAGES(iResultSlot)
|
|
|
|
CLEAR_FACTORY_PRODUCTION_LJT_CALL_TRIGGERS(iResultSlot)
|
|
|
|
// //Set the flag to request a save when we leave the app
|
|
// bRequestSave = TRUE
|
|
|
|
// // Notify the player.
|
|
// SHOW_OVERLAY(2001, "OR_PUR_SUC", "OR_OVRLY_OK", "")
|
|
ELIF GET_FACTORY_BASE_PRICE(eTradeInFactory) > 0
|
|
IF (iOwnedFactoryValue != 0)
|
|
OR SHOULD_FACTORY_BE_FREE_FOR_PLAYER(eTradeInFactory)
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: Trading the business ", eTradeInFactory, " is earning the player:$", iOwnedFactoryValue)
|
|
NETWORK_EARN_FROM_SELL_BUNKER(iOwnedFactoryValue, GET_HASH_KEY(GET_FACTORY_NAME_FROM_ID(eTradeInFactory)))
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: Trading the business ", eTradeInFactory, " earning nothing for the player:$", iOwnedFactoryValue, " as was free")
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
INT iFinalPropValue = finalPendingTransactionValue
|
|
iFinalPropValue += iOwnedFactoryValue
|
|
IF (sBunker_price_struct.iDecorPrice >= 0)
|
|
data.m_style = iDecor
|
|
data.m_style_amount = sBunker_price_struct.iDecorPrice
|
|
iFinalPropValue -= data.m_style_amount
|
|
ENDIF
|
|
IF (sBunker_price_struct.iAccommodationPrice >= 0)
|
|
data.m_personalquarter = iAccommodation
|
|
data.m_personalquarter_amount = sBunker_price_struct.iAccommodationPrice
|
|
iFinalPropValue -= data.m_personalquarter_amount
|
|
ENDIF
|
|
IF (sBunker_price_struct.iFiringRangePrice >= 0)
|
|
data.m_firingrange = iFiringRange
|
|
data.m_firingrange_amount = sBunker_price_struct.iFiringRangePrice
|
|
iFinalPropValue -= data.m_firingrange_amount
|
|
ENDIF
|
|
IF (sBunker_price_struct.iGunLockerPrice >= 0)
|
|
data.m_gunlocker = iGunLocker
|
|
data.m_gunlocker_amount = sBunker_price_struct.iGunLockerPrice
|
|
iFinalPropValue -= data.m_gunlocker_amount
|
|
ENDIF
|
|
IF (sBunker_price_struct.iTransportationPrice >= 0)
|
|
data.m_caddy = iTransportation
|
|
data.m_caddy_amount = sBunker_price_struct.iTransportationPrice
|
|
iFinalPropValue -= data.m_caddy_amount
|
|
ENDIF
|
|
IF (iFinalPropValue >= 0)
|
|
OR (SHOULD_FACTORY_BE_FREE_FOR_PLAYER(eFactoryID))
|
|
data.m_location = GET_HASH_KEY(GET_FACTORY_NAME_FROM_ID(eFactoryId))
|
|
data.m_location_amount = iFinalPropValue
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: Trading factory for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: m_location:", data.m_location, " m_location_amount:$", data.m_location_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: m_style:", data.m_style, " m_style_amount:$", data.m_style_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: m_personalquarter:", data.m_personalquarter, " m_personalquarter_amount:$", data.m_personalquarter_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: m_firingrange:", data.m_firingrange, " m_firingrange_amount:$", data.m_firingrange_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: m_gunlocker:", data.m_gunlocker, " m_gunlocker_amount:$", data.m_gunlocker_amount)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: m_caddy:", data.m_caddy, " m_caddy_amount:$", data.m_caddy_amount)
|
|
NETWORK_SPENT_BUY_BUNKER(propval, FALSE, TRUE, data)
|
|
|
|
TRADE_BIKER_FACTORY(eFactoryId, eTradeInFactory)
|
|
|
|
// // Update scaleform with the new businees status.
|
|
// ADD_FACTORY_TO_SCALEFORM_MOVIE(ENUM_TO_INT(eOldFactory))
|
|
// ADD_FACTORY_TO_SCALEFORM_MOVIE(ENUM_TO_INT(eFactoryId))
|
|
|
|
// // Set a flag so that closing the overlay forces the site to display the homepage
|
|
// bGoHome = TRUE
|
|
|
|
// //Set the flag to request a save when we leave the app
|
|
// bRequestSave = TRUE
|
|
|
|
// // Notify the player.
|
|
// SHOW_OVERLAY(2001, "OR_PUR_SUC", "OR_OVRLY_OK", "")
|
|
|
|
ENDIF
|
|
|
|
IF NOT bRenovateFactory
|
|
IF SHOULD_FACTORY_BE_FREE_FOR_PLAYER(eFactoryId)
|
|
SET_FACTORY_PAID_FOR_PURCHASE_PRICE(5, 0)
|
|
ELSE
|
|
SET_FACTORY_PAID_FOR_PURCHASE_PRICE(5, propval)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: iDecor: ", iDecor)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: iAccommodation: ", iAccommodation)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: iFiringRange: ", iFiringRange)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: iGunLocker: ", iGunLocker)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: iTransportation: ", iTransportation)
|
|
|
|
// SET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_DECOR, 0)
|
|
// GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBunkerDecor = iDecor
|
|
|
|
SWITCH iDecor
|
|
CASE 0 // Bunker style A
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_DECOR, 0)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree, PROPERTY_BROADCAST_BS3_OWNS_BUNKER_DECOR_1)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree, PROPERTY_BROADCAST_BS3_OWNS_BUNKER_DECOR_2)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree, PROPERTY_BROADCAST_BS3_OWNS_BUNKER_DECOR_3)
|
|
BREAK
|
|
CASE 1 // Bunker style B
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_DECOR, 1)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree, PROPERTY_BROADCAST_BS3_OWNS_BUNKER_DECOR_1)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree, PROPERTY_BROADCAST_BS3_OWNS_BUNKER_DECOR_2)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree, PROPERTY_BROADCAST_BS3_OWNS_BUNKER_DECOR_3)
|
|
BREAK
|
|
CASE 2 // Bunker style C
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_DECOR, 2)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree, PROPERTY_BROADCAST_BS3_OWNS_BUNKER_DECOR_1)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree, PROPERTY_BROADCAST_BS3_OWNS_BUNKER_DECOR_2)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree, PROPERTY_BROADCAST_BS3_OWNS_BUNKER_DECOR_3)
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iAccommodation)
|
|
IF (GET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_SAVEBED) != iAccommodation)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: set bunker spawn, player bought accomodation")
|
|
SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_BUNKER)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: set bunker spawn, player already has accom so not a renovation")
|
|
ENDIF
|
|
ENDIF
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iAccommodation)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_SAVEBED, 1)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree,PROPERTY_BROADCAST_BS3_OWNS_BUNKER_SAVEBED)
|
|
ELSE
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_SAVEBED, 0)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree,PROPERTY_BROADCAST_BS3_OWNS_BUNKER_SAVEBED)
|
|
ENDIF
|
|
SWITCH iFiringRange
|
|
CASE 0 //no firing range
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_FIRING_RANGE, 0)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree,PROPERTY_BROADCAST_BS3_OWNS_BUNKER_BLACK_FIRING_RANGE)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree,PROPERTY_BROADCAST_BS3_OWNS_BUNKER_WHITE_FIRING_RANGE)
|
|
BREAK
|
|
CASE 1 //black firing range
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_FIRING_RANGE, 1)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree,PROPERTY_BROADCAST_BS3_OWNS_BUNKER_BLACK_FIRING_RANGE)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree,PROPERTY_BROADCAST_BS3_OWNS_BUNKER_WHITE_FIRING_RANGE)
|
|
BREAK
|
|
CASE 2 //white firing range
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_FIRING_RANGE, 2)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree,PROPERTY_BROADCAST_BS3_OWNS_BUNKER_BLACK_FIRING_RANGE)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree,PROPERTY_BROADCAST_BS3_OWNS_BUNKER_WHITE_FIRING_RANGE)
|
|
BREAK
|
|
ENDSWITCH
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(iGunLocker)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_GUNLOCKER, 1)
|
|
SET_PLAYER_BUNKER_GUNLOCKER_PURCHASED(TRUE)
|
|
ELSE
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_GUNLOCKER, 0)
|
|
SET_PLAYER_BUNKER_GUNLOCKER_PURCHASED(FALSE)
|
|
IF SHOULD_ALLOW_DISABLE_WEAPON_LOADOUT_FROM_INTERNET()
|
|
SET_CUSTOM_WEAPON_LOADOUT(FALSE)
|
|
RESET_CUSTOM_WEAPON_LOADOUT_STATS()
|
|
ENDIF
|
|
ENDIF
|
|
SWITCH iTransportation
|
|
CASE 0 //no transportation
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_TRANSPORTATION, 0)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree,PROPERTY_BROADCAST_BS3_OWNS_BUNKER_TRANSPORTATION_STANDARD)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree,PROPERTY_BROADCAST_BS3_OWNS_BUNKER_TRANSPORTATION_UPDATED)
|
|
BREAK
|
|
CASE 1 //standard transportation
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_TRANSPORTATION, 1)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree,PROPERTY_BROADCAST_BS3_OWNS_BUNKER_TRANSPORTATION_STANDARD)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree,PROPERTY_BROADCAST_BS3_OWNS_BUNKER_TRANSPORTATION_UPDATED)
|
|
BREAK
|
|
CASE 2 //updated transportation
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_BUNKER_TRANSPORTATION, 2)
|
|
CLEAR_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree,PROPERTY_BROADCAST_BS3_OWNS_BUNKER_TRANSPORTATION_STANDARD)
|
|
SET_BIT(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.iBSThree,PROPERTY_BROADCAST_BS3_OWNS_BUNKER_TRANSPORTATION_UPDATED)
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
enumCharacterList CharacterToAdd = GET_GUNRUNNING_CONTACT()
|
|
IF NOT IS_CONTACT_IN_PHONEBOOK(CharacterToAdd, MULTIPLAYER_BOOK)
|
|
BOOL bDisplay = FALSE
|
|
// INT iStatInt = GET_MP_INT_CHARACTER_STAT(MP_STAT_FM_NON_MS_HELP_TEXT_unknown)
|
|
// IF NOT IS_BIT_SET(iStatInt, BI_FM_NMH11_UNLOCKED_BUNKER_unknown)
|
|
// SET_BIT(iStatInt, BI_FM_NMH11_UNLOCKED_BUNKER_unknown)
|
|
// SET_MP_INT_CHARACTER_STAT(MP_STAT_FM_NON_MS_HELP_TEXT_unknown, iStatInt)
|
|
// bDisplay = TRUE
|
|
// ENDIF
|
|
ADD_CONTACT_TO_PHONEBOOK(CharacterToAdd, MULTIPLAYER_BOOK,bDisplay)
|
|
CPRINTLN(DEBUG_INTERNET, "[BUNKER_CONTACT] MAINTAIN_ADD_GUNRUNNING_BUNKER_CONTACT - ADD_CONTACT_TO_PHONEBOOK(", g_sCharacterSheetAll[CharacterToAdd].label, ", MULTIPLAYER_BOOK, ", bDisplay, ")")
|
|
ENDIF
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Special","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
//REQUEST_SAVE(STAT_SAVETYPE_END_SHOPPING)
|
|
//REQUEST_SAVE(STAT_SAVETYPE_SCRIPT_MP_GLOBALS)
|
|
bBrowserShoppingSavePending = TRUE
|
|
CHECK_AMERICAN_DREAM_ACHIEVEMENT()
|
|
//bBoughtProperty = TRUE
|
|
POPULATE_MP_BIKER_PROPERTY_SITE_PIN_MAP(mov, TRUE)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_SUCCESS", TRUE, bRenovateFactory, FALSE, FALSE, rpmt_1_FACTORY)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: purchase complete, refreshing pin map")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
iBoughtPropertyIndex = -1
|
|
eBoughtFactoryIndex = eFactoryId
|
|
eBoughtHangarIndex = HANGAR_ID_INVALID
|
|
eBoughtDefunctBaseIndex = DEFUNCT_BASE_ID_INVALID
|
|
eBoughtNightclubIndex = NIGHTCLUB_ID_INVALID
|
|
eBoughtArenaIndex = ARENA_GARAGE_ID_INVALID
|
|
eBoughtArcadeIndex = ARCADE_PROPERTY_ID_INVALID
|
|
eBoughtCasinoIndex = CASINO_APARTMENT_ID_INVALID
|
|
eBoughtAutoShopIndex = AUTO_SHOP_PROPERTY_ID_INVALID
|
|
#IF FEATURE_FIXER
|
|
eBoughtFixerHQIndex = FIXER_HQ_ID_INVALID
|
|
#ENDIF
|
|
iBoughtCasinoPreset = -1
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FACTORY_FROM_WEBSITE: purchase complete, resetting iCustomAptVariant to 1")
|
|
ENDPROC
|
|
|
|
PROC BUY_MP_HANGAR_FROM_WEBSITE(HANGAR_ID eHangarID, INT &iResultSlot)
|
|
|
|
INT minPendingTransactionValue, finalPendingTransactionValue, iOwnedHangarValue
|
|
|
|
INT iBankBalance = NETWORK_GET_VC_BANK_BALANCE()
|
|
INT iWalletBalance = NETWORK_GET_VC_WALLET_BALANCE()
|
|
|
|
IF NOT IS_FM_TYPE_UNLOCKED(FMMC_TYPE_CUSTOM_CAR_GARAGE)
|
|
IF GET_PLAYER_RANK(GET_PLAYER_INDEX()) < 5
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: purchase failed, player doesn't have sufficient rank (", GET_PLAYER_RANK(GET_PLAYER_INDEX()), ")")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: purchase failed, player pending unlock for sufficient rank")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK_PENDING
|
|
ENDIF
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_2_HANGAR)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
IF NOT NET_GAMESERVER_IS_SESSION_VALID(GET_ACTIVE_CHARACTER_SLOT())
|
|
OR NET_GAMESERVER_IS_SESSION_REFRESH_PENDING()
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: purchase failed - session pending!")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_2_HANGAR)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
TEXT_LABEL_15 tl_15HangarName = GET_HANGAR_NAME_FROM_ID(eHangarID)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: trying to purchase hangar ", tl_15HangarName, " #", eHangarID)
|
|
|
|
INT propval = CEIL(TO_FLOAT(GET_HANGAR_PRICE(eHangarID))*g_sMPTunables.fPropertyMultiplier)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: purchase valid, attempting index ", tl_15HangarName, " $", propval)
|
|
|
|
minPendingTransactionValue = propval
|
|
|
|
HANGAR_ID eTradeInHangar = GET_PLAYERS_OWNED_HANGAR(PLAYER_ID())
|
|
|
|
IF eTradeInHangar != HANGAR_ID_INVALID
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: currently owns hangar #", eTradeInHangar)
|
|
|
|
INT iCurrentMission = GB_GET_PLAYER_CURRENT_GANG_BOSS_MISSION(PLAYER_ID())
|
|
IF GB_IS_PLAYER_BOSS_OF_A_GANG(PLAYER_ID())
|
|
AND (iCurrentMission = FMMC_TYPE_SMUGGLER_BUY
|
|
OR iCurrentMission = FMMC_TYPE_SMUGGLER_SELL
|
|
OR iCurrentMission = FMMC_TYPE_SMUGGLER_WEAPONIZED_AIR_VEHICLE)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: purchase failed, player current gang boss mission: ", GANG_BOSS_GET_NAME_FOR_TYPE_FOR_DEBUG_PRINT(iCurrentMission))
|
|
mpPropertySiteFailReason = MPSFR_ON_MISSION
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_2_HANGAR)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BOOL bRenovateHangar = FALSE
|
|
IF (eHangarID = eTradeInHangar)
|
|
IF GET_LOCAL_PLAYER_USING_OFFICE_SEATID() != -1
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: purchase failed - using office seat ", GET_LOCAL_PLAYER_USING_OFFICE_SEATID(), "!")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_2_HANGAR)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
|
|
propval = CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES(eHangarID, sHangar_price_struct)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: renovate ", tl_15HangarName, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
bRenovateHangar = TRUE
|
|
ELSE
|
|
// IF GB_IS_PLAYER_ON_ANY_GANG_BOSS_MISSION
|
|
// AND GB_IS_PLAYER_CRITICAL_TO_JOB
|
|
|
|
IF eTradeInHangar != HANGAR_ID_INVALID
|
|
IF NOT IS_PLAYERS_HANGAR_CONTRABAND_STORAGE_EMPTY(PLAYER_ID())
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: purchase failed - can't trade, has stock!")
|
|
mpPropertySiteFailReason = MPSFR_HAS_STOCK
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_2_HANGAR)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
propval += CALCULATE_COST_OF_HANGAR_INTERIOR_UPGRADES(eHangarID, sHangar_price_struct)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: purchase ", tl_15HangarName, " for ", eTradeInHangar, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
ENDIF
|
|
|
|
minPendingTransactionValue = propval
|
|
|
|
//is it a debit or refund
|
|
IF eTradeInHangar = HANGAR_ID_INVALID
|
|
OR eTradeInHangar = HANGAR_ID_MAX
|
|
OR bRenovateHangar
|
|
IF minPendingTransactionValue > 0
|
|
//do they have enough money
|
|
// IF (iBankBalance+iWalletBalance) < minPendingTransactionValue
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " <> $", minPendingTransactionValue)
|
|
// IF (minPendingTransactionValue <= 0
|
|
// OR (minPendingTransactionValue > 0 AND ((iBankBalance+iWalletBalance) < minPendingTransactionValue)))
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < minPendingTransactionValue $", minPendingTransactionValue, "]")
|
|
// mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
// SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE)
|
|
// iCustomAptVariant = 1
|
|
// bCustomInteriorSelected = FALSE
|
|
//
|
|
// TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15HangarName), minPendingTransactionValue)
|
|
//
|
|
// PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
// EXIT
|
|
// ENDIF
|
|
|
|
IF (minPendingTransactionValue <= 0
|
|
OR (minPendingTransactionValue > 0 AND NOT NETWORK_CAN_SPEND_MONEY(minPendingTransactionValue,FALSE,TRUE,FALSE)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < NETWORK_CAN_SPEND_MONEY:minPendingTransactionValue $", minPendingTransactionValue, "]")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_2_HANGAR)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15HangarName), minPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
// ENDIF
|
|
ELSE
|
|
|
|
//is it a debit or refund
|
|
IF minPendingTransactionValue >0
|
|
//do they have enough money
|
|
// IF (iBankBalance+iWalletBalance) < minPendingTransactionValue
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " <> $", minPendingTransactionValue)
|
|
// IF (minPendingTransactionValue <= 0
|
|
// OR (minPendingTransactionValue > 0 AND ((iBankBalance+iWalletBalance) < minPendingTransactionValue)))
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < minPendingTransactionValue $", minPendingTransactionValue, "]")
|
|
// mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
// SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE)
|
|
// iCustomAptVariant = 1
|
|
// bCustomInteriorSelected = FALSE
|
|
//
|
|
// TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15HangarName), minPendingTransactionValue)
|
|
//
|
|
// PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
// EXIT
|
|
// ENDIF
|
|
|
|
IF (minPendingTransactionValue <= 0
|
|
OR (minPendingTransactionValue > 0 AND NOT NETWORK_CAN_SPEND_MONEY(minPendingTransactionValue,FALSE,TRUE,FALSE)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < NETWORK_CAN_SPEND_MONEY:minPendingTransactionValue $", minPendingTransactionValue, "]")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_2_HANGAR)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15HangarName), minPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
// ENDIF
|
|
ENDIF
|
|
|
|
// iResultSlot = GET_SAVE_SLOT_FOR_factory(eTradeInHangar)
|
|
|
|
INT iReplaceSpecificPropertySlot
|
|
REPLACE_MP_VEH_OR_PROP_MENU replaceMenu
|
|
WHILE NOT RUN_REPLACE_PROPERTY_MENU(replaceMenu,iResultSlot,ENUM_TO_INT(eHangarID),iReplaceSpecificPropertySlot,rpmt_2_HANGAR)
|
|
AND DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
//RENDER_BROWSER()
|
|
DISABLE_SELECTOR_THIS_FRAME()
|
|
DISABLE_CELLPHONE_THIS_FRAME_ONLY()
|
|
WAIT(0)
|
|
g_sMenuData.bKeepPhoneForNextDrawMenuCall = TRUE
|
|
ENDWHILE
|
|
|
|
|
|
IF iResultSlot = -1
|
|
mpPropertySiteFailReason = MPSFR_CANCELED
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_2_HANGAR)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
g_iPendingBrowserTimer = g_iBrowserTimer
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
CPRINTLN(DEBUG_INTERNET, "CDM: BUY_MP_HANGAR_FROM_WEBSITE: purchase failed, player backed out of property selection")
|
|
EXIT
|
|
ELSE
|
|
// eTradeInHangar = GET_HANGAR_ID_FROM_factory_SLOT(PLAYER_ID(), iResultSlot)
|
|
iOwnedHangarValue = GET_HANGAR_SALE_VALUE(eTradeInHangar)
|
|
|
|
finalPendingTransactionValue = propval - iOwnedHangarValue
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: Player selected iResultSlot ", iResultSlot, ", hangar: ", eTradeInHangar, " for trade. propval $", propval, ", iOwnedHangarValue: ", iOwnedHangarValue, " Final trans value $", finalPendingTransactionValue)
|
|
ENDIF
|
|
|
|
// Re-check if player can afford based on selected trade-in value
|
|
IF finalPendingTransactionValue > 0
|
|
//do they have enough money
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " + trade:$", iOwnedHangarValue, " <> $", finalPendingTransactionValue)
|
|
// IF (iBankBalance+iWalletBalance+ GET_HANGAR_SALE_VALUE(eTradeInHangar)) < finalPendingTransactionValue
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash after trade selection [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < finalPendingTransactionValue finalPendingTransactionValue:$", finalPendingTransactionValue, "]")
|
|
// mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
// SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE)
|
|
// iCustomAptVariant = 1
|
|
// bCustomInteriorSelected = FALSE
|
|
//
|
|
// TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15HangarName), finalPendingTransactionValue)
|
|
//
|
|
// PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
// EXIT
|
|
// ENDIF
|
|
|
|
IF NOT NETWORK_CAN_SPEND_MONEY(finalPendingTransactionValue, FALSE, TRUE, FALSE)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: purchase failed, player failed on command NETWORK_CAN_SPEND_MONEY")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_2_HANGAR)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15HangarName), finalPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
HANGAR_DATA_STRUCT sHangarData
|
|
GET_SCALEFORM_HANGAR_DATA(sHangarData)
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
INT iPropval
|
|
IF eHangarID = eTradeInHangar
|
|
iPropval = 0
|
|
ELSE
|
|
iPropval = CEIL(TO_FLOAT(GET_HANGAR_PRICE(eHangarID))*g_sMPTunables.fPropertyMultiplier)
|
|
ENDIF
|
|
|
|
bProcessingBasket = TRUE
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_ADD
|
|
INT iItemId = GET_HANGAR_KEY_FOR_CATALOGUE(eHangarID)
|
|
INT iInventoryKey = GET_HANGAR_INVENTORY_KEY_FOR_CATALOGUE()
|
|
INT iSellingItemId = 0
|
|
|
|
IF eTradeInHangar != HANGAR_ID_INVALID
|
|
AND eTradeInHangar != HANGAR_ID_MAX
|
|
iSellingItemId = GET_HANGAR_KEY_FOR_CATALOGUE(eTradeInHangar)
|
|
ENDIF
|
|
|
|
INT iProcessSuccess = GENERIC_TRANSACTION_STATE_DEFAULT
|
|
|
|
///////////////////////////////////////////
|
|
/// TRANSACTION FOR HANGAR
|
|
WHILE PROCESSING_INTERNET_SHOPPING_BASKET(iProcessSuccess, iPropval, iResultSlot, CATEGORY_INVENTORY_WAREHOUSE, NET_SHOP_ACTION_BUY_WAREHOUSE, iItemId, iInventoryKey, 0, iOwnedHangarValue, iSellingItemId)
|
|
RENDER_BROWSER()
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(TRUE)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(FALSE)
|
|
|
|
RENDER_BROWSER()
|
|
|
|
SWITCH iProcessSuccess
|
|
CASE GENERIC_TRANSACTION_STATE_FAILED
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: purchase failed, failed to process transaction")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_2_HANGAR)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
BREAK
|
|
CASE GENERIC_TRANSACTION_STATE_SUCCESS
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: success!!")
|
|
BREAK
|
|
DEFAULT
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: purchase failed, unknown iProcessSuccess: \"", iProcessSuccess, "\"")
|
|
EXIT
|
|
BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: ignore NETWORK_REQUEST_BASKET_TRANSACTION")
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: final:$", finalPendingTransactionValue, ", propval $", propval)
|
|
|
|
//Assign the telemetry data
|
|
//Increment the spending stat
|
|
IF finalPendingTransactionValue > 0
|
|
INCREMENT_BY_MP_INT_PLAYER_STAT(MPPLY_INGAMESTORE_MONEYSPENT, finalPendingTransactionValue)
|
|
ENDIF
|
|
|
|
SPEND_HANGAR data
|
|
//Check if we're trading of just buying
|
|
IF (eTradeInHangar = HANGAR_ID_INVALID)
|
|
OR (eTradeInHangar = HANGAR_ID_MAX)
|
|
OR (bRenovateHangar)
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
|
|
INT iFinalPropValue = propval
|
|
IF (sHangar_price_struct.iFlooringPrice >= 0)
|
|
OR NOT bRenovateHangar
|
|
data.m_flooring = GET_HASH_KEY(GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_FLOORING, sHangarData.iFlooring))
|
|
data.m_flooring_amount = sHangar_price_struct.iFlooringPrice
|
|
iFinalPropValue -= data.m_flooring_amount
|
|
ENDIF
|
|
IF (sHangar_price_struct.iAccommodationPrice >= 0)
|
|
OR NOT bRenovateHangar
|
|
data.m_livingQuarter = GET_HASH_KEY(GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_PERSONAL_QUARTERS, sHangarData.iSleepingQuarters))
|
|
data.m_livingQuarter_amount = sHangar_price_struct.iAccommodationPrice
|
|
iFinalPropValue -= data.m_livingQuarter_amount
|
|
ENDIF
|
|
IF (sHangar_price_struct.iFurniturePrice >= 0)
|
|
OR NOT bRenovateHangar
|
|
data.m_furnitures = GET_HASH_KEY(GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_FURNITURE, sHangarData.iFurniture))
|
|
data.m_furnitures_amount = sHangar_price_struct.iFurniturePrice
|
|
iFinalPropValue -= data.m_furnitures_amount
|
|
ENDIF
|
|
IF (sHangar_price_struct.iModshopPrice >= 0)
|
|
OR NOT bRenovateHangar
|
|
data.m_workshop = GET_HASH_KEY(GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_MODSHOP, sHangarData.iWorkshop))
|
|
data.m_workshop_amount = sHangar_price_struct.iModshopPrice
|
|
iFinalPropValue -= data.m_workshop_amount
|
|
ENDIF
|
|
IF (sHangar_price_struct.iColourPrice >= 0)
|
|
OR NOT bRenovateHangar
|
|
data.m_style = GET_HASH_KEY(GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_STYLE, sHangarData.iStyle))
|
|
data.m_style_amount = sHangar_price_struct.iColourPrice
|
|
iFinalPropValue -= data.m_style_amount
|
|
ENDIF
|
|
IF (sHangar_price_struct.iLightingPrice >= 0)
|
|
OR NOT bRenovateHangar
|
|
data.m_lighting = GET_HASH_KEY(GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_LIGHTING, sHangarData.iLighting))
|
|
data.m_lighting_amount = sHangar_price_struct.iLightingPrice
|
|
iFinalPropValue -= data.m_lighting_amount
|
|
ENDIF
|
|
IF (iFinalPropValue >= 0)
|
|
OR NOT bRenovateHangar
|
|
data.m_location = GET_HASH_KEY(GET_HANGAR_NAME_FROM_ID(eHangarID))
|
|
data.m_location_amount = iFinalPropValue
|
|
ENDIF
|
|
|
|
IF NOT bRenovateHangar
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: Bought hangar for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_location:", data.m_location, " m_location_amount:$", data.m_location_amount, " ", GET_HANGAR_NAME_FROM_ID(eHangarID))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_flooring:", data.m_flooring, " m_flooring_amount:$", data.m_flooring_amount, " ", GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_FLOORING, sHangarData.iFlooring))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_furnitures:", data.m_furnitures, " m_furnitures_amount:$", data.m_furnitures_amount, " ", GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_FURNITURE, sHangarData.iFurniture))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_workshop:", data.m_workshop, " m_workshop_amount:$", data.m_workshop_amount, " ", GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_MODSHOP, sHangarData.iWorkshop))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_style:", data.m_style, " m_style_amount:$", data.m_style_amount, " ", GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_STYLE, sHangarData.iStyle))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_lighting:", data.m_lighting, " m_lighting_amount:$", data.m_lighting_amount, " ", GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_LIGHTING, sHangarData.iLighting))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_livingQuarter:", data.m_livingQuarter, " m_livingQuarter_amount:$", data.m_livingQuarter_amount, " ", GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_PERSONAL_QUARTERS, sHangarData.iSleepingQuarters))
|
|
|
|
NETWORK_SPENT_PURCHASE_HANGAR(propval, data, FALSE, TRUE)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: Renovate hangar for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_location:", data.m_location, " m_location_amount:$", data.m_location_amount, " ", GET_HANGAR_NAME_FROM_ID(eHangarID))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_flooring:", data.m_flooring, " m_flooring_amount:$", data.m_flooring_amount, " ", GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_FLOORING, sHangarData.iFlooring))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_furnitures:", data.m_furnitures, " m_furnitures_amount:$", data.m_furnitures_amount, " ", GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_FURNITURE, sHangarData.iFurniture))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_workshop:", data.m_workshop, " m_workshop_amount:$", data.m_workshop_amount, " ", GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_MODSHOP, sHangarData.iWorkshop))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_style:", data.m_style, " m_style_amount:$", data.m_style_amount, " ", GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_STYLE, sHangarData.iStyle))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_lighting:", data.m_lighting, " m_lighting_amount:$", data.m_lighting_amount, " ", GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_LIGHTING, sHangarData.iLighting))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_livingQuarter:", data.m_livingQuarter, " m_livingQuarter_amount:$", data.m_livingQuarter_amount, " ", GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_PERSONAL_QUARTERS, sHangarData.iSleepingQuarters))
|
|
|
|
NETWORK_SPENT_UPGRADE_HANGAR(propval, data, FALSE, TRUE)
|
|
ENDIF
|
|
// UNLOCK_CLOTHING_AWARD(CLOTHING_AWARD_PURCH_HANGAR)
|
|
|
|
IF NOT bRenovateHangar
|
|
SET_HANGAR_AS_OWNED(eHangarID)
|
|
GB_SMUGGLER_SETUP_HANGAR_PURCHASED_FLOW_PHONECALL()
|
|
ENDIF
|
|
|
|
ELIF GET_HANGAR_BASE_PRICE(eTradeInHangar) > 0
|
|
// IF NOT SHOULD_HANGAR_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: Trading the business ", eTradeInHangar, " is earning the player:$", iOwnedHangarValue)
|
|
SAFE_NETWORK_EARN_FROM_HANGAR_TRADE(iOwnedHangarValue, GET_HASH_KEY(GET_HANGAR_NAME_FROM_ID(eTradeInHangar)))
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: Trading the business ", eTradeInHangar, " is earning nothing the player:$", iOwnedHangarValue, " as was free")
|
|
// ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
INT iFinalPropValue = finalPendingTransactionValue
|
|
iFinalPropValue += iOwnedHangarValue
|
|
|
|
//
|
|
data.m_flooring = GET_HASH_KEY(GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_FLOORING, sHangarData.iFlooring))
|
|
data.m_flooring_amount = sHangar_price_struct.iFlooringPrice
|
|
iFinalPropValue -= data.m_flooring_amount
|
|
//
|
|
data.m_livingQuarter = GET_HASH_KEY(GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_PERSONAL_QUARTERS, sHangarData.iSleepingQuarters))
|
|
data.m_livingQuarter_amount = sHangar_price_struct.iAccommodationPrice
|
|
iFinalPropValue -= data.m_livingQuarter_amount
|
|
//
|
|
data.m_furnitures = GET_HASH_KEY(GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_FURNITURE, sHangarData.iFurniture))
|
|
data.m_furnitures_amount = sHangar_price_struct.iFurniturePrice
|
|
iFinalPropValue -= data.m_furnitures_amount
|
|
//
|
|
data.m_workshop = GET_HASH_KEY(GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_MODSHOP, sHangarData.iWorkshop))
|
|
data.m_workshop_amount = sHangar_price_struct.iModshopPrice
|
|
iFinalPropValue -= data.m_workshop_amount
|
|
//
|
|
data.m_style = GET_HASH_KEY(GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_STYLE, sHangarData.iStyle))
|
|
data.m_style_amount = sHangar_price_struct.iColourPrice
|
|
iFinalPropValue -= data.m_style_amount
|
|
//
|
|
data.m_lighting = GET_HASH_KEY(GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_LIGHTING, sHangarData.iLighting))
|
|
data.m_lighting_amount = sHangar_price_struct.iLightingPrice
|
|
iFinalPropValue -= data.m_lighting_amount
|
|
//
|
|
data.m_location = GET_HASH_KEY(GET_HANGAR_NAME_FROM_ID(eHangarID))
|
|
data.m_location_amount = iFinalPropValue
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: Trading hangar for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_location:", data.m_location, " m_location_amount:$", data.m_location_amount, " ", GET_HANGAR_NAME_FROM_ID(eHangarID))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_flooring:", data.m_flooring, " m_flooring_amount:$", data.m_flooring_amount, " ", GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_FLOORING, sHangarData.iFlooring))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_furnitures:", data.m_furnitures, " m_furnitures_amount:$", data.m_furnitures_amount, " ", GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_FURNITURE, sHangarData.iFurniture))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_workshop:", data.m_workshop, " m_workshop_amount:$", data.m_workshop_amount, " ", GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_MODSHOP, sHangarData.iWorkshop))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_style:", data.m_style, " m_style_amount:$", data.m_style_amount, " ", GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_STYLE, sHangarData.iStyle))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_lighting:", data.m_lighting, " m_lighting_amount:$", data.m_lighting_amount, " ", GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_LIGHTING, sHangarData.iLighting))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: m_livingQuarter:", data.m_livingQuarter, " m_livingQuarter_amount:$", data.m_livingQuarter_amount, " ", GET_HANGAR_MOD_NAME_FROM_ID(eHANGAR_MOD_PERSONAL_QUARTERS, sHangarData.iSleepingQuarters))
|
|
|
|
NETWORK_SPENT_UPGRADE_HANGAR(propval, data, FALSE, TRUE)
|
|
|
|
REMOTE_REQUEST_REMOVE_ALL_CONTRABAND_FROM_HANGAR()
|
|
TRADE_HANGAR(eHangarID, eTradeInHangar)
|
|
ENDIF
|
|
|
|
INT iBuyPropertyIndex = PROPERTY_HANGAR
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_HANGAR, iBuyPropertyIndex)
|
|
INCREMENT_MP_INT_CHARACTER_STAT(MP_STAT_NO_PROPERTIES_UNLOCK)
|
|
IF NOT bRenovateHangar
|
|
// IF NOT SHOULD_HANGAR_BE_FREE_FOR_PLAYER(eHangarID)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_HANGAR_VALUE, propval)
|
|
// ELSE
|
|
// SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_HANGAR_VALUE,0)
|
|
// ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_HANGAR_VALUE_VALID, ENUM_TO_INT(eHangarID))
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: iFloorDecal: ", sHangarData.iFlooring)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: iAccommodation: ", sHangarData.iSleepingQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: iFurniture: ", sHangarData.iFurniture)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: iModshop: ", sHangarData.iWorkshop)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: iColour: ", sHangarData.iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: iLighting: ", sHangarData.iLighting)
|
|
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_FLOOR_DECAL, sHangarData.iFlooring)
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(sHangarData.iSleepingQuarters)
|
|
IF (GET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_SAVEBED) != sHangarData.iSleepingQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: set hangar spawn, player bought accomodation")
|
|
SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_HANGAR)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: set hangar spawn, player already has accom so not a renovation")
|
|
ENDIF
|
|
ENDIF
|
|
SWITCH sHangarData.iSleepingQuarters
|
|
CASE 0 //0. None.
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_SAVEBED, 0)
|
|
BREAK
|
|
CASE 1 //2. Modern, comes with modern lighting.
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_SAVEBED, 1)
|
|
BREAK
|
|
CASE 2 //3. Traditional, comes with traditional lighting.
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_SAVEBED, 2)
|
|
BREAK
|
|
ENDSWITCH
|
|
SWITCH sHangarData.iFurniture
|
|
CASE 0
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_FURNITURE, 0)
|
|
BREAK
|
|
CASE 1 //1. Modern, comes with modern lighting.
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_FURNITURE, 1)
|
|
BREAK
|
|
CASE 2 //2. Traditional, comes with traditional lighting.
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_FURNITURE, 2)
|
|
BREAK
|
|
ENDSWITCH
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(sHangarData.iWorkshop)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_MODSHOP, 1)
|
|
// SET_PLAYER_HANGAR_MODSHOP_PURCHASED(TRUE)
|
|
ELSE
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_MODSHOP, 0)
|
|
// SET_PLAYER_HANGAR_MODSHOP_PURCHASED(FALSE)
|
|
// SET_CUSTOM_WEAPON_LOADOUT(FALSE)
|
|
// RESET_CUSTOM_WEAPON_LOADOUT_STATS()
|
|
ENDIF
|
|
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_COLOUR, sHangarData.iStyle)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_HANGAR_LIGHTING, sHangarData.iLighting)
|
|
|
|
BROADCAST_PLAYER_PURCHASED_HANGAR()
|
|
|
|
enumCharacterList CharacterToAdd = GET_SMUGGLER_CONTACT()
|
|
IF NOT IS_CONTACT_IN_PHONEBOOK(CharacterToAdd, MULTIPLAYER_BOOK)
|
|
BOOL bDisplay = FALSE
|
|
ADD_CONTACT_TO_PHONEBOOK(CharacterToAdd, MULTIPLAYER_BOOK,bDisplay)
|
|
CPRINTLN(DEBUG_INTERNET, "[HANGAR_CONTACT] MAINTAIN_ADD_SMUGGLER_HANGAR_CONTACT - ADD_CONTACT_TO_PHONEBOOK(",
|
|
g_sCharacterSheetAll[CharacterToAdd].label, ", MULTIPLAYER_BOOK, ", bDisplay, ")")
|
|
ENDIF
|
|
|
|
IF IS_BIT_SET(iPurchaseHelpBS, PURCHASE_HELP_BS_FDSE0HA)
|
|
CDEBUG1LN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: purchased hangar, set bDisplayed_HELP_FDSE0ha false")
|
|
CLEAR_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_FDSE0HA)
|
|
ENDIF
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Special","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
bBrowserShoppingSavePending = TRUE
|
|
CHECK_AMERICAN_DREAM_ACHIEVEMENT()
|
|
POPULATE_MP_BIKER_PROPERTY_SITE_PIN_MAP(mov, TRUE)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_SUCCESS", TRUE, bRenovateHangar, FALSE, FALSE, rpmt_2_HANGAR)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: purchase complete, refreshing pin map")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
iBoughtPropertyIndex = -1
|
|
eBoughtFactoryIndex = FACTORY_ID_INVALID
|
|
eBoughtHangarIndex = eHangarID
|
|
eBoughtDefunctBaseIndex = DEFUNCT_BASE_ID_INVALID
|
|
eBoughtNightclubIndex = NIGHTCLUB_ID_INVALID
|
|
eBoughtArenaIndex = ARENA_GARAGE_ID_INVALID
|
|
eBoughtArcadeIndex = ARCADE_PROPERTY_ID_INVALID
|
|
eBoughtCasinoIndex = CASINO_APARTMENT_ID_INVALID
|
|
iBoughtCasinoPreset = -1
|
|
eBoughtAutoShopIndex = AUTO_SHOP_PROPERTY_ID_INVALID
|
|
#IF FEATURE_FIXER
|
|
eBoughtFixerHQIndex = FIXER_HQ_ID_INVALID
|
|
#ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_HANGAR_FROM_WEBSITE: purchase complete, resetting iCustomAptVariant to 1")
|
|
ENDPROC
|
|
|
|
PROC BUY_MP_DEFUNCT_BASE_FROM_WEBSITE(DEFUNCT_BASE_ID eBaseID, INT &iResultSlot)
|
|
|
|
INT minPendingTransactionValue, finalPendingTransactionValue, iOwnedTradeBaseValue
|
|
|
|
INT iBankBalance = NETWORK_GET_VC_BANK_BALANCE()
|
|
INT iWalletBalance = NETWORK_GET_VC_WALLET_BALANCE()
|
|
|
|
IF NOT IS_FM_TYPE_UNLOCKED(FMMC_TYPE_CUSTOM_CAR_GARAGE)
|
|
IF GET_PLAYER_RANK(GET_PLAYER_INDEX()) < 5
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: purchase failed, player doesn't have sufficient rank (", GET_PLAYER_RANK(GET_PLAYER_INDEX()), ")")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: purchase failed, player pending unlock for sufficient rank")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK_PENDING
|
|
ENDIF
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_3_DEFUNCT_BASE)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
IF NOT NET_GAMESERVER_IS_SESSION_VALID(GET_ACTIVE_CHARACTER_SLOT())
|
|
OR NET_GAMESERVER_IS_SESSION_REFRESH_PENDING()
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: purchase failed - session pending!")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_3_DEFUNCT_BASE)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
TEXT_LABEL_15 tl_15BaseName = GET_DEFUNCT_BASE_NAME_FROM_ID(eBaseID)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: trying to purchase base ", tl_15BaseName, " #", eBaseID)
|
|
|
|
INT propval = CEIL(TO_FLOAT(GET_DEFUNCT_BASE_PRICE(eBaseID))*g_sMPTunables.fPropertyMultiplier)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: purchase valid, attempting index ", tl_15BaseName, " $", propval)
|
|
|
|
minPendingTransactionValue = propval
|
|
|
|
DEFUNCT_BASE_ID eTradeInBase = GET_PLAYERS_OWNED_DEFUNCT_BASE(PLAYER_ID())
|
|
|
|
IF IS_DEFUNCT_BASE_ID_VALID(eTradeInBase)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: currently owns base #", eTradeInBase)
|
|
|
|
INT iCurrentMission = GB_GET_PLAYER_CURRENT_GANG_BOSS_MISSION(PLAYER_ID())
|
|
IF GB_IS_PLAYER_BOSS_OF_A_GANG(PLAYER_ID())
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: player current gang boss mission: \"", GANG_BOSS_GET_NAME_FOR_TYPE_FOR_DEBUG_PRINT(iCurrentMission), "\"")
|
|
|
|
IF (iCurrentMission = FMMC_TYPE_FM_GANGOPS)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: purchase failed, player current gang boss mission: ", GANG_BOSS_GET_NAME_FOR_TYPE_FOR_DEBUG_PRINT(iCurrentMission))
|
|
mpPropertySiteFailReason = MPSFR_ON_MISSION
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_3_DEFUNCT_BASE)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BOOL bRenovateBase = FALSE
|
|
IF (eBaseID = eTradeInBase)
|
|
IF GET_LOCAL_PLAYER_USING_OFFICE_SEATID() != -1
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: purchase failed - using office seat ", GET_LOCAL_PLAYER_USING_OFFICE_SEATID(), "!")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_3_DEFUNCT_BASE)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
|
|
propval = CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES(eBaseID, sDefunct_base_price_struct)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: renovate ", tl_15BaseName, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
bRenovateBase = TRUE
|
|
ELSE
|
|
propval += CALCULATE_COST_OF_DEFUNCT_BASE_INTERIOR_UPGRADES(eBaseID, sDefunct_base_price_struct)
|
|
|
|
IF NOT IS_DEFUNCT_BASE_ID_VALID(eTradeInBase)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: purchase ", tl_15BaseName, " for ", eTradeInBase, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: trade ", tl_15BaseName, " for ", eTradeInBase, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
minPendingTransactionValue = propval
|
|
|
|
//is it a debit or refund
|
|
IF NOT IS_DEFUNCT_BASE_ID_VALID(eTradeInBase)
|
|
OR bRenovateBase
|
|
IF minPendingTransactionValue > 0
|
|
//do they have enough money
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " <> $", minPendingTransactionValue)
|
|
IF (minPendingTransactionValue <= 0
|
|
OR (minPendingTransactionValue > 0 AND NOT NETWORK_CAN_SPEND_MONEY(minPendingTransactionValue,FALSE,TRUE,FALSE)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < NETWORK_CAN_SPEND_MONEY:minPendingTransactionValue $", minPendingTransactionValue, "]")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_3_DEFUNCT_BASE)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15BaseName), minPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
|
|
//is it a debit or refund
|
|
INT iTempMinPendingTransactionValue = minPendingTransactionValue-GET_DEFUNCT_BASE_SALE_VALUE(eTradeInBase)
|
|
IF iTempMinPendingTransactionValue >0
|
|
//do they have enough money
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " > $", minPendingTransactionValue, "+", GET_DEFUNCT_BASE_SALE_VALUE(eTradeInBase))
|
|
|
|
IF (iTempMinPendingTransactionValue <= 0
|
|
OR (iTempMinPendingTransactionValue > 0 AND NOT NETWORK_CAN_SPEND_MONEY(iTempMinPendingTransactionValue,FALSE,TRUE,FALSE)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < NETWORK_CAN_SPEND_MONEY:iTempMinPendingTransactionValue $", minPendingTransactionValue, "+", GET_DEFUNCT_BASE_SALE_VALUE(eTradeInBase), "]")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_3_DEFUNCT_BASE)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15BaseName), iTempMinPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " <= $", minPendingTransactionValue, "+", GET_DEFUNCT_BASE_SALE_VALUE(eTradeInBase))
|
|
ENDIF
|
|
|
|
INT iReplaceSpecificPropertySlot
|
|
REPLACE_MP_VEH_OR_PROP_MENU replaceMenu
|
|
WHILE NOT RUN_REPLACE_PROPERTY_MENU(replaceMenu,iResultSlot,ENUM_TO_INT(eBaseID),iReplaceSpecificPropertySlot,rpmt_3_DEFUNCT_BASE)
|
|
AND DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
//RENDER_BROWSER()
|
|
DISABLE_SELECTOR_THIS_FRAME()
|
|
DISABLE_CELLPHONE_THIS_FRAME_ONLY()
|
|
WAIT(0)
|
|
g_sMenuData.bKeepPhoneForNextDrawMenuCall = TRUE
|
|
ENDWHILE
|
|
|
|
|
|
IF iResultSlot = -1
|
|
mpPropertySiteFailReason = MPSFR_CANCELED
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_3_DEFUNCT_BASE)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
g_iPendingBrowserTimer = g_iBrowserTimer
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
CPRINTLN(DEBUG_INTERNET, "CDM: BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: purchase failed, player backed out of property selection")
|
|
EXIT
|
|
ELSE
|
|
iOwnedTradeBaseValue = GET_DEFUNCT_BASE_SALE_VALUE(eTradeInBase)
|
|
|
|
finalPendingTransactionValue = propval - iOwnedTradeBaseValue
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: Player selected iResultSlot ", iResultSlot, ", trade ba: ", eTradeInBase, " for trade. propval $", propval, ", iOwnedTradeBaseValue: ", iOwnedTradeBaseValue, " Final trans value $", finalPendingTransactionValue)
|
|
ENDIF
|
|
|
|
// Re-check if player can afford based on selected trade-in value
|
|
IF finalPendingTransactionValue > 0
|
|
//do they have enough money
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " + trade:$", iOwnedTradeBaseValue, " <> $", finalPendingTransactionValue)
|
|
|
|
IF NOT NETWORK_CAN_SPEND_MONEY(finalPendingTransactionValue, FALSE, TRUE, FALSE)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: purchase failed, player failed on command NETWORK_CAN_SPEND_MONEY")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_3_DEFUNCT_BASE)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15BaseName), finalPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
DEFUNCT_BASE_DATA_STRUCT sDefunctBaseData
|
|
GET_SCALEFORM_DEFUNCT_BASE_DATA(sDefunctBaseData)
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
INT iPropval
|
|
IF eBaseID = eTradeInBase
|
|
iPropval = 0
|
|
ELSE
|
|
iPropval = CEIL(TO_FLOAT(GET_DEFUNCT_BASE_PRICE(eBaseID))*g_sMPTunables.fPropertyMultiplier)
|
|
ENDIF
|
|
|
|
bProcessingBasket = TRUE
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_ADD
|
|
INT iItemId = GET_DEFUNCT_BASE_KEY_FOR_CATALOGUE(eBaseID)
|
|
INT iInventoryKey = GET_DEFUNCT_BASE_INVENTORY_KEY_FOR_CATALOGUE()
|
|
INT iSellingItemId = 0
|
|
|
|
IF IS_DEFUNCT_BASE_ID_VALID(eTradeInBase)
|
|
iSellingItemId = GET_DEFUNCT_BASE_KEY_FOR_CATALOGUE(eTradeInBase)
|
|
ENDIF
|
|
|
|
INT iProcessSuccess = GENERIC_TRANSACTION_STATE_DEFAULT
|
|
|
|
///////////////////////////////////////////
|
|
/// TRANSACTION FOR DEFUNCT_BASE
|
|
WHILE PROCESSING_INTERNET_SHOPPING_BASKET(iProcessSuccess, iPropval, iResultSlot, CATEGORY_INVENTORY_WAREHOUSE, NET_SHOP_ACTION_BUY_WAREHOUSE, iItemId, iInventoryKey, 0, iOwnedTradeBaseValue, iSellingItemId)
|
|
RENDER_BROWSER()
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(TRUE)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(FALSE)
|
|
|
|
RENDER_BROWSER()
|
|
|
|
SWITCH iProcessSuccess
|
|
CASE GENERIC_TRANSACTION_STATE_FAILED
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: purchase failed, failed to process transaction")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_3_DEFUNCT_BASE)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
BREAK
|
|
CASE GENERIC_TRANSACTION_STATE_SUCCESS
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: success!!")
|
|
BREAK
|
|
DEFAULT
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: purchase failed, unknown iProcessSuccess: \"", iProcessSuccess, "\"")
|
|
EXIT
|
|
BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: ignore NETWORK_REQUEST_BASKET_TRANSACTION")
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: final:$", finalPendingTransactionValue, ", propval $", propval)
|
|
|
|
//Assign the telemetry data
|
|
//Increment the spending stat
|
|
IF finalPendingTransactionValue > 0
|
|
INCREMENT_BY_MP_INT_PLAYER_STAT(MPPLY_INGAMESTORE_MONEYSPENT, finalPendingTransactionValue)
|
|
ENDIF
|
|
|
|
SPENT_ON_BASE data
|
|
//Check if we're trading of just buying
|
|
IF (NOT IS_DEFUNCT_BASE_ID_VALID(eTradeInBase))
|
|
OR (bRenovateBase)
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
INT iFinalPropValue = propval
|
|
IF (sDefunct_base_price_struct.iPersonalQuartersPrice >= 0)
|
|
OR NOT bRenovateBase
|
|
data.m_livingQuarter = GET_HASH_KEY(GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_PERSONAL_QUARTERS, sDefunctBaseData.iPersonalQuarters))
|
|
data.m_livingQuarter_amount = sDefunct_base_price_struct.iPersonalQuartersPrice
|
|
iFinalPropValue -= data.m_livingQuarter_amount
|
|
ENDIF
|
|
IF (sDefunct_base_price_struct.iOrbitalWeaponPrice >= 0)
|
|
OR NOT bRenovateBase
|
|
data.m_orbcannon = GET_HASH_KEY(GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_ORBITAL_WEAPON, sDefunctBaseData.iOrbitalWeapon))
|
|
data.m_orbcannon_amount = sDefunct_base_price_struct.iOrbitalWeaponPrice
|
|
iFinalPropValue -= data.m_orbcannon_amount
|
|
ENDIF
|
|
IF (sDefunct_base_price_struct.iSecurityRoomPrice >= 0)
|
|
OR NOT bRenovateBase
|
|
data.m_secroom = GET_HASH_KEY(GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_SECURITY_ROOM, sDefunctBaseData.iSecurityRoom))
|
|
data.m_secroom_amount = sDefunct_base_price_struct.iSecurityRoomPrice
|
|
iFinalPropValue -= data.m_secroom_amount
|
|
ENDIF
|
|
IF (sDefunct_base_price_struct.iLoungePrice >= 0)
|
|
OR NOT bRenovateBase
|
|
data.m_lounge = GET_HASH_KEY(GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_LOUNGE, sDefunctBaseData.iLounge))
|
|
data.m_lounge_amount = sDefunct_base_price_struct.iLoungePrice
|
|
iFinalPropValue -= data.m_lounge_amount
|
|
ENDIF
|
|
IF (sDefunct_base_price_struct.iPrivicyGlassPrice >= 0)
|
|
OR NOT bRenovateBase
|
|
data.m_privacyglass = GET_HASH_KEY(GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_PRIVACY_GLASS, sDefunctBaseData.iPrivicyGlass))
|
|
data.m_privacyglass_amount = sDefunct_base_price_struct.iPrivicyGlassPrice
|
|
iFinalPropValue -= data.m_privacyglass_amount
|
|
ENDIF
|
|
IF (sDefunct_base_price_struct.iStylePrice >= 0)
|
|
OR NOT bRenovateBase
|
|
data.m_style = GET_HASH_KEY(GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_STYLE, sDefunctBaseData.iStyle))
|
|
data.m_style_amount = sDefunct_base_price_struct.iStylePrice
|
|
iFinalPropValue -= data.m_style_amount
|
|
ENDIF
|
|
IF (sDefunct_base_price_struct.iGraphicsPrice >= 0)
|
|
OR NOT bRenovateBase
|
|
data.m_graphics = GET_HASH_KEY(GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_GRAPHIC, GET_SF_FROM_DBASE_GRAPHICS(sDefunctBaseData.iGraphics)))
|
|
data.m_graphics_amount = sDefunct_base_price_struct.iGraphicsPrice
|
|
iFinalPropValue -= data.m_graphics_amount
|
|
ENDIF
|
|
IF (iFinalPropValue >= 0)
|
|
OR NOT bRenovateBase
|
|
data.m_location = GET_HASH_KEY(GET_DEFUNCT_BASE_NAME_FROM_ID(eBaseID))
|
|
data.m_location_amount = iFinalPropValue
|
|
ENDIF
|
|
|
|
IF NOT bRenovateBase
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: Bought defunct base for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_location:", data.m_location, " m_location_amount:$", data.m_location_amount, " ", GET_DEFUNCT_BASE_NAME_FROM_ID(eBaseID))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_orbcannon:", data.m_orbcannon, " m_orbcannon_amount:$", data.m_orbcannon_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_ORBITAL_WEAPON, sDefunctBaseData.iOrbitalWeapon))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_secroom:", data.m_secroom, " m_secroom_amount:$", data.m_secroom_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_SECURITY_ROOM, sDefunctBaseData.iSecurityRoom))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_lounge:", data.m_lounge, " m_lounge_amount:$", data.m_lounge_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_LOUNGE, sDefunctBaseData.iLounge))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_privacyglass:", data.m_privacyglass, " m_privacyglass_amount:$", data.m_privacyglass_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_PRIVACY_GLASS, sDefunctBaseData.iPrivicyGlass))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_style:", data.m_style, " m_style_amount:$", data.m_style_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_STYLE, sDefunctBaseData.iStyle))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_graphics:", data.m_graphics, " m_graphics_amount:$", data.m_graphics_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_GRAPHIC, GET_SF_FROM_DBASE_GRAPHICS(sDefunctBaseData.iGraphics)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_livingQuarter:", data.m_livingQuarter, " m_livingQuarter_amount:$", data.m_livingQuarter_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_PERSONAL_QUARTERS, sDefunctBaseData.iPersonalQuarters))
|
|
|
|
NETWORK_SPENT_BUY_BASE(propval, FALSE, TRUE, data)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: Renovate defunct base for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_location:", data.m_location, " m_location_amount:$", data.m_location_amount, " ", GET_DEFUNCT_BASE_NAME_FROM_ID(eBaseID))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_orbcannon:", data.m_orbcannon, " m_orbcannon_amount:$", data.m_orbcannon_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_ORBITAL_WEAPON, sDefunctBaseData.iOrbitalWeapon))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_secroom:", data.m_secroom, " m_secroom_amount:$", data.m_secroom_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_SECURITY_ROOM, sDefunctBaseData.iSecurityRoom))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_lounge:", data.m_lounge, " m_lounge_amount:$", data.m_lounge_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_LOUNGE, sDefunctBaseData.iLounge))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_privacyglass:", data.m_privacyglass, " m_privacyglass_amount:$", data.m_privacyglass_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_PRIVACY_GLASS, sDefunctBaseData.iPrivicyGlass))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_style:", data.m_style, " m_style_amount:$", data.m_style_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_STYLE, sDefunctBaseData.iStyle))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_graphics:", data.m_graphics, " m_graphics_amount:$", data.m_graphics_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_GRAPHIC, GET_SF_FROM_DBASE_GRAPHICS(sDefunctBaseData.iGraphics)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_livingQuarter:", data.m_livingQuarter, " m_livingQuarter_amount:$", data.m_livingQuarter_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_PERSONAL_QUARTERS, sDefunctBaseData.iPersonalQuarters))
|
|
|
|
NETWORK_SPENT_UPGRADE_BASE(propval, FALSE, TRUE, data)
|
|
ENDIF
|
|
|
|
IF NOT bRenovateBase
|
|
SET_DEFUNCT_BASE_AS_OWNED(eBaseID)
|
|
GANGOPS_SETUP_FACILITY_PURCHASED_FLOW_PHONECALL()
|
|
|
|
#IF FEATURE_GEN9_EXCLUSIVE
|
|
END_DOOMSDAY_HEIST_UDS_ACTIVITY_TASK(DOOMSDAY_HEIST_UDS_ACTIVITY_TASK_BUY_FACILITY, UDS_ACTIVITY_END_REASON_COMPLETED)
|
|
END_DOOMSDAY_HEIST_UDS_ACTIVITY(UDS_ACTIVITY_END_REASON_ABANDONED)
|
|
#ENDIF
|
|
ENDIF
|
|
|
|
ELIF GET_DEFUNCT_BASE_BASE_PRICE(eTradeInBase) > 0
|
|
// IF NOT SHOULD_DEFUNCT_BASE_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: Trading the business ", eTradeInBase, " is earning the player:$", iOwnedTradeBaseValue)
|
|
|
|
IF iOwnedTradeBaseValue != 0
|
|
NETWORK_EARN_SELL_BASE(iOwnedTradeBaseValue, GET_HASH_KEY(GET_DEFUNCT_BASE_NAME_FROM_ID(eTradeInBase)))
|
|
ENDIF
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: Earn nothing from property:$", GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(iResultSlot), " ", tl_15PropertyName, " as was free")
|
|
// ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
INT iFinalPropValue = finalPendingTransactionValue
|
|
iFinalPropValue += iOwnedTradeBaseValue
|
|
|
|
//
|
|
data.m_livingQuarter = GET_HASH_KEY(GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_PERSONAL_QUARTERS, sDefunctBaseData.iPersonalQuarters))
|
|
data.m_livingQuarter_amount = sDefunct_base_price_struct.iPersonalQuartersPrice
|
|
iFinalPropValue -= data.m_livingQuarter_amount
|
|
//
|
|
data.m_orbcannon = GET_HASH_KEY(GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_ORBITAL_WEAPON, sDefunctBaseData.iOrbitalWeapon))
|
|
data.m_orbcannon_amount = sDefunct_base_price_struct.iOrbitalWeaponPrice
|
|
iFinalPropValue -= data.m_orbcannon_amount
|
|
//
|
|
data.m_secroom = GET_HASH_KEY(GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_SECURITY_ROOM, sDefunctBaseData.iSecurityRoom))
|
|
data.m_secroom_amount = sDefunct_base_price_struct.iSecurityRoomPrice
|
|
iFinalPropValue -= data.m_secroom_amount
|
|
//
|
|
data.m_lounge = GET_HASH_KEY(GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_LOUNGE, sDefunctBaseData.iLounge))
|
|
data.m_lounge_amount = sDefunct_base_price_struct.iLoungePrice
|
|
iFinalPropValue -= data.m_lounge_amount
|
|
//
|
|
data.m_privacyglass = GET_HASH_KEY(GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_PRIVACY_GLASS, sDefunctBaseData.iPrivicyGlass))
|
|
data.m_privacyglass_amount = sDefunct_base_price_struct.iPrivicyGlassPrice
|
|
iFinalPropValue -= data.m_privacyglass_amount
|
|
//
|
|
data.m_style = GET_HASH_KEY(GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_STYLE, sDefunctBaseData.iStyle))
|
|
data.m_style_amount = sDefunct_base_price_struct.iStylePrice
|
|
iFinalPropValue -= data.m_style_amount
|
|
//
|
|
data.m_graphics = GET_HASH_KEY(GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_GRAPHIC, GET_SF_FROM_DBASE_GRAPHICS(sDefunctBaseData.iGraphics)))
|
|
data.m_graphics_amount = sDefunct_base_price_struct.iGraphicsPrice
|
|
iFinalPropValue -= data.m_graphics_amount
|
|
//
|
|
data.m_location = GET_HASH_KEY(GET_DEFUNCT_BASE_NAME_FROM_ID(eBaseID))
|
|
data.m_location_amount = iFinalPropValue
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: Trading defunct base for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_location:", data.m_location, " m_location_amount:$", data.m_location_amount, " ", GET_DEFUNCT_BASE_NAME_FROM_ID(eBaseID))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_orbcannon:", data.m_orbcannon, " m_orbcannon_amount:$", data.m_orbcannon_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_ORBITAL_WEAPON, sDefunctBaseData.iOrbitalWeapon))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_secroom:", data.m_secroom, " m_secroom_amount:$", data.m_secroom_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_SECURITY_ROOM, sDefunctBaseData.iSecurityRoom))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_lounge:", data.m_lounge, " m_lounge_amount:$", data.m_lounge_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_LOUNGE, sDefunctBaseData.iLounge))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_privacyglass:", data.m_privacyglass, " m_privacyglass_amount:$", data.m_privacyglass_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_PRIVACY_GLASS, sDefunctBaseData.iPrivicyGlass))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_style:", data.m_style, " m_style_amount:$", data.m_style_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_STYLE, sDefunctBaseData.iStyle))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_graphics:", data.m_graphics, " m_graphics_amount:$", data.m_graphics_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_GRAPHIC, GET_SF_FROM_DBASE_GRAPHICS(sDefunctBaseData.iGraphics)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: m_livingQuarter:", data.m_livingQuarter, " m_livingQuarter_amount:$", data.m_livingQuarter_amount, " ", GET_DEFUNCT_BASE_MOD_NAME_FROM_ID(eDEFUNCT_BASE_MOD_PERSONAL_QUARTERS, sDefunctBaseData.iPersonalQuarters))
|
|
|
|
NETWORK_SPENT_UPGRADE_BASE(propval, FALSE, TRUE, data)
|
|
|
|
// REMOTE_REQUEST_REMOVE_ALL_CONTRABAND_FROM_XXXXXX()
|
|
TRADE_DEFUNCT_BASE(eBaseID, eTradeInBase)
|
|
ENDIF
|
|
|
|
INT iBuyPropertyIndex = PROPERTY_DEFUNC_BASE
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_DEFUNCBASE, iBuyPropertyIndex)
|
|
IF NOT bRenovateBase
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_DEFUNCBASE_VALUE, propval)
|
|
|
|
INT iForceDisplayUpdatedSlot
|
|
IF GET_OWNED_PROPERTY(0) <= 0
|
|
IF IS_PERSONAL_VEHICLE_DRIVEABLE_IN_FREEMODE()
|
|
IF DOES_ENTITY_EXIST(MPGlobalsAmbience.vehPersonalVehicle)
|
|
MPSV_GET_DISPLAY_SLOT_FROM_SAVE_SLOT(CURRENT_SAVED_VEHICLE_SLOT(),iForceDisplayUpdatedSlot)
|
|
IF iForceDisplayUpdatedSlot <= 0
|
|
iForceDisplayUpdatedSlot = MP_SAVE_VEHICLE_GET_EMPTY_DISPLAY_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,GET_ENTITY_MODEL(MPGlobalsAmbience.vehPersonalVehicle))
|
|
IF iForceDisplayUpdatedSlot >= 0
|
|
PRINTLN("Forcing vehicle out in freemode slot display to #",iForceDisplayUpdatedSlot," when buying facility")
|
|
MPSV_SET_DISPLAY_SLOT(iForceDisplayUpdatedSlot,CURRENT_SAVED_VEHICLE_SLOT())
|
|
IF iForceDisplayUpdatedSlot != 0
|
|
MPSV_SET_DISPLAY_SLOT(0,-1)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: iPersonalQuarters: ", sDefunctBaseData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: iOrbitalWeapon: ", sDefunctBaseData.iOrbitalWeapon)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: iSecurityRoom: ", sDefunctBaseData.iSecurityRoom)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: iLounge: ", sDefunctBaseData.iLounge)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: iPrivicyGlass: ", sDefunctBaseData.iPrivicyGlass)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: iColour: ", sDefunctBaseData.iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: iGraphics: ", sDefunctBaseData.iGraphics)
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(sDefunctBaseData.iPersonalQuarters)
|
|
IF (GET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_PERSONAL_QUARTERS) != sDefunctBaseData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: set defunct base spawn, player bought accomodation")
|
|
SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_DEFUNCT_BASE)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: set defunct base spawn, player already has accom so not a renovation")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_PERSONAL_QUARTERS, sDefunctBaseData.iPersonalQuarters)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_ORBITAL_WEAPON, sDefunctBaseData.iOrbitalWeapon)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_SECURITY_ROOM, sDefunctBaseData.iSecurityRoom)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_LOUNGE, sDefunctBaseData.iLounge)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_PRIVACY_GLASS, sDefunctBaseData.iPrivicyGlass)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_FACILITY_STYLE, sDefunctBaseData.iStyle)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_DBASE_FACILITY_GRAPHIC, sDefunctBaseData.iGraphics)
|
|
|
|
BROADCAST_PLAYER_PURCHASED_DEFUNCT_BASE()
|
|
|
|
enumCharacterList CharacterToAdd = GET_GANGOPS_CONTACT()
|
|
IF NOT IS_CONTACT_IN_PHONEBOOK(CharacterToAdd, MULTIPLAYER_BOOK)
|
|
BOOL bDisplay = FALSE
|
|
ADD_CONTACT_TO_PHONEBOOK(CharacterToAdd, MULTIPLAYER_BOOK,bDisplay)
|
|
CPRINTLN(DEBUG_INTERNET, "[DEFUNCT_BASE_CONTACT] MAINTAIN_ADD_GANGOPS_DEFUNCT_BASE_CONTACT - ADD_CONTACT_TO_PHONEBOOK(",
|
|
g_sCharacterSheetAll[CharacterToAdd].label, ", MULTIPLAYER_BOOK, ", bDisplay, ")")
|
|
ENDIF
|
|
|
|
IF IS_BIT_SET(iPurchaseHelpBS, PURCHASE_HELP_BS_FDSE0DB)
|
|
CDEBUG1LN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: purchased facility, set bDisplayed_HELP_FDSE0db false")
|
|
CLEAR_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_FDSE0DB)
|
|
ENDIF
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Special","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
bBrowserShoppingSavePending = TRUE
|
|
CHECK_AMERICAN_DREAM_ACHIEVEMENT()
|
|
POPULATE_MP_BIKER_PROPERTY_SITE_PIN_MAP(mov, TRUE)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_SUCCESS", TRUE, bRenovateBase, FALSE, FALSE, rpmt_3_DEFUNCT_BASE)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: purchase complete, refreshing pin map")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
iBoughtPropertyIndex = -1
|
|
eBoughtFactoryIndex = FACTORY_ID_INVALID
|
|
eBoughtHangarIndex = HANGAR_ID_INVALID
|
|
eBoughtDefunctBaseIndex = eBaseID
|
|
eBoughtNightclubIndex = NIGHTCLUB_ID_INVALID
|
|
eBoughtArenaIndex = ARENA_GARAGE_ID_INVALID
|
|
eBoughtArcadeIndex = ARCADE_PROPERTY_ID_INVALID
|
|
eBoughtCasinoIndex = CASINO_APARTMENT_ID_INVALID
|
|
iBoughtCasinoPreset = -1
|
|
eBoughtAutoShopIndex = AUTO_SHOP_PROPERTY_ID_INVALID
|
|
#IF FEATURE_FIXER
|
|
eBoughtFixerHQIndex = FIXER_HQ_ID_INVALID
|
|
#ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_DEFUNCT_BASE_FROM_WEBSITE: purchase complete, resetting iCustomAptVariant to 1")
|
|
ENDPROC
|
|
|
|
PROC BUY_MP_NIGHTCLUB_FROM_WEBSITE(NIGHTCLUB_ID eNightclubID, INT &iResultSlot)
|
|
|
|
INT minPendingTransactionValue, finalPendingTransactionValue, iOwnedTradeNightclubValue
|
|
|
|
INT iBankBalance = NETWORK_GET_VC_BANK_BALANCE()
|
|
INT iWalletBalance = NETWORK_GET_VC_WALLET_BALANCE()
|
|
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_NCLUBSTY")
|
|
OR IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_NCLUBLIG")
|
|
OR IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_NCLUBDAN")
|
|
OR IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_NCLUBICE")
|
|
CLEAR_HELP()
|
|
CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT()
|
|
ENDIF
|
|
|
|
IF NOT IS_FM_TYPE_UNLOCKED(FMMC_TYPE_CUSTOM_CAR_GARAGE)
|
|
IF GET_PLAYER_RANK(GET_PLAYER_INDEX()) < 5
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: purchase failed, player doesn't have sufficient rank (", GET_PLAYER_RANK(GET_PLAYER_INDEX()), ")")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: purchase failed, player pending unlock for sufficient rank")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK_PENDING
|
|
ENDIF
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_4_NIGHTCLUB)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
IF NOT NET_GAMESERVER_IS_SESSION_VALID(GET_ACTIVE_CHARACTER_SLOT())
|
|
OR NET_GAMESERVER_IS_SESSION_REFRESH_PENDING()
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: purchase failed - session pending!")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_4_NIGHTCLUB)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
TEXT_LABEL_15 tl_15NightclubName = GET_NIGHTCLUB_NAME_FROM_ID(eNightclubID)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: trying to purchase Nightclub ", tl_15NightclubName, " #", eNightclubID)
|
|
|
|
INT propval = CEIL(TO_FLOAT(GET_NIGHTCLUB_PRICE(eNightclubID))*g_sMPTunables.fPropertyMultiplier)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: purchase valid, attempting index ", tl_15NightclubName, " $", propval)
|
|
|
|
minPendingTransactionValue = propval
|
|
|
|
NIGHTCLUB_ID eTradeInNightclub = GET_PLAYERS_OWNED_NIGHTCLUB(PLAYER_ID())
|
|
|
|
IF IS_NIGHTCLUB_ID_VALID(eTradeInNightclub)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: currently owns Nightclub #", eTradeInNightclub)
|
|
|
|
INT iCurrentMission = GB_GET_PLAYER_CURRENT_GANG_BOSS_MISSION(PLAYER_ID())
|
|
IF GB_IS_PLAYER_BOSS_OF_A_GANG(PLAYER_ID())
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: player current gang boss mission: \"", GANG_BOSS_GET_NAME_FOR_TYPE_FOR_DEBUG_PRINT(iCurrentMission), "\"")
|
|
|
|
IF (iCurrentMission != -1)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: purchase failed, player current gang boss mission: ", GANG_BOSS_GET_NAME_FOR_TYPE_FOR_DEBUG_PRINT(iCurrentMission))
|
|
mpPropertySiteFailReason = MPSFR_ON_MISSION
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_4_NIGHTCLUB)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BOOL bRenovateNightclub = FALSE
|
|
IF (eNightclubID = eTradeInNightclub)
|
|
IF GET_LOCAL_PLAYER_USING_OFFICE_SEATID() != -1
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: purchase failed - using office seat ", GET_LOCAL_PLAYER_USING_OFFICE_SEATID(), "!")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_4_NIGHTCLUB)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
|
|
propval = CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES(eNightclubID, sNightclub_price_struct)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: renovate ", tl_15NightclubName, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
bRenovateNightclub = TRUE
|
|
ELSE
|
|
IF eTradeInNightclub != NIGHTCLUB_ID_INVALID
|
|
INT iTotalGoodsInHub = GET_PLAYERS_TOTAL_OF_ALL_GOODS_IN_HUB(PLAYER_ID())
|
|
IF iTotalGoodsInHub > 0
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: purchase failed - can't trade, has ", iTotalGoodsInHub, " goods in hub!")
|
|
mpPropertySiteFailReason = MPSFR_HAS_STOCK
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_4_NIGHTCLUB)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
propval += CALCULATE_COST_OF_NIGHTCLUB_INTERIOR_UPGRADES(eNightclubID, sNightclub_price_struct)
|
|
|
|
IF NOT IS_NIGHTCLUB_ID_VALID(eTradeInNightclub)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: purchase ", tl_15NightclubName, " for ", eTradeInNightclub, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: trade ", tl_15NightclubName, " for ", eTradeInNightclub, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
minPendingTransactionValue = propval
|
|
|
|
//is it a debit or refund
|
|
IF NOT IS_NIGHTCLUB_ID_VALID(eTradeInNightclub)
|
|
OR bRenovateNightclub
|
|
IF minPendingTransactionValue > 0
|
|
//do they have enough money
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " <> $", minPendingTransactionValue)
|
|
IF (minPendingTransactionValue <= 0
|
|
OR (minPendingTransactionValue > 0 AND NOT NETWORK_CAN_SPEND_MONEY(minPendingTransactionValue,FALSE,TRUE,FALSE)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < NETWORK_CAN_SPEND_MONEY:minPendingTransactionValue $", minPendingTransactionValue, "]")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_4_NIGHTCLUB)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15NightclubName), minPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
|
|
//is it a debit or refund
|
|
INT iTempMinPendingTransactionValue = minPendingTransactionValue-GET_NIGHTCLUB_SALE_VALUE(eTradeInNightclub)
|
|
IF iTempMinPendingTransactionValue >0
|
|
//do they have enough money
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " > $", minPendingTransactionValue, "+", GET_NIGHTCLUB_SALE_VALUE(eTradeInNightclub))
|
|
|
|
IF (iTempMinPendingTransactionValue <= 0
|
|
OR (iTempMinPendingTransactionValue > 0 AND NOT NETWORK_CAN_SPEND_MONEY(iTempMinPendingTransactionValue,FALSE,TRUE,FALSE)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < NETWORK_CAN_SPEND_MONEY:iTempMinPendingTransactionValue $", minPendingTransactionValue, "+", GET_NIGHTCLUB_SALE_VALUE(eTradeInNightclub), "]")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_4_NIGHTCLUB)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15NightclubName), iTempMinPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " <= $", minPendingTransactionValue, "+", GET_NIGHTCLUB_SALE_VALUE(eTradeInNightclub))
|
|
ENDIF
|
|
|
|
INT iReplaceSpecificPropertySlot
|
|
REPLACE_MP_VEH_OR_PROP_MENU replaceMenu
|
|
WHILE NOT RUN_REPLACE_PROPERTY_MENU(replaceMenu,iResultSlot,ENUM_TO_INT(eNightclubID),iReplaceSpecificPropertySlot,rpmt_4_NIGHTCLUB)
|
|
AND DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
DISABLE_SELECTOR_THIS_FRAME()
|
|
DISABLE_CELLPHONE_THIS_FRAME_ONLY()
|
|
WAIT(0)
|
|
g_sMenuData.bKeepPhoneForNextDrawMenuCall = TRUE
|
|
ENDWHILE
|
|
|
|
|
|
IF iResultSlot = -1
|
|
mpPropertySiteFailReason = MPSFR_CANCELED
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_4_NIGHTCLUB)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
g_iPendingBrowserTimer = g_iBrowserTimer
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
CPRINTLN(DEBUG_INTERNET, "CDM: BUY_MP_NIGHTCLUB_FROM_WEBSITE: purchase failed, player backed out of property selection")
|
|
EXIT
|
|
ELSE
|
|
iOwnedTradeNightclubValue = GET_NIGHTCLUB_SALE_VALUE(eTradeInNightclub)
|
|
|
|
finalPendingTransactionValue = propval - iOwnedTradeNightclubValue
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: Player selected iResultSlot ", iResultSlot, ", trade ba: ", eTradeInNightclub, " for trade. propval $", propval, ", iOwnedTradeNightclubValue: ", iOwnedTradeNightclubValue, " Final trans value $", finalPendingTransactionValue)
|
|
ENDIF
|
|
|
|
// Re-check if player can afford based on selected trade-in value
|
|
IF finalPendingTransactionValue > 0
|
|
//do they have enough money
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " + trade:$", iOwnedTradeNightclubValue, " <> $", finalPendingTransactionValue)
|
|
|
|
IF NOT NETWORK_CAN_SPEND_MONEY(finalPendingTransactionValue, FALSE, TRUE, FALSE)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: purchase failed, player failed on command NETWORK_CAN_SPEND_MONEY")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_4_NIGHTCLUB)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15NightclubName), finalPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
NIGHTCLUB_DATA_STRUCT sNightclubData
|
|
GET_SCALEFORM_NIGHTCLUB_DATA(sNightclubData)
|
|
|
|
// IF IS_NIGHTCLUB_UPGRADE_PURCHASE_DISABLED(eNIGHTCLUB_MOD_DJ2_PURCHASED, eNightclubID, sNightclubData.iDJChoice)
|
|
// CWARNINGLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: purchase failed - DJ Choice ", sNightclubData.iDJChoice, " disabled")
|
|
// mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
// SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_4_NIGHTCLUB)
|
|
//
|
|
// PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
// iCustomAptVariant = 1
|
|
// bCustomInteriorSelected = FALSE
|
|
// EXIT
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: DJ Choice ", sNightclubData.iDJChoice, " enabled")
|
|
// ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
INT iPropval
|
|
IF eNightclubID = eTradeInNightclub
|
|
iPropval = 0
|
|
ELSE
|
|
iPropval = CEIL(TO_FLOAT(GET_NIGHTCLUB_PRICE(eNightclubID))*g_sMPTunables.fPropertyMultiplier)
|
|
ENDIF
|
|
|
|
bProcessingBasket = TRUE
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_ADD
|
|
INT iItemId = GET_NIGHTCLUB_KEY_FOR_CATALOGUE(eNightclubID)
|
|
INT iInventoryKey = GET_NIGHTCLUB_INVENTORY_KEY_FOR_CATALOGUE()
|
|
INT iSellingItemId = 0
|
|
|
|
IF IS_NIGHTCLUB_ID_VALID(eTradeInNightclub)
|
|
iSellingItemId = GET_NIGHTCLUB_KEY_FOR_CATALOGUE(eTradeInNightclub)
|
|
ENDIF
|
|
|
|
INT iProcessSuccess = GENERIC_TRANSACTION_STATE_DEFAULT
|
|
|
|
///////////////////////////////////////////
|
|
/// TRANSACTION FOR NIGHTCLUB
|
|
WHILE PROCESSING_INTERNET_SHOPPING_BASKET(iProcessSuccess, iPropval, iResultSlot, CATEGORY_INVENTORY_WAREHOUSE, NET_SHOP_ACTION_BUY_WAREHOUSE, iItemId, iInventoryKey, 0, iOwnedTradeNightclubValue, iSellingItemId)
|
|
RENDER_BROWSER()
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(TRUE)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(FALSE)
|
|
|
|
RENDER_BROWSER()
|
|
|
|
SWITCH iProcessSuccess
|
|
CASE GENERIC_TRANSACTION_STATE_FAILED
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: purchase failed, failed to process transaction")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_4_NIGHTCLUB)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
BREAK
|
|
CASE GENERIC_TRANSACTION_STATE_SUCCESS
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: success!!")
|
|
BREAK
|
|
DEFAULT
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: purchase failed, unknown iProcessSuccess: \"", iProcessSuccess, "\"")
|
|
EXIT
|
|
BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: ignore NETWORK_REQUEST_BASKET_TRANSACTION")
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: final:$", finalPendingTransactionValue, ", propval $", propval)
|
|
|
|
//Assign the telemetry data
|
|
//Increment the spending stat
|
|
IF finalPendingTransactionValue > 0
|
|
INCREMENT_BY_MP_INT_PLAYER_STAT(MPPLY_INGAMESTORE_MONEYSPENT, finalPendingTransactionValue)
|
|
ENDIF
|
|
|
|
STRUCT_SPENT_ON_NIGHTCLUB_AND_WAREHOUSE data
|
|
//Check if we're trading of just buying
|
|
IF (NOT IS_NIGHTCLUB_ID_VALID(eTradeInNightclub))
|
|
OR (bRenovateNightclub)
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
INT iFinalPropValue = propval
|
|
IF (sNightclub_price_struct.iDancersPrice >= 0)
|
|
OR NOT bRenovateNightclub
|
|
data.m_podium = GET_HASH_KEY(GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_DANCERS, sNightclubData.iDancers))
|
|
data.m_podium_amount = sNightclub_price_struct.iDancersPrice
|
|
iFinalPropValue -= data.m_podium_amount
|
|
ENDIF
|
|
IF (sNightclub_price_struct.iDryIcePrice >= 0)
|
|
OR NOT bRenovateNightclub
|
|
data.m_dryice = GET_HASH_KEY(GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_DRYICE, sNightclubData.iDryIce))
|
|
data.m_dryice_amount = sNightclub_price_struct.iDryIcePrice
|
|
iFinalPropValue -= data.m_dryice_amount
|
|
ENDIF
|
|
IF (sNightclub_price_struct.iStoragePrice >= 0)
|
|
OR NOT bRenovateNightclub
|
|
data.m_whBasement2 = GET_HASH_KEY(GET_BUSINESS_HUB_MOD_NAME_FROM_ID(eBUSINESS_HUB_MOD_WAREHOUSE, sNightclubData.iStorage))
|
|
data.m_whBasement2_amount = sNightclub_price_struct.iStoragePrice
|
|
iFinalPropValue -= data.m_whBasement2_amount
|
|
ENDIF
|
|
IF (sNightclub_price_struct.iGaragePrice >= 0)
|
|
OR NOT bRenovateNightclub
|
|
data.m_whGarage2 = GET_HASH_KEY(GET_BUSINESS_HUB_MOD_NAME_FROM_ID(eBUSINESS_HUB_MOD_GARAGE, sNightclubData.iGarage))
|
|
data.m_whGarage2_amount = sNightclub_price_struct.iGaragePrice
|
|
iFinalPropValue -= data.m_whGarage2_amount
|
|
ENDIF
|
|
IF (sNightclub_price_struct.iStylePrice >= 0)
|
|
OR NOT bRenovateNightclub
|
|
data.m_style = GET_HASH_KEY(GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_STYLE, sNightclubData.iStyle))
|
|
data.m_style_amount = sNightclub_price_struct.iStylePrice
|
|
iFinalPropValue -= data.m_style_amount
|
|
ENDIF
|
|
IF (sNightclub_price_struct.iLightingPrice >= 0)
|
|
OR NOT bRenovateNightclub
|
|
data.m_lighting = GET_HASH_KEY(GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_LIGHTING, GET_SF_FROM_NIGHTCLUB_LIGHTING(sNightclubData.iLighting)))
|
|
data.m_lighting_amount = sNightclub_price_struct.iLightingPrice
|
|
iFinalPropValue -= data.m_lighting_amount
|
|
ENDIF
|
|
IF (sNightclub_price_struct.iNamePrice >= 0)
|
|
OR NOT bRenovateNightclub
|
|
data.m_name = GET_HASH_KEY(GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_NAME, GET_SF_FROM_NIGHTCLUB_NAME(sNightclubData.iNameID)))
|
|
data.m_name_amount = sNightclub_price_struct.iNamePrice
|
|
iFinalPropValue -= data.m_name_amount
|
|
ENDIF
|
|
IF (iFinalPropValue >= 0)
|
|
OR NOT bRenovateNightclub
|
|
data.m_location = GET_HASH_KEY(GET_NIGHTCLUB_NAME_FROM_ID(eNightclubID))
|
|
data.m_location_amount = iFinalPropValue
|
|
ENDIF
|
|
|
|
IF NOT bRenovateNightclub
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: Bought nightclub for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_location:", data.m_location, " m_location_amount:$", data.m_location_amount, " ", GET_NIGHTCLUB_NAME_FROM_ID(eNightclubID))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_style:", data.m_style, " m_style_amount:$", data.m_style_amount, " ", GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_STYLE, sNightclubData.iStyle))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_lighting:", data.m_lighting, " m_lighting_amount:$", data.m_lighting_amount, " ", GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_LIGHTING, GET_SF_FROM_NIGHTCLUB_LIGHTING(sNightclubData.iLighting)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_podium:", data.m_podium, " m_podium_amount:$", data.m_podium_amount, " ", GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_DANCERS, sNightclubData.iDancers))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_dryice:", data.m_dryice, " m_dryice_amount:$", data.m_dryice_amount, " ", GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_DRYICE, sNightclubData.iDryIce))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_whBasement2:", data.m_whBasement2, " m_whBasement2_amount:$", data.m_whBasement2_amount, " ", GET_BUSINESS_HUB_MOD_NAME_FROM_ID(eBUSINESS_HUB_MOD_WAREHOUSE, sNightclubData.iStorage))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_whGarage2:", data.m_whGarage2, " m_whGarage2_amount:$", data.m_whGarage2_amount, " ", GET_BUSINESS_HUB_MOD_NAME_FROM_ID(eBUSINESS_HUB_MOD_GARAGE, sNightclubData.iGarage))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_name:", data.m_name, " m_name_amount:$", data.m_name_amount, " ", GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_NAME, GET_SF_FROM_NIGHTCLUB_NAME(sNightclubData.iNameID)))
|
|
|
|
NETWORK_SPENT_PURCHASE_NIGHTCLUB_AND_WAREHOUSE(propval, data, FALSE, TRUE)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: Renovate nightclub for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_location:", data.m_location, " m_location_amount:$", data.m_location_amount, " ", GET_NIGHTCLUB_NAME_FROM_ID(eNightclubID))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_style:", data.m_style, " m_style_amount:$", data.m_style_amount, " ", GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_STYLE, sNightclubData.iStyle))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_lighting:", data.m_lighting, " m_lighting_amount:$", data.m_lighting_amount, " ", GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_LIGHTING, GET_SF_FROM_NIGHTCLUB_LIGHTING(sNightclubData.iLighting)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_podium:", data.m_podium, " m_podium_amount:$", data.m_podium_amount, " ", GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_DANCERS, sNightclubData.iDancers))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_dryice:", data.m_dryice, " m_dryice_amount:$", data.m_dryice_amount, " ", GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_DRYICE, sNightclubData.iDryIce))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_whBasement2:", data.m_whBasement2, " m_whBasement2_amount:$", data.m_whBasement2_amount, " ", GET_BUSINESS_HUB_MOD_NAME_FROM_ID(eBUSINESS_HUB_MOD_WAREHOUSE, sNightclubData.iStorage))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_whGarage2:", data.m_whGarage2, " m_whGarage2_amount:$", data.m_whGarage2_amount, " ", GET_BUSINESS_HUB_MOD_NAME_FROM_ID(eBUSINESS_HUB_MOD_GARAGE, sNightclubData.iGarage))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_name:", data.m_name, " m_name_amount:$", data.m_name_amount, " ", GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_NAME, GET_SF_FROM_NIGHTCLUB_NAME(sNightclubData.iNameID)))
|
|
|
|
NETWORK_SPENT_UPGRADE_NIGHTCLUB_AND_WAREHOUSE(propval, data, FALSE, TRUE)
|
|
ENDIF
|
|
|
|
IF NOT bRenovateNightclub
|
|
SET_NIGHTCLUB_AS_OWNED(eNightclubID)
|
|
SET_BIT(MPGlobalsAmbience.iFmGbHelpBitSet6, BI_FM_GANG_BOSS_HELP_6_SEND_NIGHTCLUB_PURCHASED_TEXT)
|
|
PRINTLN("[FMBB_CALL] - BUY_MP_NIGHTCLUB_FROM_WEBSITE - BI_FM_GANG_BOSS_HELP_6_SEND_NIGHTCLUB_PURCHASED_TEXT set")
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: set nightclub spawn, player bought accomodation")
|
|
SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_NIGHTCLUB)
|
|
|
|
|
|
SET_NIGHTCLUB_DJ_ACTIVE_STATE(DJ_SOLOMUN, TRUE)
|
|
ENDIF
|
|
|
|
ELIF GET_NIGHTCLUB_BASE_PRICE(eTradeInNightclub) > 0
|
|
// IF NOT SHOULD_NIGHTCLUB_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: Trading the business ", eTradeInNightclub, " is earning the player:$", iOwnedTradeNightclubValue)
|
|
NETWORK_EARN_NIGHTCLUB_AND_WAREHOUSE(iOwnedTradeNightclubValue, GET_HASH_KEY(GET_NIGHTCLUB_NAME_FROM_ID(eTradeInNightclub)), 0, 0, 0, 0, 0)
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: Earn nothing from property:$", GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(iResultSlot), " ", tl_15PropertyName, " as was free")
|
|
// ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
INT iFinalPropValue = finalPendingTransactionValue
|
|
iFinalPropValue += iOwnedTradeNightclubValue
|
|
|
|
//
|
|
data.m_style = GET_HASH_KEY(GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_STYLE, sNightclubData.iStyle))
|
|
data.m_style_amount = sNightclub_price_struct.iStylePrice
|
|
iFinalPropValue -= data.m_style_amount
|
|
//
|
|
data.m_lighting = GET_HASH_KEY(GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_LIGHTING, GET_SF_FROM_NIGHTCLUB_LIGHTING(sNightclubData.iLighting)))
|
|
data.m_lighting_amount = sNightclub_price_struct.iLightingPrice
|
|
iFinalPropValue -= data.m_lighting_amount
|
|
//
|
|
data.m_podium = GET_HASH_KEY(GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_DANCERS, sNightclubData.iDancers))
|
|
data.m_podium_amount = sNightclub_price_struct.iDancersPrice
|
|
iFinalPropValue -= data.m_podium_amount
|
|
//
|
|
data.m_dryice = GET_HASH_KEY(GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_DRYICE, sNightclubData.iDryIce))
|
|
data.m_dryice_amount = sNightclub_price_struct.iDryIcePrice
|
|
iFinalPropValue -= data.m_dryice_amount
|
|
//
|
|
data.m_whBasement2 = GET_HASH_KEY(GET_BUSINESS_HUB_MOD_NAME_FROM_ID(eBUSINESS_HUB_MOD_WAREHOUSE, sNightclubData.iStorage))
|
|
data.m_whBasement2_amount = sNightclub_price_struct.iStoragePrice
|
|
iFinalPropValue -= data.m_whBasement2_amount
|
|
//
|
|
data.m_whGarage2 = GET_HASH_KEY(GET_BUSINESS_HUB_MOD_NAME_FROM_ID(eBUSINESS_HUB_MOD_GARAGE, sNightclubData.iGarage))
|
|
data.m_whGarage2_amount = sNightclub_price_struct.iGaragePrice
|
|
iFinalPropValue -= data.m_whGarage2_amount
|
|
//
|
|
data.m_name = GET_HASH_KEY(GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_NAME, GET_SF_FROM_NIGHTCLUB_NAME(sNightclubData.iNameID)))
|
|
data.m_name_amount = sNightclub_price_struct.inamePrice
|
|
iFinalPropValue -= data.m_name_amount
|
|
//
|
|
data.m_location = GET_HASH_KEY(GET_NIGHTCLUB_NAME_FROM_ID(eNightclubID))
|
|
data.m_location_amount = iFinalPropValue
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: Trading nightclub for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_location:", data.m_location, " m_location_amount:$", data.m_location_amount, " ", GET_NIGHTCLUB_NAME_FROM_ID(eNightclubID))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_style:", data.m_style, " m_style_amount:$", data.m_style_amount, " ", GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_STYLE, sNightclubData.iStyle))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_lighting:", data.m_lighting, " m_lighting_amount:$", data.m_lighting_amount, " ", GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_LIGHTING, GET_SF_FROM_NIGHTCLUB_LIGHTING(sNightclubData.iLighting)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_podium:", data.m_podium, " m_podium_amount:$", data.m_podium_amount, " ", GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_DANCERS, sNightclubData.iDancers))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_dryice:", data.m_dryice, " m_dryice_amount:$", data.m_dryice_amount, " ", GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_DRYICE, sNightclubData.iDryIce))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_whBasement2:", data.m_whBasement2, " m_whBasement2_amount:$", data.m_whBasement2_amount, " ", GET_BUSINESS_HUB_MOD_NAME_FROM_ID(eBUSINESS_HUB_MOD_WAREHOUSE, sNightclubData.iStorage))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_whGarage2:", data.m_whGarage2, " m_whGarage2_amount:$", data.m_whGarage2_amount, " ", GET_BUSINESS_HUB_MOD_NAME_FROM_ID(eBUSINESS_HUB_MOD_GARAGE, sNightclubData.iGarage))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: m_name:", data.m_name, " m_name_amount:$", data.m_name_amount, " ", GET_NIGHTCLUB_MOD_NAME_FROM_ID(eNIGHTCLUB_MOD_NAME, GET_SF_FROM_NIGHTCLUB_NAME(sNightclubData.iNameID)))
|
|
|
|
NETWORK_SPENT_UPGRADE_NIGHTCLUB_AND_WAREHOUSE(propval, data, FALSE, TRUE)
|
|
|
|
// REMOTE_REQUEST_REMOVE_ALL_CONTRABAND_FROM_XXXXXX()
|
|
TRADE_NIGHTCLUB(eNightclubID, eTradeInNightclub)
|
|
ENDIF
|
|
|
|
INT iBuyPropertyIndex = PROPERTY_NIGHTCLUB
|
|
iResultSlot = PROPERTY_OWNED_SLOT_NIGHTCLUB
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_NIGHTCLUB, iBuyPropertyIndex)
|
|
IF NOT bRenovateNightclub
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_NIGHTCLUB_VALUE, propval)
|
|
IF GET_OWNED_PROPERTY(0) <= 0
|
|
IF IS_PERSONAL_VEHICLE_DRIVEABLE_IN_FREEMODE()
|
|
IF DOES_ENTITY_EXIST(MPGlobalsAmbience.vehPersonalVehicle)
|
|
INT iForceDisplayUpdatedSlot
|
|
MPSV_GET_DISPLAY_SLOT_FROM_SAVE_SLOT(CURRENT_SAVED_VEHICLE_SLOT(),iForceDisplayUpdatedSlot)
|
|
IF iForceDisplayUpdatedSlot <= 0
|
|
iForceDisplayUpdatedSlot = MP_SAVE_VEHICLE_GET_EMPTY_DISPLAY_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,GET_ENTITY_MODEL(MPGlobalsAmbience.vehPersonalVehicle))
|
|
IF iForceDisplayUpdatedSlot >= 0
|
|
PRINTLN("Forcing vehicle out in freemode slot display to #",iForceDisplayUpdatedSlot," when buying nightclub")
|
|
MPSV_SET_DISPLAY_SLOT(iForceDisplayUpdatedSlot,CURRENT_SAVED_VEHICLE_SLOT())
|
|
IF iForceDisplayUpdatedSlot != 0
|
|
MPSV_SET_DISPLAY_SLOT(0,-1)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
ENDIF
|
|
|
|
g_iHubDefendLaunchTimeRemaining = GET_BUSINESS_HUB_TOTAL_AMBIENT_MISSION_INTERVAL(AMB_TYPE_DEFEND)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_BBT_DEFEND_TIMER_NCLUB, g_iHubDefendLaunchTimeRemaining)
|
|
PRINTLN("[BUSINESS_HUB][HUB_DEFEND] Local player now owns a hub. Setting timer to: ", g_iHubDefendLaunchTimeRemaining)
|
|
|
|
g_iHubPhoneMissionLaunchTimeRemaining = GET_BUSINESS_HUB_TOTAL_AMBIENT_MISSION_INTERVAL(AMB_TYPE_PHONECALL)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_BBT_DEFEND_TIMER_NCLUB, g_iHubPhoneMissionLaunchTimeRemaining)
|
|
PRINTLN("[BUSINESS_HUB][HUB_PHONE] Local player now owns a hub. Setting phone mission launch timer to: ", g_iHubPhoneMissionLaunchTimeRemaining)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: iStyle: ", sNightclubData.iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: iLighting: ", sNightclubData.iLighting)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: iDancers: ", sNightclubData.iDancers)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: iDryIce: ", sNightclubData.iDryIce)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: iStorage: ", sNightclubData.iStorage)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: iGarage: ", sNightclubData.iGarage)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: iNameID: ", sNightclubData.iNameID)
|
|
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_NIGHTCLUB_UPGRADE(eNIGHTCLUB_MOD_STYLE), sNightclubData.iStyle)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_NIGHTCLUB_UPGRADE(eNIGHTCLUB_MOD_LIGHTING), sNightclubData.iLighting)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_NIGHTCLUB_UPGRADE(eNIGHTCLUB_MOD_DANCERS), sNightclubData.iDancers)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_NIGHTCLUB_UPGRADE(eNIGHTCLUB_MOD_DRYICE), sNightclubData.iDryIce)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_NIGHTCLUB_UPGRADE(eNIGHTCLUB_MOD_NAME), sNightclubData.iNameID)
|
|
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_NIGHTCLUB_DRY_ICE, (sNightclubData.iDryIce = 1))
|
|
|
|
BUSINESS_HUB_ID eHubID = INT_TO_ENUM(BUSINESS_HUB_ID, ENUM_TO_INT(eNightclubID))
|
|
IF NOT DOES_PLAYER_OWN_BUSINESS_HUB(PLAYER_ID(), eHubID)
|
|
SET_BUSINESS_HUB_AS_OWNED(eHubID, !bRenovateNightclub)
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_BUSINESS_HUB_UPGRADE(eBUSINESS_HUB_MOD_GARAGE), sNightclubData.iGarage)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_BUSINESS_HUB_UPGRADE(eBUSINESS_HUB_MOD_WAREHOUSE), sNightclubData.iStorage)
|
|
|
|
IF IS_BUSINESS_HUB_GARAGE_02_PURCHASED()
|
|
iBuyPropertyIndex = PROPERTY_MEGAWARE_GARAGE_LVL1
|
|
iResultSlot = PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL1
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_MEGAWARE_GAR1, iBuyPropertyIndex)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = 0
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_MEGAWARE_GAR1_VALUE,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: MP_STAT_PROP_MEGAWARE_GAR1 iBuyPropertyIndex:", iBuyPropertyIndex)
|
|
ENDIF
|
|
IF IS_BUSINESS_HUB_GARAGE_03_PURCHASED()
|
|
iBuyPropertyIndex = PROPERTY_MEGAWARE_GARAGE_LVL2
|
|
iResultSlot = PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL2
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_MEGAWARE_GAR2, iBuyPropertyIndex)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = 0
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_MEGAWARE_GAR2_VALUE,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: MP_STAT_PROP_MEGAWARE_GAR2 iBuyPropertyIndex:", iBuyPropertyIndex)
|
|
ENDIF
|
|
IF IS_BUSINESS_HUB_GARAGE_04_PURCHASED()
|
|
iBuyPropertyIndex = PROPERTY_MEGAWARE_GARAGE_LVL3
|
|
iResultSlot = PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL3
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_MEGAWARE_GAR3, iBuyPropertyIndex)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = 0
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_MEGAWARE_GAR3_VALUE,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: MP_STAT_PROP_MEGAWARE_GAR3 iBuyPropertyIndex:", iBuyPropertyIndex)
|
|
ENDIF
|
|
|
|
CDEBUG1LN(DEBUG_PROPERTY, "BUY_MP_NIGHTCLUB_FROM_WEBSITE - Setting local player as owner of Business Hub: ", ENUM_TO_INT(eHubID))
|
|
|
|
BROADCAST_PLAYER_PURCHASED_BUSINESS_HUB()
|
|
BROADCAST_PLAYER_PURCHASED_NIGHTCLUB()
|
|
|
|
enumCharacterList CharacterToAdd = GET_BUSINESS_BATTLE_NIGHTCLUB_CONTACT()
|
|
IF NOT IS_CONTACT_IN_PHONEBOOK(CharacterToAdd, MULTIPLAYER_BOOK)
|
|
BOOL bDisplay = TRUE
|
|
ADD_CONTACT_TO_PHONEBOOK(CharacterToAdd, MULTIPLAYER_BOOK,bDisplay)
|
|
CPRINTLN(DEBUG_INTERNET, "[NIGHTCLUB_CONTACT] MAINTAIN_ADD_BUSINESS_BATTLE_NIGHTCLUB_CONTACT - ADD_CONTACT_TO_PHONEBOOK(", g_sCharacterSheetAll[CharacterToAdd].label, ", MULTIPLAYER_BOOK, ", bDisplay, ")")
|
|
ENDIF
|
|
|
|
IF IS_BIT_SET(iPurchaseHelpBS, PURCHASE_HELP_BS_BBSE0NC)
|
|
CDEBUG1LN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: purchased nightclub, set bDisplayed_HELP_BBSE0nc false")
|
|
CLEAR_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_BBSE0NC)
|
|
ENDIF
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Special","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
bBrowserShoppingSavePending = TRUE
|
|
CHECK_AMERICAN_DREAM_ACHIEVEMENT()
|
|
POPULATE_MP_BIKER_PROPERTY_SITE_PIN_MAP(mov, TRUE)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_SUCCESS", TRUE, bRenovateNightclub, FALSE, FALSE, rpmt_4_NIGHTCLUB)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: purchase complete, refreshing pin map")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
iBoughtPropertyIndex = -1
|
|
eBoughtFactoryIndex = FACTORY_ID_INVALID
|
|
eBoughtHangarIndex = HANGAR_ID_INVALID
|
|
eBoughtDefunctBaseIndex = DEFUNCT_BASE_ID_INVALID
|
|
eBoughtNightclubIndex = eNightclubID
|
|
eBoughtArenaIndex = ARENA_GARAGE_ID_INVALID
|
|
eBoughtArcadeIndex = ARCADE_PROPERTY_ID_INVALID
|
|
eBoughtCasinoIndex = CASINO_APARTMENT_ID_INVALID
|
|
iBoughtCasinoPreset = -1
|
|
eBoughtAutoShopIndex = AUTO_SHOP_PROPERTY_ID_INVALID
|
|
#IF FEATURE_FIXER
|
|
eBoughtFixerHQIndex = FIXER_HQ_ID_INVALID
|
|
#ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_NIGHTCLUB_FROM_WEBSITE: purchase complete, resetting iCustomAptVariant to 1")
|
|
ENDPROC
|
|
|
|
PROC BUY_MP_ARENA_GARAGE_FROM_WEBSITE(ARENA_GARAGE_ID eArenaID, INT &iResultSlot)
|
|
|
|
INT minPendingTransactionValue, finalPendingTransactionValue, iOwnedTradeArenaValue
|
|
|
|
INT iBankBalance = NETWORK_GET_VC_BANK_BALANCE()
|
|
INT iWalletBalance = NETWORK_GET_VC_WALLET_BALANCE()
|
|
|
|
// IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_NCLUBSTY")
|
|
// OR IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_NCLUBLIG")
|
|
// OR IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_NCLUBDAN")
|
|
// OR IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_NCLUBICE")
|
|
// CLEAR_HELP()
|
|
// CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT()
|
|
// ENDIF
|
|
|
|
IF NOT IS_FM_TYPE_UNLOCKED(FMMC_TYPE_CUSTOM_CAR_GARAGE)
|
|
IF GET_PLAYER_RANK(GET_PLAYER_INDEX()) < 5
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: purchase failed, player doesn't have sufficient rank (", GET_PLAYER_RANK(GET_PLAYER_INDEX()), ")")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: purchase failed, player pending unlock for sufficient rank")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK_PENDING
|
|
ENDIF
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_5_ARENA_GARAGE)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
IF NOT NET_GAMESERVER_IS_SESSION_VALID(GET_ACTIVE_CHARACTER_SLOT())
|
|
OR NET_GAMESERVER_IS_SESSION_REFRESH_PENDING()
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: purchase failed - session pending!")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_5_ARENA_GARAGE)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
TEXT_LABEL_15 tl_15ArenaName = GET_ARENA_GARAGE_NAME_FROM_ID(eArenaID)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: trying to purchase ARENA_GARAGE ", tl_15ArenaName, " #", eArenaID)
|
|
|
|
INT propval = CEIL(TO_FLOAT(GET_ARENA_GARAGE_PRICE(eArenaID))*g_sMPTunables.fPropertyMultiplier)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: purchase valid, attempting index ", tl_15ArenaName, " $", propval)
|
|
|
|
minPendingTransactionValue = propval
|
|
|
|
ARENA_GARAGE_ID eTradeInArena = GET_PLAYERS_OWNED_ARENA_GARAGE(PLAYER_ID())
|
|
|
|
IF IS_ARENA_GARAGE_ID_VALID(eTradeInArena)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: currently owns ARENA_GARAGE #", eTradeInArena)
|
|
|
|
// INT iCurrentMission = GB_GET_PLAYER_CURRENT_GANG_BOSS_MISSION(PLAYER_ID())
|
|
// IF GB_IS_PLAYER_BOSS_OF_A_GANG(PLAYER_ID())
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: player current gang boss mission: \"", GANG_BOSS_GET_NAME_FOR_TYPE_FOR_DEBUG_PRINT(iCurrentMission), "\"")
|
|
//
|
|
// IF (iCurrentMission = FMMC_TYPE_FMBB_DEFEND)
|
|
// OR (iCurrentMission = FMMC_TYPE_FMBB_PHONECALL)
|
|
// OR (iCurrentMission = FMMC_TYPE_FMBB_SELL)
|
|
// OR (iCurrentMission = FMMC_TYPE_FMBB_CLUB_MANAGEMENT)
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: purchase failed, player current gang boss mission: ", GANG_BOSS_GET_NAME_FOR_TYPE_FOR_DEBUG_PRINT(iCurrentMission))
|
|
// mpPropertySiteFailReason = MPSFR_ON_MISSION
|
|
// SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_5_ARENA_GARAGE)
|
|
//
|
|
// PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
// iCustomAptVariant = 1
|
|
// bCustomInteriorSelected = FALSE
|
|
// EXIT
|
|
// ENDIF
|
|
// ENDIF
|
|
ENDIF
|
|
|
|
BOOL bRenovateArenaGarage = FALSE
|
|
IF (eArenaID = eTradeInArena)
|
|
// IF GET_LOCAL_PLAYER_USING_ARENA_BOX_SEATID() != -1
|
|
// CWARNINGLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: purchase failed - using arena box seat ", GET_LOCAL_PLAYER_USING_ARENA_BOX_SEATID(), "!")
|
|
// mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
// SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_5_ARENA_GARAGE)
|
|
//
|
|
// PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
// iCustomAptVariant = 1
|
|
// bCustomInteriorSelected = FALSE
|
|
// EXIT
|
|
// ENDIF
|
|
|
|
propval = CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES(eArenaID, sArena_garage_price_struct)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: renovate ", tl_15ArenaName, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
bRenovateArenaGarage = TRUE
|
|
ELSE
|
|
IF eTradeInArena != ARENA_GARAGE_ID_INVALID
|
|
INT iTotalGoodsInHub = GET_PLAYERS_TOTAL_OF_ALL_GOODS_IN_HUB(PLAYER_ID())
|
|
IF iTotalGoodsInHub > 0
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: purchase failed - can't trade, has ", iTotalGoodsInHub, " goods in hub!")
|
|
mpPropertySiteFailReason = MPSFR_HAS_STOCK
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_5_ARENA_GARAGE)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
propval += CALCULATE_COST_OF_ARENA_GARAGE_INTERIOR_UPGRADES(eArenaID, sArena_garage_price_struct)
|
|
|
|
IF NOT IS_ARENA_GARAGE_ID_VALID(eTradeInArena)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: purchase ", tl_15ArenaName, " for ", eTradeInArena, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: trade ", tl_15ArenaName, " for ", eTradeInArena, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
minPendingTransactionValue = propval
|
|
|
|
//is it a debit or refund
|
|
IF NOT IS_ARENA_GARAGE_ID_VALID(eTradeInArena)
|
|
OR bRenovateArenaGarage
|
|
IF minPendingTransactionValue > 0
|
|
//do they have enough money
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " <> $", minPendingTransactionValue)
|
|
IF (minPendingTransactionValue <= 0
|
|
OR (minPendingTransactionValue > 0 AND NOT NETWORK_CAN_SPEND_MONEY(minPendingTransactionValue,FALSE,TRUE,FALSE)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < NETWORK_CAN_SPEND_MONEY:minPendingTransactionValue $", minPendingTransactionValue, "]")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_5_ARENA_GARAGE)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15ArenaName), minPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
|
|
//is it a debit or refund
|
|
INT iTempMinPendingTransactionValue = minPendingTransactionValue-GET_ARENA_GARAGE_SALE_VALUE(eTradeInArena)
|
|
IF iTempMinPendingTransactionValue >0
|
|
//do they have enough money
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " > $", minPendingTransactionValue, "+", GET_ARENA_GARAGE_SALE_VALUE(eTradeInArena))
|
|
|
|
IF (iTempMinPendingTransactionValue <= 0
|
|
OR (iTempMinPendingTransactionValue > 0 AND NOT NETWORK_CAN_SPEND_MONEY(iTempMinPendingTransactionValue,FALSE,TRUE,FALSE)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < NETWORK_CAN_SPEND_MONEY:iTempMinPendingTransactionValue $", minPendingTransactionValue, "+", GET_ARENA_GARAGE_SALE_VALUE(eTradeInArena), "]")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_5_ARENA_GARAGE)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15ArenaName), iTempMinPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " <= $", minPendingTransactionValue, "+", GET_ARENA_GARAGE_SALE_VALUE(eTradeInArena))
|
|
ENDIF
|
|
|
|
INT iReplaceSpecificPropertySlot
|
|
REPLACE_MP_VEH_OR_PROP_MENU replaceMenu
|
|
WHILE NOT RUN_REPLACE_PROPERTY_MENU(replaceMenu,iResultSlot,ENUM_TO_INT(eArenaID),iReplaceSpecificPropertySlot,rpmt_5_ARENA_GARAGE)
|
|
AND DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
DISABLE_SELECTOR_THIS_FRAME()
|
|
DISABLE_CELLPHONE_THIS_FRAME_ONLY()
|
|
WAIT(0)
|
|
g_sMenuData.bKeepPhoneForNextDrawMenuCall = TRUE
|
|
ENDWHILE
|
|
|
|
|
|
IF iResultSlot = -1
|
|
mpPropertySiteFailReason = MPSFR_CANCELED
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_5_ARENA_GARAGE)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
g_iPendingBrowserTimer = g_iBrowserTimer
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
CPRINTLN(DEBUG_INTERNET, "CDM: BUY_MP_ARENA_GARAGE_FROM_WEBSITE: purchase failed, player backed out of property selection")
|
|
EXIT
|
|
ELSE
|
|
iOwnedTradeArenaValue = GET_ARENA_GARAGE_SALE_VALUE(eTradeInArena)
|
|
|
|
finalPendingTransactionValue = propval - iOwnedTradeArenaValue
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: Player selected iResultSlot ", iResultSlot, ", trade ba: ", eTradeInArena, " for trade. propval $", propval, ", iOwnedTradeArenaValue: ", iOwnedTradeArenaValue, " Final trans value $", finalPendingTransactionValue)
|
|
ENDIF
|
|
|
|
// Re-check if player can afford based on selected trade-in value
|
|
IF finalPendingTransactionValue > 0
|
|
//do they have enough money
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " + trade:$", iOwnedTradeArenaValue, " <> $", finalPendingTransactionValue)
|
|
|
|
IF NOT NETWORK_CAN_SPEND_MONEY(finalPendingTransactionValue, FALSE, TRUE, FALSE)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: purchase failed, player failed on command NETWORK_CAN_SPEND_MONEY")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_5_ARENA_GARAGE)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15ArenaName), finalPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ARENA_GARAGE_DATA_STRUCT sArenaData
|
|
GET_SCALEFORM_ARENA_GARAGE_DATA(sArenaData)
|
|
|
|
// IF IS_ARENA_GARAGE_UPGRADE_PURCHASE_DISABLED(eARENA_GARAGE_MOD_DJ2_PURCHASED, eArenaID, sArenaData.iDJChoice)
|
|
// CWARNINGLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: purchase failed - DJ Choice ", sArenaData.iDJChoice, " disabled")
|
|
// mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
// SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_5_ARENA_GARAGE)
|
|
//
|
|
// PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
// iCustomAptVariant = 1
|
|
// bCustomInteriorSelected = FALSE
|
|
// EXIT
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: DJ Choice ", sArenaData.iDJChoice, " enabled")
|
|
// ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
INT iPropval
|
|
IF eArenaID = eTradeInArena
|
|
iPropval = 0
|
|
ELSE
|
|
iPropval = CEIL(TO_FLOAT(GET_ARENA_GARAGE_PRICE(eArenaID))*g_sMPTunables.fPropertyMultiplier)
|
|
ENDIF
|
|
|
|
bProcessingBasket = TRUE
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_ADD
|
|
INT iItemId = GET_ARENA_GARAGE_KEY_FOR_CATALOGUE(eArenaID)
|
|
INT iInventoryKey = GET_ARENA_GARAGE_INVENTORY_KEY_FOR_CATALOGUE()
|
|
INT iSellingItemId = 0
|
|
|
|
IF IS_ARENA_GARAGE_ID_VALID(eTradeInArena)
|
|
iSellingItemId = GET_ARENA_GARAGE_KEY_FOR_CATALOGUE(eTradeInArena)
|
|
ENDIF
|
|
|
|
INT iProcessSuccess = GENERIC_TRANSACTION_STATE_DEFAULT
|
|
|
|
///////////////////////////////////////////
|
|
/// TRANSACTION FOR ARENA_GARAGE
|
|
WHILE PROCESSING_INTERNET_SHOPPING_BASKET(iProcessSuccess, iPropval, iResultSlot, CATEGORY_INVENTORY_WAREHOUSE, NET_SHOP_ACTION_BUY_WAREHOUSE, iItemId, iInventoryKey, 0, iOwnedTradeArenaValue, iSellingItemId)
|
|
RENDER_BROWSER()
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(TRUE)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(FALSE)
|
|
|
|
RENDER_BROWSER()
|
|
|
|
SWITCH iProcessSuccess
|
|
CASE GENERIC_TRANSACTION_STATE_FAILED
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: purchase failed, failed to process transaction")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_5_ARENA_GARAGE)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
BREAK
|
|
CASE GENERIC_TRANSACTION_STATE_SUCCESS
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: success!!")
|
|
BREAK
|
|
DEFAULT
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: purchase failed, unknown iProcessSuccess: \"", iProcessSuccess, "\"")
|
|
EXIT
|
|
BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: ignore NETWORK_REQUEST_BASKET_TRANSACTION")
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: final:$", finalPendingTransactionValue, ", propval $", propval)
|
|
|
|
//Assign the telemetry data
|
|
//Increment the spending stat
|
|
IF finalPendingTransactionValue > 0
|
|
INCREMENT_BY_MP_INT_PLAYER_STAT(MPPLY_INGAMESTORE_MONEYSPENT, finalPendingTransactionValue)
|
|
ENDIF
|
|
|
|
TEXT_LABEL_31 tl31FloorHashname = "", tl31MechanicHashname = ""
|
|
STRUCT_SPENT_ON_ARENA data
|
|
//Check if we're trading of just buying
|
|
IF (NOT IS_ARENA_GARAGE_ID_VALID(eTradeInArena))
|
|
OR (bRenovateArenaGarage)
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
INT iFinalPropValue = propval
|
|
IF (sArena_garage_price_struct.iStylePrice >= 0)
|
|
OR NOT bRenovateArenaGarage
|
|
data.m_style = GET_HASH_KEY(GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_STYLE, sArenaData.iStyle))
|
|
data.m_style_amount = sArena_garage_price_struct.iStylePrice
|
|
iFinalPropValue -= data.m_style_amount
|
|
ENDIF
|
|
IF (sArena_garage_price_struct.iGraphicsPrice >= 0)
|
|
OR NOT bRenovateArenaGarage
|
|
data.m_graphics = GET_HASH_KEY(GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_GRAPHICS, sArenaData.iGraphics))
|
|
data.m_graphics_amount = sArena_garage_price_struct.iGraphicsPrice
|
|
iFinalPropValue -= data.m_graphics_amount
|
|
ENDIF
|
|
IF (sArena_garage_price_struct.iColourPrice >= 0)
|
|
OR NOT bRenovateArenaGarage
|
|
data.m_colour = GET_HASH_KEY(GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_COLOUR, sArenaData.iColour))
|
|
data.m_colour_amount = sArena_garage_price_struct.iColourPrice
|
|
iFinalPropValue -= data.m_colour_amount
|
|
ENDIF
|
|
|
|
IF (sArena_garage_price_struct.iExpansionFloorB1Price >= 0)
|
|
OR (sArena_garage_price_struct.iExpansionFloorB2Price >= 0)
|
|
OR NOT bRenovateArenaGarage
|
|
IF (sArena_garage_price_struct.iExpansionFloorB1Price != 0
|
|
AND sArena_garage_price_struct.iExpansionFloorB2Price >= 0)
|
|
OR NOT bRenovateArenaGarage
|
|
tl31FloorHashname = GET_ARENA_GARAGE_MOD_COMBINED_HASH(eARENA_GARAGE_MOD_EXPANSION_FLOOR_0, sArenaData.iExpansionFloorB1, eARENA_GARAGE_MOD_EXPANSION_FLOOR_1, sArenaData.iExpansionFloorB2)
|
|
data.m_floor = GET_HASH_KEY(tl31FloorHashname)
|
|
ELSE
|
|
IF (sArena_garage_price_struct.iExpansionFloorB1Price >= 0)
|
|
tl31FloorHashname = GET_ARENA_GARAGE_MOD_COMBINED_HASH(eARENA_GARAGE_MOD_EXPANSION_FLOOR_0, sArenaData.iExpansionFloorB1, eARENA_GARAGE_MOD_EXPANSION_FLOOR_1, -1)
|
|
data.m_floor = GET_HASH_KEY(tl31FloorHashname)
|
|
ELIF (sArena_garage_price_struct.iExpansionFloorB2Price >= 0)
|
|
tl31FloorHashname = GET_ARENA_GARAGE_MOD_COMBINED_HASH(eARENA_GARAGE_MOD_EXPANSION_FLOOR_0, -1, eARENA_GARAGE_MOD_EXPANSION_FLOOR_1, sArenaData.iExpansionFloorB2)
|
|
data.m_floor = GET_HASH_KEY(tl31FloorHashname)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: invalid m_floor values!!!")
|
|
ENDIF
|
|
ENDIF
|
|
data.m_floor_amount = 0
|
|
IF (sArena_garage_price_struct.iExpansionFloorB1Price >= 0)
|
|
data.m_floor_amount += sArena_garage_price_struct.iExpansionFloorB1Price
|
|
ENDIF
|
|
IF (sArena_garage_price_struct.iExpansionFloorB2Price >= 0)
|
|
data.m_floor_amount += sArena_garage_price_struct.iExpansionFloorB2Price
|
|
ENDIF
|
|
iFinalPropValue -= data.m_floor_amount
|
|
ENDIF
|
|
|
|
IF (sArena_garage_price_struct.iBennyMechanicPrice >= 0)
|
|
OR (sArena_garage_price_struct.iWeaponMechanicPrice >= 0)
|
|
OR NOT bRenovateArenaGarage
|
|
IF (sArena_garage_price_struct.iBennyMechanicPrice != 0
|
|
AND sArena_garage_price_struct.iWeaponMechanicPrice >= 0)
|
|
OR NOT bRenovateArenaGarage
|
|
tl31MechanicHashname = GET_ARENA_GARAGE_MOD_COMBINED_HASH(eARENA_GARAGE_MOD_BENNY_MECHANIC, sArenaData.iBennyMechanic, eARENA_GARAGE_MOD_WEAPON_MECHANIC, sArenaData.iWeaponMechanic)
|
|
data.m_mechanic = GET_HASH_KEY(tl31MechanicHashname)
|
|
ELSE
|
|
IF (sArena_garage_price_struct.iBennyMechanicPrice >= 0)
|
|
tl31MechanicHashname = GET_ARENA_GARAGE_MOD_COMBINED_HASH(eARENA_GARAGE_MOD_BENNY_MECHANIC, sArenaData.iBennyMechanic, eARENA_GARAGE_MOD_WEAPON_MECHANIC, -1)
|
|
data.m_mechanic = GET_HASH_KEY(tl31MechanicHashname)
|
|
ELIF (sArena_garage_price_struct.iWeaponMechanicPrice >= 0)
|
|
tl31MechanicHashname = GET_ARENA_GARAGE_MOD_COMBINED_HASH(eARENA_GARAGE_MOD_BENNY_MECHANIC, -1, eARENA_GARAGE_MOD_WEAPON_MECHANIC, sArenaData.iWeaponMechanic)
|
|
data.m_mechanic = GET_HASH_KEY(tl31MechanicHashname)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: invalid m_mechanic values!!!")
|
|
ENDIF
|
|
ENDIF
|
|
data.m_mechanic_amount = 0
|
|
IF (sArena_garage_price_struct.iBennyMechanicPrice >= 0)
|
|
data.m_mechanic_amount += sArena_garage_price_struct.iBennyMechanicPrice
|
|
ENDIF
|
|
IF (sArena_garage_price_struct.iWeaponMechanicPrice >= 0)
|
|
data.m_mechanic_amount += sArena_garage_price_struct.iWeaponMechanicPrice
|
|
ENDIF
|
|
iFinalPropValue -= data.m_mechanic_amount
|
|
ENDIF
|
|
|
|
IF (sArena_garage_price_struct.iPersonalQuartersPrice >= 0)
|
|
OR NOT bRenovateArenaGarage
|
|
data.m_personalQuarters = GET_HASH_KEY(GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_PERSONAL_QUARTERS, sArenaData.iPersonalQuarters))
|
|
data.m_personalQuarters_amount = sArena_garage_price_struct.iPersonalQuartersPrice
|
|
iFinalPropValue -= data.m_personalQuarters_amount
|
|
ENDIF
|
|
IF (iFinalPropValue >= 0)
|
|
OR NOT bRenovateArenaGarage
|
|
data.m_location = GET_HASH_KEY(GET_ARENA_GARAGE_NAME_FROM_ID(eArenaID))
|
|
data.m_location_amount = iFinalPropValue
|
|
ENDIF
|
|
|
|
IF NOT bRenovateArenaGarage
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: Bought ARENA_GARAGE for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_location:", data.m_location, " m_location_amount:$", data.m_location_amount, " ", GET_ARENA_GARAGE_NAME_FROM_ID(eArenaID))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_style:", data.m_style, " m_style_amount:$", data.m_style_amount, " ", GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_STYLE, sArenaData.iStyle))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_graphics:", data.m_graphics, " m_graphics_amount:$", data.m_graphics_amount, " ", GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_GRAPHICS, sArenaData.iGraphics))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_colour:", data.m_colour, " m_colour_amount:$", data.m_colour_amount, " ", GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_COLOUR, sArenaData.iColour))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_floor:", data.m_floor, " ($", sArena_garage_price_struct.iExpansionFloorB1Price, "+$", sArena_garage_price_struct.iExpansionFloorB2Price, ") m_floor_amount:$", data.m_floor_amount, " ", tl31FloorHashname)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_mechanic:", data.m_mechanic, " ($", sArena_garage_price_struct.iBennyMechanicPrice, "+$", sArena_garage_price_struct.iWeaponMechanicPrice, ") m_mechanic_amount:$", data.m_mechanic_amount, " ", tl31MechanicHashname)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_personalQuarters:", data.m_personalQuarters," m_personalQuarters_amount:$", data.m_personalQuarters_amount, " ", GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_PERSONAL_QUARTERS, sArenaData.iPersonalQuarters))
|
|
|
|
NETWORK_SPEND_BUY_ARENA(propval, FALSE, TRUE, data)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: Renovate ARENA_GARAGE for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_location:", data.m_location, " m_location_amount:$", data.m_location_amount, " ", GET_ARENA_GARAGE_NAME_FROM_ID(eArenaID))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_style:", data.m_style, " m_style_amount:$", data.m_style_amount, " ", GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_STYLE, sArenaData.iStyle))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_graphics:", data.m_graphics, " m_graphics_amount:$", data.m_graphics_amount, " ", GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_GRAPHICS, sArenaData.iGraphics))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_colour:", data.m_colour, " m_colour_amount:$", data.m_colour_amount, " ", GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_COLOUR, sArenaData.iColour))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_floor:", data.m_floor, " ($", sArena_garage_price_struct.iExpansionFloorB1Price, "+$", sArena_garage_price_struct.iExpansionFloorB2Price, ") m_floor_amount:$", data.m_floor_amount, " ", tl31FloorHashname)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_mechanic:", data.m_mechanic, " ($", sArena_garage_price_struct.iBennyMechanicPrice, "+$", sArena_garage_price_struct.iWeaponMechanicPrice, ") m_mechanic_amount:$", data.m_mechanic_amount, " ", tl31MechanicHashname)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_personalQuarters:", data.m_personalQuarters," m_personalQuarters_amount:$", data.m_personalQuarters_amount, " ", GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_PERSONAL_QUARTERS, sArenaData.iPersonalQuarters))
|
|
|
|
NETWORK_SPEND_UPGRADE_ARENA(propval, FALSE, TRUE, data)
|
|
ENDIF
|
|
|
|
IF NOT bRenovateArenaGarage
|
|
SET_ARENA_GARAGE_AS_OWNED(eArenaID)
|
|
SET_BIT(MPGlobalsAmbience.iFmGbHelpBitSet8, BI_FM_GANG_BOSS_HELP_8_ARENA_WORKSHOP_PURCHASED)
|
|
PRINTLN("[FMBB_CALL] - BUY_MP_ARENA_GARAGE_FROM_WEBSITE - BI_FM_GANG_BOSS_HELP_8_ARENA_WORKSHOP_PURCHASED set")
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
IF GET_COMMANDLINE_PARAM_EXISTS("sc_SkipArenaCutscenes")
|
|
SET_LOCAL_PLAYER_HAS_VIEWED_ARENA_MOCAP_SCENE_1(TRUE)
|
|
SET_LOCAL_PLAYER_HAS_VIEWED_ARENA_MOCAP_SCENE_2(TRUE)
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
// SET_ARENA_GARAGE_DJ_ACTIVE_STATE(DJ_SOLOMUN, TRUE)
|
|
ENDIF
|
|
|
|
ELIF GET_ARENA_GARAGE_BASE_PRICE(eTradeInArena) > 0
|
|
// IF NOT SHOULD_ARENA_GARAGE_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: Trading the business ", eTradeInArena, " is earning the player:$", iOwnedTradeArenaValue)
|
|
NETWORK_EARN_NIGHTCLUB_AND_WAREHOUSE(iOwnedTradeArenaValue, GET_HASH_KEY(GET_ARENA_GARAGE_NAME_FROM_ID(eTradeInArena)), 0, 0, 0, 0, 0)
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: Earn nothing from property:$", GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(iResultSlot), " ", tl_15PropertyName, " as was free")
|
|
// ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
INT iFinalPropValue = finalPendingTransactionValue
|
|
iFinalPropValue += iOwnedTradeArenaValue
|
|
|
|
//
|
|
data.m_style = GET_HASH_KEY(GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_STYLE, sArenaData.iStyle))
|
|
data.m_style_amount = sArena_garage_price_struct.iStylePrice
|
|
iFinalPropValue -= data.m_style_amount
|
|
//
|
|
data.m_graphics = GET_HASH_KEY(GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_GRAPHICS, sArenaData.iGraphics))
|
|
data.m_graphics_amount = sArena_garage_price_struct.iGraphicsPrice
|
|
iFinalPropValue -= data.m_graphics_amount
|
|
//
|
|
data.m_colour = GET_HASH_KEY(GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_COLOUR, sArenaData.iColour))
|
|
data.m_colour_amount = sArena_garage_price_struct.iColourPrice
|
|
iFinalPropValue -= data.m_colour_amount
|
|
//
|
|
data.m_floor = GET_HASH_KEY(GET_ARENA_GARAGE_MOD_COMBINED_HASH(eARENA_GARAGE_MOD_EXPANSION_FLOOR_0, sArenaData.iExpansionFloorB1, eARENA_GARAGE_MOD_EXPANSION_FLOOR_1, sArenaData.iExpansionFloorB2))
|
|
data.m_floor_amount = sArena_garage_price_struct.iExpansionFloorB1Price
|
|
data.m_floor_amount += sArena_garage_price_struct.iExpansionFloorB2Price
|
|
iFinalPropValue -= data.m_floor_amount
|
|
//
|
|
data.m_mechanic = GET_HASH_KEY(GET_ARENA_GARAGE_MOD_COMBINED_HASH(eARENA_GARAGE_MOD_BENNY_MECHANIC, sArenaData.iBennyMechanic, eARENA_GARAGE_MOD_WEAPON_MECHANIC, sArenaData.iWeaponMechanic))
|
|
data.m_mechanic_amount = sArena_garage_price_struct.iBennyMechanicPrice
|
|
data.m_mechanic_amount += sArena_garage_price_struct.iWeaponMechanicPrice
|
|
iFinalPropValue -= data.m_mechanic_amount
|
|
//
|
|
data.m_personalQuarters = GET_HASH_KEY(GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_PERSONAL_QUARTERS, sArenaData.iPersonalQuarters))
|
|
data.m_personalQuarters_amount = sArena_garage_price_struct.iPersonalQuartersPrice
|
|
iFinalPropValue -= data.m_personalQuarters_amount
|
|
//
|
|
data.m_location = GET_HASH_KEY(GET_ARENA_GARAGE_NAME_FROM_ID(eArenaID))
|
|
data.m_location_amount = iFinalPropValue
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: Trading ARENA_GARAGE for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_location:", data.m_location, " m_location_amount:$", data.m_location_amount, " ", GET_ARENA_GARAGE_NAME_FROM_ID(eArenaID))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_style:", data.m_style, " m_style_amount:$", data.m_style_amount, " ", GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_STYLE, sArenaData.iStyle))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_graphics:", data.m_graphics, " m_graphics_amount:$", data.m_graphics_amount, " ", GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_GRAPHICS, sArenaData.iGraphics))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_colour:", data.m_colour, " m_colour_amount:$", data.m_colour_amount, " ", GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_COLOUR, sArenaData.iColour))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_floor:", data.m_floor, " ($", sArena_garage_price_struct.iExpansionFloorB1Price, "+$", sArena_garage_price_struct.iExpansionFloorB2Price, ") m_floor_amount:$", data.m_floor_amount, " ", tl31FloorHashname)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_mechanic:", data.m_mechanic, " ($", sArena_garage_price_struct.iBennyMechanicPrice, "+$", sArena_garage_price_struct.iWeaponMechanicPrice, ") m_mechanic_amount:$", data.m_mechanic_amount, " ", tl31MechanicHashname)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: m_personalQuarters:", data.m_personalQuarters," m_personalQuarters_amount:$", data.m_personalQuarters_amount, " ", GET_ARENA_GARAGE_MOD_NAME_FROM_ID(eARENA_GARAGE_MOD_PERSONAL_QUARTERS, sArenaData.iPersonalQuarters))
|
|
|
|
NETWORK_SPEND_UPGRADE_ARENA(propval, FALSE, TRUE, data)
|
|
|
|
// REMOTE_REQUEST_REMOVE_ALL_CONTRABAND_FROM_XXXXXX()
|
|
// TRADE_ARENA_GARAGE(eArenaID, eTradeInArena)
|
|
ENDIF
|
|
|
|
INT iBuyPropertyIndex = PROPERTY_ARENAWARS_GARAGE_LVL1
|
|
iResultSlot = PROPERTY_ARENAWARS_GARAGE_LVL1
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_ARENAWARS_GAR1, iBuyPropertyIndex)
|
|
IF NOT bRenovateArenaGarage
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_ARENAWARS_GAR1_VALUE,CEIL(TO_FLOAT(GET_ARENA_GARAGE_PRICE(eArenaID))*g_sMPTunables.fPropertyMultiplier))
|
|
IF GET_OWNED_PROPERTY(0) <= 0
|
|
IF IS_PERSONAL_VEHICLE_DRIVEABLE_IN_FREEMODE()
|
|
IF DOES_ENTITY_EXIST(MPGlobalsAmbience.vehPersonalVehicle)
|
|
INT iForceDisplayUpdatedSlot
|
|
MPSV_GET_DISPLAY_SLOT_FROM_SAVE_SLOT(CURRENT_SAVED_VEHICLE_SLOT(),iForceDisplayUpdatedSlot)
|
|
IF iForceDisplayUpdatedSlot <= 0
|
|
iForceDisplayUpdatedSlot = MP_SAVE_VEHICLE_GET_EMPTY_DISPLAY_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,GET_ENTITY_MODEL(MPGlobalsAmbience.vehPersonalVehicle))
|
|
IF iForceDisplayUpdatedSlot >= 0
|
|
PRINTLN("Forcing vehicle out in freemode slot display to #",iForceDisplayUpdatedSlot," when buying ARENA_GARAGE")
|
|
MPSV_SET_DISPLAY_SLOT(iForceDisplayUpdatedSlot,CURRENT_SAVED_VEHICLE_SLOT())
|
|
IF iForceDisplayUpdatedSlot != 0
|
|
MPSV_SET_DISPLAY_SLOT(0,-1)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(sArenaData.iPersonalQuarters)
|
|
IF (GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_PERSONAL_QUARTERS)) != sArenaData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: set ARENA_GARAGE spawn, player bought accomodation")
|
|
SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_ARENA_GARAGE)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: set ARENA_GARAGE spawn, player already has accom so not a renovation")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: iStyle: ", sArenaData.iStyle)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: iGraphics: ", sArenaData.iGraphics)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: iColour: ", sArenaData.iColour)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: iExpansionFloorB1: ", sArenaData.iExpansionFloorB1)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: iExpansionFloorB2: ", sArenaData.iExpansionFloorB2)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: iBennyMechanic: ", sArenaData.iBennyMechanic)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: iWeaponMechanic: ", sArenaData.iWeaponMechanic)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: iPersonalQuarters: ", sArenaData.iPersonalQuarters)
|
|
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_STYLE), sArenaData.iStyle)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_GRAPHICS), sArenaData.iGraphics)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_COLOUR), sArenaData.iColour)
|
|
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_EXPANSION_FLOOR_0), sArenaData.iExpansionFloorB1)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_EXPANSION_FLOOR_1), sArenaData.iExpansionFloorB2)
|
|
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_BENNY_MECHANIC), sArenaData.iBennyMechanic)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_WEAPON_MECHANIC), sArenaData.iWeaponMechanic)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARENA_GARAGE_UPGRADE(eARENA_GARAGE_MOD_PERSONAL_QUARTERS), sArenaData.iPersonalQuarters)
|
|
|
|
IF (sArenaData.iExpansionFloorB1 >= 1)
|
|
iBuyPropertyIndex = PROPERTY_ARENAWARS_GARAGE_LVL2
|
|
iResultSlot = PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL1
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_ARENAWARS_GAR2, iBuyPropertyIndex)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = 0
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_ARENAWARS_GAR2_VALUE,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: MP_STAT_PROP_ARENAWARS_GAR2 iBuyPropertyIndex:", iBuyPropertyIndex)
|
|
ENDIF
|
|
IF (sArenaData.iExpansionFloorB2 >= 1)
|
|
iBuyPropertyIndex = PROPERTY_ARENAWARS_GARAGE_LVL3
|
|
iResultSlot = PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL2
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_ARENAWARS_GAR3, iBuyPropertyIndex)
|
|
IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ELSE
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = 0
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_ARENAWARS_GAR3_VALUE,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: MP_STAT_PROP_ARENAWARS_GAR3 iBuyPropertyIndex:", iBuyPropertyIndex)
|
|
ENDIF
|
|
|
|
SETUP_ARENA_GARAGE_BROADCAST_DATA()
|
|
|
|
enumCharacterList CharacterToAdd = CHAR_BRYONY
|
|
IF NOT IS_CONTACT_IN_PHONEBOOK(CharacterToAdd, MULTIPLAYER_BOOK)
|
|
BOOL bDisplay = TRUE
|
|
ADD_CONTACT_TO_PHONEBOOK(CharacterToAdd, MULTIPLAYER_BOOK,bDisplay)
|
|
CPRINTLN(DEBUG_INTERNET, "[ARENA_GARAGE_CONTACT] MAINTAIN_ADD_ARENA_WARS_ARENA_GARAGE_CONTACT - ADD_CONTACT_TO_PHONEBOOK(", g_sCharacterSheetAll[CharacterToAdd].label, ", MULTIPLAYER_BOOK, ", bDisplay, ")")
|
|
ENDIF
|
|
|
|
// IF bDisplayed_HELP_AWSE0nc
|
|
// CDEBUG1LN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: purchased ARENA_GARAGE, set bDisplayed_HELP_AWSE0nc false")
|
|
// bDisplayed_HELP_AWSE0nc = FALSE
|
|
// ENDIF
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Special","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
bBrowserShoppingSavePending = TRUE
|
|
CHECK_AMERICAN_DREAM_ACHIEVEMENT()
|
|
POPULATE_MP_ARENA_PROPERTY_SITE_PIN_MAP(mov, TRUE)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PROPERTY_D_PURCHASED", TRUE, bRenovateArenaGarage, FALSE, FALSE, rpmt_5_ARENA_GARAGE)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: purchase complete, refreshing pin map")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
iBoughtPropertyIndex = -1
|
|
eBoughtFactoryIndex = FACTORY_ID_INVALID
|
|
eBoughtHangarIndex = HANGAR_ID_INVALID
|
|
eBoughtDefunctBaseIndex = DEFUNCT_BASE_ID_INVALID
|
|
eBoughtNightclubIndex = NIGHTCLUB_ID_INVALID
|
|
eBoughtArenaIndex = eArenaID
|
|
eBoughtArcadeIndex = ARCADE_PROPERTY_ID_INVALID
|
|
eBoughtCasinoIndex = CASINO_APARTMENT_ID_INVALID
|
|
iBoughtCasinoPreset = -1
|
|
eBoughtAutoShopIndex = AUTO_SHOP_PROPERTY_ID_INVALID
|
|
#IF FEATURE_FIXER
|
|
eBoughtFixerHQIndex = FIXER_HQ_ID_INVALID
|
|
#ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARENA_GARAGE_FROM_WEBSITE: purchase complete, resetting iCustomAptVariant to 1")
|
|
ENDPROC
|
|
|
|
PROC BUY_MP_CASINO_MEMBERSHIP_FROM_WEBSITE()
|
|
|
|
IF GET_CASINO_MEMBERSHIP_COST() > 0 AND NOT NETWORK_CAN_SPEND_MONEY(GET_CASINO_MEMBERSHIP_COST(), FALSE, TRUE, FALSE)
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_6_CASINO_APARTMENT)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_MEMBERSHIP_FROM_WEBSITE: NETWORK_CAN_SPEND_MONEY false")
|
|
EXIT
|
|
ENDIF
|
|
|
|
GENERIC_TRANSACTION_STATE eTransactionResult
|
|
|
|
WHILE NOT PURCHASE_CASINO_MEMBERSHIP(eTransactionResult, CMPP_WEBSITE)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_MEMBERSHIP_FROM_WEBSITE: Running transaction")
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
RENDER_BROWSER()
|
|
|
|
IF eTransactionResult = TRANSACTION_STATE_FAILED
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_MEMBERSHIP_FROM_WEBSITE: TRANSACTION_STATE_FAILED")
|
|
GO_TO_WEBSITE("WWW_THEDIAMONDCASINOANDRESORT_COM_S_MEMBERSHIP_D_FAILED")
|
|
EXIT
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_MEMBERSHIP_FROM_WEBSITE: ")
|
|
POPULATE_MP_CASINO_PROPERTY_SITE_PIN_MAP(mov, TRUE)
|
|
GO_TO_WEBSITE("WWW_THEDIAMONDCASINOANDRESORT_COM_S_MEMBERSHIP_D_SUCCESS")
|
|
ENDPROC
|
|
|
|
PROC BUY_MP_CASINO_APT_FROM_WEBSITE(CASINO_APT_ID eCasinoID, INT &iResultSlot)
|
|
|
|
INT minPendingTransactionValue, finalPendingTransactionValue, iOwnedTradeArenaValue
|
|
|
|
INT iBankBalance = NETWORK_GET_VC_BANK_BALANCE()
|
|
INT iWalletBalance = NETWORK_GET_VC_WALLET_BALANCE()
|
|
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_CASWEB_0")
|
|
OR IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_CASWEB_0B")
|
|
CLEAR_HELP()
|
|
CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT()
|
|
ENDIF
|
|
|
|
IF NOT IS_FM_TYPE_UNLOCKED(FMMC_TYPE_CUSTOM_CAR_GARAGE)
|
|
IF GET_PLAYER_RANK(GET_PLAYER_INDEX()) < 5
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: purchase failed, player doesn't have sufficient rank (", GET_PLAYER_RANK(GET_PLAYER_INDEX()), ")")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: purchase failed, player pending unlock for sufficient rank")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK_PENDING
|
|
ENDIF
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_6_CASINO_APARTMENT)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
IF NOT NET_GAMESERVER_IS_SESSION_VALID(GET_ACTIVE_CHARACTER_SLOT())
|
|
OR NET_GAMESERVER_IS_SESSION_REFRESH_PENDING()
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: purchase failed - session pending!")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_6_CASINO_APARTMENT)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
TEXT_LABEL_15 tl_15ArenaName = GET_CASINO_APT_NAME_FROM_ID(eCasinoID)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: trying to purchase CASINO_APT ", tl_15ArenaName, " #", eCasinoID)
|
|
|
|
INT propval = CEIL(TO_FLOAT(GET_CASINO_APT_PRICE(eCasinoID))*g_sMPTunables.fPropertyMultiplier)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: purchase valid, attempting index ", tl_15ArenaName, " $", propval)
|
|
|
|
minPendingTransactionValue = propval
|
|
|
|
CASINO_APT_ID eTradeInArena = GET_PLAYERS_OWNED_CASINO_APARTMENT(PLAYER_ID())
|
|
|
|
IF IS_CASINO_APT_ID_VALID(eTradeInArena)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: currently owns CASINO_APT #", eTradeInArena)
|
|
|
|
// INT iCurrentMission = GB_GET_PLAYER_CURRENT_GANG_BOSS_MISSION(PLAYER_ID())
|
|
// IF GB_IS_PLAYER_BOSS_OF_A_GANG(PLAYER_ID())
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: player current gang boss mission: \"", GANG_BOSS_GET_NAME_FOR_TYPE_FOR_DEBUG_PRINT(iCurrentMission), "\"")
|
|
//
|
|
// IF (iCurrentMission = FMMC_TYPE_FMBB_DEFEND)
|
|
// OR (iCurrentMission = FMMC_TYPE_FMBB_PHONECALL)
|
|
// OR (iCurrentMission = FMMC_TYPE_FMBB_SELL)
|
|
// OR (iCurrentMission = FMMC_TYPE_FMBB_CLUB_MANAGEMENT)
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: purchase failed, player current gang boss mission: ", GANG_BOSS_GET_NAME_FOR_TYPE_FOR_DEBUG_PRINT(iCurrentMission))
|
|
// mpPropertySiteFailReason = MPSFR_ON_MISSION
|
|
// SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_6_CASINO_APARTMENT)
|
|
//
|
|
// PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
// iCustomAptVariant = 1
|
|
// bCustomInteriorSelected = FALSE
|
|
// EXIT
|
|
// ENDIF
|
|
// ENDIF
|
|
ENDIF
|
|
|
|
BOOL bRenovateArenaGarage = FALSE
|
|
IF (eCasinoID = eTradeInArena)
|
|
// IF GET_LOCAL_PLAYER_USING_ARENA_BOX_SEATID() != -1
|
|
// CWARNINGLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: purchase failed - using arena box seat ", GET_LOCAL_PLAYER_USING_ARENA_BOX_SEATID(), "!")
|
|
// mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
// SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_6_CASINO_APARTMENT)
|
|
//
|
|
// PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
// iCustomAptVariant = 1
|
|
// bCustomInteriorSelected = FALSE
|
|
// EXIT
|
|
// ENDIF
|
|
|
|
propval = CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES(eCasinoID, sCasino_apt_price_struct)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: renovate ", tl_15ArenaName, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
bRenovateArenaGarage = TRUE
|
|
ELSE
|
|
IF eTradeInArena != CASINO_APARTMENT_ID_INVALID
|
|
INT iTotalGoodsInHub = GET_PLAYERS_TOTAL_OF_ALL_GOODS_IN_HUB(PLAYER_ID())
|
|
IF iTotalGoodsInHub > 0
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: purchase failed - can't trade, has ", iTotalGoodsInHub, " goods in hub!")
|
|
mpPropertySiteFailReason = MPSFR_HAS_STOCK
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_6_CASINO_APARTMENT)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
propval += CALCULATE_COST_OF_CASINO_APT_INTERIOR_UPGRADES(eCasinoID, sCasino_apt_price_struct)
|
|
|
|
IF NOT IS_CASINO_APT_ID_VALID(eTradeInArena)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: purchase ", tl_15ArenaName, " for ", eTradeInArena, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: trade ", tl_15ArenaName, " for ", eTradeInArena, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
minPendingTransactionValue = propval
|
|
|
|
//is it a debit or refund
|
|
IF NOT IS_CASINO_APT_ID_VALID(eTradeInArena)
|
|
OR bRenovateArenaGarage
|
|
IF minPendingTransactionValue > 0
|
|
//do they have enough money
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " <> $", minPendingTransactionValue)
|
|
IF (minPendingTransactionValue <= 0
|
|
OR (minPendingTransactionValue > 0 AND NOT NETWORK_CAN_SPEND_MONEY(minPendingTransactionValue,FALSE,TRUE,FALSE)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < NETWORK_CAN_SPEND_MONEY:minPendingTransactionValue $", minPendingTransactionValue, "]")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_6_CASINO_APARTMENT)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15ArenaName), minPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
|
|
//is it a debit or refund
|
|
INT iTempMinPendingTransactionValue = minPendingTransactionValue-GET_CASINO_APT_SALE_VALUE(eTradeInArena)
|
|
IF iTempMinPendingTransactionValue >0
|
|
//do they have enough money
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " > $", minPendingTransactionValue, "+", GET_CASINO_APT_SALE_VALUE(eTradeInArena))
|
|
|
|
IF (iTempMinPendingTransactionValue <= 0
|
|
OR (iTempMinPendingTransactionValue > 0 AND NOT NETWORK_CAN_SPEND_MONEY(iTempMinPendingTransactionValue,FALSE,TRUE,FALSE)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < NETWORK_CAN_SPEND_MONEY:iTempMinPendingTransactionValue $", minPendingTransactionValue, "+", GET_CASINO_APT_SALE_VALUE(eTradeInArena), "]")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_6_CASINO_APARTMENT)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15ArenaName), iTempMinPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " <= $", minPendingTransactionValue, "+", GET_CASINO_APT_SALE_VALUE(eTradeInArena))
|
|
ENDIF
|
|
|
|
INT iReplaceSpecificPropertySlot
|
|
REPLACE_MP_VEH_OR_PROP_MENU replaceMenu
|
|
WHILE NOT RUN_REPLACE_PROPERTY_MENU(replaceMenu,iResultSlot,ENUM_TO_INT(eCasinoID),iReplaceSpecificPropertySlot,rpmt_6_CASINO_APARTMENT)
|
|
AND DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
DISABLE_SELECTOR_THIS_FRAME()
|
|
DISABLE_CELLPHONE_THIS_FRAME_ONLY()
|
|
WAIT(0)
|
|
g_sMenuData.bKeepPhoneForNextDrawMenuCall = TRUE
|
|
ENDWHILE
|
|
|
|
|
|
IF iResultSlot = -1
|
|
mpPropertySiteFailReason = MPSFR_CANCELED
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_6_CASINO_APARTMENT)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
g_iPendingBrowserTimer = g_iBrowserTimer
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
CPRINTLN(DEBUG_INTERNET, "CDM: BUY_MP_CASINO_APT_FROM_WEBSITE: purchase failed, player backed out of property selection")
|
|
EXIT
|
|
ELSE
|
|
iOwnedTradeArenaValue = GET_CASINO_APT_SALE_VALUE(eTradeInArena)
|
|
|
|
finalPendingTransactionValue = propval - iOwnedTradeArenaValue
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: Player selected iResultSlot ", iResultSlot, ", trade ba: ", eTradeInArena, " for trade. propval $", propval, ", iOwnedTradeArenaValue: ", iOwnedTradeArenaValue, " Final trans value $", finalPendingTransactionValue)
|
|
ENDIF
|
|
|
|
// Re-check if player can afford based on selected trade-in value
|
|
IF finalPendingTransactionValue > 0
|
|
//do they have enough money
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " + trade:$", iOwnedTradeArenaValue, " <> $", finalPendingTransactionValue)
|
|
|
|
IF NOT NETWORK_CAN_SPEND_MONEY(finalPendingTransactionValue, FALSE, TRUE, FALSE)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: purchase failed, player failed on command NETWORK_CAN_SPEND_MONEY")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_6_CASINO_APARTMENT)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15ArenaName), finalPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
CASINO_APT_DATA_STRUCT sCasinoData
|
|
GET_SCALEFORM_CASINO_APT_DATA(sCasinoData)
|
|
|
|
// IF IS_CASINO_APT_UPGRADE_PURCHASE_DISABLED(eCASINO_APT_MOD_DJ2_PURCHASED, eCasinoID, sCasinoData.iDJChoice)
|
|
// CWARNINGLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: purchase failed - DJ Choice ", sCasinoData.iDJChoice, " disabled")
|
|
// mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
// SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_6_CASINO_APARTMENT)
|
|
//
|
|
// PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
// iCustomAptVariant = 1
|
|
// bCustomInteriorSelected = FALSE
|
|
// EXIT
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: DJ Choice ", sCasinoData.iDJChoice, " enabled")
|
|
// ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
INT iPropval
|
|
IF eCasinoID = eTradeInArena
|
|
iPropval = 0
|
|
ELSE
|
|
iPropval = CEIL(TO_FLOAT(GET_CASINO_APT_PRICE(eCasinoID))*g_sMPTunables.fPropertyMultiplier)
|
|
ENDIF
|
|
|
|
bProcessingBasket = TRUE
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_ADD
|
|
INT iItemId = GET_CASINO_APT_KEY_FOR_CATALOGUE(eCasinoID)
|
|
INT iInventoryKey = GET_CASINO_APT_INVENTORY_KEY_FOR_CATALOGUE()
|
|
INT iSellingItemId = 0
|
|
|
|
IF IS_CASINO_APT_ID_VALID(eTradeInArena)
|
|
iSellingItemId = GET_CASINO_APT_KEY_FOR_CATALOGUE(eTradeInArena)
|
|
ENDIF
|
|
|
|
INT iProcessSuccess = GENERIC_TRANSACTION_STATE_DEFAULT
|
|
|
|
///////////////////////////////////////////
|
|
/// TRANSACTION FOR ARENA_GARAGE_b
|
|
WHILE PROCESSING_INTERNET_SHOPPING_BASKET(iProcessSuccess, iPropval, iResultSlot, CATEGORY_INVENTORY_WAREHOUSE, NET_SHOP_ACTION_BUY_WAREHOUSE, iItemId, iInventoryKey, 0, iOwnedTradeArenaValue, iSellingItemId)
|
|
RENDER_BROWSER()
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(TRUE)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(FALSE)
|
|
|
|
RENDER_BROWSER()
|
|
|
|
SWITCH iProcessSuccess
|
|
CASE GENERIC_TRANSACTION_STATE_FAILED
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: purchase failed, failed to process transaction")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_6_CASINO_APARTMENT)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
BREAK
|
|
CASE GENERIC_TRANSACTION_STATE_SUCCESS
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: success!!")
|
|
BREAK
|
|
DEFAULT
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: purchase failed, unknown iProcessSuccess: \"", iProcessSuccess, "\"")
|
|
EXIT
|
|
BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: ignore NETWORK_REQUEST_BASKET_TRANSACTION")
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: final:$", finalPendingTransactionValue, ", propval $", propval)
|
|
|
|
//Assign the telemetry data
|
|
//Increment the spending stat
|
|
IF finalPendingTransactionValue > 0
|
|
INCREMENT_BY_MP_INT_PLAYER_STAT(MPPLY_INGAMESTORE_MONEYSPENT, finalPendingTransactionValue)
|
|
ENDIF
|
|
|
|
TEXT_LABEL_23 tl23PresetName = "CASWEB_PRESET_"
|
|
tl23PresetName += iBoughtCasinoPreset
|
|
|
|
IF bRenovateArenaGarage
|
|
tl23PresetName = "CASWEB_PRESET_0"
|
|
ENDIF
|
|
|
|
IF NOT bRenovateArenaGarage
|
|
IF IS_PLAYER_IN_CASINO(PLAYER_ID())
|
|
AND NOT IS_PLAYER_WALKING_IN_OR_OUT_OF_SIMPLE_INTERIOR(PLAYER_ID())
|
|
AND IS_LOCAL_PLAYER_PED_IN_CASINO_ROOM(CASINO_RECEPTION_ROOM)
|
|
PRINTLN("<CASINO_DIALOGUE> BUY_MP_CASINO_APT_FROM_WEBSITE - Set BS7_SIMPLE_INTERIOR_CASINO_MAITRE_D_PLAY_PURCHASED_PENTHOUSE_LINE")
|
|
SET_BIT(g_SimpleInteriorData.iSeventhBS, BS7_SIMPLE_INTERIOR_CASINO_MAITRE_D_PLAY_PURCHASED_PENTHOUSE_LINE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
STRUCT_SPENT_ON_CASINO data
|
|
//Check if we're trading of just buying
|
|
IF (NOT IS_CASINO_APT_ID_VALID(eTradeInArena))
|
|
OR (bRenovateArenaGarage)
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
INT iFinalPropValue = propval
|
|
IF (sCasino_apt_price_struct.iColourOptionPrice >= 0)
|
|
OR NOT bRenovateArenaGarage
|
|
data.m_colour = GET_HASH_KEY(GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_COLOUR_OPTION, sCasinoData.iColourOption))
|
|
data.m_colour_amount = sCasino_apt_price_struct.iColourOptionPrice
|
|
iFinalPropValue -= data.m_colour_amount
|
|
ENDIF
|
|
IF (sCasino_apt_price_struct.iStyleOptionPrice >= 0)
|
|
OR NOT bRenovateArenaGarage
|
|
data.m_graphics = GET_HASH_KEY(GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_STYLE_OPTION, sCasinoData.iStyleOption))
|
|
data.m_graphics_amount = sCasino_apt_price_struct.iStyleOptionPrice
|
|
iFinalPropValue -= data.m_graphics_amount
|
|
ENDIF
|
|
IF (sCasino_apt_price_struct.iLoungePrice >= 0)
|
|
OR NOT bRenovateArenaGarage
|
|
data.m_lounge = GET_HASH_KEY(GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_LOUNGE, sCasinoData.iLounge))
|
|
data.m_lounge_amount = sCasino_apt_price_struct.iLoungePrice
|
|
iFinalPropValue -= data.m_lounge_amount
|
|
ENDIF
|
|
IF (sCasino_apt_price_struct.iBarPrice >= 0)
|
|
OR NOT bRenovateArenaGarage
|
|
data.m_barParty = GET_HASH_KEY(GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_BAR, sCasinoData.iBar))
|
|
data.m_barParty_amount = sCasino_apt_price_struct.iBarPrice
|
|
iFinalPropValue -= data.m_barParty_amount
|
|
ENDIF
|
|
IF (sCasino_apt_price_struct.iDealerPrice >= 0)
|
|
OR NOT bRenovateArenaGarage
|
|
data.m_dealer = GET_HASH_KEY(GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_DEALER, sCasinoData.iDealer))
|
|
data.m_dealer_amount = sCasino_apt_price_struct.iDealerPrice
|
|
iFinalPropValue -= data.m_dealer_amount
|
|
ENDIF
|
|
IF (sCasino_apt_price_struct.iBedroomPrice >= 0)
|
|
OR NOT bRenovateArenaGarage
|
|
data.m_extraBedroom = GET_HASH_KEY(GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_Bedroom, sCasinoData.iBedroom))
|
|
data.m_extraBedroom_amount = sCasino_apt_price_struct.iBedroomPrice
|
|
iFinalPropValue -= data.m_extraBedroom_amount
|
|
ENDIF
|
|
IF (sCasino_apt_price_struct.iMediaroomPrice >= 0)
|
|
OR NOT bRenovateArenaGarage
|
|
data.m_Mediaroom = GET_HASH_KEY(GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_Mediaroom, sCasinoData.iMediaroom))
|
|
data.m_Mediaroom_amount = sCasino_apt_price_struct.iMediaroomPrice
|
|
iFinalPropValue -= data.m_Mediaroom_amount
|
|
ENDIF
|
|
IF (sCasino_apt_price_struct.iSpaPrice >= 0)
|
|
OR NOT bRenovateArenaGarage
|
|
data.m_spa = GET_HASH_KEY(GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_SPA, sCasinoData.iSpa))
|
|
data.m_spa_amount = sCasino_apt_price_struct.iSpaPrice
|
|
iFinalPropValue -= data.m_spa_amount
|
|
ENDIF
|
|
IF (sCasino_apt_price_struct.iOfficePrice >= 0)
|
|
OR NOT bRenovateArenaGarage
|
|
data.m_office = GET_HASH_KEY(GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_OFFICE, sCasinoData.iOffice))
|
|
data.m_office_amount = sCasino_apt_price_struct.iOfficePrice
|
|
iFinalPropValue -= data.m_office_amount
|
|
ENDIF
|
|
IF (sCasino_apt_price_struct.iGaragePrice >= 0)
|
|
OR NOT bRenovateArenaGarage
|
|
data.m_garage = GET_HASH_KEY(GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_GARAGE, sCasinoData.iGarage))
|
|
data.m_garage_amount = sCasino_apt_price_struct.iGaragePrice
|
|
iFinalPropValue -= data.m_garage_amount
|
|
ENDIF
|
|
data.m_preset = GET_HASH_KEY(tl23PresetName)
|
|
data.m_preset_amount = 0
|
|
IF (iFinalPropValue >= 0)
|
|
OR NOT bRenovateArenaGarage
|
|
data.m_masterBedroom = GET_HASH_KEY(GET_CASINO_APT_NAME_FROM_ID(eCasinoID))
|
|
data.m_masterBedroom_amount = iFinalPropValue
|
|
ENDIF
|
|
|
|
IF NOT bRenovateArenaGarage
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: Bought CASINO_APT for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_masterBedroom:", data.m_masterBedroom, " m_masterBedroom_amount:$", data.m_masterBedroom_amount, " ", GET_CASINO_APT_NAME_FROM_ID(eCasinoID))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_colour:", data.m_colour, " m_colour_amount:$", data.m_colour_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_COLOUR_OPTION, sCasinoData.iColourOption))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_graphics:", data.m_graphics, " m_graphics_amount:$", data.m_graphics_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_STYLE_OPTION, sCasinoData.iStyleOption))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_lounge:", data.m_lounge, " m_lounge_amount:$", data.m_lounge_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_LOUNGE, sCasinoData.iLounge))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_barParty:", data.m_barParty, " m_barParty_amount:$", data.m_barParty_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_BAR, sCasinoData.iBar))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_dealer:", data.m_dealer, " m_dealer_amount:$", data.m_dealer_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_DEALER, sCasinoData.iDealer))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_extraBedroom:", data.m_extraBedroom, " m_extraBedroom_amount:$", data.m_extraBedroom_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_BEDROOM, sCasinoData.iBedroom))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_Mediaroom:", data.m_Mediaroom, " m_Mediaroom_amount:$", data.m_Mediaroom_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_MEDIAROOM, sCasinoData.iMediaroom))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_spa:", data.m_spa, " m_spa_amount:$", data.m_spa_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_SPA, sCasinoData.iSpa))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_office:", data.m_office, " m_office_amount:$", data.m_office_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_OFFICE, sCasinoData.iOffice))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_garage:", data.m_garage, " m_garage_amount:$", data.m_garage_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_GARAGE, sCasinoData.iGarage))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_preset:", data.m_preset, " m_preset_amount:$", data.m_preset_amount, " ", tl23PresetName)
|
|
|
|
NETWORK_SPEND_BUY_CASINO(propval, FALSE, TRUE, data)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: Renovate CASINO_APT for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_masterBedroom:", data.m_masterBedroom, " m_masterBedroom_amount:$", data.m_masterBedroom_amount, " ", GET_CASINO_APT_NAME_FROM_ID(eCasinoID))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_colour:", data.m_colour, " m_colour_amount:$", data.m_colour_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_COLOUR_OPTION, sCasinoData.iColourOption))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_graphics:", data.m_graphics, " m_graphics_amount:$", data.m_graphics_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_STYLE_OPTION, sCasinoData.iStyleOption))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_lounge:", data.m_lounge, " m_lounge_amount:$", data.m_lounge_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_LOUNGE, sCasinoData.iLounge))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_barParty:", data.m_barParty, " m_barParty_amount:$", data.m_barParty_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_BAR, sCasinoData.iBar))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_dealer:", data.m_dealer, " m_dealer_amount:$", data.m_dealer_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_DEALER, sCasinoData.iDealer))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_extraBedroom:", data.m_extraBedroom, " m_extraBedroom_amount:$", data.m_extraBedroom_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_BEDROOM, sCasinoData.iBedroom))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_Mediaroom:", data.m_Mediaroom, " m_Mediaroom_amount:$", data.m_Mediaroom_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_MEDIAROOM, sCasinoData.iMediaroom))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_spa:", data.m_spa, " m_spa_amount:$", data.m_spa_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_SPA, sCasinoData.iSpa))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_office:", data.m_office, " m_office_amount:$", data.m_office_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_OFFICE, sCasinoData.iOffice))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_garage:", data.m_garage, " m_garage_amount:$", data.m_garage_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_GARAGE, sCasinoData.iGarage))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_preset:", data.m_preset, " m_preset_amount:$", data.m_preset_amount, " ", tl23PresetName)
|
|
|
|
NETWORK_SPEND_UPGRADE_CASINO(propval, FALSE, TRUE, data)
|
|
ENDIF
|
|
|
|
IF NOT bRenovateArenaGarage
|
|
SET_CASINO_APARTMENT_AS_OWNED(eCasinoID)
|
|
|
|
IF !IS_PLAYER_IN_CASINO(PLAYER_ID())
|
|
GB_SETUP_CASINO_PURCHASED_FLOW_CALL()
|
|
PRINTLN("[FMBB_CALL] - BUY_MP_CASINO_APT_FROM_WEBSITE - GB_SETUP_CASINO_PURCHASED_FLOW_CALL set")
|
|
ELSE
|
|
g_bPurchasedCasinoAptInsideCasino = TRUE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: g_bPurchasedCasinoAptInsideCasino = TRUE")
|
|
ENDIF
|
|
|
|
#IF DEFINED(NETWORK_CASINO_CAN_BET_PVC)
|
|
IF NOT NETWORK_CASINO_CAN_BET_PVC()
|
|
// [[HELP_CASWEB_1]
|
|
// Please note: The Diamond Casino & Resort does not support the use of Shark Cards in your region. Only earned GTA$ can be used to purchase additional chips to use inside the casino.
|
|
// CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_CASWEB_1 (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
// SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_CASWEB_1", DEFAULT, TRUE)
|
|
// iTutTimer = g_iBrowserTimer + 7500
|
|
ENDIF
|
|
#ENDIF
|
|
ENDIF
|
|
|
|
ELIF GET_CASINO_APT_BASE_PRICE(eTradeInArena) > 0
|
|
// IF NOT SHOULD_CASINO_APT_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: Trading the business ", eTradeInArena, " is earning the player:$", iOwnedTradeArenaValue)
|
|
NETWORK_EARN_NIGHTCLUB_AND_WAREHOUSE(iOwnedTradeArenaValue, GET_HASH_KEY(GET_CASINO_APT_NAME_FROM_ID(eTradeInArena)), 0, 0, 0, 0, 0)
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: Earn nothing from property:$", GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(iResultSlot), " ", tl_15PropertyName, " as was free")
|
|
// ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
INT iFinalPropValue = finalPendingTransactionValue
|
|
iFinalPropValue += iOwnedTradeArenaValue
|
|
|
|
//
|
|
data.m_colour = GET_HASH_KEY(GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_COLOUR_OPTION, sCasinoData.iColourOption))
|
|
data.m_colour_amount = sCasino_apt_price_struct.iColourOptionPrice
|
|
iFinalPropValue -= data.m_colour_amount
|
|
//
|
|
data.m_graphics = GET_HASH_KEY(GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_STYLE_OPTION, sCasinoData.iStyleOption))
|
|
data.m_graphics_amount = sCasino_apt_price_struct.iStyleOptionPrice
|
|
iFinalPropValue -= data.m_graphics_amount
|
|
//
|
|
data.m_lounge = GET_HASH_KEY(GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_LOUNGE, sCasinoData.iLounge))
|
|
data.m_lounge_amount = sCasino_apt_price_struct.iLoungePrice
|
|
iFinalPropValue -= data.m_lounge_amount
|
|
//
|
|
data.m_barParty = GET_HASH_KEY(GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_BAR, sCasinoData.iBar))
|
|
data.m_barParty_amount = sCasino_apt_price_struct.iBarPrice
|
|
iFinalPropValue -= data.m_barParty_amount
|
|
//
|
|
data.m_dealer = GET_HASH_KEY(GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_DEALER, sCasinoData.iDealer))
|
|
data.m_dealer_amount = sCasino_apt_price_struct.iDealerPrice
|
|
iFinalPropValue -= data.m_dealer_amount
|
|
//
|
|
data.m_extraBedroom = GET_HASH_KEY(GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_Bedroom, sCasinoData.iBedroom))
|
|
data.m_extraBedroom_amount = sCasino_apt_price_struct.iBedroomPrice
|
|
iFinalPropValue -= data.m_extraBedroom_amount
|
|
//
|
|
data.m_Mediaroom = GET_HASH_KEY(GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_Mediaroom, sCasinoData.iMediaroom))
|
|
data.m_Mediaroom_amount = sCasino_apt_price_struct.iMediaroomPrice
|
|
iFinalPropValue -= data.m_Mediaroom_amount
|
|
//
|
|
data.m_spa = GET_HASH_KEY(GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_SPA, sCasinoData.iSpa))
|
|
data.m_spa_amount = sCasino_apt_price_struct.iSpaPrice
|
|
iFinalPropValue -= data.m_spa_amount
|
|
//
|
|
data.m_office = GET_HASH_KEY(GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_OFFICE, sCasinoData.iOffice))
|
|
data.m_office_amount = sCasino_apt_price_struct.iOfficePrice
|
|
iFinalPropValue -= data.m_office_amount
|
|
//
|
|
data.m_garage = GET_HASH_KEY(GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_GARAGE, sCasinoData.iGarage))
|
|
data.m_garage_amount = sCasino_apt_price_struct.iGaragePrice
|
|
iFinalPropValue -= data.m_garage_amount
|
|
//
|
|
data.m_preset = GET_HASH_KEY(tl23PresetName)
|
|
data.m_preset_amount = 0
|
|
//
|
|
data.m_masterBedroom = GET_HASH_KEY(GET_CASINO_APT_NAME_FROM_ID(eCasinoID))
|
|
data.m_masterBedroom_amount = iFinalPropValue
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: Trading CASINO_APT for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_masterBedroom:", data.m_masterBedroom, " m_masterBedroom_amount:$", data.m_masterBedroom_amount, " ", GET_CASINO_APT_NAME_FROM_ID(eCasinoID))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_colour:", data.m_colour, " m_colour_amount:$", data.m_colour_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_COLOUR_OPTION, sCasinoData.iColourOption))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_graphics:", data.m_graphics, " m_graphics_amount:$", data.m_graphics_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_STYLE_OPTION, sCasinoData.iStyleOption))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_lounge:", data.m_lounge, " m_lounge_amount:$", data.m_lounge_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_LOUNGE, sCasinoData.iLounge))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_barParty:", data.m_barParty, " m_barParty_amount:$", data.m_barParty_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_BAR, sCasinoData.iBar))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_dealer:", data.m_dealer, " m_dealer_amount:$", data.m_dealer_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_DEALER, sCasinoData.iDealer))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_extraBedroom:", data.m_extraBedroom, " m_extraBedroom_amount:$", data.m_extraBedroom_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_BEDROOM, sCasinoData.iBedroom))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_Mediaroom:", data.m_Mediaroom, " m_Mediaroom_amount:$", data.m_Mediaroom_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_MEDIAROOM, sCasinoData.iMediaroom))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_spa:", data.m_spa, " m_spa_amount:$", data.m_spa_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_SPA, sCasinoData.iSpa))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_office:", data.m_office, " m_office_amount:$", data.m_office_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_OFFICE, sCasinoData.iOffice))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_garage:", data.m_garage, " m_garage_amount:$", data.m_garage_amount, " ", GET_CASINO_APT_MOD_NAME_FROM_ID(eCASINO_APT_MOD_GARAGE, sCasinoData.iGarage))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: m_preset:", data.m_preset, " m_preset_amount:$", data.m_preset_amount, " ", tl23PresetName)
|
|
|
|
NETWORK_SPEND_UPGRADE_CASINO(propval, FALSE, TRUE, data)
|
|
|
|
// REMOTE_REQUEST_REMOVE_ALL_CONTRABAND_FROM_XXXXXX()
|
|
// TRADE_ARENA_GARAGE_b(eCasinoID, eTradeInArena)
|
|
ENDIF
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(sCasinoData.iGarage)
|
|
INT iBuyPropertyIndex = PROPERTY_CASINO_GARAGE
|
|
iResultSlot = PROPERTY_OWNED_SLOT_CASINO_GARAGE
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_CASINO_GAR1, iBuyPropertyIndex)
|
|
IF (GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_GARAGE)) != sCasinoData.iGarage)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_CASINO_GAR1_VALUE,CEIL(TO_FLOAT(GET_CASINO_APT_PRICE(eCasinoID))*g_sMPTunables.fPropertyMultiplier))
|
|
IF GET_OWNED_PROPERTY(0) <= 0
|
|
IF IS_PERSONAL_VEHICLE_DRIVEABLE_IN_FREEMODE()
|
|
IF DOES_ENTITY_EXIST(MPGlobalsAmbience.vehPersonalVehicle)
|
|
INT iForceDisplayUpdatedSlot
|
|
MPSV_GET_DISPLAY_SLOT_FROM_SAVE_SLOT(CURRENT_SAVED_VEHICLE_SLOT(),iForceDisplayUpdatedSlot)
|
|
IF iForceDisplayUpdatedSlot <= 0
|
|
iForceDisplayUpdatedSlot = MP_SAVE_VEHICLE_GET_EMPTY_DISPLAY_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,GET_ENTITY_MODEL(MPGlobalsAmbience.vehPersonalVehicle))
|
|
IF iForceDisplayUpdatedSlot >= 0
|
|
PRINTLN("Forcing vehicle out in freemode slot display to #",iForceDisplayUpdatedSlot," when buying xxxx_GARAGE_b")
|
|
MPSV_SET_DISPLAY_SLOT(iForceDisplayUpdatedSlot,CURRENT_SAVED_VEHICLE_SLOT())
|
|
IF iForceDisplayUpdatedSlot != 0
|
|
MPSV_SET_DISPLAY_SLOT(0,-1)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
#IF DEFINED(MP_SETTING_SPAWN_CASINO_APARTMENT)
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(sCasinoData.iBedroom)
|
|
IF (GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_BEDROOM)) != sCasinoData.iBedroom)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: set CASINO_APT spawn, player bought accomodation")
|
|
SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_CASINO_APARTMENT)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: set CASINO_APT spawn, player already has accom so not a renovation")
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: iColourOption: ", sCasinoData.iColourOption)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: iStyleOption: ", sCasinoData.iStyleOption)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: iLounge: ", sCasinoData.iLounge)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: iBar: ", sCasinoData.iBar)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: iDealer: ", sCasinoData.iDealer)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: iBedroom: ", sCasinoData.iBedroom)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: iMediaroom: ", sCasinoData.iMediaroom)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: iSpa: ", sCasinoData.iSpa)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: iOffice: ", sCasinoData.iOffice)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: iGarage: ", sCasinoData.iGarage)
|
|
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_COLOUR_OPTION), sCasinoData.iColourOption)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_STYLE_OPTION), sCasinoData.iStyleOption)
|
|
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_LOUNGE), sCasinoData.iLounge)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_BAR), sCasinoData.iBar)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_DEALER), sCasinoData.iDealer)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_BEDROOM), sCasinoData.iBedroom)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_MEDIAROOM), sCasinoData.iMediaroom)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_SPA), sCasinoData.iSpa)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_OFFICE), sCasinoData.iOffice)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CASINO_APT_UPGRADE(eCASINO_APT_MOD_GARAGE), sCasinoData.iGarage)
|
|
|
|
// IF (sCasinoData.iGarage >= 1)
|
|
// iBuyPropertyIndex = PROPERTY_CASINO_GARAGE
|
|
// iResultSlot = PROPERTY_OWNED_SLOT_CASINO_GARAGE
|
|
// SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_CASINO_GAR1, iBuyPropertyIndex)
|
|
// IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
// g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
// ELSE
|
|
// g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2] = 0
|
|
// ENDIF
|
|
// SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_CASINO_GAR1_VALUE,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot-2])
|
|
//
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: MP_STAT_PROP_CASINO_GAR1 iBuyPropertyIndex:", iBuyPropertyIndex)
|
|
// ENDIF
|
|
|
|
SETUP_CASINO_APT_BROADCAST_DATA()
|
|
|
|
// IF bDisplayed_HELP_AWSE0nc
|
|
// CDEBUG1LN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: purchased ARENA_GARAGE_b, set bDisplayed_HELP_AWSE0nc false")
|
|
// bDisplayed_HELP_AWSE0nc = FALSE
|
|
// ENDIF
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Special","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
bBrowserShoppingSavePending = TRUE
|
|
CHECK_AMERICAN_DREAM_ACHIEVEMENT()
|
|
POPULATE_MP_CASINO_PROPERTY_SITE_PIN_MAP(mov, TRUE)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_SUCCESS", TRUE, bRenovateArenaGarage, FALSE, FALSE, rpmt_6_CASINO_APARTMENT)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: purchase complete, refreshing pin map")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
iBoughtPropertyIndex = -1
|
|
eBoughtFactoryIndex = FACTORY_ID_INVALID
|
|
eBoughtHangarIndex = HANGAR_ID_INVALID
|
|
eBoughtDefunctBaseIndex = DEFUNCT_BASE_ID_INVALID
|
|
eBoughtNightclubIndex = NIGHTCLUB_ID_INVALID
|
|
eBoughtArenaIndex = ARENA_GARAGE_ID_INVALID
|
|
eBoughtArcadeIndex = ARCADE_PROPERTY_ID_INVALID
|
|
eBoughtCasinoIndex = eCasinoID
|
|
iBoughtCasinoPreset = -1
|
|
eBoughtAutoShopIndex = AUTO_SHOP_PROPERTY_ID_INVALID
|
|
#IF FEATURE_FIXER
|
|
eBoughtFixerHQIndex = FIXER_HQ_ID_INVALID
|
|
#ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_CASINO_APT_FROM_WEBSITE: purchase complete, resetting iCustomAptVariant to 1")
|
|
ENDPROC
|
|
|
|
PROC BUY_MP_ARCADE_FROM_WEBSITE(ARCADE_PROPERTY_ID eArcadeID, INT &iResultSlot)
|
|
INT minPendingTransactionValue, finalPendingTransactionValue, iOwnedTradeArcadeValue
|
|
|
|
INT iBankBalance = NETWORK_GET_VC_BANK_BALANCE()
|
|
INT iWalletBalance = NETWORK_GET_VC_WALLET_BALANCE()
|
|
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("ARCADEHELP")
|
|
OR IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("ARC_OPTIONS")
|
|
CLEAR_HELP()
|
|
|
|
CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT()
|
|
ENDIF
|
|
|
|
IF NOT IS_FM_TYPE_UNLOCKED(FMMC_TYPE_CUSTOM_CAR_GARAGE)
|
|
IF GET_PLAYER_RANK(GET_PLAYER_INDEX()) < 5
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: purchase failed, player doesn't have sufficient rank (", GET_PLAYER_RANK(GET_PLAYER_INDEX()), ")")
|
|
|
|
mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: purchase failed, player pending unlock for sufficient rank")
|
|
|
|
mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK_PENDING
|
|
ENDIF
|
|
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_7_ARCADE)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
iCustomAptVariant = 1
|
|
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
IF NOT NET_GAMESERVER_IS_SESSION_VALID(GET_ACTIVE_CHARACTER_SLOT())
|
|
OR NET_GAMESERVER_IS_SESSION_REFRESH_PENDING()
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: purchase failed - session pending!")
|
|
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_7_ARCADE)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
iCustomAptVariant = 1
|
|
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
TEXT_LABEL_15 tl_15ArcadeName = GET_ARCADE_NAME_FROM_ID(eArcadeID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: trying to purchase Arcade ", tl_15ArcadeName, " #", eArcadeID)
|
|
|
|
INT propval = CEIL(TO_FLOAT(GET_ARCADE_PRICE(eArcadeID)) * g_sMPTunables.fPropertyMultiplier)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: purchase valid, attempting index ", tl_15ArcadeName, " $", propval)
|
|
|
|
minPendingTransactionValue = propval
|
|
|
|
ARCADE_PROPERTY_ID eTradeInArcade = GET_PLAYERS_OWNED_ARCADE_PROPERTY(PLAYER_ID())
|
|
|
|
IF IS_ARCADE_PROPERTY_ID_VALID(eTradeInArcade)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: currently owns Arcade #", eTradeInArcade)
|
|
|
|
INT iCurrentMission = GB_GET_PLAYER_CURRENT_GANG_BOSS_MISSION(PLAYER_ID())
|
|
|
|
IF GB_IS_PLAYER_BOSS_OF_A_GANG(PLAYER_ID())
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: player current gang boss mission: \"", GANG_BOSS_GET_NAME_FOR_TYPE_FOR_DEBUG_PRINT(iCurrentMission), "\"")
|
|
|
|
IF (iCurrentMission = FMMC_TYPE_GB_CASINO_HEIST)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: purchase failed, player current gang boss mission: ", GANG_BOSS_GET_NAME_FOR_TYPE_FOR_DEBUG_PRINT(iCurrentMission))
|
|
|
|
mpPropertySiteFailReason = MPSFR_ON_MISSION
|
|
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_7_ARCADE)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
iCustomAptVariant = 1
|
|
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BOOL bRenovateArcade = FALSE
|
|
|
|
IF (eArcadeID = eTradeInArcade)
|
|
IF GET_LOCAL_PLAYER_USING_OFFICE_SEATID() != -1
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: purchase failed - using office seat ", GET_LOCAL_PLAYER_USING_OFFICE_SEATID(), "!")
|
|
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_7_ARCADE)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
iCustomAptVariant = 1
|
|
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
EXIT
|
|
ENDIF
|
|
|
|
propval = CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES(eArcadeID, sArcade_price_struct)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: renovate ", tl_15ArcadeName, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
|
|
bRenovateArcade = TRUE
|
|
ELSE
|
|
propval += CALCULATE_COST_OF_ARCADE_INTERIOR_UPGRADES(eArcadeID, sArcade_price_struct)
|
|
|
|
IF NOT IS_ARCADE_PROPERTY_ID_VALID(eTradeInArcade)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: purchase ", tl_15ArcadeName, " for ", eTradeInArcade, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: trade ", tl_15ArcadeName, " for ", eTradeInArcade, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
minPendingTransactionValue = propval
|
|
|
|
//is it a debit or refund
|
|
IF NOT IS_ARCADE_PROPERTY_ID_VALID(eTradeInArcade)
|
|
OR bRenovateArcade
|
|
IF minPendingTransactionValue > 0
|
|
//do they have enough money
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " <> $", minPendingTransactionValue)
|
|
|
|
IF (minPendingTransactionValue <= 0
|
|
OR (minPendingTransactionValue > 0 AND NOT NETWORK_CAN_SPEND_MONEY(minPendingTransactionValue, FALSE, TRUE, FALSE)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance + iWalletBalance) $", (iBankBalance + iWalletBalance), " < NETWORK_CAN_SPEND_MONEY:minPendingTransactionValue $", minPendingTransactionValue, "]")
|
|
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_7_ARCADE)
|
|
|
|
iCustomAptVariant = 1
|
|
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15ArcadeName), minPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
//is it a debit or refund
|
|
INT iTempMinPendingTransactionValue = minPendingTransactionValue - GET_ARCADE_SALE_VALUE(eTradeInArcade)
|
|
|
|
IF iTempMinPendingTransactionValue > 0
|
|
//do they have enough money
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " > $", minPendingTransactionValue, "+", GET_ARCADE_SALE_VALUE(eTradeInArcade))
|
|
|
|
IF (iTempMinPendingTransactionValue <= 0
|
|
OR (iTempMinPendingTransactionValue > 0 AND NOT NETWORK_CAN_SPEND_MONEY(iTempMinPendingTransactionValue, FALSE, TRUE, FALSE)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance + iWalletBalance) $", (iBankBalance + iWalletBalance), " < NETWORK_CAN_SPEND_MONEY: iTempMinPendingTransactionValue $", minPendingTransactionValue, "+", GET_ARCADE_SALE_VALUE(eTradeInArcade), "]")
|
|
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_7_ARCADE)
|
|
|
|
iCustomAptVariant = 1
|
|
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15ArcadeName), iTempMinPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
EXIT
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: bank: $", iBankBalance, " + wallet: $", iWalletBalance, " <= $", minPendingTransactionValue, "+", GET_ARCADE_SALE_VALUE(eTradeInArcade))
|
|
ENDIF
|
|
|
|
INT iReplaceSpecificPropertySlot
|
|
|
|
REPLACE_MP_VEH_OR_PROP_MENU replaceMenu
|
|
|
|
WHILE NOT RUN_REPLACE_PROPERTY_MENU(replaceMenu, iResultSlot, ENUM_TO_INT(eArcadeID), iReplaceSpecificPropertySlot, rpmt_7_ARCADE)
|
|
AND DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
DISABLE_SELECTOR_THIS_FRAME()
|
|
|
|
DISABLE_CELLPHONE_THIS_FRAME_ONLY()
|
|
|
|
WAIT(0)
|
|
|
|
g_sMenuData.bKeepPhoneForNextDrawMenuCall = TRUE
|
|
ENDWHILE
|
|
|
|
IF iResultSlot = -1
|
|
mpPropertySiteFailReason = MPSFR_CANCELED
|
|
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_7_ARCADE)
|
|
|
|
iCustomAptVariant = 1
|
|
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
g_iPendingBrowserTimer = g_iBrowserTimer
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CDM: BUY_MP_ARCADE_FROM_WEBSITE: purchase failed, player backed out of property selection")
|
|
|
|
EXIT
|
|
ELSE
|
|
iOwnedTradeArcadeValue = GET_ARCADE_SALE_VALUE(eTradeInArcade)
|
|
|
|
finalPendingTransactionValue = propval - iOwnedTradeArcadeValue
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: Player selected iResultSlot ", iResultSlot, ", trade ba: ", eTradeInArcade, " for trade. propval $", propval, ", iOwnedTradeArcadeValue: ", iOwnedTradeArcadeValue, " Final trans value $", finalPendingTransactionValue)
|
|
ENDIF
|
|
|
|
// Re-check if player can afford based on selected trade-in value
|
|
IF finalPendingTransactionValue > 0
|
|
//do they have enough money
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: bank: $", iBankBalance, " + wallet: $", iWalletBalance, " + trade: $", iOwnedTradeArcadeValue, " <> $", finalPendingTransactionValue)
|
|
|
|
IF NOT NETWORK_CAN_SPEND_MONEY(finalPendingTransactionValue, FALSE, TRUE, FALSE)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: purchase failed, player failed on command NETWORK_CAN_SPEND_MONEY")
|
|
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_7_ARCADE)
|
|
|
|
iCustomAptVariant = 1
|
|
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15ArcadeName), finalPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ARCADE_DATA_STRUCT sArcadeData
|
|
|
|
GET_SCALEFORM_ARCADE_DATA(sArcadeData)
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
INT iPropval
|
|
|
|
IF eArcadeID = eTradeInArcade
|
|
iPropval = 0
|
|
ELSE
|
|
iPropval = CEIL(TO_FLOAT(GET_ARCADE_PRICE(eArcadeID)) * g_sMPTunables.fPropertyMultiplier)
|
|
ENDIF
|
|
|
|
bProcessingBasket = TRUE
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_ADD
|
|
|
|
INT iItemId = GET_ARCADE_KEY_FOR_CATALOGUE(eArcadeID)
|
|
INT iInventoryKey = GET_ARCADE_INVENTORY_KEY_FOR_CATALOGUE()
|
|
INT iSellingItemId = 0
|
|
|
|
IF IS_ARCADE_PROPERTY_ID_VALID(eTradeInArcade)
|
|
iSellingItemId = GET_ARCADE_KEY_FOR_CATALOGUE(eTradeInArcade)
|
|
ENDIF
|
|
|
|
INT iProcessSuccess = GENERIC_TRANSACTION_STATE_DEFAULT
|
|
|
|
IF GET_ARCADE_BASE_PRICE(eTradeInArcade) > 0
|
|
INT iSafeCash = GET_MP_INT_CHARACTER_STAT(MP_STAT_ARCADE_SAFE_CASH_VALUE)
|
|
IF iSafeCash > 0
|
|
g_iCachedPlayerCashForArcadeSafe = iSafeCash
|
|
g_eCachedPlayerArcadeForArcadeSafe = GET_PLAYERS_OWNED_ARCADE_PROPERTY(PLAYER_ID())
|
|
PRINTLN("[ARCADE_PAYOUT] SAFE_SWAP - cacheing safe cash stat")
|
|
ELSE
|
|
PRINTLN("[ARCADE_PAYOUT] SAFE_SWAP - cash stat was 0 not cacheing")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
WHILE PROCESSING_INTERNET_SHOPPING_BASKET(iProcessSuccess, iPropval, iResultSlot, CATEGORY_INVENTORY_WAREHOUSE, NET_SHOP_ACTION_BUY_WAREHOUSE, iItemId, iInventoryKey, 0, iOwnedTradeArcadeValue, iSellingItemId)
|
|
RENDER_BROWSER()
|
|
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(TRUE)
|
|
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(FALSE)
|
|
|
|
RENDER_BROWSER()
|
|
|
|
SWITCH iProcessSuccess
|
|
CASE GENERIC_TRANSACTION_STATE_FAILED
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: purchase failed, failed to process transaction")
|
|
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_7_ARCADE)
|
|
|
|
g_iCachedPlayerCashForArcadeSafe = 0
|
|
g_eCachedPlayerArcadeForArcadeSafe = GET_PLAYERS_OWNED_ARCADE_PROPERTY(PLAYER_ID())
|
|
PRINTLN("[ARCADE_PAYOUT] SAFE_SWAP - clearing cached values")
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
iCustomAptVariant = 1
|
|
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
EXIT
|
|
BREAK
|
|
|
|
CASE GENERIC_TRANSACTION_STATE_SUCCESS
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: success!!")
|
|
BREAK
|
|
|
|
DEFAULT
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: purchase failed, unknown iProcessSuccess: \"", iProcessSuccess, "\"")
|
|
|
|
EXIT
|
|
BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: ignore NETWORK_REQUEST_BASKET_TRANSACTION")
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: final: $", finalPendingTransactionValue, ", propval $", propval)
|
|
|
|
//Assign the telemetry data
|
|
//Increment the spending stat
|
|
IF finalPendingTransactionValue > 0
|
|
INCREMENT_BY_MP_INT_PLAYER_STAT(MPPLY_INGAMESTORE_MONEYSPENT, finalPendingTransactionValue)
|
|
ENDIF
|
|
|
|
STRUCT_ARCADE sArcadeTelemetry
|
|
sArcadeTelemetry.location = GET_HASH_KEY(GET_ARCADE_NAME_FROM_ID(eArcadeID))
|
|
sArcadeTelemetry.garage = GET_HASH_KEY(GET_ARCADE_MOD_NAME_FROM_ID(eARCADE_MOD_GARAGE, sArcadeData.iGarage))
|
|
sArcadeTelemetry.garage_amount = sArcade_price_struct.iGaragePrice
|
|
sArcadeTelemetry.sleeping_quarter = GET_HASH_KEY(GET_ARCADE_MOD_NAME_FROM_ID(eARCADE_MOD_PERSONAL_QUARTERS, sArcadeData.iPersonalQuarters))
|
|
sArcadeTelemetry.sleeping_quarter_amount = sArcade_price_struct.iPersonalQuartersPrice
|
|
sArcadeTelemetry.m_style = GET_HASH_KEY(GET_ARCADE_MOD_NAME_FROM_ID(eARCADE_MOD_CEILING, sArcadeData.iCeiling))
|
|
sArcadeTelemetry.m_style_amount = sArcade_price_struct.iCeilingPrice
|
|
sArcadeTelemetry.m_mural = GET_HASH_KEY(GET_ARCADE_MOD_NAME_FROM_ID(eARCADE_MOD_WALL, sArcadeData.iWall))
|
|
sArcadeTelemetry.m_mural_amount = sArcade_price_struct.iWallPrice
|
|
sArcadeTelemetry.m_floor = GET_HASH_KEY(GET_ARCADE_MOD_NAME_FROM_ID(eARCADE_MOD_FLOOR, sArcadeData.iFloor))
|
|
sArcadeTelemetry.m_floor_amount = sArcade_price_struct.iFloorPrice
|
|
sArcadeTelemetry.m_neon_art = GET_HASH_KEY(GET_ARCADE_MOD_NAME_FROM_ID(eARCADE_MOD_NEON_LIGHTS, sArcadeData.iNeonLights))
|
|
sArcadeTelemetry.m_neon_art_amount = sArcade_price_struct.iNeonLightsPrice
|
|
sArcadeTelemetry.m_highscore_screen = GET_HASH_KEY(GET_ARCADE_MOD_NAME_FROM_ID(eARCADE_MOD_SCREENS, sArcadeData.iScreens))
|
|
sArcadeTelemetry.m_highscore_screen_amount = sArcade_price_struct.iScreensPrice
|
|
|
|
//Check if we're trading of just buying
|
|
IF (NOT IS_ARCADE_PROPERTY_ID_VALID(eTradeInArcade))
|
|
OR (bRenovateArcade)
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
INT iLocationAmount = propval
|
|
|
|
IF (sArcade_price_struct.iFloorPrice >= 0)
|
|
OR NOT bRenovateArcade
|
|
iLocationAmount -= sArcade_price_struct.iFloorPrice
|
|
ENDIF
|
|
|
|
IF (sArcade_price_struct.iCeilingPrice >= 0)
|
|
OR NOT bRenovateArcade
|
|
iLocationAmount -= sArcade_price_struct.iCeilingPrice
|
|
ENDIF
|
|
|
|
IF (sArcade_price_struct.iWallPrice >= 0)
|
|
OR NOT bRenovateArcade
|
|
iLocationAmount -= sArcade_price_struct.iWallPrice
|
|
ENDIF
|
|
|
|
IF (sArcade_price_struct.iPersonalQuartersPrice >= 0)
|
|
OR NOT bRenovateArcade
|
|
iLocationAmount -= sArcade_price_struct.iPersonalQuartersPrice
|
|
ENDIF
|
|
|
|
IF (sArcade_price_struct.iGaragePrice >= 0)
|
|
OR NOT bRenovateArcade
|
|
iLocationAmount -= sArcade_price_struct.iGaragePrice
|
|
ENDIF
|
|
|
|
IF (sArcade_price_struct.iNeonLightsPrice >= 0)
|
|
OR NOT bRenovateArcade
|
|
iLocationAmount -= sArcade_price_struct.iNeonLightsPrice
|
|
ENDIF
|
|
|
|
IF (sArcade_price_struct.iScreensPrice >= 0)
|
|
OR NOT bRenovateArcade
|
|
iLocationAmount -= sArcade_price_struct.iScreensPrice
|
|
ENDIF
|
|
|
|
IF NOT bRenovateArcade
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: Bought Arcade for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: m_location:", GET_HASH_KEY(GET_ARCADE_NAME_FROM_ID(eArcadeID)), " m_location_amount: $", iLocationAmount, " ", GET_ARCADE_NAME_FROM_ID(eArcadeID))
|
|
|
|
IF GET_LOCAL_PLAYER_ARCADE_CABINET_SAVE_SLOT_TYPE(ACM_SLOT_18, ACP_ARCADE) != ARCADE_CABINET_SAVE_SLOT_CA_STREET_CRIMES_PROP_A
|
|
SET_ARCADE_CABINET_TO_DISPLAY_SAVE_SLOT(ACM_SLOT_18, ARCADE_CABINET_SAVE_SLOT_CA_STREET_CRIMES_PROP_A, ACP_ARCADE)
|
|
ENDIF
|
|
|
|
IF GET_LOCAL_PLAYER_ARCADE_CABINET_SAVE_SLOT_TYPE(ACM_SLOT_19, ACP_ARCADE) != ARCADE_CABINET_SAVE_SLOT_CA_STREET_CRIMES_PROP_B
|
|
SET_ARCADE_CABINET_TO_DISPLAY_SAVE_SLOT(ACM_SLOT_19, ARCADE_CABINET_SAVE_SLOT_CA_STREET_CRIMES_PROP_B, ACP_ARCADE)
|
|
ENDIF
|
|
|
|
IF GET_LOCAL_PLAYER_ARCADE_CABINET_SAVE_SLOT_TYPE(ACM_SLOT_20, ACP_ARCADE) != ARCADE_CABINET_SAVE_SLOT_CA_STREET_CRIMES_PROP_C
|
|
SET_ARCADE_CABINET_TO_DISPLAY_SAVE_SLOT(ACM_SLOT_20, ARCADE_CABINET_SAVE_SLOT_CA_STREET_CRIMES_PROP_C, ACP_ARCADE)
|
|
ENDIF
|
|
|
|
IF GET_LOCAL_PLAYER_ARCADE_CABINET_SAVE_SLOT_TYPE(ACM_SLOT_21, ACP_ARCADE) != ARCADE_CABINET_SAVE_SLOT_CA_STREET_CRIMES_PROP_D
|
|
SET_ARCADE_CABINET_TO_DISPLAY_SAVE_SLOT(ACM_SLOT_21, ARCADE_CABINET_SAVE_SLOT_CA_STREET_CRIMES_PROP_D, ACP_ARCADE)
|
|
ENDIF
|
|
|
|
SET_ARCADE_AS_OWNED(eArcadeID)
|
|
GB_SET_LOCAL_CASINO_HEIST_CALL_BIT(eGB_CASINO_HEIST_CALL_BITSET_ARCADE_PROPERTY_PURCHASED)
|
|
|
|
#IF FEATURE_GEN9_EXCLUSIVE
|
|
RESUME_CASINO_HEIST_UDS_ACTIVITY()
|
|
END_CASINO_HEIST_UDS_ACTIVITY(UDS_ACTIVITY_END_REASON_ABANDONED)
|
|
#ENDIF
|
|
|
|
// only set location amount when buying the location
|
|
sArcadeTelemetry.location_amount = iLocationAmount
|
|
NETWORK_SPEND_BUY_ARCADE(propval, FALSE, TRUE, sArcadeTelemetry)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: Renovate Arcade for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: m_location:", GET_HASH_KEY(GET_ARCADE_NAME_FROM_ID(eArcadeID)), " m_location_amount: $", iLocationAmount, " ", GET_ARCADE_NAME_FROM_ID(eArcadeID))
|
|
|
|
NETWORK_SPEND_UPGRADE_ARCADE(propval, FALSE, TRUE, sArcadeTelemetry)
|
|
ENDIF
|
|
ELIF GET_ARCADE_BASE_PRICE(eTradeInArcade) > 0
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: Trading the business ", eTradeInArcade, " is earning the player: $", iOwnedTradeArcadeValue)
|
|
|
|
INT iLocationAmount = finalPendingTransactionValue + iOwnedTradeArcadeValue
|
|
iLocationAmount -= sArcade_price_struct.iFloorPrice
|
|
iLocationAmount -= sArcade_price_struct.iCeilingPrice
|
|
iLocationAmount -= sArcade_price_struct.iWallPrice
|
|
iLocationAmount -= sArcade_price_struct.iPersonalQuartersPrice
|
|
iLocationAmount -= sArcade_price_struct.iGaragePrice
|
|
iLocationAmount -= sArcade_price_struct.iNeonLightsPrice
|
|
iLocationAmount -= sArcade_price_struct.iScreensPrice
|
|
|
|
IF iOwnedTradeArcadeValue > 0
|
|
NETWORK_EARN_UPGRADE_ARCADE(iOwnedTradeArcadeValue, GET_HASH_KEY(GET_ARCADE_NAME_FROM_ID(eArcadeID)), iLocationAmount)
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: Trading Arcade for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: m_location:", GET_HASH_KEY(GET_ARCADE_NAME_FROM_ID(eArcadeID)), " m_location_amount: $", iLocationAmount, " ", GET_ARCADE_NAME_FROM_ID(eArcadeID))
|
|
|
|
sArcadeTelemetry.location_amount = iLocationAmount
|
|
NETWORK_SPEND_UPGRADE_ARCADE(propval, FALSE, TRUE, sArcadeTelemetry)
|
|
|
|
TRADE_ARCADE(eArcadeID, eTradeInArcade)
|
|
ENDIF
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(sArcadeData.iPersonalQuarters)
|
|
IF (GET_MP_INT_CHARACTER_STAT(MP_STAT_ARCADE_PERSONAL_QUARTERS) != sArcadeData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: set Arcade spawn, player bought personal quarters")
|
|
|
|
// SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_ARCADE)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: do not set Arcade spawn, player already has personal quarters")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(sArcadeData.iGarage)
|
|
INT iBuyPropertyIndex = PROPERTY_ARCADE_GARAGE
|
|
iResultSlot = PROPERTY_OWNED_SLOT_ARCADE_GARAGE
|
|
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_ARCADE_GAR1, iBuyPropertyIndex)
|
|
|
|
IF (GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_GARAGE)) != sArcadeData.iGarage)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_ARCADE_GAR1_VALUE, propval)
|
|
|
|
IF GET_OWNED_PROPERTY(0) <= 0
|
|
IF IS_PERSONAL_VEHICLE_DRIVEABLE_IN_FREEMODE()
|
|
IF DOES_ENTITY_EXIST(MPGlobalsAmbience.vehPersonalVehicle)
|
|
INT iForceDisplayUpdatedSlot
|
|
|
|
MPSV_GET_DISPLAY_SLOT_FROM_SAVE_SLOT(CURRENT_SAVED_VEHICLE_SLOT(), iForceDisplayUpdatedSlot)
|
|
|
|
IF iForceDisplayUpdatedSlot <= 0
|
|
iForceDisplayUpdatedSlot = MP_SAVE_VEHICLE_GET_EMPTY_DISPLAY_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST, FALSE, GET_ENTITY_MODEL(MPGlobalsAmbience.vehPersonalVehicle))
|
|
|
|
IF iForceDisplayUpdatedSlot >= 0
|
|
PRINTLN("Forcing vehicle out in freemode slot display to #", iForceDisplayUpdatedSlot," when buying arcade garage")
|
|
|
|
MPSV_SET_DISPLAY_SLOT(iForceDisplayUpdatedSlot, CURRENT_SAVED_VEHICLE_SLOT())
|
|
|
|
IF iForceDisplayUpdatedSlot != 0
|
|
MPSV_SET_DISPLAY_SLOT(0, -1)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT bRenovateArcade
|
|
propval -= sArcade_price_struct.iGaragePrice
|
|
propval -= sArcade_price_struct.iScreensPrice
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: MP_STAT_PROP_ARCADE_VALUE = ", propval)
|
|
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_ARCADE_VALUE, propval)
|
|
|
|
SWITCH INT_TO_ENUM(ARCADE_PROPERTY_ID, eArcadeID)
|
|
CASE ARCADE_PROPERTY_PALETO_BAY SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_ARCADE_PROPERTY_TSHIRT_PIXEL_PETES, TRUE) BREAK
|
|
CASE ARCADE_PROPERTY_GRAPESEED SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_ARCADE_PROPERTY_TSHIRT_WONDERLAND, TRUE) BREAK
|
|
CASE ARCADE_PROPERTY_DAVIS SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_ARCADE_PROPERTY_TSHIRT_WAREHOUSE, TRUE) BREAK
|
|
CASE ARCADE_PROPERTY_WEST_VINEWOOD SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_ARCADE_PROPERTY_TSHIRT_EIGHT_BIT, TRUE) BREAK
|
|
CASE ARCADE_PROPERTY_ROCKFORD_HILLS SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_ARCADE_PROPERTY_TSHIRT_INSERT_COIN, TRUE) BREAK
|
|
CASE ARCADE_PROPERTY_LA_MESA SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_ARCADE_PROPERTY_TSHIRT_VIDEOGEDDON, TRUE) BREAK
|
|
ENDSWITCH
|
|
|
|
IF GET_OWNED_PROPERTY(0) <= 0
|
|
IF IS_PERSONAL_VEHICLE_DRIVEABLE_IN_FREEMODE()
|
|
IF DOES_ENTITY_EXIST(MPGlobalsAmbience.vehPersonalVehicle)
|
|
INT iForceDisplayUpdatedSlot
|
|
|
|
MPSV_GET_DISPLAY_SLOT_FROM_SAVE_SLOT(CURRENT_SAVED_VEHICLE_SLOT(), iForceDisplayUpdatedSlot)
|
|
|
|
IF iForceDisplayUpdatedSlot <= 0
|
|
iForceDisplayUpdatedSlot = MP_SAVE_VEHICLE_GET_EMPTY_DISPLAY_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST, FALSE, GET_ENTITY_MODEL(MPGlobalsAmbience.vehPersonalVehicle))
|
|
|
|
IF iForceDisplayUpdatedSlot >= 0
|
|
PRINTLN("Forcing vehicle out in freemode slot display to #", iForceDisplayUpdatedSlot," when buying Arcade")
|
|
|
|
MPSV_SET_DISPLAY_SLOT(iForceDisplayUpdatedSlot, CURRENT_SAVED_VEHICLE_SLOT())
|
|
|
|
IF iForceDisplayUpdatedSlot != 0
|
|
MPSV_SET_DISPLAY_SLOT(0, -1)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: iFloor: ", sArcadeData.iFloor)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: iCeiling: ", sArcadeData.iCeiling)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: iWall: ", sArcadeData.iWall)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: iPersonalQuarters: ", sArcadeData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: iGarage: ", sArcadeData.iGarage)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: iNeonLights: ", sArcadeData.iNeonLights)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: iScreens: ", sArcadeData.iScreens)
|
|
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_FLOOR), sArcadeData.iFloor)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_CEILING), sArcadeData.iCeiling)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_WALL), sArcadeData.iWall)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_PERSONAL_QUARTERS), sArcadeData.iPersonalQuarters)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_GARAGE), sArcadeData.iGarage)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_NEON_LIGHTS), sArcadeData.iNeonLights)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_ARCADE_UPGRADE(eARCADE_MOD_SCREENS), sArcadeData.iScreens)
|
|
|
|
// IF IS_BUSINESS_HUB_GARAGE_02_PURCHASED()
|
|
// iBuyPropertyIndex = PROPERTY_MEGAWARE_GARAGE_LVL1
|
|
//
|
|
// iResultSlot = PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL1
|
|
//
|
|
// SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_MEGAWARE_GAR1, iBuyPropertyIndex)
|
|
//
|
|
// IF NOT SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
// g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot - 2] = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex)) * g_sMPTunables.fPropertyMultiplier)
|
|
// ELSE
|
|
// g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot - 2] = 0
|
|
// ENDIF
|
|
//
|
|
// SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_MEGAWARE_GAR1_VALUE, g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iMultiPropertyValueArray[iResultSlot - 2])
|
|
//
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: MP_STAT_PROP_MEGAWARE_GAR1 iBuyPropertyIndex:", iBuyPropertyIndex)
|
|
// ENDIF
|
|
|
|
BROADCAST_PLAYER_PURCHASED_ARCADE()
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Special", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
|
|
bBrowserShoppingSavePending = TRUE
|
|
|
|
CHECK_AMERICAN_DREAM_ACHIEVEMENT()
|
|
|
|
POPULATE_MP_BIKER_PROPERTY_SITE_PIN_MAP(mov, TRUE)
|
|
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_SUCCESS", TRUE, bRenovateArcade, FALSE, FALSE, rpmt_7_ARCADE)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: purchase complete, refreshing pin map")
|
|
|
|
iCustomAptVariant = 1
|
|
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
iBoughtPropertyIndex = -1
|
|
|
|
eBoughtFactoryIndex = FACTORY_ID_INVALID
|
|
eBoughtHangarIndex = HANGAR_ID_INVALID
|
|
eBoughtDefunctBaseIndex = DEFUNCT_BASE_ID_INVALID
|
|
eBoughtNightclubIndex = NIGHTCLUB_ID_INVALID
|
|
eBoughtArenaIndex = ARENA_GARAGE_ID_INVALID
|
|
eBoughtArcadeIndex = eArcadeID
|
|
eBoughtCasinoIndex = CASINO_APARTMENT_ID_INVALID
|
|
|
|
iBoughtCasinoPreset = -1
|
|
eBoughtAutoShopIndex = AUTO_SHOP_PROPERTY_ID_INVALID
|
|
#IF FEATURE_FIXER
|
|
eBoughtFixerHQIndex = FIXER_HQ_ID_INVALID
|
|
#ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: purchase complete, resetting iCustomAptVariant to 1")
|
|
ENDPROC
|
|
|
|
PROC BUY_MP_AUTO_SHOP_FROM_WEBSITE(AUTO_SHOP_PROPERTY_ID eAutoShopID, INT &iResultSlot)
|
|
INT minPendingTransactionValue, finalPendingTransactionValue, iOwnedTradeAutoShopValue
|
|
|
|
INT iBankBalance = NETWORK_GET_VC_BANK_BALANCE()
|
|
INT iWalletBalance = NETWORK_GET_VC_WALLET_BALANCE()
|
|
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("AUT_OPTIONS")
|
|
OR IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_ASHOPSTY")
|
|
OR IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_ASHOPTNT")
|
|
CLEAR_HELP()
|
|
CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT()
|
|
ENDIF
|
|
|
|
// ----- Can't purchase if the player isn't a high enough rank. -----
|
|
IF NOT IS_FM_TYPE_UNLOCKED(FMMC_TYPE_CUSTOM_CAR_GARAGE)
|
|
IF GET_PLAYER_RANK(GET_PLAYER_INDEX()) < 5
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: purchase failed, player doesn't have sufficient rank (", GET_PLAYER_RANK(GET_PLAYER_INDEX()), ")")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: purchase failed, player pending unlock for sufficient rank")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK_PENDING
|
|
ENDIF
|
|
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_8_AUTO_SHOP)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
|
|
/// ----- Can't purchase if the session isn't valid. -----
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
IF NOT NET_GAMESERVER_IS_SESSION_VALID(GET_ACTIVE_CHARACTER_SLOT())
|
|
OR NET_GAMESERVER_IS_SESSION_REFRESH_PENDING()
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: purchase failed - session pending!")
|
|
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_8_AUTO_SHOP)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
TEXT_LABEL_15 tl_15AutoShopName = GET_AUTO_SHOP_NAME_FROM_ID(eAutoShopID)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: trying to purchase Auto Shop ", tl_15AutoShopName, " #", eAutoShopID)
|
|
|
|
INT propval = CEIL(TO_FLOAT(GET_AUTO_SHOP_PRICE(eAutoShopID)) * g_sMPTunables.fPropertyMultiplier)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: purchase valid, attempting index ", tl_15AutoShopName, " $", propval)
|
|
|
|
minPendingTransactionValue = propval
|
|
AUTO_SHOP_PROPERTY_ID eTradeInAutoShop = GET_PLAYERS_OWNED_AUTO_SHOP_PROPERTY(PLAYER_ID())
|
|
|
|
// ----- Can't purchase if the player is on a mission. -----
|
|
IF IS_AUTO_SHOP_PROPERTY_ID_VALID(eTradeInAutoShop)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: currently owns Auto Shop #", eTradeInAutoShop)
|
|
|
|
INT iCurrentMission = GB_GET_PLAYER_CURRENT_GANG_BOSS_MISSION(PLAYER_ID())
|
|
|
|
IF GB_IS_PLAYER_BOSS_OF_A_GANG(PLAYER_ID())
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: player current gang boss mission: \"", GANG_BOSS_GET_NAME_FOR_TYPE_FOR_DEBUG_PRINT(iCurrentMission), "\"")
|
|
|
|
IF (iCurrentMission != -1)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: purchase failed, player current gang boss mission: ", GANG_BOSS_GET_NAME_FOR_TYPE_FOR_DEBUG_PRINT(iCurrentMission))
|
|
|
|
mpPropertySiteFailReason = MPSFR_ON_MISSION
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_8_AUTO_SHOP)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BOOL bRenovateAutoShop = FALSE
|
|
|
|
IF (eAutoShopID = eTradeInAutoShop)
|
|
|
|
// ----- Can't purchase if the player is using an office seat. -----
|
|
IF GET_LOCAL_PLAYER_USING_OFFICE_SEATID() != -1
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: purchase failed - using office seat ", GET_LOCAL_PLAYER_USING_OFFICE_SEATID(), "!")
|
|
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_8_AUTO_SHOP)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
|
|
propval = CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES(eAutoShopID, sAutoShop_price_struct)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: renovate ", tl_15AutoShopName, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
bRenovateAutoShop = TRUE
|
|
ELSE
|
|
IF GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CLIENT_VEHICLE_MODIFICATION(0)) != 0
|
|
OR GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CLIENT_VEHICLE_MODIFICATION(1)) != 0
|
|
mpPropertySiteFailReason = MPSFR_HAS_STOCK
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_FAILED", FALSE, FALSE, FALSE, FALSE, rpmt_8_AUTO_SHOP)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ELSE
|
|
propval += CALCULATE_COST_OF_AUTO_SHOP_INTERIOR_UPGRADES(eAutoShopID, sAutoShop_price_struct)
|
|
|
|
IF NOT IS_AUTO_SHOP_PROPERTY_ID_VALID(eTradeInAutoShop)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: purchase ", tl_15AutoShopName, " for ", eTradeInAutoShop, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: trade ", tl_15AutoShopName, " for ", eTradeInAutoShop, ", propval $", propval, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
minPendingTransactionValue = propval
|
|
|
|
IF NOT IS_AUTO_SHOP_PROPERTY_ID_VALID(eTradeInAutoShop)
|
|
OR bRenovateAutoShop
|
|
IF minPendingTransactionValue > 0
|
|
|
|
// ----- Can't purchase if they don't have enough money -----
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " <> $", minPendingTransactionValue)
|
|
IF (minPendingTransactionValue <= 0
|
|
OR (minPendingTransactionValue > 0 AND NOT NETWORK_CAN_SPEND_MONEY(minPendingTransactionValue, FALSE, TRUE, FALSE)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance + iWalletBalance) $", (iBankBalance + iWalletBalance), " < NETWORK_CAN_SPEND_MONEY:minPendingTransactionValue $", minPendingTransactionValue, "]")
|
|
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_8_AUTO_SHOP)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15AutoShopName), minPendingTransactionValue)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
INT iTempMinPendingTransactionValue = minPendingTransactionValue - GET_AUTO_SHOP_SALE_VALUE(eTradeInAutoShop)
|
|
|
|
IF iTempMinPendingTransactionValue > 0
|
|
|
|
// ----- Can't purchase if they don't have enough money -----
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " > $", minPendingTransactionValue, "+", GET_AUTO_SHOP_SALE_VALUE(eTradeInAutoShop))
|
|
IF (iTempMinPendingTransactionValue <= 0
|
|
OR (iTempMinPendingTransactionValue > 0 AND NOT NETWORK_CAN_SPEND_MONEY(iTempMinPendingTransactionValue, FALSE, TRUE, FALSE)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance + iWalletBalance) $", (iBankBalance + iWalletBalance), " < NETWORK_CAN_SPEND_MONEY: iTempMinPendingTransactionValue $", minPendingTransactionValue, "+", GET_AUTO_SHOP_SALE_VALUE(eTradeInAutoShop), "]")
|
|
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_8_AUTO_SHOP)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15AutoShopName), iTempMinPendingTransactionValue)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: bank: $", iBankBalance, " + wallet: $", iWalletBalance, " <= $", minPendingTransactionValue, "+", GET_AUTO_SHOP_SALE_VALUE(eTradeInAutoShop))
|
|
ENDIF
|
|
|
|
INT iReplaceSpecificPropertySlot
|
|
|
|
REPLACE_MP_VEH_OR_PROP_MENU replaceMenu
|
|
|
|
WHILE NOT RUN_REPLACE_PROPERTY_MENU(replaceMenu, iResultSlot, ENUM_TO_INT(eAutoShopID), iReplaceSpecificPropertySlot, rpmt_8_AUTO_SHOP)
|
|
AND DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
DISABLE_SELECTOR_THIS_FRAME()
|
|
DISABLE_CELLPHONE_THIS_FRAME_ONLY()
|
|
WAIT(0)
|
|
g_sMenuData.bKeepPhoneForNextDrawMenuCall = TRUE
|
|
ENDWHILE
|
|
|
|
IF iResultSlot = -1
|
|
mpPropertySiteFailReason = MPSFR_CANCELED
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_8_AUTO_SHOP)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
g_iPendingBrowserTimer = g_iBrowserTimer
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
CPRINTLN(DEBUG_INTERNET, "CDM: BUY_MP_AUTO_SHOP_FROM_WEBSITE: purchase failed, player backed out of property selection")
|
|
EXIT
|
|
ELSE
|
|
iOwnedTradeAutoShopValue = GET_AUTO_SHOP_SALE_VALUE(eTradeInAutoShop)
|
|
finalPendingTransactionValue = propval - iOwnedTradeAutoShopValue
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: Player selected iResultSlot ", iResultSlot, ", trade ba: ", eTradeInAutoShop, " for trade. propval $", propval, ", iOwnedTradeAutoShopValue: ", iOwnedTradeAutoShopValue, " Final trans value $", finalPendingTransactionValue)
|
|
ENDIF
|
|
|
|
// Re-check if player can afford based on selected trade-in value
|
|
IF finalPendingTransactionValue > 0
|
|
//do they have enough money
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: bank: $", iBankBalance, " + wallet: $", iWalletBalance, " + trade: $", iOwnedTradeAutoShopValue, " <> $", finalPendingTransactionValue)
|
|
IF NOT NETWORK_CAN_SPEND_MONEY(finalPendingTransactionValue, FALSE, TRUE, FALSE)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: purchase failed, player failed on command NETWORK_CAN_SPEND_MONEY")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_8_AUTO_SHOP)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15AutoShopName), finalPendingTransactionValue)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
AUTO_SHOP_DATA_STRUCT sAutoShopData
|
|
GET_SCALEFORM_AUTO_SHOP_DATA(sAutoShopData)
|
|
|
|
// If the player is renovating the auto shop, but only purchasing the membership with no add-ons, we ship the next part.
|
|
BOOL bOnlyPurchasingMembership
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
IF bRenovateAutoShop
|
|
AND HAS_SCALEFORM_OPTION_BEEN_SELECTED(sAutoShopData.iCarClubMembership)
|
|
AND sAutoShopData.iWall = GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_WALL))
|
|
AND sAutoShopData.iTint = GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_TINT))
|
|
AND sAutoShopData.iEmblem = GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_EMBLEM))
|
|
AND sAutoShopData.iCrewName = GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_CREW_NAME))
|
|
AND sAutoShopData.iStaff1 = GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_STAFF_ONE))
|
|
AND sAutoShopData.iStaff2 = GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_STAFF_TWO))
|
|
AND sAutoShopData.iCarLift = GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_CAR_LIFT))
|
|
AND sAutoShopData.iPersonalQuarters = GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_PERSONAL_QUARTERS))
|
|
PRINTLN("BUY_MP_AUTO_SHOP_FROM_WEBSITE: Renovating Auto Shop with just the membership. Skipping transaction process.")
|
|
bOnlyPurchasingMembership = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
AND NOT bOnlyPurchasingMembership
|
|
|
|
INT iPropval
|
|
|
|
IF eAutoShopID = eTradeInAutoShop
|
|
iPropval = 0
|
|
ELSE
|
|
iPropval = CEIL(TO_FLOAT(GET_AUTO_SHOP_PRICE(eAutoShopID)) * g_sMPTunables.fPropertyMultiplier)
|
|
ENDIF
|
|
|
|
bProcessingBasket = TRUE
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_ADD
|
|
|
|
INT iItemId = GET_AUTO_SHOP_KEY_FOR_CATALOGUE(eAutoShopID)
|
|
INT iInventoryKey = GET_AUTO_SHOP_INVENTORY_KEY_FOR_CATALOGUE()
|
|
INT iSellingItemId = 0
|
|
|
|
IF IS_AUTO_SHOP_PROPERTY_ID_VALID(eTradeInAutoShop)
|
|
iSellingItemId = GET_AUTO_SHOP_KEY_FOR_CATALOGUE(eTradeInAutoShop)
|
|
ENDIF
|
|
|
|
INT iProcessSuccess = GENERIC_TRANSACTION_STATE_DEFAULT
|
|
|
|
WHILE PROCESSING_INTERNET_SHOPPING_BASKET(iProcessSuccess, iPropval, iResultSlot, CATEGORY_INVENTORY_WAREHOUSE, NET_SHOP_ACTION_BUY_WAREHOUSE, iItemId, iInventoryKey, 0, iOwnedTradeAutoShopValue, iSellingItemId)
|
|
RENDER_BROWSER()
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(TRUE)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(FALSE)
|
|
RENDER_BROWSER()
|
|
|
|
SWITCH iProcessSuccess
|
|
CASE GENERIC_TRANSACTION_STATE_FAILED
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: purchase failed, failed to process transaction")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_8_AUTO_SHOP)
|
|
//g_iCachedPlayerCashForArcadeSafe = 0
|
|
//g_eCachedPlayerArcadeForArcadeSafe = GET_PLAYERS_OWNED_ARCADE_PROPERTY(PLAYER_ID())
|
|
//PRINTLN("[ARCADE_PAYOUT] SAFE_SWAP - clearing cached values")
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
BREAK
|
|
|
|
CASE GENERIC_TRANSACTION_STATE_SUCCESS
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: success!!")
|
|
BREAK
|
|
|
|
DEFAULT
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: purchase failed, unknown iProcessSuccess: \"", iProcessSuccess, "\"")
|
|
EXIT
|
|
BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: ignore NETWORK_REQUEST_BASKET_TRANSACTION")
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: final: $", finalPendingTransactionValue, ", propval $", propval)
|
|
|
|
//Assign the telemetry data
|
|
//Increment the spending stat
|
|
IF finalPendingTransactionValue > 0
|
|
INCREMENT_BY_MP_INT_PLAYER_STAT(MPPLY_INGAMESTORE_MONEYSPENT, finalPendingTransactionValue)
|
|
ENDIF
|
|
|
|
STRUCT_BUY_AUTOSHOP sAutoShopTelemetry
|
|
|
|
TEXT_LABEL_63 tlStaff
|
|
tlStaff += GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_STAFF_ONE, sAutoShopData.iStaff1)
|
|
tlStaff += GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_STAFF_TWO, sAutoShopData.iStaff2)
|
|
|
|
sAutoShopTelemetry.location = GET_HASH_KEY(GET_AUTO_SHOP_NAME_FROM_ID(eAutoShopID))
|
|
sAutoShopTelemetry.style_amount = sAutoShop_price_struct.iWallPrice
|
|
sAutoShopTelemetry.tint_amount = sAutoShop_price_struct.iTintPrice
|
|
sAutoShopTelemetry.emblem_amount = sAutoShop_price_struct.iEmblemPrice
|
|
sAutoShopTelemetry.crew_name_amount = sAutoShop_price_struct.iCrewNamePrice
|
|
sAutoShopTelemetry.staff_amount = sAutoShop_price_struct.iStaff1Price + sAutoShop_price_struct.iStaff2Price
|
|
sAutoShopTelemetry.lift_amount = sAutoShop_price_struct.iCarLiftPrice
|
|
sAutoShopTelemetry.personal_quarter_amount = sAutoShop_price_struct.iPersonalQuartersPrice
|
|
|
|
IF bRenovateAutoShop
|
|
IF sAutoShopData.iWall != g_sAutoShopDataStruct.iWall
|
|
sAutoShopTelemetry.style = GET_HASH_KEY(GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_WALL, sAutoShopData.iWall))
|
|
ENDIF
|
|
|
|
IF sAutoShopData.iTint != g_sAutoShopDataStruct.iTint
|
|
sAutoShopTelemetry.tint = GET_HASH_KEY(GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_TINT, sAutoShopData.iTint))
|
|
ENDIF
|
|
|
|
IF sAutoShopData.iEmblem != g_sAutoShopDataStruct.iEmblem
|
|
sAutoShopTelemetry.emblem = GET_HASH_KEY(GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_EMBLEM, sAutoShopData.iEmblem))
|
|
ENDIF
|
|
|
|
IF sAutoShopData.iCrewName != g_sAutoShopDataStruct.iCrewName
|
|
AND sAutoShopData.iCrewName > 0
|
|
sAutoShopTelemetry.crew_name = GET_HASH_KEY(GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_CREW_NAME, sAutoShopData.iCrewName))
|
|
ENDIF
|
|
|
|
IF sAutoShopData.iStaff1 != g_sAutoShopDataStruct.iStaff1
|
|
OR sAutoShopData.iStaff2 != g_sAutoShopDataStruct.iStaff2
|
|
AND (sAutoShopData.iStaff1 > 0 OR sAutoShopData.iStaff2 > 0)
|
|
sAutoShopTelemetry.staff = GET_HASH_KEY(tlStaff)
|
|
ENDIF
|
|
|
|
IF sAutoShopData.iCarLift != g_sAutoShopDataStruct.iCarLift
|
|
AND sAutoShopData.iCarLift > 0
|
|
sAutoShopTelemetry.lift = GET_HASH_KEY(GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_CAR_LIFT, sAutoShopData.iCarLift))
|
|
ENDIF
|
|
|
|
IF sAutoShopData.iPersonalQuarters != g_sAutoShopDataStruct.iPersonalQuarters
|
|
AND sAutoShopData.iPersonalQuarters > 0
|
|
sAutoShopTelemetry.personal_quarter = GET_HASH_KEY(GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_PERSONAL_QUARTERS, sAutoShopData.iPersonalQuarters))
|
|
ENDIF
|
|
ELSE
|
|
sAutoShopTelemetry.style = GET_HASH_KEY(GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_WALL, sAutoShopData.iWall))
|
|
sAutoShopTelemetry.tint = GET_HASH_KEY(GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_TINT, sAutoShopData.iTint))
|
|
sAutoShopTelemetry.emblem = GET_HASH_KEY(GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_EMBLEM, sAutoShopData.iEmblem))
|
|
sAutoShopTelemetry.crew_name = GET_HASH_KEY(GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_CREW_NAME, sAutoShopData.iCrewName))
|
|
sAutoShopTelemetry.staff = GET_HASH_KEY(tlStaff)
|
|
sAutoShopTelemetry.lift = GET_HASH_KEY(GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_CAR_LIFT, sAutoShopData.iCarLift))
|
|
sAutoShopTelemetry.personal_quarter = GET_HASH_KEY(GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_PERSONAL_QUARTERS, sAutoShopData.iPersonalQuarters))
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
PRINTLN("===== Auto Shop telemetry =====")
|
|
PRINTLN("sAutoShopTelemetry.location - Name: ", GET_AUTO_SHOP_NAME_FROM_ID(eAutoShopID), " Hash: ", sAutoShopTelemetry.location)
|
|
PRINTLN("sAutoShopTelemetry.style - Name: ", GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_WALL, sAutoShopData.iWall), " Hash: ", sAutoShopTelemetry.style)
|
|
PRINTLN("sAutoShopTelemetry.style_amount - ", sAutoShopTelemetry.style_amount)
|
|
PRINTLN("sAutoShopTelemetry.tint - Name: ", GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_TINT, sAutoShopData.iTint), " Hash: ", sAutoShopTelemetry.tint)
|
|
PRINTLN("sAutoShopTelemetry.tint_amount - ", sAutoShopTelemetry.tint_amount)
|
|
PRINTLN("sAutoShopTelemetry.emblem - Name: ", GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_EMBLEM, sAutoShopData.iEmblem), " Hash: ", sAutoShopTelemetry.emblem)
|
|
PRINTLN("sAutoShopTelemetry.emblem_amount - ", sAutoShopTelemetry.emblem_amount)
|
|
PRINTLN("sAutoShopTelemetry.crew_name - Name: ", GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_CREW_NAME, sAutoShopData.iCrewName), " Hash: ", sAutoShopTelemetry.crew_name)
|
|
PRINTLN("sAutoShopTelemetry.crew_name_amount - ", sAutoShopTelemetry.crew_name_amount)
|
|
PRINTLN("sAutoShopTelemetry.staff - Name: ", tlStaff, " Hash: ", sAutoShopTelemetry.staff)
|
|
PRINTLN("sAutoShopTelemetry.staff_amount - ", sAutoShopTelemetry.staff_amount)
|
|
PRINTLN("sAutoShopTelemetry.lift - Name: ", GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_CAR_LIFT, sAutoShopData.iCarLift), " Hash: ", sAutoShopTelemetry.lift)
|
|
PRINTLN("sAutoShopTelemetry.lift_amount - ", sAutoShopTelemetry.lift_amount)
|
|
PRINTLN("sAutoShopTelemetry.personal_quarter - Name: ", GET_AUTO_SHOP_MOD_NAME_FROM_ID(AUTO_SHOP_MOD_PERSONAL_QUARTERS, sAutoShopData.iPersonalQuarters), " Hash: ", sAutoShopTelemetry.personal_quarter)
|
|
PRINTLN("sAutoShopTelemetry.personal_quarter_amount - ", sAutoShopTelemetry.personal_quarter_amount)
|
|
#ENDIF
|
|
|
|
INT iLocationAmount
|
|
|
|
// url:bugstar:7122350
|
|
// Skip all of this if the player is only purchasing the membnership
|
|
IF NOT bOnlyPurchasingMembership
|
|
//Check if we're trading or just buying
|
|
IF (NOT IS_AUTO_SHOP_PROPERTY_ID_VALID(eTradeInAutoShop))
|
|
OR (bRenovateAutoShop)
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
iLocationAmount = propval
|
|
|
|
IF (sAutoShop_price_struct.iWallPrice >= 0)
|
|
OR NOT bRenovateAutoShop
|
|
iLocationAmount -= sAutoShop_price_struct.iWallPrice
|
|
ENDIF
|
|
|
|
IF (sAutoShop_price_struct.iTintPrice >= 0)
|
|
OR NOT bRenovateAutoShop
|
|
iLocationAmount -= sAutoShop_price_struct.iTintPrice
|
|
ENDIF
|
|
|
|
IF (sAutoShop_price_struct.iEmblemPrice >= 0)
|
|
OR NOT bRenovateAutoShop
|
|
iLocationAmount -= sAutoShop_price_struct.iEmblemPrice
|
|
ENDIF
|
|
|
|
IF (sAutoShop_price_struct.iCrewNamePrice >= 0)
|
|
OR NOT bRenovateAutoShop
|
|
iLocationAmount -= sAutoShop_price_struct.iCrewNamePrice
|
|
ENDIF
|
|
|
|
IF (sAutoShop_price_struct.iStaff1Price >= 0)
|
|
OR NOT bRenovateAutoShop
|
|
iLocationAmount -= sAutoShop_price_struct.iStaff1Price
|
|
ENDIF
|
|
|
|
IF (sAutoShop_price_struct.iStaff2Price >= 0)
|
|
OR NOT bRenovateAutoShop
|
|
iLocationAmount -= sAutoShop_price_struct.iStaff2Price
|
|
ENDIF
|
|
|
|
IF (sAutoShop_price_struct.iCarLiftPrice >= 0)
|
|
OR NOT bRenovateAutoShop
|
|
iLocationAmount -= sAutoShop_price_struct.iCarLiftPrice
|
|
ENDIF
|
|
|
|
IF (sAutoShop_price_struct.iPersonalQuartersPrice >= 0)
|
|
OR NOT bRenovateAutoShop
|
|
iLocationAmount -= sAutoShop_price_struct.iPersonalQuartersPrice
|
|
ENDIF
|
|
|
|
IF NOT bRenovateAutoShop
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: Bought Auto Shop for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: m_location:", GET_HASH_KEY(GET_AUTO_SHOP_NAME_FROM_ID(eAutoShopID)), " m_location_amount: $", iLocationAmount, " ", GET_AUTO_SHOP_NAME_FROM_ID(eAutoShopID))
|
|
|
|
SET_AUTO_SHOP_AS_OWNED(eAutoShopID)
|
|
|
|
sAutoShopTelemetry.location_amount = iLocationAmount
|
|
PRINTLN("sAutoShopTelemetry.location_amount - ", sAutoShopTelemetry.location_amount)
|
|
NETWORK_SPEND_BUY_AUTOSHOP(propval, FALSE, TRUE, sAutoShopTelemetry)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: Renovate Auto Shop for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: m_location:", GET_HASH_KEY(GET_AUTO_SHOP_NAME_FROM_ID(eAutoShopID)), " m_location_amount: $", iLocationAmount, " ", GET_AUTO_SHOP_NAME_FROM_ID(eAutoShopID))
|
|
NETWORK_SPEND_UPGRADE_AUTOSHOP(propval, FALSE, TRUE, sAutoShopTelemetry)
|
|
ENDIF
|
|
ELIF GET_AUTO_SHOP_BASE_PRICE(eTradeInAutoShop) > 0
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
INT iTradeInAutoShopHash = GET_HASH_KEY(GET_AUTO_SHOP_NAME_FROM_ID(eTradeInAutoShop))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: Trading the business ", eTradeInAutoShop, " is earning the player: $", iOwnedTradeAutoShopValue, " Hash: ", iTradeInAutoShopHash)
|
|
|
|
iLocationAmount = finalPendingTransactionValue + iOwnedTradeAutoShopValue
|
|
iLocationAmount -= sAutoShop_price_struct.iWallPrice
|
|
iLocationAmount -= sAutoShop_price_struct.iTintPrice
|
|
iLocationAmount -= sAutoShop_price_struct.iEmblemPrice
|
|
iLocationAmount -= sAutoShop_price_struct.iCrewNamePrice
|
|
iLocationAmount -= sAutoShop_price_struct.iStaff1Price
|
|
iLocationAmount -= sAutoShop_price_struct.iStaff2Price
|
|
iLocationAmount -= sAutoShop_price_struct.iCarLiftPrice
|
|
iLocationAmount -= sAutoShop_price_struct.iPersonalQuartersPrice
|
|
|
|
IF iOwnedTradeAutoShopValue > 0
|
|
NETWORK_EARN_UPGRADE_AUTOSHOP(iOwnedTradeAutoShopValue, iTradeInAutoShopHash)
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: Trading Auto Shop for $", propval)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: m_location:", GET_HASH_KEY(GET_AUTO_SHOP_NAME_FROM_ID(eAutoShopID)), " m_location_amount: $", iLocationAmount, " ", GET_AUTO_SHOP_NAME_FROM_ID(eAutoShopID))
|
|
|
|
sAutoShopTelemetry.location_amount = iLocationAmount
|
|
PRINTLN("sAutoShopTelemetry.location_amount - ", sAutoShopTelemetry.location_amount)
|
|
NETWORK_SPEND_UPGRADE_AUTOSHOP(propval, FALSE, TRUE, sAutoShopTelemetry)
|
|
|
|
TRADE_AUTO_SHOP(eAutoShopID, eTradeInAutoShop)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// ----- Set the spawn point for the new auto shop? -----
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(sAutoShopData.iPersonalQuarters)
|
|
IF (GET_MP_INT_CHARACTER_STAT(MP_STAT_AUTO_SHOP_PERSONAL_QUARTERS) != sAutoShopData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: set Auto Shop spawn, player bought personal quarters")
|
|
SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_AUTO_SHOP)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: do not set Auto Shop spawn, player already has personal quarters")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_AUTO_SHOP,PROPERTY_AUTO_SHOP)
|
|
|
|
IF NOT bRenovateAutoShop
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: MP_STAT_PROP_AUTO_SHOP_VALUE = ", propval)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_AUTO_SHOP_VALUE, propval)
|
|
IF GET_OWNED_PROPERTY(0) <= 0
|
|
IF IS_PERSONAL_VEHICLE_DRIVEABLE_IN_FREEMODE()
|
|
IF DOES_ENTITY_EXIST(MPGlobalsAmbience.vehPersonalVehicle)
|
|
INT iForceDisplayUpdatedSlot
|
|
MPSV_GET_DISPLAY_SLOT_FROM_SAVE_SLOT(CURRENT_SAVED_VEHICLE_SLOT(),iForceDisplayUpdatedSlot)
|
|
IF iForceDisplayUpdatedSlot <= 0
|
|
iForceDisplayUpdatedSlot = MP_SAVE_VEHICLE_GET_EMPTY_DISPLAY_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,GET_ENTITY_MODEL(MPGlobalsAmbience.vehPersonalVehicle))
|
|
IF iForceDisplayUpdatedSlot >= 0
|
|
PRINTLN("Forcing vehicle out in freemode slot display to #",iForceDisplayUpdatedSlot," when buying autoshop")
|
|
MPSV_SET_DISPLAY_SLOT(iForceDisplayUpdatedSlot,CURRENT_SAVED_VEHICLE_SLOT())
|
|
IF iForceDisplayUpdatedSlot != 0
|
|
MPSV_SET_DISPLAY_SLOT(0,-1)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// Process the Car Club Membership.
|
|
// At this point the auto shop transaction has been successful, otherwise we would EXIT this function and display the fail page.
|
|
BOOL bSuccessfullyPurchasedMembership = FALSE
|
|
BOOL bSelectedCarClubMembership = HAS_SCALEFORM_OPTION_BEEN_SELECTED(sAutoShopData.iCarClubMembership)
|
|
BOOL bAlreadyPurchasedMembership = HAS_PLAYER_PURCHASED_CAR_CLUB_MEMBERSHIP(PLAYER_ID())
|
|
|
|
IF bSelectedCarClubMembership
|
|
AND NOT bAlreadyPurchasedMembership
|
|
GENERIC_TRANSACTION_STATE eMembershipPurchaseState
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
ENDIF
|
|
|
|
WHILE NOT PURCHASE_CAR_CLUB_MEMBERSHIP(eMembershipPurchaseState, MEMBERSHIP_PURCHASE_WEBSITE)
|
|
CPRINTLN(DEBUG_INTERNET, "[MEMBERSHIP] BUY_MP_AUTO_SHOP_FROM_WEBSITE: Purchasing Car Club Membership...")
|
|
RENDER_BROWSER()
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(TRUE)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(FALSE)
|
|
RENDER_BROWSER()
|
|
|
|
SWITCH eMembershipPurchaseState
|
|
CASE TRANSACTION_STATE_FAILED
|
|
CPRINTLN(DEBUG_INTERNET, "[MEMBERSHIP] BUY_MP_AUTO_SHOP_FROM_WEBSITE: Purchase Failed.")
|
|
BREAK
|
|
CASE TRANSACTION_STATE_SUCCESS
|
|
CPRINTLN(DEBUG_INTERNET, "[MEMBERSHIP] BUY_MP_AUTO_SHOP_FROM_WEBSITE: Purchase Successful!")
|
|
bSuccessfullyPurchasedMembership = TRUE
|
|
BREAK
|
|
DEFAULT
|
|
CPRINTLN(DEBUG_INTERNET, "[MEMBERSHIP] BUY_MP_AUTO_SHOP_FROM_WEBSITE: Purchase Unknown.")
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
IF NOT (bSuccessfullyPurchasedMembership)
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CLUB_MEM_FAIL")
|
|
CLEAR_HELP()
|
|
PRINT_HELP("CLUB_MEM_FAIL")
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[MEMBERSHIP] BUY_MP_AUTO_SHOP_FROM_WEBSITE: Do not process Car Club Membership transaction.")
|
|
CPRINTLN(DEBUG_INTERNET, "[MEMBERSHIP] BUY_MP_AUTO_SHOP_FROM_WEBSITE: Selected on website? - ", GET_STRING_FROM_BOOL(bSelectedCarClubMembership))
|
|
CPRINTLN(DEBUG_INTERNET, "[MEMBERSHIP] BUY_MP_AUTO_SHOP_FROM_WEBSITE: Already owns it? - ", GET_STRING_FROM_BOOL(bAlreadyPurchasedMembership))
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: iWall: ", sAutoShopData.iWall)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: iTint: ", sAutoShopData.iTint)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: iEmblem: ", sAutoShopData.iEmblem)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: iCrewName: ", sAutoShopData.iCrewName)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: iStaff1: ", sAutoShopData.iStaff1)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: iStaff2: ", sAutoShopData.iStaff2)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: iCarLift: ", sAutoShopData.iCarLift)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: iPersonalQuarters: ", sAutoShopData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: iCarClubMembership: ", sAutoShopData.iCarClubMembership)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: bSuccessfullyPurchasedMembership: ", GET_STRING_FROM_BOOL(bSuccessfullyPurchasedMembership))
|
|
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_WALL), sAutoShopData.iWall)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_TINT), sAutoShopData.iTint)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_EMBLEM), sAutoShopData.iEmblem)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_CREW_NAME), sAutoShopData.iCrewName)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_STAFF_ONE), sAutoShopData.iStaff1)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_STAFF_TWO), sAutoShopData.iStaff2)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_CAR_LIFT), sAutoShopData.iCarLift)
|
|
SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_AUTO_SHOP_UPGRADE(AUTO_SHOP_MOD_PERSONAL_QUARTERS), sAutoShopData.iPersonalQuarters)
|
|
|
|
BROADCAST_PLAYER_PURCHASED_AUTO_SHOP()
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Special", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
bBrowserShoppingSavePending = TRUE
|
|
CHECK_AMERICAN_DREAM_ACHIEVEMENT()
|
|
POPULATE_MP_BIKER_PROPERTY_SITE_PIN_MAP(mov, TRUE)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_SUCCESS", TRUE, bRenovateAutoShop, FALSE, FALSE, rpmt_8_AUTO_SHOP)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: purchase complete, refreshing pin map")
|
|
|
|
IF !bRenovateAutoShop
|
|
AND eTradeInAutoShop = AUTO_SHOP_PROPERTY_ID_INVALID
|
|
SET_BIT(g_sTunerFlow.BitSet, ciTUNER_FLOW_BITSET__JUST_BOUGHT_AUTOSHOP)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: SET_BIT(g_sTunerFlow.BitSet, ciTUNER_FLOW_BITSET__JUST_BOUGHT_AUTOSHOP)")
|
|
ENDIF
|
|
|
|
IF !bRenovateAutoShop
|
|
CLEAR_TUNER_CLIENT_VEHICLE_STATS(0)
|
|
CLEAR_TUNER_CLIENT_VEHICLE_STATS(1)
|
|
CLEAR_TUNER_CLIENT_DELIVERY_DATA(0)
|
|
CLEAR_TUNER_CLIENT_DELIVERY_DATA(1)
|
|
ENDIF
|
|
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
iBoughtPropertyIndex = -1
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
ENDIF
|
|
|
|
eBoughtFactoryIndex = FACTORY_ID_INVALID
|
|
eBoughtHangarIndex = HANGAR_ID_INVALID
|
|
eBoughtDefunctBaseIndex = DEFUNCT_BASE_ID_INVALID
|
|
eBoughtNightclubIndex = NIGHTCLUB_ID_INVALID
|
|
eBoughtArenaIndex = ARENA_GARAGE_ID_INVALID
|
|
eBoughtArcadeIndex = ARCADE_PROPERTY_ID_INVALID
|
|
eBoughtCasinoIndex = CASINO_APARTMENT_ID_INVALID
|
|
iBoughtCasinoPreset = -1
|
|
eBoughtAutoShopIndex = eAutoShopID
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: purchase complete, resetting iCustomAptVariant to 1")
|
|
ENDPROC
|
|
|
|
#IF FEATURE_FIXER
|
|
|
|
/// PURPOSE:
|
|
/// Checks the players rank before attempting to purchase a property.
|
|
FUNC BOOL CHECK_PLAYER_RANK_BEFORE_PROPERTY_PURCHASE(REPLACE_PROPERTY_MENU_TYPE_ENUM ePropertyType)
|
|
IF NOT IS_FM_TYPE_UNLOCKED(FMMC_TYPE_CUSTOM_CAR_GARAGE)
|
|
IF GET_PLAYER_RANK(GET_PLAYER_INDEX()) < 5
|
|
CPRINTLN(DEBUG_INTERNET, "CHECK_PLAYER_RANK_BEFORE_PROPERTY_PURCHASE: purchase failed, player doesn't have sufficient rank (", GET_PLAYER_RANK(GET_PLAYER_INDEX()), ")")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "CHECK_PLAYER_RANK_BEFORE_PROPERTY_PURCHASE: purchase failed, player pending unlock for sufficient rank")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFCIENT_RANK_PENDING
|
|
ENDIF
|
|
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, ePropertyType)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Checks the current session before attempting to purchase a property.
|
|
FUNC BOOL CHECK_SESSION_BEFORE_PROPERTY_PURCHASE(REPLACE_PROPERTY_MENU_TYPE_ENUM ePropertyType)
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
IF NOT NET_GAMESERVER_IS_SESSION_VALID(GET_ACTIVE_CHARACTER_SLOT())
|
|
OR NET_GAMESERVER_IS_SESSION_REFRESH_PENDING()
|
|
CWARNINGLN(DEBUG_INTERNET, "CHECK_SESSION_BEFORE_PROPERTY_PURCHASE: Purchase failed - session pending!")
|
|
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, ePropertyType)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Checks the current session before attempting to purchase / trade in a property.
|
|
FUNC BOOL CHECK_ON_MISSION_BEFORE_PROPERTY_PURCHASE(REPLACE_PROPERTY_MENU_TYPE_ENUM ePropertyType)
|
|
INT iCurrentMission = GB_GET_PLAYER_CURRENT_GANG_BOSS_MISSION(PLAYER_ID())
|
|
BOOL bGangBossFlow = DOES_CURRENT_MISSION_USE_GANG_BOSS_FLOW()
|
|
|
|
IF GB_IS_PLAYER_BOSS_OF_A_GANG(PLAYER_ID())
|
|
CPRINTLN(DEBUG_INTERNET, "CHECK_ON_MISSION_BEFORE_PROPERTY_PURCHASE: Player current gang boss mission: \"", GANG_BOSS_GET_NAME_FOR_TYPE_FOR_DEBUG_PRINT(iCurrentMission), "\"")
|
|
CPRINTLN(DEBUG_INTERNET, "CHECK_ON_MISSION_BEFORE_PROPERTY_PURCHASE: Does current mission use gang boss flow: \"", GET_STRING_FROM_BOOL(bGangBossFlow), "\"")
|
|
|
|
IF (iCurrentMission != -1)
|
|
OR bGangBossFlow
|
|
CPRINTLN(DEBUG_INTERNET, "CHECK_ON_MISSION_BEFORE_PROPERTY_PURCHASE: Purchase failed, player current gang boss mission: ", GANG_BOSS_GET_NAME_FOR_TYPE_FOR_DEBUG_PRINT(iCurrentMission))
|
|
|
|
mpPropertySiteFailReason = MPSFR_ON_MISSION
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, ePropertyType)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL CHECK_USING_OFFICE_SEAT_BEFORE_PROPERTY_PURCHASE(REPLACE_PROPERTY_MENU_TYPE_ENUM ePropertyType)
|
|
IF GET_LOCAL_PLAYER_USING_OFFICE_SEATID() != -1
|
|
CWARNINGLN(DEBUG_INTERNET, "CHECK_USING_OFFICE_SEAT_BEFORE_PROPERTY_PURCHASE: purchase failed - using office seat ", GET_LOCAL_PLAYER_USING_OFFICE_SEATID(), "!")
|
|
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, ePropertyType)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL CHECK_MONEY_BEFORE_PROPERTY_PURCHASE(INT iBankBalance, INT iWalletBalance, INT iMinPendingTransactionValue, REPLACE_PROPERTY_MENU_TYPE_ENUM ePropertyType, TEXT_LABEL_15 tl15PropertyName)
|
|
#IF NOT IS_DEBUG_BUILD
|
|
UNUSED_PARAMETER(iBankBalance)
|
|
UNUSED_PARAMETER(iWalletBalance)
|
|
#ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "CHECK_MONEY_BEFORE_PROPERTY_PURCHASE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " <> $", iMinPendingTransactionValue)
|
|
|
|
IF (iMinPendingTransactionValue <= 0
|
|
OR (iMinPendingTransactionValue > 0 AND NOT NETWORK_CAN_SPEND_MONEY(iMinPendingTransactionValue, FALSE, TRUE, FALSE)))
|
|
CPRINTLN(DEBUG_INTERNET, "CHECK_MONEY_BEFORE_PROPERTY_PURCHASE: purchase failed, player doesn't have sufficient cash [(iBankBalance + iWalletBalance) $", (iBankBalance + iWalletBalance), " < NETWORK_CAN_SPEND_MONEY:minPendingTransactionValue $", iMinPendingTransactionValue, "]")
|
|
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, ePropertyType)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl15PropertyName), iMinPendingTransactionValue)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
PROC BUY_MP_FIXER_HQ_FROM_WEBSITE(FIXER_HQ_ID eFixerHQID, INT &ref_iResultSlot)
|
|
INT minPendingTransactionValue, finalPendingTransactionValue, iOwnedTradeFixerHQValue
|
|
|
|
INT iBankBalance = NETWORK_GET_VC_BANK_BALANCE()
|
|
INT iWalletBalance = NETWORK_GET_VC_WALLET_BALANCE()
|
|
|
|
// If help text is being display during a specific upgrade, clear it here.
|
|
|
|
// ----- Can't purchase if the player isn't a high enough rank. -----
|
|
IF NOT CHECK_PLAYER_RANK_BEFORE_PROPERTY_PURCHASE(rpmt_9_FIXER_HQ)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: Purchase failed, player doesn't have sufficient rank (", GET_PLAYER_RANK(GET_PLAYER_INDEX()), ")")
|
|
EXIT
|
|
ENDIF
|
|
|
|
/// ----- Can't purchase if the session isn't valid. -----
|
|
IF NOT CHECK_SESSION_BEFORE_PROPERTY_PURCHASE(rpmt_9_FIXER_HQ)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: Purchase failed, invalid session.")
|
|
EXIT
|
|
ENDIF
|
|
|
|
// ----- Check if the purchase is valid -----
|
|
TEXT_LABEL_15 tl15FixerHQName = GET_FIXER_HQ_NAME_FROM_ID(eFixerHQID)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: trying to purchase Fixer HQ ", tl15FixerHQName, " #", eFixerHQID)
|
|
|
|
INT propVal = CEIL(TO_FLOAT(GET_FIXER_HQ_COST(eFixerHQID)) * g_sMPTunables.fPropertyMultiplier)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: purchase valid, attempting index ", tl15FixerHQName, " $", propVal)
|
|
|
|
minPendingTransactionValue = propVal
|
|
|
|
// ----- Check if player already owns a Fixer HQ -----
|
|
FIXER_HQ_ID eTradeInFixerHQ = GET_PLAYERS_OWNED_FIXER_HQ(PLAYER_ID())
|
|
|
|
// ----- Can't replace / renovate if the player is on a mission. -----
|
|
IF IS_FIXER_HQ_ID_VALID(eTradeInFixerHQ)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: currently owns Fixer HQ #", eTradeInFixerHQ)
|
|
|
|
IF NOT CHECK_ON_MISSION_BEFORE_PROPERTY_PURCHASE(rpmt_9_FIXER_HQ)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: Purchase / Renovation failed, currently on a mission")
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// ----- Check if player is purchasing a new Fixer HQ, or renovating -----
|
|
BOOL bRenovateFixerHQ = FALSE
|
|
|
|
IF (eFixerHQID = eTradeInFixerHQ)
|
|
|
|
// ----- Can't purchase if the player is using an office seat. -----
|
|
IF NOT CHECK_USING_OFFICE_SEAT_BEFORE_PROPERTY_PURCHASE(rpmt_9_FIXER_HQ)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: Purchase failed, using office seat.")
|
|
EXIT
|
|
ENDIF
|
|
|
|
propVal = CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES(eFixerHQID, sFixerHQ_price_struct)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: renovate ", tl15FixerHQName, ", propVal $", propVal, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
bRenovateFixerHQ = TRUE
|
|
ELSE
|
|
propVal += CALCULATE_COST_OF_FIXER_HQ_INTERIOR_UPGRADES(eFixerHQID, sFixerHQ_price_struct)
|
|
|
|
IF NOT IS_FIXER_HQ_ID_VALID(eTradeInFixerHQ)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: purchase ", tl15FixerHQName, " for ", eTradeInFixerHQ, ", propVal $", propVal, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: trade ", tl15FixerHQName, " for ", eTradeInFixerHQ, ", propVal $", propVal, ", minPendingTransactionValue $", minPendingTransactionValue)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
minPendingTransactionValue = propVal
|
|
|
|
// ----- Do added checks before proceeding -----
|
|
IF NOT IS_FIXER_HQ_ID_VALID(eTradeInFixerHQ)
|
|
OR bRenovateFixerHQ
|
|
IF minPendingTransactionValue > 0
|
|
|
|
// ----- Can't purchase if they don't have enough money -----
|
|
IF NOT CHECK_MONEY_BEFORE_PROPERTY_PURCHASE(iBankBalance, iWalletBalance, minPendingTransactionValue, rpmt_9_FIXER_HQ, tl15FixerHQName)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: Purchase failed, not enough money - 1")
|
|
EXIT
|
|
ENDIF
|
|
|
|
ENDIF
|
|
ELSE
|
|
INT iTempMinPendingTransactionValue = minPendingTransactionValue - GET_FIXER_HQ_SALE_VALUE(eTradeInFixerHQ)
|
|
|
|
IF iTempMinPendingTransactionValue > 0
|
|
|
|
// ----- Can't purchase if they don't have enough money -----
|
|
IF NOT CHECK_MONEY_BEFORE_PROPERTY_PURCHASE(iBankBalance, iWalletBalance, iTempMinPendingTransactionValue, rpmt_9_FIXER_HQ, tl15FixerHQName)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: Purchase failed, not enough money - 2")
|
|
EXIT
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: bank: $", iBankBalance, " + wallet: $", iWalletBalance, " <= $", minPendingTransactionValue, "+", GET_FIXER_HQ_SALE_VALUE(eTradeInFixerHQ))
|
|
ENDIF
|
|
|
|
INT iReplaceSpecificPropertySlot
|
|
|
|
REPLACE_MP_VEH_OR_PROP_MENU replaceMenu
|
|
|
|
WHILE NOT RUN_REPLACE_PROPERTY_MENU(replaceMenu, ref_iResultSlot, ENUM_TO_INT(eFixerHQID), iReplaceSpecificPropertySlot, rpmt_9_FIXER_HQ)
|
|
AND DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
DISABLE_SELECTOR_THIS_FRAME()
|
|
DISABLE_CELLPHONE_THIS_FRAME_ONLY()
|
|
WAIT(0)
|
|
g_sMenuData.bKeepPhoneForNextDrawMenuCall = TRUE
|
|
ENDWHILE
|
|
|
|
IF ref_iResultSlot = -1
|
|
mpPropertySiteFailReason = MPSFR_CANCELED
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_9_FIXER_HQ)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
g_iPendingBrowserTimer = g_iBrowserTimer
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
CPRINTLN(DEBUG_INTERNET, "CDM: BUY_MP_FIXER_HQ_FROM_WEBSITE: purchase failed, player backed out of property selection")
|
|
EXIT
|
|
ELSE
|
|
iOwnedTradeFixerHQValue = GET_FIXER_HQ_SALE_VALUE(eTradeInFixerHQ)
|
|
finalPendingTransactionValue = propVal - iOwnedTradeFixerHQValue
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: Player selected ref_iResultSlot ", ref_iResultSlot, ", trade ba: ", eTradeInFixerHQ, " for trade. propVal $", propVal, ", iOwnedTradeFixerHQValue: ", iOwnedTradeFixerHQValue, " Final trans value $", finalPendingTransactionValue)
|
|
ENDIF
|
|
|
|
// Re-check if player can afford based on selected trade-in value
|
|
IF finalPendingTransactionValue > 0
|
|
IF NOT CHECK_MONEY_BEFORE_PROPERTY_PURCHASE(iBankBalance, iWalletBalance, finalPendingTransactionValue, rpmt_9_FIXER_HQ, tl15FixerHQName)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: Purchase failed, not enough money - 3")
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
FIXER_HQ_DATA_STRUCT sFixerHQData
|
|
GET_SCALEFORM_FIXER_HQ_DATA(sFixerHQData)
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
|
|
INT iPropval
|
|
|
|
IF eFixerHQID = eTradeInFixerHQ
|
|
iPropval = 0
|
|
ELSE
|
|
iPropval = CEIL(TO_FLOAT(GET_FIXER_HQ_COST(eFixerHQID)) * g_sMPTunables.fPropertyMultiplier)
|
|
ENDIF
|
|
|
|
bProcessingBasket = TRUE
|
|
iProcessingBasketStage = SHOP_BASKET_STAGE_ADD
|
|
|
|
INT iItemId = GET_FIXER_HQ_KEY_FOR_CATALOGUE(eFixerHQID)
|
|
INT iInventoryKey = GET_FIXER_HQ_INVENTORY_KEY_FOR_CATALOGUE()
|
|
INT iSellingItemId = 0
|
|
|
|
IF IS_FIXER_HQ_ID_VALID(eTradeInFixerHQ)
|
|
iSellingItemId = GET_FIXER_HQ_KEY_FOR_CATALOGUE(eTradeInFixerHQ)
|
|
|
|
INT iSafeCash = GET_MP_INT_CHARACTER_STAT(MP_STAT_FIXER_SAFE_CASH_VALUE)
|
|
IF iSafeCash > 0
|
|
g_iCachedPlayerCashForFixerHQSafe = iSafeCash
|
|
g_eCachedPlayerFixerHQForHQSafe = GET_PLAYERS_OWNED_FIXER_HQ(PLAYER_ID())
|
|
PRINTLN("[FIXER_AGENCY_PAYOUT] SAFE_SWAP - cacheing safe cash stat")
|
|
ELSE
|
|
PRINTLN("[FIXER_AGENCY_PAYOUT] SAFE_SWAP - cash stat was 0 not cacheing")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
INT iProcessSuccess = GENERIC_TRANSACTION_STATE_DEFAULT
|
|
|
|
WHILE PROCESSING_INTERNET_SHOPPING_BASKET(iProcessSuccess, iPropval, ref_iResultSlot, CATEGORY_INVENTORY_WAREHOUSE, NET_SHOP_ACTION_BUY_WAREHOUSE, iItemId, iInventoryKey, 0, iOwnedTradeFixerHQValue, iSellingItemId)
|
|
RENDER_BROWSER()
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(TRUE)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
TOGGLE_PLAYER_PROOFS_WHEN_PROCESSING_INTERNET_SHOPPING_BASKET(FALSE)
|
|
RENDER_BROWSER()
|
|
|
|
SWITCH iProcessSuccess
|
|
CASE GENERIC_TRANSACTION_STATE_FAILED
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: purchase failed, failed to process transaction")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
|
|
g_iCachedPlayerCashForFixerHQSafe = 0
|
|
g_eCachedPlayerFixerHQForHQSafe = GET_PLAYERS_OWNED_FIXER_HQ(PLAYER_ID())
|
|
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_9_FIXER_HQ)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
BREAK
|
|
|
|
CASE GENERIC_TRANSACTION_STATE_SUCCESS
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: Success! Give us your money!")
|
|
BREAK
|
|
|
|
DEFAULT
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: purchase failed, unknown iProcessSuccess: \"", iProcessSuccess, "\"")
|
|
EXIT
|
|
BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: ignore NETWORK_REQUEST_BASKET_TRANSACTION")
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: final: $", finalPendingTransactionValue, ", propVal $", propVal)
|
|
|
|
//Assign the telemetry data
|
|
//Increment the spending stat
|
|
IF finalPendingTransactionValue > 0
|
|
INCREMENT_BY_MP_INT_PLAYER_STAT(MPPLY_INGAMESTORE_MONEYSPENT, finalPendingTransactionValue)
|
|
ENDIF
|
|
|
|
STRUCT_BUY_AGENCY sFixerHQTelemetry
|
|
|
|
sFixerHQTelemetry.location = GET_HASH_KEY(GET_FIXER_HQ_NAME_FROM_ID(eFixerHQID))
|
|
sFixerHQTelemetry.style_amount = sFixerHQ_price_struct.iArtPrice
|
|
sFixerHQTelemetry.wallpaper_amount = sFixerHQ_price_struct.iWallpaperPrice
|
|
sFixerHQTelemetry.tint_amount = sFixerHQ_price_struct.iTintPrice
|
|
sFixerHQTelemetry.weapon_workshop_amount = sFixerHQ_price_struct.iArmoryPrice
|
|
sFixerHQTelemetry.vehicle_workshop_amount = sFixerHQ_price_struct.iVehWorkshopPrice
|
|
sFixerHQTelemetry.personal_quarter_amount = sFixerHQ_price_struct.iPersonalQuartersPrice
|
|
|
|
sFixerHQTelemetry.style = GET_HASH_KEY(GET_FIXER_HQ_UPGRADE_NAME_FROM_ID(FIXER_HQ_UPGRADE_ART, sFixerHQData.iArt))
|
|
sFixerHQTelemetry.wallpaper = GET_HASH_KEY(GET_FIXER_HQ_UPGRADE_NAME_FROM_ID(FIXER_HQ_UPGRADE_WALLPAPER, sFixerHQData.iWallpaper))
|
|
sFixerHQTelemetry.tint = GET_HASH_KEY(GET_FIXER_HQ_UPGRADE_NAME_FROM_ID(FIXER_HQ_UPGRADE_TINT, sFixerHQData.iTint))
|
|
sFixerHQTelemetry.weapon_workshop = GET_HASH_KEY(GET_FIXER_HQ_UPGRADE_NAME_FROM_ID(FIXER_HQ_UPGRADE_ARMORY, sFixerHQData.iArmory))
|
|
sFixerHQTelemetry.vehicle_workshop = GET_HASH_KEY(GET_FIXER_HQ_UPGRADE_NAME_FROM_ID(FIXER_HQ_UPGRADE_VEH_WORKSHOP, sFixerHQData.iVehWorkshop))
|
|
sFixerHQTelemetry.personal_quarter = GET_HASH_KEY(GET_FIXER_HQ_UPGRADE_NAME_FROM_ID(FIXER_HQ_UPGRADE_PERSONAL_QUARTERS, sFixerHQData.iPersonalQuarters))
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
PRINTLN("===== Fixer HQ telemetry =====")
|
|
PRINTLN("sFixerHQTelemetry.location - Name: ", GET_FIXER_HQ_NAME_FROM_ID(eFixerHQID), " Hash: ", sFixerHQTelemetry.location)
|
|
PRINTLN("sFixerHQTelemetry.style - Name: ", GET_FIXER_HQ_UPGRADE_NAME_FROM_ID(FIXER_HQ_UPGRADE_ART, sFixerHQData.iArt), " Hash: ", sFixerHQTelemetry.style)
|
|
PRINTLN("sFixerHQTelemetry.style_amount - ", sFixerHQTelemetry.style_amount)
|
|
PRINTLN("sFixerHQTelemetry.wallpaper - Name: ", GET_FIXER_HQ_UPGRADE_NAME_FROM_ID(FIXER_HQ_UPGRADE_WALLPAPER, sFixerHQData.iWallpaper), " Hash: ", sFixerHQTelemetry.wallpaper)
|
|
PRINTLN("sFixerHQTelemetry.wallpaper_amount - ", sFixerHQTelemetry.wallpaper_amount)
|
|
PRINTLN("sFixerHQTelemetry.tint - Name: ", GET_FIXER_HQ_UPGRADE_NAME_FROM_ID(FIXER_HQ_UPGRADE_TINT, sFixerHQData.iTint), " Hash: ", sFixerHQTelemetry.tint)
|
|
PRINTLN("sFixerHQTelemetry.tint_amount - ", sFixerHQTelemetry.tint_amount)
|
|
PRINTLN("sFixerHQTelemetry.weapon_workshop - Name: ", GET_FIXER_HQ_UPGRADE_NAME_FROM_ID(FIXER_HQ_UPGRADE_ARMORY, sFixerHQData.iArmory), " Hash: ", sFixerHQTelemetry.weapon_workshop)
|
|
PRINTLN("sFixerHQTelemetry.weapon_workshop_amount - ", sFixerHQTelemetry.weapon_workshop_amount)
|
|
PRINTLN("sFixerHQTelemetry.vehicle_workshop - Name: ", GET_FIXER_HQ_UPGRADE_NAME_FROM_ID(FIXER_HQ_UPGRADE_VEH_WORKSHOP, sFixerHQData.iVehWorkshop), " Hash: ", sFixerHQTelemetry.vehicle_workshop)
|
|
PRINTLN("sFixerHQTelemetry.vehicle_workshop_amount - ", sFixerHQTelemetry.vehicle_workshop_amount)
|
|
PRINTLN("sFixerHQTelemetry.personal_quarter - Name: ", GET_FIXER_HQ_UPGRADE_NAME_FROM_ID(FIXER_HQ_UPGRADE_PERSONAL_QUARTERS, sFixerHQData.iPersonalQuarters), " Hash: ", sFixerHQTelemetry.personal_quarter)
|
|
PRINTLN("sFixerHQTelemetry.personal_quarter_amount - ", sFixerHQTelemetry.personal_quarter_amount)
|
|
#ENDIF
|
|
|
|
INT iLocationAmount
|
|
|
|
//Check if we're trading or just buying
|
|
IF (NOT IS_FIXER_HQ_ID_VALID(eTradeInFixerHQ))
|
|
OR (bRenovateFixerHQ)
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
iLocationAmount = propVal
|
|
|
|
IF (sFixerHQ_price_struct.iArtPrice >= 0)
|
|
OR NOT bRenovateFixerHQ
|
|
iLocationAmount -= sFixerHQ_price_struct.iArtPrice
|
|
ENDIF
|
|
|
|
IF (sFixerHQ_price_struct.iWallpaperPrice >= 0)
|
|
OR NOT bRenovateFixerHQ
|
|
iLocationAmount -= sFixerHQ_price_struct.iWallpaperPrice
|
|
ENDIF
|
|
|
|
IF (sFixerHQ_price_struct.iTintPrice >= 0)
|
|
OR NOT bRenovateFixerHQ
|
|
iLocationAmount -= sFixerHQ_price_struct.iTintPrice
|
|
ENDIF
|
|
|
|
IF (sFixerHQ_price_struct.iVehWorkshopPrice >= 0)
|
|
OR NOT bRenovateFixerHQ
|
|
iLocationAmount -= sFixerHQ_price_struct.iVehWorkshopPrice
|
|
ENDIF
|
|
|
|
IF (sFixerHQ_price_struct.iArmoryPrice >= 0)
|
|
OR NOT bRenovateFixerHQ
|
|
iLocationAmount -= sFixerHQ_price_struct.iArmoryPrice
|
|
ENDIF
|
|
|
|
IF (sFixerHQ_price_struct.iPersonalQuartersPrice >= 0)
|
|
OR NOT bRenovateFixerHQ
|
|
iLocationAmount -= sFixerHQ_price_struct.iPersonalQuartersPrice
|
|
ENDIF
|
|
|
|
IF NOT bRenovateFixerHQ
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: Bought Fixer HQ for $", propVal)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: m_location:", GET_HASH_KEY(GET_FIXER_HQ_NAME_FROM_ID(eFixerHQID)), " m_location_amount: $", iLocationAmount, " ", GET_FIXER_HQ_NAME_FROM_ID(eFixerHQID))
|
|
|
|
SET_FIXER_HQ_AS_OWNED(eFixerHQID)
|
|
|
|
sFixerHQTelemetry.location_amount = iLocationAmount
|
|
PRINTLN("sFixerHQTelemetry.location_amount - ", sFixerHQTelemetry.location_amount)
|
|
NETWORK_SPEND_BUY_AGENCY(propVal, FALSE, TRUE, sFixerHQTelemetry)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: Renovate Fixer HQ for $", propVal)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: m_location:", GET_HASH_KEY(GET_FIXER_HQ_NAME_FROM_ID(eFixerHQID)), " m_location_amount: $", iLocationAmount, " ", GET_FIXER_HQ_NAME_FROM_ID(eFixerHQID))
|
|
|
|
NETWORK_SPEND_UPGRADE_AGENCY(propval, FALSE, TRUE, sFixerHQTelemetry)
|
|
ENDIF
|
|
ELIF GET_FIXER_HQ_BASE_COST(eTradeInFixerHQ) > 0
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
INT iTradeInFixerHQHash = GET_HASH_KEY(GET_FIXER_HQ_NAME_FROM_ID(eTradeInFixerHQ))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: Trading the business ", GET_FIXER_HQ_NAME_FROM_ID(eTradeInFixerHQ), " is earning the player: $", iOwnedTradeFixerHQValue, " Hash: ", iTradeInFixerHQHash)
|
|
|
|
iLocationAmount = finalPendingTransactionValue + iOwnedTradeFixerHQValue
|
|
iLocationAmount -= sFixerHQ_price_struct.iArtPrice
|
|
iLocationAmount -= sFixerHQ_price_struct.iWallpaperPrice
|
|
iLocationAmount -= sFixerHQ_price_struct.iTintPrice
|
|
iLocationAmount -= sFixerHQ_price_struct.iVehWorkshopPrice
|
|
iLocationAmount -= sFixerHQ_price_struct.iArmoryPrice
|
|
iLocationAmount -= sFixerHQ_price_struct.iPersonalQuartersPrice
|
|
|
|
IF iOwnedTradeFixerHQValue > 0
|
|
NETWORK_EARN_UPGRADE_AGENCY(iOwnedTradeFixerHQValue, iTradeInFixerHQHash)
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
CPRINTLN(DEBUG_INTERNET, "[CASH] NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED - basket")
|
|
NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX()))
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: Trading Fixer HQ for $", propVal)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: m_location:", GET_HASH_KEY(GET_FIXER_HQ_NAME_FROM_ID(eFixerHQID)), " m_location_amount: $", iLocationAmount, " ", GET_FIXER_HQ_NAME_FROM_ID(eFixerHQID))
|
|
|
|
|
|
sFixerHQTelemetry.location_amount = iLocationAmount
|
|
PRINTLN("sFixerHQTelemetry.location_amount - ", sFixerHQTelemetry.location_amount)
|
|
NETWORK_SPEND_UPGRADE_AGENCY(propVal, FALSE, TRUE, sFixerHQTelemetry)
|
|
|
|
TRADE_FIXER_HQ(eFixerHQID, eTradeInFixerHQ)
|
|
|
|
ENDIF
|
|
|
|
// ----- Set the spawn point for the new fixer hq? -----
|
|
/*
|
|
IF HAS_SCALEFORM_OPTION_BEEN_SELECTED(sAutoShopData.iPersonalQuarters)
|
|
IF (GET_MP_INT_CHARACTER_STAT(MP_STAT_AUTO_SHOP_PERSONAL_QUARTERS) != sAutoShopData.iPersonalQuarters)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_AUTO_SHOP_FROM_WEBSITE: set Auto Shop spawn, player bought personal quarters")
|
|
SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_AUTO_SHOP)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_ARCADE_FROM_WEBSITE: do not set Auto Shop spawn, player already has personal quarters")
|
|
ENDIF
|
|
ENDIF
|
|
*/
|
|
|
|
// @TODO: Wait for PROPERTY_FIXER_HQ const?
|
|
// SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_FIXER_HQ, PROPERTY_AUTO_SHOP)
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_SECURITY_OFFICE_GAR,PROPERTY_SECURITY_OFFICE_GARAGE)
|
|
|
|
IF NOT bRenovateFixerHQ
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: propVal = ", propVal)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_FIXER_HQ_VALUE, propval)
|
|
IF GET_OWNED_PROPERTY(0) <= 0
|
|
IF IS_PERSONAL_VEHICLE_DRIVEABLE_IN_FREEMODE()
|
|
IF DOES_ENTITY_EXIST(MPGlobalsAmbience.vehPersonalVehicle)
|
|
INT iForceDisplayUpdatedSlot
|
|
MPSV_GET_DISPLAY_SLOT_FROM_SAVE_SLOT(CURRENT_SAVED_VEHICLE_SLOT(),iForceDisplayUpdatedSlot)
|
|
IF iForceDisplayUpdatedSlot <= 0
|
|
iForceDisplayUpdatedSlot = MP_SAVE_VEHICLE_GET_EMPTY_DISPLAY_SLOT(MP_SAVE_VEH_SEARCH_EMPTY_FIRST,FALSE,GET_ENTITY_MODEL(MPGlobalsAmbience.vehPersonalVehicle))
|
|
IF iForceDisplayUpdatedSlot >= 0
|
|
PRINTLN("Forcing vehicle out in freemode slot display to #",iForceDisplayUpdatedSlot," when buying fixer HQ")
|
|
MPSV_SET_DISPLAY_SLOT(iForceDisplayUpdatedSlot,CURRENT_SAVED_VEHICLE_SLOT())
|
|
IF iForceDisplayUpdatedSlot != 0
|
|
MPSV_SET_DISPLAY_SLOT(0,-1)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: iArt: ", sFixerHQData.iArt)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: iWallpaper: ", sFixerHQData.iWallpaper)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: iTint: ", sFixerHQData.iTint)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: iVehWorkshop: ", sFixerHQData.iVehWorkshop)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: iArmory: ", sFixerHQData.iArmory)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: iPersonalQuarters: ", sFixerHQData.iPersonalQuarters)
|
|
|
|
// ----- Renovation upgrade txt message -----
|
|
IF bRenovateFixerHQ
|
|
// --- Style changes ---
|
|
IF sFixerHQData.iArt != GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_ART))
|
|
OR sFixerHQData.iWallpaper != GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_WALLPAPER))
|
|
OR sFixerHQData.iTint != GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_TINT))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: Changed style of fixer HQ, sending txt msg.")
|
|
SET_BIT(g_SimpleInteriorData.iEleventhBS, BS11_SIMPLE_INTERIOR_FIXER_HQ_RENOVATED_STYLE)
|
|
ENDIF
|
|
|
|
// --- Purchased all upgrades ---
|
|
BOOL bSendAllUpgradeTxtMessage = TRUE
|
|
|
|
IF GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_VEH_WORKSHOP)) > 0
|
|
AND GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_ARMORY)) > 0
|
|
AND GET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_PERSONAL_QUARTERS)) > 0
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: already owned all upgrades. Don't send txt message.")
|
|
bSendAllUpgradeTxtMessage = FALSE
|
|
ENDIF
|
|
|
|
IF sFixerHQData.iVehWorkshop = 0
|
|
OR sFixerHQData.iArmory = 0
|
|
OR sFixerHQData.iPersonalQuarters = 0
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: Has not purchased all upgrades. Don't send txt message.")
|
|
bSendAllUpgradeTxtMessage = FALSE
|
|
ENDIF
|
|
|
|
|
|
IF bSendAllUpgradeTxtMessage
|
|
SET_BIT(g_SimpleInteriorData.iEleventhBS, BS11_SIMPLE_INTERIOR_FIXER_HQ_BOUGHT_ALL_UPGRADES)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SET_FIXER_HQ_AS_OWNED(eFixerHQID)
|
|
SET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_ART), sFixerHQData.iArt)
|
|
SET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_WALLPAPER), sFixerHQData.iWallpaper)
|
|
SET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_TINT), sFixerHQData.iTint)
|
|
SET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_VEH_WORKSHOP), sFixerHQData.iVehWorkshop)
|
|
SET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_ARMORY), sFixerHQData.iArmory)
|
|
SET_MP_INT_CHARACTER_STAT(GET_MP_INT_STAT_FOR_FIXER_HQ_UPGRADE(FIXER_HQ_UPGRADE_PERSONAL_QUARTERS), sFixerHQData.iPersonalQuarters)
|
|
|
|
BROADCAST_PLAYER_PURCHASED_FIXER_HQ()
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Special", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
bBrowserShoppingSavePending = TRUE
|
|
CHECK_AMERICAN_DREAM_ACHIEVEMENT()
|
|
POPULATE_MP_EXEC_PROPERTY_SITE_PIN_MAP(mov, TRUE)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_PURCHASE_D_SUCCESS", TRUE, bRenovateFixerHQ, FALSE, FALSE, rpmt_9_FIXER_HQ)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: purchase complete, refreshing pin map")
|
|
|
|
IF !bRenovateFixerHQ
|
|
IF eTradeInFixerHQ = FIXER_HQ_ID_INVALID
|
|
// For flow guys - Set a bit here to start whatever flow there is :)
|
|
SET_BIT(g_sFixerFlow.Bitset2, ciFIXER_FLOW_BITSET2__DO_FIXER_HQ_BOUGHT_HELP)
|
|
CLEAR_BIT(g_sFixerFlow.Bitset, ciFIXER_FLOW_BITSET__DO_LAMAR_INTRO_CALL)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: SET_BIT(g_sFixerFlow.Bitset2, ciFIXER_FLOW_BITSET2__DO_FIXER_HQ_BOUGHT_HELP)")
|
|
ENDIF
|
|
|
|
CLOSE_BROWSER_AFTER_SUCCESSFUL_PURCHASE(1000)
|
|
ENDIF
|
|
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
iBoughtPropertyIndex = -1
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX())
|
|
ENDIF
|
|
|
|
eBoughtFactoryIndex = FACTORY_ID_INVALID
|
|
eBoughtHangarIndex = HANGAR_ID_INVALID
|
|
eBoughtDefunctBaseIndex = DEFUNCT_BASE_ID_INVALID
|
|
eBoughtNightclubIndex = NIGHTCLUB_ID_INVALID
|
|
eBoughtArenaIndex = ARENA_GARAGE_ID_INVALID
|
|
eBoughtArcadeIndex = ARCADE_PROPERTY_ID_INVALID
|
|
eBoughtCasinoIndex = CASINO_APARTMENT_ID_INVALID
|
|
iBoughtCasinoPreset = -1
|
|
eBoughtAutoShopIndex = AUTO_SHOP_PROPERTY_ID_INVALID
|
|
eBoughtFixerHQIndex = eFixerHQID
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_FIXER_HQ_FROM_WEBSITE: purchase complete, resetting iCustomAptVariant to 1")
|
|
ENDPROC
|
|
#ENDIF // #IF FEATURE_FIXER
|
|
|
|
PROC BUY_MP_OFFICE_GARAGE_FROM_WEBSITE()
|
|
mpPropertySiteFailReason = MPSFR_UNSET
|
|
|
|
INT iOffice = GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_0)
|
|
IF iOffice <= 0
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE: purchase failed, doesn't own an office")
|
|
mpPropertySiteFailReason = MPSFR_NOT_UNLOCKED
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iOffice, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
|
|
INT iClickedOffice = GET_CACHED_LAST_CLICKED_OFFICE()
|
|
IF iOffice != iClickedOffice
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE: purchase failed, owned office ", iOffice, " not same as last clicked office ", iClickedOffice)
|
|
mpPropertySiteFailReason = MPSFR_NOT_UNLOCKED
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iOffice, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
IF NOT NET_GAMESERVER_IS_SESSION_VALID(GET_ACTIVE_CHARACTER_SLOT())
|
|
OR NET_GAMESERVER_IS_SESSION_REFRESH_PENDING()
|
|
CWARNINGLN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE: failed to process transaction - session pending!")
|
|
mpPropertySiteFailReason = MPSFR_NOT_SAFE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iOffice, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
INT iOfficeGarage = GET_LAST_CLICKED_OFFICE_GARAGE()
|
|
|
|
INT iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop
|
|
GET_SCALEFORM_OFFICE_DATA(iStyle, iPersonnel, iFont, iColour, iGunLocker, iVault, iAccommodation, iGarage1Style, iGarage1Lighting, iGarage1Number, iGarage2Style, iGarage2Lighting, iGarage2Number, iGarage3Style, iGarage3Lighting, iGarage3Number, iModshop)
|
|
|
|
INT iPendingTransactionValue = 0
|
|
INT iPendingGarage1Value = 0, iPendingGarage2Value = 0, iPendingGarage3Value = 0, iPendingModshopValue = 0
|
|
|
|
IF (iGarage1Style > 0 AND g_sOfficeDataStruct.iGarage1Style != GET_SF_FROM_OFFICE_GARAGE_INTERIOR(iGarage1Style))
|
|
OR (iGarage1Lighting >= 0 AND g_sOfficeDataStruct.iGarage1Lighting != GET_SF_FROM_OFFICE_GARAGE_LIGHTING(iGarage1Lighting))
|
|
OR (iGarage1Number >= 0 AND g_sOfficeDataStruct.iGarage1Number != GET_SF_FROM_OFFICE_GARAGE_NUMBERING(iGarage1Number))
|
|
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
|
|
INT i, iBuyPropertyIndex = PROPERTY_OFFICE_1_GARAGE_LVL1
|
|
INT iMaxTradeIn = 0
|
|
|
|
INT iOwned, propval
|
|
INT iReplaceSpecificPropertySlot = -1
|
|
IF IS_PROPERTY_RESTRICTED_SLOT_ONLY(iBuyPropertyIndex)
|
|
iReplaceSpecificPropertySlot = GET_PROPERTY_RESTRICTED_SLOT(iBuyPropertyIndex)
|
|
iMaxTradeIn = GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(iReplaceSpecificPropertySlot)
|
|
iOwned = GET_OWNED_PROPERTY(iReplaceSpecificPropertySlot)
|
|
|
|
IF iOwned = iBuyPropertyIndex
|
|
propval = 0
|
|
ELSE
|
|
propval = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ENDIF
|
|
ELSE
|
|
REPEAT MAX_OWNED_PROPERTIES i
|
|
IF iMaxTradeIn < GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(i)
|
|
iMaxTradeIn = GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(i)
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
REPEAT MAX_OWNED_PROPERTIES i
|
|
iOwned = GET_OWNED_PROPERTY(i)
|
|
IF iOwned = iBuyPropertyIndex
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
propval = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ENDIF
|
|
iPendingGarage1Value = propval
|
|
|
|
propval += CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES(iBuyPropertyIndex,
|
|
sOffice_price_struct.iGarage1StylePrice,
|
|
sOffice_price_struct.iGarage1LightingPrice,
|
|
sOffice_price_struct.iGarage1NumberPrice,
|
|
sOffice_price_struct.iGarage2StylePrice,
|
|
sOffice_price_struct.iGarage2LightingPrice,
|
|
sOffice_price_struct.iGarage2NumberPrice,
|
|
sOffice_price_struct.iGarage3StylePrice,
|
|
sOffice_price_struct.iGarage3LightingPrice,
|
|
sOffice_price_struct.iGarage3NumberPrice)
|
|
iPendingGarage1Value += (sOffice_price_struct.iGarage1StylePrice+sOffice_price_struct.iGarage1LightingPrice+sOffice_price_struct.iGarage1NumberPrice)
|
|
IF SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
propval = 0
|
|
ENDIF
|
|
INT minPendingTransactionValue = propval - iMaxTradeIn
|
|
|
|
IF iOwned = iBuyPropertyIndex
|
|
OFFICE_PRICE_STRUCT sUpgrade_Office_price_struct
|
|
minPendingTransactionValue = CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES(iBuyPropertyIndex,
|
|
sUpgrade_Office_price_struct.iGarage1StylePrice,
|
|
sUpgrade_Office_price_struct.iGarage1LightingPrice,
|
|
sUpgrade_Office_price_struct.iGarage1NumberPrice,
|
|
sUpgrade_Office_price_struct.iGarage2StylePrice,
|
|
sUpgrade_Office_price_struct.iGarage2LightingPrice,
|
|
sUpgrade_Office_price_struct.iGarage2NumberPrice,
|
|
sUpgrade_Office_price_struct.iGarage3StylePrice,
|
|
sUpgrade_Office_price_struct.iGarage3LightingPrice,
|
|
sUpgrade_Office_price_struct.iGarage3NumberPrice)
|
|
ENDIF
|
|
|
|
iPendingTransactionValue += iPendingGarage1Value
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE GAR1: iBuyPropertyIndex:", iBuyPropertyIndex, ", iPendingTransactionValue:$", iPendingTransactionValue, " (minPendingTransactionValue:$", minPendingTransactionValue, "), iPendingGarageValue:", iPendingGarage1Value)
|
|
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
|
|
ENDIF
|
|
|
|
IF (iGarage2Style > 0 AND g_sOfficeDataStruct.iGarage2Style != GET_SF_FROM_OFFICE_GARAGE_INTERIOR(iGarage2Style))
|
|
OR (iGarage2Lighting >= 0 AND g_sOfficeDataStruct.iGarage2Lighting != GET_SF_FROM_OFFICE_GARAGE_LIGHTING(iGarage2Lighting))
|
|
OR (iGarage2Number >= 0 AND g_sOfficeDataStruct.iGarage2Number != GET_SF_FROM_OFFICE_GARAGE_NUMBERING(iGarage2Number))
|
|
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
|
|
INT i, iBuyPropertyIndex = PROPERTY_OFFICE_1_GARAGE_LVL2
|
|
INT iMaxTradeIn = 0
|
|
|
|
INT iOwned, propval
|
|
INT iReplaceSpecificPropertySlot = -1
|
|
IF IS_PROPERTY_RESTRICTED_SLOT_ONLY(iBuyPropertyIndex)
|
|
iReplaceSpecificPropertySlot = GET_PROPERTY_RESTRICTED_SLOT(iBuyPropertyIndex)
|
|
iMaxTradeIn = GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(iReplaceSpecificPropertySlot)
|
|
iOwned = GET_OWNED_PROPERTY(iReplaceSpecificPropertySlot)
|
|
|
|
IF iOwned = iBuyPropertyIndex
|
|
propval = 0
|
|
ELSE
|
|
propval = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ENDIF
|
|
ELSE
|
|
REPEAT MAX_OWNED_PROPERTIES i
|
|
IF iMaxTradeIn < GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(i)
|
|
iMaxTradeIn = GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(i)
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
REPEAT MAX_OWNED_PROPERTIES i
|
|
iOwned = GET_OWNED_PROPERTY(i)
|
|
IF iOwned = iBuyPropertyIndex
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
propval = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ENDIF
|
|
iPendingGarage2Value = propval
|
|
|
|
propval += CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES(iBuyPropertyIndex,
|
|
sOffice_price_struct.iGarage1StylePrice,
|
|
sOffice_price_struct.iGarage1LightingPrice,
|
|
sOffice_price_struct.iGarage1NumberPrice,
|
|
sOffice_price_struct.iGarage2StylePrice,
|
|
sOffice_price_struct.iGarage2LightingPrice,
|
|
sOffice_price_struct.iGarage2NumberPrice,
|
|
sOffice_price_struct.iGarage3StylePrice,
|
|
sOffice_price_struct.iGarage3LightingPrice,
|
|
sOffice_price_struct.iGarage3NumberPrice)
|
|
iPendingGarage2Value += (sOffice_price_struct.iGarage2StylePrice+sOffice_price_struct.iGarage2LightingPrice+sOffice_price_struct.iGarage2NumberPrice)
|
|
IF SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
propval = 0
|
|
ENDIF
|
|
INT minPendingTransactionValue = propval - iMaxTradeIn
|
|
|
|
IF iOwned = iBuyPropertyIndex
|
|
OFFICE_PRICE_STRUCT sUpgrade_Office_price_struct
|
|
minPendingTransactionValue = CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES(iBuyPropertyIndex,
|
|
sUpgrade_Office_price_struct.iGarage1StylePrice,
|
|
sUpgrade_Office_price_struct.iGarage1LightingPrice,
|
|
sUpgrade_Office_price_struct.iGarage1NumberPrice,
|
|
sUpgrade_Office_price_struct.iGarage2StylePrice,
|
|
sUpgrade_Office_price_struct.iGarage2LightingPrice,
|
|
sUpgrade_Office_price_struct.iGarage2NumberPrice,
|
|
sUpgrade_Office_price_struct.iGarage3StylePrice,
|
|
sUpgrade_Office_price_struct.iGarage3LightingPrice,
|
|
sUpgrade_Office_price_struct.iGarage3NumberPrice)
|
|
ENDIF
|
|
|
|
iPendingTransactionValue += iPendingGarage2Value
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE GAR2: iBuyPropertyIndex:", iBuyPropertyIndex, ", iPendingTransactionValue:$", iPendingTransactionValue, " (minPendingTransactionValue:$", minPendingTransactionValue, "), iPendingGarageValue:", iPendingGarage2Value)
|
|
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
|
|
ENDIF
|
|
|
|
IF (iGarage3Style > 0 AND g_sOfficeDataStruct.iGarage3Style != GET_SF_FROM_OFFICE_GARAGE_INTERIOR(iGarage3Style))
|
|
OR (iGarage3Lighting >= 0 AND g_sOfficeDataStruct.iGarage3Lighting != GET_SF_FROM_OFFICE_GARAGE_LIGHTING(iGarage3Lighting))
|
|
OR (iGarage3Number >= 0 AND g_sOfficeDataStruct.iGarage3Number != GET_SF_FROM_OFFICE_GARAGE_NUMBERING(iGarage3Number))
|
|
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
|
|
INT i, iBuyPropertyIndex = PROPERTY_OFFICE_1_GARAGE_LVL3
|
|
INT iMaxTradeIn = 0
|
|
|
|
INT iOwned, propval
|
|
INT iReplaceSpecificPropertySlot = -1
|
|
IF IS_PROPERTY_RESTRICTED_SLOT_ONLY(iBuyPropertyIndex)
|
|
iReplaceSpecificPropertySlot = GET_PROPERTY_RESTRICTED_SLOT(iBuyPropertyIndex)
|
|
iMaxTradeIn = GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(iReplaceSpecificPropertySlot)
|
|
iOwned = GET_OWNED_PROPERTY(iReplaceSpecificPropertySlot)
|
|
|
|
IF iOwned = iBuyPropertyIndex
|
|
propval = 0
|
|
ELSE
|
|
propval = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ENDIF
|
|
ELSE
|
|
REPEAT MAX_OWNED_PROPERTIES i
|
|
IF iMaxTradeIn < GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(i)
|
|
iMaxTradeIn = GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(i)
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
REPEAT MAX_OWNED_PROPERTIES i
|
|
iOwned = GET_OWNED_PROPERTY(i)
|
|
IF iOwned = iBuyPropertyIndex
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
propval = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ENDIF
|
|
iPendingGarage3Value = propval
|
|
|
|
propval += CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES(iBuyPropertyIndex,
|
|
sOffice_price_struct.iGarage1StylePrice,
|
|
sOffice_price_struct.iGarage1LightingPrice,
|
|
sOffice_price_struct.iGarage1NumberPrice,
|
|
sOffice_price_struct.iGarage2StylePrice,
|
|
sOffice_price_struct.iGarage2LightingPrice,
|
|
sOffice_price_struct.iGarage2NumberPrice,
|
|
sOffice_price_struct.iGarage3StylePrice,
|
|
sOffice_price_struct.iGarage3LightingPrice,
|
|
sOffice_price_struct.iGarage3NumberPrice)
|
|
iPendingGarage3Value += (sOffice_price_struct.iGarage3StylePrice+sOffice_price_struct.iGarage3LightingPrice+sOffice_price_struct.iGarage3NumberPrice)
|
|
IF SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
propval = 0
|
|
ENDIF
|
|
INT minPendingTransactionValue = propval - iMaxTradeIn
|
|
|
|
|
|
IF iOwned = iBuyPropertyIndex
|
|
OFFICE_PRICE_STRUCT sUpgrade_Office_price_struct
|
|
minPendingTransactionValue = CALCULATE_COST_OF_OFFICE_GARAGE_INTERIOR_UPGRADES(iBuyPropertyIndex,
|
|
sUpgrade_Office_price_struct.iGarage1StylePrice,
|
|
sUpgrade_Office_price_struct.iGarage1LightingPrice,
|
|
sUpgrade_Office_price_struct.iGarage1NumberPrice,
|
|
sUpgrade_Office_price_struct.iGarage2StylePrice,
|
|
sUpgrade_Office_price_struct.iGarage2LightingPrice,
|
|
sUpgrade_Office_price_struct.iGarage2NumberPrice,
|
|
sUpgrade_Office_price_struct.iGarage3StylePrice,
|
|
sUpgrade_Office_price_struct.iGarage3LightingPrice,
|
|
sUpgrade_Office_price_struct.iGarage3NumberPrice)
|
|
ENDIF
|
|
|
|
iPendingTransactionValue += iPendingGarage3Value
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE GAR3: iBuyPropertyIndex:", iBuyPropertyIndex, ", iPendingTransactionValue:$", iPendingTransactionValue, " (minPendingTransactionValue:$", minPendingTransactionValue, "), iPendingGarageValue:", iPendingGarage3Value)
|
|
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
|
|
ENDIF
|
|
IF iModshop > 0
|
|
AND g_sOfficeDataStruct.iModshop != GET_SF_FROM_OFFICE_MODSHOP_INTERIOR(iModshop)
|
|
|
|
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
|
|
INT i, iBuyPropertyIndex = GET_LAST_CLICKED_OFFICE()
|
|
INT iMaxTradeIn = 0
|
|
|
|
INT iOwned, propval
|
|
INT iReplaceSpecificPropertySlot = -1
|
|
IF IS_PROPERTY_RESTRICTED_SLOT_ONLY(iBuyPropertyIndex)
|
|
iReplaceSpecificPropertySlot = GET_PROPERTY_RESTRICTED_SLOT(iBuyPropertyIndex)
|
|
iMaxTradeIn = GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(iReplaceSpecificPropertySlot)
|
|
iOwned = GET_OWNED_PROPERTY(iReplaceSpecificPropertySlot)
|
|
|
|
IF iOwned = iBuyPropertyIndex
|
|
propval = 0
|
|
ELSE
|
|
propval = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ENDIF
|
|
ELSE
|
|
REPEAT MAX_OWNED_PROPERTIES i
|
|
IF iMaxTradeIn < GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(i)
|
|
iMaxTradeIn = GET_VALUE_OF_CURRENTLY_OWNED_PROPERTY(i)
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
REPEAT MAX_OWNED_PROPERTIES i
|
|
iOwned = GET_OWNED_PROPERTY(i)
|
|
IF iOwned = iBuyPropertyIndex
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
propval = CEIL(TO_FLOAT(GET_VALUE_OF_PROPERTY(iBuyPropertyIndex))*g_sMPTunables.fPropertyMultiplier)
|
|
ENDIF
|
|
|
|
propval += CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES(iBuyPropertyIndex,
|
|
sOffice_price_struct.iStylePrice,
|
|
sOffice_price_struct.iPersonnelPrice,
|
|
sOffice_price_struct.iNamePrice,
|
|
sOffice_price_struct.iFontPrice,
|
|
sOffice_price_struct.iColourPrice,
|
|
sOffice_price_struct.iGunLockerPrice,
|
|
sOffice_price_struct.iVaultPrice,
|
|
sOffice_price_struct.iAccommodationPrice,
|
|
sOffice_price_struct.iModshopPrice)
|
|
iPendingModshopValue = sOffice_price_struct.iModshopPrice
|
|
IF SHOULD_PROPERTY_BE_FREE_FOR_PLAYER(iBuyPropertyIndex)
|
|
propval = 0
|
|
ENDIF
|
|
INT minPendingTransactionValue = propval - iMaxTradeIn
|
|
IF iOwned = iBuyPropertyIndex
|
|
OFFICE_PRICE_STRUCT sUpgrade_Office_price_struct
|
|
minPendingTransactionValue = CALCULATE_COST_OF_OFFICE_INTERIOR_UPGRADES(iBuyPropertyIndex,
|
|
sUpgrade_Office_price_struct.iStylePrice,
|
|
sUpgrade_Office_price_struct.iPersonnelPrice,
|
|
sUpgrade_Office_price_struct.iNamePrice,
|
|
sUpgrade_Office_price_struct.iFontPrice,
|
|
sUpgrade_Office_price_struct.iColourPrice,
|
|
sUpgrade_Office_price_struct.iGunLockerPrice,
|
|
sUpgrade_Office_price_struct.iVaultPrice,
|
|
sUpgrade_Office_price_struct.iAccommodationPrice,
|
|
sUpgrade_Office_price_struct.iModshopPrice)
|
|
iPendingModshopValue = sUpgrade_Office_price_struct.iModshopPrice
|
|
ENDIF
|
|
|
|
iPendingTransactionValue += sOffice_price_struct.iModshopPrice
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE MODSHOP: iOwned:", iOwned, ", iBuyPropertyIndex:", iBuyPropertyIndex, ", iPendingTransactionValue:$", iPendingTransactionValue, " (minPendingTransactionValue:$", minPendingTransactionValue, "), iPendingModshopValue:", iPendingModshopValue)
|
|
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
|
|
ENDIF
|
|
|
|
|
|
IF iPendingTransactionValue >0
|
|
|
|
INT iBankBalance = NETWORK_GET_VC_BANK_BALANCE()
|
|
INT iWalletBalance = NETWORK_GET_VC_WALLET_BALANCE()
|
|
UNUSED_PARAMETER(iBankBalance)
|
|
UNUSED_PARAMETER(iWalletBalance)
|
|
TEXT_LABEL_15 tl_15PropertyName
|
|
|
|
// IF (iBankBalance+iWalletBalance) < iPendingTransactionValue
|
|
INT iBuyPropertyIndex = GET_LAST_CLICKED_OFFICE_GARAGE()
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE: bank:$", iBankBalance, " + wallet:$", iWalletBalance, " <> $", iPendingTransactionValue)
|
|
// IF (iPendingTransactionValue <= 0
|
|
// OR (iPendingTransactionValue > 0 AND ((iBankBalance+iWalletBalance) < iPendingTransactionValue)))
|
|
// CPRINTLN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < iPendingTransactionValue $", iPendingTransactionValue, "]")
|
|
// mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
// SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
// iCustomAptVariant = 1
|
|
// bCustomInteriorSelected = FALSE
|
|
//
|
|
// tl_15PropertyName = GET_PROPERTY_NAME(iBuyPropertyIndex)
|
|
// TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15PropertyName), iPendingTransactionValue)
|
|
//
|
|
// PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
// EXIT
|
|
// ENDIF
|
|
|
|
IF (iPendingTransactionValue <= 0
|
|
OR (iPendingTransactionValue > 0 AND NOT NETWORK_CAN_SPEND_MONEY(iPendingTransactionValue,FALSE,TRUE,FALSE)))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE: purchase failed, player doesn't have sufficient cash [(iBankBalance+iWalletBalance) $", (iBankBalance+iWalletBalance), " < NETWORK_CAN_SPEND_MONEY:iPendingTransactionValue $", iPendingTransactionValue, "]")
|
|
mpPropertySiteFailReason = MPSFR_INSUFFICIENT_CASH
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iBuyPropertyIndex, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
iCustomAptVariant = 1
|
|
bCustomInteriorSelected = FALSE
|
|
|
|
tl_15PropertyName = GET_PROPERTY_NAME(iBuyPropertyIndex)
|
|
TRIGGER_BROWSER_NAG_SCREEN(GET_HASH_KEY(tl_15PropertyName), iPendingTransactionValue)
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
// ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
INT iWalletAmount = 0, iBankAmount = 0
|
|
INT iTempPrice = (iPendingGarage1Value+iPendingGarage2Value+iPendingGarage3Value+iPendingModshopValue) //iPendingTransactionValue
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] BUY_MP_OFFICE_GARAGE_FROM_WEBSITE - iTempPrice = (g1:$", iPendingGarage1Value, " + g2:$", iPendingGarage2Value, " + g3:$", iPendingGarage3Value, " + mod:$", iPendingModshopValue, ") =", iTempPrice)
|
|
|
|
// Bank first
|
|
IF (NETWORK_GET_VC_BANK_BALANCE() > 0)
|
|
IF NETWORK_GET_VC_BANK_BALANCE() >= iTempPrice
|
|
iBankAmount = iTempPrice
|
|
ELSE
|
|
iBankAmount = iTempPrice-(iTempPrice-NETWORK_GET_VC_BANK_BALANCE())
|
|
ENDIF
|
|
iTempPrice -= iBankAmount
|
|
ENDIF
|
|
IF iTempPrice > 0
|
|
IF (NETWORK_GET_VC_WALLET_BALANCE() > 0)
|
|
IF NETWORK_GET_VC_WALLET_BALANCE() >= iTempPrice
|
|
iWalletAmount = iTempPrice
|
|
ELSE
|
|
iWalletAmount = iTempPrice-(iTempPrice-NETWORK_GET_VC_WALLET_BALANCE())
|
|
ENDIF
|
|
iTempPrice -= iWalletAmount
|
|
ENDIF
|
|
ENDIF
|
|
IF iTempPrice > 0
|
|
CASSERTLN(DEBUG_INTERNET, "[BASKET] BUY_MP_OFFICE_GARAGE_FROM_WEBSITE - Player can't afford this item! iTempPrice=", iTempPrice,
|
|
", iWalletAmount=", iWalletAmount, ", iBankAmount=", iBankAmount)
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] BUY_MP_OFFICE_GARAGE_FROM_WEBSITE - Player can afford this item... iTempPrice=", iTempPrice,
|
|
", iWalletAmount=", iWalletAmount, ", iBankAmount=", iBankAmount,
|
|
" (iCouponPrice=", iPendingTransactionValue, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE(), ")")
|
|
|
|
IF iWalletAmount != 0
|
|
OR iBankAmount != 0
|
|
CPRINTLN(DEBUG_INTERNET, "[BASKET] - CHANGE_FAKE_MP_CASH(wallet=$-", iWalletAmount, ", bank=$-", iBankAmount, "): iPendingTransactionValue=$", iPendingTransactionValue, ", bankBalance=$", NETWORK_GET_VC_BANK_BALANCE(), ", walletBalance=$", NETWORK_GET_VC_WALLET_BALANCE())
|
|
USE_FAKE_MP_CASH(TRUE)
|
|
CHANGE_FAKE_MP_CASH(-iWalletAmount, -iBankAmount)
|
|
bBypassFakeCash = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "[BASKET] BUY_MP_OFFICE_GARAGE_FROM_WEBSITE - iPendingTransactionValue:$", iPendingTransactionValue)
|
|
ENDIF
|
|
|
|
|
|
BOOL bPurchasedGarageMod = FALSE
|
|
INT iCachedBoughtPropertyIndex = -1
|
|
|
|
IF (iGarage1Style > 0 AND g_sOfficeDataStruct.iGarage1Style != GET_SF_FROM_OFFICE_GARAGE_INTERIOR(iGarage1Style))
|
|
OR (iGarage1Lighting >= 0 AND g_sOfficeDataStruct.iGarage1Lighting != GET_SF_FROM_OFFICE_GARAGE_LIGHTING(iGarage1Lighting))
|
|
OR (iGarage1Number >= 0 AND g_sOfficeDataStruct.iGarage1Number != GET_SF_FROM_OFFICE_GARAGE_NUMBERING(iGarage1Number))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE(fail:", mpPropertySiteFailReason, "): Office Garage1 buy attempt triggered on Style: ", iGarage1Style , " (previously:", g_sOfficeDataStruct.iGarage1Style, "), Lighting: ", iGarage1Lighting , " (previously:", g_sOfficeDataStruct.iGarage1Lighting, "), Number: ", iGarage1Number , " (previously:", g_sOfficeDataStruct.iGarage1Number, ")")
|
|
BUY_MP_PROPERTY_FROM_WEBSITE(PROPERTY_OFFICE_1_GARAGE_LVL1)
|
|
IF iCachedBoughtPropertyIndex = -1
|
|
iCachedBoughtPropertyIndex = iBoughtPropertyIndex
|
|
ENDIF
|
|
bPurchasedGarageMod = TRUE
|
|
ELSE
|
|
CDEBUG2LN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE(fail:", mpPropertySiteFailReason, "): Office Garage1 not bought for Style: ", iGarage1Style , " (previously:", g_sOfficeDataStruct.iGarage1Style, "), Lighting: ", iGarage1Lighting , " (previously:", g_sOfficeDataStruct.iGarage1Lighting, "), Number: ", iGarage1Number , " (previously:", g_sOfficeDataStruct.iGarage1Number, ")")
|
|
ENDIF
|
|
IF (mpPropertySiteFailReason = MPSFR_UNSET)
|
|
IF (iGarage2Style > 0 AND g_sOfficeDataStruct.iGarage2Style != GET_SF_FROM_OFFICE_GARAGE_INTERIOR(iGarage2Style))
|
|
OR (iGarage2Lighting >= 0 AND g_sOfficeDataStruct.iGarage2Lighting != GET_SF_FROM_OFFICE_GARAGE_LIGHTING(iGarage2Lighting))
|
|
OR (iGarage2Number >= 0 AND g_sOfficeDataStruct.iGarage2Number != GET_SF_FROM_OFFICE_GARAGE_NUMBERING(iGarage2Number))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE(fail:", mpPropertySiteFailReason, "): Office Garage2 buy attempt triggered on Style: ", iGarage2Style , " (previously:", g_sOfficeDataStruct.iGarage2Style, "), Lighting: ", iGarage2Lighting , " (previously:", g_sOfficeDataStruct.iGarage2Lighting, "), Number: ", iGarage2Number , " (previously:", g_sOfficeDataStruct.iGarage2Number, ")")
|
|
BUY_MP_PROPERTY_FROM_WEBSITE(PROPERTY_OFFICE_1_GARAGE_LVL2)
|
|
IF iCachedBoughtPropertyIndex = -1
|
|
iCachedBoughtPropertyIndex = iBoughtPropertyIndex
|
|
ENDIF
|
|
bPurchasedGarageMod = TRUE
|
|
ELSE
|
|
CDEBUG2LN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE(fail:", mpPropertySiteFailReason, "): Office Garage2 not bought for Style: ", iGarage2Style , " (previously:", g_sOfficeDataStruct.iGarage2Style, "), Lighting: ", iGarage2Lighting , " (previously:", g_sOfficeDataStruct.iGarage2Lighting, "), Number: ", iGarage2Number , " (previously:", g_sOfficeDataStruct.iGarage2Number, ")")
|
|
ENDIF
|
|
ELSE
|
|
CDEBUG2LN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE(fail:", mpPropertySiteFailReason, "): Office Garage2 will not be not bought for Style: ", iGarage3Style , " (previously:", g_sOfficeDataStruct.iGarage3Style, "), Lighting: ", iGarage3Lighting , " (previously:", g_sOfficeDataStruct.iGarage3Lighting, "), Number: ", iGarage3Number , " (previously:", g_sOfficeDataStruct.iGarage3Number, ")")
|
|
bPurchasedGarageMod = TRUE //fail condition already done
|
|
ENDIF
|
|
IF (mpPropertySiteFailReason = MPSFR_UNSET)
|
|
IF (iGarage3Style > 0 AND g_sOfficeDataStruct.iGarage3Style != GET_SF_FROM_OFFICE_GARAGE_INTERIOR(iGarage3Style))
|
|
OR (iGarage3Lighting >= 0 AND g_sOfficeDataStruct.iGarage3Lighting != GET_SF_FROM_OFFICE_GARAGE_LIGHTING(iGarage3Lighting))
|
|
OR (iGarage3Number >= 0 AND g_sOfficeDataStruct.iGarage3Number != GET_SF_FROM_OFFICE_GARAGE_NUMBERING(iGarage3Number))
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE(fail:", mpPropertySiteFailReason, "): Office Garage3 buy attempt triggered on Style: ", iGarage3Style , " (previously:", g_sOfficeDataStruct.iGarage3Style, "), Lighting: ", iGarage3Lighting , " (previously:", g_sOfficeDataStruct.iGarage3Lighting, "), Number: ", iGarage3Number , " (previously:", g_sOfficeDataStruct.iGarage3Number, ")")
|
|
BUY_MP_PROPERTY_FROM_WEBSITE(PROPERTY_OFFICE_1_GARAGE_LVL3)
|
|
IF iCachedBoughtPropertyIndex = -1
|
|
iCachedBoughtPropertyIndex = iBoughtPropertyIndex
|
|
ENDIF
|
|
bPurchasedGarageMod = TRUE
|
|
ELSE
|
|
CDEBUG2LN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE(fail:", mpPropertySiteFailReason, "): Office Garage3 not bought for Style: ", iGarage3Style , " (previously:", g_sOfficeDataStruct.iGarage3Style, "), Lighting: ", iGarage3Lighting , " (previously:", g_sOfficeDataStruct.iGarage3Lighting, "), Number: ", iGarage3Number , " (previously:", g_sOfficeDataStruct.iGarage3Number, ")")
|
|
ENDIF
|
|
ELSE
|
|
CDEBUG2LN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE(fail:", mpPropertySiteFailReason, "): Office Garage3 will not be not bought for Style: ", iGarage3Style , " (previously:", g_sOfficeDataStruct.iGarage3Style, "), Lighting: ", iGarage3Lighting , " (previously:", g_sOfficeDataStruct.iGarage3Lighting, "), Number: ", iGarage3Number , " (previously:", g_sOfficeDataStruct.iGarage3Number, ")")
|
|
bPurchasedGarageMod = TRUE //fail condition already done
|
|
ENDIF
|
|
IF (mpPropertySiteFailReason = MPSFR_UNSET)
|
|
IF iModshop > 0
|
|
AND g_sOfficeDataStruct.iModshop != GET_SF_FROM_OFFICE_MODSHOP_INTERIOR(iModshop)
|
|
CPRINTLN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE(fail:", mpPropertySiteFailReason, "): Office Garage Modshop buy attempt triggered on index: ", iOffice , " (selected:", iModshop, ", previously:", g_sOfficeDataStruct.iModshop, ")")
|
|
BUY_MP_PROPERTY_FROM_WEBSITE(iOffice)
|
|
IF iCachedBoughtPropertyIndex != -1
|
|
iBoughtPropertyIndex = iCachedBoughtPropertyIndex
|
|
ENDIF
|
|
bPurchasedGarageMod = TRUE
|
|
ELSE
|
|
CDEBUG2LN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE(fail:", mpPropertySiteFailReason, "): Office Garage Modshop not bought (selected:", iModshop, ", previously:", g_sOfficeDataStruct.iModshop, ")")
|
|
ENDIF
|
|
ELSE
|
|
CDEBUG2LN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE(fail:", mpPropertySiteFailReason, "): Office Garage Modshop will not be not bought for Style: ", iGarage3Style , " (previously:", g_sOfficeDataStruct.iGarage3Style, "), Lighting: ", iGarage3Lighting , " (previously:", g_sOfficeDataStruct.iGarage3Lighting, "), Number: ", iGarage3Number , " (previously:", g_sOfficeDataStruct.iGarage3Number, ")")
|
|
bPurchasedGarageMod = TRUE //fail condition already done
|
|
ENDIF
|
|
|
|
USE_FAKE_MP_CASH(FALSE)
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_CASH_CHANGE)
|
|
bBypassFakeCash = FALSE
|
|
|
|
g_iLastPendingGarageTransactionValue = iPendingTransactionValue
|
|
|
|
IF NOT bPurchasedGarageMod
|
|
CASSERTLN(DEBUG_INTERNET, "BUY_MP_OFFICE_GARAGE_FROM_WEBSITE(fail:", mpPropertySiteFailReason, "): Office ", iOfficeGarage, " garage and modshop buy attempt but no garage or mod was changed (iGarage1Style:", g_sOfficeDataStruct.iGarage1Style, ") (iGarage2Style:", g_sOfficeDataStruct.iGarage2Style, ") (iGarage3Style:", g_sOfficeDataStruct.iGarage3Style, ") (iModshop:", g_sOfficeDataStruct.iModshop, ") !?!")
|
|
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iOfficeGarage, "_S_PURCHASE_D_ERROR", FALSE, FALSE, FALSE, FALSE, rpmt_0)
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
EXIT
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC DO_VEHICLE_SITE_PRICE_SET(WEBSITE_INDEX_ENUM site)
|
|
|
|
IF site = WWW_LEGENDARYMOTORSPORT_NET
|
|
OR site = WWW_ELITASTRAVEL_COM
|
|
OR site = WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
OR site = WWW_DOCKTEASE_COM
|
|
OR site = WWW_PANDMCYCLES_COM
|
|
OR site = WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
OR site = WWW_BENNYSORIGINALMOTORWORKS_COM
|
|
OR site = WWW_ARENAWAR_TV
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_INTERNET, "DO_VEHICLE_SITE_PRICE_SET: Updating vehicle prices for webpage ", GET_WEBSITE_FROM_INDEX(site))
|
|
#ENDIF
|
|
IF g_bInMultiplayer
|
|
UPDATE_VEHICLE_SITE_PRICES_MP(mov, site)
|
|
ELSE
|
|
UPDATE_VEHICLE_SITE_PRICES_SP(mov, site)
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC DO_STATIC_SITE_CHANGE_TRIGGERS()
|
|
|
|
BOOL bUpdate = FALSE
|
|
IF iStaticLastPage != iStaticCurrentPage
|
|
OR eStaticLastSite != eStaticCurrentSite
|
|
CPRINTLN(DEBUG_INTERNET,"DO_STATIC_SITE_CHANGE_TRIGGERS: ", iStaticLastPage, " != ", iStaticCurrentPage, " OR ", GET_WEBSITE_FROM_INDEX(eStaticLastSite), " != ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite), ": DO_VEHICLE_SITE_PRICE_SET()")
|
|
|
|
DO_VEHICLE_SITE_PRICE_SET(eStaticCurrentSite) //do the buggers anyway
|
|
|
|
IF (eStaticCurrentSite = WWW_ARENAWAR_TV)
|
|
AND (iStaticCurrentPage = 1 OR iStaticCurrentPage = 2 OR bPopulatePropertySitePinMap)
|
|
AND g_bInMultiplayer
|
|
//
|
|
// IF g_bPropertyRefreshTrigger
|
|
POPULATE_MP_ARENA_PROPERTY_SITE_PIN_MAP(mov)
|
|
// g_bPropertyRefreshTrigger = FALSE
|
|
// ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET,"DO_STATIC_SITE_CHANGE_TRIGGERS: ", iStaticLastPage, " = ", iStaticCurrentPage, " AND ", GET_WEBSITE_FROM_INDEX(eStaticLastSite), " = ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite), ": don't do veh price set")
|
|
ENDIF
|
|
|
|
INT kbHistory = GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_HISTORY_FLAG_INDEX)
|
|
IF kbHistory = 0
|
|
CPRINTLN(DEBUG_INTERNET, "DO_STATIC_SITE_CHANGE_TRIGGERS: kbHistory is zero ", kbHistory, " ", iStaticHistory)
|
|
ELSE
|
|
IF kbHistory < iStaticHistory
|
|
CPRINTLN(DEBUG_INTERNET, "DO_STATIC_SITE_CHANGE_TRIGGERS: kbHistory is less than ", kbHistory, " < ", iStaticHistory)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_STATIC_SITE_CHANGE_TRIGGERS: kbHistory is greater than/equal to ", kbHistory, " >= ", iStaticHistory)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// Webpage has changed
|
|
IF iStaticLastPage != iStaticCurrentPage
|
|
OR kbHistory < iStaticHistory
|
|
CPRINTLN(DEBUG_INTERNET,"DO_STATIC_SITE_CHANGE_TRIGGERS: ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite), " last page:", iStaticLastPage, " -> current page:", iStaticCurrentPage, " (g_iLastSelectedWebIndex:", g_iLastSelectedWebIndex, ")")
|
|
|
|
IF bColourPickingMode
|
|
CPRINTLN(DEBUG_INTERNET, "DO_STATIC_SITE_CHANGE_TRIGGERS: Leaving colour picking mode")
|
|
bColourPickingMode = FALSE
|
|
ENDIF
|
|
|
|
// Check whether we're on a locked DLC vehicle page
|
|
IF IS_INDEX_DLC_FOR_VEH_SITE(eStaticCurrentSite, iStaticCurrentPage-3)
|
|
AND IS_SBV_DLC_UNLOCKED(GET_VEHICLE_FROM_SITE_AND_PAGE_ID(eStaticCurrentSite, iStaticCurrentPage)) = FALSE
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_STATIC_SITE_CHANGE_TRIGGERS: Player attempting access to locked DLC")
|
|
TRIGGER_BROWSER_NAG_SCREEN(-1, -1, NSR_DLC)
|
|
DO_VEHICLE_FAIL_PAGE(eStaticCurrentSite, VSFR_CANCELED, GET_VEHICLE_FROM_SITE_AND_PAGE_ID(eStaticCurrentSite, iStaticCurrentPage), -1)
|
|
|
|
// First check for content uploads required for specific sites
|
|
// Within the same site
|
|
ELIF eStaticCurrentSite = eStaticLastSite
|
|
OR kbHistory < iStaticHistory
|
|
|
|
bColourPickingMode = FALSE
|
|
SWITCH eStaticCurrentSite
|
|
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
CASE WWW_ELITASTRAVEL_COM
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
CASE WWW_DOCKTEASE_COM
|
|
CASE WWW_PANDMCYCLES_COM
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
CASE WWW_BENNYSORIGINALMOTORWORKS_COM
|
|
// We are in colour picking mode! (Reduce for websites which actually support this)
|
|
bColourPickingMode = FALSE
|
|
|
|
// Update page
|
|
IF iStaticCurrentPage != iStaticLastPage
|
|
OR kbHistory < iStaticHistory
|
|
|
|
SITE_BUYABLE_VEHICLE sbv
|
|
sbv = GET_VEHICLE_FROM_SITE_AND_PAGE_ID(eStaticCurrentSite, iStaticCurrentPage)
|
|
|
|
IF sbv != UNSET_BUYABLE_VEHICLE
|
|
bColourPickingMode = TRUE
|
|
IF SET_VEHICLE_DEFAULT_COLOUR(sbv, eStaticCurrentSite, bColourPickingMode, g_eLastBuyableVehicleColourSelected, g_bLastBuyableVehicleArmourSelected)
|
|
CPRINTLN(DEBUG_INTERNET, "SET_VEHICLE_DEFAULT_COLOUR: Setting \"",
|
|
GET_LABEL_BUYABLE_VEHICLE(sbv),
|
|
"\" default colour = ", GET_STRING_FROM_SITE_BUYABLE_VEHICLE_COLOURS(sbv, g_eLastBuyableVehicleColourSelected),
|
|
", bColourPickingMode = ", GET_STRING_FROM_BOOL(bColourPickingMode),
|
|
" - ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite))
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "SET_VEHICLE_DEFAULT_COLOUR: not setting \"",
|
|
GET_LABEL_BUYABLE_VEHICLE(sbv),
|
|
"\" default colour = ", GET_STRING_FROM_SITE_BUYABLE_VEHICLE_COLOURS(sbv, g_eLastBuyableVehicleColourSelected),
|
|
", bColourPickingMode = ", GET_STRING_FROM_BOOL(bColourPickingMode),
|
|
" - ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite))
|
|
ENDIF
|
|
ENDIF
|
|
|
|
eCursorInputProcessed = UNSET_BUYABLE_VEHICLE
|
|
bWaitingForSelectionReturn = FALSE
|
|
|
|
BOOL bShowingBrowserHelpMessage
|
|
bShowingBrowserHelpMessage = FALSE
|
|
IF g_bInMultiplayer
|
|
INT iVehicleNum
|
|
iVehicleNum = -1
|
|
IF (sbv = BV_LX_LUXOR2 OR sbv = BV_LX_SWIFT2
|
|
OR sbv = BV_AP_SUPERVOLITO1 OR sbv = BV_AP_SUPERVOLITO2
|
|
OR sbv = BV_EX_NIMBUS OR sbv = BV_EX_VOLATUS)
|
|
IF IS_STRING_NULL_OR_EMPTY(g_sBrowserHelpMessage.tl15Tag)
|
|
OR NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_PASSIVE")
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_PASSIVE (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_PASSIVE")
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
|
|
bShowingBrowserHelpMessage = TRUE
|
|
ENDIF
|
|
ELIF GET_CLOTHING_FOR_VEHICLE_PURCHASE(sbv, iVehicleNum)
|
|
OR GET_CLOTHING_FOR_VEHICLE_WEBSITE_PURCHASE(eStaticCurrentSite)
|
|
IF IS_STRING_NULL_OR_EMPTY(g_sBrowserHelpMessage.tl15Tag)
|
|
OR NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHRE")
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_VEHRE (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_VEHRE")
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
|
|
bShowingBrowserHelpMessage = TRUE
|
|
ENDIF
|
|
ELIF GET_CHIPS_FOR_VEHICLE_PURCHASE(sbv, iVehicleNum)
|
|
IF IS_STRING_NULL_OR_EMPTY(g_sBrowserHelpMessage.tl15Tag)
|
|
OR NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHCH")
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_VEHCH (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_VEHCH", BHMT_STRING_WITH_NUMBER_AND_STRING, DEFAULT, g_sMPTunables.iCHIPS_FOR_WEBSITE_PURCHASE_CHIPS, DEFAULT, GET_LABEL_BUYABLE_VEHICLE(sbv))
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
|
|
bShowingBrowserHelpMessage = TRUE
|
|
ENDIF
|
|
ELIF (sbv = BV_SC_ELEGY2
|
|
AND NOT NETWORK_HAS_SOCIAL_CLUB_ACCOUNT())
|
|
IF IS_STRING_NULL_OR_EMPTY(g_sBrowserHelpMessage.tl15Tag)
|
|
OR NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHSC")
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_VEHSC (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_VEHSC")
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
|
|
bShowingBrowserHelpMessage = TRUE
|
|
ENDIF
|
|
ELIF (GET_SVM_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_SPVE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
// ELIF IS_SBV_A_VEHICLE_PREVIOUSLY_LASTGEN_ONLY(sbv)
|
|
// CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_PLGO (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
// eCursorInputProcessed = sbv
|
|
ELIF IS_SBV_A_VEHICLE_PREVIOUSLY_HEIST_LOCKED(sbv)
|
|
AND !(sbv = BV_DLC_INSURGENT AND DOES_SAVE_HAVE_COUPON(COUPON_CAR2_XMAS2018))
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying PHLO (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
ELIF (sbv = BV_DLC_BALLISTIC_EQUIPMENT)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_BAEQ (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
ELIF (GET_WVM_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_WEVE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
ELIF (WAM_GET_STEAL_MISSION_UNLOCK_COUNT_FROM_VEHICLE_MODEL(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) > 0)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_WEAI (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
ELIF (GET_FDS_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_FDSE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
ELIF (GET_BBS_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_BBSE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
ELIF (GET_AWS_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_AWSE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
#IF FEATURE_CASINO_HEIST
|
|
ELIF (GET_CH_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_CHSE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
ELIF (sbv = BV_CH_MINITANK)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_RCBA (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
#ENDIF
|
|
#IF FEATURE_COPS_N_CROOKS
|
|
ELIF (GET_CNC_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1)
|
|
AND IS_CNC_CONTENT_ENABLED()
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_CHSE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
#ENDIF
|
|
ELIF (GET_ISLAND_HEIST_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_CHSE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
ELIF (GET_TUNER_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_CHSE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
ELIF (GET_FIXER_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_CHSE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
#IF FEATURE_DLC_1_2022
|
|
ELIF (GET_SUMMER_2022_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_CHSE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
#ENDIF
|
|
// #IF FEATURE_SUMMER_2020
|
|
// ELIF (GET_SUMMER20_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1)
|
|
// CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_CHSE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
// eCursorInputProcessed = sbv
|
|
// #ENDIF
|
|
ELIF (sbv = BV_AW_RCBANDITO)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_RCBA (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
ELIF (sbv = BV_GO_HERMES AND DOES_SAVE_HAVE_COUPON(COUPON_CAR_XMAS2017))
|
|
OR (sbv = BV_AW_CLIQUE AND DOES_SAVE_HAVE_COUPON(COUPON_CAR_XMAS2018))
|
|
OR (sbv = BV_A_BUZZARD AND DOES_SAVE_HAVE_COUPON(COUPON_HELI_XMAS2018))
|
|
OR (sbv = BV_DLC_INSURGENT AND DOES_SAVE_HAVE_COUPON(COUPON_CAR2_XMAS2018))
|
|
IF IS_STRING_NULL_OR_EMPTY(g_sBrowserHelpMessage.tl15Tag)
|
|
OR NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHX17")
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_VEHX17 (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_VEHX17")
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
|
|
bShowingBrowserHelpMessage = TRUE
|
|
ENDIF
|
|
#IF FEATURE_GEN9_EXCLUSIVE
|
|
ELIF (sbv = BV_G9E_S95 AND DOES_SAVE_HAVE_COUPON(COUPON_CAR_GEN9_MIGRATION))
|
|
IF IS_STRING_NULL_OR_EMPTY(g_sBrowserHelpMessage.tl15Tag)
|
|
OR NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHGEN9M")
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_VEHGEN9M (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_VEHGEN9M")
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
|
|
bShowingBrowserHelpMessage = TRUE
|
|
ENDIF
|
|
#ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT bShowingBrowserHelpMessage
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(g_sBrowserHelpMessage.tl15Tag)
|
|
AND (ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_PASSIVE")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHRE")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHCH")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHSC")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHX17"))
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - remove ", g_sBrowserHelpMessage.tl15Tag, " (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
IF IS_THIS_BROWSER_HELP_MESSAGE_BEING_DISPLAYED(g_sBrowserHelpMessage)
|
|
CLEAR_HELP(TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// Error page, upload fail string
|
|
IF IS_ERROR_PAGE_FOR_VEHICLE_SITE(eStaticCurrentSite, iStaticCurrentPage)
|
|
DO_VEHICLE_SITE_FAIL_PAGE_REASON(lastVehicleFailReason)
|
|
|
|
// Confirmation page
|
|
ELIF IS_CONFIRM_PAGE_FOR_VEHICLE_SITE(eStaticCurrentSite, iStaticCurrentPage)
|
|
DO_VEHICLE_CONF_PAGE_TEXT(eStaticCurrentSite)
|
|
ENDIF
|
|
|
|
UPDATE_VEHICLE_SITES_PAGE_CHANGE(eStaticCurrentSite,iStaticLastPage, iStaticCurrentPage)
|
|
BREAK
|
|
|
|
CASE WWW_ARENAWAR_TV
|
|
// We are in colour picking mode! (Reduce for websites which actually support this)
|
|
bColourPickingMode = FALSE
|
|
|
|
// Update page
|
|
IF iStaticCurrentPage != iStaticLastPage
|
|
OR kbHistory < iStaticHistory
|
|
|
|
SITE_BUYABLE_VEHICLE sbv
|
|
sbv = GET_VEHICLE_FROM_SITE_AND_PAGE_ID(eStaticCurrentSite, iStaticCurrentPage)
|
|
|
|
IF sbv != UNSET_BUYABLE_VEHICLE
|
|
bColourPickingMode = TRUE
|
|
IF SET_VEHICLE_DEFAULT_COLOUR(sbv, eStaticCurrentSite, bColourPickingMode, g_eLastBuyableVehicleColourSelected, g_bLastBuyableVehicleArmourSelected)
|
|
CPRINTLN(DEBUG_INTERNET, "SET_VEHICLE_DEFAULT_COLOUR: Setting \"",
|
|
GET_LABEL_BUYABLE_VEHICLE(sbv),
|
|
"\" default colour = ", GET_STRING_FROM_SITE_BUYABLE_VEHICLE_COLOURS(sbv, g_eLastBuyableVehicleColourSelected),
|
|
", bColourPickingMode = ", GET_STRING_FROM_BOOL(bColourPickingMode),
|
|
" - ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite))
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "SET_VEHICLE_DEFAULT_COLOUR: not setting \"",
|
|
GET_LABEL_BUYABLE_VEHICLE(sbv),
|
|
"\" default colour = ", GET_STRING_FROM_SITE_BUYABLE_VEHICLE_COLOURS(sbv, g_eLastBuyableVehicleColourSelected),
|
|
", bColourPickingMode = ", GET_STRING_FROM_BOOL(bColourPickingMode),
|
|
" - ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite))
|
|
ENDIF
|
|
ENDIF
|
|
|
|
eCursorInputProcessed = UNSET_BUYABLE_VEHICLE
|
|
bWaitingForSelectionReturn = FALSE
|
|
|
|
BOOL bShowingBrowserHelpMessage
|
|
bShowingBrowserHelpMessage = FALSE
|
|
IF g_bInMultiplayer
|
|
INT iVehicleNum
|
|
iVehicleNum = -1
|
|
IF (sbv = BV_LX_LUXOR2 OR sbv = BV_LX_SWIFT2
|
|
OR sbv = BV_AP_SUPERVOLITO1 OR sbv = BV_AP_SUPERVOLITO2
|
|
OR sbv = BV_EX_NIMBUS OR sbv = BV_EX_VOLATUS)
|
|
IF IS_STRING_NULL_OR_EMPTY(g_sBrowserHelpMessage.tl15Tag)
|
|
OR NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_PASSIVE")
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_PASSIVE (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_PASSIVE")
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
|
|
bShowingBrowserHelpMessage = TRUE
|
|
ENDIF
|
|
ELIF GET_CLOTHING_FOR_VEHICLE_PURCHASE(sbv, iVehicleNum)
|
|
OR GET_CLOTHING_FOR_VEHICLE_WEBSITE_PURCHASE(eStaticCurrentSite)
|
|
IF IS_STRING_NULL_OR_EMPTY(g_sBrowserHelpMessage.tl15Tag)
|
|
OR NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHRE")
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_VEHRE (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_VEHRE")
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
|
|
bShowingBrowserHelpMessage = TRUE
|
|
ENDIF
|
|
ELIF GET_CHIPS_FOR_VEHICLE_PURCHASE(sbv, iVehicleNum)
|
|
IF IS_STRING_NULL_OR_EMPTY(g_sBrowserHelpMessage.tl15Tag)
|
|
OR NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHCH")
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_VEHCH (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_VEHCH", BHMT_STRING_WITH_NUMBER_AND_STRING, DEFAULT, g_sMPTunables.iCHIPS_FOR_WEBSITE_PURCHASE_CHIPS, DEFAULT, GET_LABEL_BUYABLE_VEHICLE(sbv))
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
|
|
bShowingBrowserHelpMessage = TRUE
|
|
ENDIF
|
|
ELIF (sbv = BV_SC_ELEGY2
|
|
AND NOT NETWORK_HAS_SOCIAL_CLUB_ACCOUNT())
|
|
IF IS_STRING_NULL_OR_EMPTY(g_sBrowserHelpMessage.tl15Tag)
|
|
OR NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHSC")
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_VEHSC (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_VEHSC")
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
|
|
bShowingBrowserHelpMessage = TRUE
|
|
ENDIF
|
|
ELIF (GET_SVM_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_SPVE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
// ELIF IS_SBV_A_VEHICLE_PREVIOUSLY_LASTGEN_ONLY(sbv)
|
|
// CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_PLGO (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
// eCursorInputProcessed = sbv
|
|
ELIF IS_SBV_A_VEHICLE_PREVIOUSLY_HEIST_LOCKED(sbv)
|
|
AND !(sbv = BV_DLC_INSURGENT AND DOES_SAVE_HAVE_COUPON(COUPON_CAR2_XMAS2018))
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying PHLO (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
ELIF (sbv = BV_DLC_BALLISTIC_EQUIPMENT)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_BAEQ (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
ELIF (GET_WVM_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_WEVE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
ELIF (WAM_GET_STEAL_MISSION_UNLOCK_COUNT_FROM_VEHICLE_MODEL(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) > 0)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_WEAI (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
ELIF (GET_FDS_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_FDSE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
ELIF (GET_BBS_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_BBSE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
ELIF (GET_AWS_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_AWSE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
#IF FEATURE_CASINO_HEIST
|
|
ELIF (GET_CH_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_CHSE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
ELIF (sbv = BV_CH_MINITANK)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_RCBA (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
#ENDIF
|
|
#IF FEATURE_COPS_N_CROOKS
|
|
ELIF (GET_CNC_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1)
|
|
AND IS_CNC_CONTENT_ENABLED()
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_CHSE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
#ENDIF
|
|
// #IF FEATURE_SUMMER_2020
|
|
// ELIF GET_SUMMER20_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1
|
|
// CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_CHSE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
// eCursorInputProcessed = sbv
|
|
// #ENDIF
|
|
#IF FEATURE_HEIST_ISLAND
|
|
ELIF GET_ISLAND_HEIST_VEHICLE_INDEX(GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)) != -1
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_CHSE (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
#ENDIF
|
|
ELIF (sbv = BV_AW_RCBANDITO)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - consider displaying HELP_RCBA (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
eCursorInputProcessed = sbv
|
|
ELIF (sbv = BV_GO_HERMES AND DOES_SAVE_HAVE_COUPON(COUPON_CAR_XMAS2017))
|
|
OR (sbv = BV_AW_CLIQUE AND DOES_SAVE_HAVE_COUPON(COUPON_CAR_XMAS2018))
|
|
OR (sbv = BV_A_BUZZARD AND DOES_SAVE_HAVE_COUPON(COUPON_HELI_XMAS2018))
|
|
OR (sbv = BV_DLC_INSURGENT AND DOES_SAVE_HAVE_COUPON(COUPON_CAR2_XMAS2018))
|
|
IF IS_STRING_NULL_OR_EMPTY(g_sBrowserHelpMessage.tl15Tag)
|
|
OR NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHX17")
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_VEHX17 (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_VEHX17")
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
|
|
bShowingBrowserHelpMessage = TRUE
|
|
ENDIF
|
|
#IF FEATURE_GEN9_EXCLUSIVE
|
|
ELIF (sbv = BV_G9E_S95 AND DOES_SAVE_HAVE_COUPON(COUPON_CAR_GEN9_MIGRATION))
|
|
IF IS_STRING_NULL_OR_EMPTY(g_sBrowserHelpMessage.tl15Tag)
|
|
OR NOT ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHGEN9M")
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_VEHGEN9M (sbv: ", GET_LABEL_BUYABLE_VEHICLE(sbv), ", iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_VEHGEN9M")
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
|
|
bShowingBrowserHelpMessage = TRUE
|
|
ENDIF
|
|
#ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT bShowingBrowserHelpMessage
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(g_sBrowserHelpMessage.tl15Tag)
|
|
AND (ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_PASSIVE")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHRE")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHCH")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHSC")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_VEHX17"))
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - remove ", g_sBrowserHelpMessage.tl15Tag, " (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
IF IS_THIS_BROWSER_HELP_MESSAGE_BEING_DISPLAYED(g_sBrowserHelpMessage)
|
|
CLEAR_HELP(TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// Error page, upload fail string
|
|
IF IS_ERROR_PAGE_FOR_VEHICLE_SITE(eStaticCurrentSite, iStaticCurrentPage)
|
|
DO_VEHICLE_SITE_FAIL_PAGE_REASON(lastVehicleFailReason)
|
|
|
|
// Confirmation page
|
|
ELIF IS_CONFIRM_PAGE_FOR_VEHICLE_SITE(eStaticCurrentSite, iStaticCurrentPage)
|
|
DO_VEHICLE_CONF_PAGE_TEXT(eStaticCurrentSite)
|
|
|
|
//
|
|
ELIF (iStaticCurrentPage = 12)
|
|
INT iArenaGarage
|
|
iArenaGarage = ENUM_TO_INT(ARENA_GARAGE_1) //GET_LAST_CLICKED_ARENA_GARAGE()
|
|
|
|
// IF (g_iLastSelectedWebIndex = 7 AND iStaticLastPage = 41)
|
|
CPRINTLN(DEBUG_INTERNET, "ARENA_GARAGE property buy attempt triggered on index: ", iArenaGarage)
|
|
// ELSE
|
|
// CASSERTLN(DEBUG_INTERNET, "ARENA_GARAGE property replace(?) attempt triggered on index: ", iArenaGarage)
|
|
// ENDIF
|
|
|
|
INT iResultSlot
|
|
iResultSlot = 0
|
|
BUY_MP_ARENA_GARAGE_FROM_WEBSITE(INT_TO_ENUM(ARENA_GARAGE_ID, iArenaGarage), iResultSlot)
|
|
|
|
ENDIF
|
|
|
|
UPDATE_VEHICLE_SITES_PAGE_CHANGE(eStaticCurrentSite,iStaticLastPage, iStaticCurrentPage)
|
|
BREAK
|
|
|
|
CASE WWW_IWILLSURVIVEITALL_COM
|
|
|
|
SWITCH iStaticCurrentPage
|
|
CASE 2
|
|
// Redirect if already owns portfolio
|
|
IF BOUGHT_CON_SITE()
|
|
GO_TO_WEBSITE("WWW_IWILLSURVIVEITALL_COM_S_MY_D_PORTFOLIO")
|
|
ENDIF
|
|
BREAK
|
|
CASE 15
|
|
// Do transaction if char doesn't own portfolio
|
|
IF NOT BUY_CON_SITE()
|
|
GO_TO_WEBSITE("WWW_IWILLSURVIVEITALL_COM_S_PURCHASE_D_ERROR")
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE WWW_DYNASTY8EXECUTIVEREALTY_COM
|
|
IF (iStaticCurrentPage = 10)
|
|
IF (g_iLastSelectedWebIndex = 7 AND iStaticLastPage = 9)
|
|
INT iOffice
|
|
iOffice = GET_LAST_CLICKED_OFFICE()
|
|
CPRINTLN(DEBUG_INTERNET, "Office buy attempt triggered on index: ", iOffice)
|
|
|
|
BUY_MP_PROPERTY_FROM_WEBSITE(iOffice)
|
|
ELIF (g_iLastSelectedWebIndex = 5 AND iStaticLastPage = 9)
|
|
CPRINTLN(DEBUG_INTERNET, "Office Garage buy attempt triggered")
|
|
|
|
BUY_MP_OFFICE_GARAGE_FROM_WEBSITE()
|
|
#IF FEATURE_FIXER
|
|
ELIF (g_iLastSelectedWebIndex = 7 AND iStaticLastPage = 25)
|
|
INT iFixerHQ
|
|
iFixerHQ = GET_LAST_CLICKED_FIXER_HQ()
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Fixer HQ buy attempt triggered")
|
|
INT iResultSlot
|
|
BUY_MP_FIXER_HQ_FROM_WEBSITE(INT_TO_ENUM(FIXER_HQ_ID, iFixerHQ), iResultSlot)
|
|
#ENDIF
|
|
ELSE
|
|
CDEBUG3LN(DEBUG_INTERNET, "Potential property buy attempt (Dynasty 8 Exclusive) 1 - g_iLastSelectedWebIndex: ", g_iLastSelectedWebIndex, ", iStaticLastPage: ", iStaticLastPage, ", iStaticCurrentPage: ", iStaticCurrentPage)
|
|
ENDIF
|
|
ENDIF
|
|
IF iStaticCurrentPage != iStaticLastPage
|
|
bColourPickingMode = TRUE
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE FORECLOSURES_MAZE_D_BANK_COM
|
|
|
|
IF NOT g_bBrowser_help_bunkmod_seen
|
|
// IF (iStaticCurrentPage = 15) //BUNKER STYLE
|
|
IF (iStaticCurrentPage = 16) //PERSONAL QUARTERS
|
|
OR (iStaticCurrentPage = 17) //SHOOTING RANGE
|
|
OR (iStaticCurrentPage = 18) //GUN LOCKER
|
|
OR (iStaticCurrentPage = 19) //TRANSPORTATION
|
|
INT iHELP_BUNKMOD_SEEN_COUNT
|
|
iHELP_BUNKMOD_SEEN_COUNT = GET_PACKED_STAT_INT(PACKED_MP_INT_HELP_BUNKMOD_SEEN_COUNT)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_BUNKMOD (iStaticCurrentPage: ", iStaticCurrentPage, ", iHELP_BUNKMOD_SEEN_COUNT: ", iHELP_BUNKMOD_SEEN_COUNT, ")")
|
|
|
|
IF iHELP_BUNKMOD_SEEN_COUNT < 3
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_BUNKMOD")
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
g_bBrowser_help_bunkmod_seen = TRUE
|
|
|
|
SET_PACKED_STAT_INT(PACKED_MP_INT_HELP_BUNKMOD_SEEN_COUNT, iHELP_BUNKMOD_SEEN_COUNT)
|
|
ENDIF
|
|
|
|
// bShowingBrowserHelpMessage = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF (iStaticCurrentPage = 35) //NIGHTCLUB STYLE
|
|
// [HELP_NCLUBSTY]
|
|
// Please note: Your chosen style will be installed as you progress with the Nightclub set up.
|
|
IF NOT (HAS_PLAYER_COMPLETED_NIGHTCLUB_SETUP_MISSION(PLAYER_ID(), MBV_COLLECT_EQUIPMENT)
|
|
AND HAS_PLAYER_COMPLETED_NIGHTCLUB_SETUP_MISSION(PLAYER_ID(), MBV_COLLECT_STAFF))
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_NCLUBSTY (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_NCLUBSTY", DEFAULT, TRUE)
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
ENDIF
|
|
ELIF (iStaticCurrentPage = 36) //NIGHTCLUB LIGHTING
|
|
// [HELP_NCLUBLIG]
|
|
// Please note: Your chosen lighting option will be installed as you progress with the Nightclub set up.
|
|
IF NOT (HAS_PLAYER_COMPLETED_NIGHTCLUB_SETUP_MISSION(PLAYER_ID(), MBV_COLLECT_EQUIPMENT)
|
|
OR HAS_PLAYER_COMPLETED_NIGHTCLUB_SETUP_MISSION(PLAYER_ID(), MBV_COLLECT_STAFF))
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_NCLUBLIG (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_NCLUBLIG", DEFAULT, TRUE)
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
ENDIF
|
|
ELIF (iStaticCurrentPage = 39) //NIGHTCLUB DANCERS
|
|
// [HELP_NCLUBDAN]
|
|
// Please note: Your dancers will arrive after the Nightclub has been set up.
|
|
IF NOT (HAS_PLAYER_COMPLETED_NIGHTCLUB_SETUP_MISSION(PLAYER_ID(), MBV_COLLECT_DJ_CRASH))
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_NCLUBDAN (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_NCLUBDAN", DEFAULT, TRUE)
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
ENDIF
|
|
ELIF (iStaticCurrentPage = 40) //DRY ICE
|
|
// [HELP_NCLUBICE]
|
|
// Please note: Dry Ice will arrive after the Nightclub has been setup.
|
|
IF NOT (HAS_PLAYER_COMPLETED_ALL_NIGHTCLUB_SETUP_MISSIONS(PLAYER_ID()))
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_NCLUBICE (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_NCLUBICE", DEFAULT, TRUE)
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
ENDIF
|
|
ELSE
|
|
IF ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_NCLUBSTY")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_NCLUBLIG")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_NCLUBDAN")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_NCLUBICE")
|
|
IF IS_THIS_BROWSER_HELP_MESSAGE_BEING_DISPLAYED(g_sBrowserHelpMessage)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - clear ", g_sBrowserHelpMessage.tl15Tag, " (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
CLEAR_HELP()
|
|
CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT()
|
|
ENDIF
|
|
ELIF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_NCLUBSTY")
|
|
OR IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_NCLUBLIG")
|
|
OR IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_NCLUBDAN")
|
|
OR IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_NCLUBICE")
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - clear nightclub help (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
#IF FEATURE_CASINO_HEIST
|
|
IF (iStaticCurrentPage >= 42)
|
|
AND (iStaticCurrentPage <= 48)
|
|
IF NOT HAS_LOCAL_PLAYER_COMPLETE_FULL_ARCADE_SETUP()
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display ARC_OPTIONS (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("ARC_OPTIONS", DEFAULT, TRUE)
|
|
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
ENDIF
|
|
ELSE
|
|
IF ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "ARC_OPTIONS")
|
|
IF IS_THIS_BROWSER_HELP_MESSAGE_BEING_DISPLAYED(g_sBrowserHelpMessage)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - clear ", g_sBrowserHelpMessage.tl15Tag, " (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
CLEAR_HELP()
|
|
|
|
CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT()
|
|
ENDIF
|
|
ELIF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("ARC_OPTIONS")
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - clear nightclub help (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
#IF FEATURE_TUNER
|
|
IF (iStaticCurrentPage = 49) // AUTO SHOP STYLE
|
|
// [HELP_ASHOPSTY]
|
|
// Please note: Your chosen style will be installed after you complete the Auto Shop setup.
|
|
IF NOT HAS_PLAYER_COMPLETED_AUTO_SHOP_SETUP_MISSION(PLAYER_ID())
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_ASHOPSTY (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_ASHOPSTY", DEFAULT, TRUE)
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
ENDIF
|
|
ELIF (iStaticCurrentPage = 50) // AUTO SHOP TINT
|
|
// [HELP_ASHOPTNT]
|
|
// Please note: Dry Ice will arrive after the Nightclub has been setup.
|
|
IF NOT HAS_PLAYER_COMPLETED_AUTO_SHOP_SETUP_MISSION(PLAYER_ID())
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_ASHOPTNT (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_ASHOPTNT", DEFAULT, TRUE)
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
ENDIF
|
|
ELSE
|
|
IF ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_ASHOPSTY")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_ASHOPTNT")
|
|
IF IS_THIS_BROWSER_HELP_MESSAGE_BEING_DISPLAYED(g_sBrowserHelpMessage)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - clear ", g_sBrowserHelpMessage.tl15Tag, " (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
CLEAR_HELP()
|
|
CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
#IF FEATURE_DLC_1_2022
|
|
IF (iStaticCurrentPage = 7) // CLUBHOUSE CUSTOM BIKE SHOP
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_BKRCLNT (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_BKRCLNT", DEFAULT, TRUE)
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
ELSE
|
|
IF ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_BKRCLNT")
|
|
IF IS_THIS_BROWSER_HELP_MESSAGE_BEING_DISPLAYED(g_sBrowserHelpMessage)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - clear ", g_sBrowserHelpMessage.tl15Tag, " (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
CLEAR_HELP()
|
|
CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
IF (iStaticCurrentPage = 9)
|
|
IF (g_iLastSelectedWebIndex = 7 AND iStaticLastPage = 8)
|
|
INT iClubhouse
|
|
iClubhouse = GET_LAST_CLICKED_CLUBHOUSE()
|
|
CPRINTLN(DEBUG_INTERNET, "Clubhouse property buy attempt triggered on index: ", iClubhouse)
|
|
|
|
BUY_MP_PROPERTY_FROM_WEBSITE(iClubhouse)
|
|
ELIF (g_iLastSelectedWebIndex = 6 AND iStaticLastPage = 20)
|
|
OR (g_iLastSelectedWebIndex = 1 AND iStaticLastPage = 20)
|
|
INT iBunker
|
|
iBunker = GET_LAST_CLICKED_BUNKER()
|
|
|
|
IF (g_iLastSelectedWebIndex = 6 AND iStaticLastPage = 20)
|
|
CPRINTLN(DEBUG_INTERNET, "Bunker property buy attempt triggered on index: ", iBunker)
|
|
ELIF (g_iLastSelectedWebIndex = 1 AND iStaticLastPage = 20)
|
|
CPRINTLN(DEBUG_INTERNET, "Bunker property trade attempt triggered on index: ", iBunker)
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "Bunker property replace(?) attempt triggered on index: ", iBunker)
|
|
ENDIF
|
|
|
|
INT iResultSlot
|
|
BUY_MP_FACTORY_FROM_WEBSITE(INT_TO_ENUM(FACTORY_ID, iBunker), iResultSlot)
|
|
ELIF (g_iLastSelectedWebIndex = 7 AND iStaticLastPage = 27)
|
|
OR (g_iLastSelectedWebIndex = 1 AND iStaticLastPage = 27)
|
|
INT iHangar
|
|
iHangar = GET_LAST_CLICKED_HANGAR()
|
|
|
|
IF (g_iLastSelectedWebIndex = 7 AND iStaticLastPage = 27)
|
|
CPRINTLN(DEBUG_INTERNET, "Hangar property buy attempt triggered on index: ", iHangar)
|
|
ELIF (g_iLastSelectedWebIndex = 1 AND iStaticLastPage = 27)
|
|
CPRINTLN(DEBUG_INTERNET, "Hangar property trade attempt triggered on index: ", iHangar)
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "Hangar property replace(?) attempt triggered on index: ", iHangar)
|
|
ENDIF
|
|
|
|
INT iResultSlot
|
|
BUY_MP_HANGAR_FROM_WEBSITE(INT_TO_ENUM(HANGAR_ID, iHangar), iResultSlot)
|
|
ELIF (g_iLastSelectedWebIndex = 7 AND iStaticLastPage = 34)
|
|
INT iBase
|
|
iBase = GET_LAST_CLICKED_DEFUNCT_BASE()
|
|
|
|
IF (g_iLastSelectedWebIndex = 7 AND iStaticLastPage = 34)
|
|
CPRINTLN(DEBUG_INTERNET, "defunct base property buy attempt triggered on index: ", iBase)
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "defunct base property replace(?) attempt triggered on index: ", iBase)
|
|
ENDIF
|
|
|
|
INT iResultSlot
|
|
BUY_MP_DEFUNCT_BASE_FROM_WEBSITE(INT_TO_ENUM(DEFUNCT_BASE_ID, iBase), iResultSlot)
|
|
ELIF (g_iLastSelectedWebIndex = 7 AND iStaticLastPage = 41)
|
|
|
|
INT iNightclub
|
|
iNightclub = GET_LAST_CLICKED_NIGHTCLUB()
|
|
|
|
IF (g_iLastSelectedWebIndex = 7 AND iStaticLastPage = 41)
|
|
CPRINTLN(DEBUG_INTERNET, "nightclub property buy attempt triggered on index: ", iNightclub)
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "nightclub property replace(?) attempt triggered on index: ", iNightclub)
|
|
ENDIF
|
|
|
|
INT iResultSlot
|
|
BUY_MP_NIGHTCLUB_FROM_WEBSITE(INT_TO_ENUM(NIGHTCLUB_ID, iNightclub), iResultSlot)
|
|
ELIF (g_iLastSelectedWebIndex = 7 AND iStaticLastPage = 48)
|
|
INT iArcade
|
|
iArcade = GET_LAST_CLICKED_ARCADE()
|
|
|
|
IF (g_iLastSelectedWebIndex = 7 AND iStaticLastPage = 48)
|
|
CPRINTLN(DEBUG_INTERNET, "Arcade property buy attempt triggered on index: ", iArcade)
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "Arcade property replace(?) attempt triggered on index: ", iArcade)
|
|
ENDIF
|
|
|
|
INT iResultSlot
|
|
|
|
BUY_MP_ARCADE_FROM_WEBSITE(INT_TO_ENUM(ARCADE_PROPERTY_ID, iArcade), iResultSlot)
|
|
ELIF (g_iLastSelectedWebIndex = 7 AND iStaticLastPage = 55)
|
|
INT iAutoShop
|
|
iAutoShop = GET_LAST_CLICKED_AUTO_SHOP()
|
|
|
|
IF (g_iLastSelectedWebIndex = 7 AND iStaticLastPage = 55)
|
|
CPRINTLN(DEBUG_INTERNET, "Auto Shop property buy attempt triggered on index: ", iAutoShop)
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "Auto Shop property replace(?) attempt triggered on index: ", iAutoShop)
|
|
ENDIF
|
|
|
|
INT iResultSlot
|
|
|
|
BUY_MP_AUTO_SHOP_FROM_WEBSITE(INT_TO_ENUM(AUTO_SHOP_PROPERTY_ID, iAutoShop), iResultSlot)
|
|
ELSE
|
|
CDEBUG3LN(DEBUG_INTERNET, "Potential property buy attempt - g_iLastSelectedWebIndex:", g_iLastSelectedWebIndex, ", iStaticLastPage:", iStaticLastPage)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iStaticCurrentPage != iStaticLastPage
|
|
bColourPickingMode = TRUE
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE WWW_THEDIAMONDCASINOANDRESORT_COM
|
|
IF (iStaticCurrentPage = 4)
|
|
CPRINTLN(DEBUG_INTERNET, "CASINO_MEM membership buy attempt triggered")
|
|
BUY_MP_CASINO_MEMBERSHIP_FROM_WEBSITE()
|
|
ENDIF
|
|
|
|
IF (iStaticCurrentPage = 15)
|
|
INT iCasinoApt
|
|
iCasinoApt = ENUM_TO_INT(CASINO_APARTMENT_1) //GET_LAST_CLICKED_CASINO_APT()
|
|
|
|
// IF (g_iLastSelectedWebIndex = 7 AND iStaticLastPage = 41)
|
|
CPRINTLN(DEBUG_INTERNET, "CASINO_APT property buy attempt triggered on index: ", iCasinoApt)
|
|
// ELSE
|
|
// CASSERTLN(DEBUG_INTERNET, "CASINO_APT property replace(?) attempt triggered on index: ", iCasinoApt)
|
|
// ENDIF
|
|
|
|
INT iResultSlot
|
|
iResultSlot = 0
|
|
BUY_MP_CASINO_APT_FROM_WEBSITE(INT_TO_ENUM(CASINO_APT_ID, iCasinoApt), iResultSlot)
|
|
|
|
ENDIF
|
|
|
|
IF (iStaticCurrentPage = 0)
|
|
// [HELP_CASWEB_1]
|
|
// Please note: The Diamond Casino & Resort does not support the use of Shark Cards in your region. Only earned GTA$ can be used to purchase additional chips to use inside the casino.
|
|
// IF NOT bDisplaying_HELP_CASWEB_1_for_first_time
|
|
// AND NOT DOES_PLAYER_OWN_A_CASINO_APARTMENT(PLAYER_ID())
|
|
// IF NOT NETWORK_CASINO_CAN_BET_PVC()
|
|
// CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_CASWEB_1 (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
// bDisplaying_HELP_CASWEB_1_for_first_time = TRUE
|
|
// SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_CASWEB_1", DEFAULT, TRUE)
|
|
// iTutTimer = g_iBrowserTimer + 7500
|
|
// ENDIF
|
|
// ENDIF
|
|
ELSE
|
|
// IF ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_CASWEB_1")
|
|
// IF IS_THIS_BROWSER_HELP_MESSAGE_BEING_DISPLAYED(g_sBrowserHelpMessage)
|
|
// CPRINTLN(DEBUG_INTERNET, "<HELP> - clear ", g_sBrowserHelpMessage.tl15Tag, " (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
// CLEAR_HELP()
|
|
// CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT()
|
|
// ENDIF
|
|
// ELIF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_CASWEB_1")
|
|
// CPRINTLN(DEBUG_INTERNET, "<HELP> - clear casino help (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
// CLEAR_HELP()
|
|
// ENDIF
|
|
ENDIF
|
|
|
|
IF (iStaticCurrentPage = 14) //SUMMARY
|
|
// [HELP_CASWEB_0]
|
|
// Purchasing the suite will add $500 to the daily property utility charge. Each additional expansion will add a further $100.
|
|
IF NOT GET_PACKED_STAT_BOOL(PACKED_MP_BOOL_HELP_CASWEB_0_DISPLAYED)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - display HELP_CASWEB_0 (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
|
|
IF NOT GET_PACKED_STAT_BOOL(PACKED_MP_BOOL_HELP_CASWEB_0_DISPLAYED)
|
|
SET_PACKED_STAT_BOOL(PACKED_MP_BOOL_HELP_CASWEB_0_DISPLAYED, TRUE)
|
|
SET_BIT(iPurchaseHelpBS, PURCHASE_HELP_BS_CASWEB_0_FOR_FIRST_TIME)
|
|
ENDIF
|
|
IF IS_GAMBLING_APPROVED_REGION()
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_CASWEB_0", DEFAULT, TRUE)
|
|
ELSE
|
|
SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("HELP_CASWEB_0B", DEFAULT, TRUE)
|
|
ENDIF
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
ENDIF
|
|
ELSE
|
|
IF ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_CASWEB_0")
|
|
OR ARE_STRINGS_EQUAL(g_sBrowserHelpMessage.tl15Tag, "HELP_CASWEB_0B")
|
|
IF IS_THIS_BROWSER_HELP_MESSAGE_BEING_DISPLAYED(g_sBrowserHelpMessage)
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - clear ", g_sBrowserHelpMessage.tl15Tag, " (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
CLEAR_HELP()
|
|
CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT()
|
|
ENDIF
|
|
ELIF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_CASWEB_0")
|
|
OR IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HELP_CASWEB_0B")
|
|
CPRINTLN(DEBUG_INTERNET, "<HELP> - clear casino help (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE WWW_DYNASTY8REALESTATE_COM
|
|
// We are in colour picking mode! (Reduce for websites which actually support this)
|
|
bColourPickingMode = FALSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL_15 tlLastClickedPropertyName
|
|
tlLastClickedPropertyName = GET_PROPERTY_NAME(iLastClickedPropertyIndex)
|
|
#ENDIF
|
|
|
|
// Update page
|
|
IF iStaticCurrentPage != iStaticLastPage
|
|
|
|
PRINTLN("kr_debug: IS_PROPERTY_CUSTOMISABLE = ", IS_PROPERTY_CUSTOMISABLE(iLastClickedPropertyIndex), ", iLastClickedPropertyIndex = ", iLastClickedPropertyIndex, ", name = ", GET_STRING_FROM_TEXT_FILE(tlLastClickedPropertyName))
|
|
|
|
IF IS_PROPERTY_CUSTOMISABLE(iLastClickedPropertyIndex)
|
|
//Check if an interior has been selected before setting the default value
|
|
IF NOT bCustomInteriorSelected
|
|
iCustomAptVariant = 1
|
|
bColourPickingMode = TRUE
|
|
CPRINTLN(DEBUG_INTERNET, "SET_PROPERTY_INTERIOR: Setting iStaticCurrentPage:", iStaticCurrentPage,
|
|
", iStaticLastPage = ", iStaticLastPage,
|
|
" \"", tlLastClickedPropertyName,
|
|
"\" - ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite))
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "SET_PROPERTY_INTERIOR: Bypass iStaticCurrentPage:", iStaticCurrentPage,
|
|
", iStaticLastPage = ", iStaticLastPage,
|
|
" \"", tlLastClickedPropertyName,
|
|
"\" - ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite))
|
|
CPRINTLN(DEBUG_INTERNET," g_iLastSelectedWebIndex: ", g_iLastSelectedWebIndex, " iLastClickedPropertyIndex: ", iLastClickedPropertyIndex)
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "SET_PROPERTY_INTERIOR: not setting iStaticCurrentPage:", iStaticCurrentPage,
|
|
", iStaticLastPage = ", iStaticLastPage,
|
|
" \"", tlLastClickedPropertyName,
|
|
"\" - ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite))
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "SET_PROPERTY_INTERIOR: ignoring iStaticCurrentPage:", iStaticCurrentPage,
|
|
", iStaticLastPage = ", iStaticLastPage,
|
|
", iLastClickedPropertyIndex = ", iLastClickedPropertyIndex,
|
|
" - ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite))
|
|
ENDIF
|
|
|
|
IF (iStaticLastPage = 21 AND NOT IS_PROPERTY_CUSTOMISABLE(iLastClickedPropertyIndex))
|
|
OR (iStaticLastPage = 27 AND IS_PROPERTY_CUSTOMISABLE(iLastClickedPropertyIndex))
|
|
IF (iStaticCurrentPage = 4)
|
|
CPRINTLN(DEBUG_INTERNET, "Property buy attempt triggered on index: ",iLastClickedPropertyIndex)
|
|
//try to buy property with index iLastClickedPropertyIndex
|
|
IF iLastClickedPropertyIndex > -1
|
|
CPRINTLN(DEBUG_INTERNET, "Property buy attempt triggered on index: ",iLastClickedPropertyIndex)
|
|
BUY_MP_PROPERTY_FROM_WEBSITE(iLastClickedPropertyIndex)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF (iStaticLastPage = 21)
|
|
OR (iStaticLastPage = 27 AND IS_PROPERTY_CUSTOMISABLE(iLastClickedPropertyIndex))
|
|
// Do gps placement for property
|
|
IF (iStaticCurrentPage = 5)
|
|
IF iLastClickedPropertyIndex > -1
|
|
CPRINTLN(DEBUG_INTERNET, "Property gps placement attempted on property: ", iLastClickedPropertyIndex, " \"", tlLastClickedPropertyName, "\" ", mpProperties[iLastClickedPropertyIndex].vPurchaseLocation)
|
|
SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(mpProperties[iLastClickedPropertyIndex].vPurchaseLocation)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "Property gps placement failed on: ", iLastClickedPropertyIndex, " \"", tlLastClickedPropertyName, "\"")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// PURCHASE_D_ERROR
|
|
IF (iStaticCurrentPage = 23)
|
|
|
|
//SlotID 1 = heading
|
|
//SlotID 2 = message text
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "updating property site error content")
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT_EMPTY")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Updating property purchase error page fail reason ", mpPropertySiteFailReason, ".")
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("VHSITPURFH")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
|
|
SWITCH mpPropertySiteFailReason
|
|
CASE MPSFR_INSUFFCIENT_RANK
|
|
CPRINTLN(DEBUG_INTERNET, "Insufficient rank for property purchase, MPSFR_INSUFFCIENT_RANK")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("LAR_IRANK")
|
|
BREAK
|
|
CASE MPSFR_INSUFFICIENT_CASH
|
|
CPRINTLN(DEBUG_INTERNET, "Insufficient cash for property purchase, MPSFR_INSUFFICIENT_CASH")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("LAR_ICASH")
|
|
BREAK
|
|
CASE MPSFR_NOT_UNLOCKED
|
|
CPRINTLN(DEBUG_INTERNET, "Property not unlocked for purchase, MPSFR_NOT_UNLOCKED")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("LAR_NLOCK")
|
|
BREAK
|
|
CASE MPSFR_INSUFFCIENT_RANK_PENDING
|
|
CPRINTLN(DEBUG_INTERNET, "Insufficient pending rank for property purchase, MPSFR_INSUFFCIENT_RANK_PENDING")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("LAR_IRANKC")
|
|
BREAK
|
|
CASE MPSFR_NOT_SAFE
|
|
CPRINTLN(DEBUG_INTERNET, "Not safe for for property purchase, MPSFR_NOT_SAFE")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("LAR_SAVTRB")
|
|
BREAK
|
|
CASE MPSFR_ON_MISSION
|
|
CPRINTLN(DEBUG_INTERNET, "Not safe for for property purchase, MPSFR_ON_MISSION")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("LAR_MISS")
|
|
BREAK
|
|
CASE MPSFR_PAID_RESUPPLY
|
|
CPRINTLN(DEBUG_INTERNET, "Not safe for for property purchase, MPSFR_PAID_RESUPPLY")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("LAR_SHIP")
|
|
BREAK
|
|
CASE MPSFR_HAS_STOCK
|
|
CPRINTLN(DEBUG_INTERNET, "Not safe for for property purchase, MPSFR_HAS_STOCK")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("LAR_STOCK")
|
|
BREAK
|
|
|
|
CASE MPSFR_UNSET
|
|
CPRINTLN(DEBUG_INTERNET, "Property purchase failed flag unset, MPSFR_UNSET")
|
|
BREAK
|
|
CASE MPSFR_CANCELED
|
|
CPRINTLN(DEBUG_INTERNET, "Cancelled property purchase, MPSFR_CANCELED")
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CPRINTLN(DEBUG_INTERNET, "Unknown reason for failing property purchase, MPSFR_DEFAULT_", mpPropertySiteFailReason)
|
|
BREAK
|
|
ENDSWITCH
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"UPDATE_TEXT")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE WWW_THECHILDRENOFTHEMOUNTAIN_COM
|
|
IF iStaticCurrentPage = 1
|
|
IF g_iChildrenOfTheMountainStatus = 3
|
|
WHILE NOT REGISTER_EMAIL_FROM_CHARACTER_TO_PLAYER(EMAIL_COTM_ADRIAN_3, CT_AMBIENT, BIT_FRANKLIN, CHAR_BLANK_ENTRY, 1000, 5000, DEFAULT, CID_BLANK)
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: Sending email with 'actuality' password...")
|
|
WAIT(0)
|
|
ENDWHILE
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: Sent email with 'actuality' password")
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(4)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "UPDATE_TEXT")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
g_iChildrenOfTheMountainStatus = 4
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: SET_DATA_SLOT set to 4")
|
|
ENDIF
|
|
ELIF iStaticCurrentPage = 14
|
|
IF g_iChildrenOfTheMountainStatus = 5
|
|
WHILE NOT REGISTER_EMAIL_FROM_CHARACTER_TO_PLAYER(EMAIL_COTM_ADRIAN_4, CT_AMBIENT, BIT_FRANKLIN, CHAR_BLANK_ENTRY, 1000, 5000, DEFAULT, CID_BLANK)
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: Sending final email...")
|
|
WAIT(0)
|
|
ENDWHILE
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: Sent final email")
|
|
SET_PED_COMP_ITEM_ACQUIRED_SP(PLAYER_ONE, COMP_TYPE_TORSO, TORSO_P1_T_SHIRT_12, TRUE)
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: Unlocked t-shirt")
|
|
g_iChildrenOfTheMountainStatus = 6
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ELSE
|
|
IF g_eLastBuyableVehicleColourSelected != BCV_NO_COLOUR
|
|
CPRINTLN(DEBUG_INTERNET, "<COLPICK> invalidated vehicle colour from ", g_eLastBuyableVehicleColourSelected, " to BCV_NO_COLOUR.")
|
|
g_eLastBuyableVehicleColourSelected = BCV_NO_COLOUR
|
|
ENDIF
|
|
|
|
IF g_bLastBuyableVehicleArmourSelected != FALSE
|
|
CPRINTLN(DEBUG_INTERNET, "<COLPICK> invalidated vehicle armour from ", GET_STRING_FROM_BOOL(g_bLastBuyableVehicleArmourSelected), " to FALSE.")
|
|
g_bLastBuyableVehicleArmourSelected = FALSE
|
|
ENDIF
|
|
|
|
// Transitioning to another site
|
|
SWITCH eStaticCurrentSite
|
|
|
|
CASE WWW_THECHILDRENOFTHEMOUNTAIN_COM
|
|
IF iStaticCurrentPage = 1
|
|
AND g_iChildrenOfTheMountainStatus < 1
|
|
WHILE NOT REGISTER_EMAIL_FROM_CHARACTER_TO_PLAYER(EMAIL_COTM_ADRIAN_2, CT_AMBIENT, BIT_FRANKLIN, CHAR_BLANK_ENTRY, 1000, 5000, DEFAULT, CID_BLANK)
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: Sending email with 'futility' password...")
|
|
WAIT(0)
|
|
ENDWHILE
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: Sent email with 'futility' password")
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "UPDATE_TEXT")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
g_iChildrenOfTheMountainStatus = 1
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: SET_DATA_SLOT set to 1")
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
CASE WWW_ELITASTRAVEL_COM
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
CASE WWW_DOCKTEASE_COM
|
|
CASE WWW_PANDMCYCLES_COM
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
CASE WWW_BENNYSORIGINALMOTORWORKS_COM
|
|
CASE WWW_ARENAWAR_TV
|
|
// We are in colour picking mode! (Reduce for websites which actually support this)
|
|
bColourPickingMode = FALSE
|
|
|
|
SITE_BUYABLE_VEHICLE sbv
|
|
sbv = GET_VEHICLE_FROM_SITE_AND_PAGE_ID(eStaticCurrentSite, iStaticCurrentPage)
|
|
|
|
IF sbv != UNSET_BUYABLE_VEHICLE
|
|
bColourPickingMode = TRUE
|
|
IF SET_VEHICLE_DEFAULT_COLOUR(sbv, eStaticCurrentSite, bColourPickingMode, g_eLastBuyableVehicleColourSelected, g_bLastBuyableVehicleArmourSelected)
|
|
CPRINTLN(DEBUG_INTERNET, "SET_VEHICLE_DEFAULT_COLOUR: Setting \"",
|
|
GET_LABEL_BUYABLE_VEHICLE(sbv),
|
|
"\" default colour = ", GET_STRING_FROM_SITE_BUYABLE_VEHICLE_COLOURS(sbv, g_eLastBuyableVehicleColourSelected),
|
|
", bColourPickingMode = ", GET_STRING_FROM_BOOL(bColourPickingMode),
|
|
" - ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite))
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "SET_VEHICLE_DEFAULT_COLOUR: not setting \"",
|
|
GET_LABEL_BUYABLE_VEHICLE(sbv),
|
|
"\" default colour = ", GET_STRING_FROM_SITE_BUYABLE_VEHICLE_COLOURS(sbv, g_eLastBuyableVehicleColourSelected),
|
|
", bColourPickingMode = ", GET_STRING_FROM_BOOL(bColourPickingMode),
|
|
" - ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite))
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ENDIF
|
|
|
|
bUpdate = TRUE
|
|
ELIF eStaticLastSite != eStaticCurrentSite
|
|
IF eStaticCurrentSite = WWW_DYNASTY8EXECUTIVEREALTY_COM
|
|
bUpdate = TRUE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_STATIC_SITE_CHANGE_TRIGGERS EXEC: Static site with id ", GET_WEBSITE_FROM_INDEX(eStaticLastSite), " -> ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite), " : ",iStaticLastPage ," -> ", iStaticCurrentPage ," detected ")
|
|
ENDIF
|
|
ELIF eStaticLastSite != eStaticCurrentSite
|
|
IF eStaticCurrentSite = FORECLOSURES_MAZE_D_BANK_COM
|
|
bUpdate = TRUE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_STATIC_SITE_CHANGE_TRIGGERS BIKER: Static site with id ", GET_WEBSITE_FROM_INDEX(eStaticLastSite), " -> ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite), " : ",iStaticLastPage ," -> ", iStaticCurrentPage ," detected ")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bUpdate
|
|
g_bPropertyRefreshTrigger = TRUE
|
|
CPRINTLN(DEBUG_INTERNET, "DO_STATIC_SITE_CHANGE_TRIGGERS: Static site with id ", GET_WEBSITE_FROM_INDEX(eStaticLastSite), " -> ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite), " : ",iStaticLastPage ," -> ", iStaticCurrentPage ," detected ")
|
|
ENDIF
|
|
|
|
iStaticHistory = kbHistory
|
|
|
|
// OLD STATIC TRIGGERS - these should be converted to the above format
|
|
// These static site triggers should perhaps get moved somewhere else sometime
|
|
SWITCH eStaticCurrentSite
|
|
|
|
CASE WWW_THEREALITYMILL_COM
|
|
IF eStaticLastSite = WWW_THEREALITYMILL_COM
|
|
AND iStaticLastPage = 1
|
|
AND iStaticCurrentPage = 15
|
|
enumCharacterList eChar
|
|
eChar = GET_CURRENT_PLAYER_PED_ENUM()
|
|
|
|
SWITCH eChar
|
|
CASE CHAR_MICHAEL
|
|
IF NOT g_savedGlobals.sAmbient.bWebsiteSubscription[0]
|
|
IF GET_TOTAL_CASH(CHAR_MICHAEL) < 500
|
|
GO_TO_WEBSITE("WWW_THEREALITYMILL_COM_S_PURCHASE_D_ERROR")
|
|
ELSE
|
|
DO_BANK_ACCOUNT_ACTION(BANK_ACCOUNT_MICHAEL, BAA_DEBIT, BAAC_REALITY_MILL, 500)
|
|
g_savedGlobals.sAmbient.bWebsiteSubscription[0] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
CASE CHAR_FRANKLIN
|
|
IF NOT g_savedGlobals.sAmbient.bWebsiteSubscription[1]
|
|
IF GET_TOTAL_CASH(CHAR_FRANKLIN) < 500
|
|
GO_TO_WEBSITE("WWW_THEREALITYMILL_COM_S_PURCHASE_D_ERROR")
|
|
ELSE
|
|
DO_BANK_ACCOUNT_ACTION(BANK_ACCOUNT_FRANKLIN, BAA_DEBIT, BAAC_REALITY_MILL, 500)
|
|
g_savedGlobals.sAmbient.bWebsiteSubscription[1] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
CASE CHAR_TREVOR
|
|
IF NOT g_savedGlobals.sAmbient.bWebsiteSubscription[2]
|
|
IF GET_TOTAL_CASH(CHAR_TREVOR) < 500
|
|
GO_TO_WEBSITE("WWW_THEREALITYMILL_COM_S_PURCHASE_D_ERROR")
|
|
ELSE
|
|
// Debit account by $500
|
|
DO_BANK_ACCOUNT_ACTION(BANK_ACCOUNT_TREVOR, BAA_DEBIT, BAAC_REALITY_MILL, 500)
|
|
g_savedGlobals.sAmbient.bWebsiteSubscription[2] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_LENNYAVERY_D_REALTY_COM
|
|
|
|
IF bPrimedAveryGps
|
|
IF !g_bInMultiplayer
|
|
IF iStaticCurrentPage = 5
|
|
|
|
bPrimedAveryGps = FALSE
|
|
|
|
SWITCH iStaticAveryPrevious
|
|
|
|
//House 1
|
|
CASE 6
|
|
SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(<<-1569.5250, 444.0400, 108.1350>>)
|
|
BREAK
|
|
|
|
//House 2
|
|
CASE 7
|
|
SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(<<-1352.8800, 613.7700, 134.3400>>)
|
|
BREAK
|
|
|
|
//House 3
|
|
CASE 8
|
|
SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(<<-1469.2000, -5.3300, 53.1050>>)
|
|
BREAK
|
|
|
|
//House 4
|
|
CASE 9
|
|
SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(<<-1632.8329, -413.8573, 39.9441>>)
|
|
BREAK
|
|
|
|
//House 5
|
|
CASE 10
|
|
SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(<<-1774.2250, -430.0300, 44.0400>>)
|
|
BREAK
|
|
|
|
//House 6
|
|
CASE 11
|
|
SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(<<-380.7500, 427.7900, 110.9700>>)
|
|
BREAK
|
|
|
|
//House 7
|
|
CASE 12
|
|
SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(<<-163.2826, 989.2324, 234.0641>>)
|
|
BREAK
|
|
|
|
//House 8
|
|
CASE 13
|
|
SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(<<-492.2117, 585.2451, 122.0000>>)
|
|
BREAK
|
|
|
|
//House 9
|
|
CASE 14
|
|
SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(<<-818.8400, 434.7400, 88.1500>>)
|
|
BREAK
|
|
|
|
//House 10
|
|
CASE 15
|
|
SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(<<-910.1000, 784.3440, 184.4710>>)
|
|
BREAK
|
|
|
|
//House 11
|
|
CASE 16
|
|
SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(<<-825.9200, -26.6700, 38.6800>>)
|
|
BREAK
|
|
|
|
//House 12
|
|
CASE 17
|
|
SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(<<-1103.5000, 587.2900, 102.8650>>)
|
|
BREAK
|
|
|
|
//House 13
|
|
CASE 18
|
|
SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(<<-1253.2550, 496.6150, 93.8200>>)
|
|
BREAK
|
|
|
|
//House 14
|
|
CASE 19
|
|
SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(<<166.5500, 487.3100, 142.1200>>)
|
|
BREAK
|
|
|
|
//House 15
|
|
CASE 20
|
|
SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(<<-1163.8590, 319.1900, 67.9600>>)
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CPRINTLN(DEBUG_INTERNET, "appInternet: Avery property site location set failed. Pass this bug to Default Levels.")
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
bPrimedAveryGps = TRUE
|
|
ENDIF
|
|
|
|
iStaticAveryPrevious = iStaticCurrentPage
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
eStaticLastSite = eStaticCurrentSite
|
|
iStaticLastPage = iStaticCurrentPage
|
|
ENDPROC
|
|
|
|
PROC PROGRESS_FIRST_TIME_TUTORIAL()
|
|
|
|
CDEBUG3LN(DEBUG_INTERNET, "PROGRESS_FIRST_TIME_TUTORIAL(\"", g_sBrowserHelpMessage.tl15Tag, "\"), iTutstage:", iTutstage, ", iTutTimer:", iTutTimer, ", g_iBrowserTimer:", g_iBrowserTimer, " //", TO_FLOAT(g_iBrowserTimer-iTutTimer)/1000.0)
|
|
|
|
IF iTutstage = 0
|
|
PAUSE_FLOW_HELP_QUEUE(TRUE)
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
|
|
IF NOT IS_PLAYER_DEAD(GET_PLAYER_INDEX())
|
|
g_iBrowserHealthDelta = GET_ENTITY_HEALTH(GET_PLAYER_PED(GET_PLAYER_INDEX()))
|
|
ENDIF
|
|
++iTutstage
|
|
ENDIF
|
|
|
|
IF iTutstage != 0
|
|
SWITCH iTutstage
|
|
CASE 1
|
|
g_sBrowserHelpMessage.bShow = TRUE
|
|
g_sBrowserHelpMessage.tl15Tag = "BROWTUT1"
|
|
g_sBrowserHelpMessage.eTextType = BHMT_STRING
|
|
|
|
IF IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL) // PC specific mouse help
|
|
g_sBrowserHelpMessage.tl15Tag = "BROWTUT1_KM"
|
|
ENDIF
|
|
BREAK
|
|
CASE 2
|
|
g_sBrowserHelpMessage.tl15Tag = "BROWTUT2"
|
|
g_sBrowserHelpMessage.eTextType = BHMT_STRING
|
|
|
|
IF IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL) // PC specific mouse help
|
|
g_sBrowserHelpMessage.tl15Tag = "BROWTUT2_KM"
|
|
ENDIF
|
|
BREAK
|
|
CASE 3
|
|
g_sBrowserHelpMessage.tl15Tag = "BROWTUT3"
|
|
g_sBrowserHelpMessage.eTextType = BHMT_STRING
|
|
|
|
IF IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL) // PC specific mouse help
|
|
g_sBrowserHelpMessage.tl15Tag = "BROWTUT3_KM"
|
|
ENDIF
|
|
BREAK
|
|
CASE 4
|
|
g_sBrowserHelpMessage.tl15Tag = "BROWTUT4"
|
|
g_sBrowserHelpMessage.eTextType = BHMT_STRING
|
|
BREAK
|
|
CASE 5
|
|
g_sBrowserHelpMessage.tl15Tag = "BROWTUT5"
|
|
g_sBrowserHelpMessage.eTextType = BHMT_STRING
|
|
|
|
IF IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL) // PC specific mouse help
|
|
g_sBrowserHelpMessage.tl15Tag = "BROWTUT5_KM"
|
|
ENDIF
|
|
BREAK
|
|
|
|
#IF IS_NEXTGEN_BUILD
|
|
CASE 6
|
|
IF IS_PLAYSTATION_PLATFORM()
|
|
g_sBrowserHelpMessage.tl15Tag = "BROWTUT1a" //The Track Pad may also be used to move the pointer."
|
|
g_sBrowserHelpMessage.eTextType = BHMT_STRING
|
|
ELSE
|
|
iTutstage++
|
|
ENDIF
|
|
BREAK
|
|
#ENDIF
|
|
|
|
DEFAULT
|
|
//tutorial over
|
|
g_sBrowserHelpMessage.bShow = FALSE
|
|
iTutstage = 0
|
|
//g_bBrowserUserMode = TRUE//return player control
|
|
g_savedGlobals.sFinanceData.bBrowserTutorialSeen = TRUE
|
|
PAUSE_FLOW_HELP_QUEUE(FALSE)
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
IF iTutTimer < g_iBrowserTimer
|
|
iTutTimer = g_iBrowserTimer + 7500
|
|
++iTutstage
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
BOOL bTexitSeenUp = FALSE
|
|
|
|
PROC SORT_NUMERICAL_INT_ARRAY(INT &intArray[],INT iSizeOfArray)
|
|
INT i,j, tempInt
|
|
REPEAT iSizeOfArray i
|
|
FOR j=i+1 TO iSizeOfArray-1
|
|
IF intArray[j] < intArray[i]
|
|
tempInt = intArray[j]
|
|
intArray[j] = intArray[i]
|
|
intArray[i] = tempInt
|
|
ENDIF
|
|
ENDFOR
|
|
ENDREPEAT
|
|
ENDPROC
|
|
|
|
PROC RUN_OSK_FOR_ORG_NAME()
|
|
BOOL bOfficeWebsite = FALSE, bIsMCClub = FALSE
|
|
TEXT_LABEL_63 tlOfficeName = ""
|
|
IF eStaticCurrentSite = WWW_DYNASTY8EXECUTIVEREALTY_COM
|
|
bOfficeWebsite = TRUE // B* 2789770
|
|
bIsMCClub = FALSE
|
|
tlOfficeName = g_sOfficeDataStruct.tl63OldOrgName
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[MGR_EXEC_WEB] Runing keyboard for office \"", tlOfficeName, "\" ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite))
|
|
ELIF eStaticCurrentSite = FORECLOSURES_MAZE_D_BANK_COM
|
|
bOfficeWebsite = FALSE
|
|
bIsMCClub = TRUE
|
|
tlOfficeName = g_sClubhouseDataStruct.tl63OldSignage
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[MGR_EXEC_WEB] Runing keyboard for clubhouse \"", tlOfficeName, "\" ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite))
|
|
ENDIF
|
|
|
|
IF GB_MANAGE_NAMING_GANG(GBKeyBoardData, TRUE, bOfficeWebsite, tlOfficeName, bIsMCClub, FALSE)
|
|
TEXT_LABEL_63 tl63OrganisationName = GET_ONSCREEN_KEYBOARD_RESULT()
|
|
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(tl63OrganisationName)
|
|
IF bOfficeWebsite
|
|
g_sOfficeDataStruct.tl63NewOrgName = tl63OrganisationName
|
|
|
|
// Player doesn't own Office
|
|
IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_0) = 0
|
|
g_sOfficeDataStruct.iOfficeNameID = 0
|
|
CPRINTLN(DEBUG_INTERNET, "[MGR_EXEC_WEB] Office not purchased, id = ", g_sOfficeDataStruct.iOfficeNameID)
|
|
|
|
// Player already has this name
|
|
ELIF GET_HASH_KEY(g_sOfficeDataStruct.tl63NewOrgName) = GET_HASH_KEY(g_sOfficeDataStruct.tl63OldOrgName)
|
|
g_sOfficeDataStruct.iOfficeNameID = GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_NAME_ID)
|
|
CPRINTLN(DEBUG_INTERNET, "[MGR_EXEC_WEB] player already has this name, id = ", g_sOfficeDataStruct.iOfficeNameID)
|
|
// Stats are out of sync!
|
|
// ELIF GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_NAME_ID) != GET_PACKED_STAT_INT(PACKED_MP_CHAR_Office_NAME_ID)
|
|
// g_sOfficeDataStruct.iOfficeNameID = 0
|
|
// CPRINTLN(DEBUG_INTERNET, "[MGR_EXEC_WEB] Office stats out of sync, id = ", g_sOfficeDataStruct.iOfficeNameID, ", packed=", GET_PACKED_STAT_INT(PACKED_MP_CHAR_Office_NAME_ID), ", profile=", GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_NAME_ID))
|
|
// Change id
|
|
ELIF GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_NAME_ID) != 1
|
|
g_sOfficeDataStruct.iOfficeNameID = 1
|
|
CPRINTLN(DEBUG_INTERNET, "[MGR_EXEC_WEB] changing name, id = ", g_sOfficeDataStruct.iOfficeNameID)
|
|
ELIF GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_NAME_ID) != 2
|
|
g_sOfficeDataStruct.iOfficeNameID = 2
|
|
CPRINTLN(DEBUG_INTERNET, "[MGR_EXEC_WEB] changing name, id = ", g_sOfficeDataStruct.iOfficeNameID)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[MGR_EXEC_WEB] missing case, id = ", g_sOfficeDataStruct.iOfficeNameID)
|
|
ENDIF
|
|
|
|
POPULATE_OWNED_EXEC_OFFICE(mov)
|
|
ELIF bIsMCClub
|
|
g_sClubhouseDataStruct.tl63NewSignage = tl63OrganisationName
|
|
|
|
// Player doesn't own Clubhouse
|
|
IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_CLUBHOUSE) = 0
|
|
g_sClubhouseDataStruct.iClubhouseNameID = 0
|
|
CPRINTLN(DEBUG_INTERNET, "[MGR_EXEC_WEB] Clubhouse not purchased, id = ", g_sClubhouseDataStruct.iClubhouseNameID)
|
|
|
|
// Player already has this name
|
|
ELIF GET_HASH_KEY(g_sClubhouseDataStruct.tl63NewSignage) = GET_HASH_KEY(g_sClubhouseDataStruct.tl63OldSignage)
|
|
g_sClubhouseDataStruct.iClubhouseNameID = GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_CLBHOSE_NAME_ID)
|
|
CPRINTLN(DEBUG_INTERNET, "[MGR_EXEC_WEB] player already has this name, id = ", g_sClubhouseDataStruct.iClubhouseNameID)
|
|
// Stats are out of sync!
|
|
// ELIF GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_CLBHOSE_NAME_ID) != GET_PACKED_STAT_INT(PACKED_MP_CHAR_CLUBHOUSE_NAME_ID)
|
|
// g_sClubhouseDataStruct.iClubhouseNameID = 0
|
|
// CPRINTLN(DEBUG_INTERNET, "[MGR_EXEC_WEB] CLUBHOUSE stats out of sync, id = ", g_sClubhouseDataStruct.iClubhouseNameID, ", packed=", GET_PACKED_STAT_INT(PACKED_MP_CHAR_CLUBHOUSE_NAME_ID), ", profile=", GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_CLBHOSE_NAME_ID))
|
|
// Change id
|
|
ELIF GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_CLBHOSE_NAME_ID) != 1
|
|
g_sClubhouseDataStruct.iClubhouseNameID = 1
|
|
CPRINTLN(DEBUG_INTERNET, "[MGR_EXEC_WEB] changing name, id = ", g_sClubhouseDataStruct.iClubhouseNameID)
|
|
ELIF GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_CLBHOSE_NAME_ID) != 2
|
|
g_sClubhouseDataStruct.iClubhouseNameID = 2
|
|
CPRINTLN(DEBUG_INTERNET, "[MGR_EXEC_WEB] changing name, id = ", g_sClubhouseDataStruct.iClubhouseNameID)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[MGR_EXEC_WEB] missing case, id = ", g_sClubhouseDataStruct.iClubhouseNameID)
|
|
ENDIF
|
|
|
|
POPULATE_OWNED_BIKER_CLUBHOUSE(mov)
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "[MGR_EXEC_WEB] Result = ", tl63OrganisationName)
|
|
ENDIF
|
|
|
|
GBKeyBoardData.bCanceled = FALSE
|
|
bRunningOrgNameKeyboard = FALSE
|
|
BROWSER_CURSOR_LOADING(TRUE)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC RUN_OSK_FOR_YACHT(TEXT_LABEL_63 tl63Name)
|
|
WHILE NOT RUN_ON_SCREEN_KEYBOARD(KeyBoardData.eStatus, //OSK_STATUS &oskStatus,
|
|
KeyBoardData.iProfanityToken, //INT &iProfanityToken,
|
|
KeyBoardData.iCurrentStatus, //INT &iCurrentstatus,
|
|
FALSE, //BOOL bIsObjectiveText = FALSE,
|
|
FALSE, //BOOL bMissionName = TRUE,
|
|
tl63Name, //STRING stToChange = NULL,
|
|
DEFAULT, //BOOL bSMSMessage = FALSE,
|
|
DEFAULT, //INT iMissObjectiveType = 0,
|
|
DEFAULT, //BOOL bSMSMessageShort = FALSE,
|
|
DEFAULT, //BOOL bMissionTags = FALSE,
|
|
DEFAULT, //STRING stToChange2 = NULL,
|
|
DEFAULT, //BOOL bUsingLaptopEmail = FALSE,
|
|
DEFAULT, //BOOL bRenameOutfit = FALSE,
|
|
DEFAULT, //BOOL bCutsceneName = FALSE,
|
|
DEFAULT, //BOOL bCustomTeamName = FALSE,
|
|
DEFAULT, //BOOL bCustomRoleName = FALSE,
|
|
DEFAULT, //INT iCurrentSMS = 0,
|
|
TRUE, //BOOL bCustomYachtName = FALSE)
|
|
DEFAULT, //BOOL bCustomOrganization = FALSE)
|
|
DEFAULT, //BOOL bTooShort = FALSE)
|
|
DEFAULT, //BOOL bCanceled = FALSE)
|
|
DEFAULT, //BOOL bInUse = FALSE)
|
|
TRUE) //BOOL bUGC = FALSE)
|
|
|
|
RENDER_BROWSER()
|
|
|
|
IF KeyBoardData.eStatus = OSK_CANCELLED
|
|
OR IS_PED_INJURED(PLAYER_PED_ID())
|
|
OR NOT DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
IF KeyBoardData.eStatus = OSK_CANCELLED
|
|
CPRINTLN(DEBUG_INTERNET, "<COLPICK> ...cancelled keyboard!")
|
|
ELIF IS_PED_INJURED(PLAYER_PED_ID())
|
|
CPRINTLN(DEBUG_INTERNET, "<COLPICK> ...injured keyboard!")
|
|
ELIF NOT DO_CHECK_TO_TERMINATE_WHILE_LOOPS()
|
|
CPRINTLN(DEBUG_INTERNET, "<COLPICK> ...terminated keyboard!")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "<COLPICK> ...UNKNOWN keyboard!")
|
|
ENDIF
|
|
|
|
KeyBoardData.eStatus = OSK_PENDING
|
|
KeyBoardData.iCurrentstatus = OSK_STAGE_SET_UP
|
|
KeyBoardData.iProfanityToken = 0
|
|
EXIT
|
|
ENDIF
|
|
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ENDPROC
|
|
|
|
PROC PASS_INPUTS_TO_BROWSER(SCALEFORM_INDEX movin)
|
|
|
|
IF g_iBrowserNoInputTimer != -1
|
|
IF g_iBrowserNoInputTimer > g_iBrowserTimer
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: Browser input delayed")
|
|
EXIT
|
|
ELSE
|
|
g_iBrowserNoInputTimer = -1
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_SYSTEM_UI_BEING_DISPLAYED()
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF IS_PAUSE_MENU_ACTIVE()
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: IS_PAUSE_MENU_ACTIVE")
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF IS_SCREEN_FADED_OUT()
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: IS_SCREEN_FADED_OUT")
|
|
EXIT
|
|
ELIF IS_SCREEN_FADING_IN()
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: IS_SCREEN_FADING_IN")
|
|
EXIT
|
|
ELIF IS_SCREEN_FADED_OUT()
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: IS_SCREEN_FADED_OUT")
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF g_bBrowserGoToStoreTrigger
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: g_bBrowserGoToStoreTrigger()")
|
|
|
|
IF g_bBrowserNagScreenState
|
|
OR g_bBrowserVoucherNagScreenState
|
|
|
|
IF g_bBrowserNagScreenState
|
|
IF g_bBrowserVoucherNagScreenState
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: g_bBrowserNagScreenState AND g_bBrowserVoucherNagScreenState")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: g_bBrowserNagScreenState")
|
|
ENDIF
|
|
ELSE
|
|
IF g_bBrowserVoucherNagScreenState
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: g_bBrowserVoucherNagScreenState")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: UNKNOWN NAG SCREEN STATE")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_ACCEPT)
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_ACCEPT)
|
|
OR (IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_CURSOR_ACCEPT) AND NOT IS_WARNING_MESSAGE_ACTIVE())
|
|
OR (IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_ACCEPT) AND NOT IS_WARNING_MESSAGE_ACTIVE())
|
|
|
|
g_bBrowserVoucherNagScreenState = FALSE
|
|
g_bBrowserGoToStoreTrigger = FALSE
|
|
|
|
BROWSER_SET_CURSOR_STATE("ARROW")
|
|
PREP_BROWSER_BUTTONS(TRUE)
|
|
|
|
//Store the current page as we need to open it again when this comes back from the store
|
|
//1621761
|
|
//lastSiteURL
|
|
|
|
IF g_bBrowserNagScreenState
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(lastSiteURL)
|
|
|
|
//plug it into the globals for the relaunch on coming back from the shop
|
|
IF g_bInMultiplayer // these only work in MP
|
|
SET_TRANSITION_SESSION_RESTORE_SHOP_STATE_ON_RESPAWN()
|
|
SET_TRANSITION_SESSION_SHOP_STATE_INITIALISED() // dont wait for initialisation on return
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SET_LAST_VIEWED_SHOP_ITEM(g_iBrowserGoToStoreItemHash, g_iBrowserGoToStoreItemPrice, 0)
|
|
OPEN_COMMERCE_STORE("", "", SPL_PHONE)
|
|
g_bBrowserNagScreenState = FALSE
|
|
WHILE IS_COMMERCE_STORE_OPEN()
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ENDIF
|
|
|
|
g_iBrowserNoInputTimer = g_iBrowserTimer + 500
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(nagScreen)
|
|
nagScreen = null
|
|
|
|
ELIF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_CANCEL)
|
|
OR (IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_CURSOR_CANCEL) AND NOT IS_WARNING_MESSAGE_ACTIVE())
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_CANCEL)
|
|
OR (IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_CURSOR_CANCEL) AND NOT IS_WARNING_MESSAGE_ACTIVE())
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: canceled, bailing")
|
|
g_sTransitionSessionData.sEndReserve.stMPBrowserFromShopSite = ""
|
|
BROWSER_SET_CURSOR_STATE("ARROW")
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "BACK","HUD_FRONTEND_DEFAULT_SOUNDSET")
|
|
|
|
g_bBrowserNagScreenState = FALSE
|
|
g_bBrowserVoucherNagScreenState = FALSE
|
|
g_bBrowserGoToStoreTrigger = FALSE
|
|
PREP_BROWSER_BUTTONS(TRUE)
|
|
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(nagScreen)
|
|
|
|
nagScreen = null
|
|
g_iBrowserNoInputTimer = g_iBrowserTimer + 500
|
|
ENDIF
|
|
ENDIF
|
|
EXIT
|
|
ENDIF
|
|
|
|
BAWSAQ_TRADERS bttarget
|
|
SWITCH GET_CURRENT_PLAYER_PED_ENUM()
|
|
CASE CHAR_MICHAEL
|
|
bttarget = BS_TR_MIKE
|
|
BREAK
|
|
CASE CHAR_TREVOR
|
|
bttarget = BS_TR_TREVOR
|
|
BREAK
|
|
CASE CHAR_FRANKLIN
|
|
bttarget = BS_TR_FRANKLIN
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
IF NOT IS_BROWSER_OPEN()
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: bail due to browser not visible")
|
|
EXIT
|
|
ENDIF
|
|
|
|
// If there has been keyboard text this frame then the user is using the PC keyboard to type so ignore all other
|
|
// inputs has they can conflict.
|
|
IF PASS_KEYBOARD_INPUT_TO_SCALEFORM(movin)
|
|
OR b_Creating_Email_Message_Body_from_OSK
|
|
OR b_Creating_Email_Message_Subject_from_OSK
|
|
EXIT
|
|
ENDIF
|
|
|
|
//function SET_ANALOG_STICK_INPUT(isLeftStick:Boolean, mouseX:Number, mouseY:Number):Void // ANALOG STICKS
|
|
//GET_POSITION_OF_ANALOGUE_STICKS(PAD1,iPadLeftX,iPadLeftY,iPadRightX,iPadRightY)
|
|
|
|
GET_CONTROL_VALUE_OF_ANALOGUE_STICKS_UNBOUND( iPadLeftX, iPadLeftY, iPadRightX, iPadRightY, TRUE)
|
|
|
|
// iPadLeftX = GET_CONTROL_VALUE(FRONTEND_CONTROL,INPUT_FRONTEND_AXIS_X) -128
|
|
// iPadLeftY = GET_CONTROL_VALUE(FRONTEND_CONTROL,INPUT_FRONTEND_AXIS_Y)-128
|
|
// iPadRightX = GET_CONTROL_VALUE(FRONTEND_CONTROL,INPUT_FRONTEND_RIGHT_AXIS_X)-128
|
|
// iPadRightY = GET_CONTROL_VALUE(FRONTEND_CONTROL,INPUT_FRONTEND_RIGHT_AXIS_Y)-128
|
|
|
|
//deadzone
|
|
IF ((iPadLeftX < 10) AND (iPadLeftX > -10))
|
|
iPadLeftX = 0
|
|
ENDIF
|
|
IF ((iPadLeftY < 10) AND (iPadLeftY > -10))
|
|
iPadLeftY = 0
|
|
ENDIF
|
|
IF ((iPadRightX < 10) AND (iPadRightX > -10))
|
|
iPadRightX = 0
|
|
ENDIF
|
|
IF ((iPadRightY < 10) AND (iPadRightY > -10))
|
|
iPadRightY = 0
|
|
ENDIF
|
|
|
|
// CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: Browserblah : ", iPadLeftX, " ", iPadLeftY, " ",iPadRightX, " ", iPadRightY)
|
|
|
|
FLOAT delta = 1.0 +@ g_fWebCursorSensitivity
|
|
|
|
IF NOT bTVOn // Disabling the cursor and scrolling controls whilst playing video.
|
|
|
|
// Mouse cursor control
|
|
IF IS_USING_CURSOR(FRONTEND_CONTROL)
|
|
|
|
iCursorX = GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_X )
|
|
iCursorY = GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_Y )
|
|
|
|
IF iCursorX != iCursorXLast
|
|
OR iCursorY != iCursorYLast
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_MOUSE_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(iCursorX)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(iCursorY)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
iCursorXLast = iCursorX
|
|
iCursorYLast = iCursorY
|
|
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
IF IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL)
|
|
|
|
// Scroll up and down using cursor keys, as in real world browsers.
|
|
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_DOWN)
|
|
OR IS_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_LT)
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_LT)
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_DOWN)
|
|
fMouseWheelScrollSpeed = 200
|
|
|
|
ELIF IS_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_UP)
|
|
OR IS_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_RT)
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_RT)
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_UP)
|
|
fMouseWheelScrollSpeed = -200
|
|
|
|
ELIF IS_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_CURSOR_SCROLL_DOWN)
|
|
OR IS_DISABLED_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_CURSOR_SCROLL_DOWN)
|
|
|
|
// Mouse scroll wheel down: If not already scrolling down set to 200, otherwise increase speed. (Speed decays with smoothing below)
|
|
IF fMouseWheelScrollSpeed <= 0.0
|
|
fMouseWheelScrollSpeed = 200.0
|
|
ELSE
|
|
fMouseWheelScrollSpeed += 200.0
|
|
IF fMouseWheelScrollSpeed >= 1000.0
|
|
fMouseWheelScrollSpeed = 1000.0
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ELIF IS_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_CURSOR_SCROLL_UP)
|
|
OR IS_DISABLED_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_CURSOR_SCROLL_UP)
|
|
|
|
// Mouse scroll wheel up: If not already scrolling up set to -200, otherwise increase speed. (Speed decays with smoothing below)
|
|
IF fMouseWheelScrollSpeed >= 0.0
|
|
fMouseWheelScrollSpeed = -200.0
|
|
ELSE
|
|
fMouseWheelScrollSpeed -= 200.0
|
|
IF fMouseWheelScrollSpeed <= -1000.0
|
|
fMouseWheelScrollSpeed = -1000.0
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
ELSE
|
|
|
|
// Gamepad control
|
|
IF (NOT (iPadLeftXLast = iPadLeftX)) OR (NOT (iPadLeftYLast = iPadLeftY))
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(1.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT((TO_FLOAT(iPadLeftX)) * delta)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT((TO_FLOAT(iPadLeftY)) * delta)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
iPadLeftXLast = iPadLeftX
|
|
iPadLeftYLast = iPadLeftY
|
|
ENDIF
|
|
|
|
IF (NOT (iPadRightXLast = iPadRightX)) OR (NOT (iPadRightYLast = iPadRightY))
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT((TO_FLOAT(iPadRightX)) * delta)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT((TO_FLOAT(iPadRightY)) * delta)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
iPadRightXLast = iPadRightX
|
|
iPadRightYLast = iPadRightY
|
|
fMouseWheelScrollSpeed = 0.0
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
// Mouse wheel scroll
|
|
IF fMouseWheelScrollSpeed != 0.0
|
|
|
|
// Decay scroll speed with smoothing
|
|
fMouseWheelScrollSpeed *= 0.9
|
|
IF fMouseWheelScrollSpeed < 5.0
|
|
AND fMouseWheelScrollSpeed > -5.0
|
|
fMouseWheelScrollSpeed = 0.0
|
|
ENDIF
|
|
|
|
// Apply scroll speed
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(fMouseWheelScrollSpeed)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
ENDIF
|
|
|
|
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_LB)
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_LB)
|
|
IF !bRunningOrgNameKeyboard
|
|
IF bLeftShoulder = FALSE
|
|
bLeftShoulder = TRUE
|
|
|
|
CDEBUG3LN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: App internet sending an LEFT BUMPER input event to scaleform on frame ", GET_FRAME_COUNT())
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_INPUT_EVENT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(SCALEFORM_INPUT_EVENT_LEFTSHOULDER1)))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
bLeftShoulder = FALSE
|
|
ENDIF
|
|
|
|
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_LT)
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_LT)
|
|
IF bLeftShoulder2 = FALSE
|
|
bLeftShoulder2 = TRUE
|
|
|
|
CDEBUG3LN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: App internet sending a LEFT TRIGGER input event to scaleform on frame ", GET_FRAME_COUNT())
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_INPUT_EVENT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(SCALEFORM_INPUT_EVENT_LEFTSHOULDER2)))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
ELSE
|
|
bLeftShoulder2 = FALSE
|
|
ENDIF
|
|
|
|
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_RB)
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_RB)
|
|
IF !bRunningOrgNameKeyboard
|
|
IF bRightShoulder = FALSE
|
|
bRightShoulder = TRUE
|
|
|
|
CDEBUG3LN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: App internet sending a RIGHT BUMPER input event to scaleform on frame ", GET_FRAME_COUNT())
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_INPUT_EVENT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(SCALEFORM_INPUT_EVENT_RIGHTSHOULDER1)))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
bRightShoulder = FALSE
|
|
ENDIF
|
|
|
|
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_RT)
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_RT)
|
|
IF bRightShoulder2 = FALSE
|
|
bRightShoulder2 = TRUE
|
|
|
|
CDEBUG3LN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: App internet sending a RIGHT TRIGGER input event to scaleform on frame ", GET_FRAME_COUNT())
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_INPUT_EVENT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(SCALEFORM_INPUT_EVENT_RIGHTSHOULDER2)))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
ELSE
|
|
bRightShoulder2 = FALSE
|
|
ENDIF
|
|
|
|
IF IS_CONTROL_JUST_RELEASED(FRONTEND_CONTROL,INPUT_FRONTEND_RT)
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_RT)
|
|
bRightShoulder2 = FALSE
|
|
CDEBUG3LN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: App internet sending a RIGHT TRIGGER release event to scaleform on frame ", GET_FRAME_COUNT())
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_INPUT_RELEASE_EVENT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(SCALEFORM_INPUT_EVENT_RIGHTSHOULDER2)))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
IF IS_CONTROL_JUST_RELEASED(FRONTEND_CONTROL,INPUT_FRONTEND_LT)
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_LT)
|
|
bLeftShoulder2 = FALSE
|
|
CDEBUG3LN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: App internet sending a LEFT TRIGGER release event to scaleform on frame ", GET_FRAME_COUNT())
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_INPUT_RELEASE_EVENT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(SCALEFORM_INPUT_EVENT_LEFTSHOULDER2)))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
IF NOT IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL)
|
|
|
|
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_UP)
|
|
OR IS_DISABLED_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_UP)
|
|
IF bDPadUp = FALSE
|
|
bDPadUp = TRUE
|
|
|
|
CDEBUG3LN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: App internet sending a UP input event to scaleform on frame ", GET_FRAME_COUNT())
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_INPUT_EVENT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(SCALEFORM_INPUT_EVENT_UP)))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
ELSE
|
|
bDPadUp = FALSE
|
|
ENDIF
|
|
|
|
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_DOWN)
|
|
OR IS_DISABLED_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_DOWN)
|
|
IF bDPadDown = FALSE
|
|
bDPadDown = TRUE
|
|
|
|
CDEBUG3LN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: App internet sending a DOWN input event to scaleform on frame ", GET_FRAME_COUNT())
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_INPUT_EVENT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(SCALEFORM_INPUT_EVENT_DOWN)))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
ELSE
|
|
bDPadDown = FALSE
|
|
ENDIF
|
|
|
|
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_LEFT)
|
|
OR IS_DISABLED_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_LEFT)
|
|
IF bDPadLeft = FALSE
|
|
bDPadLeft = TRUE
|
|
|
|
CDEBUG3LN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: App internet sending a LEFT input event to scaleform on frame ", GET_FRAME_COUNT())
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_INPUT_EVENT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(SCALEFORM_INPUT_EVENT_LEFT)))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
ELSE
|
|
bDPadLeft = FALSE
|
|
ENDIF
|
|
|
|
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_RIGHT)
|
|
OR IS_DISABLED_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT)
|
|
IF bDPadRight = FALSE
|
|
bDPadRight = TRUE
|
|
|
|
CDEBUG3LN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: App internet sending a RIGHT input event to scaleform on frame ", GET_FRAME_COUNT())
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_INPUT_EVENT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(SCALEFORM_INPUT_EVENT_RIGHT)))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
ELSE
|
|
bDPadRight = FALSE
|
|
ENDIF
|
|
ELSE
|
|
IF IS_CONTROL_RELEASED(FRONTEND_CONTROL, INPUT_CURSOR_ACCEPT)
|
|
OR IS_DISABLED_CONTROL_RELEASED(FRONTEND_CONTROL, INPUT_CURSOR_ACCEPT)
|
|
IF bMouseAccept = TRUE
|
|
bMouseAccept = FALSE
|
|
|
|
CDEBUG3LN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: App internet sending a INPUT_CURSOR_ACCEPT input event to scaleform on frame ", GET_FRAME_COUNT())
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_INPUT_RELEASE_EVENT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(INPUT_CURSOR_ACCEPT)))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
ELSE
|
|
bMouseAccept = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_SELECT)
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_SELECT)
|
|
IF bPadSelect = FALSE
|
|
bPadSelect = TRUE
|
|
//CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER(movin,"SET_INPUT_EVENT",TO_FLOAT(ENUM_TO_INT(SELECT)))
|
|
|
|
CDEBUG3LN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: App internet sending a SELECT input event to scaleform on frame ", GET_FRAME_COUNT())
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_INPUT_EVENT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(SCALEFORM_INPUT_EVENT_SELECT)))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
ELSE
|
|
bPadSelect = FALSE
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
BAWSAQ_COMPANIES coindex
|
|
FLOAT fBalance = TO_FLOAT(g_BankAccounts[bttarget].iBalance)
|
|
|
|
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_ACCEPT)
|
|
OR (IS_CONTROL_PRESSED(FRONTEND_CONTROL,INPUT_CURSOR_ACCEPT) AND NOT IS_WARNING_MESSAGE_ACTIVE())
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_ACCEPT)
|
|
OR (IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_CURSOR_ACCEPT) AND NOT IS_WARNING_MESSAGE_ACTIVE())
|
|
|
|
IF bPadCross = FALSE
|
|
bPadCross = TRUE
|
|
|
|
IF bTVOn
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: Website click IGNORED as video is playing back.")
|
|
EXIT
|
|
ENDIF
|
|
|
|
// Don't process the accept if the keyboard is up and you're using keyboard and mouse.
|
|
IF GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_KEYBOARD_FLAG_INDEX) !=0
|
|
IF IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL)
|
|
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_ACCEPT)
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_ACCEPT)
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: Website keyboard frontend accept IGNORED as keyboard is up")
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER(movin,"SET_INPUT_EVENT",TO_FLOAT(ENUM_TO_INT(CROSS)))
|
|
|
|
CDEBUG3LN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: App internet sending an ACCEPT input event to scaleform on frame ", GET_FRAME_COUNT())
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_INPUT_EVENT")
|
|
|
|
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_ACCEPT)
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_ACCEPT)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(SCALEFORM_INPUT_EVENT_CROSS)))
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(SCALEFORM_INPUT_EVENT_LEFT_CLICK)))
|
|
ENDIF
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
IF IS_USING_CURSOR(FRONTEND_CONTROL)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_MOUSE_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_X ))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_Y ))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
fMouseWheelScrollSpeed = 0.0
|
|
ENDIF
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "GET_CURRENT_SELECTION")
|
|
fudp = END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE()
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: Appinternet waiting for site response on getting current selection...")
|
|
WHILE NOT IS_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_READY(fudp)
|
|
BROWSER_CURSOR_LOADING(FALSE)
|
|
IF IS_USING_CURSOR(FRONTEND_CONTROL)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_MOUSE_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_X ))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_Y ))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
fMouseWheelScrollSpeed = 0.0
|
|
ENDIF
|
|
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
fudret = GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_INT(fudp)
|
|
INT i = fudret
|
|
g_bLastSelectedWebIndexInvalid = TRUE
|
|
|
|
IF i > -1
|
|
g_bLastSelectedWebIndexInvalid = FALSE
|
|
g_iLastSelectedWebIndex = i
|
|
bClickDetector = TRUE
|
|
|
|
IF EmailState = eCOMPOSING
|
|
OR EmailState = eNEUTRAL_BROWSING
|
|
OR EmailState = eSTATUS_UPDATE
|
|
b_EmailClickDetected = TRUE
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: Valid web entity index on click detected [i = ", i, "]")
|
|
// ELSE
|
|
// thats where GET_CURRENT_SELECTION == -2 will come in handy...
|
|
// that means you're on the toolbar. Then you call
|
|
// GET_CURRENT_OBJECT_TYPE and if it's 2 its the toolbar back button
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: Browser on button click GET_CURRENT_SELECTION returned: ", i)
|
|
|
|
IF g_eWebSiteIndexFeedback = WWW_DYNASTY8REALESTATE_COM AND g_iWebPageIndexFeedback = 2
|
|
|
|
IF i > -1
|
|
AND i < COUNT_OF(g_iPropertyIDStoredInWebSlot)
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: Updating last clicked property to ", i)
|
|
iLastClickedPropertyIndex = g_iPropertyIDStoredInWebSlot[i]
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
// Colour selection for the Legendary Motorsport and Southern San Andreas Super Autos!
|
|
IF bColourPickingMode
|
|
IF !g_bLastSelectedWebIndexInvalid
|
|
IF eStaticCurrentSite = WWW_LEGENDARYMOTORSPORT_NET
|
|
OR eStaticCurrentSite = WWW_ELITASTRAVEL_COM
|
|
OR eStaticCurrentSite = WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
OR eStaticCurrentSite = WWW_DOCKTEASE_COM
|
|
OR eStaticCurrentSite = WWW_PANDMCYCLES_COM
|
|
OR eStaticCurrentSite = WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
OR eStaticCurrentSite = WWW_BENNYSORIGINALMOTORWORKS_COM
|
|
OR eStaticCurrentSite = WWW_ARENAWAR_TV
|
|
SITE_BUYABLE_VEHICLE sbv = GET_VEHICLE_FROM_SITE_AND_PAGE_ID(eStaticCurrentSite, iStaticCurrentPage)
|
|
#IF NOT IS_NEXTGEN_BUILD
|
|
UNUSED_PARAMETER(sbv)
|
|
#ENDIF
|
|
IF IS_INDEX_VALID_FOR_VEH_COLOUR(eStaticCurrentSite, g_iLastSelectedWebIndex)
|
|
|
|
BOOL bBuyNow
|
|
IF sbv = BV_NG_MARSHALL
|
|
PICK_VEHICLE_COUNTRY_FROM_BUTTON_INT(g_iLastSelectedWebIndex, bBuyNow)
|
|
ELIF IS_SBV_A_VEHICLE_WITH_ARMOUR_OPTION(sbv)
|
|
PICK_VEHICLE_COLOUR_AND_ARMOUR_FROM_BUTTON_INT(eStaticCurrentSite, g_iLastSelectedWebIndex, bBuyNow)
|
|
ELIF (sbv = BV_DLC_BIG_YACHT)
|
|
// PICK_YACHT_MOD_FROM_BUTTON_INT(g_iLastSelectedWebIndex, iStaticCurrentPage, bBuyNow)
|
|
|
|
IF iStaticCurrentPage = 24
|
|
AND g_iLastSelectedWebIndex = 0
|
|
TEXT_LABEL_63 tl63YachtName = ""
|
|
IF IS_STRING_NULL_OR_EMPTY(g_sYachtDataStruct.tl63NewName)
|
|
tl63YachtName = g_sYachtDataStruct.tl63Name
|
|
CPRINTLN(DEBUG_INTERNET, "<COLPICK> start keyboard tl63Name \"", tl63YachtName, "\" (tl63NewName:null)...")
|
|
ELSE
|
|
tl63YachtName = g_sYachtDataStruct.tl63NewName
|
|
CPRINTLN(DEBUG_INTERNET, "<COLPICK> start keyboard tl63NewName \"", tl63YachtName, "\" (tl63Name:\"", g_sYachtDataStruct.tl63Name, "\")...")
|
|
ENDIF
|
|
|
|
RUN_OSK_FOR_YACHT(tl63YachtName)
|
|
|
|
g_sYachtDataStruct.tl63NewName = GET_ONSCREEN_KEYBOARD_RESULT()
|
|
|
|
TEXT_LABEL_63 tl63YachtNameFromStat = GET_MP_LONG_STRING_CHARACTER_STAT(MP_STAT_YACHT_NAME, MP_STAT_YACHT_NAME2)
|
|
// Player doesn't own yacht
|
|
IF GET_MP_INT_CHARACTER_STAT(MP_STAT_INV_YACHT_MODEL_0) = 0
|
|
g_sYachtDataStruct.iYachtNameID = 0
|
|
CPRINTLN(DEBUG_INTERNET, "[KR_DEBUG] yacht not purchased, id = ", g_sYachtDataStruct.iYachtNameID)
|
|
|
|
// Player already has this name
|
|
ELIF GET_HASH_KEY(g_sYachtDataStruct.tl63NewName) = GET_HASH_KEY(tl63YachtNameFromStat)
|
|
g_sYachtDataStruct.iYachtNameID = GET_PACKED_STAT_INT(PACKED_MP_CHAR_YACHT_NAME_ID)
|
|
CPRINTLN(DEBUG_INTERNET, "[KR_DEBUG] player already has this name, id = ", g_sYachtDataStruct.iYachtNameID)
|
|
|
|
// Stats are out of sync!
|
|
// ELIF GET_MP_INT_CHARACTER_STAT(MP_STAT_INV_YACHT_NAME_ID) != GET_PACKED_STAT_INT(PACKED_MP_CHAR_YACHT_NAME_ID)
|
|
// g_sYachtDataStruct.iYachtNameID = 0
|
|
// CPRINTLN(DEBUG_INTERNET, "[KR_DEBUG] yacht stats out of sync, id = ", g_sYachtDataStruct.iYachtNameID, ", packed=", GET_PACKED_STAT_INT(PACKED_MP_CHAR_YACHT_NAME_ID), ", profile=", GET_MP_INT_CHARACTER_STAT(MP_STAT_INV_YACHT_NAME_ID))
|
|
|
|
// Change id
|
|
ELIF GET_MP_INT_CHARACTER_STAT(MP_STAT_INV_YACHT_NAME_ID) != 1
|
|
g_sYachtDataStruct.iYachtNameID = 1
|
|
CPRINTLN(DEBUG_INTERNET, "[KR_DEBUG] changing name, id = ", g_sYachtDataStruct.iYachtNameID)
|
|
ELIF GET_MP_INT_CHARACTER_STAT(MP_STAT_INV_YACHT_NAME_ID) != 2
|
|
g_sYachtDataStruct.iYachtNameID = 2
|
|
CPRINTLN(DEBUG_INTERNET, "[KR_DEBUG] changing name, id = ", g_sYachtDataStruct.iYachtNameID)
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "[KR_DEBUG] missing case, id = ", g_sYachtDataStruct.iYachtNameID)
|
|
ENDIF
|
|
|
|
SCALEFORM_MOVIE_METHOD_ADD_YACHT_DATA(mov, 18, IS_BIG_ASS_VEHICLE_BS_SET(GET_BIGASS_VEHICLE_INDICE_BIT_FROM_ENUM(BV_DLC_BIG_YACHT)),
|
|
g_sYachtDataStruct, GET_BUYABLE_VEHICLE_PRICE_MP(eStaticCurrentSite, sbv, FALSE), "KEYBOARD")
|
|
CPRINTLN(DEBUG_INTERNET, "<COLPICK> ...end keyboard \"", g_sYachtDataStruct.tl63Name, "\" -> \"", g_sYachtDataStruct.tl63NewName, "\"")
|
|
// g_sYachtDataStruct.tl63Name = g_sYachtDataStruct.tl63NewName
|
|
|
|
KeyBoardData.eStatus = OSK_PENDING
|
|
KeyBoardData.iCurrentstatus = OSK_STAGE_SET_UP
|
|
KeyBoardData.iProfanityToken = 0
|
|
ENDIF
|
|
|
|
ELIF sbv = BV_BB_BLIMP3
|
|
PICK_VEHICLE_LIVERY_FROM_BUTTON_INT(sbv, g_iLastSelectedWebIndex, bBuyNow)
|
|
ELIF sbv = BV_BB_PBUS2
|
|
PICK_VEHICLE_LIVERY_FROM_BUTTON_INT(sbv, g_iLastSelectedWebIndex, bBuyNow)
|
|
ELSE
|
|
PICK_VEHICLE_COLOUR_FROM_BUTTON_INT(sbv, eStaticCurrentSite, g_iLastSelectedWebIndex, bBuyNow)
|
|
ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "<COLPICK> colour selected for \"", GET_LABEL_BUYABLE_VEHICLE(sbv), "\" as ", GET_STRING_FROM_SITE_BUYABLE_VEHICLE_COLOURS(sbv, g_eLastBuyableVehicleColourSelected), " [g_iLastSelectedWebIndex:", g_iLastSelectedWebIndex, ", armour:", GET_STRING_FROM_BOOL(g_bLastBuyableVehicleArmourSelected), ", bBuyNow:", GET_STRING_FROM_BOOL(bBuyNow), "].")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "<COLPICK> colour selected for \"", GET_LABEL_BUYABLE_VEHICLE(sbv), "\" not a valid ID [\"", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite), "\", g_iLastSelectedWebIndex:", g_iLastSelectedWebIndex, "].")
|
|
ENDIF
|
|
ELIF eStaticCurrentSite = WWW_DYNASTY8REALESTATE_COM
|
|
IF (g_iLastSelectedWebIndex = 11) iCustomAptVariant = 1 bCustomInteriorSelected = TRUE
|
|
ELIF (g_iLastSelectedWebIndex = 12) iCustomAptVariant = 2 bCustomInteriorSelected = TRUE
|
|
ELIF (g_iLastSelectedWebIndex = 13) iCustomAptVariant = 3 bCustomInteriorSelected = TRUE
|
|
ELIF (g_iLastSelectedWebIndex = 14) iCustomAptVariant = 4 bCustomInteriorSelected = TRUE
|
|
ELIF (g_iLastSelectedWebIndex = 15) iCustomAptVariant = 5 bCustomInteriorSelected = TRUE
|
|
ELIF (g_iLastSelectedWebIndex = 16) iCustomAptVariant = 6 bCustomInteriorSelected = TRUE
|
|
ELIF (g_iLastSelectedWebIndex = 17) iCustomAptVariant = 7 bCustomInteriorSelected = TRUE
|
|
ELIF (g_iLastSelectedWebIndex = 18) iCustomAptVariant = 8 bCustomInteriorSelected = TRUE
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL_15 tlLastClickedPropertyName = GET_PROPERTY_NAME(iLastClickedPropertyIndex)
|
|
#ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "<COLPICK> colour selected for ", tlLastClickedPropertyName,
|
|
" - ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite),
|
|
", g_iLastSelectedWebIndex:", g_iLastSelectedWebIndex,
|
|
", iCustomAptVariant:", iCustomAptVariant)
|
|
ELIF eStaticCurrentSite = WWW_DYNASTY8EXECUTIVEREALTY_COM
|
|
IF iStaticCurrentPage = 5 //#2786374
|
|
AND g_iLastSelectedWebIndex = 7 //#2786374
|
|
bRunningOrgNameKeyboard = TRUE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BROWSER_CURSOR_LOADING(FALSE)
|
|
ENDIF
|
|
ELIF eStaticCurrentSite = FORECLOSURES_MAZE_D_BANK_COM
|
|
IF iStaticCurrentPage = 5 //#2786374
|
|
AND g_iLastSelectedWebIndex = 7 //#2786374
|
|
bRunningOrgNameKeyboard = TRUE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BROWSER_CURSOR_LOADING(FALSE)
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "<COLPICK> colour selection ignored for web index ", GET_WEBSITE_FROM_INDEX(eStaticLastSite), ".")
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "<COLPICK> colour picking mode turned off.")
|
|
ENDIF
|
|
|
|
BOOL BSinput = FALSE
|
|
|
|
//g_iWebPageIndexFeedback = pageID
|
|
//g_eWebSiteIndexFeedback = siteID
|
|
|
|
SWITCH g_eWebSiteIndexFeedback
|
|
|
|
CASE WWW_BAWSAQ_COM
|
|
BSinput = TRUE
|
|
BREAK
|
|
|
|
CASE WWW_EPSILONPROGRAM_COM
|
|
HANDLE_EPSILON_SELECT(i)
|
|
MARK_ROBE_PAGE_VISITED()
|
|
BREAK
|
|
|
|
CASE WWW_LCN_D_EXCHANGE_COM
|
|
BSinput = TRUE
|
|
BREAK
|
|
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
CASE WWW_ELITASTRAVEL_COM
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
CASE WWW_DOCKTEASE_COM
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
CASE WWW_BENNYSORIGINALMOTORWORKS_COM
|
|
CASE WWW_ARENAWAR_TV
|
|
|
|
IF g_iWebPageIndexFeedback = 15
|
|
IF g_iLastSelectedWebIndex = 2 // Confirm yes button
|
|
IF NOT confCheck
|
|
AND g_eWebSiteIndexFeedback = WWW_BENNYSORIGINALMOTORWORKS_COM
|
|
//
|
|
CWARNINGLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: bypass!! g_eWebSiteIndexFeedback:", GET_WEBSITE_FROM_INDEX(g_eWebSiteIndexFeedback), ", g_iWebPageIndexFeedback:", g_iWebPageIndexFeedback, ", g_iLastSelectedWebIndex:", g_iLastSelectedWebIndex, ", confCheck:", GET_STRING_FROM_BOOL(confCheck))
|
|
ELIF NOT confCheck
|
|
AND g_eWebSiteIndexFeedback = WWW_ARENAWAR_TV
|
|
//
|
|
CWARNINGLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: bypass!! g_eWebSiteIndexFeedback:", GET_WEBSITE_FROM_INDEX(g_eWebSiteIndexFeedback), ", g_iWebPageIndexFeedback:", g_iWebPageIndexFeedback, ", g_iLastSelectedWebIndex:", g_iLastSelectedWebIndex, ", confCheck:", GET_STRING_FROM_BOOL(confCheck))
|
|
ELSE
|
|
INT iAltVersion
|
|
iAltVersion = -1
|
|
IF IS_SBV_AN_ALTERNATE_VEHICLE(confSbv, g_eWebSiteIndexFeedback, g_eLastBuyableVehicleColourSelected)
|
|
iAltVersion = 1
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: g_eWebSiteIndexFeedback:", GET_WEBSITE_FROM_INDEX(g_eWebSiteIndexFeedback), ", g_iWebPageIndexFeedback:", g_iWebPageIndexFeedback, ", g_iLastSelectedWebIndex:", g_iLastSelectedWebIndex, ", confCheck:", GET_STRING_FROM_BOOL(confCheck))
|
|
DO_MP_VEHICLE_BUY(g_eWebSiteIndexFeedback, iAltVersion)
|
|
ENDIF
|
|
ELIF g_iLastSelectedWebIndex = 3 // Confirm no button
|
|
//DO_VEHICLE_FAIL_PAGE(g_eWebSiteIndexFeedback,VSFR_CANCELED)
|
|
confCheck = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
IF BSinput
|
|
FLOAT fCurrentLoggedPrice
|
|
|
|
SWITCH g_iWebPageIndexFeedback
|
|
CASE 6 // buy
|
|
IF g_iLastSelectedWebIndex = 21 AND (i != -1)//plus
|
|
g_iSharesToBuySell++
|
|
g_bForceBrowserRefresh = TRUE
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: Increased shares selected on buy page : this increments g_iSharesToBuySell to ", g_iSharesToBuySell)
|
|
|
|
bSelectionHoldActionDetector = TRUE
|
|
bSelectionHoldActionPolarity = TRUE
|
|
iSelectionHoldActionRateTracker = 0
|
|
ELSE
|
|
IF g_iLastSelectedWebIndex = 22 AND (i != -1)//minus
|
|
g_iSharesToBuySell--
|
|
g_bForceBrowserRefresh = TRUE
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: Reduce shares selected on buy page : this decrements g_iSharesToBuySell to ", g_iSharesToBuySell)
|
|
|
|
bSelectionHoldActionDetector = TRUE
|
|
bSelectionHoldActionPolarity = FALSE
|
|
iSelectionHoldActionRateTracker = 0
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 7 // sell
|
|
IF g_iLastSelectedWebIndex = 21 AND (i != -1)//plus
|
|
g_iSharesToBuySell++
|
|
g_bForceBrowserRefresh = TRUE
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: Increased shares selected on sell page : this increments g_iSharesToBuySell to ", g_iSharesToBuySell)
|
|
|
|
bSelectionHoldActionDetector = TRUE
|
|
bSelectionHoldActionPolarity = TRUE
|
|
iSelectionHoldActionRateTracker = 0
|
|
ELSE
|
|
IF g_iLastSelectedWebIndex = 22 AND (i != -1)//minus
|
|
g_iSharesToBuySell--
|
|
g_bForceBrowserRefresh = TRUE
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: Reduce shares selected on sell page : this decrements g_iSharesToBuySell to ", g_iSharesToBuySell)
|
|
|
|
bSelectionHoldActionDetector = TRUE
|
|
bSelectionHoldActionPolarity = FALSE
|
|
iSelectionHoldActionRateTracker= 0
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF g_iLastSelectedWebIndex = 30
|
|
|
|
// Sell all of this attempt
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: Attempted to fire sell all.")
|
|
|
|
CDEBUG1LN(DEBUG_STOCKS, "Calculating buy/sell value for shares on website...")
|
|
|
|
g_iSharesToBuySell = GET_OWNED_TOTAL_FROM_PORTFOLIO(ENUM_TO_INT(bttarget),g_iStockSelectedPortfolioIndex)
|
|
CDEBUG1LN(DEBUG_STOCKS, "The player owns ", g_iSharesToBuySell, " shares of company ", ENUM_TO_INT(bttarget), ".")
|
|
|
|
IF g_iSharesToBuySell > 0
|
|
coindex = GET_COMPANY_INDEX_FROM_PORTFOLIO(ENUM_TO_INT(bttarget),g_iStockSelectedPortfolioIndex)
|
|
|
|
fCurrentLoggedPrice = GET_CURRENT_STOCK_PRICE(ENUM_TO_INT(coindex))
|
|
|
|
g_fShareTotal = g_iSharesToBuySell*fCurrentLoggedPrice
|
|
CDEBUG1LN(DEBUG_STOCKS, "Total value of shares is $", g_fShareTotal, ".")
|
|
|
|
// Check cap the share total if needed.
|
|
IF (fBalance + g_fShareTotal) > 2147483647.0
|
|
g_iSharesToBuySell = FLOOR((2147483647.0-fBalance)/fCurrentLoggedPrice)
|
|
g_fShareTotal = g_iSharesToBuySell*fCurrentLoggedPrice
|
|
CDEBUG1LN(DEBUG_STOCKS, "Capping shares sold to stop bank account overruning. Shares to sell now ", g_iSharesToBuySell, " for total value of $", g_fShareTotal, ".")
|
|
ENDIF
|
|
|
|
g_fOriginalProfit = TO_FLOAT(GET_OWNED_TOTAL_FROM_PORTFOLIO(ENUM_TO_INT(bttarget),g_iStockSelectedPortfolioIndex)) // change this value to owned shares, and string to match
|
|
g_fCurrentProfit = GET_INVESTED_TOTAL_FROM_PORTFOLIO(ENUM_TO_INT(bttarget),g_iStockSelectedPortfolioIndex)
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF bSelectionHoldActionDetector
|
|
BROWSER_SET_CURSOR_STATE("ARROW")
|
|
ENDIF
|
|
|
|
bSelectionHoldActionDetector = FALSE
|
|
|
|
bPadCross = FALSE
|
|
ENDIF
|
|
|
|
// Fix for backspace on PC keyboard (frontend cancel) quitting the virtual keyboard
|
|
// instead of deleting characters. Fixes B* 1860158
|
|
// Player can still use right mouse button to go back.
|
|
//BOOL bDisableBackButtonForPCKeyboard = FALSE
|
|
IF GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_KEYBOARD_FLAG_INDEX) != 0
|
|
IF IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_CANCEL)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_CANCEL)
|
|
OR (IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_CURSOR_CANCEL) AND NOT IS_WARNING_MESSAGE_ACTIVE())
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_CANCEL)
|
|
OR (IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_CURSOR_CANCEL) AND NOT IS_WARNING_MESSAGE_ACTIVE())
|
|
|
|
IF bPadCircle = FALSE
|
|
bPadCircle = TRUE
|
|
|
|
IF bRunningOrgNameKeyboard
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: Backstep overriden KeyBoardData.iCurrentstatus = ", KeyBoardData.iCurrentstatus, " store trigger ", g_bBrowserGoToStoreTrigger)
|
|
ELIF g_iPendingBrowserTimer != -1 OR ChildInitStage != 3
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: Backstep overriden t = ",g_iPendingBrowserTimer, " stage = ", ChildInitStage, " store trigger ", g_bBrowserGoToStoreTrigger)
|
|
//bflag = 1//deny backbutton when a change is pending
|
|
ELSE
|
|
INT bflag = GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_BACKBUTTON_FLAG_INDEX)
|
|
CPRINTLN(DEBUG_INTERNET, "PASS_INPUTS_TO_BROWSER: GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_BACKBUTTON_FLAG_INDEX) returned : " , bflag)
|
|
|
|
IF bFlag = 1
|
|
IF NOT BACK_BUTTON_INTERCEPT(g_eWebSiteIndexFeedback, movin)
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_INPUT_EVENT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(SCALEFORM_INPUT_EVENT_TRIANGLE)))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> Executing browser default back step...Resetting emailstate to dormant also!")
|
|
|
|
IF EmailState > eDORMANT //Critical!
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: Was using Eyefind Inbox.")
|
|
|
|
FORCE_CLOSE_BROWSER()
|
|
|
|
ENDIF
|
|
|
|
|
|
IF g_BrowserStartState != SBSS_CashMachineFinance
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "GO_BACK") //GO_FORWARD
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
PLAY_SOUND_FRONTEND(-1, "CLICK_BACK","WEB_NAVIGATION_SOUNDS_PHONE")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: g_BrowserStartState = SBSS_CashMachineFinance")
|
|
FORCE_CLOSE_BROWSER()
|
|
ENDIF
|
|
|
|
IF g_eLastBuyableVehicleColourSelected != BCV_NO_COLOUR
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> updating last picked vehicle colour from ", g_eLastBuyableVehicleColourSelected, " to BCV_NO_COLOUR.")
|
|
g_eLastBuyableVehicleColourSelected = BCV_NO_COLOUR
|
|
ENDIF
|
|
IF g_bLastBuyableVehicleArmourSelected != FALSE
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> updating last picked vehicle armour from ", GET_STRING_FROM_BOOL(g_bLastBuyableVehicleArmourSelected), " to FALSE.")
|
|
g_bLastBuyableVehicleArmourSelected = FALSE
|
|
ENDIF
|
|
|
|
IF !(GET_GAME_TIMER() > g_iTimeLastBrowserRefresh + WEB_BROWSER_PAGE_REFRESH_RATE)
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> set the time last browser refresh to now.")
|
|
g_iTimeLastBrowserRefresh = GET_GAME_TIMER()
|
|
ENDIF
|
|
|
|
// IF NOT IS_STRING_NULL_OR_EMPTY(g_sBrowserHelpMessage.tl15Tag)
|
|
// AND IS_THIS_BROWSER_HELP_MESSAGE_BEING_DISPLAYED(g_sBrowserHelpMessage)
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> - remove ", g_sBrowserHelpMessage.tl15Tag, ", cancel pressed")
|
|
|
|
CLEAR_HELP()
|
|
CLEAR_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT()
|
|
// ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: Backbutton press with SCALEFORM_BACKBUTTON_FLAG_INDEX set!")
|
|
FORCE_CLOSE_BROWSER()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// Shut down TV playback
|
|
IF bTVOn
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: turn off TV")
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SUPRESS_HISTORY")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
SET_TV_CHANNEL(TVCHANNELTYPE_CHANNEL_NONE)
|
|
STOP_AUDIO_SCENE("INTERNET_BROWSER_VIDEO_SCENE")
|
|
bTVOn = FALSE
|
|
iTVOnTimeoutFrameCount = -1
|
|
ENDIF
|
|
|
|
ELSE
|
|
bPadCircle = FALSE
|
|
ENDIF
|
|
|
|
IF NOT IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL)
|
|
AND (IS_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_Y) OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_Y))
|
|
|
|
IF bPadTriangle = FALSE AND bTexitSeenUp
|
|
bPadTriangle = TRUE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_INPUT_EVENT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(SCALEFORM_INPUT_EVENT_CIRCLE)))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
IF g_BrowserStartState != SBSS_CashMachineFinance
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: g_BrowserStartState = SBSS_CashMachineFinance")
|
|
FORCE_CLOSE_BROWSER()
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
bPadTriangle = FALSE
|
|
bTexitSeenUp = TRUE
|
|
ENDIF
|
|
|
|
INT iGLOBAL_ACTIONSCRIPT_FLAG_BROWSER_CLOSE = GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_BROWSER_CLOSE)
|
|
IF iGLOBAL_ACTIONSCRIPT_FLAG_BROWSER_CLOSE != 0
|
|
IF HAS_SCALEFORM_MOVIE_LOADED(movin)
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_BROWSER_CLOSE) = ", iGLOBAL_ACTIONSCRIPT_FLAG_BROWSER_CLOSE)
|
|
FORCE_CLOSE_BROWSER()
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> don't force close browset, scaleform movie not loaded: GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_BROWSER_CLOSE) = ", iGLOBAL_ACTIONSCRIPT_FLAG_BROWSER_CLOSE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT bRunningOrgNameKeyboard
|
|
BROWSER_CURSOR_LOADING(TRUE)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// loads the text slot required for the eyefind news stories to display
|
|
PROC LOAD_EYEFIND_TEXT_SLOT()
|
|
|
|
// We must make sure the internet's text slot is loaded before progressing
|
|
IF ARE_STRINGS_EQUAL(tl23RequestedInternetTextBlock, "")
|
|
CLEAR_ADDITIONAL_TEXT(SHOP_TEXT_SLOT, TRUE)
|
|
tl23RequestedInternetTextBlock = GET_EYEFIND_REQUIRED_TEXT_BLOCK() // set initial value shared by EyeFind News and LifeInvader
|
|
//RENDER_BROWSER()
|
|
//WAIT(0) // need frame as HAS_ADDITIONAL_TEXT_LOADED will return true even if CLEAR_ADDITIONAL_TEXT was called
|
|
CPRINTLN(DEBUG_INTERNET, " LOAD_EYEFIND_TEXT_SLOT() : set initial tl23RequestedInternetTextBlock = ", tl23RequestedInternetTextBlock)
|
|
ELIF NOT ARE_STRINGS_EQUAL(tl23RequestedInternetTextBlock, GET_EYEFIND_REQUIRED_TEXT_BLOCK())
|
|
CLEAR_ADDITIONAL_TEXT(SHOP_TEXT_SLOT, TRUE)
|
|
tl23RequestedInternetTextBlock = GET_EYEFIND_REQUIRED_TEXT_BLOCK() // set the text block to be requested for Eyefind News
|
|
//RENDER_BROWSER()
|
|
//WAIT(0) // need frame as HAS_ADDITIONAL_TEXT_LOADED will return true even if CLEAR_ADDITIONAL_TEXT was called
|
|
CPRINTLN(DEBUG_INTERNET, " LOAD_EYEFIND_TEXT_SLOT() : updated tl23RequestedInternetTextBlock = ", tl23RequestedInternetTextBlock)
|
|
ENDIF
|
|
// using bIsInternetTextSupported as return value for REQUEST_ADDITIONAL_TEXT commented out for now incase it's needed again at a later date
|
|
//IF REQUEST_ADDITIONAL_TEXT(tl23RequestedInternetTextBlock, SHOP_TEXT_SLOT) // ensure the current text block has been requested before checking HAS_ADDITIONAL_TEXT_LOADED
|
|
REQUEST_ADDITIONAL_TEXT(tl23RequestedInternetTextBlock, SHOP_TEXT_SLOT) // ensure the current text block has been requested before checking HAS_ADDITIONAL_TEXT_LOADED
|
|
bIsInternetTextSupported = TRUE
|
|
CPRINTLN(DEBUG_INTERNET, " LOAD_EYEFIND_TEXT_SLOT() : requested tl23RequestedInternetTextBlock = ", tl23RequestedInternetTextBlock)
|
|
IF DOES_TEXT_BLOCK_EXIST(tl23RequestedInternetTextBlock)
|
|
WHILE NOT HAS_ADDITIONAL_TEXT_LOADED(SHOP_TEXT_SLOT)
|
|
RENDER_BROWSER()
|
|
CPRINTLN(DEBUG_INTERNET, " LOAD_EYEFIND_TEXT_SLOT() : Waiting for eyefind text slot to load for tl23RequestedInternetTextBlock = ", tl23RequestedInternetTextBlock)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
CPRINTLN(DEBUG_INTERNET, " LOAD_EYEFIND_TEXT_SLOT() : eyefind text slot loaded with tl23RequestedInternetTextBlock = ", tl23RequestedInternetTextBlock)
|
|
ENDIF
|
|
//ELSE
|
|
// bIsInternetTextSupported = FALSE
|
|
// CPRINTLN(DEBUG_INTERNET, " LOAD_EYEFIND_TEXT_SLOT() : eyefind text slot not loaded bIsInternetTextSupported failed !")
|
|
//ENDIF
|
|
ENDPROC
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
BOOL bDebugRaiseKey = FALSE
|
|
BOOL bDebugCrashKey = FALSE
|
|
#ENDIF
|
|
|
|
PROC STOCK_SYSTEM_CHECK(BOOL bDoStockFunctionality)
|
|
|
|
IF bDoStockFunctionality
|
|
|
|
IF !g_bInMultiplayer
|
|
IF (NOT g_savedGlobals.sFinanceData.bFirstTimeTutorialSeen)
|
|
AND (NOT g_bBAWSAQWebTutorialInProgress)
|
|
CPRINTLN(DEBUG_INTERNET, "Stock system tutorial activated")
|
|
//g_bBAWSAQWebTutorialInProgress = TRUE
|
|
//g_bBrowserUserMode = FALSE//take player control
|
|
//g_savedGlobals.sFinanceData.bFirstTimeTutorialSeen = TRUE
|
|
IF g_savedGlobals.sFinanceData.bBrowserTutorialSeen
|
|
IF NOT g_savedGlobals.sFinanceData.bFirstTimeTutorialSeen
|
|
ADD_HELP_TO_FLOW_QUEUE("BS_TUT_1", FHP_HIGH, 0, 1000)
|
|
g_savedGlobals.sFinanceData.bFirstTimeTutorialSeen = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//check for buy or sell situation
|
|
IF iPageIDCheck = 8//transaction confirmation page
|
|
//transaction type
|
|
IF iPageIDLast = 6 // buy
|
|
CPRINTLN(DEBUG_INTERNET, "Buy primed")
|
|
g_bBuySell = TRUE
|
|
ENDIF
|
|
IF iPageIDLast = 7 //sell
|
|
CPRINTLN(DEBUG_INTERNET, "Sell primed")
|
|
g_bBuySell = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iPageIDCheck = 9//Transaction complete page
|
|
|
|
IF iPageIDLast = 8 //coming from the confirm page
|
|
|
|
//carry out the transaction
|
|
IF g_bBuySell
|
|
CPRINTLN(DEBUG_INTERNET, "Attempting buy stock: index ",g_iStockSelectionFocus," number ",g_iSharesToBuySell)
|
|
|
|
BAWSAQ_TRADERS bttarget
|
|
enumBankAccountName batarget
|
|
|
|
SWITCH GET_CURRENT_PLAYER_PED_ENUM()
|
|
CASE CHAR_MICHAEL
|
|
bttarget = BS_TR_MIKE
|
|
batarget = BANK_ACCOUNT_MICHAEL
|
|
BREAK
|
|
CASE CHAR_TREVOR
|
|
bttarget = BS_TR_TREVOR
|
|
batarget = BANK_ACCOUNT_TREVOR
|
|
BREAK
|
|
CASE CHAR_FRANKLIN
|
|
bttarget = BS_TR_FRANKLIN
|
|
batarget = BANK_ACCOUNT_FRANKLIN
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
//find the correct selection focus from market mode
|
|
/*
|
|
INT targetselection = g_iStockSelectionFocus
|
|
INT selectedindex = 0
|
|
INT i = 0
|
|
CPRINTLN(DEBUG_INTERNET, "Stock selection is: ")
|
|
PRINTINT(g_iStockSelectionFocus)
|
|
PRINTNL()
|
|
WHILE (NOT (i = targetselection))
|
|
//FIND CORRECT SELECTED INDEX
|
|
IF g_bOnlineMarket = g_BS_Listings[i].bOnlineStock
|
|
//only count entries that have the same online status
|
|
++i
|
|
ENDIF
|
|
++selectedindex
|
|
ENDWHILE
|
|
*/
|
|
CPRINTLN(DEBUG_INTERNET, "Stock selection is: ", g_iStockSelectionFocus)
|
|
IF g_iSharesToBuySell >= 0
|
|
BUY_STOCKS(batarget, bttarget,INT_TO_ENUM(BAWSAQ_COMPANIES, g_iStockSelectionFocus), g_iSharesToBuySell, g_fShareTotal)
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "Cannot buy zero shares! Button should have been greyed out")
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "Attempting sell stock: index ", g_iStockSelectionFocus)
|
|
BAWSAQ_TRADERS bttarget
|
|
enumBankAccountName batarget
|
|
|
|
SWITCH GET_CURRENT_PLAYER_PED_ENUM()
|
|
CASE CHAR_MICHAEL
|
|
bttarget = BS_TR_MIKE
|
|
batarget = BANK_ACCOUNT_MICHAEL
|
|
BREAK
|
|
CASE CHAR_TREVOR
|
|
bttarget = BS_TR_TREVOR
|
|
batarget = BANK_ACCOUNT_TREVOR
|
|
BREAK
|
|
CASE CHAR_FRANKLIN
|
|
bttarget = BS_TR_FRANKLIN
|
|
batarget = BANK_ACCOUNT_FRANKLIN
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
IF g_iSharesToBuySell > 0
|
|
SELL_STOCKS(batarget, bttarget, INT_TO_ENUM(BAWSAQ_COMPANIES, g_iStockSelectionFocus), g_iSharesToBuySell, g_fShareTotal)
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "Cannot sell zero shares! Button should have been greyed out.")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ELIF iPageIDLast = 16 // Coming from the sell all page, oh snap.
|
|
|
|
g_iStockSelectionFocus = -2
|
|
|
|
// Purge all owned stocks.
|
|
BAWSAQ_TRADERS bttarget
|
|
enumBankAccountName batarget
|
|
|
|
SWITCH GET_CURRENT_PLAYER_PED_ENUM()
|
|
CASE CHAR_MICHAEL
|
|
bttarget = BS_TR_MIKE
|
|
batarget = BANK_ACCOUNT_MICHAEL
|
|
BREAK
|
|
CASE CHAR_TREVOR
|
|
bttarget = BS_TR_TREVOR
|
|
batarget = BANK_ACCOUNT_TREVOR
|
|
BREAK
|
|
CASE CHAR_FRANKLIN
|
|
bttarget = BS_TR_FRANKLIN
|
|
batarget = BANK_ACCOUNT_FRANKLIN
|
|
BREAK
|
|
ENDSWITCH
|
|
SELL_ALL_STOCKS(batarget, bttarget)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// Reset of selection data
|
|
IF iPageIDLast = 4 //coming from 44
|
|
// is currently on buy amount selection
|
|
IF iPageIDCheck = 6 OR iPageIDCheck = 7
|
|
g_iSharesToBuySell = 0
|
|
CPRINTLN(DEBUG_INTERNET, "g_iSharesToBuySell zeroed by appInternet")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iPageIDCheck = 4 // entering 44
|
|
IF iPageIDLast = 3 OR iPageIDLast = 2 //coming from the listing pages, so a new listing will need to be set
|
|
g_iStockSelectionFocus = -1//unset the selection
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
//----------------------
|
|
// Epsilon Presentation
|
|
//----------------------
|
|
BOOL epsConvLoaded
|
|
TEXT_LABEL epsBlock
|
|
|
|
PROC START_EPSILON_PRESENTATION()
|
|
CPRINTLN(DEBUG_INTERNET, "EPSILON: Attempting to start presentation!")
|
|
ADD_PED_FOR_DIALOGUE(spfc,0,NULL,"CRIS")
|
|
epsConvLoaded = FALSE
|
|
epsBlock = "EPSW_VOICE1"
|
|
ENDPROC
|
|
|
|
PROC UPDATE_EPSILON_PRESENTATION()
|
|
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
AND g_iEpsilonTutorialStage != -1
|
|
|
|
IF NOT epsConvLoaded
|
|
IF CREATE_CONVERSATION_USING_V_CONTENT_IN_DLC(spfc, "EPSWAUD", epsBlock,
|
|
CONV_PRIORITY_VERY_HIGH, DISPLAY_SUBTITLES, DO_NOT_ADD_TO_BRIEF_SCREEN)
|
|
CPRINTLN(DEBUG_INTERNET, "EPSILON: Created conversation for stage ", g_iEpsilonTutorialStage)
|
|
epsConvLoaded = TRUE
|
|
ENDIF
|
|
ELSE
|
|
epsConvLoaded = FALSE
|
|
|
|
++g_iEpsilonTutorialStage
|
|
SWITCH g_iEpsilonTutorialStage
|
|
|
|
CASE 2
|
|
epsBlock = "EPSW_VOICE2"
|
|
BREAK
|
|
|
|
CASE 3
|
|
epsBlock = "EPSW_VOICE3"
|
|
BREAK
|
|
|
|
CASE 4
|
|
epsBlock = "EPSW_VOICE4"
|
|
BREAK
|
|
|
|
CASE 5
|
|
epsBlock = "EPSW_VOICE5"
|
|
BREAK
|
|
|
|
CASE 6
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "PROXY_FUNCTION")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(6)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(g_iEpsilonTutorialStage)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
g_iEpsilonTutorialStage = -1
|
|
BREAK
|
|
|
|
DEFAULT
|
|
g_iEpsilonTutorialStage = -1
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
|
|
|
|
PROC DO_WEBSITE_ANALYTICS_HASH_SET()
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_WEBSITE_ANALYTICS_HASH_SET: triggered")
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "GET_CURRENT_WEBSITE")
|
|
SCALEFORM_RETURN_INDEX retindex = END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE()
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Appinternet waiting for site response to PLAYSTATS_WEBSITE_VISITED call...")
|
|
WHILE NOT IS_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_READY(retindex)
|
|
BROWSER_CURSOR_LOADING(FALSE)
|
|
IF IS_USING_CURSOR(FRONTEND_CONTROL)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_MOUSE_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_X ))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_Y ))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
fMouseWheelScrollSpeed = 0.0
|
|
ENDIF
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
STRING strret = GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_STRING(retindex)
|
|
INT key = GET_HASH_KEY(strret)
|
|
PLAYSTATS_WEBSITE_VISITED(key, iCurrentSiteTimer)
|
|
CPRINTLN(DEBUG_INTERNET, "Analytics website set : ", strret)
|
|
|
|
lastSiteURL = strret //used internally for 1621761
|
|
|
|
IF ARE_STRINGS_EQUAL(strret, "WWW_MYDIVINEWITHIN_COM")
|
|
AND NOT IS_BIT_SET(g_savedGlobals.sRandomChars.g_iWebsiteQueryBit, ENUM_TO_INT(RC_WEB_VISITED_COM_SITE))
|
|
SET_BIT(g_savedGlobals.sRandomChars.g_iWebsiteQueryBit, ENUM_TO_INT(RC_WEB_VISITED_COM_SITE))
|
|
WHILE NOT REGISTER_EMAIL_FROM_CHARACTER_TO_PLAYER(EMAIL_COTM_ADRIAN_1, CT_AMBIENT, BIT_FRANKLIN, CHAR_BLANK_ENTRY, 1000, 5000, DEFAULT, CID_BLANK)
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: Sending initial email to Franklin...")
|
|
WAIT(0)
|
|
ENDWHILE
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: Sent initial email to Franklin")
|
|
ELIF ARE_STRINGS_EQUAL(strret, "WWW_THECHILDRENOFTHEMOUNTAIN_COM")
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(g_iChildrenOfTheMountainStatus)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "UPDATE_TEXT")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: Set SET_DATA_SLOT to ", g_iChildrenOfTheMountainStatus)
|
|
ENDIF
|
|
|
|
g_sLastLastSiteHash = g_sLastSiteHash
|
|
g_sLastSiteHash = GET_HASH_KEY(strret)
|
|
ENDPROC
|
|
|
|
|
|
PROC DISABLE_VIDEO_PLAYBACK()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "DISABLE_VIDEO")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"UPDATE_TEXT")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
bVideoDisabled = TRUE
|
|
ENDPROC
|
|
|
|
PROC SETUP_VIDEO_PLAYBACK( STRING sPlaylist )
|
|
|
|
IF bVideoDisabled = TRUE
|
|
EXIT
|
|
ENDIF
|
|
|
|
SET_TV_CHANNEL_PLAYLIST(TVCHANNELTYPE_CHANNEL_1, sPlaylist, TRUE)
|
|
SET_TV_AUDIO_FRONTEND(TRUE)
|
|
SET_TV_VOLUME(-5.0)
|
|
ENABLE_MOVIE_SUBTITLES(TRUE)
|
|
SET_TV_CHANNEL(TVCHANNELTYPE_CHANNEL_1)
|
|
|
|
SET_TEXT_RENDER_ID(GET_DEFAULT_SCRIPT_RENDERTARGET_RENDER_ID())
|
|
SET_SCRIPT_GFX_DRAW_ORDER(GFX_ORDER_AFTER_HUD)
|
|
SET_SCRIPT_GFX_DRAW_BEHIND_PAUSEMENU(TRUE)
|
|
DRAW_TV_CHANNEL(0.5,0.5,0.5,0.5,0.0,255,255,255,255)
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SUPRESS_HISTORY")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
START_AUDIO_SCENE("INTERNET_BROWSER_VIDEO_SCENE")
|
|
|
|
iPadLeftX = 0
|
|
iPadLeftY = 0
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(1.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(iPadLeftX))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(iPadLeftY))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
bTVOn = TRUE
|
|
|
|
ENDPROC
|
|
|
|
|
|
PROC DO_STATIC_SITE_CHECKS()
|
|
INT iPage = GET_CURRENT_WEBPAGE_ID() // END_SCALEFORM_MOVIE_METHOD_INT()
|
|
WEBSITE_INDEX_ENUM eSite = INT_TO_ENUM(WEBSITE_INDEX_ENUM, GET_CURRENT_WEBSITE_ID()) // fudret
|
|
|
|
IF (eStaticCurrentSite = WWW_DYNASTY8REALESTATE_COM)
|
|
AND (iStaticCurrentPage = 1 OR iStaticCurrentPage = 2 OR bPopulatePropertySitePinMap)
|
|
AND g_bInMultiplayer
|
|
|
|
IF g_bPropertyRefreshTrigger//g_bInMultiplayer AND
|
|
//this is the property site map with pins
|
|
POPULATE_MP_PROPERTY_SITE_PIN_MAP(mov)
|
|
g_bPropertyRefreshTrigger = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF (eStaticCurrentSite = WWW_DYNASTY8EXECUTIVEREALTY_COM)
|
|
AND (iStaticCurrentPage = 1 OR iStaticCurrentPage = 2 OR bPopulatePropertySitePinMap)
|
|
AND g_bInMultiplayer
|
|
|
|
IF g_bPropertyRefreshTrigger
|
|
POPULATE_MP_EXEC_PROPERTY_SITE_PIN_MAP(mov)
|
|
g_bPropertyRefreshTrigger = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF (eStaticCurrentSite = WWW_DYNASTY8EXECUTIVEREALTY_COM)
|
|
AND iStaticCurrentPage = 2
|
|
AND g_bInMultiplayer
|
|
PRINT_HELP_FOR_WEBSITE_DYNASTY_8_EXECUTIVE()
|
|
ENDIF
|
|
|
|
IF (eStaticCurrentSite = FORECLOSURES_MAZE_D_BANK_COM)
|
|
AND (iStaticCurrentPage = 1 OR iStaticCurrentPage = 2 OR bPopulatePropertySitePinMap)
|
|
AND g_bInMultiplayer
|
|
|
|
IF g_bPropertyRefreshTrigger
|
|
POPULATE_MP_BIKER_PROPERTY_SITE_PIN_MAP(mov)
|
|
g_bPropertyRefreshTrigger = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF (eStaticCurrentSite = WWW_ARENAWAR_TV)
|
|
AND (iStaticCurrentPage = 1 OR iStaticCurrentPage = 2 OR bPopulatePropertySitePinMap)
|
|
AND g_bInMultiplayer
|
|
|
|
IF g_bPropertyRefreshTrigger
|
|
POPULATE_MP_ARENA_PROPERTY_SITE_PIN_MAP(mov)
|
|
g_bPropertyRefreshTrigger = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF (eStaticCurrentSite = WWW_THEDIAMONDCASINOANDRESORT_COM)
|
|
AND (iStaticCurrentPage = 1 OR iStaticCurrentPage = 2 OR iStaticCurrentPage = 8 OR iStaticCurrentPage = 9 OR bPopulatePropertySitePinMap)
|
|
AND g_bInMultiplayer
|
|
|
|
IF g_bPropertyRefreshTrigger
|
|
POPULATE_MP_CASINO_PROPERTY_SITE_PIN_MAP(mov)
|
|
g_bPropertyRefreshTrigger = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
bPopulatePropertySitePinMap = FALSE
|
|
BOOL eitherChanged = FALSE
|
|
|
|
IF iPage > 0
|
|
IF iStaticCurrentPage != iPage
|
|
CPRINTLN(DEBUG_INTERNET, "DO_STATIC_SITE_CHECKS: iStaticCurrentPage != iPage, iStaticCurrentPage will now = ", iPage)
|
|
eitherChanged = TRUE
|
|
ENDIF
|
|
iStaticCurrentPage = iPage
|
|
g_bLastStaticSiteInvalid = FALSE
|
|
ELSE
|
|
g_bLastStaticSiteInvalid = TRUE
|
|
ENDIF
|
|
|
|
IF ENUM_TO_INT(eSite) > 0
|
|
IF eStaticCurrentSite != eSite
|
|
CPRINTLN(DEBUG_INTERNET, "DO_STATIC_SITE_CHECKS: eStaticCurrentSite != eSite, eStaticCurrentSite will now = ", GET_WEBSITE_FROM_INDEX(eSite))
|
|
eitherChanged = TRUE
|
|
ENDIF
|
|
eStaticCurrentSite = eSite
|
|
ELSE
|
|
g_bLastStaticSiteInvalid = TRUE
|
|
ENDIF
|
|
|
|
IF g_eWebSiteIndexFeedback != eStaticCurrentSite
|
|
iCurrentSiteTimer = 0
|
|
CPRINTLN(DEBUG_INTERNET, "Resetting site timer S")
|
|
ENDIF
|
|
|
|
g_iWebPageIndexFeedback = iStaticCurrentPage
|
|
g_eWebSiteIndexFeedback = eStaticCurrentSite
|
|
IF eitherChanged
|
|
// Set these again - one of them changed, so set BOTH to the current website/webpage so they're consistent (was causing B*1576939)
|
|
iStaticCurrentPage = iPage
|
|
eStaticCurrentSite = eSite
|
|
g_iWebPageIndexFeedback = iStaticCurrentPage
|
|
g_eWebSiteIndexFeedback = eStaticCurrentSite
|
|
CPRINTLN(DEBUG_INTERNET, "DO_STATIC_SITE_CHECKS: eStaticCurrentSite = ", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite), ". iStaticCurrentPage = ", iStaticCurrentPage)
|
|
DO_STATIC_SITE_CHANGE_TRIGGERS()
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
PROC CATALOGUE_MISSING_ENTRIES()
|
|
|
|
IF NETWORK_IS_GAME_IN_PROGRESS()
|
|
|
|
CPRINTLN(DEBUG_SHOPS, "[CATALOGUE] CATALOGUE_MISSING_ENTRIES() - Rebuilding for vehicles(website) - COLOURS ONLY" )
|
|
|
|
SITE_BUYABLE_VEHICLE eSiteVeh
|
|
|
|
VEHICLE_SETUP_STRUCT_MP sVSSMP
|
|
VEHICLE_SETUP_STRUCT sVSSBlank
|
|
|
|
ScriptCatalogItem sCatalogueData
|
|
|
|
INT iNewEntriesCount = 0
|
|
|
|
// Loop through every site buyable vehicle and generate keys, adding any currently missing from the catalogue.
|
|
REPEAT COUNT_OF( SITE_BUYABLE_VEHICLE ) eSiteVeh
|
|
|
|
IF GET_MODEL_FOR_BUYABLE_VEHICLE( eSiteVeh ) != DUMMY_MODEL_FOR_SCRIPT
|
|
|
|
CPRINTLN(DEBUG_SHOPS, "[CATALOGUE] CATALOGUE_MISSING_ENTRIES() - Rebuilding vehicle(website) - eSiteVeh = ", GET_LABEL_BUYABLE_VEHICLE( eSiteVeh ) )
|
|
|
|
VEHICLE_INDEX vehTemp = NULL
|
|
BOOL bAltVersion = FALSE
|
|
|
|
// Loop through colours
|
|
SITE_BUYABLE_VEHICLE_COLOURS eSiteVehColours
|
|
FOR eSiteVehColours = BCV_NO_COLOUR TO BCV_WHITE_COLOUR
|
|
|
|
PRINTLN( "[CATALOGUE] CATALOGUE_MISSING_ENTRIES() Colour loop start, colour = ", eSiteVehColours )
|
|
|
|
// Configure the vehicle setup struct for this colour
|
|
sVSSMP.VehicleSetup = sVSSBlank
|
|
g_eLastBuyableVehicleColourSelected = eSiteVehColours
|
|
CONFIGURE_STRUCT_FOR_BUYABLE_VEHICLE( eSiteVeh, sVSSMP, TRUE)
|
|
|
|
// Verify model
|
|
IF sVSSMP.VehicleSetup.eModel != DUMMY_MODEL_FOR_SCRIPT
|
|
AND IS_MODEL_A_VEHICLE( sVSSMP.VehicleSetup.eModel )
|
|
|
|
// Create new vehicle
|
|
IF NOT DOES_ENTITY_EXIST( vehTemp )
|
|
OR NOT IS_VEHICLE_DRIVEABLE( vehTemp )
|
|
|
|
IF DOES_ENTITY_EXIST( vehTemp )
|
|
DELETE_VEHICLE( vehTemp)
|
|
PRINTLN( "[CATALOGUE] CATALOGUE_MISSING_ENTRIES() Deleted undriveable vehicle" )
|
|
ENDIF
|
|
|
|
PRINTLN( "[CATALOGUE] CATALOGUE_MISSING_ENTRIES() Creating new vehicle - waiting for CREATE_AND_POPULATE_VEHICLE_DETAILS_FOR_MP_WEBSITE_VEHICLE_BUY...")
|
|
WHILE NOT CREATE_AND_POPULATE_VEHICLE_DETAILS_FOR_MP_WEBSITE_VEHICLE_BUY( eSiteVeh, WWW_NOT_EXIST, sVSSMP, vehTemp, bAltVersion )
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
SET_MODEL_AS_NO_LONGER_NEEDED( sVSSMP.VehicleSetup.eModel )
|
|
|
|
// already have a working vehicle, update vehicle colours for this loop
|
|
ELSE
|
|
|
|
SET_VEHICLE_SETUP_MP( vehTemp, sVSSMP )
|
|
PRINTLN( "[CATALOGUE] CATALOGUE_MISSING_ENTRIES() Updating vehicle colour" )
|
|
|
|
ENDIF
|
|
|
|
|
|
IF DOES_ENTITY_EXIST( vehTemp )
|
|
AND IS_VEHICLE_DRIVEABLE( vehTemp )
|
|
|
|
PRINTLN( "[CATALOGUE] CATALOGUE_MISSING_ENTRIES() Retrieving colour details = ", eSiteVehColours )
|
|
|
|
// Reset colour vars
|
|
MOD_COLOR_TYPE eModColorType1 = MCT_NONE
|
|
MOD_COLOR_TYPE eModColorType2 = MCT_NONE
|
|
MOD_COLOR_TYPE eModColorTypeExtra1 = MCT_NONE
|
|
TEXT_LABEL_15 sModCol1Name = ""
|
|
TEXT_LABEL_15 sModCol2Name = ""
|
|
TEXT_LABEL_15 sModCol1NameExtra = ""
|
|
INT iCol1 = 0
|
|
INT iCol2 = 0
|
|
INT iCol3 = 0
|
|
INT iCol4 = 0
|
|
|
|
// Find colour details
|
|
GET_VEH_MOD_COLOUR_DETAILS( vehTemp,
|
|
eModColorType1, sModCol1Name, iCol1,
|
|
eModColorType2, sModCol2Name, iCol2,
|
|
eModColorTypeExtra1, sModCol1NameExtra, iCol3,
|
|
iCol4 )
|
|
|
|
CPRINTLN(DEBUG_SHOPS, "[CATALOGUE] CATALOGUE_MISSING_ENTRIES() sModCol1Name = ", sModCol1Name, " iCol1 = ", iCol1 )
|
|
CPRINTLN(DEBUG_SHOPS, "[CATALOGUE] CATALOGUE_MISSING_ENTRIES() sModCol1Name = ", sModCol1NameExtra, " iCol3 = ", iCol3 )
|
|
CPRINTLN(DEBUG_SHOPS, "[CATALOGUE] CATALOGUE_MISSING_ENTRIES() sModCol2Name = ", sModCol2Name, " iCol2 = ", iCol2 )
|
|
|
|
INT iPriceVariation = GET_VEHICLE_SHARED_MOD_PRICE_VARIATION_FOR_CATALOGUE( sVSSMP.VehicleSetup.eModel)
|
|
|
|
// Generate catalogue entry for Color 1
|
|
GENERATE_KEY_FOR_SHOP_CATALOGUE(sCatalogueData.m_key, sModCol1Name, DUMMY_MODEL_FOR_SCRIPT, SHOP_TYPE_CARMOD, ENUM_TO_INT(CMT_RESPRAY_PRIMARY), iPriceVariation, 1, ENUM_TO_INT( eModColorType1 ) )
|
|
sCatalogueData.m_textTag = sModCol1Name
|
|
sCatalogueData.m_category = CATEGORY_VEHICLE_MOD
|
|
sCatalogueData.m_price = 1000
|
|
sCatalogueData.m_storagetype = NET_SHOP_ISTORAGE_INT
|
|
sCatalogueData.m_statvalue = iCol1
|
|
sCatalogueData.m_bitsize = 0
|
|
sCatalogueData.m_stathash = ENUM_TO_INT(MPIntStatNamesArray[MP_STAT_MPSV_VEHICLE_BS_0][GET_SLOT_NUMBER(g_iPedComponentSlot)])
|
|
IF NOT NET_GAMESERVER_CATALOG_ITEM_IS_VALID(sCatalogueData.m_key)
|
|
iNewEntriesCount++
|
|
ENDIF
|
|
ADD_ITEM_TO_CATALOG_WITH_CHECK(sCatalogueData)
|
|
|
|
// Generate catalogue entry for Color Extra 1
|
|
GENERATE_KEY_FOR_SHOP_CATALOGUE(sCatalogueData.m_key, sModCol1NameExtra, DUMMY_MODEL_FOR_SCRIPT, SHOP_TYPE_CARMOD, ENUM_TO_INT(CMT_RESPRAY_PRIMARY), iPriceVariation, 3, ENUM_TO_INT( eModColorTypeExtra1 ) )
|
|
sCatalogueData.m_textTag = sModCol1NameExtra
|
|
sCatalogueData.m_category = CATEGORY_VEHICLE_MOD
|
|
sCatalogueData.m_price = 1000
|
|
sCatalogueData.m_storagetype = NET_SHOP_ISTORAGE_INT
|
|
sCatalogueData.m_statvalue = iCol3
|
|
sCatalogueData.m_bitsize = 0
|
|
sCatalogueData.m_stathash = ENUM_TO_INT(MPIntStatNamesArray[MP_STAT_MPSV_VEHICLE_BS_0][GET_SLOT_NUMBER(g_iPedComponentSlot)])
|
|
IF NOT NET_GAMESERVER_CATALOG_ITEM_IS_VALID(sCatalogueData.m_key)
|
|
iNewEntriesCount++
|
|
ENDIF
|
|
ADD_ITEM_TO_CATALOG_WITH_CHECK(sCatalogueData)
|
|
|
|
// Generate catalogue entry for Color 2
|
|
GENERATE_KEY_FOR_SHOP_CATALOGUE(sCatalogueData.m_key, sModCol2Name, DUMMY_MODEL_FOR_SCRIPT, SHOP_TYPE_CARMOD, ENUM_TO_INT(CMT_RESPRAY_SECONDARY), iPriceVariation, 2, ENUM_TO_INT( eModColorType2 ) )
|
|
sCatalogueData.m_textTag = sModCol2Name
|
|
sCatalogueData.m_category = CATEGORY_VEHICLE_MOD
|
|
sCatalogueData.m_price = 1000
|
|
sCatalogueData.m_storagetype = NET_SHOP_ISTORAGE_INT
|
|
sCatalogueData.m_statvalue = iCol2
|
|
sCatalogueData.m_bitsize = 0
|
|
sCatalogueData.m_stathash = ENUM_TO_INT(MPIntStatNamesArray[MP_STAT_MPSV_VEHICLE_BS_0][GET_SLOT_NUMBER(g_iPedComponentSlot)])
|
|
IF NOT NET_GAMESERVER_CATALOG_ITEM_IS_VALID(sCatalogueData.m_key)
|
|
iNewEntriesCount++
|
|
ENDIF
|
|
ADD_ITEM_TO_CATALOG_WITH_CHECK(sCatalogueData)
|
|
ENDIF
|
|
|
|
ELSE
|
|
CPRINTLN(DEBUG_SHOPS, "[CATALOGUE] CATALOGUE_MISSING_ENTRIES() - Invalid Model - sVSSMP.VehicleSetup.eModel = ", ENUM_TO_INT( sVSSMP.VehicleSetup.eModel ) )
|
|
eSiteVehColours = BCV_COLOUR_1 // break colour loop
|
|
ENDIF
|
|
|
|
ENDFOR // end colour loop
|
|
|
|
CPRINTLN(DEBUG_SHOPS, "[CATALOGUE] CATALOGUE_MISSING_ENTRIES() Cleaning up veh & model" )
|
|
|
|
DELETE_VEHICLE( vehTemp )
|
|
|
|
ELSE
|
|
CPRINTLN(DEBUG_SHOPS, "[CATALOGUE] CATALOGUE_MISSING_ENTRIES() - Invalid eSiteVeh = ", ENUM_TO_INT( eSiteVeh ) )
|
|
ENDIF
|
|
|
|
ENDREPEAT // end vehicle loop
|
|
|
|
|
|
|
|
CPRINTLN(DEBUG_SHOPS, "[CATALOGUE] CATALOGUE_MISSING_ENTRIES() - Rebuild complete - iNewEntriesCount = ", iNewEntriesCount )
|
|
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
#ENDIF
|
|
|
|
PROC MP_PROPERTY_DATA_INITIALISE()
|
|
g_sYachtDataStruct.iMod = GET_PACKED_STAT_INT(PACKED_MP_CHAR_YACHT_MOD)
|
|
g_sYachtDataStruct.iFixture = GET_PACKED_STAT_INT(PACKED_MP_CHAR_YACHT_FIXTURE)
|
|
g_sYachtDataStruct.iLighting = GET_PACKED_STAT_INT(PACKED_MP_CHAR_YACHT_LIGHTING)
|
|
g_sYachtDataStruct.iFlag = GET_PACKED_STAT_INT(PACKED_MP_CHAR_YACHT_FLAG)
|
|
g_sYachtDataStruct.iColour = GET_PACKED_STAT_INT(PACKED_MP_CHAR_YACHT_COLOR)
|
|
g_sYachtDataStruct.tl63Name = GET_MP_LONG_STRING_CHARACTER_STAT(MP_STAT_YACHT_NAME, MP_STAT_YACHT_NAME2)
|
|
g_sYachtDataStruct.tl63NewName = ""
|
|
IF IS_STRING_NULL_OR_EMPTY(g_sYachtDataStruct.tl63Name)
|
|
g_sYachtDataStruct.tl63NewName = GET_FILENAME_FOR_AUDIO_CONVERSATION("YACHT_GSY")
|
|
ENDIF
|
|
g_sYachtDataStruct.iYachtNameID = GET_MP_INT_CHARACTER_STAT(MP_STAT_INV_YACHT_NAME_ID)
|
|
|
|
ALIGN_PROPERTY_ORGANIZATION_NAMES()
|
|
SETUP_OFFICE_GLOBALS_FROM_STATS()
|
|
g_sOfficeDataStruct.tl63NewOrgName = ""
|
|
RESET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_DATA)
|
|
RESET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_GARAGE_A_DATA)
|
|
RESET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_OFFICE_GARAGE_B_DATA)
|
|
|
|
SETUP_CLUBHOUSE_GLOBALS_FROM_STATS()
|
|
g_sClubhouseDataStruct.tl63NewSignage = ""
|
|
|
|
SETUP_BUNKER_GLOBALS_FROM_STATS()
|
|
SETUP_TRUCK_GLOBALS_FROM_STATS()
|
|
|
|
SETUP_HANGAR_GLOBALS_FROM_STATS()
|
|
|
|
SETUP_DEFUNCT_BASE_GLOBALS_FROM_STATS()
|
|
SETUP_PLANE_GLOBALS_FROM_STATS()
|
|
|
|
SETUP_NIGHTCLUB_GLOBALS_FROM_STATS()
|
|
SETUP_HACKER_TRUCK_GLOBALS_FROM_STATS()
|
|
SETUP_KOSATKA_GLOBALS_FROM_STATS()
|
|
SETUP_ARCADE_GLOBALS_FROM_STATS()
|
|
SETUP_AUTO_SHOP_GLOBALS_FROM_STATS()
|
|
|
|
SETUP_FIXER_HQ_GLOBALS_FROM_STATS()
|
|
|
|
#IF FEATURE_DLC_2_2022
|
|
SETUP_MULTISTOREY_GARAGE_GLOBALS_FROM_STATS()
|
|
#ENDIF
|
|
|
|
SETUP_ARENA_GARAGE_GLOBALS_FROM_STATS()
|
|
RESET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_ARENA_WARS_DATA)
|
|
|
|
SETUP_CASINO_APT_GLOBALS_FROM_STATS()
|
|
RESET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CASINO_DATA)
|
|
|
|
RESET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_CLUBHOUSE_DATA)
|
|
|
|
UPDATE_PROPERTY_VALUES()
|
|
ENDPROC
|
|
|
|
SCRIPT
|
|
CPRINTLN(DEBUG_INTERNET, "Web browser script launched! ")
|
|
g_bBSWebsiteNoSpaceTrigger = FALSE
|
|
g_iPendingBrowserTimer = -1
|
|
|
|
g_bBSWebsiteTerminated = FALSE
|
|
Clear_PlayerList_Details_For_Email()
|
|
|
|
RESET_VEHICLE_SETUP_STRUCT_MP(g_sConfVssMP)
|
|
|
|
IF g_bInMultiplayer
|
|
MP_PROPERTY_DATA_INITIALISE()
|
|
ENDIF
|
|
|
|
MP_FORCE_TERMINATE_INTERNET_CLEAR()
|
|
SP_FORCE_TERMINATE_INTERNET_CLEAR()
|
|
MISSION_REPEAT_INFO sRepeatInfo
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
IF GET_COMMANDLINE_PARAM_EXISTS("skipBrowserTutorial")
|
|
g_savedGlobals.sFinanceData.bBrowserTutorialSeen = TRUE
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
IF IS_FAKE_MULTIPLAYER_MODE_SET()
|
|
CPRINTLN(DEBUG_INTERNET, "Web browser disallowed due to fake MP ")
|
|
TERMINATE_THIS_THREAD()
|
|
ENDIF
|
|
|
|
IF g_bMagDemoActive
|
|
CPRINTLN(DEBUG_INTERNET, "Web browser in mag demo launch prevention triggered. ")
|
|
TERMINATE_THIS_THREAD()
|
|
ENDIF
|
|
|
|
REQUEST_BAWSAQ_STOCK_PRICE_VALUES()
|
|
|
|
//WEB_BROWSER.gfx
|
|
//g_bSingleShotLCNRedirect = FALSE
|
|
g_bTickerPriceChange = TRUE
|
|
//IS_SITE_DYNAMIC //call on mov //0 or 1
|
|
//GET_SITE_ID //call on mov // id int // -1 if not dynamic
|
|
//GET_PAGE_ID //call on mov // id int
|
|
|
|
NETWORK_SET_SCRIPT_IS_SAFE_FOR_NETWORK_GAME()
|
|
|
|
EmailState = eDORMANT //Steve T email Work.
|
|
|
|
|
|
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("appinternet")) > 1
|
|
EXIT
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
DEBUG_MAKE_BROWSER_WIDGETS()
|
|
|
|
|
|
IF GET_DRAW_DEBUG_COMMANDLINE_PARAM_EXISTS()
|
|
SET_DEBUG_LINES_AND_SPHERES_DRAWING_ACTIVE(TRUE)
|
|
bDrawDebugStuff = TRUE
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
IF IS_STUNT_JUMP_IN_PROGRESS()
|
|
g_CellPhone.PhoneDS = PDS_AWAY
|
|
EXIT
|
|
ENDIF
|
|
|
|
|
|
////////////////////////
|
|
PREP_BROWSER_BUTTONS(TRUE)
|
|
////////////////////////
|
|
|
|
// INIT_VEH_SITE_PRICES()
|
|
|
|
INT iReturnPadding = 0
|
|
INT pgi = 0
|
|
WEBSITE_INDEX_ENUM wsi = WWW_NOT_EXIST
|
|
|
|
bPanicShutdownStart = FALSE
|
|
/*
|
|
IF HAS_FORCE_CLEANUP_OCCURRED()
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: HAS_FORCE_CLEANUP_OCCURRED()")
|
|
FORCE_CLOSE_BROWSER()
|
|
EXIT
|
|
ENDIF
|
|
*/
|
|
|
|
g_sBrowserHelpMessage.bShow = FALSE
|
|
g_bBrowserQuitMessage = FALSE
|
|
|
|
SCALEFORM_INDEX fontindex
|
|
fontindex = REQUEST_SCALEFORM_MOVIE("font_lib_web")
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Font_lib_web loading")
|
|
WHILE (NOT HAS_SCALEFORM_MOVIE_LOADED(fontindex))
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
//Activate multihead blinders on PC
|
|
IF SET_MULTIHEAD_SAFE(TRUE,TRUE,DEFAULT,TRUE)
|
|
bActivatedMultiheadBlinders = TRUE
|
|
ENDIF
|
|
|
|
|
|
|
|
IF (g_BrowserStartState = SBSS_CashMachineFinance)
|
|
//DISABLE_PLAYER_FIRING(GET_PLAYER_INDEX(),TRUE)//so player doesn't punch the atm
|
|
/*
|
|
IF (NOT IS_PLAYER_DEAD(GET_PLAYER_INDEX())) AND (NOT IS_ENTITY_DEAD(GET_PLAYER_PED(GET_PLAYER_INDEX())))
|
|
SET_DISABLE_AMBIENT_MELEE_MOVE(GET_PLAYER_INDEX(),TRUE)
|
|
ENDIF
|
|
*/
|
|
ENDIF
|
|
|
|
// If the movie isn't prestreamed
|
|
IF mov = NULL
|
|
mov = REQUEST_SCALEFORM_MOVIE("web_browser")
|
|
ENDIF
|
|
|
|
INT gtime = g_iBrowserTimer + g_iDelayATMDisplay
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Web_browser loading...")
|
|
WHILE (NOT HAS_SCALEFORM_MOVIE_LOADED(mov))
|
|
WAIT(0)
|
|
ENDWHILE
|
|
BROWSER_CURSOR_LOADING(FALSE)
|
|
|
|
|
|
IF NOT IS_PLAYER_DEAD(GET_PLAYER_INDEX())
|
|
g_iBrowserHealthDelta = GET_ENTITY_HEALTH(GET_PLAYER_PED(GET_PLAYER_INDEX()))
|
|
ENDIF
|
|
|
|
DO_CHECK_FOR_RAGDOLL_OR_DEAD()
|
|
|
|
IF (g_BrowserStartState = SBSS_CashMachineFinance)
|
|
gtime = gtime - (g_iBrowserTimer)
|
|
IF gtime > 0
|
|
WAIT(gtime)
|
|
ENDIF
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "ATM_WINDOW","HUD_FRONTEND_DEFAULT_SOUNDSET")
|
|
ENDIF
|
|
|
|
#IF IS_JAPANESE_BUILD
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"IS_JAPANESE")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
#ENDIF
|
|
|
|
#IF FEATURE_GEN9_EXCLUSIVE
|
|
IF g_bInMultiplayer
|
|
IF BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_GEN9")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
PRINTLN(DEBUG_INTERNET, "Setting gen 9 exclusive content - TRUE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
IF GET_IS_WIDESCREEN()
|
|
CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_NORET(mov,"SET_WIDESCREEN",1.0)
|
|
ELSE
|
|
CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_NORET(mov,"SET_WIDESCREEN",0.0)
|
|
ENDIF
|
|
|
|
IF g_BrowserStartState = SBSS_CashMachineFinance
|
|
CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_NORET(mov,"SET_BROWSER_SKIN",4.0)
|
|
ELSE
|
|
IF g_bInMultiplayer
|
|
CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_NORET(mov,"SET_BROWSER_SKIN",1.0)
|
|
ELSE
|
|
SWITCH GET_CURRENT_PLAYER_PED_ENUM()
|
|
CASE CHAR_MICHAEL
|
|
CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_NORET(mov,"SET_BROWSER_SKIN",0.0)
|
|
BREAK
|
|
CASE CHAR_FRANKLIN
|
|
CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_NORET(mov,"SET_BROWSER_SKIN",2.0)
|
|
BREAK
|
|
CASE CHAR_TREVOR
|
|
CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_NORET(mov,"SET_BROWSER_SKIN",3.0)
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//BROWSER_ON_STARTUP_HISTORY_RESTORE()
|
|
/*
|
|
IF (((NOT (g_BrowserStartState = SBSS_CashMachineFinance))
|
|
AND GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH ("cellphone_flashhand")) > 0))
|
|
HIDE_ACTIVE_PHONE(TRUE)
|
|
ENDIF
|
|
*/
|
|
|
|
// SET_PLAYER_CONTROL(GET_PLAYER_INDEX(),FALSE, SPC_ALLOW_PLAYER_DAMAGE | SPC_DONT_STOP_OTHER_CARS_AROUND_PLAYER | SPC_REENABLE_CONTROL_ON_DEATH | SPC_PREVENT_EVERYBODY_BACKOFF )
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> Game paused by browser")
|
|
SET_BROWSER_OPEN(TRUE)
|
|
BOOL bTempFirstLoad = FALSE
|
|
HANG_UP_AND_PUT_AWAY_PHONE(TRUE)
|
|
|
|
// B*154147 - Stop player from being able to be pushed around
|
|
IF IS_PLAYER_PLAYING(PLAYER_ID())
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB BROWSER> Setting kinematic mode on player ped.")
|
|
SET_PED_CONFIG_FLAG(PLAYER_PED_ID(),PCF_UseKinematicModeWhenStationary,TRUE)
|
|
ENDIF
|
|
IF g_bInMultiplayer
|
|
SET_MULTIPLAYER_WALLET_CASH()
|
|
SET_MULTIPLAYER_BANK_CASH()
|
|
|
|
DISABLE_KILL_YOURSELF_OPTION()
|
|
ENDIF
|
|
|
|
IF NOT g_sBrowserHelpMessage.bShow
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
CLEAR_HELP()
|
|
CPRINTLN(DEBUG_INTERNET, "Browser cleared help as per 1532352")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
/// main update and render loop
|
|
WHILE IS_BROWSER_OPEN()
|
|
|
|
IF g_bInMultiplayer
|
|
AND bRunningOrgNameKeyboard
|
|
RUN_OSK_FOR_ORG_NAME()
|
|
ENDIF
|
|
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(tl63sPopulatePropertySitePinMap)
|
|
GO_TO_WEBSITE(tl63sPopulatePropertySitePinMap)
|
|
tl63sPopulatePropertySitePinMap = ""
|
|
ENDIF
|
|
|
|
// If the Epsilon music is playing or been requested and IS_GAME_IN_CONTROL_OF_MUSIC() returns false, stop the music
|
|
IF bStreamLoaded OR bDoLoadStream
|
|
IF NOT IS_GAME_IN_CONTROL_OF_MUSIC()
|
|
CPRINTLN(DEBUG_INTERNET, "IS_GAME_IN_CONTROL_OF_MUSIC returned false while music was playing, stop it...")
|
|
STOP_STREAM()
|
|
STOP_AUDIO_SCENE("WEB_EPSILONISM_SITE_MUSIC_SCENE")
|
|
bStreamLoaded = FALSE
|
|
bDoLoadStream = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//
|
|
IF bAWStreamLoaded OR bDoLoadAWStream
|
|
IF NOT IS_GAME_IN_CONTROL_OF_MUSIC()
|
|
CPRINTLN(DEBUG_INTERNET, "IS_GAME_IN_CONTROL_OF_MUSIC returned false while arena wars music was playing, stop it...")
|
|
STOP_STREAM()
|
|
// STOP_AUDIO_SCENE("DLC_AW_Arena_Websites_Sounds")
|
|
bAWStreamLoaded = FALSE
|
|
bDoLoadAWStream = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bRefreshButtons
|
|
//refresh the damn buttons
|
|
PREP_BROWSER_BUTTONS(TRUE)
|
|
bRefreshButtons = FALSE
|
|
ELSE
|
|
//check if the buttons need refreshing
|
|
INT kbFlag = GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_KEYBOARD_FLAG_INDEX)
|
|
IF kbFlag = 0
|
|
IF bKeyboardHelp
|
|
bRefreshButtons = TRUE
|
|
bKeyboardHelp = FALSE
|
|
ENDIF
|
|
ELSE
|
|
IF !bKeyboardHelp
|
|
bRefreshButtons = TRUE
|
|
bKeyboardHelp = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
INT backflag = 0// GET_GLOBAL_ACTIONSCRIPT_FLAG(SCALEFORM_BACKBUTTON_FLAG_INDEX)
|
|
IF backflag = 0
|
|
IF bShowingBackButton
|
|
bRefreshButtons = TRUE
|
|
bShowingBackButton = FALSE
|
|
ENDIF
|
|
ELSE
|
|
IF !bShowingBackButton
|
|
bRefreshButtons = TRUE
|
|
bShowingBackButton = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF HAVE_CONTROLS_CHANGED(FRONTEND_CONTROL)
|
|
bRefreshButtons = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
DO_CHECK_FOR_RAGDOLL_OR_DEAD()
|
|
|
|
IF (NOT IS_SKYSWOOP_AT_GROUND())
|
|
OR IS_TRANSITION_ACTIVE()
|
|
OR IS_SCREEN_FADED_OUT()
|
|
OR IS_INTERACTION_MENU_OPEN()
|
|
#IF FEATURE_FIXER
|
|
OR g_bBlockInternetApp
|
|
#ENDIF
|
|
SET_BROWSER_OPEN(FALSE)
|
|
g_bBrowserQuitMessage = TRUE
|
|
ENDIF
|
|
|
|
IF IS_CUTSCENE_PLAYING()
|
|
// OR (GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH ("cellphone_flashhand")) > 0
|
|
// AND CHECK_FOR_ABNORMAL_EXIT())
|
|
CPRINTLN(DEBUG_INTERNET, "Browser abnormal exit")
|
|
SET_BROWSER_OPEN(FALSE)
|
|
g_bBrowserQuitMessage = TRUE
|
|
ENDIF
|
|
|
|
IF IS_BROWSER_OPEN()
|
|
|
|
|
|
|
|
//Steve T - Eyefind Email handling routines.
|
|
|
|
/*
|
|
IF b_MessageBodyFilledThisCycle
|
|
|
|
DISPLAY_TEXT_WITH_LITERAL_STRING (0.35, 0.14, "STRING", "TRUE TRUE TRUE TRUE TRUE")
|
|
|
|
ELSE
|
|
|
|
DISPLAY_TEXT_WITH_LITERAL_STRING (0.35, 0.14, "STRING", "FALS FALS FALS FALS FALS")
|
|
|
|
ENDIF
|
|
*/
|
|
|
|
|
|
//Critical!
|
|
IF b_GamertagGrabSignalledForceClose = TRUE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintstring("AppInternet - b_GamertagGrabSignalledForceClose was TRUE after grab process completed. Aborting browser.")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
b_GamertagGrabSignalledForceClose = FALSE
|
|
|
|
FORCE_CLOSE_BROWSER()
|
|
|
|
ENDIF
|
|
|
|
|
|
IF EmailState >= eSF_FILLING
|
|
|
|
|
|
|
|
IF GET_CURRENT_WEBSITE_ID() = ENUM_TO_INT(WWW_EYEFIND_INFO)
|
|
|
|
IF GET_CURRENT_WEBPAGE_ID() <> 7
|
|
AND GET_CURRENT_WEBPAGE_ID() <> 8
|
|
|
|
IF EmailState <> eSTATUS_UPDATE
|
|
|
|
EmailState = eDORMANT
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintstring("AppInternet - Eyefind Email. Move from Eyefind Email page detected - returning to eDORMANT state.")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
ELSE
|
|
|
|
/*
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintstring("AppInternet - Eyefind Email. Move from Eyefind Email page detected - remaining in eSTATUS_UPDATE.")
|
|
cdPrintnl()
|
|
#ENDIF
|
|
*/
|
|
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
SWITCH EmailState
|
|
|
|
|
|
CASE eDORMANT
|
|
|
|
IF IS_ACCOUNT_OVER_17_FOR_CHAT(PLAYER_ID()) //Fix for 2437163. The inbox will always be empty and no contacts will appear if the user account does not have communication privileges.
|
|
|
|
CheckForEmailAwakeningFromDormantState()
|
|
|
|
CheckForComposeAwakening()
|
|
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
|
|
|
|
CASE eINITIAL
|
|
|
|
IF i_InboxDepth = 0
|
|
|
|
InitialiseEmailRetrieval(0, 6) //First param is the starting index Second param is the number of emails to grab. Only 5 per page but need to check the sixth for displaying the older button.
|
|
|
|
ELSE
|
|
|
|
InitialiseEmailRetrieval( (5 * i_InboxDepth) , 6)
|
|
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
|
|
|
|
CASE eRETRIEVAL
|
|
|
|
MaintainRetrievalProcess()
|
|
|
|
BREAK
|
|
|
|
|
|
|
|
CASE eSF_FILLING
|
|
|
|
IF i_InboxDepth = 0
|
|
|
|
FillScaleformWithRetrievedEmails( 0, 5 )
|
|
|
|
ELSE
|
|
|
|
FillScaleformWithRetrievedEmails( 0, 5 ) //This seems to work so the indices are reset when you grab a new batch!
|
|
//FillScaleformWithRetrievedEmails( (5 * i_InboxDepth), ((5 * i_InboxDepth) + 5) ) //Hardcoded. Need to have these batch numbers dynamically update according to what part of the inbox we're scrolling through.
|
|
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
|
|
|
|
CASE eNEUTRAL_BROWSING
|
|
|
|
IF b_WaitingToRetrieveGamerTag = FALSE
|
|
|
|
//Steve T - This would need to be wrapped in a check for the scaleform webpage details, so we know ww are on the Eyefind page.
|
|
Player_to_Player_Email_Main()
|
|
|
|
CheckForComposeAwakening()
|
|
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
|
|
CASE eCOMPOSING
|
|
|
|
IF b_WaitingToRetrieveGamerTag = FALSE
|
|
|
|
Player_to_Player_Composing_Main()
|
|
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
|
|
CASE eSTATUS_UPDATE
|
|
|
|
IF b_WaitingToRetrieveGamerTag = FALSE
|
|
|
|
Status_Update_Screen_Handling()
|
|
|
|
ENDIF
|
|
|
|
//Might need to be included again for a stronger fix for #1903168.
|
|
/*
|
|
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_CANCEL)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
cdPrintstring ("AppInternet - FORCE_CLOSE_BROWSER from Eyefind Email Status Update Screen.")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER from Eyefind Email Status Update Screen.")
|
|
|
|
FORCE_CLOSE_BROWSER()
|
|
|
|
ENDIF
|
|
*/
|
|
|
|
BREAK
|
|
|
|
|
|
ENDSWITCH
|
|
|
|
|
|
//End of Steve T MP human to human email work
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IF bClickDetector
|
|
IF g_eWebSiteIndexFeedback != INVALID_WEBSITE_INDEX
|
|
|
|
// Website element click detection
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_INTERNET, "Valid website click detected: Site = ", GET_WEBSITE_FROM_INDEX(g_eWebSiteIndexFeedback),
|
|
" Page = ", g_iWebPageIndexFeedback,
|
|
" Index = ", g_iLastSelectedWebIndex)
|
|
#ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
cdPrintnl()
|
|
cdPrintnl()
|
|
cdPrintstring("SteveT_Click Detection. g_eWebSiteIndexFeedback was ")
|
|
cdPrintint(ENUM_TO_INT(g_eWebSiteIndexFeedback))
|
|
cdPrintnl()
|
|
#ENDIF
|
|
|
|
// This should be somewhere else...
|
|
SWITCH g_eWebSiteIndexFeedback
|
|
// Vehicle websites
|
|
CASE WWW_LEGENDARYMOTORSPORT_NET
|
|
CASE WWW_ELITASTRAVEL_COM
|
|
CASE WWW_WARSTOCK_D_CACHE_D_AND_D_CARRY_COM
|
|
CASE WWW_DOCKTEASE_COM
|
|
CASE WWW_PANDMCYCLES_COM
|
|
CASE WWW_SOUTHERNSANANDREASSUPERAUTOS_COM
|
|
CASE WWW_BENNYSORIGINALMOTORWORKS_COM
|
|
IF g_iWebPageIndexFeedback = 15
|
|
IF g_iLastSelectedWebIndex = 2 //confirm yes button
|
|
IF NOT confCheck
|
|
AND g_eWebSiteIndexFeedback = WWW_BENNYSORIGINALMOTORWORKS_COM
|
|
//
|
|
CWARNINGLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: bypass!! g_eWebSiteIndexFeedback:", GET_WEBSITE_FROM_INDEX(g_eWebSiteIndexFeedback), ", g_iWebPageIndexFeedback:", g_iWebPageIndexFeedback, ", g_iLastSelectedWebIndex:", g_iLastSelectedWebIndex, ", confCheck:", GET_STRING_FROM_BOOL(confCheck))
|
|
ELSE
|
|
INT iAltVersion
|
|
iAltVersion = -1
|
|
IF IS_SBV_AN_ALTERNATE_VEHICLE(confSbv, g_eWebSiteIndexFeedback, g_eLastBuyableVehicleColourSelected)
|
|
iAltVersion = 1
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: g_eWebSiteIndexFeedback:", GET_WEBSITE_FROM_INDEX(g_eWebSiteIndexFeedback), ", g_iWebPageIndexFeedback:", g_iWebPageIndexFeedback, ", g_iLastSelectedWebIndex:", g_iLastSelectedWebIndex, ", confCheck:", GET_STRING_FROM_BOOL(confCheck))
|
|
DO_MP_VEHICLE_BUY(g_eWebSiteIndexFeedback, iAltVersion)
|
|
ENDIF
|
|
ELIF g_iLastSelectedWebIndex = 3//confirm no button
|
|
DO_VEHICLE_FAIL_PAGE(g_eWebSiteIndexFeedback, VSFR_CANCELED,UNSET_BUYABLE_VEHICLE, -1)
|
|
ENDIF
|
|
ELIF g_iWebPageIndexFeedback = 4
|
|
IF g_eWebSiteIndexFeedback = WWW_BENNYSORIGINALMOTORWORKS_COM
|
|
|
|
AND g_iLastSelectedWebIndex = 3
|
|
|
|
|
|
// IF IS_SHOP_AVAILABLE(CARMOD_SHOP_SUPERMOD)
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_BENNYSORIGINALMOTORWORKS_COM: SET GPS ROUTE")
|
|
SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(GET_SHOP_COORDS(CARMOD_SHOP_SUPERMOD))
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "WWW_BENNYSORIGINALMOTORWORKS_COM: don't set gps route, supermod shop not available")
|
|
// ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE WWW_ARENAWAR_TV
|
|
SWITCH g_iWebPageIndexFeedback
|
|
|
|
//==Arena Garage Purchase Page==
|
|
CASE 10
|
|
IF g_iLastSelectedWebIndex = 6
|
|
INT iArenaGarage
|
|
iArenaGarage = ENUM_TO_INT(ARENA_GARAGE_1) //GET_LAST_CLICKED_ARENA_GARAGE()
|
|
|
|
// IF (g_iLastSelectedWebIndex = 7 AND iStaticLastPage = 41)
|
|
CPRINTLN(DEBUG_INTERNET, "ARENA_GARAGE property buy attempt triggered on index: ", iArenaGarage)
|
|
// ELSE
|
|
// CASSERTLN(DEBUG_INTERNET, "ARENA_GARAGE property replace(?) attempt triggered on index: ", iArenaGarage)
|
|
// ENDIF
|
|
|
|
// INT iResultSlot
|
|
// iResultSlot = 0
|
|
// BUY_MP_ARENA_GARAGE_FROM_WEBSITE(INT_TO_ENUM(ARENA_GARAGE_ID, iArenaGarage), iResultSlot)
|
|
ENDIF
|
|
BREAK
|
|
CASE 14
|
|
IF g_iLastSelectedWebIndex = 0
|
|
AND (eBoughtArenaIndex != ARENA_GARAGE_ID_INVALID)
|
|
SIMPLE_INTERIORS eSimpleInteriorID
|
|
eSimpleInteriorID = GET_SIMPLE_INTERIOR_ID_FROM_ARENA_GARAGE_ID(eBoughtArenaIndex)
|
|
|
|
VECTOR vPurchaseLocation
|
|
vPurchaseLocation = GET_ARENA_GARAGE_BLIP_COORDS(eSimpleInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Property gps placement attempted on ARENA_GARAGE: ", eBoughtArenaIndex, " ", vPurchaseLocation)
|
|
IF SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(vPurchaseLocation)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, TRUE, FALSE, rpmt_5_ARENA_GARAGE)
|
|
ELSE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, FALSE, TRUE, rpmt_5_ARENA_GARAGE)
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
// //==Arena Contender Vehicle Pages==
|
|
// CASE 29
|
|
// CASE 31
|
|
// IF g_iLastSelectedWebIndex = 0
|
|
// OR g_iLastSelectedWebIndex = 1
|
|
// IF NOT confCheck
|
|
// //
|
|
// CWARNINGLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: bypass!! g_eWebSiteIndexFeedback:", GET_WEBSITE_FROM_INDEX(g_eWebSiteIndexFeedback), ", g_iWebPageIndexFeedback:", g_iWebPageIndexFeedback, ", g_iLastSelectedWebIndex:", g_iLastSelectedWebIndex, ", confCheck:", GET_STRING_FROM_BOOL(confCheck))
|
|
// ELSE
|
|
// INT iAltVersion
|
|
// iAltVersion = -1
|
|
// IF IS_SBV_AN_ALTERNATE_VEHICLE(confSbv, g_eWebSiteIndexFeedback, g_eLastBuyableVehicleColourSelected)
|
|
// iAltVersion = 1
|
|
// ENDIF
|
|
//
|
|
// CPRINTLN(DEBUG_INTERNET, "DO_MP_VEHICLE_BUY: g_eWebSiteIndexFeedback:", GET_WEBSITE_FROM_INDEX(g_eWebSiteIndexFeedback), ", g_iWebPageIndexFeedback:", g_iWebPageIndexFeedback, ", g_iLastSelectedWebIndex:", g_iLastSelectedWebIndex, ", confCheck:", GET_STRING_FROM_BOOL(confCheck))
|
|
// DO_MP_VEHICLE_BUY(g_eWebSiteIndexFeedback, iAltVersion)
|
|
// ENDIF
|
|
// ELIF g_iLastSelectedWebIndex = 3//confirm no button
|
|
// DO_VEHICLE_FAIL_PAGE(g_eWebSiteIndexFeedback, VSFR_CANCELED,UNSET_BUYABLE_VEHICLE, -1)
|
|
// ENDIF
|
|
// BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE WWW_BLEETER_COM
|
|
HANDLE_BLEETER_SELECT(mov)
|
|
BREAK
|
|
|
|
CASE WWW_LIFEINVADER_COM
|
|
IF g_iLastSelectedWebIndex >= 4
|
|
CHANGE_LIFEINVADER_PROFILE(mov, g_iLastSelectedWebIndex)
|
|
ELSE
|
|
HANDLE_LIFEINVADER_PROFILE_BUTTON_CLICK(mov, g_iLastSelectedWebIndex)
|
|
ENDIF
|
|
BREAK
|
|
|
|
#IF NOT IS_JAPANESE_BUILD
|
|
// CASE WWW_HUSHSMUSH_COM
|
|
// CHECK_HUSHSMUSH_CLICK(g_iWebPageIndexFeedback, g_iLastSelectedWebIndex)
|
|
// BREAK
|
|
#ENDIF
|
|
|
|
CASE WWW_THECHILDRENOFTHEMOUNTAIN_COM
|
|
IF iStaticCurrentPage = 4
|
|
IF g_iLastSelectedWebIndex = 0
|
|
AND g_iChildrenOfTheMountainStatus < 2
|
|
IF GET_TOTAL_CASH(GET_CURRENT_PLAYER_PED_ENUM()) >= 199
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: Player has enough money, deducted 199")
|
|
DEBIT_BANK_ACCOUNT(GET_CURRENT_PLAYER_PED_ENUM(), BAAC_UNLOGGED_SMALL_ACTION, 199)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: SET_DATA_SLOT set to 2")
|
|
g_iChildrenOfTheMountainStatus = 2
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: Player doesn't have enough money")
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
GO_TO_WEBSITE("WWW_THECHILDRENOFTHEMOUNTAIN_COM_S_PAYMENTERROR")
|
|
ENDIF
|
|
ENDIF
|
|
ELIF iStaticCurrentPage = 6
|
|
IF g_iLastSelectedWebIndex = 0
|
|
AND g_iChildrenOfTheMountainStatus < 3
|
|
IF GET_TOTAL_CASH(GET_CURRENT_PLAYER_PED_ENUM()) >= 4999
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: Player has enough money, deducted 4999")
|
|
DEBIT_BANK_ACCOUNT(GET_CURRENT_PLAYER_PED_ENUM(), BAAC_UNLOGGED_SMALL_ACTION, 4999)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(3)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
g_iChildrenOfTheMountainStatus = 3
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: SET_DATA_SLOT set to 3")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: Player doesn't have enough money")
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
GO_TO_WEBSITE("WWW_THECHILDRENOFTHEMOUNTAIN_COM_S_PAYMENTERROR")
|
|
ENDIF
|
|
ENDIF
|
|
ELIF iStaticCurrentPage = 8
|
|
IF g_iLastSelectedWebIndex = 0
|
|
AND g_iChildrenOfTheMountainStatus < 5
|
|
IF GET_TOTAL_CASH(GET_CURRENT_PLAYER_PED_ENUM()) >= 9999
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: Player has enough money, deducted 9999")
|
|
DEBIT_BANK_ACCOUNT(GET_CURRENT_PLAYER_PED_ENUM(), BAAC_UNLOGGED_SMALL_ACTION, 9999)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(5)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
g_iChildrenOfTheMountainStatus = 5
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: SET_DATA_SLOT set to 5")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THECHILDRENOFTHEMOUNTAIN_COM: Player doesn't have enough money")
|
|
PLAY_SOUND_FRONTEND(-1, "Click_Fail", "WEB_NAVIGATION_SOUNDS_PHONE")
|
|
GO_TO_WEBSITE("WWW_THECHILDRENOFTHEMOUNTAIN_COM_S_PAYMENTERROR")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
CASE WWW_MAZE_D_BANK_COM
|
|
// MP only
|
|
IF g_bInMultiplayer
|
|
IF g_iWebPageIndexFeedback = 3
|
|
// Evaluate button press from menu page
|
|
SF_BANK_MENU_UPDATE_MP(g_iLastSelectedWebIndex)
|
|
ELIF g_iWebPageIndexFeedback = 4
|
|
// Evaluate button press from withdrawals page
|
|
SF_BANK_WITHDRAWAL_UPDATE_MP(g_iLastSelectedWebIndex)
|
|
ELIF g_iWebPageIndexFeedback = 5
|
|
// Evaluate button press from deposits page
|
|
SF_BANK_DEPOSIT_UPDATE_MP(g_iLastSelectedWebIndex)
|
|
ELIF g_iWebPageIndexFeedback = 8
|
|
// Evaluate button press from message screen
|
|
SF_BANK_MESSAGE_UPDATE_MP(mov, g_iLastSelectedWebIndex, &RENDER_BROWSER)
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE WWW_DYNASTY8EXECUTIVEREALTY_COM
|
|
// MP only
|
|
IF g_bInMultiplayer
|
|
IF g_iWebPageIndexFeedback = 11
|
|
AND g_iLastSelectedWebIndex = 0
|
|
IF NOT IS_PROPERTY_OFFICE_GARAGE(iBoughtPropertyIndex)
|
|
#IF FEATURE_FIXER
|
|
AND (eBoughtFixerHQIndex = FIXER_HQ_ID_INVALID)
|
|
#ENDIF
|
|
INT iOffice
|
|
iOffice = GET_LAST_CLICKED_OFFICE()
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Property gps placement attempted on office: ", iOffice, " ", mpProperties[iOffice].vPurchaseLocation, " [iBoughtPropertyIndex:", iBoughtPropertyIndex, "]")
|
|
IF SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(mpProperties[iOffice].vPurchaseLocation)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iOffice, "_S_WAYPOINT_D_SET", FALSE, FALSE, TRUE, FALSE, rpmt_0)
|
|
ELSE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iOffice, "_S_WAYPOINT_D_SET", FALSE, FALSE, FALSE, TRUE, rpmt_0)
|
|
ENDIF
|
|
#IF FEATURE_FIXER
|
|
ELIF (eBoughtFixerHQIndex != FIXER_HQ_ID_INVALID)
|
|
SIMPLE_INTERIORS eSimpleInteriorID
|
|
eSimpleInteriorID = GET_SIMPLE_INTERIOR_ID_FROM_FIXER_HQ_ID(eBoughtFixerHQIndex)
|
|
|
|
VECTOR vPurchaseLocation
|
|
vPurchaseLocation = GET_FIXER_HQ_BLIP_COORDS(eSimpleInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Property gps placement attempted on Fixer HQ: ", eBoughtFixerHQIndex, " ", vPurchaseLocation)
|
|
|
|
IF SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(vPurchaseLocation)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, TRUE, FALSE, rpmt_9_FIXER_HQ)
|
|
ELSE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, FALSE, TRUE, rpmt_9_FIXER_HQ)
|
|
ENDIF
|
|
#ENDIF
|
|
ELSE
|
|
INT iGarage
|
|
iGarage = GET_LAST_CLICKED_OFFICE() //iBoughtPropertyIndex
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Property gps placement attempted on office garage: ", iGarage, " ", mpProperties[iGarage].vBlipLocation[2], " [iBoughtPropertyIndex:", iBoughtPropertyIndex, "]")
|
|
IF SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(mpProperties[iGarage].vBlipLocation[2])
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iGarage, "_S_WAYPOINT_D_SET", FALSE, FALSE, TRUE, FALSE, rpmt_0)
|
|
|
|
IF g_bForceCloseBrowserForOfficeGarageGPS
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: Shutdown due to gps placement on office garage: ", iGarage, " ", mpProperties[iGarage].vBlipLocation[2], "")
|
|
FORCE_CLOSE_BROWSER()
|
|
ENDIF
|
|
|
|
ELSE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iGarage, "_S_WAYPOINT_D_SET", FALSE, FALSE, FALSE, TRUE, rpmt_0)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iStaticCurrentPage = 2 //offices
|
|
INT iThisLastClickedOffice
|
|
iThisLastClickedOffice = 0
|
|
|
|
SWITCH g_iLastSelectedWebIndex
|
|
CASE 0 //Renovate button clicked
|
|
iThisLastClickedOffice = iLastClickedOffice
|
|
BREAK
|
|
|
|
CASE 4
|
|
CASE 5
|
|
iThisLastClickedOffice = PROPERTY_OFFICE_1
|
|
BREAK
|
|
CASE 6
|
|
CASE 7
|
|
iThisLastClickedOffice = PROPERTY_OFFICE_2_BASE
|
|
BREAK
|
|
CASE 8
|
|
CASE 9
|
|
iThisLastClickedOffice = PROPERTY_OFFICE_3
|
|
BREAK
|
|
CASE 10
|
|
CASE 11
|
|
iThisLastClickedOffice = PROPERTY_OFFICE_4
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
IF iThisLastClickedOffice != iLastClickedOffice
|
|
CPRINTLN(DEBUG_INTERNET, "Clicked Office iStaticCurrentPage[", iStaticCurrentPage, "] iThisLastClickedOffice:", iThisLastClickedOffice, ", replacing:", iLastClickedOffice)
|
|
iLastClickedOffice = iThisLastClickedOffice
|
|
ENDIF
|
|
|
|
// iLastClickedOffice = GET_LAST_CLICKED_OFFICE()
|
|
// CPRINTLN(DEBUG_INTERNET, "Last Clicked Office: iStaticCurrentPage[", iStaticCurrentPage, "] g_iLastSelectedWebIndex:", g_iLastSelectedWebIndex, ", iLastClickedOffice:", iLastClickedOffice)
|
|
ENDIF
|
|
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE FORECLOSURES_MAZE_D_BANK_COM
|
|
// MP only
|
|
IF g_bInMultiplayer
|
|
IF g_iWebPageIndexFeedback = 10
|
|
AND g_iLastSelectedWebIndex = 0
|
|
IF (eBoughtFactoryIndex != FACTORY_ID_INVALID)
|
|
SIMPLE_INTERIORS eSimpleInteriorID
|
|
eSimpleInteriorID = GET_SIMPLE_INTERIOR_ID_FROM_FACTORY_ID(eBoughtFactoryIndex)
|
|
|
|
VECTOR vPurchaseLocation
|
|
vPurchaseLocation = GET_BUNKER_BLIP_COORDS(eSimpleInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Property gps placement attempted on bunker: ", eBoughtFactoryIndex, " ", vPurchaseLocation)
|
|
IF SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(vPurchaseLocation)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, TRUE, FALSE, rpmt_1_FACTORY)
|
|
ELSE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, FALSE, TRUE, rpmt_1_FACTORY)
|
|
ENDIF
|
|
ELIF (eBoughtHangarIndex != HANGAR_ID_INVALID)
|
|
SIMPLE_INTERIORS eSimpleInteriorID
|
|
eSimpleInteriorID = GET_SIMPLE_INTERIOR_ID_FROM_HANGAR_ID(eBoughtHangarIndex)
|
|
|
|
VECTOR vPurchaseLocation
|
|
vPurchaseLocation = GET_HANGAR_BLIP_COORDS(eSimpleInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Property gps placement attempted on hangar: ", eBoughtHangarIndex, " ", vPurchaseLocation)
|
|
IF SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(vPurchaseLocation)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, TRUE, FALSE, rpmt_2_HANGAR)
|
|
ELSE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, FALSE, TRUE, rpmt_2_HANGAR)
|
|
ENDIF
|
|
ELIF (eBoughtDefunctBaseIndex != DEFUNCT_BASE_ID_INVALID)
|
|
SIMPLE_INTERIORS eSimpleInteriorID
|
|
eSimpleInteriorID = GET_SIMPLE_INTERIOR_ID_FROM_DEFUNCT_BASE_ID(eBoughtDefunctBaseIndex)
|
|
|
|
VECTOR vPurchaseLocation
|
|
vPurchaseLocation = GET_DEFUNCT_BASE_MAZEBANK_BLIP_COORDS(eSimpleInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Property gps placement attempted on defunct base: ", eBoughtDefunctBaseIndex, " ", vPurchaseLocation)
|
|
IF SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(vPurchaseLocation)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, TRUE, FALSE, rpmt_3_DEFUNCT_BASE)
|
|
ELSE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, FALSE, TRUE, rpmt_3_DEFUNCT_BASE)
|
|
ENDIF
|
|
ELIF (eBoughtNightclubIndex != NIGHTCLUB_ID_INVALID)
|
|
SIMPLE_INTERIORS eSimpleInteriorID
|
|
eSimpleInteriorID = GET_SIMPLE_INTERIOR_ID_FROM_NIGHTCLUB_ID(eBoughtNightclubIndex)
|
|
|
|
VECTOR vPurchaseLocation
|
|
vPurchaseLocation = GET_NIGHTCLUB_BLIP_COORDS(eSimpleInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Property gps placement attempted on nightclub: ", eBoughtNightclubIndex, " ", vPurchaseLocation)
|
|
IF SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(vPurchaseLocation)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, TRUE, FALSE, rpmt_4_NIGHTCLUB)
|
|
ELSE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, FALSE, TRUE, rpmt_4_NIGHTCLUB)
|
|
ENDIF
|
|
ELIF (eBoughtArcadeIndex != ARCADE_PROPERTY_ID_INVALID)
|
|
SIMPLE_INTERIORS eSimpleInteriorID
|
|
eSimpleInteriorID = GET_SIMPLE_INTERIOR_ID_FROM_ARCADE_PROPERTY_ID(eBoughtArcadeIndex)
|
|
|
|
VECTOR vPurchaseLocation
|
|
vPurchaseLocation = GET_ARCADE_BLIP_COORDS(eSimpleInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Property gps placement attempted on Arcade: ", eBoughtArcadeIndex, " ", vPurchaseLocation)
|
|
|
|
IF SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(vPurchaseLocation)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, TRUE, FALSE, rpmt_7_ARCADE)
|
|
ELSE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, FALSE, TRUE, rpmt_7_ARCADE)
|
|
ENDIF
|
|
ELIF (eBoughtAutoShopIndex != AUTO_SHOP_PROPERTY_ID_INVALID)
|
|
SIMPLE_INTERIORS eSimpleInteriorID
|
|
eSimpleInteriorID = GET_SIMPLE_INTERIOR_ID_FROM_AUTO_SHOP_PROPERTY_ID(eBoughtAutoShopIndex)
|
|
|
|
VECTOR vPurchaseLocation
|
|
vPurchaseLocation = GET_AUTO_SHOP_BLIP_COORDS(eSimpleInteriorID)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Property gps placement attempted on Auto shop: ", eBoughtAutoShopIndex, " ", vPurchaseLocation)
|
|
|
|
IF SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(vPurchaseLocation)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, TRUE, FALSE, rpmt_8_AUTO_SHOP)
|
|
ELSE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, FALSE, TRUE, rpmt_8_AUTO_SHOP)
|
|
ENDIF
|
|
ELSE
|
|
INT iClubhouse
|
|
iClubhouse = GET_LAST_CLICKED_CLUBHOUSE()
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Property gps placement attempted on clubhouse: ", iClubhouse, " ", mpProperties[iClubhouse].vPurchaseLocation)
|
|
IF SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(mpProperties[iClubhouse].vPurchaseLocation)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iClubhouse, "_S_WAYPOINT_D_SET", FALSE, FALSE, TRUE, FALSE, rpmt_0)
|
|
ELSE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(iClubhouse, "_S_WAYPOINT_D_SET", FALSE, FALSE, FALSE, TRUE, rpmt_0)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iStaticCurrentPage = 36
|
|
AND NOT bTVOn
|
|
SWITCH g_iLastSelectedWebIndex
|
|
CASE 11 //LIGHTING 1
|
|
CPRINTLN(DEBUG_INTERNET, "FORECLOSURES_MAZE_D_BANK_COM: PLAY LIGHTING 1 VIDEO - currentPage:", iStaticCurrentPage, ", lastIndex:", g_iLastSelectedWebIndex)
|
|
// SETUP_VIDEO_PLAYBACK("PL_WEB_FOS")
|
|
// iTVOnTimeoutFrameCount = GET_FRAME_COUNT()+5000
|
|
BREAK
|
|
CASE 12 //LIGHTING 2
|
|
CPRINTLN(DEBUG_INTERNET, "FORECLOSURES_MAZE_D_BANK_COM: PLAY LIGHTING 2 VIDEO - currentPage:", iStaticCurrentPage, ", lastIndex:", g_iLastSelectedWebIndex)
|
|
SETUP_VIDEO_PLAYBACK("PL_WEB_LR1")
|
|
iTVOnTimeoutFrameCount = GET_FRAME_COUNT()+644 //- Cathedral - 19 seconds
|
|
BREAK
|
|
CASE 13 //LIGHTING 3
|
|
CPRINTLN(DEBUG_INTERNET, "FORECLOSURES_MAZE_D_BANK_COM: PLAY LIGHTING 3 VIDEO - currentPage:", iStaticCurrentPage, ", lastIndex:", g_iLastSelectedWebIndex)
|
|
SETUP_VIDEO_PLAYBACK("PL_WEB_LR2")
|
|
iTVOnTimeoutFrameCount = GET_FRAME_COUNT()+443 //- Lightning Storm - 18.5 seconds
|
|
BREAK
|
|
CASE 14 //LIGHTING 4
|
|
CPRINTLN(DEBUG_INTERNET, "FORECLOSURES_MAZE_D_BANK_COM: PLAY LIGHTING 4 VIDEO - currentPage:", iStaticCurrentPage, ", lastIndex:", g_iLastSelectedWebIndex)
|
|
SETUP_VIDEO_PLAYBACK("PL_WEB_LR3")
|
|
iTVOnTimeoutFrameCount = GET_FRAME_COUNT()+522 //- Surge - 16 seconds
|
|
BREAK
|
|
CASE 15 //LIGHTING 5
|
|
CPRINTLN(DEBUG_INTERNET, "FORECLOSURES_MAZE_D_BANK_COM: PLAY LIGHTING 5 VIDEO - currentPage:", iStaticCurrentPage, ", lastIndex:", g_iLastSelectedWebIndex)
|
|
SETUP_VIDEO_PLAYBACK("PL_WEB_LR4")
|
|
iTVOnTimeoutFrameCount = GET_FRAME_COUNT()+528 //- Dazzle - 23 seconds
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CPRINTLN(DEBUG_INTERNET, "FORECLOSURES_MAZE_D_BANK_COM: no video - currentPage:", iStaticCurrentPage, ", lastIndex:", g_iLastSelectedWebIndex)
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE WWW_THEDIAMONDCASINOANDRESORT_COM
|
|
|
|
IF g_iWebPageIndexFeedback = 17
|
|
AND g_iLastSelectedWebIndex = 0
|
|
AND (eBoughtCasinoIndex != CASINO_APARTMENT_ID_INVALID)
|
|
//==Casino Apt Waypoint Set - PURCHASED==
|
|
VECTOR vPurchaseLocation
|
|
vPurchaseLocation = GET_CASINO_BLIP_COORDS(SIMPLE_INTERIOR_CASINO)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Property gps placement attempted on CASINO_APT: ", eBoughtCasinoIndex, " ", vPurchaseLocation)
|
|
IF SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(vPurchaseLocation)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, TRUE, FALSE, rpmt_6_CASINO_APARTMENT)
|
|
|
|
IF NOT IS_PLAYER_IN_CASINO_APARTMENT_THEY_OWN(PLAYER_ID())
|
|
CPRINTLN(DEBUG_INTERNET, "FORCE_CLOSE_BROWSER - url:bugstar:5726270 - Can we please close the website if players press \"Set Waypoint\" after purchasing the Penthouse?")
|
|
FORCE_CLOSE_BROWSER()
|
|
ENDIF
|
|
ELSE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, FALSE, TRUE, rpmt_6_CASINO_APARTMENT)
|
|
ENDIF
|
|
ELIF g_iWebPageIndexFeedback = 1
|
|
AND g_iLastSelectedWebIndex = 1
|
|
//==Casino Apt Waypoint Set - HOME PAGE==
|
|
VECTOR vPurchaseLocation
|
|
vPurchaseLocation = GET_CASINO_BLIP_COORDS(SIMPLE_INTERIOR_CASINO)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Property gps placement attempted on CASINO_APT: ", CASINO_APARTMENT_1, " ", vPurchaseLocation)
|
|
IF SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(vPurchaseLocation)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, TRUE, FALSE, rpmt_6_CASINO_APARTMENT)
|
|
ELSE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, FALSE, TRUE, rpmt_6_CASINO_APARTMENT)
|
|
ENDIF
|
|
ELIF g_iWebPageIndexFeedback = 6
|
|
AND g_iLastSelectedWebIndex = 0
|
|
//==Casino Apt Waypoint Set - MEMBERSHIP==
|
|
VECTOR vPurchaseLocation
|
|
vPurchaseLocation = GET_CASINO_BLIP_COORDS(SIMPLE_INTERIOR_CASINO)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Property gps placement attempted on CASINO_APT: ", CASINO_APARTMENT_1, " ", vPurchaseLocation)
|
|
IF SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(vPurchaseLocation)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, TRUE, FALSE, rpmt_6_CASINO_APARTMENT)
|
|
ELSE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, FALSE, TRUE, rpmt_6_CASINO_APARTMENT)
|
|
ENDIF
|
|
ELIF g_iWebPageIndexFeedback = 2
|
|
AND g_iLastSelectedWebIndex = 0
|
|
//==Casino Apt Waypoint Set - CASINO==
|
|
VECTOR vPurchaseLocation
|
|
vPurchaseLocation = GET_CASINO_BLIP_COORDS(SIMPLE_INTERIOR_CASINO)
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Property gps placement attempted on CASINO_APT: ", CASINO_APARTMENT_1, " ", vPurchaseLocation)
|
|
IF SET_ROUTE_TARGET_FOR_AVERY_SITE_GPS(vPurchaseLocation)
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, TRUE, FALSE, rpmt_6_CASINO_APARTMENT)
|
|
ELSE
|
|
SWITCH_TO_PROPERTY_RESULTS_PAGE(-1, "_S_WAYPOINT_D_SET", FALSE, FALSE, FALSE, TRUE, rpmt_6_CASINO_APARTMENT)
|
|
ENDIF
|
|
ELIF g_iWebPageIndexFeedback = 8
|
|
AND g_iLastSelectedWebIndex = 2
|
|
//==Casino Apt DESIGN YOUR OWN==
|
|
CPRINTLN(DEBUG_INTERNET, "DESIGN YOUR OWN: g_iWebPageIndexFeedback: ", g_iWebPageIndexFeedback, ", g_iLastSelectedWebIndex: ", g_iLastSelectedWebIndex, " - ", GET_WEBSITE_FROM_INDEX(g_eWebSiteIndexFeedback))
|
|
iBoughtCasinoPreset = 1
|
|
ELIF g_iWebPageIndexFeedback = 8
|
|
AND g_iLastSelectedWebIndex = 4
|
|
//==Casino Apt HIGH ROLLER==
|
|
CPRINTLN(DEBUG_INTERNET, "HIGH ROLLER: g_iWebPageIndexFeedback: ", g_iWebPageIndexFeedback, ", g_iLastSelectedWebIndex: ", g_iLastSelectedWebIndex, " - ", GET_WEBSITE_FROM_INDEX(g_eWebSiteIndexFeedback))
|
|
iBoughtCasinoPreset = 2
|
|
ELIF g_iWebPageIndexFeedback = 8
|
|
AND g_iLastSelectedWebIndex = 6
|
|
//==Casino Apt CRASH PAD==
|
|
CPRINTLN(DEBUG_INTERNET, "CRASH PAD: g_iWebPageIndexFeedback: ", g_iWebPageIndexFeedback, ", g_iLastSelectedWebIndex: ", g_iLastSelectedWebIndex, " - ", GET_WEBSITE_FROM_INDEX(g_eWebSiteIndexFeedback))
|
|
iBoughtCasinoPreset = 3
|
|
ELIF g_iWebPageIndexFeedback = 8
|
|
AND g_iLastSelectedWebIndex = 8
|
|
//==Casino Apt PARTY PENTHOUSE==
|
|
CPRINTLN(DEBUG_INTERNET, "PARTY PENTHOUSE: g_iWebPageIndexFeedback: ", g_iWebPageIndexFeedback, ", g_iLastSelectedWebIndex: ", g_iLastSelectedWebIndex, " - ", GET_WEBSITE_FROM_INDEX(g_eWebSiteIndexFeedback))
|
|
iBoughtCasinoPreset = 4
|
|
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "unknown g_iWebPageIndexFeedback: ", g_iWebPageIndexFeedback, ", g_iLastSelectedWebIndex: ", g_iLastSelectedWebIndex, " - ", GET_WEBSITE_FROM_INDEX(g_eWebSiteIndexFeedback))
|
|
ENDIF
|
|
|
|
IF iStaticCurrentPage = 1
|
|
AND NOT bTVOn
|
|
SWITCH g_iLastSelectedWebIndex
|
|
CASE 0 //CASINO TRAILER
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THEDIAMONDCASINOANDRESORT_COM: PLAY CASINO TRAILER VIDEO - currentPage:", iStaticCurrentPage, ", lastIndex:", g_iLastSelectedWebIndex)
|
|
SETUP_VIDEO_PLAYBACK("PL_WEB_CAS")
|
|
iTVOnTimeoutFrameCount = GET_FRAME_COUNT()+2467+500
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_THEDIAMONDCASINOANDRESORT_COM: no video - currentPage:", iStaticCurrentPage, ", lastIndex:", g_iLastSelectedWebIndex)
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
|
|
DEFAULT
|
|
CPRINTLN(DEBUG_INTERNET, "invalid g_eWebSiteIndexFeedback: ", g_eWebSiteIndexFeedback, " - ", GET_WEBSITE_FROM_INDEX(g_eWebSiteIndexFeedback))
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
IF eStaticCurrentSite != WWW_DYNASTY8EXECUTIVEREALTY_COM
|
|
iLastClickedOffice = 0
|
|
ENDIF
|
|
ELSE
|
|
|
|
// Website element click detection
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_INTERNET, "Invalid website click detected: Site = ", GET_WEBSITE_FROM_INDEX(g_eWebSiteIndexFeedback),
|
|
" Page = ", g_iWebPageIndexFeedback,
|
|
" Index = ", g_iLastSelectedWebIndex,
|
|
" g_sLastSiteHash = ", GET_WEBSITE_FROM_HASH(g_sLastSiteHash))
|
|
#ENDIF
|
|
|
|
SWITCH g_sLastSiteHash
|
|
|
|
// Websites with embedded video
|
|
CASE HASH("WWW_FAMEORSHAME_NET")
|
|
IF NOT bTVOn
|
|
IF iStaticCurrentPage = 2 AND g_iLastSelectedWebIndex = 6 //Watch Now
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_FAMEORSHAME_NET: PLAY VIDEO")
|
|
SETUP_VIDEO_PLAYBACK("PL_WEB_FOS")
|
|
ELIF iStaticCurrentPage = 1 AND g_iLastSelectedWebIndex = 8 //homepage
|
|
SETUP_VIDEO_PLAYBACK("PL_WEB_FOS")
|
|
ELIF iStaticCurrentPage = 4 AND g_iLastSelectedWebIndex = 8 // Top acts
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_FAMEORSHAME_NET: PLAY VIDEO")
|
|
SETUP_VIDEO_PLAYBACK("PL_WEB_FOS")
|
|
ELIF iStaticCurrentPage = 4 AND g_iLastSelectedWebIndex = 8 // Top acts
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_FAMEORSHAME_NET: PLAY VIDEO")
|
|
SETUP_VIDEO_PLAYBACK("PL_WEB_FOS")
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE HASH("WWW_JACKHOWITZER_COM")
|
|
#IF NOT IS_JAPANESE_BUILD
|
|
IF NOT bTVOn
|
|
IF g_iLastSelectedWebIndex = 7
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_JACKHOWITZER_COM: PLAY VIDEO")
|
|
SETUP_VIDEO_PLAYBACK("PL_WEB_HOWITZER")
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
BREAK
|
|
|
|
CASE HASH("WWW_KUNGFURAINBOWLAZERFORCE_COM")
|
|
IF NOT bTVOn
|
|
IF g_iLastSelectedWebIndex = 6
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_KUNGFURAINBOWLAZERFORCE_COM: PLAY VIDEO")
|
|
SETUP_VIDEO_PLAYBACK("PL_WEB_KFLF")
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE HASH("WWW_PRINCESSROBOTBUBBLEGUM_COM")
|
|
// Disabled for PC ratings build B* 2199116
|
|
IF NOT (IS_PC_VERSION()
|
|
AND NOT IS_DLC_PRESENT(HASH("patchDay3NG")))
|
|
IF NOT bTVOn
|
|
IF g_iLastSelectedWebIndex = 6
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_PRINCESSROBOTBUBBLEGUM_COM: PLAY VIDEO")
|
|
SETUP_VIDEO_PLAYBACK("PL_WEB_PRB2")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE HASH("WWW_REPUBLICANSPACERANGERS_COM")
|
|
IF NOT bTVOn
|
|
IF g_iLastSelectedWebIndex = 8
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_REPUBLICANSPACERANGERS_COM: PLAY VIDEO")
|
|
SETUP_VIDEO_PLAYBACK("PL_WEB_RANGERS")
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE HASH("WWW_RIGHTEOUSSLAUGHTER7_COM")
|
|
IF NOT bTVOn
|
|
IF g_iLastSelectedWebIndex = 3
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_RIGHTEOUSSLAUGHTER7_COM: PLAY VIDEO")
|
|
SETUP_VIDEO_PLAYBACK("PL_WEB_RS")
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE HASH("WWW_SAWATERANDPOWER_COM")
|
|
IF g_iLastSelectedWebIndex = 5
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_SAWATERANDPOWER_COM: PLAY VIDEO")
|
|
ENDIF
|
|
BREAK
|
|
|
|
// Taco dialogue
|
|
CASE HASH("WWW_TACO_D_BOMB_COM")
|
|
|
|
IF g_iWebPageIndexFeedback = 2
|
|
CPRINTLN(DEBUG_INTERNET, "WWW_TACO_D_BOMB_COM: PLAY_TACO_LINE")
|
|
|
|
SWITCH g_iLastSelectedWebIndex
|
|
CASE 0
|
|
PLAY_TACO_LINE(TSL_PACOW_TASTY, spfc)
|
|
BREAK
|
|
CASE 1
|
|
PLAY_TACO_LINE(TSL_PACOW_COLON, spfc)
|
|
BREAK
|
|
CASE 2
|
|
PLAY_TACO_LINE(TSL_PACOW_CSEC, spfc)
|
|
BREAK
|
|
CASE 3
|
|
PLAY_TACO_LINE(TSL_PACOW_DOG, spfc)
|
|
BREAK
|
|
CASE 4
|
|
PLAY_TACO_LINE(TSL_PACOW_VOMIT, spfc)
|
|
BREAK
|
|
CASE 5
|
|
PLAY_TACO_LINE(TSL_PACOW_PAIN, spfc)
|
|
BREAK
|
|
CASE 6
|
|
PLAY_TACO_LINE(TSL_PACOW_MELT, spfc)
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
DEFAULT
|
|
CPRINTLN(DEBUG_INTERNET, "unknown g_sLastSiteHash: ", g_sLastSiteHash, " - ", GET_WEBSITE_FROM_HASH(g_sLastSiteHash))
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
|
|
bClickDetector = FALSE
|
|
ENDIF
|
|
|
|
IF IS_FLOATING_HELP_TEXT_ON_SCREEN(FLOATING_HELP_TEXT_ID_1)
|
|
CLEAR_FLOATING_HELP(FLOATING_HELP_TEXT_ID_1)
|
|
ENDIF
|
|
|
|
IF IS_FLOATING_HELP_TEXT_ON_SCREEN(FLOATING_HELP_TEXT_ID_2)
|
|
CLEAR_FLOATING_HELP(FLOATING_HELP_TEXT_ID_2)
|
|
ENDIF
|
|
|
|
RENDER_BROWSER()
|
|
|
|
WAIT(0) // Has to render
|
|
|
|
SET_INPUT_EXCLUSIVE (PLAYER_CONTROL, (INT_TO_ENUM (CONTROL_ACTION, PHONE_DELETE_OPTION_INPUT)))
|
|
SET_INPUT_EXCLUSIVE (PLAYER_CONTROL, (INT_TO_ENUM (CONTROL_ACTION, PHONE_SPECIAL_OPTION_INPUT)))
|
|
|
|
IF g_bBrowserUserMode
|
|
PASS_INPUTS_TO_BROWSER(mov)
|
|
ELSE
|
|
BROWSER_CURSOR_LOADING(FALSE)
|
|
IF iBSTutorialProgress = 3 //scroll on the listings page
|
|
CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_NORET(mov, "SET_ANALOG_STICK_INPUT",0.0,0.0,33.0)
|
|
ELSE
|
|
CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_NORET(mov, "SET_ANALOG_STICK_INPUT",0.0,0.0,0.0)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF (NOT (bTempFirstLoad))
|
|
TEXT_LABEL_63 sGoto = "WWW_EYEFIND_INFO"
|
|
|
|
SWITCH g_BrowserStartState
|
|
|
|
CASE SBSS_CashMachineFinance
|
|
sGoto = "WWW_BANK_COM"
|
|
BREAK
|
|
|
|
CASE SBSS_EyeFind
|
|
sGoto = "WWW_EYEFIND_INFO"
|
|
BREAK
|
|
|
|
CASE SBSS_LifeInvader
|
|
sGoto = "WWW_LIFEINVADER_COM"
|
|
g_iLifeInvaderTutorialLastVisitedPage = -1
|
|
BREAK
|
|
|
|
CASE SBSS_LifeInvader_BrucieResponse
|
|
g_iLifeInvaderTutorialLastVisitedPage = -1
|
|
sGoto = "WWW_LIFEINVADER_COM_S_USER584348_3"
|
|
BREAK
|
|
|
|
CASE SBSS_Launch_Link
|
|
sGoto = g_BrowserLinkToLaunch
|
|
BREAK
|
|
|
|
CASE SBSS_Bawsaq
|
|
sGoto = "WWW_BAWSAQ_COM"
|
|
BREAK
|
|
|
|
CASE SBSS_SHOP_RESTORE
|
|
sGoto = g_sTransitionSessionData.sEndReserve.stMPBrowserFromShopSite
|
|
BREAK
|
|
|
|
CASE SBSS_ArenaWar
|
|
sGoto = "WWW_ARENAWAR_TV"
|
|
BREAK
|
|
|
|
CASE SBSS_Casino
|
|
IF !DOES_PLAYER_OWN_A_CASINO_APARTMENT(PLAYER_ID())
|
|
sGoto = "WWW_THEDIAMONDCASINOANDRESORT_COM_S_SUITES"
|
|
ELSE
|
|
sGoto = "WWW_THEDIAMONDCASINOANDRESORT_COM_S_RENOVATE"
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> initial triggered with: ",sGoto)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"GO_TO_WEBPAGE")
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
|
|
ADD_TEXT_COMPONENT_SUBSTRING_WEBSITE(sGoto)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
IF ARE_STRINGS_EQUAL(sGoto, "WWW_EYEFIND_INFO")
|
|
LOAD_EYEFIND_TEXT_SLOT()
|
|
|
|
g_iWebPageIndexFeedback = 1
|
|
g_eWebSiteIndexFeedback = WWW_EYEFIND_INFO
|
|
|
|
//url:bugstar:5396844 - Internet - Shop tiles become unresponsive / unclickable after going to the inbox then quickly back to the Eyefind homepage
|
|
IF GET_CURRENT_WEBPAGE_ID() <> 7
|
|
AND GET_CURRENT_WEBPAGE_ID() <> 8
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> \"",sGoto, "\" triggered with webpageID ", GET_CURRENT_WEBPAGE_ID(), ", call SET_DATA_SLOT_EMPTY")
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_DATA_SLOT_EMPTY")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> \"",sGoto, "\" triggered with webpageID ", GET_CURRENT_WEBPAGE_ID(), ", dont call SET_DATA_SLOT_EMPTY")
|
|
ENDIF
|
|
|
|
SF_EYEFIND(mov, 1, sRepeatInfo, FALSE)
|
|
g_iTimeLastBrowserRefresh = GET_GAME_TIMER()
|
|
|
|
ELIF ARE_STRINGS_EQUAL(sGoto, "WWW_DYNASTY8REALESTATE_COM_S_LOS_D_SANTOS")
|
|
GO_TO_WEBSITE("WWW_DYNASTY8REALESTATE_COM") //works
|
|
|
|
g_iWebPageIndexFeedback = 1
|
|
g_eWebSiteIndexFeedback = WWW_DYNASTY8REALESTATE_COM
|
|
|
|
POPULATE_MP_PROPERTY_SITE_PIN_MAP(mov)
|
|
g_iTimeLastBrowserRefresh = GET_GAME_TIMER()
|
|
bPopulatePropertySitePinMap = TRUE
|
|
|
|
tl63sPopulatePropertySitePinMap = (sGoto)
|
|
ELIF ARE_STRINGS_EQUAL(sGoto, "WWW_DYNASTY8EXECUTIVEREALTY_COM_S_OFFICES")
|
|
GO_TO_WEBSITE("WWW_DYNASTY8EXECUTIVEREALTY_COM")
|
|
|
|
// g_iWebPageIndexFeedback = 1
|
|
// g_eWebSiteIndexFeedback = WWW_DYNASTY8EXECUTIVEREALTY_COM
|
|
//
|
|
// POPULATE_MP_EXEC_PROPERTY_SITE_PIN_MAP(mov, TRUE)
|
|
// g_iTimeLastBrowserRefresh = GET_GAME_TIMER()
|
|
// bPopulatePropertySitePinMap = TRUE
|
|
//
|
|
// tl63sPopulatePropertySitePinMap = (sGoto)
|
|
ELIF ARE_STRINGS_EQUAL(sGoto, "FORECLOSURES_MAZE_D_BANK_COM_S_PROPERTIES")
|
|
GO_TO_WEBSITE("FORECLOSURES_MAZE_D_BANK_COM")
|
|
|
|
// g_iWebPageIndexFeedback = 1
|
|
// g_eWebSiteIndexFeedback = FORECLOSURES_MAZE_D_BANK_COM
|
|
//
|
|
// POPULATE_MP_BIKER_PROPERTY_SITE_PIN_MAP(mov, TRUE)
|
|
// g_iTimeLastBrowserRefresh = GET_GAME_TIMER()
|
|
// bPopulatePropertySitePinMap = TRUE
|
|
//
|
|
// tl63sPopulatePropertySitePinMap = (sGoto)
|
|
|
|
ELIF ARE_STRINGS_EQUAL(sGoto, "WWW_THEDIAMONDCASINOANDRESORT_COM_S_SUITES")
|
|
OR ARE_STRINGS_EQUAL(sGoto, "WWW_THEDIAMONDCASINOANDRESORT_COM_S_RENOVATE")
|
|
// GO_TO_WEBSITE("WWW_THEDIAMONDCASINOANDRESORT_COM")
|
|
//
|
|
// g_iWebPageIndexFeedback = 1
|
|
// g_eWebSiteIndexFeedback = WWW_THEDIAMONDCASINOANDRESORT_COM
|
|
|
|
// POPULATE_MP_CASINO_PROPERTY_SITE_PIN_MAP(mov)
|
|
g_iTimeLastBrowserRefresh = GET_GAME_TIMER()
|
|
bPopulatePropertySitePinMap = TRUE
|
|
g_bPropertyRefreshTrigger = TRUE
|
|
|
|
//
|
|
// tl63sPopulatePropertySitePinMap = ("WWW_THEDIAMONDCASINOANDRESORT_COM")
|
|
ENDIF
|
|
|
|
bTempFirstLoad = TRUE
|
|
ENDIF
|
|
|
|
IF ChildInitStage != 0 // If the first stage is complete then
|
|
IF bPanicShutdownStart // Check for panic bailout
|
|
SET_BROWSER_OPEN(FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT bHasLoadedChildContent
|
|
|
|
INT iStageTimeout = 0
|
|
BOOL bTimedOut = FALSE
|
|
SWITCH ChildInitStage
|
|
|
|
CASE 0
|
|
WHILE NOT HAS_SCALEFORM_CONTAINER_MOVIE_LOADED_INTO_PARENT(mov)
|
|
AND (!bTimedOut)
|
|
CPRINTLN(DEBUG_INTERNET, "Web browser stage 0 startup - waiting for HAS_SCALEFORM_CONTAINER_MOVIE_LOADED_INTO_PARENT (iStageTimeout:", iStageTimeout, ")")
|
|
BROWSER_CURSOR_LOADING(FALSE)
|
|
IF IS_USING_CURSOR(FRONTEND_CONTROL)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_MOUSE_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_X ))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_Y ))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
fMouseWheelScrollSpeed = 0.0
|
|
ENDIF
|
|
iStageTimeout += FLOOR(0 +@ 1000)
|
|
|
|
IF iStageTimeout > 10000
|
|
CPRINTLN(DEBUG_INTERNET, "Browser timed out waiting for scaleform in stage 0")
|
|
bTimedOut = TRUE
|
|
ENDIF
|
|
RENDER_BROWSER()
|
|
|
|
IF NOT HAS_SCALEFORM_CONTAINER_MOVIE_LOADED_INTO_PARENT(mov)
|
|
AND (!bTimedOut)
|
|
AND (iStageTimeout > 2000)
|
|
AND(IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_CANCEL)
|
|
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_CANCEL)
|
|
OR (IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_CURSOR_CANCEL) AND NOT IS_WARNING_MESSAGE_ACTIVE()))
|
|
CPRINTLN(DEBUG_INTERNET, "FORCE_CLOSE_BROWSER from waiting web browser stage 0 startup.")
|
|
FORCE_CLOSE_BROWSER()
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(mov)
|
|
EXIT
|
|
ENDIF
|
|
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
IF !bTimedOut
|
|
CPRINTLN(DEBUG_INTERNET, "Scaleform return true to HAS_SCALEFORM_CONTAINER_MOVIE_LOADED_INTO_PARENT after ", iStageTimeout, "seconds, move to stage two")
|
|
ChildInitStage = 2
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "FORCE_CLOSE_BROWSER due to timeout, this means scaleform did not return true to HAS_SCALEFORM_CONTAINER_MOVIE_LOADED_INTO_PARENT in 10 seconds")
|
|
FORCE_CLOSE_BROWSER()
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 2
|
|
CPRINTLN(DEBUG_INTERNET, "Web browser stage 2 - complete, calling init")
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"INITIALISE_WEBSITE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "IS_SITE_DYNAMIC")
|
|
fudp = END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE()
|
|
iStageTimeout = g_iBrowserTimer + 6000
|
|
bTimedOut = FALSE
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "Appinternet waiting for site response in stage 3, waiting for IS_SITE_DYNAMIC to return...")
|
|
WHILE (NOT IS_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_READY(fudp))
|
|
AND (!bTimedOut)
|
|
BROWSER_CURSOR_LOADING(FALSE)
|
|
IF IS_USING_CURSOR(FRONTEND_CONTROL)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_MOUSE_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_X ))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_Y ))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
fMouseWheelScrollSpeed = 0.0
|
|
ENDIF
|
|
RENDER_BROWSER()
|
|
IF g_iBrowserTimer > iStageTimeout
|
|
bTimedOut = TRUE
|
|
ELSE
|
|
WAIT(0)
|
|
ENDIF
|
|
ENDWHILE
|
|
|
|
IF NOT bTimedOut
|
|
fudret = GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_INT(fudp)
|
|
ELSE
|
|
//assume the bugger is static and throw an assert
|
|
fudret = 0
|
|
CASSERTLN(DEBUG_INTERNET, "<WEB_BROWSER> Browser timed out waiting for IS_SITE_DYNAMIC to return true. Pass this bug to Default Levels.")
|
|
ENDIF
|
|
|
|
DO_WEBSITE_ANALYTICS_HASH_SET()
|
|
|
|
IF fudret = 1
|
|
iStaticLastPage = -1
|
|
iStaticCurrentPage = 0
|
|
eStaticLastSite = INVALID_WEBSITE_INDEX
|
|
eStaticCurrentSite = WWW_NOT_EXIST
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> Dynamic site ID check.")
|
|
bDynamic = TRUE
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> Waiting a second before calling GET_CURRENT_WEBSITE_ID() on currently loaded dynamic page.")
|
|
|
|
// GET_CURRENT_WEBSITE_ID() takes a moment to line up
|
|
iReturnPadding = 10
|
|
WHILE iReturnPadding != 0
|
|
--iReturnPadding
|
|
IF IS_USING_CURSOR(FRONTEND_CONTROL)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_MOUSE_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_X ))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_Y ))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
fMouseWheelScrollSpeed = 0.0
|
|
ENDIF
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
pgi = GET_CURRENT_WEBPAGE_ID()
|
|
wsi = INT_TO_ENUM(WEBSITE_INDEX_ENUM, GET_CURRENT_WEBSITE_ID())
|
|
|
|
//CPRINTLN(DEBUG_INTERNET, "GET_CURRENT_WEBPAGE_ID_WRAPPED = ", pgi ," GET_CURRENT_WEBSITE_ID_WRAPPED = ", wsi)
|
|
|
|
IF pgi != 0
|
|
IF pgi != iPageIDCheck
|
|
iPageIDLast = iPageIDCheck
|
|
iPageIDCheck = pgi
|
|
ENDIF
|
|
ELSE
|
|
pgi = iPageIDCheck
|
|
ENDIF
|
|
|
|
IF wsi != WWW_NOT_EXIST
|
|
|
|
IF wsi != eSiteIDCheck
|
|
iCurrentSiteTimer = 0
|
|
CPRINTLN(DEBUG_INTERNET, "Resetting site timer")
|
|
ENDIF
|
|
eSiteIDCheck = wsi
|
|
ELSE
|
|
wsi = eSiteIDCheck
|
|
ENDIF
|
|
|
|
SWITCH g_BrowserStartState
|
|
|
|
CASE SBSS_Default
|
|
CPRINTLN(DEBUG_INTERNET, "SWITCH g_BrowserStartState -> SBSS_Default")
|
|
|
|
IF wsi = WWW_EYEFIND_INFO
|
|
LOAD_EYEFIND_TEXT_SLOT()
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "about to call SF_UPDATE_DYNAMIC_SITE_CONTENT from g_BrowserStartState -> SBSS_Default")
|
|
SF_UPDATE_DYNAMIC_SITE_CONTENT((wsi), pgi, mov, sRepeatInfo, spfc, TRUE)
|
|
|
|
bUpdatedEyeFindNewsThisFrame = FALSE // make sure the next call to SF_UPDATE_DYNAMIC_SITE_CONTENT doesn't update the news story
|
|
|
|
IF wsi = WWW_LIFEINVADER_COM
|
|
IF bIsInternetTextSupported
|
|
// We must make sure the Lifeinvader text has loaded before progressing
|
|
WHILE NOT HAS_ADDITIONAL_TEXT_LOADED(SHOP_TEXT_SLOT)
|
|
RENDER_BROWSER()
|
|
CPRINTLN(DEBUG_INTERNET, "Waiting for Lifeinvader text to load")
|
|
WAIT(0)
|
|
ENDWHILE
|
|
IF HAS_ADDITIONAL_TEXT_LOADED(SHOP_TEXT_SLOT)
|
|
CPRINTLN(DEBUG_INTERNET, "Lifeinvader text loaded!")
|
|
ENDIF
|
|
//UPDATE_LIFEINVADER_PAGE(mov)
|
|
g_iTimeLastBrowserRefresh = GET_GAME_TIMER() - WEB_BROWSER_PAGE_REFRESH_RATE
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, " load lifeinvader text failed bIsInternetTextSupported = FALSE")
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
|
|
CASE SBSS_LifeInvader
|
|
CASE SBSS_LifeInvader_BrucieResponse
|
|
CPRINTLN(DEBUG_INTERNET, "SWITCH g_BrowserStartState -> SBSS_LifeInvader or SBSS_LifeInvader_BrucieResponse")
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "LFTUTORIALPRINT!")
|
|
bLifeInvaderTutorialMode = TRUE
|
|
SF_UPDATE_DYNAMIC_SITE_CONTENT((wsi),pgi,mov, sRepeatInfo, spfc)
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> Website ", GET_WEBSITE_FROM_INDEX(wsi), " is dynamic...")
|
|
|
|
// IF (wsi = WWW_EYEFIND_INFO)
|
|
// IF g_bInMultiplayer
|
|
// AND NOT g_bBrowser_MBANKHELP_seen
|
|
// IF DOES_LOCAL_PLAYER_STAT_OWN_DEFUNCT_BASE()
|
|
// CPRINTLN(DEBUG_INTERNET, "<HELP> - display MBANKHELP (iStaticCurrentPage: ", iStaticCurrentPage, "), already owns DBASE")
|
|
// g_bBrowser_MBANKHELP_seen = TRUE
|
|
// ELSE
|
|
// CPRINTLN(DEBUG_INTERNET, "<HELP> - display MBANKHELP (iStaticCurrentPage: ", iStaticCurrentPage, ")")
|
|
//
|
|
// SET_GLOBAL_BROWSER_HELP_MESSAGE_STRUCT("MBANKHELP", DEFAULT, FALSE)
|
|
// iTutTimer = g_iBrowserTimer + 7500
|
|
// g_bBrowser_MBANKHELP_seen = TRUE
|
|
// ENDIF
|
|
// ENDIF
|
|
// ENDIF
|
|
|
|
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> Website ", GET_WEBSITE_FROM_HASH(g_sLastSiteHash), " not dynamic...")
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> Waiting a second before calling GET_CURRENT_WEBSITE_ID() on currently loaded dynamic page.")
|
|
|
|
// GET_CURRENT_WEBSITE_ID() takes a moment to line up
|
|
iReturnPadding = 10
|
|
WHILE iReturnPadding != 0
|
|
--iReturnPadding
|
|
IF IS_USING_CURSOR(FRONTEND_CONTROL)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_MOUSE_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_X ))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_Y ))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
fMouseWheelScrollSpeed = 0.0
|
|
ENDIF
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
DO_STATIC_SITE_CHECKS()
|
|
|
|
|
|
bDynamic = FALSE
|
|
|
|
IF g_sLastSiteHash = HASH("WWW_FAMEORSHAME_NET")
|
|
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_FAMILY_4)
|
|
CPRINTLN(DEBUG_INTERNET, "Entered Fame Or Shame - Post Family 4")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "Entered Fame Or Shame - Pre Family 4")
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BOOL bDisableVideo
|
|
bDisableVideo = FALSE
|
|
|
|
// B*1557251 - Disable video on websites when cinema or tv script is active
|
|
IF NOT bDisableVideo
|
|
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("act_cinema")) <> 0
|
|
CPRINTLN(DEBUG_INTERNET, "Disabling video functionality for ", GET_WEBSITE_FROM_HASH(g_sLastSiteHash), " as cinema script is active.")
|
|
bDisableVideo = TRUE
|
|
ELIF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("ob_tv")) <> 0
|
|
CPRINTLN(DEBUG_INTERNET, "Disabling video functionality for ", GET_WEBSITE_FROM_HASH(g_sLastSiteHash), " as tv object script is active.")
|
|
bDisableVideo = TRUE
|
|
ELIF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("am_mp_property_int")) <> 0 // Stop internet videos from working in MP apartments (url:bugstar:1605987)
|
|
CPRINTLN(DEBUG_INTERNET, "Disabling video functionality for ", GET_WEBSITE_FROM_HASH(g_sLastSiteHash), " as property script is active.")
|
|
bDisableVideo = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// B*5248616 - Nightclub Purchase Flow - Preview bink videos are not suppressed in the Hangar, but do not play.
|
|
IF NOT bDisableVideo
|
|
IF IS_PLAYER_IN_HANGAR(PLAYER_ID())
|
|
PLAYER_INDEX hangarOwner
|
|
hangarOwner = globalPlayerBD[NATIVE_TO_INT(PLAYER_ID())].SimpleInteriorBD.propertyOwner
|
|
IF hangarOwner != INVALID_PLAYER_INDEX()
|
|
IF IS_PLAYER_HANGAR_FURNITURE_TRADITIONAL_PURCHASED(hangarOwner)
|
|
OR IS_PLAYER_HANGAR_FURNITURE_MODERN_PURCHASED(hangarOwner)
|
|
CPRINTLN(DEBUG_INTERNET, "Disabling video functionality for ", GET_WEBSITE_FROM_HASH(g_sLastSiteHash), " as player is in ", GET_PLAYER_NAME(hangarOwner), " hangar which has a tv.")
|
|
bDisableVideo = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// B*5248616 - Nightclub Purchase Flow - Preview bink videos are not suppressed in the Hangar, but do not play.
|
|
IF NOT bDisableVideo
|
|
IF IS_PLAYER_IN_CASINO(PLAYER_ID())
|
|
CPRINTLN(DEBUG_INTERNET, "Disabling video functionality for ", GET_WEBSITE_FROM_HASH(g_sLastSiteHash), " as player is in casino which has a tv.")
|
|
bDisableVideo = TRUE
|
|
ELIF IS_PLAYER_IN_CASINO_APARTMENT(PLAYER_ID())
|
|
CPRINTLN(DEBUG_INTERNET, "Disabling video functionality for ", GET_WEBSITE_FROM_HASH(g_sLastSiteHash), " as player is in casino apartment which has a tv.")
|
|
bDisableVideo = TRUE
|
|
ELIF IS_PLAYER_IN_ARCADE_PROPERTY(PLAYER_ID())
|
|
CPRINTLN(DEBUG_INTERNET, "Disabling video functionality for ", GET_WEBSITE_FROM_HASH(g_sLastSiteHash), " as player is in arcade which has a tv.")
|
|
bDisableVideo = TRUE
|
|
ENDIF
|
|
|
|
IF g_sLastSiteHash = HASH("WWW_THEDIAMONDCASINOANDRESORT_COM")
|
|
IF NOT IS_GAMBLING_APPROVED_REGION()
|
|
CPRINTLN(DEBUG_INTERNET, "Disabling video functionality for ", GET_WEBSITE_FROM_HASH(g_sLastSiteHash), " restricted region.")
|
|
bDisableVideo = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bDisableVideo
|
|
// Websites with embedded video
|
|
IF g_sLastSiteHash = HASH("WWW_FAMEORSHAME_NET")
|
|
OR g_sLastSiteHash = HASH("WWW_JACKHOWITZER_COM")
|
|
OR g_sLastSiteHash = HASH("WWW_KUNGFURAINBOWLAZERFORCE_COM")
|
|
OR g_sLastSiteHash = HASH("WWW_PRINCESSROBOTBUBBLEGUM_COM")
|
|
OR g_sLastSiteHash = HASH("WWW_REPUBLICANSPACERANGERS_COM")
|
|
OR g_sLastSiteHash = HASH("WWW_RIGHTEOUSSLAUGHTER7_COM")
|
|
OR g_sLastSiteHash = HASH("FORECLOSURES_MAZE_D_BANK_COM")
|
|
OR g_sLastSiteHash = HASH("WWW_THEDIAMONDCASINOANDRESORT_COM")
|
|
DISABLE_VIDEO_PLAYBACK()
|
|
ELSE
|
|
bVideoDisabled = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// DISABLE PRINCESS ROBOT BUBBLEGUM ON PC VERSION FOR RATINGS BUILD - See B* 2199116
|
|
IF IS_PC_VERSION()
|
|
AND NOT IS_DLC_PRESENT(HASH("patchDay3NG"))
|
|
IF g_sLastSiteHash = HASH("WWW_PRINCESSROBOTBUBBLEGUM_COM")
|
|
CPRINTLN(DEBUG_INTERNET, "Disabling video functionality for Princess Robot Bubblegum, as this is now \"patchDay3NG\" DLC.")
|
|
DISABLE_VIDEO_PLAYBACK()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// Disable Jack Howitzer for Japanese build
|
|
#IF IS_JAPANESE_BUILD
|
|
IF g_sLastSiteHash = HASH("WWW_JACKHOWITZER_COM")
|
|
CPRINTLN(DEBUG_INTERNET, "Disabling video functionality for Japanese build")
|
|
DISABLE_VIDEO_PLAYBACK()
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
// Windmill video hasn't got a standalone clip at present
|
|
IF g_sLastSiteHash = HASH("WWW_SAWATERANDPOWER_COM")
|
|
CPRINTLN(DEBUG_INTERNET, "Disabling video functionality as video is not available as a standalone.")
|
|
DISABLE_VIDEO_PLAYBACK()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ChildInitStage = 3
|
|
bHasLoadedChildContent = TRUE
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
// Child content is loaded, check if anything needs to change
|
|
ELSE
|
|
|
|
IF bPanicShutdownStart
|
|
SET_BROWSER_OPEN(FALSE)
|
|
ENDIF
|
|
|
|
//check if child movie has changed
|
|
//cm = GET_SCALEFORM_CONTAINER_MOVIE_REQUESTED()
|
|
|
|
IF NOT HAS_SCALEFORM_CONTAINER_MOVIE_LOADED_INTO_PARENT(mov)//NOT (cm = NULL)
|
|
|
|
//update is happening
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> Site change detected!")
|
|
|
|
IF bStreamLoaded OR bDoLoadStream
|
|
STOP_STREAM()
|
|
CPRINTLN(DEBUG_INTERNET, "appInternet: Trying to stop streamed audio")
|
|
bStreamLoaded = FALSE
|
|
bDoLoadStream = FALSE
|
|
ENDIF
|
|
|
|
IF bAWStreamLoaded OR bDoLoadAWStream
|
|
STOP_STREAM()
|
|
CPRINTLN(DEBUG_INTERNET, "appInternet: Trying to stop streamed arena wars audio")
|
|
bAWStreamLoaded = FALSE
|
|
bDoLoadAWStream = FALSE
|
|
ENDIF
|
|
|
|
IF HAS_ADDITIONAL_TEXT_LOADED(SHOP_TEXT_SLOT)
|
|
CPRINTLN(DEBUG_INTERNET, "Clearing SHOP_TEXT_SLOT on website change")
|
|
CLEAR_ADDITIONAL_TEXT(SHOP_TEXT_SLOT, FALSE)
|
|
RESET_LIFEINVADER() // if the shop text has loaded, we were just on Lifeinvader but have left it, reset the vars for it
|
|
ENDIF
|
|
|
|
bHasLoadedChildContent = FALSE
|
|
g_bForceBrowserRefresh = FALSE
|
|
ChildInitStage = 0//now goes to init stage
|
|
ELSE
|
|
BOOL bChangeDetected = FALSE
|
|
|
|
IF bDynamic
|
|
|
|
// If the site is dynamic then keep an eye on page changes
|
|
// Check for page index change
|
|
iPgBack = GET_CURRENT_WEBPAGE_ID()
|
|
wsi = INT_TO_ENUM(WEBSITE_INDEX_ENUM, GET_CURRENT_WEBSITE_ID())
|
|
|
|
//CPRINTLN(DEBUG_INTERNET, "WEBDEBUG : DYNAMIC : GET_CURRENT_WEBPAGE_ID_WRAPPED = ", iPgBack ," GET_CURRENT_WEBSITE_ID_WRAPPED = ", wsi)
|
|
|
|
WEBSITE_INDEX_ENUM wsiLast = eSiteIDCheck
|
|
IF wsi != WWW_NOT_EXIST
|
|
eSiteIDCheck = wsi
|
|
ENDIF
|
|
|
|
IF iPgBack != 0
|
|
iPageIDCheck = iPgBack
|
|
ENDIF
|
|
|
|
IF iPageIDCheck != iPageIDLast
|
|
OR eSiteIDCheck != wsiLast
|
|
OR g_sLastLastSiteHash != g_sLastSiteHash // to catch situation between market pages with same index
|
|
|
|
g_sLastLastSiteHash = g_sLastSiteHash
|
|
bSelectionHoldActionDetector = FALSE
|
|
|
|
//do site and page specific callbacks
|
|
BOOL bDoStockFunctionality = FALSE
|
|
|
|
SWITCH eSiteIDCheck
|
|
|
|
CASE WWW_BAWSAQ_COM
|
|
|
|
// Coming from somewhere else, update ticker
|
|
IF wsiLast != WWW_BAWSAQ_COM
|
|
g_bTickerPriceChange = TRUE
|
|
ENDIF
|
|
bDoStockFunctionality = TRUE
|
|
BREAK
|
|
|
|
CASE WWW_EPSILONPROGRAM_COM
|
|
// Setup audio trigger
|
|
IF NOT bStreamLoaded
|
|
bDoLoadStream = TRUE
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE WWW_LIFEINVADER_COM
|
|
|
|
IF (NOT IS_CURRENTLY_ON_MISSION_TO_TYPE()) AND (NOT bLifeInvaderTutorialMode)
|
|
//redirect broke the back button functionality.
|
|
//killing it because this site is placeholder these days
|
|
//CPRINTLN(DEBUG_INTERNET, "Lifeinvader redirect")
|
|
//GO_TO_WEBSITE("WWW_LIFEINVADER_COM")
|
|
ELSE
|
|
SWITCH iPageIDCheck
|
|
CASE 6
|
|
g_bLifeInvaderMissionMessageToBruciePosted = TRUE
|
|
BREAK
|
|
CASE 8
|
|
g_bLifeInvaderMissionResponseToBruciePosted = TRUE
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE WWW_LCN_D_EXCHANGE_COM
|
|
|
|
// Coming from somewhere else, update ticker
|
|
IF wsiLast != WWW_LCN_D_EXCHANGE_COM
|
|
g_bTickerPriceChange = TRUE
|
|
ENDIF
|
|
bDoStockFunctionality = TRUE
|
|
BREAK
|
|
|
|
CASE WWW_ARENAWAR_TV
|
|
// Setup audio trigger
|
|
IF NOT bAWStreamLoaded
|
|
bDoLoadAWStream = TRUE
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
STOCK_SYSTEM_CHECK(bDoStockFunctionality)
|
|
|
|
|
|
//IF g_iLastSelectedWebIndex <> 22
|
|
//AND g_iLastSelectedWebIndex <> 23
|
|
//AND g_eWebSiteIndexFeedback <> 2
|
|
|
|
IF eSiteIDCheck = WWW_EYEFIND_INFO
|
|
LOAD_EYEFIND_TEXT_SLOT()
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "about to call SF_UPDATE_DYNAMIC_SITE_CONTENT [iPageIDCheck != iPageIDLast:", iPageIDCheck != iPageIDLast, "] OR [eSiteIDCheck != wsiLast:", eSiteIDCheck != wsiLast, "] OR [g_sLastLastSiteHash != g_sLastSiteHash:", g_sLastLastSiteHash != g_sLastSiteHash, "] , bUpdatedEyeFindNewsThisFrame = ", bUpdatedEyeFindNewsThisFrame)
|
|
|
|
SF_UPDATE_DYNAMIC_SITE_CONTENT(eSiteIDCheck,iPageIDCheck,mov, sRepeatInfo, spfc, bUpdatedEyeFindNewsThisFrame)
|
|
|
|
bUpdatedEyeFindNewsThisFrame = TRUE // make sure the next call to SF_UPDATE_DYNAMIC_SITE_CONTENT resets the update's the news story
|
|
iPageIDLast = iPageIDCheck
|
|
IF bDoLoadStream
|
|
IF IS_GAME_IN_CONTROL_OF_MUSIC() // Fix for TRC 1590789
|
|
CPRINTLN(DEBUG_INTERNET, "Appinternet waiting for site music to load:LOAD_STREAM(MUSIC, EPSILONISM_SITE_MUSIC)")
|
|
WHILE NOT LOAD_STREAM("MUSIC", "EPSILONISM_SITE_SOUNDS")
|
|
BROWSER_CURSOR_LOADING(FALSE)
|
|
IF IS_USING_CURSOR(FRONTEND_CONTROL)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_MOUSE_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_X ))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_Y ))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
fMouseWheelScrollSpeed = 0.0
|
|
ENDIF
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
bStreamLoaded = TRUE
|
|
PLAY_STREAM_FRONTEND()
|
|
bDoLoadStream = FALSE
|
|
START_AUDIO_SCENE("WEB_EPSILONISM_SITE_MUSIC_SCENE")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "Appinternet wanted to stream Epsilon music but IS_GAME_IN_CONTROL_OF_MUSIC returned false")
|
|
bStreamLoaded = FALSE
|
|
bDoLoadStream = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bDoLoadAWStream
|
|
IF IS_GAME_IN_CONTROL_OF_MUSIC()
|
|
CPRINTLN(DEBUG_INTERNET, "Appinternet waiting for arena wars site music to load:LOAD_STREAM(MUSIC, DLC_AW_Arena_Websites_Sounds)")
|
|
WHILE NOT LOAD_STREAM("MUSIC", "DLC_AW_Arena_Websites_Sounds")
|
|
BROWSER_CURSOR_LOADING(FALSE)
|
|
IF IS_USING_CURSOR(FRONTEND_CONTROL)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SET_MOUSE_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_X ))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(GET_DISABLED_CONTROL_NORMAL( FRONTEND_CONTROL, INPUT_CURSOR_Y ))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
fMouseWheelScrollSpeed = 0.0
|
|
ENDIF
|
|
RENDER_BROWSER()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
bAWStreamLoaded = TRUE
|
|
PLAY_STREAM_FRONTEND()
|
|
bDoLoadAWStream = FALSE
|
|
// START_AUDIO_SCENE("DLC_AW_Arena_Websites_Sounds")
|
|
ELSE
|
|
CPRINTLN(DEBUG_INTERNET, "Appinternet wanted to stream arena wars music but IS_GAME_IN_CONTROL_OF_MUSIC returned false")
|
|
bAWStreamLoaded = FALSE
|
|
bDoLoadAWStream = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
// Do temp debug stock modifier key check
|
|
//BOOL bDebugRaiseKey = FALSE
|
|
#IF IS_DEBUG_BUILD
|
|
IF NOT bDebugRaiseKey
|
|
IF IS_KEYBOARD_KEY_PRESSED(KEY_K)
|
|
bDebugRaiseKey = TRUE
|
|
CPRINTLN(DEBUG_INTERNET, "BRT bought modifier posted.")
|
|
//BAWSAQ_INTERNAL_INCREMENT_MODIFIER(BSMF_VA_BOUGHT_VH_BRUTE,25)
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_KEYBOARD_KEY_PRESSED(KEY_K)
|
|
bDebugRaiseKey = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//BOOL bDebugCrashKey = FALSE
|
|
IF NOT bDebugCrashKey
|
|
IF IS_KEYBOARD_KEY_PRESSED(KEY_L)
|
|
bDebugCrashKey = TRUE
|
|
CPRINTLN(DEBUG_INTERNET, "BRT destroy modifier posted.")
|
|
//BAWSAQ_INTERNAL_INCREMENT_MODIFIER(BSMF_VA_DESTROYED_VH_BRUTE,25)
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_KEYBOARD_KEY_PRESSED(KEY_L)
|
|
bDebugCrashKey = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
// Do update if on the stock site and on a page that should refresh
|
|
IF g_bStockMarketBrowserUpdateTick
|
|
IF (g_iWebPageIndexFeedback = 4)
|
|
IF(NOT((iPageIDCheck = 9) OR (iPageIDCheck = 8) ))
|
|
g_bForceBrowserRefresh = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
g_bStockMarketBrowserUpdateTick = FALSE
|
|
|
|
IF g_bForceBrowserRefresh
|
|
IF eSiteIDCheck = WWW_EYEFIND_INFO
|
|
LOAD_EYEFIND_TEXT_SLOT()
|
|
ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "about to call SF_UPDATE_DYNAMIC_SITE_CONTENT from g_bForceBrowserRefresh TRUE : bUpdatedEyeFindNewsThisFrame = ", bUpdatedEyeFindNewsThisFrame)
|
|
g_bForceBrowserRefresh = FALSE
|
|
SF_UPDATE_DYNAMIC_SITE_CONTENT(eSiteIDCheck,iPageIDCheck,mov, sRepeatInfo, spfc, bUpdatedEyeFindNewsThisFrame)
|
|
bUpdatedEyeFindNewsThisFrame = TRUE // make sure the next call to SF_UPDATE_DYNAMIC_SITE_CONTENT resets the update's the news story
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
// Static site, clear settings that could mess stuff up
|
|
bSelectionHoldActionDetector = FALSE
|
|
|
|
DO_STATIC_SITE_CHECKS()
|
|
ENDIF
|
|
|
|
IF NOT bChangeDetected
|
|
|
|
IF g_iPendingBrowserTimer > -1
|
|
IF g_iPendingBrowserTimer < g_iBrowserTimer
|
|
BOOL bSafeToCall_GO_TO_WEBPAGE = TRUE
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(tl63sPropertyResultsWebpage)
|
|
WEBSITE_INDEX_ENUM eSite = INT_TO_ENUM(WEBSITE_INDEX_ENUM, GET_CURRENT_WEBSITE_ID()) // fudret
|
|
IF (eSite = WWW_DYNASTY8REALESTATE_COM) AND ARE_STRINGS_EQUAL(tl63sPropertyResultsWebpage, "WWW_DYNASTY8REALESTATE_COM")
|
|
OR (eSite = WWW_DYNASTY8EXECUTIVEREALTY_COM) AND ARE_STRINGS_EQUAL(tl63sPropertyResultsWebpage, "WWW_DYNASTY8EXECUTIVEREALTY_COM")
|
|
OR (eSite = FORECLOSURES_MAZE_D_BANK_COM) AND ARE_STRINGS_EQUAL(tl63sPropertyResultsWebpage, "FORECLOSURES_MAZE_D_BANK_COM")
|
|
OR (eSite = WWW_ARENAWAR_TV) AND ARE_STRINGS_EQUAL(tl63sPropertyResultsWebpage, "WWW_ARENAWAR_TV")
|
|
OR (eSite = WWW_THEDIAMONDCASINOANDRESORT_COM) AND ARE_STRINGS_EQUAL(tl63sPropertyResultsWebpage, "WWW_THEDIAMONDCASINOANDRESORT_COM")
|
|
IF (eSite = eStaticCurrentSite)
|
|
CDEBUG1LN(DEBUG_INTERNET, "SWITCH_TO_PROPERTY_RESULTS_PAGE - eSite:", GET_WEBSITE_FROM_INDEX(eSite), ", tl63sPropertyResultsWebpage:\"", tl63sPropertyResultsWebpage, "\", all ok")
|
|
ELSE
|
|
CDEBUG1LN(DEBUG_INTERNET, "SWITCH_TO_PROPERTY_RESULTS_PAGE - eSite:", GET_WEBSITE_FROM_INDEX(eSite), ", eStaticCurrentSite:", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite), ", tl63sPropertyResultsWebpage:\"", tl63sPropertyResultsWebpage, "\", all ok")
|
|
ENDIF
|
|
ELSE
|
|
//
|
|
IF (eSite = eStaticCurrentSite)
|
|
CASSERTLN(DEBUG_INTERNET, "SWITCH_TO_PROPERTY_RESULTS_PAGE - eSite:", GET_WEBSITE_FROM_INDEX(eSite), ", tl63sPropertyResultsWebpage:\"", tl63sPropertyResultsWebpage, "\", bail from success page")
|
|
ELSE
|
|
CASSERTLN(DEBUG_INTERNET, "SWITCH_TO_PROPERTY_RESULTS_PAGE - eSite:", GET_WEBSITE_FROM_INDEX(eSite), ", eStaticCurrentSite:", GET_WEBSITE_FROM_INDEX(eStaticCurrentSite), ", tl63sPropertyResultsWebpage:\"", tl63sPropertyResultsWebpage, "\", bail from success page")
|
|
ENDIF
|
|
bSafeToCall_GO_TO_WEBPAGE = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
IF bSafeToCall_GO_TO_WEBPAGE
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> change triggered with: ",g_sPendingBrowserPage)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"GO_TO_WEBPAGE")
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
|
|
ADD_TEXT_COMPONENT_SUBSTRING_WEBSITE(g_sPendingBrowserPage)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
g_iPendingBrowserTimer = -1
|
|
tl63sPropertyResultsWebpage = ""
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bDynamic
|
|
IF eSiteIDCheck = WWW_BAWSAQ_COM
|
|
OR eSiteIDCheck = WWW_LCN_D_EXCHANGE_COM
|
|
FLOAT delta = 0 +@ 1.0
|
|
INT dms = FLOOR(delta*1000.0)
|
|
//CPRINTLN(DEBUG_INTERNET, "Procdelta ", dms)
|
|
QUICK_INCREMENT_INT_STAT(TIME_SPENT_ON_STOCKMARKET,dms)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
bControlsEnabled = TRUE
|
|
|
|
IF g_BrowserStartState != SBSS_Launch_Link
|
|
IF IS_FLOW_HELP_QUEUE_EMPTY()
|
|
IF (NOT g_savedGlobals.sFinanceData.bBrowserTutorialSeen)
|
|
AND (NOT g_bInMultiplayer)
|
|
AND (NOT IS_CURRENTLY_ON_MISSION_OF_ANY_TYPE())
|
|
PROGRESS_FIRST_TIME_TUTORIAL()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
// Epsilon Presentation
|
|
IF g_iEpsilonTutorialStage != epsTutorialLast
|
|
|
|
IF g_iEpsilonTutorialStage > 6
|
|
CPRINTLN(DEBUG_INTERNET, "EPSILON: Presentation has finished!")
|
|
g_iEpsilonTutorialStage = -1
|
|
ENDIF
|
|
|
|
IF epsTutorialLast = -1 AND g_iEpsilonTutorialStage > 0
|
|
// g_bBrowserUserMode = FALSE
|
|
PAUSE_CLOCK(TRUE)
|
|
START_EPSILON_PRESENTATION()
|
|
|
|
ELIF g_iEpsilonTutorialStage = -1 AND epsTutorialLast > 0
|
|
PAUSE_CLOCK(FALSE)
|
|
// g_bBrowserUserMode = TRUE
|
|
ENDIF
|
|
|
|
// The first param passed must be 0. Pass the slideshow page as the second param.
|
|
// Valid range is 0 to 8 (nine pages to match the audio).
|
|
IF g_iEpsilonTutorialStage > -1 AND g_iEpsilonTutorialStage < 6
|
|
CPRINTLN(DEBUG_INTERNET, "EPSILON: Presentation, stage = ", g_iEpsilonTutorialStage)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "PROXY_FUNCTION")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(g_iEpsilonTutorialStage)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
epsTutorialLast = g_iEpsilonTutorialStage
|
|
ENDIF
|
|
|
|
// Epsilon tutorial in progress update
|
|
IF g_iEpsilonTutorialStage > -1
|
|
UPDATE_EPSILON_PRESENTATION()
|
|
ENDIF
|
|
|
|
IF bTVon
|
|
IF IS_PAUSE_MENU_ACTIVE() //B * 1629013 - In MP we need to turn off bink playback if the pause menu is active, as there's not enough memory.
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> Pause menu active: turn off TV")
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SUPRESS_HISTORY")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
SET_TV_CHANNEL(TVCHANNELTYPE_CHANNEL_NONE)
|
|
STOP_AUDIO_SCENE("INTERNET_BROWSER_VIDEO_SCENE")
|
|
bTVOn = FALSE
|
|
iTVOnTimeoutFrameCount = -1
|
|
|
|
ELSE
|
|
|
|
SET_TEXT_RENDER_ID(GET_DEFAULT_SCRIPT_RENDERTARGET_RENDER_ID())
|
|
SET_SCRIPT_GFX_DRAW_ORDER(GFX_ORDER_AFTER_HUD)
|
|
SET_SCRIPT_GFX_DRAW_BEHIND_PAUSEMENU(TRUE)
|
|
DRAW_TV_CHANNEL(0.5,0.5,0.5,0.5,0.0,255,255,255,255)
|
|
|
|
ENDIF
|
|
|
|
IF iTVOnTimeoutFrameCount != -1
|
|
INT iFrameCount = GET_FRAME_COUNT()
|
|
CDEBUG3LN(DEBUG_INTERNET, "<WEB_BROWSER> TV Frame Count: should turn off TV after ", TO_FLOAT(iTVOnTimeoutFrameCount-iFrameCount)/1000.0, "ms?")
|
|
|
|
IF iFrameCount >= iTVOnTimeoutFrameCount
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> TV Frame Count: turn off TV")
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SUPRESS_HISTORY")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
SET_TV_CHANNEL(TVCHANNELTYPE_CHANNEL_NONE)
|
|
STOP_AUDIO_SCENE("INTERNET_BROWSER_VIDEO_SCENE")
|
|
bTVOn = FALSE
|
|
iTVOnTimeoutFrameCount = -1
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
// Called every frame while the browser is open.
|
|
IF HAS_NET_TIMER_STARTED(timerAutoCloseDelay)
|
|
IF HAS_NET_TIMER_EXPIRED(timerAutoCloseDelay, iAutoCloseDelayTime)
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> timerAutoCloseDelay - Auto closing browser!")
|
|
FORCE_CLOSE_BROWSER()
|
|
RESET_NET_TIMER(timerAutoCloseDelay)
|
|
iAutoCloseDelayTime = ciAUTO_CLOSE_DELAY_TIME_DEFAULT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ELSE
|
|
WAIT(200)
|
|
ENDIF
|
|
|
|
IF IS_SCRIPT_HUD_DISPLAYING(HUDPART_TRANSITIONHUD)
|
|
CPRINTLN(DEBUG_INTERNET, "Browser script hud bail.")
|
|
g_bBrowserQuitMessage = TRUE
|
|
ENDIF
|
|
|
|
IF IS_REPLAY_BEING_PROCESSED()
|
|
g_bBrowserQuitMessage = TRUE
|
|
ENDIF
|
|
|
|
IF g_bBrowserQuitMessage = TRUE
|
|
IF bHasLoadedChildContent // no termination during child content load
|
|
g_bBrowserQuitMessage = FALSE
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: Shutdown due to quit message being posted")
|
|
FORCE_CLOSE_BROWSER()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bSelectionHoldActionDetector
|
|
IF iSelectionHoldActionRateTracker > 20
|
|
|
|
BROWSER_SET_CURSOR_STATE("BUSY")
|
|
|
|
IF bSelectionHoldActionPolarity
|
|
g_iSharesToBuySell+= 1 + ((g_iSharesToBuySell+1)/50)
|
|
g_bForceBrowserRefresh = TRUE
|
|
|
|
IF g_iSharesToBuySell > g_iSharesBuySellCap
|
|
g_iSharesToBuySell = g_iSharesBuySellCap
|
|
ENDIF
|
|
ELSE
|
|
g_iSharesToBuySell-= 1 + ((g_iSharesToBuySell+1)/100)
|
|
g_bForceBrowserRefresh = TRUE
|
|
ENDIF
|
|
ELSE
|
|
++iSelectionHoldActionRateTracker
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bPanicShutdownStart
|
|
SET_BROWSER_OPEN(FALSE)
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
//BOOL DebugAttemptToForceWebsite = FALSE
|
|
//STRING DebugForceSiteTo = "WWW_EYEFIND_INFO"
|
|
|
|
IF DebugAttemptToForceWebsite
|
|
DebugAttemptToForceWebsite = FALSE
|
|
IF DOES_WIDGET_GROUP_EXIST(DebugBrowserWidgets)
|
|
GO_TO_WEBSITE(GET_CONTENTS_OF_TEXT_WIDGET(forceTo))
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DebugLudicrousMoney = TRUE
|
|
DebugLudicrousMoney = FALSE
|
|
|
|
g_BankAccounts[BANK_ACCOUNT_MICHAEL].iBalance = 2147483647
|
|
BANK_FORCE_UPDATE_LINKED_ACCOUNT_STATS(BANK_ACCOUNT_MICHAEL)
|
|
g_BankAccounts[BANK_ACCOUNT_FRANKLIN].iBalance = 2147483647
|
|
BANK_FORCE_UPDATE_LINKED_ACCOUNT_STATS(BANK_ACCOUNT_FRANKLIN)
|
|
g_BankAccounts[BANK_ACCOUNT_TREVOR].iBalance = 2147483647
|
|
BANK_FORCE_UPDATE_LINKED_ACCOUNT_STATS(BANK_ACCOUNT_TREVOR)
|
|
|
|
IF g_bInMultiplayer
|
|
GIVE_LOCAL_PLAYER_FM_CASH(20000000)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
IF !(DebugNagScreen = 0)
|
|
TRIGGER_BROWSER_NAG_SCREEN(-1, -1, INT_TO_ENUM(NAG_SCREEN_REASON, DebugNagScreen-1))
|
|
DebugNagScreen = 0
|
|
ENDIF
|
|
|
|
INT iStory
|
|
IF g_bForceBawsaqNews
|
|
REPEAT BAWSAQ_STORIES_PER_CATEGORY iStory
|
|
g_BS_NewsStack[0][iStory] = g_BS_PriceTriggers[iStoryCount[iStory]].s
|
|
|
|
SET_CONTENTS_OF_TEXT_WIDGET(storyHeader[iStory], g_BS_NewsStack[0][iStory].tHeader)
|
|
SET_CONTENTS_OF_TEXT_WIDGET(storyText[iStory], GET_STRING_FROM_TEXT_FILE(g_BS_NewsStack[0][iStory].tHeader))
|
|
ENDREPEAT
|
|
ELSE
|
|
REPEAT BAWSAQ_STORIES_PER_CATEGORY iStory
|
|
SET_CONTENTS_OF_TEXT_WIDGET(storyHeader[iStory], "null")
|
|
SET_CONTENTS_OF_TEXT_WIDGET(storyText[iStory], "null")
|
|
ENDREPEAT
|
|
ENDIF
|
|
|
|
IF bSetOwnedProperties
|
|
INT iSlot = GET_ACTIVE_CHARACTER_SLOT()
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROPERTY_HOUSE, g_MP_STAT_PROPERTY_HOUSE[iSlot], iSlot)
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_1, g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_APT_2-1][iSlot], iSlot)
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_2, g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_APT_3-1][iSlot], iSlot)
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_3, g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_APT_4-1][iSlot], iSlot)
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_4, g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_APT_5-1][iSlot], iSlot)
|
|
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE, g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_OFFICE_0-1][iSlot], iSlot)
|
|
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_CLUBHOUSE, g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_CLUBHOUSE-1][iSlot], iSlot)
|
|
IF g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_CLUBHOUSE-1][iSlot] = 0
|
|
REMOVE_FACTORY(GET_OWNED_BUNKER(PLAYER_ID()))
|
|
ENDIF
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_5, g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_APT_6-1][iSlot], iSlot)
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR1, g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1-1][iSlot], iSlot)
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR2, g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2-1][iSlot], iSlot)
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_GAR3, g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3-1][iSlot], iSlot)
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_IE_WAREHOUSE, g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_IE_WAREHOUSE-1][iSlot], iSlot)
|
|
IF g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1-1][iSlot] = 0
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_OFFICE_MODSHOP, 0)
|
|
ENDIF
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_HANGAR, g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_HANGAR-1][iSlot], iSlot)
|
|
#IF FEATURE_SUMMER_2020
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_6, g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_APT_7-1][iSlot], iSlot)
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_7, g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_APT_8-1][iSlot], iSlot)
|
|
#ENDIF
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_8, g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_APT_9-1][iSlot], iSlot)
|
|
SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_MULTI_PROPERTY_9, g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_APT_10-1][iSlot], iSlot) //CDM PROPERTY STAT UPDATE //OLD PROPERTIES
|
|
// #IF FEATURE_GANG_OPS
|
|
// SET_HEAVILY_ACCESSED_MP_INT_CHARACTER_STAT(MP_STAT_PROP_XXXXXX, g_MP_STAT_MULTI_PROPERTY[PROPERTY_OWNED_SLOT_XXXXXX-1][iSlot], iSlot)
|
|
// #ENDIF
|
|
|
|
bSetOwnedProperties = FALSE
|
|
ENDIF
|
|
|
|
IF bSaveVehicleLabels
|
|
OPEN_DEBUG_FILE()
|
|
SITE_BUYABLE_VEHICLE sbv
|
|
REPEAT TOTAL_BUYABLE_VEHICLES sbv
|
|
MODEL_NAMES eSBVModel = GET_MODEL_FOR_BUYABLE_VEHICLE(sbv)
|
|
STRING sSBVLabel = GET_LABEL_BUYABLE_VEHICLE(sbv)
|
|
STRING sModelDisplayName = GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(eSBVModel)
|
|
|
|
SAVE_STRING_TO_DEBUG_FILE(" \"")
|
|
SAVE_STRING_TO_DEBUG_FILE(sSBVLabel)
|
|
SAVE_STRING_TO_DEBUG_FILE("\" \"")
|
|
SAVE_STRING_TO_DEBUG_FILE(sModelDisplayName)
|
|
SAVE_STRING_TO_DEBUG_FILE("\"")
|
|
|
|
IF ARE_STRINGS_EQUAL(sSBVLabel, sModelDisplayName)
|
|
SAVE_STRING_TO_DEBUG_FILE(" are equal")
|
|
ELSE
|
|
SAVE_STRING_TO_DEBUG_FILE(" are NOT equal")
|
|
ENDIF
|
|
SAVE_NEWLINE_TO_DEBUG_FILE()
|
|
ENDREPEAT
|
|
SAVE_NEWLINE_TO_DEBUG_FILE()
|
|
|
|
CLOSE_DEBUG_FILE()
|
|
|
|
bSaveVehicleLabels = FALSE
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
// Replaced deatharrest due to scaleform unable to cleanup in one frame...
|
|
IF IS_PLAYER_DEAD(GET_PLAYER_INDEX())
|
|
OR IS_PLAYER_PED_SWITCH_IN_PROGRESS()
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: IS_PLAYER_DEAD or IS_PLAYER_PED_SWITCH_IN_PROGRESS")
|
|
FORCE_CLOSE_BROWSER()
|
|
ENDIF
|
|
IF g_bInMultiplayer
|
|
AND IS_PLAYER_IN_CORONA()
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: player is in corona")
|
|
FORCE_CLOSE_BROWSER()
|
|
ENDIF
|
|
IF g_bInMultiplayer
|
|
AND MP_FORCE_TERMINATE_INTERNET_ACTIVE()
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: MP force kill set")
|
|
FORCE_CLOSE_BROWSER()
|
|
ENDIF
|
|
IF NOT g_bInMultiplayer
|
|
AND SP_FORCE_TERMINATE_INTERNET_ACTIVE()
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: SP force kill set")
|
|
FORCE_CLOSE_BROWSER()
|
|
ENDIF
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
IF b_debug_CatalogueMissingEntries
|
|
CATALOGUE_MISSING_ENTRIES()
|
|
b_debug_CatalogueMissingEntries = FALSE
|
|
ENDIF
|
|
|
|
DEBUG_DRAW_MYSTERIOUS_PAGE_VALUES()
|
|
#ENDIF
|
|
|
|
ENDWHILE
|
|
IF g_bInMultiplayer
|
|
REMOVE_MULTIPLAYER_WALLET_CASH()
|
|
REMOVE_MULTIPLAYER_BANK_CASH()
|
|
ENDIF
|
|
//------------------------------
|
|
// Script cleanup starts here!
|
|
//------------------------------
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB_BROWSER> FORCE_CLOSE_BROWSER: Shutdown due to browser visible set to FALSE")
|
|
FORCE_CLOSE_BROWSER()
|
|
|
|
// History suppression for Video playback.
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov,"SUPRESS_HISTORY")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
//DISABLE_CELLPHONE(FALSE)
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(mov, "SHUTDOWN_MOVIE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
bControlsEnabled = FALSE
|
|
DISABLE_CONTROL_ACTIONS_GENERAL()
|
|
|
|
// This delay is here because calling both of these the same frame makes scaleform shit itself...
|
|
WAIT(0)
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(mov)
|
|
mov = NULL
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(buttons)
|
|
buttons = NULL
|
|
|
|
IF nagScreen != NULL
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(nagScreen)
|
|
nagScreen = NULL
|
|
ENDIF
|
|
|
|
INT iGameTime = GET_GAME_TIMER()
|
|
CPRINTLN(DEBUG_INTERNET, "Waiting for buttons to unload...")
|
|
WHILE HAS_SCALEFORM_MOVIE_LOADED(buttons)
|
|
AND GET_GAME_TIMER() <= (iGameTime+0500)
|
|
DISABLE_CONTROL_ACTIONS_GENERAL()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
#IF IS_DEBUG_BUILD
|
|
IF HAS_SCALEFORM_MOVIE_LOADED(buttons)
|
|
CERRORLN(DEBUG_INTERNET, "Still waiting to unload buttons, ", GET_GAME_TIMER() - iGameTime, "ms have passed")
|
|
ELSE
|
|
#ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "...buttons unloaded in ", GET_GAME_TIMER() - iGameTime, "ms")
|
|
#IF IS_DEBUG_BUILD
|
|
ENDIF
|
|
#ENDIF
|
|
buttons = NULL
|
|
|
|
IF bStreamLoaded OR bDoLoadStream
|
|
STOP_STREAM()
|
|
STOP_AUDIO_SCENE("WEB_EPSILONISM_SITE_MUSIC_SCENE")
|
|
bStreamLoaded = FALSE
|
|
ENDIF
|
|
|
|
IF bAWStreamLoaded OR bDoLoadAWStream
|
|
STOP_STREAM()
|
|
// STOP_AUDIO_SCENE("DLC_AW_Arena_Websites_Sounds")
|
|
bAWStreamLoaded = FALSE
|
|
ENDIF
|
|
|
|
g_BrowserStartState = SBSS_Default
|
|
|
|
IF bIHidRadar
|
|
DISPLAY_RADAR(TRUE)
|
|
ENDIF
|
|
|
|
IF bIDisabledCarRadio
|
|
STOP_AUDIO_SCENE("WEB_GENERAL_BROWSING_SCENE")
|
|
ENDIF
|
|
IF bIDisabledAptRadio
|
|
STOP_AUDIO_SCENE("GTAO_Computer_Screen_Active_Scene")
|
|
bIDisabledAptRadio = FALSE
|
|
ENDIF
|
|
|
|
REMOVE_HELP_FROM_FLOW_QUEUE("BS_TUT_1")
|
|
|
|
// Unload the font, this has to happen
|
|
iGameTime = GET_GAME_TIMER()
|
|
CPRINTLN(DEBUG_INTERNET, "Waiting for mov to unload...")
|
|
WHILE HAS_SCALEFORM_MOVIE_LOADED(mov)
|
|
AND GET_GAME_TIMER() <= (iGameTime+0500)
|
|
DISABLE_CONTROL_ACTIONS_GENERAL()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
#IF IS_DEBUG_BUILD
|
|
IF HAS_SCALEFORM_MOVIE_LOADED(mov)
|
|
CERRORLN(DEBUG_INTERNET, "Still waiting to unload mov, ", GET_GAME_TIMER() - iGameTime, "ms have passed")
|
|
ELSE
|
|
#ENDIF
|
|
CPRINTLN(DEBUG_INTERNET, "...mov unloaded in ", GET_GAME_TIMER() - iGameTime, "ms")
|
|
#IF IS_DEBUG_BUILD
|
|
ENDIF
|
|
#ENDIF
|
|
mov = NULL
|
|
|
|
DISABLE_CONTROL_ACTIONS_GENERAL()
|
|
WAIT(0)
|
|
|
|
IF bBrowserShoppingSavePending
|
|
//IF bBoughtProperty
|
|
REQUEST_NET_SPEND_COMMON_DATA_UPDATE()
|
|
REQUEST_SAVE(SSR_REASON_WEBSITE, STAT_SAVETYPE_IMMEDIATE_FLUSH)
|
|
CPRINTLN(DEBUG_INTERNET, "CDM:REQUEST_SAVE App internet triggering a requested save. Immediate flush.")
|
|
//ELSE
|
|
// REQUEST_SAVE(STAT_SAVETYPE_SCRIPT_MP_GLOBALS)
|
|
//ENDIF
|
|
|
|
//bBoughtProperty = FALSE
|
|
bBrowserShoppingSavePending = FALSE
|
|
ENDIF
|
|
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "<Web browser> Waiting 10 frames before releasing font...")
|
|
|
|
INT dli2 = g_iBrowserTimer + 500
|
|
INT dli = 10
|
|
WHILE dli > 0
|
|
//SET_GAMEPLAY_CAM_RELATIVE_PITCH(0.0)
|
|
//SET_GAMEPLAY_CAM_RELATIVE_HEADING(0.0)
|
|
DISABLE_CONTROL_ACTIONS_GENERAL()
|
|
g_iBrowserTimer += ROUND(0 +@ 1000)
|
|
WAIT(0)
|
|
--dli
|
|
ENDWHILE
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(fontindex)
|
|
|
|
|
|
// Delay to prevent button press spillover
|
|
CPRINTLN(DEBUG_INTERNET, "<Web browser> Closing and waiting to terminate script...")
|
|
WHILE dli2 > g_iBrowserTimer
|
|
//SET_GAMEPLAY_CAM_RELATIVE_PITCH(0.0)
|
|
//SET_GAMEPLAY_CAM_RELATIVE_HEADING(0.0)
|
|
DISABLE_CONTROL_ACTIONS_GENERAL()
|
|
g_iBrowserTimer += ROUND(0 +@ 1000)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
CLEAR_ADDITIONAL_TEXT(SHOP_TEXT_SLOT, TRUE) // make sure the requested additional text is removed
|
|
|
|
IF g_bInMultiplayer
|
|
ENABLE_KILL_YOURSELF_OPTION()
|
|
ENDIF
|
|
|
|
|
|
|
|
#IF IS_DEBUG_BUILD //Steve T addition for 2133870. Failsafe to make absolutely sure the movie is freed.
|
|
|
|
cdPrintnl()
|
|
cdPrintstring("AppInternet - Secondary marking of Eyefind email instructional buttons as no longer needed and removing text entry box.")
|
|
cdPrintnl()
|
|
|
|
#ENDIF
|
|
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED (SF_EyefindInstButtonsIndex) //2133870
|
|
|
|
FORCE_CLOSE_TEXT_INPUT_BOX() //Fix for 2232389 - Prevent the text entry box on PC in the first instance from persisting when the browser has closed.
|
|
|
|
|
|
|
|
// B*154147 - Restore player's ability to be pushed around
|
|
IF IS_PLAYER_PLAYING(PLAYER_ID())
|
|
CPRINTLN(DEBUG_INTERNET, "<Web browser> Disabling kinematic mode on player ped.")
|
|
SET_PED_CONFIG_FLAG(PLAYER_PED_ID(),PCF_UseKinematicModeWhenStationary,FALSE)
|
|
ENDIF
|
|
g_bBSWebsiteNoSpaceTrigger = FALSE
|
|
|
|
//Deativate multihead blinders on PC - Should not get here with blinders on - visible lag
|
|
IF SET_MULTIHEAD_SAFE(FALSE,FALSE,bActivatedMultiheadBlinders, TRUE)
|
|
bActivatedMultiheadBlinders = FALSE
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_INTERNET, "<WEB BROWSER> Thread terminated!")
|
|
ENDSCRIPT
|