503 lines
18 KiB
Python
Executable File
503 lines
18 KiB
Python
Executable File
/***********************************
|
|
* Name: MP_MenuPed.sc
|
|
* Author: Brenda Carey
|
|
* Date: 15/10/2012
|
|
***********************************/
|
|
|
|
USING "PauseMenu_public.sch"
|
|
USING "net_include.sch"
|
|
USING "Screens_Header.sch"
|
|
USING "fm_in_corona_header.sch"
|
|
USING "FMMC_Corona_Controller.sch"
|
|
USING "fmmc_request_to_play_mission.sch"
|
|
|
|
// ************************************************************
|
|
// ******************** MAIN SCRIPT LOOP **********************
|
|
// ************************************************************
|
|
/// PURPOSE:
|
|
/// Populates frontend menu with relevant list of players (gamer handles used)
|
|
PROC FILL_OUT_PAUSE_MENU_PLAYER_LIST(INT iMenuID)
|
|
|
|
|
|
INT i
|
|
INT iCount = 0
|
|
GAMER_HANDLE joinedPlayersGH[NUM_NETWORK_PLAYERS]
|
|
|
|
IF iMenuID = ENUM_TO_INT(MENU_UNIQUE_ID_CORONA_INVITE_LAST_JOB_PLAYERS)
|
|
// Populate last job list
|
|
|
|
TEXT_LABEL_63 joinedPlayerNames[NUM_NETWORK_PLAYERS]
|
|
|
|
SWITCH GET_CORONA_STATUS()
|
|
CASE CORONA_STATUS_LAST_HEIST_PLAYERS
|
|
// Populate with last job players
|
|
REPEAT NUM_NETWORK_PLAYERS i
|
|
IF GANGOPS_FLOW_IS_CURRENT_MISSION_GANGOPS_FLOW()
|
|
IF IS_GAMER_HANDLE_VALID(lastGangOpsHeistPlayers.Gamers[i])
|
|
AND NOT IS_STRING_NULL_OR_EMPTY(TEXT_LABEL_TO_STRING(lastGangOpsHeistPlayers.GamersNames[i]))
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_MENUPED: FILL_OUT_PAUSE_MENU_PLAYER_LIST (MENU_UNIQUE_ID_CORONA_INVITE_LAST_HEIST_PLAYERS). - GANG OPS - Adding GAMER HANDLE: ", iCount, " name: ", lastGangOpsHeistPlayers.GamersNames[i])
|
|
|
|
joinedPlayersGH[iCount] = lastGangOpsHeistPlayers.Gamers[i]
|
|
joinedPlayerNames[iCount] = lastGangOpsHeistPlayers.GamersNames[i]
|
|
iCount++
|
|
|
|
ENDIF
|
|
ELSE
|
|
IF IS_GAMER_HANDLE_VALID(lastHeistPlayers.Gamers[i])
|
|
AND NOT IS_STRING_NULL_OR_EMPTY(TEXT_LABEL_TO_STRING(lastHeistPlayers.GamersNames[i]))
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_MENUPED: FILL_OUT_PAUSE_MENU_PLAYER_LIST (MENU_UNIQUE_ID_CORONA_INVITE_LAST_HEIST_PLAYERS). Adding GAMER HANDLE: ", iCount, " name: ", lastHeistPlayers.GamersNames[i])
|
|
|
|
joinedPlayersGH[iCount] = lastHeistPlayers.Gamers[i]
|
|
joinedPlayerNames[iCount] = lastHeistPlayers.GamersNames[i]
|
|
iCount++
|
|
|
|
ENDIF
|
|
ENDIF
|
|
ENDREPEAT
|
|
BREAK
|
|
|
|
CASE CORONA_STATUS_LAST_JOB_PLAYERS
|
|
DEFAULT
|
|
// Populate with last job players
|
|
REPEAT NUM_NETWORK_PLAYERS i
|
|
IF IS_GAMER_HANDLE_VALID(lastJobPlayers.Gamers[i])
|
|
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_MENUPED: FILL_OUT_PAUSE_MENU_PLAYER_LIST (MENU_UNIQUE_ID_CORONA_INVITE_LAST_JOB_PLAYERS). Adding GAMER HANDLE: ", iCount)
|
|
|
|
joinedPlayersGH[iCount] = lastJobPlayers.Gamers[i]
|
|
joinedPlayerNames[iCount] = lastJobPlayers.GamersNames[i]
|
|
iCount++
|
|
|
|
ENDIF
|
|
ENDREPEAT
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_MENUPED: args.operation = kFill FILLOUT_PM_PLAYER_LIST_WITH_NAMES. With Count: ", iCount)
|
|
|
|
REFRESH_PLAYER_LIST_STATS(PLAYER_LIST_TYPE_LAST_JOB)
|
|
FILLOUT_PM_PLAYER_LIST_WITH_NAMES(joinedPlayersGH, joinedPlayerNames, iCount, PLAYER_LIST_TYPE_LAST_JOB)
|
|
ELIF iMenuID = ENUM_TO_INT(MENU_UNIQUE_ID_CORONA_INVITE_PLAYERS)
|
|
|
|
// Populate players in session list
|
|
|
|
PLAYER_INDEX playerID
|
|
GAMER_HANDLE aGamerHandle
|
|
REPEAT NUM_NETWORK_PLAYERS i
|
|
|
|
playerID = INT_TO_PLAYERINDEX(i)
|
|
|
|
IF IS_NET_PLAYER_OK(playerID, FALSE, TRUE)
|
|
|
|
IF HAS_PLAYER_COMPLETED_INITIAL_AMBIENT_TUTORIALS(playerID)
|
|
|
|
aGamerHandle = GET_GAMER_HANDLE_PLAYER(playerID)
|
|
|
|
IF IS_GAMER_HANDLE_VALID(aGamerHandle)
|
|
|
|
IF NOT IS_THIS_GAMER_HANDLE_IN_MY_TRANSITION_SESSION(aGamerHandle)
|
|
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_MENUPED: FILL_OUT_PAUSE_MENU_PLAYER_LIST (MENU_UNIQUE_ID_CORONA_INVITE_PLAYERS). Adding GAMER HANDLE: ", iCount, " for Player: ", GET_PLAYER_NAME(playerID))
|
|
|
|
joinedPlayersGH[iCount] = aGamerHandle
|
|
iCount++
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
ELSE
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_MENUPED: args.operation = kFill MENU_UNIQUE_ID_CORONA_INVITE_PLAYERS. Player already in corona ", iCount, " for Player: ", GET_PLAYER_NAME(playerID))
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_MENUPED: args.operation = kFill MENU_UNIQUE_ID_CORONA_INVITE_PLAYERS. With Count: ", iCount)
|
|
|
|
REFRESH_PLAYER_LIST_STATS(PLAYER_LIST_TYPE_INVITABLE_SESSION_PLAYERS)
|
|
FILLOUT_PM_PLAYER_LIST(joinedPlayersGH, iCount, PLAYER_LIST_TYPE_INVITABLE_SESSION_PLAYERS)
|
|
|
|
ELIF iMenuID = ENUM_TO_INT(MENU_UNIQUE_ID_CORONA_INVITE_MATCHED_PLAYERS)
|
|
|
|
// Populate matched players
|
|
IF matchedPlayers.bFinished
|
|
TEXT_LABEL_63 joinedPlayerNamesM[NUM_NETWORK_PLAYERS]
|
|
|
|
REPEAT NUM_NETWORK_PLAYERS i
|
|
|
|
IF IS_GAMER_HANDLE_VALID(matchedPlayers.Gamers[i])
|
|
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_MENUPED: FILL_OUT_PAUSE_MENU_PLAYER_LIST (MENU_UNIQUE_ID_CORONA_INVITE_MATCHED_PLAYERS). Adding GAMER HANDLE: ", iCount, " name: ", matchedPlayers.GamersNames[i])
|
|
|
|
joinedPlayersGH[iCount] = matchedPlayers.Gamers[i]
|
|
joinedPlayerNamesM[iCount] = matchedPlayers.GamersNames[i]
|
|
iCount++
|
|
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_MENUPED: args.operation = kFill MENU_UNIQUE_ID_CORONA_INVITE_MATCHED_PLAYERS. With Count: ", iCount)
|
|
|
|
REFRESH_PLAYER_LIST_STATS(PLAYER_LIST_TYPE_MATCHED_PLAYERS)
|
|
FILLOUT_PM_PLAYER_LIST_WITH_NAMES(joinedPlayersGH, joinedPlayerNamesM, iCount, PLAYER_LIST_TYPE_MATCHED_PLAYERS)
|
|
#IF IS_DEBUG_BUILD
|
|
ELSE
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_MENUPED: args.operation = kFill MENU_UNIQUE_ID_CORONA_INVITE_MATCHED_PLAYERS. List not ready")
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
|
|
ELSE
|
|
// Populate joined player list
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL_63 strName
|
|
#ENDIF
|
|
|
|
REPEAT GET_NUMBER_OF_PLAYERS_IN_MY_TRANSITION_SESSION() i
|
|
|
|
// Is the players gamer handle valid
|
|
IF IS_GAMER_HANDLE_VALID(GET_TRANSITION_PLAYER_GAMER_HANDLE(i))
|
|
AND (IS_TRANSITION_PLAYER_READY_TO_LAUNCH_JOB(i)
|
|
OR IS_THIS_TRANSITION_SESSION_PLAYER_ON_CALL(i))
|
|
AND NOT IS_THIS_TRANSITION_SESSION_PLAYER_A_ROCKSTAR_DEV_SPECTATOR(i)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
strName = GET_TRANSITION_PLAYER_GAMERTAG(i)
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_MENUPED: FILL_OUT_PAUSE_MENU_PLAYER_LIST (MENU_UNIQUE_ID_CORONA_INVITE_JOINED_PLAYERS). Adding GAMER HANDLE: ", iCount, " name: ", strName)
|
|
#ENDIF
|
|
|
|
joinedPlayersGH[iCount] = GET_TRANSITION_PLAYER_GAMER_HANDLE(i)
|
|
iCount++
|
|
ENDIF
|
|
|
|
ENDREPEAT
|
|
|
|
// Default the player list type
|
|
PLAYER_LIST_TYPE ePlayerListType = PLAYER_LIST_TYPE_JOINED
|
|
|
|
// If we are in a launched transition session situation we should use the new player list type
|
|
IF HAS_JOB_HAS_LAUNCHED_INITIAL_TRANSITION_SESSION()
|
|
OR HAS_PLAYLIST_HAS_DONE_INITIAL_TRANSITION()
|
|
ePlayerListType = PLAYER_LIST_TYPE_CORONA_PLAYLIST
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_MENUPED: Override player list type to PLAYER_LIST_TYPE_CORONA_PLAYLIST for a launched transition session")
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_MENUPED: args.operation = kFill FILL_OUT_PAUSE_MENU_PLAYER_LIST. With Count: ", iCount)
|
|
|
|
IF ePlayerListType = PLAYER_LIST_TYPE_JOINED
|
|
REFRESH_PLAYER_LIST_STATS(ePlayerListType)
|
|
ENDIF
|
|
FILLOUT_PM_PLAYER_LIST(joinedPlayersGH, iCount, ePlayerListType)
|
|
|
|
GAMER_HANDLE onCall
|
|
REPEAT GET_NUMBER_OF_PLAYERS_IN_MY_TRANSITION_SESSION() i
|
|
|
|
IF IS_THIS_TRANSITION_SESSION_PLAYER_ON_CALL(i)
|
|
onCall = GET_TRANSITION_PLAYER_GAMER_HANDLE(i)
|
|
IF IS_GAMER_HANDLE_VALID(onCall)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
strName = GET_TRANSITION_PLAYER_GAMERTAG(i)
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "[TS] MP_MENUPED = PLAYER NOW ON CALL, notify code. strName = ", strName)
|
|
#ENDIF
|
|
|
|
NETWORK_SET_INVITE_ON_CALL_FOR_INVITE_MENU(onCall)
|
|
ENDIF
|
|
ENDIF
|
|
ENDREPEAT
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC DISPLAY_BUSYSPIN(INT MenuInt, BOOL isActive)
|
|
|
|
FRONTEND_MENU_SCREEN MenuItem = INT_TO_ENUM(FRONTEND_MENU_SCREEN, MenuInt)
|
|
|
|
SWITCH MenuItem
|
|
|
|
CASE MENU_UNIQUE_ID_CORONA_INVITE_FRIENDS
|
|
CASE MENU_UNIQUE_ID_FRIENDS_MP
|
|
CASE MENU_UNIQUE_ID_CREW
|
|
PAUSE_MENU_SLOT_BUSY_SPINNER(isActive, 1)
|
|
BREAK
|
|
|
|
CASE MENU_UNIQUE_ID_CORONA_INVITE
|
|
PAUSE_MENU_SLOT_BUSY_SPINNER(isActive, 2)
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDPROC
|
|
|
|
|
|
SCRIPT( PAUSE_MENU_LAUNCH_DATA args )
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_MenuPed Select Menu Launched with args: ", args.operation, ", Menu: ", args.MenuScreenId, ", Prev:", args.PreviousId, ", Unique: ", args.UniqueIdentifier)
|
|
#ENDIF
|
|
|
|
INT iSlot = 0
|
|
|
|
|
|
IF HAS_FORCE_CLEANUP_OCCURRED(FORCE_CLEANUP_PAUSE_MENU_TERMINATED)
|
|
|
|
NET_NL()NET_PRINT("MP_MENUPED: HAS_FORCE_CLEANUP_OCCURRED(FORCE_CLEANUP_PAUSE_MENU_TERMINATED) ")NET_NL()
|
|
|
|
|
|
DELETE_ALL_PARENT_PAUSE_MENU_PED( iSlot)
|
|
IF NOT IS_PED_INJURED(g_CharPedCreation[0].MenuPed)
|
|
NET_NL()NET_PRINT("MP_MENUPED: DELETE_PED ")NET_NL()
|
|
|
|
DELETE_PED(g_CharPedCreation[0].MenuPed)
|
|
ENDIF
|
|
RESET_ALL_CHAR_PED_CREATION()
|
|
g_bMissionCreatorPauseMenuActive = FALSE
|
|
TERMINATE_THIS_THREAD()
|
|
ENDIF
|
|
|
|
|
|
NETWORK_SET_SCRIPT_IS_SAFE_FOR_NETWORK_GAME()
|
|
|
|
|
|
|
|
|
|
|
|
GAMER_HANDLE gamerToInvite
|
|
PLAYER_INDEX playerToInvite
|
|
GAMER_HANDLE aGamer
|
|
INT crewRed, crewGreen, crewBlue
|
|
#IF IS_DEBUG_BUILD
|
|
// STRING friendName
|
|
#ENDIF
|
|
|
|
|
|
|
|
SWITCH args.operation
|
|
|
|
CASE kPopulatePeds
|
|
|
|
crewRed = -1
|
|
crewGreen = -1
|
|
crewBlue = -1
|
|
|
|
DELETE_ALL_PARENT_PAUSE_MENU_PED( iSlot)
|
|
DELETE_CHILD_PED(g_CharPedCreation[0].MenuPed)
|
|
RESET_ALL_CHAR_PED_CREATION()
|
|
|
|
DISPLAY_BUSYSPIN(args.MenuScreenId, TRUE)
|
|
|
|
NET_NL()NET_PRINT("MP_MENUPED: kPopulatePeds Running ")NET_PRINT_INT(iSlot)NET_NL()
|
|
|
|
|
|
IF FM_EVENT_IS_PLAYER_CRITICAL_TO_FM_EVENT(PLAYER_ID())
|
|
CPRINTLN(DEBUG_NET_AMBIENT, "[FM AME] - MP_MenuPed FM_EVENT_IS_PLAYER_CRITICAL_TO_FM_EVENT - PAUSE_MENU_ACTIVATE_CONTEXT(HASH(\"DisableSpectateScript\"))")
|
|
PAUSE_MENU_ACTIVATE_CONTEXT(HASH("DisableSpectateScript"))
|
|
ELSE
|
|
CPRINTLN(DEBUG_NET_AMBIENT, "[FM AME] - MP_MenuPed FM_EVENT_IS_PLAYER_CRITICAL_TO_FM_EVENT - PAUSE_MENU_DEACTIVATE_CONTEXT(HASH(\"DisableSpectateScript\"))")
|
|
PAUSE_MENU_DEACTIVATE_CONTEXT(HASH("DisableSpectateScript"))
|
|
ENDIF
|
|
|
|
|
|
WAIT(0)
|
|
WAIT(0)
|
|
|
|
WHILE NETWORK_GET_CURRENTLY_SELECTED_GAMER_HANDLE_FROM_INVITE_MENU(aGamer) = FALSE
|
|
NET_NL()NET_PRINT("MP_MENUPED: NETWORK_GET_CURRENTLY_SELECTED_GAMER_HANDLE_FROM_INVITE_MENU ")NET_PRINT_INT(iSlot)NET_NL()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
// #IF IS_DEBUG_BUILD
|
|
// IF IS_GAMER_HANDLE_VALID(aGamer)
|
|
// friendName = NETWORK_GET_GAMERTAG_FROM_HANDLE(aGamer)
|
|
// NET_NL()NET_PRINT("MP_MENUPED: friendName = ")NET_PRINT(friendName)
|
|
// ENDIF
|
|
// #ENDIF
|
|
|
|
// IF IS_STRING_EMPTY_HUD(friendName)
|
|
// CPRINTLN(DEBUG_PAUSE_MENU, "MP_menuped.sch -IS_STRING_EMPTY(friendName) killing thread ")
|
|
// TERMINATE_THIS_THREAD()
|
|
// ENDIF
|
|
//
|
|
// WHILE NETWORK_CLAN_DOWNLOAD_MEMBERSHIP(aGamer) = FALSE
|
|
// NET_NL()NET_PRINT("MP_MENUPED: NETWORK_GET_CURRENTLY_SELECTED_GAMER_HANDLE_FROM_INVITE_MENU ")NET_PRINT_INT(iSlot)NET_NL()
|
|
// WAIT(0)
|
|
// ENDWHILE
|
|
|
|
WHILE GET_PM_PLAYER_CREW_COLOR(crewRed, crewGreen,crewBlue ) = FALSE
|
|
NET_NL()NET_PRINT("MP_MENUPED: GET_PM_PLAYER_CREW_COLOR ")NET_PRINT_INT(iSlot)NET_NL()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
// GET_GAMER_CLAN_COLOUR(aGamer, crewRed, crewGreen, crewBlue)
|
|
NET_NL()NET_PRINT("MP_MENUPED: GET_GAMER_CLAN_COLOUR Red = ")NET_PRINT_INT(crewRed)NET_PRINT(" Green = ")NET_PRINT_INT(crewGreen)NET_PRINT(" Blue = ")NET_PRINT_INT(crewBlue)NET_NL()
|
|
|
|
WHILE GENERATE_PAUSE_MENU_PED(aGamer, g_CharPedCreation[0].MenuPed, iSlot, crewRed, crewGreen, crewBlue) = FALSE
|
|
|
|
NET_NL()NET_PRINT("MP_MENUPED: GENERATE_PAUSE_MENU_PED BEFORE WAIT ")NET_PRINT_INT(iSlot)NET_NL()
|
|
WAIT(0)
|
|
NET_NL()NET_PRINT("MP_MENUPED: GENERATE_PAUSE_MENU_PED AFTER WAIT ")NET_PRINT_INT(iSlot)NET_NL()
|
|
ENDWHILE
|
|
|
|
DELETE_ALL_PARENT_PAUSE_MENU_PED( iSlot)
|
|
|
|
WAIT(0)
|
|
WAIT(0)
|
|
|
|
NET_NL()NET_PRINT("MP_MENUPED: CREATED PED for slot ")NET_PRINT_INT(iSlot)NET_NL()
|
|
|
|
DISPLAY_BUSYSPIN(args.MenuScreenId, FALSE)
|
|
|
|
FINALIZE_HEAD_BLEND(g_CharPedCreation[0].MenuPed)
|
|
GIVE_PED_TO_PAUSE_MENU(g_CharPedCreation[0].MenuPed)
|
|
|
|
RESET_ALL_CHAR_PED_CREATION()
|
|
|
|
|
|
|
|
// ENDIF
|
|
|
|
|
|
NET_NL()NET_PRINT("MP_MENUPED: WHILE args.operation = kPopulatePeds ")
|
|
|
|
BREAK
|
|
|
|
CASE kUpdateInput
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_MENUPED: args.operation = kUpdateInput (INVITE / KICK / CANCEL INVITE)")
|
|
|
|
IF args.PreviousId = ENUM_TO_INT(INPUT_FRONTEND_X)
|
|
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_MENUPED: WHILE args.operation = kUpdateInput KICK PLAYER / CANCEL INVITE square pressed")
|
|
|
|
IF NETWORK_GET_CURRENTLY_SELECTED_GAMER_HANDLE_FROM_INVITE_MENU(gamerToInvite)
|
|
|
|
playerToInvite = NETWORK_GET_PLAYER_FROM_GAMER_HANDLE(gamerToInvite)
|
|
IF playerToInvite != player_id()
|
|
IF IS_GAMER_HANDLE_VALID(gamerToInvite)
|
|
IF IS_THIS_GAMER_HANDLE_IN_MY_TRANSITION_SESSION(gamerToInvite)
|
|
|
|
IF NOT IS_CORONA_BIT_SET(CORONA_CLIENT_HAS_ACCESSED_JOINED_PLAYERS)
|
|
AND IS_CORONA_BIT_SET(CORONA_ACTIVE_HOST_OF_MENU)
|
|
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_MENUPED: KICK - Gamer is in our transition session")
|
|
|
|
NETWORK_SEND_TRANSITION_GAMER_INSTRUCTION(gamerToInvite, "", TRANSITION_SESSION_INSTRUCTION_KICK, TRANSITION_SESSION_INSTRUCTION_DEFAULT_PARAM, FALSE)
|
|
|
|
PLAY_DEFERRED_SOUND_FRONTEND("BACK","HUD_FREEMODE_SOUNDSET")
|
|
|
|
REMOVE_INVITED_GAMER_TO_CORONA_LIST(gamerToInvite, "")
|
|
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
// Detect the button press of the player:
|
|
IF args.PreviousId = ENUM_TO_INT(INPUT_FRONTEND_ACCEPT)
|
|
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_MENUPED: WHILE args.operation = kUpdateInput SEND INVITE triangle pressed")
|
|
|
|
// Update global so player is locked in.
|
|
SET_PLAYER_HAS_SENT_AN_INVITE(TRUE)
|
|
|
|
IF NETWORK_GET_CURRENTLY_SELECTED_GAMER_HANDLE_FROM_INVITE_MENU(gamerToInvite)
|
|
playerToInvite = NETWORK_GET_PLAYER_FROM_GAMER_HANDLE(gamerToInvite)
|
|
IF playerToInvite != player_id()
|
|
IF IS_GAMER_HANDLE_VALID(gamerToInvite)
|
|
IF NOT NETWORK_IS_GAMER_IN_MY_SESSION(gamerToInvite)
|
|
IF NOT IS_THIS_GAMER_HANDLE_IN_MY_TRANSITION_SESSION(gamerToInvite)
|
|
//IF NETWORK_IS_FRIEND(gamerToInvite)
|
|
// IS_FRIEND_ONLINE
|
|
// CPRINTLN(DEBUG_PAUSE_MENU, "MP_menuped.sch -NETWORK_INVITE_GAMER_TO_TRANSITION not is session attempting to send an invite")
|
|
//ELSE
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_menuped.sch -NETWORK_INVITE_GAMER_TO_TRANSITION not is session attempting to send an invite")
|
|
crossSessionInvite.gamerToInvite = gamerToInvite
|
|
crossSessionInvite.iStage = 1
|
|
//ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_menuped.sch -NETWORK_INVITE_GAMER_TO_TRANSITION NOT Inviting gamer to transition session they are already in it one player")
|
|
ENDIF
|
|
ELSE
|
|
|
|
playerToInvite = NETWORK_GET_PLAYER_FROM_GAMER_HANDLE(gamerToInvite)
|
|
IF playerToInvite <> INVALID_PLAYER_INDEX()
|
|
IF IS_NET_PLAYER_OK(playerToInvite,FALSE,TRUE)
|
|
IF NETWORK_CAN_SEND_LOCAL_INVITE(gamerToInvite)
|
|
//iLocalPlayerID = NATIVE_TO_INT(PLAYER_ID())
|
|
|
|
BROADCAST_FREEMODE_INVITE_GENERAL(SPECIFIC_PLAYER(playerToInvite),
|
|
sendInviteDetailsStruct.iType,
|
|
sendInviteDetailsStruct.iCreatorID,
|
|
0,
|
|
sendInviteDetailsStruct.vCoronaLocation,
|
|
sendInviteDetailsStruct.sContentID)
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_menuped.sch - Inviting player to corona: ", GET_PLAYER_NAME(playerToInvite))
|
|
|
|
// See if we have a valid slot to save this invited player
|
|
ADD_INVITED_PLAYER_TO_CORONA_LIST(0, gamerToInvite, GET_PLAYER_NAME(playerToInvite))
|
|
ELSE
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_menuped.sch - NOT Inviting player to corona blocked: ", GET_PLAYER_NAME(playerToInvite))
|
|
|
|
INT bitfield
|
|
SET_BIT(bitfield, ENUM_TO_INT(INVITESTATUS_BLOCKED))
|
|
|
|
STRUCT_PRESENCE_INVITE_REPLY_EVENT sei
|
|
sei.hInviter = gamerToInvite
|
|
sei.nInviteStatus = INT_TO_ENUM(INVITE_STATUS, bitfield)
|
|
sei.bDecisionMade = FALSE
|
|
sei.bDecision = FALSE
|
|
|
|
PROCESS_EVENT_INVITE_REPLY_COMMON(sei)
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_menuped.sch - not inviting player to corona not in playing state yet")
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_menuped.sch - playerToInvite = INVALID_PLAYER_INDEX")
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_menuped.sch - gamer handle invalid for invite")
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_menuped.sch - trying to invite yourself??")
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "failed to get currently selected gamer")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE kFill
|
|
|
|
FILL_OUT_PAUSE_MENU_PLAYER_LIST(args.MenuScreenId)
|
|
|
|
BREAK
|
|
|
|
DEFAULT
|
|
NET_NL()NET_PRINT("MP_MENUPED: TERMINATE THREAD - unknown type, args.operation") NET_NL()
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
|
|
DISPLAY_BUSYSPIN(args.MenuScreenId, FALSE)
|
|
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_menuped.sch -killing thread ")
|
|
TERMINATE_THIS_THREAD()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ENDSCRIPT
|
|
|