Extend MP mission time limit to 240 min (LYLT)
Time-limit pick lists go from 9 entries (max 30 min) to 23: 1-15, 20, 25, 30, 45, 60, 120, 180, 240. Default stays 7 min. Content + console only, no MW4.exe rebuild: nothing between the dropdown and the mission timer clamps the value, and m_gameLength is 8 bits on the wire (MWApplication.cpp:790), so 255 min was always the real ceiling. - ConLobbyMission.script (venue console) + HostLobbyMission.script (PC host lobby): new list, max_displayed = 10 on the time dropdown, drop_list_size[5] 9 -> 23, and the hardcoded 9 loop bounds plus the nselected = 3 fallbacks updated. - TIME_LIST_DEFAULT is now the literal 6 (index of 7 min) instead of the C++ global g_nTimeList_Index = 3: index 3 is 4 min in the new list, and changing the global would have forced an exe rebuild. The reset-to-defaults path matches by VALUE (g_nTimeList_Value = 7) and needed no change. - MISSION-TIME-LIMITS.md: value flow, display formats, why 0 (no time limit) black-screens the networked HUD as shipped, and the Plan B outline for going past 255. Sources only: the repacked resource\*.mw4 packages, their .dep files, the deployed MW4\resource copies and the staged MW4pro.exe are build output and are NOT tracked here - rebuild them from main after this merges (build-env\build-resources.ps1). Verified locally against the built packages: FSConsole self-test green against vpod_ctcl.py; the console launched windowed on the dev box with the list scrolling 1 -> 240 and 240 selectable. Not yet run against a real bay. FSConsole's own changes (23-entry catalog, NmpBuilder 1-255 guard, SelfTest.CheckTimeLimits) live in the still-untracked venue/ tree, so they are NOT in this commit either. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -39,8 +39,8 @@
|
||||
#define TIME_LIST_DEFAULT $$g_nTimeList_Index$$ // 5 // 7 minutes
|
||||
#define TIME_VALUE_DEFAULT $$g_nTimeList_Value$$ // 7 // 7 minutes
|
||||
#else // !DEMO_CODE
|
||||
#define TIME_LIST_COUNT 9 // MSL
|
||||
#define TIME_LIST_DEFAULT $$g_nTimeList_Index$$ // 3 // 7 minutes
|
||||
#define TIME_LIST_COUNT 23 // [LYLT] extended: 1-15,20,25,30,45,60,120,180,240
|
||||
#define TIME_LIST_DEFAULT 6 // [LYLT] index of "7" (was $$g_nTimeList_Index$$ = 3, the OLD list's "7")
|
||||
#define TIME_VALUE_DEFAULT $$g_nTimeList_Value$$ // 7 // 7 minutes
|
||||
#endif // DEMO_CODE
|
||||
|
||||
@@ -283,14 +283,19 @@ main
|
||||
o_game_options[i].offsetLabel = drop_name_loc[i]
|
||||
o_game_options[i].arrowHeight = 15
|
||||
|
||||
if i == 6
|
||||
if i == 5 // [LYLT] extended time list -> scroll instead of overflowing the panel
|
||||
{
|
||||
o_game_options[i].max_displayed = 4
|
||||
o_game_options[i].max_displayed = 10
|
||||
}
|
||||
else
|
||||
{
|
||||
o_game_options[i].max_displayed = 16
|
||||
}
|
||||
if i == 6
|
||||
{
|
||||
o_game_options[i].max_displayed = 4
|
||||
}
|
||||
else
|
||||
{
|
||||
o_game_options[i].max_displayed = 16
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -460,13 +465,27 @@ main
|
||||
|
||||
o_game_options[i].nselected = TIME_LIST_DEFAULT
|
||||
#else // !DEMO_CODE
|
||||
o_game_options[i].list_item[2] = "5"
|
||||
o_game_options[i].list_item[3] = "7"
|
||||
o_game_options[i].list_item[4] = "9"
|
||||
o_game_options[i].list_item[5] = "10"
|
||||
o_game_options[i].list_item[6] = "12"
|
||||
o_game_options[i].list_item[7] = "15"
|
||||
o_game_options[i].list_item[8] = "30"
|
||||
o_game_options[i].list_item[2] = "3"
|
||||
o_game_options[i].list_item[3] = "4"
|
||||
o_game_options[i].list_item[4] = "5"
|
||||
o_game_options[i].list_item[5] = "6"
|
||||
o_game_options[i].list_item[6] = "7"
|
||||
o_game_options[i].list_item[7] = "8"
|
||||
o_game_options[i].list_item[8] = "9"
|
||||
o_game_options[i].list_item[9] = "10"
|
||||
o_game_options[i].list_item[10] = "11"
|
||||
o_game_options[i].list_item[11] = "12"
|
||||
o_game_options[i].list_item[12] = "13"
|
||||
o_game_options[i].list_item[13] = "14"
|
||||
o_game_options[i].list_item[14] = "15"
|
||||
o_game_options[i].list_item[15] = "20"
|
||||
o_game_options[i].list_item[16] = "25"
|
||||
o_game_options[i].list_item[17] = "30"
|
||||
o_game_options[i].list_item[18] = "45"
|
||||
o_game_options[i].list_item[19] = "60"
|
||||
o_game_options[i].list_item[20] = "120"
|
||||
o_game_options[i].list_item[21] = "180"
|
||||
o_game_options[i].list_item[22] = "240"
|
||||
|
||||
if callback($$GetLocalNetworkMissionParamater$$, time_limit) == 0
|
||||
o_game_options[i].nselected = TIME_LIST_DEFAULT
|
||||
|
||||
@@ -110,7 +110,7 @@ main
|
||||
drop_list_size[2] = 2
|
||||
drop_list_size[3] = 5
|
||||
drop_list_size[4] = 2
|
||||
drop_list_size[5] = 9
|
||||
drop_list_size[5] = 23 // [LYLT] extended time list
|
||||
drop_list_size[6] = 10
|
||||
drop_list_size[7] = 10
|
||||
drop_list_size[8] = 2
|
||||
@@ -202,14 +202,19 @@ main
|
||||
o_game_options[i].offsetLabel = drop_name_loc[i]
|
||||
o_game_options[i].arrowHeight = 15
|
||||
|
||||
if i == 11
|
||||
if i == 5 // [LYLT] extended time list -> scroll instead of overflowing the panel
|
||||
{
|
||||
o_game_options[i].max_displayed = 4
|
||||
o_game_options[i].max_displayed = 10
|
||||
}
|
||||
else
|
||||
{
|
||||
o_game_options[i].max_displayed = 16
|
||||
}
|
||||
if i == 11
|
||||
{
|
||||
o_game_options[i].max_displayed = 4
|
||||
}
|
||||
else
|
||||
{
|
||||
o_game_options[i].max_displayed = 16
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -545,24 +550,38 @@ main
|
||||
{
|
||||
o_game_options[i].list_item[0] = "1"
|
||||
o_game_options[i].list_item[1] = "2"
|
||||
o_game_options[i].list_item[2] = "5"
|
||||
o_game_options[i].list_item[3] = "10"
|
||||
o_game_options[i].list_item[4] = "15"
|
||||
o_game_options[i].list_item[5] = "30"
|
||||
o_game_options[i].list_item[6] = "60"
|
||||
o_game_options[i].list_item[7] = "90"
|
||||
o_game_options[i].list_item[8] = "120"
|
||||
o_game_options[i].list_item[2] = "3"
|
||||
o_game_options[i].list_item[3] = "4"
|
||||
o_game_options[i].list_item[4] = "5"
|
||||
o_game_options[i].list_item[5] = "6"
|
||||
o_game_options[i].list_item[6] = "7"
|
||||
o_game_options[i].list_item[7] = "8"
|
||||
o_game_options[i].list_item[8] = "9"
|
||||
o_game_options[i].list_item[9] = "10"
|
||||
o_game_options[i].list_item[10] = "11"
|
||||
o_game_options[i].list_item[11] = "12"
|
||||
o_game_options[i].list_item[12] = "13"
|
||||
o_game_options[i].list_item[13] = "14"
|
||||
o_game_options[i].list_item[14] = "15"
|
||||
o_game_options[i].list_item[15] = "20"
|
||||
o_game_options[i].list_item[16] = "25"
|
||||
o_game_options[i].list_item[17] = "30"
|
||||
o_game_options[i].list_item[18] = "45"
|
||||
o_game_options[i].list_item[19] = "60"
|
||||
o_game_options[i].list_item[20] = "120"
|
||||
o_game_options[i].list_item[21] = "180"
|
||||
o_game_options[i].list_item[22] = "240"
|
||||
|
||||
if callback($$GetLocalNetworkMissionParamater$$, time_limit) == 0
|
||||
o_game_options[i].nselected = 3
|
||||
o_game_options[i].nselected = 6 // [LYLT] index of "7"
|
||||
else
|
||||
{
|
||||
for int doh = 0; doh< 9; doh++
|
||||
for int doh = 0; doh< 23; doh++
|
||||
{
|
||||
if makeint(o_game_options[i].list_item[doh]) >= callback($$GetLocalNetworkMissionParamater$$, time_limit)
|
||||
{
|
||||
o_game_options[i].nselected = doh
|
||||
doh = 9
|
||||
doh = 23
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -784,15 +803,15 @@ main
|
||||
//------------------------------------------------------------------------
|
||||
i = 5
|
||||
if callback($$GetLocalNetworkMissionParamater$$, time_limit) == 0
|
||||
o_game_options[i].nselected = 3
|
||||
o_game_options[i].nselected = 6 // [LYLT] index of "7"
|
||||
else
|
||||
{
|
||||
for int doh = 0; doh< 9; doh++
|
||||
for int doh = 0; doh< 23; doh++
|
||||
{
|
||||
if makeint(o_game_options[i].list_item[doh]) >= callback($$GetLocalNetworkMissionParamater$$, time_limit)
|
||||
{
|
||||
o_game_options[i].nselected = doh
|
||||
doh = 9
|
||||
doh = 23
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user