Commit 31-player lobby support (untested, needs follow-up)
Carry the remaining CTCL, lobby, and player-limit updates onto the new moreplayers branch. This change set is intentionally marked untested and may still be broken. It needs follow-up validation and likely further work before it should be considered stable. Co-authored-by: Claude Sonnet 4.6 (Anthropic) <noreply@anthropic.com> Co-authored-by: GitHub Copilot <copilot@github.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
GitHub Copilot
parent
106bb5b59f
commit
acd4e40fa2
@@ -9,7 +9,7 @@
|
|||||||
#include "recscore.h"
|
#include "recscore.h"
|
||||||
#endif // !defined(CTCLS_EXPORTS) && !defined(CTCL_LAUNCHER)
|
#endif // !defined(CTCLS_EXPORTS) && !defined(CTCL_LAUNCHER)
|
||||||
|
|
||||||
#define MAX_TESLAS 16
|
#define MAX_TESLAS 31
|
||||||
#define MAX_CAMERAS 4
|
#define MAX_CAMERAS 4
|
||||||
|
|
||||||
#define PORT_Launcher 1000
|
#define PORT_Launcher 1000
|
||||||
@@ -260,7 +260,7 @@ CInviteCOOP g_InviteCOOP;
|
|||||||
// Mech4 only
|
// Mech4 only
|
||||||
int g_nMech4Comm = 0;
|
int g_nMech4Comm = 0;
|
||||||
BOOL g_bIsServer = FALSE;
|
BOOL g_bIsServer = FALSE;
|
||||||
SPlayerInfo g_aPlayerInfos[20];
|
SPlayerInfo g_aPlayerInfos[35]; // 31 pilots + 1 CS + 3 spare
|
||||||
int g_nPlayerInfos;
|
int g_nPlayerInfos;
|
||||||
int g_nServer;
|
int g_nServer;
|
||||||
int g_nTeslas;
|
int g_nTeslas;
|
||||||
|
|||||||
@@ -13316,9 +13316,10 @@ void CTCL_API CTCL_DefaultHostSetup(int nMode)
|
|||||||
params->m_maxBots = 8;
|
params->m_maxBots = 8;
|
||||||
//}
|
//}
|
||||||
} else {
|
} else {
|
||||||
params->m_maxPlayers = 16;
|
params->m_maxPlayers = 31; // 31: max that fits in 5-bit bitstream (0-31)
|
||||||
Environment.NetworkMaxPlayers = 16;
|
Environment.NetworkMaxPlayers = 31;
|
||||||
params->m_maxBots = 16;
|
params->m_maxBots = 31;
|
||||||
|
gos_NetServerCommands(gos_Commend_UpdateMaxPlayers, 0); // push the updated limit to the live DirectPlay session
|
||||||
}
|
}
|
||||||
params->m_allow3rdPerson = 1;
|
params->m_allow3rdPerson = 1;
|
||||||
if ((nMode != 0) && (nMode != 4)) {
|
if ((nMode != 0) && (nMode != 4)) {
|
||||||
|
|||||||
@@ -808,8 +808,8 @@ void NetMissionParameters::MWNetMissionParameters::SaveParameters(DynamicMemoryS
|
|||||||
stream->WriteBits(&m_pureMapCycle,1);
|
stream->WriteBits(&m_pureMapCycle,1);
|
||||||
|
|
||||||
|
|
||||||
stream->WriteBits(&m_maxPlayers, 5); // 16 players maximum
|
stream->WriteBits(&m_maxPlayers, 5); // max 31 players
|
||||||
stream->WriteBits(&m_maxBots, 5); // 16 players maximum
|
stream->WriteBits(&m_maxBots, 5); // max 31
|
||||||
stream->WriteBits(&m_mapID, 16); // 65535 maps available
|
stream->WriteBits(&m_mapID, 16); // 65535 maps available
|
||||||
stream->WriteBits(&m_mapClientCRC, 64);
|
stream->WriteBits(&m_mapClientCRC, 64);
|
||||||
|
|
||||||
@@ -927,8 +927,8 @@ void NetMissionParameters::MWNetMissionParameters::LoadParameters(MemoryStream *
|
|||||||
stream->ReadBits(&m_useMapCycle,1);
|
stream->ReadBits(&m_useMapCycle,1);
|
||||||
stream->ReadBits(&m_pureMapCycle,1);
|
stream->ReadBits(&m_pureMapCycle,1);
|
||||||
|
|
||||||
stream->ReadBits(&m_maxPlayers, 5); // 16 players max
|
stream->ReadBits(&m_maxPlayers, 5); // max 31 players
|
||||||
stream->ReadBits(&m_maxBots, 5); // 16 players max
|
stream->ReadBits(&m_maxBots, 5); // max 31
|
||||||
stream->ReadBits(&m_mapID, 16); // 65535 maps available
|
stream->ReadBits(&m_mapID, 16); // 65535 maps available
|
||||||
stream->ReadBits(&m_mapClientCRC, 64);
|
stream->ReadBits(&m_mapClientCRC, 64);
|
||||||
|
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ extern int g_nMech4Comm;
|
|||||||
// server & client only
|
// server & client only
|
||||||
extern BOOL g_bIsServer;
|
extern BOOL g_bIsServer;
|
||||||
// console(All), server & client only(g_aPlayerInfos[0]), server only(g_aPlayerInfos[1..g_nBOTs]
|
// console(All), server & client only(g_aPlayerInfos[0]), server only(g_aPlayerInfos[1..g_nBOTs]
|
||||||
extern SPlayerInfo g_aPlayerInfos[20];
|
extern SPlayerInfo g_aPlayerInfos[35]; // 31 pilots + 1 CS + 3 spare
|
||||||
extern int g_nPlayerInfos;
|
extern int g_nPlayerInfos;
|
||||||
extern int g_nServer;
|
extern int g_nServer;
|
||||||
extern int g_nTeslas;
|
extern int g_nTeslas;
|
||||||
|
|||||||
@@ -885,7 +885,7 @@ void __stdcall GetGameOSEnvironment(char* CommandLine)
|
|||||||
Environment.allowMultipleApps = false;
|
Environment.allowMultipleApps = false;
|
||||||
Environment.AllowJoinInProgress = true;
|
Environment.AllowJoinInProgress = true;
|
||||||
Environment.NetworkGame = true;
|
Environment.NetworkGame = true;
|
||||||
Environment.NetworkMaxPlayers = 16;
|
Environment.NetworkMaxPlayers = 31; // max 31 (fits in 5-bit bitstream)
|
||||||
Environment.NetworkGUID[0] = 0x95;
|
Environment.NetworkGUID[0] = 0x95;
|
||||||
Environment.NetworkGUID[1] = 0x78;
|
Environment.NetworkGUID[1] = 0x78;
|
||||||
Environment.NetworkGUID[2] = 0xFF;
|
Environment.NetworkGUID[2] = 0xFF;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
#include "recscore.h"
|
#include "recscore.h"
|
||||||
#endif // !defined(CTCLS_EXPORTS) && !defined(CTCL_LAUNCHER)
|
#endif // !defined(CTCLS_EXPORTS) && !defined(CTCL_LAUNCHER)
|
||||||
|
|
||||||
#define MAX_TESLAS 16
|
#define MAX_TESLAS 31
|
||||||
#define MAX_CAMERAS 4
|
#define MAX_CAMERAS 4
|
||||||
|
|
||||||
#define PORT_Launcher 1000
|
#define PORT_Launcher 1000
|
||||||
@@ -263,7 +263,7 @@ CInviteCOOP g_InviteCOOP;
|
|||||||
// Mech4 only
|
// Mech4 only
|
||||||
int g_nMech4Comm = 0;
|
int g_nMech4Comm = 0;
|
||||||
BOOL g_bIsServer = FALSE;
|
BOOL g_bIsServer = FALSE;
|
||||||
SPlayerInfo g_aPlayerInfos[20];
|
SPlayerInfo g_aPlayerInfos[35]; // 31 pilots + 1 CS + 3 spare
|
||||||
int g_nPlayerInfos;
|
int g_nPlayerInfos;
|
||||||
int g_nServer;
|
int g_nServer;
|
||||||
int g_nTeslas;
|
int g_nTeslas;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
#include "recscore.h"
|
#include "recscore.h"
|
||||||
#endif // !defined(CTCLS_EXPORTS) && !defined(CTCL_LAUNCHER)
|
#endif // !defined(CTCLS_EXPORTS) && !defined(CTCL_LAUNCHER)
|
||||||
|
|
||||||
#define MAX_TESLAS 16
|
#define MAX_TESLAS 31
|
||||||
#define MAX_CAMERAS 4
|
#define MAX_CAMERAS 4
|
||||||
|
|
||||||
#define PORT_Launcher 1000
|
#define PORT_Launcher 1000
|
||||||
@@ -263,7 +263,7 @@ CInviteCOOP g_InviteCOOP;
|
|||||||
// Mech4 only
|
// Mech4 only
|
||||||
int g_nMech4Comm = 0;
|
int g_nMech4Comm = 0;
|
||||||
BOOL g_bIsServer = FALSE;
|
BOOL g_bIsServer = FALSE;
|
||||||
SPlayerInfo g_aPlayerInfos[20];
|
SPlayerInfo g_aPlayerInfos[35]; // 31 pilots + 1 CS + 3 spare
|
||||||
int g_nPlayerInfos;
|
int g_nPlayerInfos;
|
||||||
int g_nServer;
|
int g_nServer;
|
||||||
int g_nTeslas;
|
int g_nTeslas;
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ void NetMissionParameters::AdeptNetMissionParameters::ResetParameters(void)
|
|||||||
{
|
{
|
||||||
m_runDedicated = 0;
|
m_runDedicated = 0;
|
||||||
m_closedGame = 0;
|
m_closedGame = 0;
|
||||||
m_playerLimit = 16;
|
m_playerLimit = 31; // max 31 (fits in 5-bit bitstream)
|
||||||
|
|
||||||
m_visibility = 0;
|
m_visibility = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
#include "recscore.h"
|
#include "recscore.h"
|
||||||
#endif // !defined(CTCLS_EXPORTS) && !defined(CTCL_LAUNCHER)
|
#endif // !defined(CTCLS_EXPORTS) && !defined(CTCL_LAUNCHER)
|
||||||
|
|
||||||
#define MAX_TESLAS 16
|
#define MAX_TESLAS 31
|
||||||
#define MAX_CAMERAS 4
|
#define MAX_CAMERAS 4
|
||||||
|
|
||||||
#define PORT_Launcher 1000
|
#define PORT_Launcher 1000
|
||||||
@@ -263,7 +263,7 @@ CInviteCOOP g_InviteCOOP;
|
|||||||
// Mech4 only
|
// Mech4 only
|
||||||
int g_nMech4Comm = 0;
|
int g_nMech4Comm = 0;
|
||||||
BOOL g_bIsServer = FALSE;
|
BOOL g_bIsServer = FALSE;
|
||||||
SPlayerInfo g_aPlayerInfos[20];
|
SPlayerInfo g_aPlayerInfos[35]; // 31 pilots + 1 CS + 3 spare
|
||||||
int g_nPlayerInfos;
|
int g_nPlayerInfos;
|
||||||
int g_nServer;
|
int g_nServer;
|
||||||
int g_nTeslas;
|
int g_nTeslas;
|
||||||
|
|||||||
@@ -72,8 +72,8 @@
|
|||||||
#define USE_O_MORE_PODS $$g_nMechPodNum$$ // 0 = use only 8
|
#define USE_O_MORE_PODS $$g_nMechPodNum$$ // 0 = use only 8
|
||||||
|
|
||||||
#if USE_O_MORE_PODS
|
#if USE_O_MORE_PODS
|
||||||
#define MAX_ROSTER_COUNT 16 // Was 8
|
#define MAX_ROSTER_COUNT 31 // max within 5-bit bitstream (0-31)
|
||||||
#define MAX_TEAMMATE_COUNT 8 // Was 4
|
#define MAX_TEAMMATE_COUNT 15 // Was 4, then 8
|
||||||
#else
|
#else
|
||||||
#define MAX_ROSTER_COUNT 8
|
#define MAX_ROSTER_COUNT 8
|
||||||
#define MAX_TEAMMATE_COUNT 4 // Was 4
|
#define MAX_TEAMMATE_COUNT 4 // Was 4
|
||||||
@@ -364,7 +364,7 @@ main
|
|||||||
cur_team_val = callback($$CTCL_GetTeamParams$$, cur_team_count[0])
|
cur_team_val = callback($$CTCL_GetTeamParams$$, cur_team_count[0])
|
||||||
|
|
||||||
int skin_id ///////VERY IMPORTANT FOR NEW SKIN INTERFACE
|
int skin_id ///////VERY IMPORTANT FOR NEW SKIN INTERFACE
|
||||||
int skin_ids[17]
|
int skin_ids[32]
|
||||||
int update_skin = false
|
int update_skin = false
|
||||||
// MSL 5.05
|
// MSL 5.05
|
||||||
int decal_id ///////VERY IMPORTANT FOR NEW DECAL INTERFACE
|
int decal_id ///////VERY IMPORTANT FOR NEW DECAL INTERFACE
|
||||||
@@ -522,7 +522,7 @@ main
|
|||||||
|
|
||||||
|
|
||||||
///---------holds faction name for scroll list
|
///---------holds faction name for scroll list
|
||||||
string faction_name[17]
|
string faction_name[32]
|
||||||
|
|
||||||
callback($$Shell_CallbackHandler$$, ShellInitMPScreen)
|
callback($$Shell_CallbackHandler$$, ShellInitMPScreen)
|
||||||
|
|
||||||
@@ -645,12 +645,12 @@ main
|
|||||||
team_legal_to_join[8] = TRUE
|
team_legal_to_join[8] = TRUE
|
||||||
int update_team = 0
|
int update_team = 0
|
||||||
|
|
||||||
int max_players = 16
|
int max_players = 31 // max within 5-bit bitstream
|
||||||
|
|
||||||
int player_num = 0
|
int player_num = 0
|
||||||
// int num_of_teams = 8
|
// int num_of_teams = 8
|
||||||
int mech_id
|
int mech_id
|
||||||
int name_color[17]
|
int name_color[32]
|
||||||
int lupe
|
int lupe
|
||||||
|
|
||||||
for lupe = 0; lupe < nRosterCount;lupe++
|
for lupe = 0; lupe < nRosterCount;lupe++
|
||||||
@@ -675,33 +675,33 @@ main
|
|||||||
player_num = -1
|
player_num = -1
|
||||||
|
|
||||||
// ComboBox for the Player Type
|
// ComboBox for the Player Type
|
||||||
object o_BotList[17]
|
object o_BotList[32]
|
||||||
object o_BotList_bu[17]
|
object o_BotList_bu[32]
|
||||||
int m_naLastSelected[17]
|
int m_naLastSelected[32]
|
||||||
for x = 0; x < nRosterCount; x++
|
for x = 0; x < nRosterCount; x++
|
||||||
{
|
{
|
||||||
m_naLastSelected[x] = 0
|
m_naLastSelected[x] = 0
|
||||||
}
|
}
|
||||||
object o_Editbox[17]
|
object o_Editbox[32]
|
||||||
object o_print_text[17]
|
object o_print_text[32]
|
||||||
object o_mech_variant[17]
|
object o_mech_variant[32]
|
||||||
object o_mech_variant_bu[17]
|
object o_mech_variant_bu[32]
|
||||||
#if USE_O_MECH_VARIANT2
|
#if USE_O_MECH_VARIANT2
|
||||||
object o_mech_variant2[17]
|
object o_mech_variant2[32]
|
||||||
object o_mech_variant2_bu[17]
|
object o_mech_variant2_bu[32]
|
||||||
#endif // USE_O_MECH_VARIANT2
|
#endif // USE_O_MECH_VARIANT2
|
||||||
object o_mech_rand[17]
|
object o_mech_rand[32]
|
||||||
object o_skins[17]
|
object o_skins[32]
|
||||||
object o_skins_bu[17]
|
object o_skins_bu[32]
|
||||||
// MSL 5.05
|
// MSL 5.05
|
||||||
object o_decal[18]
|
object o_decal[32]
|
||||||
object o_decal_bu[18]
|
object o_decal_bu[32]
|
||||||
object o_team[18]
|
object o_team[32]
|
||||||
object o_team_bu[18]
|
object o_team_bu[32]
|
||||||
object o_decal_box[18]
|
object o_decal_box[32]
|
||||||
object o_skin_box[18]
|
object o_skin_box[32]
|
||||||
object o_status[18]
|
object o_status[32]
|
||||||
int roster_posy[18]
|
int roster_posy[32]
|
||||||
int coolbaby
|
int coolbaby
|
||||||
|
|
||||||
int stock_size = 0
|
int stock_size = 0
|
||||||
@@ -1005,7 +1005,7 @@ main
|
|||||||
o_decal[x].list_item[15] = "16"
|
o_decal[x].list_item[15] = "16"
|
||||||
o_decal[x].list_item[16] = "17"
|
o_decal[x].list_item[16] = "17"
|
||||||
|
|
||||||
for coolbaby = 17;coolbaby < o_decal[x].list_size+1;coolbaby++
|
for coolbaby = 17;coolbaby < o_decal[x].list_size;coolbaby++
|
||||||
o_decal[x].list_item[coolbaby] = conv$(coolbaby+1)
|
o_decal[x].list_item[coolbaby] = conv$(coolbaby+1)
|
||||||
|
|
||||||
o_decal[x].nselected = 3
|
o_decal[x].nselected = 3
|
||||||
@@ -1072,7 +1072,7 @@ main
|
|||||||
o_skins[x].list_item[14] = "15"
|
o_skins[x].list_item[14] = "15"
|
||||||
o_skins[x].list_item[15] = "16"
|
o_skins[x].list_item[15] = "16"
|
||||||
|
|
||||||
for coolbaby = 16;coolbaby < o_skins[x].list_size+1;coolbaby++
|
for coolbaby = 16;coolbaby < o_skins[x].list_size;coolbaby++
|
||||||
o_skins[x].list_item[coolbaby] = conv$(coolbaby+1)
|
o_skins[x].list_item[coolbaby] = conv$(coolbaby+1)
|
||||||
|
|
||||||
o_skins[x].nselected = 3
|
o_skins[x].nselected = 3
|
||||||
@@ -2714,7 +2714,7 @@ main
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// MSL 5.06
|
// MSL 5.06
|
||||||
if nLaunchState == 0 && (nTempPlayerCount > 16)
|
if nLaunchState == 0 && (nTempPlayerCount > 31)
|
||||||
{
|
{
|
||||||
o_error_string.text = "Too many player/bots"
|
o_error_string.text = "Too many player/bots"
|
||||||
nLaunchState = -7
|
nLaunchState = -7
|
||||||
|
|||||||
Reference in New Issue
Block a user