Files
gtav-src/script/dev_ng/shared/include/public/socialclub_leaderboard_hud.sch
2025-09-29 00:52:08 +02:00

1303 lines
48 KiB
Scheme
Executable File

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Name: socialclub_leaderboard_hud.sch //
// Description: Controls opening/closing of garage and warping player out //
// Written by: Conor McGuire //
// Date: 2013-03-05 (ISO 8601) //
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
USING "leader_board_common.sch"
USING "commands_stats.sch"
USING "net_common_functions.sch"
USING "script_conversion.sch"
USING "net_car_club_rep.sch"
ENUM DISPLAY_TYPES
DISPLAY_TYPE_MINIGAME = 0,
DISPLAY_TYPE_MULTIPLAYER
ENDENUM
ENUM SCLB_SECTIONS
SECTION_WORLD = 0,
SECTION_FRIEND,
SECTION_CREW
ENDENUM
CONST_INT SCLB_SLOT_STATE_BIT_NONE 0
CONST_INT SCLB_SLOT_STATE_BIT_IS_PLAYER 1
CONST_INT SCLB_SLOT_STATE_BIT_OUTLINE 2
CONST_INT SCLB_SLOT_STATE_BIT_SELECTED 3
CONST_INT SCLB_SLOT_STATE_BIT_WORLD 4
CONST_INT SCLB_SLOT_STATE_BIT_FRIENDS 5
CONST_INT SCLB_SLOT_STATE_BIT_CREW 6
CONST_INT SCLB_SLOT_STATE_BIT_DESCRIPTION 7
ENUM SCLB_SLOT_LAYOUTS
SLOT_LAYOUT_LABEL_NO_ICON = 0, // Just a label, no icon
SLOT_LAYOUT_LABEL, // Label and Icon, no columns
SLOT_LAYOUT_1_STATS, // Label and Icon, one column with label and icon
SLOT_LAYOUT_2_STATS, // Label and Icon, two columns with labels and icons
SLOT_LAYOUT_3_STATS, // Label and Icon, three columns with labels and icons
SLOT_LAYOUT_4_STATS, // Label and Icon, four columns with labels and icons
SLOT_LAYOUT_5_STATS // Label and Icon, five columns with labels and icons
ENDENUM
ENUM SCLB_ICONS
ICON_NONE = -1,
ICON_WORLD_RANKING = 0, // 0
ICON_FRIENDS,
ICON_CREW,
ICON_TIME,
ICON_LAP,
ICON_POSITION, // 5
ICON_KILLS,
ICON_DEATHS,
ICON_GUN,
ICON_VEHICLE,
ICON_TARGET, // 10
ICON_CROSSHAIR,
ICON_DOLLAR,
ICON_POINT,
ICON_CROWN,
ICON_TROPHY, // 15
ICON_WINNER = 15,
ICON_ARM,
ICON_DART,
ICON_GOLF_CLUB,
ICON_GOLF,
ICON_HOOKER, //20
ICON_HEART,
ICON_HEART_BROKEN,
ICON_TENNIS_RACKET,
ICON_TENNIS_BALL,
ICON_ROBBER_MASK, //25
ICON_LOSER,
ICON_SCALE
ENDENUM
ENUM SCLB_DATA_TYPE
SCLB_DATA_TYPE_NONE = 0,
SCLB_DATA_TYPE_TIME,
SCLB_DATA_TYPE_TIME_NEG_B4_DIS,
SCLB_DATA_TYPE_VEHICLE,
SCLB_DATA_TYPE_FLOAT,
SCLB_DATA_TYPE_INT,
SCLB_DATA_TYPE_GOLD_TIME,
SCLB_DATA_TYPE_INT_NEG_B4_DIS,
SCLB_DATA_TYPE_GUN,
SCLB_DATA_TYPE_TIME_NO_MS,
SCLB_DATA_TYPE_TIME_NEG_B4_DIS_NO_MS,
SCLB_DATA_TYPE_TIME_POSITIVE,
SCLB_DATA_TYPE_FLOAT_TO_INT,
SCLB_DATA_TYPE_INT_DIST_WITH_CONV_FT,
SCLB_DATA_TYPE_INT_DIST_WITH_CONV_FT_NEG_B4_DIS,
SCLB_DATA_TYPE_INT_DIST_WITH_CONV_MILE,
SCLB_DATA_TYPE_INT_DIST_WITH_CONV_MILE_NEG_B4_DIS,
SCLB_DATA_TYPE_FLOAT_DIST_WITH_CONV_FT,
SCLB_DATA_TYPE_FLOAT_DIST_WITH_CONV_FT_NEG_B4_DIS,
SCLB_DATA_TYPE_FLOAT_DIST_WITH_CONV_MILE,
SCLB_DATA_TYPE_FLOAT_DIST_WITH_CONV_MILE_NEG_B4_DIS,
SCLB_DATA_TYPE_ARENA_TITLE,
SCLB_DATA_TYPE_CC_MEMBER_RANK
ENDENUM
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////// IN-VALID COMMANDS BELOW DO NOT USE THESE THEY ARE OLD COMMANDS !////////////////////////////////////////////////
//INVALID NOW DO NOT USE!!!
FUNC TEXT_LABEL_15 SC_LEADERBOARD_MAKE_INT_PRETTY(INT iUglyNumber)
#IF IS_DEBUG_BUILD
PRINTLN("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
SCRIPT_ASSERT("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
#ENDIF
TEXT_LABEL_15 sPrettyNumber
INT millions, thousands, hundreds
millions = iUglyNumber / 1000000
thousands = iUglyNumber % 1000000 / 1000
hundreds = iUglyNumber % 1000
// Set Millions and add padding to Thousands if needed
IF millions > 0
sPrettyNumber += millions
sPrettyNumber += ","
IF thousands < 100
sPrettyNumber += "0"
ENDIF
IF thousands < 10
sPrettyNumber += "0"
ENDIF
ENDIF
// Set Thousands and add padding to Hundreds if needed
IF thousands > 0
sPrettyNumber += thousands
sPrettyNumber += ","
IF hundreds < 100
sPrettyNumber += "0"
ENDIF
IF hundreds < 10
sPrettyNumber += "0"
ENDIF
ENDIF
// Set Hundreds
sPrettyNumber += hundreds
// TODO: Add support for ordinals
RETURN (sPrettyNumber)
ENDFUNC
//INVALID NOW DO NOT USE!!!
FUNC TEXT_LABEL_15 SC_LEADERBOARD_MAKE_TIME_LABEL(INT iLeftNum, INT iRightNum, BOOL bDispColon=TRUE, BOOL bDispMinSec=TRUE)
#IF IS_DEBUG_BUILD
PRINTLN("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
SCRIPT_ASSERT("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
#ENDIF
TEXT_LABEL_15 texLabel
texLabel = ""
// Add minutes to the label
IF iLeftNum < 10
texLabel += "0"
ENDIF
texLabel += iLeftNum
// Add middle demarcation, a colon or an 'm'
IF bDispColon
texLabel += ":"
ELIF bDispMinSec
texLabel += "m "
ELSE
texLabel += "h "
ENDIF
// Add seconds to the label
IF iRightNum < 10
texLabel += "0"
ENDIF
texLabel += iRightNum
// Add final demarcation if needed
IF NOT bDispColon AND bDispMinSec
texLabel += "s"
ELIF NOT bDispColon AND NOT bDispMinSec
texLabel += "m"
ENDIF
RETURN texLabel
ENDFUNC
//INVALID NOW DO NOT USE!!!
FUNC TEXT_LABEL_15 SC_LEADERBOARD_MAKE_TIME_LABEL_BETTER(FLOAT fMS, BOOL bDispColon=TRUE, BOOL bDispMinSec=TRUE)
#IF IS_DEBUG_BUILD
PRINTLN("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
SCRIPT_ASSERT("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
#ENDIF
TEXT_LABEL_15 texLabel
texLabel = ""
INT iHours
INT iMinutes
INT iSec
INT iMilSec
IF fMS > 0
INT iMSLeft = ROUND(fMS)
PRINTLN("SC_LEADERBOARD_MAKE_TIME_LABEL_BETTER starting MS :", iMSLeft)
iHours = FLOOR(TO_FLOAT(iMSLeft/(1000*60*60)))
PRINTLN("SC_LEADERBOARD_MAKE_TIME_LABEL_BETTER Hours :", iHours)
iMSLeft = iMSLeft- (iHours*(1000*60*60))
iMinutes = FLOOR(TO_FLOAT(iMSLeft/(1000*60)))
PRINTLN("SC_LEADERBOARD_MAKE_TIME_LABEL_BETTER minutes :", iMinutes)
iMSLeft = iMSLeft- (iMinutes*(1000*60))
iSec = FLOOR(TO_FLOAT(iMSLeft/1000))
PRINTLN("SC_LEADERBOARD_MAKE_TIME_LABEL_BETTER second :", iSec)
iMSLeft = iMSLeft- (iSec*1000)
iMilSec = iMSLeft
PRINTLN("SC_LEADERBOARD_MAKE_TIME_LABEL_BETTER ms :", iMilSec)
//using text labels for translations
IF bDispColon
IF iHours > 0
texLabel += iHours
texLabel += ":"
IF iMinutes < 10
texLabel += "0"
texLabel += iMinutes
ELSE
texLabel += iMinutes
ENDIF
texLabel += ":"
IF iSec < 10
texLabel += "0"
texLabel += iSec
ELSE
texLabel += iSec
ENDIF
ELSE
IF iMinutes < 10
texLabel += "0"
texLabel += iMinutes
ELSE
texLabel += iMinutes
ENDIF
texLabel += ":"
IF iSec < 10
texLabel += "0"
texLabel += iSec
ELSE
texLabel += iSec
ENDIF
texLabel += ":"
IF iMilSec > 100
texLabel += iMilSec
ELSE
IF iMilSec > 10
texLabel += "0"
texLabel += iMilSec
ELSE
texLabel += "00"
texLabel += iMilSec
ENDIF
ENDIF
ENDIF
ELIF bDispMinSec
IF fMS >= 1000*60*60
texLabel += iHours
texLabel += "H"//GET_STRING_FROM_TEXT_FILE("TIME_H_LC")
texLabel += " "
texLabel += iMinutes
texLabel += "M"//GET_STRING_FROM_TEXT_FILE("TIME_M_LC")
texLabel += " "
texLabel += iSec
texLabel += "S"//GET_STRING_FROM_TEXT_FILE("TIME_S_LC")
ELSE
texLabel += iMinutes
texLabel += "m"//GET_STRING_FROM_TEXT_FILE("TIME_M_LC")
texLabel += " "
texLabel += iSec
texLabel += "s"//GET_STRING_FROM_TEXT_FILE("TIME_S_LC")
texLabel += " "
texLabel += iMilSec
texLabel += "ms"// GET_STRING_FROM_TEXT_FILE("TIME_MS_LC")
ENDIF
ELSE
texLabel += ROUND(fMS)
ENDIF
ELSE
texLabel = "---"
ENDIF
RETURN texLabel
ENDFUNC
//INVALID NOW DO NOT USE!!!
PROC CLEAR_SC_LEADERBOARD_SLOT_ENTRIES(SCALEFORM_INDEX uiLeaderboard, SCLB_SECTIONS eSection, INT iSlotID)
#IF IS_DEBUG_BUILD
PRINTLN("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
SCRIPT_ASSERT("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
#ENDIF
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "CLEAR_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(eSection))
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlotID)
END_SCALEFORM_MOVIE_METHOD()
ENDPROC
//INVALID NOW DO NOT USE!!!
PROC REMOVE_ALL_SC_LEADERBOARD_HEADERS_AND_SLOTS(SCALEFORM_INDEX uiLeaderboard)
#IF IS_DEBUG_BUILD
PRINTLN("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
SCRIPT_ASSERT("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
#ENDIF
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "REMOVE_ALL")
END_SCALEFORM_MOVIE_METHOD()
ENDPROC
//INVALID NOW DO NOT USE!!!
PROC OUTLINE_SC_LEADERBOARD_SLOT(SCALEFORM_INDEX uiLeaderboard, SCLB_SECTIONS eSection, INT iSlotID, BOOL bIsOutlined)
#IF IS_DEBUG_BUILD
PRINTLN("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
SCRIPT_ASSERT("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
#ENDIF
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "OUTLINE_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(eSection))
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlotID)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(bIsOutlined)
END_SCALEFORM_MOVIE_METHOD()
ENDPROC
//INVALID NOW DO NOT USE!!!
PROC HIGHLIGHT_SC_LEADERBOARD_SLOT(SCALEFORM_INDEX uiLeaderboard, SCLB_SECTIONS eSection, INT iSlotID, BOOL bIsHighlighted)
#IF IS_DEBUG_BUILD
PRINTLN("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
SCRIPT_ASSERT("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
#ENDIF
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "HIGHLIGHT_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(eSection))
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlotID)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(bIsHighlighted)
END_SCALEFORM_MOVIE_METHOD()
ENDPROC
//INVALID NOW DO NOT USE!!!
PROC SET_SC_LEADERBOARD_SLOT_AS_SELECTED(SCALEFORM_INDEX uiLeaderboard, SCLB_SECTIONS eSection, INT iSlotID, BOOL bIsHighlighted)
#IF IS_DEBUG_BUILD
PRINTLN("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
SCRIPT_ASSERT("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
#ENDIF
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "HIGHLIGHT_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(eSection))
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlotID)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(bIsHighlighted)
END_SCALEFORM_MOVIE_METHOD()
ENDPROC
//INVALID NOW DO NOT USE!!!
PROC SET_SC_LEADERBOARD_HEADER(SCALEFORM_INDEX uiLeaderboard, SCLB_SECTIONS eSection, INT iHeaderID, SCLB_SLOT_LAYOUTS eLayout, STRING sCol1, STRING sCol2, STRING sCol3, STRING sCol4, SCLB_ICONS eIcon1=ICON_NONE, SCLB_ICONS eIcon2=ICON_NONE, SCLB_ICONS eIcon3=ICON_NONE, SCLB_ICONS eIcon4=ICON_NONE)
#IF IS_DEBUG_BUILD
PRINTLN("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
SCRIPT_ASSERT("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
#ENDIF
STRING sHeader = ""
SCLB_ICONS eHeaderIcon
NETWORK_CLAN_DESC clanDesc
TEXT_LABEL_63 sLiteralHeader
BOOL bLiteralHeader
IF eSection = SECTION_WORLD
IF eLayout > SLOT_LAYOUT_LABEL_NO_ICON
sHeader = "SCLB_GLOBAL"
ELSE
sHeader = "SCLB_NO_GLOBAL"
ENDIF
eHeaderIcon = ICON_WORLD_RANKING
ELIF eSection = SECTION_FRIEND
IF eLayout > SLOT_LAYOUT_LABEL_NO_ICON
sHeader = "SCLB_FRIENDS"
ELSE
sHeader = "SCLB_NO_FRNDS"
ENDIF
eHeaderIcon = ICON_FRIENDS
ELIF eSection = SECTION_CREW
IF eLayout > SLOT_LAYOUT_LABEL_NO_ICON
IF NETWORK_IS_SIGNED_ONLINE() AND NETWORK_CLAN_SERVICE_IS_VALID()
GAMER_HANDLE gamerHandle
gamerHandle = GET_GAMER_HANDLE_PLAYER(PLAYER_ID())
IF NETWORK_CLAN_PLAYER_IS_ACTIVE(gamerHandle)
NETWORK_CLAN_PLAYER_GET_DESC(clanDesc,SIZE_OF(clanDesc),gamerHandle)
IF NOT IS_STRING_NULL_OR_EMPTY(clanDesc.ClanName)
sHeader = "STRING"
sLiteralHeader = clanDesc.ClanName
bLiteralHeader = TRUE
ELSE
sHeader = "SCLB_CREW"
ENDIF
ELSE
sHeader = "SCLB_CREW"
ENDIF
ELSE
sHeader = "SCLB_CREW"
ENDIF
ELSE
IF NETWORK_IS_SIGNED_ONLINE() AND NETWORK_CLAN_SERVICE_IS_VALID()
GAMER_HANDLE gamerHandle
gamerHandle = GET_GAMER_HANDLE_PLAYER(PLAYER_ID())
IF NETWORK_CLAN_PLAYER_IS_ACTIVE(gamerHandle)
NETWORK_CLAN_PLAYER_GET_DESC(clanDesc,SIZE_OF(clanDesc),gamerHandle)
IF NOT IS_STRING_NULL_OR_EMPTY(clanDesc.ClanName)
sHeader = "SCLB_NO_CREWb"
sLiteralHeader = clanDesc.ClanName
bLiteralHeader = TRUE
ELSE
sHeader = "SCLB_NO_CREWc"
ENDIF
ELSE
sHeader = "SCLB_NO_CREWa"
ENDIF
ELSE
sHeader = "SCLB_NO_CREWa"
ENDIF
ENDIF
eHeaderIcon = ICON_CREW
ENDIF
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "SET_HEADER")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(eSection)) // Tell the SF which kind of header this is
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iHeaderID) // Tell it which slot it appears in
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(eLayout)) // Tell the SF how many columns we have
IF bLiteralHeader
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(sHeader) // What the name of the header is
ADD_TEXT_COMPONENT_SUBSTRING_KEYBOARD_DISPLAY(sLiteralHeader)
END_TEXT_COMMAND_SCALEFORM_STRING()
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(sHeader) // What the name of the header is
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
// Begin sending overload variables
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(eHeaderIcon))
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(sCol1)
END_TEXT_COMMAND_SCALEFORM_STRING()
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(eIcon1))
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(sCol2)
END_TEXT_COMMAND_SCALEFORM_STRING()
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(eIcon2))
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(sCol3)
END_TEXT_COMMAND_SCALEFORM_STRING()
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(eIcon3))
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(sCol4)
END_TEXT_COMMAND_SCALEFORM_STRING()
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(eIcon4))
END_SCALEFORM_MOVIE_METHOD()
ENDPROC
//INVALID NOW DO NOT USE!!!
PROC SET_SC_LEADERBOARD_SLOT_0_COLUMNS(SCALEFORM_INDEX uiLeaderboard, SCLB_SECTIONS eSection, INT iSlotID, STRING sPlayer)
#IF IS_DEBUG_BUILD
PRINTLN("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
SCRIPT_ASSERT("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
#ENDIF
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "SET_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(eSection)) // Tell the SF what the section is
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlotID) // Tell the SF which slot to put the values in
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(SLOT_LAYOUT_LABEL)) // Tell the SF which layout to use
// Begin sending overload variables
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(sPlayer)
END_TEXT_COMMAND_SCALEFORM_STRING()
END_SCALEFORM_MOVIE_METHOD()
ENDPROC
//INVALID NOW DO NOT USE!!!
PROC SET_SC_LEADERBOARD_SLOT_1_COLUMNS(SCALEFORM_INDEX uiLeaderboard, SCLB_SECTIONS eSection, INT iSlotID, STRING sPlayer, TEXT_LABEL_15 texRank)
#IF IS_DEBUG_BUILD
PRINTLN("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
SCRIPT_ASSERT("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
#ENDIF
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "SET_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(eSection)) // Tell the SF what the section is
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlotID) // Tell the SF which slot to put the values in
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(SLOT_LAYOUT_1_STATS)) // Tell the SF which layout to use
// Begin sending overload variables
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(sPlayer)
END_TEXT_COMMAND_SCALEFORM_STRING()
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(texRank)
END_TEXT_COMMAND_SCALEFORM_STRING()
END_SCALEFORM_MOVIE_METHOD()
ENDPROC
//INVALID NOW DO NOT USE!!!
PROC SET_SC_LEADERBOARD_SLOT_2_COLUMNS(SCALEFORM_INDEX uiLeaderboard, SCLB_SECTIONS eSection, INT iSlotID, STRING sPlayer, TEXT_LABEL_15 texRankingVal, TEXT_LABEL_15 texRank)
#IF IS_DEBUG_BUILD
PRINTLN("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
SCRIPT_ASSERT("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
#ENDIF
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "SET_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(eSection)) // Tell the SF what the section is
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlotID) // Tell the SF which slot to put the values in
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(SLOT_LAYOUT_2_STATS)) // Tell the SF which layout to use
// Begin sending overload variables
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(sPlayer)
END_TEXT_COMMAND_SCALEFORM_STRING()
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(texRankingVal)
END_TEXT_COMMAND_SCALEFORM_STRING()
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(texRank)
END_TEXT_COMMAND_SCALEFORM_STRING()
END_SCALEFORM_MOVIE_METHOD()
ENDPROC
//INVALID NOW DO NOT USE!!!
PROC SET_SC_LEADERBOARD_SLOT_3_COLUMNS(SCALEFORM_INDEX uiLeaderboard, SCLB_SECTIONS eSection, INT iSlotID, STRING sPlayer, TEXT_LABEL_15 texRankingVal, TEXT_LABEL_15 texMiddleText, TEXT_LABEL_15 texRank)
#IF IS_DEBUG_BUILD
PRINTLN("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
SCRIPT_ASSERT("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
#ENDIF
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "SET_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(eSection)) // Tell the SF what the section is
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlotID) // Tell the SF which slot to put the values in
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(SLOT_LAYOUT_3_STATS)) // Tell the SF which layout to use
// Begin sending overload variables
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(sPlayer)
END_TEXT_COMMAND_SCALEFORM_STRING()
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(texRankingVal)
END_TEXT_COMMAND_SCALEFORM_STRING()
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(texMiddleText)
END_TEXT_COMMAND_SCALEFORM_STRING()
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(texRank)
END_TEXT_COMMAND_SCALEFORM_STRING()
END_SCALEFORM_MOVIE_METHOD()
ENDPROC
//INVALID NOW DO NOT USE!!!
PROC SET_SC_LEADERBOARD_SLOT_4_COLUMNS(SCALEFORM_INDEX uiLeaderboard, SCLB_SECTIONS eSection, INT iSlotID, STRING sPlayer, TEXT_LABEL_15 texRankingVal, TEXT_LABEL_15 texMiddleText1, TEXT_LABEL_15 texMiddleText2, TEXT_LABEL_15 texRank)
#IF IS_DEBUG_BUILD
PRINTLN("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
SCRIPT_ASSERT("THIS COMMAND IS NOT VALID DO NOT USE IT! SEE CONOR FOR INFORMATION ABOUT COMMANDS TO USE.")
#ENDIF
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "SET_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(eSection)) // Tell the SF what the section is
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlotID) // Tell the SF which slot to put the values in
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(SLOT_LAYOUT_4_STATS)) // Tell the SF which layout to use
// Begin sending overload variables
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(sPlayer)
END_TEXT_COMMAND_SCALEFORM_STRING()
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(texRankingVal)
END_TEXT_COMMAND_SCALEFORM_STRING()
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(texMiddleText1)
END_TEXT_COMMAND_SCALEFORM_STRING()
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(texMiddleText2)
END_TEXT_COMMAND_SCALEFORM_STRING()
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(texRank)
END_TEXT_COMMAND_SCALEFORM_STRING()
END_SCALEFORM_MOVIE_METHOD()
ENDPROC
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////// VALID COMMANDS BELOW //////////////////////////////////////////////////////////////////////////////////////////
/// PURPOSE:
/// For displaying SP Shooting Range weapon names
/// PARAMS:
/// iDataInt - Integer off the SP Range leaderboards, Range uploads a specific INT for each weapon
/// RETURNS:
/// WEAPON_TYPE based off the integer passed in
FUNC WEAPON_TYPE GET_RANGE_GUN_NAME_FROM_INT(INT iDataInt)
//CGtoNG only
IF iDataInt = 600
RETURN WEAPONTYPE_DLC_RAILGUN
ELIF iDataInt = 500
RETURN WEAPONTYPE_MINIGUN
ELIF iDataInt = 400
RETURN WEAPONTYPE_MG
ELIF iDataInt = 401
RETURN WEAPONTYPE_COMBATMG
ELIF iDataInt = 402
RETURN WEAPONTYPE_DLC_ASSAULTMG
ELIF iDataInt = 300
RETURN WEAPONTYPE_ASSAULTRIFLE
ELIF iDataInt = 301
RETURN WEAPONTYPE_CARBINERIFLE
ELIF iDataInt = 302
RETURN WEAPONTYPE_ADVANCEDRIFLE
ELIF iDataInt = 303
RETURN WEAPONTYPE_DLC_HEAVYRIFLE
ELIF iDataInt = 200
RETURN WEAPONTYPE_PUMPSHOTGUN
ELIF iDataInt = 201
RETURN WEAPONTYPE_SAWNOFFSHOTGUN
ELIF iDataInt = 202
RETURN WEAPONTYPE_ASSAULTSHOTGUN
ELIF iDataInt = 203
RETURN WEAPONTYPE_DLC_BULLPUPSHOTGUN
ELIF iDataInt = 100
RETURN WEAPONTYPE_MICROSMG
ELIF iDataInt = 101
RETURN WEAPONTYPE_SMG
ELIF iDataInt = 102
RETURN WEAPONTYPE_DLC_ASSAULTSMG
ELIF iDataInt = 0
RETURN WEAPONTYPE_PISTOL
ELIF iDataInt = 1
RETURN WEAPONTYPE_COMBATPISTOL
ELIF iDataInt = 2
RETURN WEAPONTYPE_APPISTOL
ELIF iDataInt = 3
RETURN WEAPONTYPE_DLC_PISTOL50
ENDIF
// Do I need to deal with WEAPONTYPE_DLC_SPECIALCARBINE in this function?
RETURN WEAPONTYPE_INVALID
ENDFUNC
/// PURPOSE:
/// Request the scaleform movie for drawing the SC leaderboard
/// RETURNS:
/// Scaleform index of the SC leaderboard movie
FUNC SCALEFORM_INDEX REQUEST_SC_LEADERBOARD_UI()
RETURN REQUEST_SCALEFORM_MOVIE("SC_LEADERBOARD")
ENDFUNC
/// PURPOSE:
/// Cleans up the SC leaderboard scaleform movie
/// PARAMS:
/// uiLeaderboard -
PROC CLEANUP_SC_LEADERBOARD_UI(SCALEFORM_INDEX uiLeaderboard)
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(uiLeaderboard)
ENDPROC
/// PURPOSE:
/// Draws the SC leaderboard movie to the screen
/// PARAMS:
/// uiLeaderboard -
PROC DISPLAY_SC_LEADERBOARD_UI(SCALEFORM_INDEX uiLeaderboard)
IF HAS_SCALEFORM_MOVIE_LOADED(uiLeaderboard)
DRAW_SCALEFORM_MOVIE_FULLSCREEN(uiLeaderboard,255, 255, 255, 0)
ELSE
PRINTLN("Unable to draw scaleform! It hasn't loaded into memory yet!")
ENDIF
ENDPROC
///----------------------------------------------------
/// generic commands below so values don't have be structured first i.e. time values can be passed as ints
///----------------------------------------------------
/// PURPOSE:
/// Set the SC leaderboard title
/// PARAMS:
/// uiLeaderboard - scaleform index of the SC leaderboard
/// sTitle - Pass "SCLB_TITLE" for default string of "Social Club Leaderboard"
PROC SET_SC_LEADERBOARD_TITLE(SCALEFORM_INDEX uiLeaderboard, STRING sTitle)
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "SET_TITLE")
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(sTitle)
END_TEXT_COMMAND_SCALEFORM_STRING()
END_SCALEFORM_MOVIE_METHOD()
ENDPROC
/// PURPOSE:
/// Sets the SC leaderboard display type
/// PARAMS:
/// uiLeaderboard - scaleform index of the SC leaderboard
/// eDisplayType - Sets display type between Minigame (2/3 of Script UI grid) and Multiplayer (Full Screen)
PROC SET_SC_LEADERBOARD_DISPLAY_TYPE(SCALEFORM_INDEX uiLeaderboard, DISPLAY_TYPES eDisplayType = DISPLAY_TYPE_MINIGAME)
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "SET_DISPLAY_TYPE")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(eDisplayType))
END_SCALEFORM_MOVIE_METHOD()
ENDPROC
/// PURPOSE:
/// Used for the large panel title for Multiplayer Leaderboards
/// PARAMS:
/// uiLeaderboard - scaleform index of the SC leaderboard
/// sTitle - No default values.
PROC SET_SC_LEADERBOARD_MULTIPLAYER_TITLE(SCALEFORM_INDEX uiLeaderboard, STRING sTitle,STRING sDriverCoDriverString = NULL, STRING sSubString = NULL, BOOL bSubStringLiteral = TRUE, INT iLapParameter = -1)
PRINTLN("sTitle= ",sTitle)
PRINTLN("sDriverCoDriverString= ",sDriverCoDriverString)
PRINTLN("sSubString= ",sSubString)
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "SET_MULTIPLAYER_TITLE")
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(sTitle)
IF NOT IS_STRING_NULL_OR_EMPTY(sDriverCoDriverString)
ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL(sDriverCoDriverString)
ENDIF
IF iLapParameter = -1
IF bSubStringLiteral
IF NOT IS_STRING_NULL_OR_EMPTY(sSubString)
ADD_TEXT_COMPONENT_SUBSTRING_KEYBOARD_DISPLAY(sSubString)
ENDIF
ELSE
IF NOT IS_STRING_NULL_OR_EMPTY(sSubString)
ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL(sSubString)
ENDIF
ENDIF
ELSE
IF bSubStringLiteral
IF NOT IS_STRING_NULL_OR_EMPTY(sSubString)
ADD_TEXT_COMPONENT_SUBSTRING_KEYBOARD_DISPLAY(sSubString)
ENDIF
ELSE
IF NOT IS_STRING_NULL_OR_EMPTY(sSubString)
ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL(sSubString)
ENDIF
ENDIF
ADD_TEXT_COMPONENT_INTEGER(iLapParameter)
ENDIF
END_TEXT_COMMAND_SCALEFORM_STRING()
END_SCALEFORM_MOVIE_METHOD()
ENDPROC
/// PURPOSE:
/// Set the titles of the columns
/// PARAMS:
/// uiLeaderboard - scaleform index of the SC leaderboard
/// tl23_Position - Position title
/// ColumnTitles - Title for each column
/// iColumns - Number of columns
PROC SET_SC_LEADERBOARD_COLUMN_TITLES(SCALEFORM_INDEX uiLeaderboard,STRING tl23_Position, TEXT_LABEL_23 &ColumnTitles[], INT iColumns)
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "SET_TITLE")
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(tl23_Position)
END_TEXT_COMMAND_SCALEFORM_STRING()
INT i
REPEAT iColumns i
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(ColumnTitles[i])
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDREPEAT
END_SCALEFORM_MOVIE_METHOD()
ENDPROC
/// PURPOSE:
/// Sets the header of a give section
/// PARAMS:
/// uiLeaderboard - scaleform index of the SC leaderboard
/// iSlotID - overall row on board
/// iSlotState - type of row
/// bEmpty - to indicate this section is empty and needs a text description for next row
PROC SET_SC_LEADERBOARD_SECTION_HEADER(SCALEFORM_INDEX uiLeaderboard,INT& iSlotID, INT iSlotStateValue, BOOL bEmpty, BOOL bNoOnlinePrivileges = FALSE)
STRING sHeader = ""
NETWORK_CLAN_DESC clanDesc
TEXT_LABEL_63 sLiteralHeader
BOOL bLiteralHeader
PRINTLN("SET_SC_LEADERBOARD_SECTION_HEADER: iSlotID: ", iSlotID)
PRINTLN("SET_SC_LEADERBOARD_SECTION_HEADER: iSlotStateValue: ", iSlotStateValue)
PRINTLN("SET_SC_LEADERBOARD_SECTION_HEADER: bEmpty: ", bEmpty)
PRINTLN("SET_SC_LEADERBOARD_SECTION_HEADER: bNoOnlinePrivileges: ",bNoOnlinePrivileges)
IF IS_BIT_SET(iSlotStateValue, SCLB_SLOT_STATE_BIT_WORLD)
//IF NOT bEmpty
sHeader = "SCLB_GLOBAL"
//ELSE
// sHeader = "SCLB_NO_GLOBAL"
//ENDIF
ELIF IS_BIT_SET(iSlotStateValue, SCLB_SLOT_STATE_BIT_FRIENDS)
iSlotID++
//IF NOT bEmpty
sHeader = "SCLB_FRIENDS"
//ELSE
// sHeader = "SCLB_NO_FRNDS"
//ENDIF
ELIF IS_BIT_SET(iSlotStateValue, SCLB_SLOT_STATE_BIT_CREW)
iSlotID++
//IF NOT bEmpty
IF NETWORK_IS_SIGNED_ONLINE() AND NETWORK_CLAN_SERVICE_IS_VALID()
IF (IS_PLAYSTATION_PLATFORM() OR IS_XBOX_PLATFORM())
AND NOT NETWORK_HAVE_USER_CONTENT_PRIVILEGES()
sHeader = "SCLB_CREW"
ELSE
GAMER_HANDLE gamerHandle
gamerHandle = GET_GAMER_HANDLE_PLAYER(PLAYER_ID())
IF NETWORK_CLAN_PLAYER_IS_ACTIVE(gamerHandle)
NETWORK_CLAN_PLAYER_GET_DESC(clanDesc,SIZE_OF(clanDesc),gamerHandle)
IF NOT IS_STRING_NULL_OR_EMPTY(clanDesc.ClanName)
sHeader = "STRING"
sLiteralHeader = clanDesc.ClanName
bLiteralHeader = TRUE
ELSE
sHeader = "SCLB_CREW"
ENDIF
ELSE
sHeader = "SCLB_CREW"
ENDIF
ENDIF
ELSE
sHeader = "SCLB_CREW"
ENDIF
// ELSE
// IF NETWORK_IS_SIGNED_ONLINE() AND NETWORK_CLAN_SERVICE_IS_VALID()
// GAMER_HANDLE gamerHandle
// gamerHandle = GET_GAMER_HANDLE_PLAYER(PLAYER_ID())
// IF NETWORK_CLAN_PLAYER_IS_ACTIVE(gamerHandle)
// NETWORK_CLAN_PLAYER_GET_DESC(clanDesc,SIZE_OF(clanDesc),gamerHandle)
// IF NOT IS_STRING_NULL_OR_EMPTY(clanDesc.ClanName)
// sHeader = "SCLB_NO_CREWb"
// sLiteralHeader = clanDesc.ClanName
// bLiteralHeader = TRUE
// ELSE
// sHeader = "SCLB_NO_CREWc"
// ENDIF
// ELSE
// sHeader = "SCLB_NO_CREWa"
// ENDIF
// ELSE
// sHeader = "SCLB_NO_CREWa"
// ENDIF
// ENDIF
ENDIF
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "SET_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlotID)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlotStateValue)
IF bLiteralHeader
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(sHeader) // What the name of the header is
ADD_TEXT_COMPONENT_SUBSTRING_KEYBOARD_DISPLAY(sLiteralHeader)
END_TEXT_COMMAND_SCALEFORM_STRING()
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(sHeader) // What the name of the header is
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
END_SCALEFORM_MOVIE_METHOD()
iSlotID++
IF bNoOnlinePrivileges
INT iTempSlotValue = 0
SET_BIT(iTempSlotValue ,SCLB_SLOT_STATE_BIT_DESCRIPTION )
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "SET_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlotID)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iTempSlotValue )
IF NOT NETWORK_IS_SIGNED_ONLINE()
//IF IS_XBOX360_VERSION()
sHeader = "SCLB_NOT_ONL"
//ELIF IS_PS3_VERSION()
//OR IS_PLAYSTATION_PLATFORM()
// sHeader = "SCLB_NOT_ONLPS3"
//ENDIF
ELSE
IF NOT NETWORK_HAS_VALID_ROS_CREDENTIALS()
sHeader = "SCLB_NO_ROS"
ELSE
IF scLB_DisplayedData.iReadFailedBS != 0
sHeader = "SCLB_READ_FAIL"
ELSE
sHeader = "HUD_PERM"
ENDIF
ENDIF
ENDIF
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(sHeader) // What the name of the header is
END_TEXT_COMMAND_UNPARSED_SCALEFORM_STRING()
END_SCALEFORM_MOVIE_METHOD()
iSlotID++
ELSE
IF bEmpty
IF IS_BIT_SET(iSlotStateValue, SCLB_SLOT_STATE_BIT_WORLD)
//IF NOT bEmpty
// sHeader = "SCLB_GLOBAL"
//ELSE
sHeader = "SCLB_NO_GLOBAL"
//ENDIF
ELIF IS_BIT_SET(iSlotStateValue, SCLB_SLOT_STATE_BIT_FRIENDS)
//iSlotState = SCLB_SLOT_STATE_FRIENDS
//IF NOT bEmpty
// sHeader = "SCLB_FRIENDS"
//ELSE
IF NETWORK_GET_FRIEND_COUNT() > 0
sHeader = "SCLB_NO_FRNDS"
ELSE
sHeader = "SCLB_NO_FRNDSb"
ENDIF
//ENDIF
ELIF IS_BIT_SET(iSlotStateValue, SCLB_SLOT_STATE_BIT_CREW)
//iSlotState = SCLB_SLOT_STATE_CREW
// IF NOT bEmpty
// IF NETWORK_IS_SIGNED_ONLINE() AND NETWORK_CLAN_SERVICE_IS_VALID()
// GAMER_HANDLE gamerHandle
// gamerHandle = GET_GAMER_HANDLE_PLAYER(PLAYER_ID())
// IF NETWORK_CLAN_PLAYER_IS_ACTIVE(gamerHandle)
// NETWORK_CLAN_PLAYER_GET_DESC(clanDesc,SIZE_OF(clanDesc),gamerHandle)
// IF NOT IS_STRING_NULL_OR_EMPTY(clanDesc.ClanName)
// sHeader = "STRING"
// sLiteralHeader = clanDesc.ClanName
// bLiteralHeader = TRUE
// ELSE
// sHeader = "SCLB_CREW"
// ENDIF
// ELSE
// sHeader = "SCLB_CREW"
// ENDIF
// ELSE
// sHeader = "SCLB_CREW"
// ENDIF
// ELSE
IF NETWORK_HAS_SOCIAL_CLUB_ACCOUNT()
IF NETWORK_ARE_SOCIAL_CLUB_POLICIES_CURRENT()
IF NETWORK_IS_SIGNED_ONLINE() AND NETWORK_CLAN_SERVICE_IS_VALID()
IF (IS_PLAYSTATION_PLATFORM() OR IS_XBOX_PLATFORM())
AND NOT NETWORK_HAVE_USER_CONTENT_PRIVILEGES()
sHeader = "SCLB_NO_CREWc"
ELSE
GAMER_HANDLE gamerHandle
gamerHandle = GET_GAMER_HANDLE_PLAYER(PLAYER_ID())
IF NETWORK_CLAN_PLAYER_IS_ACTIVE(gamerHandle)
NETWORK_CLAN_PLAYER_GET_DESC(clanDesc,SIZE_OF(clanDesc),gamerHandle)
IF NOT IS_STRING_NULL_OR_EMPTY(clanDesc.ClanName)
sHeader = "SCLB_NO_CREWb"
sLiteralHeader = clanDesc.ClanName
bLiteralHeader = TRUE
ELSE
sHeader = "SCLB_NO_CREWc"
ENDIF
ELSE
sHeader = "SCLB_NO_CREWa"
ENDIF
ENDIF
ELSE
sHeader = "SCLB_NO_CREWa"
ENDIF
ELSE
sHeader = "SCLB_NO_CREWe"
ENDIF
ELSE
sHeader = "SCLB_NO_CREWd"
ENDIF
//ENDIF
ENDIF
INT iTempSlotValue = 0
SET_BIT(iTempSlotValue ,SCLB_SLOT_STATE_BIT_DESCRIPTION )
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "SET_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlotID)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iTempSlotValue )
IF bLiteralHeader
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(sHeader) // What the name of the header is
ADD_TEXT_COMPONENT_SUBSTRING_KEYBOARD_DISPLAY(sLiteralHeader)
END_TEXT_COMMAND_UNPARSED_SCALEFORM_STRING()
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(sHeader) // What the name of the header is
END_TEXT_COMMAND_UNPARSED_SCALEFORM_STRING()
ENDIF
END_SCALEFORM_MOVIE_METHOD()
iSlotID++
ENDIF
ENDIF
ENDPROC
/// PURPOSE:
/// Set a text only line on leaderboard
/// PARAMS:
/// uiLeaderboard - scaleform index of the SC leaderboard
/// iSlotID - overall row on board
/// iSlotState - bitfield defining the type of row
/// sDescription - the text labelf of the text to display
PROC SET_SC_LEADERBOARD_SLOT_TEXT_DESCRIPTION_ONLY(SCALEFORM_INDEX uiLeaderboard,INT iSlotID, INT iCurrentSlotState,STRING sDescription)//,INT iColumns)
SET_BIT(iCurrentSlotState ,SCLB_SLOT_STATE_BIT_DESCRIPTION )
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "SET_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlotID)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iCurrentSlotState)
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(sDescription)
END_TEXT_COMMAND_UNPARSED_SCALEFORM_STRING()
END_SCALEFORM_MOVIE_METHOD()
ENDPROC
/// PURPOSE:
/// To override the state of a particular slot i.e. hightlight a slow without changing data
/// PARAMS:
/// uiLeaderboard - scaleform index of the SC leaderboard
/// iSlotID - overall row on board
/// iSlotState - bitfield defining the type of row
PROC SET_SC_LEADERBOARD_SLOT_FINAL_STATE(SCALEFORM_INDEX uiLeaderboard,INT iSlotID, INT iSlotStateValue)
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "SET_SLOT_STATE")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlotID)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlotStateValue)
END_SCALEFORM_MOVIE_METHOD()
ENDPROC
/// PURPOSE:
/// Starts a row on a leaderboard
/// PARAMS:
/// uiLeaderboard - scaleform index of the SC leaderboard
/// iSlotID - overall row on board
/// iSlotState - bitfield defining the type of row
/// iPosition - the rank of this p
/// playerName - the name of the player for this row
/// crewTag - the crew tag of the player in this row
PROC START_SC_LEADERBOARD_SLOT(SCALEFORM_INDEX uiLeaderboard,INT iSlotID, INT iSlotStateValue, INT iPosition,
STRING playerName,STRING crewTag)
BEGIN_SCALEFORM_MOVIE_METHOD(uiLeaderboard, "SET_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlotID)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlotStateValue)
IF iPosition > 0
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("NUMBER")
ADD_TEXT_COMPONENT_INTEGER(iPosition)
END_TEXT_COMMAND_SCALEFORM_STRING()
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("SC_LB_EMPTY")
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
SCALEFORM_MOVIE_METHOD_ADD_PARAM_PLAYER_NAME_STRING(playerName)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_PLAYER_NAME_STRING(crewTag)
//END_SCALEFORM_MOVIE_METHOD()
ENDPROC
/// PURPOSE:
/// Adds a float to the row begun with START_SC_LEADERBOARD_SLO
/// PARAMS:
/// displaySetup - the display setup details
/// iIndex - index of value in the display setup
/// fDataFloat - the float value
/// bValidData - true if this is a valid row versus empty data (local player always has a row it is filled with invalid data if there is no data for them)
PROC ADD_SC_LEADERBOARD_COLUMN_DATA_FLOAT(SC_LEADERBOARD_DISPLAY_SETUP displaySetup, INT iIndex, FLOAT fDataFloat, BOOL bValidData)
// IF fDataFloat = HIGHEST_FLOAT
// PRINTLN("ADD_SC_LEADERBOARD_COLUMN_DATA_FLOAT- Highest int setting invalid data")
// bValidData = FALSE
// ENDIF
SWITCH INT_TO_ENUM(SCLB_DATA_TYPE,displaySetup.iColumnDisplayType[iIndex])
CASE SCLB_DATA_TYPE_FLOAT
IF bValidData
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("NUMBER")
ADD_TEXT_COMPONENT_FLOAT(fDataFloat,2)
END_TEXT_COMMAND_SCALEFORM_STRING()
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("SC_LB_EMPTY")
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
BREAK
CASE SCLB_DATA_TYPE_FLOAT_TO_INT
IF bValidData
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("NUMBER")
ADD_TEXT_COMPONENT_INTEGER(FLOOR(fDataFloat))
END_TEXT_COMMAND_SCALEFORM_STRING()
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("SC_LB_EMPTY")
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
BREAK
CASE SCLB_DATA_TYPE_FLOAT_DIST_WITH_CONV_FT
CASE SCLB_DATA_TYPE_FLOAT_DIST_WITH_CONV_MILE
CASE SCLB_DATA_TYPE_FLOAT_DIST_WITH_CONV_FT_NEG_B4_DIS
CASE SCLB_DATA_TYPE_FLOAT_DIST_WITH_CONV_MILE_NEG_B4_DIS
IF bValidData
IF INT_TO_ENUM(SCLB_DATA_TYPE,displaySetup.iColumnDisplayType[iIndex]) = SCLB_DATA_TYPE_FLOAT_DIST_WITH_CONV_FT_NEG_B4_DIS
OR INT_TO_ENUM(SCLB_DATA_TYPE,displaySetup.iColumnDisplayType[iIndex]) = SCLB_DATA_TYPE_FLOAT_DIST_WITH_CONV_MILE_NEG_B4_DIS
fDataFloat = fDataFloat*-1
ENDIF
IF NOT SHOULD_USE_METRIC_MEASUREMENTS()
IF INT_TO_ENUM(SCLB_DATA_TYPE,displaySetup.iColumnDisplayType[iIndex]) = SCLB_DATA_TYPE_FLOAT_DIST_WITH_CONV_MILE
OR INT_TO_ENUM(SCLB_DATA_TYPE,displaySetup.iColumnDisplayType[iIndex]) = SCLB_DATA_TYPE_FLOAT_DIST_WITH_CONV_MILE_NEG_B4_DIS
fDataFloat = CONVERT_METERS_TO_MILES(fDataFloat)
ELSE
fDataFloat = CONVERT_METERS_TO_FEET(fDataFloat)
ENDIF
ENDIF
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("NUMBER")
ADD_TEXT_COMPONENT_FLOAT(fDataFloat,2)
END_TEXT_COMMAND_SCALEFORM_STRING()
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("SC_LB_EMPTY")
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
BREAK
CASE SCLB_DATA_TYPE_NONE
//nothing
BREAK
ENDSWITCH
ENDPROC
FUNC TEXT_LABEL_15 GET_ARENA_SKILL_LEVEL_TITLE_FOR_SCLB(INT iLevel)
TEXT_LABEL_15 tlReturn = "ARENA_C_SL"
IF iLevel > ciARENA_SKILL_LEVEL_MAX
tlReturn = "**INVALID**"
RETURN tlReturn
ENDIF
IF iLevel < 0
iLevel = 0
ENDIF
tlReturn += iLevel
RETURN tlReturn
ENDFUNC
/// PURPOSE:
/// Adds a int to the row begun with START_SC_LEADERBOARD_SLO
/// PARAMS:
/// displaySetup - the display setup details
/// iIndex - index of value in the display setup
/// iDataInt - the value of the int
/// bValidData - true if this is a valid row versus empty data (local player always has a row it is filled with invalid data if there is no data for them)
/// bCustomCar - true if the data repersents a custom car
PROC ADD_SC_LEADERBOARD_COLUMN_DATA_INT(SC_LEADERBOARD_DISPLAY_SETUP displaySetup, INT iIndex,INT iDataInt, BOOL bValidData, BOOL bCustomCar = FALSE)
IF iDataInt = HIGHEST_INT
OR iDataInt = -HIGHEST_INT
PRINTLN("ADD_SC_LEADERBOARD_COLUMN_DATA_INT- Highest int setting invalid data")
bValidData = FALSE
ENDIF
TEXT_LABEL_15 tlReturn = ""
SWITCH INT_TO_ENUM(SCLB_DATA_TYPE,displaySetup.iColumnDisplayType[iIndex])
CASE SCLB_DATA_TYPE_INT
IF bValidData
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("NUMBER")
ADD_TEXT_COMPONENT_INTEGER(iDataInt)
END_TEXT_COMMAND_SCALEFORM_STRING()
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("SC_LB_EMPTY")
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
BREAK
CASE SCLB_DATA_TYPE_INT_NEG_B4_DIS
IF bValidData
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("NUMBER")
ADD_TEXT_COMPONENT_INTEGER(-iDataInt)
END_TEXT_COMMAND_SCALEFORM_STRING()
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("SC_LB_EMPTY")
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
BREAK
CASE SCLB_DATA_TYPE_TIME
CASE SCLB_DATA_TYPE_TIME_NO_MS
CASE SCLB_DATA_TYPE_TIME_POSITIVE
IF bValidData
IF INT_TO_ENUM(SCLB_DATA_TYPE,displaySetup.iColumnDisplayType[iIndex]) = SCLB_DATA_TYPE_TIME_POSITIVE
AND iDataInt < 0
iDataInt = iDataInt*-1
ENDIF
IF iDataInt >= 1000*60*60 //if time is over an hr only should minutes/sec
OR iDataInt <= -1000*60*60
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_TIME(iDataInt,TIME_FORMAT_HOURS|TIME_FORMAT_MINUTES|TIME_FORMAT_SECONDS)
END_TEXT_COMMAND_SCALEFORM_STRING()
ELIF INT_TO_ENUM(SCLB_DATA_TYPE,displaySetup.iColumnDisplayType[iIndex]) = SCLB_DATA_TYPE_TIME_NO_MS
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_TIME(iDataInt,TIME_FORMAT_MINUTES|TIME_FORMAT_SECONDS)
END_TEXT_COMMAND_SCALEFORM_STRING()
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_TIME(iDataInt,TIME_FORMAT_MINUTES|TIME_FORMAT_SECONDS|TIME_FORMAT_MILLISECONDS|TEXT_FORMAT_USE_DOT_FOR_MILLISECOND_DIVIDER)
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("SC_LB_EMPTY")
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
BREAK
CASE SCLB_DATA_TYPE_GOLD_TIME
IF bValidData
IF (iDataInt = HIGHEST_INT)
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("SC_LB_EMPTY")
END_TEXT_COMMAND_SCALEFORM_STRING()
ELIF iDataInt >= 1000*60*60 //if time is over an hr only should minutes/sec
OR iDataInt <= -1000*60*60
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_TIME(iDataInt,TIME_FORMAT_HOURS|TIME_FORMAT_MINUTES|TIME_FORMAT_SECONDS)
END_TEXT_COMMAND_SCALEFORM_STRING()
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_TIME(iDataInt,TIME_FORMAT_MINUTES|TIME_FORMAT_SECONDS|TIME_FORMAT_MILLISECONDS|TEXT_FORMAT_USE_DOT_FOR_MILLISECOND_DIVIDER)
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("SC_LB_EMPTY")
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
BREAK
CASE SCLB_DATA_TYPE_TIME_NEG_B4_DIS
CASE SCLB_DATA_TYPE_TIME_NEG_B4_DIS_NO_MS
IF bValidData
iDataInt = iDataInt*-1
IF iDataInt >= 1000*60*60 //if time is over an hr only should minutes/sec
OR iDataInt <= -1000*60*60
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_TIME(iDataInt,TIME_FORMAT_HOURS|TIME_FORMAT_MINUTES|TIME_FORMAT_SECONDS)
END_TEXT_COMMAND_SCALEFORM_STRING()
ELIF INT_TO_ENUM(SCLB_DATA_TYPE,displaySetup.iColumnDisplayType[iIndex]) = SCLB_DATA_TYPE_TIME_NEG_B4_DIS_NO_MS
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_TIME(iDataInt,TIME_FORMAT_MINUTES|TIME_FORMAT_SECONDS)
END_TEXT_COMMAND_SCALEFORM_STRING()
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
ADD_TEXT_COMPONENT_SUBSTRING_TIME(iDataInt,TIME_FORMAT_MINUTES|TIME_FORMAT_SECONDS|TIME_FORMAT_MILLISECONDS|TEXT_FORMAT_USE_DOT_FOR_MILLISECOND_DIVIDER)
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("SC_LB_EMPTY")
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
BREAK
CASE SCLB_DATA_TYPE_VEHICLE
//PRINTLN("Car ID 1 = ",iDataInt)
IF bCustomCar
IF IS_MODEL_IN_CDIMAGE(INT_TO_ENUM(MODEL_NAMES,iDataInt))
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("SCLB_VEH_CUST")
ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(INT_TO_ENUM(MODEL_NAMES,iDataInt)))
END_TEXT_COMMAND_SCALEFORM_STRING()
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("SC_LB_EMPTY")
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
ELSE
IF IS_MODEL_IN_CDIMAGE(INT_TO_ENUM(MODEL_NAMES,iDataInt))
//PRINTLN("Car Name = ", GET_STRING_FROM_TEXT_FILE(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(INT_TO_ENUM(MODEL_NAMES,iDataInt))) )
//PRINTLN("Car ID = ",iDataInt)
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(INT_TO_ENUM(MODEL_NAMES,iDataInt)))
END_TEXT_COMMAND_SCALEFORM_STRING()
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("SC_LB_EMPTY")
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
ENDIF
BREAK
CASE SCLB_DATA_TYPE_GUN
IF GET_RANGE_GUN_NAME_FROM_INT(iDataInt) != WEAPONTYPE_INVALID
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(GET_WEAPON_NAME(GET_RANGE_GUN_NAME_FROM_INT(iDataInt)))
END_TEXT_COMMAND_SCALEFORM_STRING()
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("SC_LB_EMPTY")
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
BREAK
CASE SCLB_DATA_TYPE_INT_DIST_WITH_CONV_FT
CASE SCLB_DATA_TYPE_INT_DIST_WITH_CONV_MILE
CASE SCLB_DATA_TYPE_INT_DIST_WITH_CONV_FT_NEG_B4_DIS
CASE SCLB_DATA_TYPE_INT_DIST_WITH_CONV_MILE_NEG_B4_DIS
IF bValidData
IF INT_TO_ENUM(SCLB_DATA_TYPE,displaySetup.iColumnDisplayType[iIndex]) = SCLB_DATA_TYPE_INT_DIST_WITH_CONV_FT_NEG_B4_DIS
OR INT_TO_ENUM(SCLB_DATA_TYPE,displaySetup.iColumnDisplayType[iIndex]) = SCLB_DATA_TYPE_INT_DIST_WITH_CONV_MILE_NEG_B4_DIS
iDataInt = iDataInt*-1
ENDIF
IF NOT SHOULD_USE_METRIC_MEASUREMENTS()
IF INT_TO_ENUM(SCLB_DATA_TYPE,displaySetup.iColumnDisplayType[iIndex]) = SCLB_DATA_TYPE_INT_DIST_WITH_CONV_MILE
OR INT_TO_ENUM(SCLB_DATA_TYPE,displaySetup.iColumnDisplayType[iIndex]) = SCLB_DATA_TYPE_INT_DIST_WITH_CONV_MILE_NEG_B4_DIS
iDataInt = FLOOR(CONVERT_METERS_TO_MILES(TO_FLOAT(iDataInt)))
ELSE
iDataInt = FLOOR(CONVERT_METERS_TO_FEET(TO_FLOAT(iDataInt)))
ENDIF
ENDIF
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("NUMBER")
ADD_TEXT_COMPONENT_INTEGER(iDataInt)
END_TEXT_COMMAND_SCALEFORM_STRING()
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("SC_LB_EMPTY")
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
BREAK
CASE SCLB_DATA_TYPE_ARENA_TITLE
IF iDataInt > ciARENA_SKILL_LEVEL_MAX
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("SC_LB_EMPTY")
END_TEXT_COMMAND_SCALEFORM_STRING()
ELSE
tlReturn = GET_ARENA_SKILL_LEVEL_TITLE_FOR_SCLB(iDataInt)
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(tlReturn)
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
BREAK
CASE SCLB_DATA_TYPE_CC_MEMBER_RANK
IF bValidData
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("NUMBER")
ADD_TEXT_COMPONENT_INTEGER(GET_CAR_CLUB_REP_TIER(iDataInt))
END_TEXT_COMMAND_SCALEFORM_STRING()
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("SC_LB_EMPTY")
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
BREAK
CASE SCLB_DATA_TYPE_NONE
//nothing
BREAK
ENDSWITCH
ENDPROC
//// PURPOSE:
/// Indicates you have written all data you need to slot started with START_SC_LEADERBOARD_SLOT
PROC STOP_SC_LEADERBOARD_SLOT()
END_SCALEFORM_MOVIE_METHOD()
ENDPROC
//EOF