Finalize 18-player prerelease content

This commit is contained in:
dr3murr 2026-07-30 20:54:08 -04:00
parent e281809085
commit bf6ec2bb41
9 changed files with 333 additions and 16 deletions

Binary file not shown.

View file

@ -3,5 +3,4 @@ exec autoexec_delta.cfg
stuffcmds
lagCompensationUseOnlySnapshotRecords 1
fps_max 60
net_data_block_enabled 0
killReplay_lagCompensate 0
killReplay_lagCompensate 1

View file

@ -2017,7 +2017,7 @@
"name" "#PL_pilot_skirmish"
"lobbytitle" "#PL_pilot_skirmish_lobby"
"description" "#PL_pilot_skirmish_desc"
"max players" "16"
"max players" "18"
"cmdlineMapLoad" "0"
"max teams" "2"
"visible" "1"

View file

@ -326,6 +326,8 @@ engine.dll,text,0x7683F,8B 8B E8 00 00 00,B9 FF FF FF FF 90
engine.dll,text,0x134C16,7E,EB
; fix ip leak
engine.dll,text,0xDA899,74,EB
; R1O fake-dedi equivalent: always take the null-netchan "address" = "none" branch
engine_r1o.dll,text,0x142DDE,74,EB
; rename old persistence funcs
client.dll,rdata,0x80BFE0,"GetPersistentVar","OldPersistentVar"
client.dll,rdata,0x80BFB0,"GetPersistentVarAsInt","OldPersistentVarAsInt"

View file

@ -204,7 +204,5 @@ engine_ds.dll,text,0x6E430,E9,B0 01 C3
engine_ds.dll,rdata,0x430EF4,"1200","1150"
; snapshot/kill-replay history bounds: retail uses 19 entries, dedicated uses 17
engine_ds.dll,text,0x50C33,83 F9 11,83 F9 13
engine_ds.dll,text,0x50CBD,83 FF 11,83 FF 13
engine_ds.dll,text,0x50D3D,41 83 FC 11,41 83 FC 13
; Keep the stock dedicated snapshot/kill-replay history bound at 17.
; Raising it to the retail 19-entry bound has not been validated for old dedicated.

View file

@ -1771,6 +1771,153 @@
pin_to_sibling_corner 0
}
ScoreboardTeammateBackground8
{
ControlName ImagePanel
InheritProperties ScoreboardPlayer
pin_to_sibling ScoreboardTeammateBackground7
pin_corner_to_sibling 0
pin_to_sibling_corner 2
}
ScoreboardTeammateSelection8
{
ControlName ImagePanel
InheritProperties ScoreboardPlayerSelection
pin_to_sibling ScoreboardTeammateBackground8
pin_corner_to_sibling 0
pin_to_sibling_corner 0
}
ScoreboardTeammatePlayerNumber8
{
ControlName ImagePanel
InheritProperties ScoreboardPlayerNumber
pin_to_sibling ScoreboardTeammateBackground8
pin_corner_to_sibling 0
pin_to_sibling_corner 0
}
ScoreboardTeammateMic8
{
ControlName ImagePanel
InheritProperties ScoreboardPlayerMic
pin_to_sibling ScoreboardTeammatePlayerNumber8
pin_corner_to_sibling 0
pin_to_sibling_corner 1
}
ScoreboardTeammateStatus8
{
ControlName ImagePanel
InheritProperties ScoreboardPlayerStatus
pin_to_sibling ScoreboardTeammateMic8
pin_corner_to_sibling 0
pin_to_sibling_corner 1
}
ScoreboardTeammateArt8
{
ControlName CNestedPanel
InheritProperties ScoreboardPlayerArt
pin_to_sibling ScoreboardTeammateStatus8
pin_corner_to_sibling 0
pin_to_sibling_corner 1
}
ScoreboardTeammateLvl8
{
ControlName Label
InheritProperties ScoreboardPlayerLevel
pin_to_sibling ScoreboardTeammateArt8
pin_corner_to_sibling 0
pin_to_sibling_corner 1
}
ScoreboardTeammateName8
{
ControlName Label
InheritProperties ScoreboardPlayerName
pin_to_sibling ScoreboardTeammateLvl8
pin_corner_to_sibling 0
pin_to_sibling_corner 1
}
ScoreboardTeammatePartyLeader8
{
ControlName ImagePanel
InheritProperties ScoreboardPlayerPartyLeader
pin_to_sibling ScoreboardTeammateName8
pin_corner_to_sibling 0
pin_to_sibling_corner 0
}
ScoreboardTeammateConnection8
{
ControlName ImagePanel [$GAMECONSOLE]
ControlName Label [!$GAMECONSOLE]
InheritProperties ScoreboardColumnConnection
pin_to_sibling ScoreboardTeammateBackground8
pin_corner_to_sibling 1
pin_to_sibling_corner 1
}
ScoreboardTeammatePing8
{
ControlName Label
InheritProperties ScoreboardPing
pin_to_sibling ScoreboardTeammateBackground8
pin_corner_to_sibling 0
pin_to_sibling_corner 1
}
ScoreboardTeammateColumn6_8
{
ControlName Label
InheritProperties ScoreboardColumnData
pin_to_sibling ScoreboardTeammateConnection8
pin_corner_to_sibling 1
pin_to_sibling_corner 0
xpos 1
}
ScoreboardTeammateColumn5_8
{
ControlName Label
InheritProperties ScoreboardColumnData
pin_to_sibling ScoreboardTeammateColumn6_8
pin_corner_to_sibling 1
pin_to_sibling_corner 0
}
ScoreboardTeammateColumn4_8
{
ControlName Label
InheritProperties ScoreboardColumnData
pin_to_sibling ScoreboardTeammateColumn5_8
pin_corner_to_sibling 1
pin_to_sibling_corner 0
}
ScoreboardTeammateColumn3_8
{
ControlName Label
InheritProperties ScoreboardColumnData
pin_to_sibling ScoreboardTeammateColumn4_8
pin_corner_to_sibling 1
pin_to_sibling_corner 0
}
ScoreboardTeammateColumn2_8
{
ControlName Label
InheritProperties ScoreboardColumnData
pin_to_sibling ScoreboardTeammateColumn3_8
pin_corner_to_sibling 1
pin_to_sibling_corner 0
}
ScoreboardTeammateColumn1_8
{
ControlName Label
InheritProperties ScoreboardColumnData
pin_to_sibling ScoreboardTeammateColumn2_8
pin_corner_to_sibling 1
pin_to_sibling_corner 0
}
ScoreboardTeammateColumn0_8
{
ControlName Label
InheritProperties ScoreboardColumnData
pin_to_sibling ScoreboardTeammateColumn1_8
pin_corner_to_sibling 1
pin_to_sibling_corner 0
}
// Enemy players
ScoreboardOpponentBackground0
@ -2950,6 +3097,153 @@
pin_to_sibling_corner 0
}
ScoreboardOpponentBackground8
{
ControlName ImagePanel
InheritProperties ScoreboardPlayer
pin_to_sibling ScoreboardOpponentBackground7
pin_corner_to_sibling 0
pin_to_sibling_corner 2
}
ScoreboardOpponentSelection8
{
ControlName ImagePanel
InheritProperties ScoreboardPlayerSelection
pin_to_sibling ScoreboardOpponentBackground8
pin_corner_to_sibling 0
pin_to_sibling_corner 0
}
ScoreboardOpponentPlayerNumber8
{
ControlName ImagePanel
InheritProperties ScoreboardPlayerNumber
pin_to_sibling ScoreboardOpponentBackground8
pin_corner_to_sibling 0
pin_to_sibling_corner 0
}
ScoreboardOpponentMic8
{
ControlName ImagePanel
InheritProperties ScoreboardPlayerMic
pin_to_sibling ScoreboardOpponentPlayerNumber8
pin_corner_to_sibling 0
pin_to_sibling_corner 1
}
ScoreboardOpponentStatus8
{
ControlName ImagePanel
InheritProperties ScoreboardPlayerStatus
pin_to_sibling ScoreboardOpponentMic8
pin_corner_to_sibling 0
pin_to_sibling_corner 1
}
ScoreboardOpponentArt8
{
ControlName CNestedPanel
InheritProperties ScoreboardPlayerArt
pin_to_sibling ScoreboardOpponentStatus8
pin_corner_to_sibling 0
pin_to_sibling_corner 1
}
ScoreboardOpponentLvl8
{
ControlName Label
InheritProperties ScoreboardPlayerLevel
pin_to_sibling ScoreboardOpponentArt8
pin_corner_to_sibling 0
pin_to_sibling_corner 1
}
ScoreboardOpponentName8
{
ControlName Label
InheritProperties ScoreboardPlayerName
pin_to_sibling ScoreboardOpponentLvl8
pin_corner_to_sibling 0
pin_to_sibling_corner 1
}
ScoreboardOpponentPartyLeader8
{
ControlName ImagePanel
InheritProperties ScoreboardPlayerPartyLeader
pin_to_sibling ScoreboardOpponentName8
pin_corner_to_sibling 0
pin_to_sibling_corner 0
}
ScoreboardOpponentConnection8
{
ControlName ImagePanel [$GAMECONSOLE]
ControlName Label [!$GAMECONSOLE]
InheritProperties ScoreboardColumnConnection
pin_to_sibling ScoreboardOpponentBackground8
pin_corner_to_sibling 1
pin_to_sibling_corner 1
}
ScoreboardOpponentPing8
{
ControlName Label
InheritProperties ScoreboardPing
pin_to_sibling ScoreboardOpponentBackground8
pin_corner_to_sibling 0
pin_to_sibling_corner 1
}
ScoreboardOpponentColumn6_8
{
ControlName Label
InheritProperties ScoreboardColumnData
pin_to_sibling ScoreboardOpponentConnection8
pin_corner_to_sibling 1
pin_to_sibling_corner 0
xpos 1
}
ScoreboardOpponentColumn5_8
{
ControlName Label
InheritProperties ScoreboardColumnData
pin_to_sibling ScoreboardOpponentColumn6_8
pin_corner_to_sibling 1
pin_to_sibling_corner 0
}
ScoreboardOpponentColumn4_8
{
ControlName Label
InheritProperties ScoreboardColumnData
pin_to_sibling ScoreboardOpponentColumn5_8
pin_corner_to_sibling 1
pin_to_sibling_corner 0
}
ScoreboardOpponentColumn3_8
{
ControlName Label
InheritProperties ScoreboardColumnData
pin_to_sibling ScoreboardOpponentColumn4_8
pin_corner_to_sibling 1
pin_to_sibling_corner 0
}
ScoreboardOpponentColumn2_8
{
ControlName Label
InheritProperties ScoreboardColumnData
pin_to_sibling ScoreboardOpponentColumn3_8
pin_corner_to_sibling 1
pin_to_sibling_corner 0
}
ScoreboardOpponentColumn1_8
{
ControlName Label
InheritProperties ScoreboardColumnData
pin_to_sibling ScoreboardOpponentColumn2_8
pin_corner_to_sibling 1
pin_to_sibling_corner 0
}
ScoreboardOpponentColumn0_8
{
ControlName Label
InheritProperties ScoreboardColumnData
pin_to_sibling ScoreboardOpponentColumn1_8
pin_corner_to_sibling 1
pin_to_sibling_corner 0
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ScoreboardBadRepPresentMessage

View file

@ -1868,7 +1868,7 @@ function InitPersistence()
AddPersistenceKey("savedScoreboardData.campaign", "bool")
AddPersistenceKey("savedScoreboardData.ranked", "bool")
AddPersistenceKey("savedScoreboardData.hadMatchLossProtection", "bool")
AddPersistenceArray("savedScoreboardData.playersIMC", 8)
AddPersistenceArray("savedScoreboardData.playersIMC", 9)
AddPersistenceKey("savedScoreboardData.playersIMC.name", "string")
AddPersistenceKey("savedScoreboardData.playersIMC.xuid", "string")
AddPersistenceKey("savedScoreboardData.playersIMC.level", "int")
@ -1883,7 +1883,7 @@ function InitPersistence()
AddPersistenceKey("savedScoreboardData.playersIMC.playingRanked", "bool")
AddPersistenceKey("savedScoreboardData.playersIMC.rank", "int")
AddPersistenceKey("savedScoreboardData.playersIMC.matchPerformance", "float")
AddPersistenceArray("savedScoreboardData.playersMCOR", 8)
AddPersistenceArray("savedScoreboardData.playersMCOR", 9)
AddPersistenceKey("savedScoreboardData.playersMCOR.name", "string")
AddPersistenceKey("savedScoreboardData.playersMCOR.xuid", "string")
AddPersistenceKey("savedScoreboardData.playersMCOR.level", "int")

View file

@ -1,4 +1,7 @@
const MAX_SCORE_COLUMNS = 7
const SCOREBOARD_PLAYER_HEIGHT = 20
const SCOREBOARD_PLAYER_HEIGHT_9V9 = 18
const SCOREBOARD_PLAYER_SEPARATOR_HEIGHT = 1
const SCOREBOARD_MATERIAL_GEN1 = "../ui/menu/generation_icons/generation_0"
const SCOREBOARD_MATERIAL_GEN2 = "../ui/menu/generation_icons/generation_1"
const SCOREBOARD_MATERIAL_GEN3 = "../ui/menu/generation_icons/generation_2"
@ -371,6 +374,26 @@ function InitScoreboard_Think()
}
}
if ( numTeamPlayers > 8 )
{
local compactHeight = (SCOREBOARD_PLAYER_HEIGHT_9V9 * level.screenSize[1] / 480.0).tointeger()
table.background.SetHeight( compactHeight )
table.selection.SetHeight( compactHeight )
table.playerNumber.SetHeight( compactHeight )
table.status.SetHeight( compactHeight )
art.SetHeight( compactHeight )
table.lvl.SetHeight( compactHeight )
table.name.SetHeight( compactHeight )
table.mic.SetHeight( compactHeight )
table.leader.SetHeight( compactHeight )
table.connection.SetHeight( compactHeight )
if ( file.developer )
table.ping.SetHeight( compactHeight )
foreach ( varName, columnElem in file.columnLabels )
table[varName].SetHeight( compactHeight )
}
file.playerElems[team].append( table )
}
}
@ -438,10 +461,11 @@ function ShowScoreboard()
local resMultiplier = screenSize[1] / 480.0
local numTeamPlayers = GetNumTeamPlayers()
local playerSeperatorHeight = (1 * resMultiplier).tointeger()
local playerHeight = (20 * resMultiplier).tointeger()
local playerHeightUnits = numTeamPlayers > 8 ? SCOREBOARD_PLAYER_HEIGHT_9V9 : SCOREBOARD_PLAYER_HEIGHT
local playerSeperatorHeight = (SCOREBOARD_PLAYER_SEPARATOR_HEIGHT * resMultiplier).tointeger()
local playerHeight = (playerHeightUnits * resMultiplier).tointeger()
local teamSeparatorHeight = (8 * resMultiplier).tointeger()
local losingTeamYOffset = (((21 * numTeamPlayers) + 5) * resMultiplier).tointeger()
local losingTeamYOffset = ((((playerHeightUnits + SCOREBOARD_PLAYER_SEPARATOR_HEIGHT) * numTeamPlayers) + 5) * resMultiplier).tointeger()
file.background.Show()
file.header.background.Show()

View file

@ -619,7 +619,7 @@ function PopulateScoreboardData()
// Process IMC players
local imcPlayers = GetSortedPlayers(GetScoreboardCompareFunc(player), TEAM_IMC)
for (local i = 0; i < min(imcPlayers.len(), 8); i++)
for (local i = 0; i < min(imcPlayers.len(), 9); i++)
{
local imcPlayer = imcPlayers[i]
player.SetPersistentVar("savedScoreboardData.playersIMC[" + i + "].name", imcPlayer.GetPlayerName())
@ -640,7 +640,7 @@ function PopulateScoreboardData()
// Process MCOR players
local mcorPlayers = GetSortedPlayers(GetScoreboardCompareFunc(player), TEAM_MILITIA)
for (local i = 0; i < min(mcorPlayers.len(), 8); i++)
for (local i = 0; i < min(mcorPlayers.len(), 9); i++)
{
local mcorPlayer = mcorPlayers[i]
player.SetPersistentVar("savedScoreboardData.playersMCOR[" + i + "].name", mcorPlayer.GetPlayerName())