FS507D asset recovery, ConLobby V5.0.7Df promotion, mechlab New-Mech crash fix
FS507D_20161015 release analysis wrap-up (drop itself is gitignored; art-review
folder kept local for review):
- Recovered the only assets our tree lacked: 13 hsh HUD/radar/mech bmps and the
two 5.07D lobby decals (decal_46/47.tga, extracted from release props.mw4 via
a ported gos_LZDecompress).
- ResourceImagePool.cpp: missing-texture placeholder is now LAB_ONLY (editor
keeps degraded mode); Release restores the original fatal STOP. Release +
Profile rebuilt, 0 errors.
Console script reconciled:
- ConLobby.script.new ("BattleTech Console V5.0.7Df", newest revision anywhere)
promoted to Content\ShellScripts\ConLobby.script; .new removed; stale loose
deploy copy removed. Verified in-game (console title shows V5.0.7Df).
- Corrected CLAUDE.md: the release never "renamed" the console to
ComputerPlayer.script -- the resource packer stores script contents under
alphabetically skewed entry names (runtime resolves the same pairing).
Packer quirks documented (stale entry carry-forward on incremental builds,
name/content skew in directory sweeps).
Mechlab bug fix (first FireStorm bug hunt):
- New-Mech dialog showed blank rows for Wolfhound/Zeus and crashed (KERNELBASE
read AV) when creating a Zeus. Root cause: newmech in chassis.script created
its Type droplist without setting $$m_listBoxSize$$, so capacity defaulted to
60 while 65 chassis were written in -- OOB script-array writes. Fixed by
sizing the list from $$m_chassisCount$$. Latent stock-MW4 bug armed when the
FireStorm roster passed 60 chassis. Verified: Zeus variant creates cleanly.
props.mw4 fully repacked (decals + promoted console + mechlab fix, junk
.new/.org entries gone); game deploy refreshed at MW4\. Gitignore: FS507D drop
and player-created MW4\Resource\Variants.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
// 08/05/03 MSL Changed Team Player limit from 4 to 7
|
||||
// 10/10/03 MSL Added Cameraship to RESET_AFTER_LAUNCH
|
||||
// 10/17/05 MSL Added all remaining Mechs (55)
|
||||
// 06/19/18 AVB Update tab stops
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -80,7 +81,7 @@
|
||||
|
||||
#define MAX_SKIN_COUNT 16
|
||||
// MSL 5.05
|
||||
#define MAX_DECAL_COUNT 17
|
||||
#define MAX_DECAL_COUNT 20 //jpp decal total num in dropdown
|
||||
#define DO_VIRTUAL_TEST 0
|
||||
|
||||
#define USE_ALLOWED_MECHS 1
|
||||
@@ -154,7 +155,19 @@
|
||||
#define ERROR_STRING_Y 535
|
||||
#define ERROR_STRING_Y2 (535 + 41) // see o_launch_button
|
||||
|
||||
#define MAX_SLOT_ITEMS 5 // bot-type, edit-field, mech-type, team/camo, decal
|
||||
#define ROWFIELD_TYPE_BOTTYPE 0
|
||||
#define ROWFIELD_TYPE_EDITBOX 1
|
||||
#define ROWFIELD_TYPE_MECH 2
|
||||
#if USE_O_MECH_VARIANT2
|
||||
#define ROWFIELD_TYPE_MECHVARIANT 3
|
||||
#define ROWFIELD_TYPE_TEAMCAMO 4
|
||||
#define ROWFIELD_TYPE_TEAMDECAL 5
|
||||
#define MAX_SLOT_ITEMS 6
|
||||
#else
|
||||
#define ROWFIELD_TYPE_TEAMCAMO 3
|
||||
#define ROWFIELD_TYPE_TEAMDECAL 4
|
||||
#define MAX_SLOT_ITEMS 5
|
||||
#endif // USE_O_MECH_VARIANT2
|
||||
|
||||
#define MAIL_ROSTER_LIST_MAXDISPLAY 19999
|
||||
#define MAIL_ROSTER_LIST_CHANGED 20000
|
||||
@@ -163,6 +176,10 @@
|
||||
#define MAIL_REMOVE_ALL_BOTS 20003
|
||||
#define MAIL_CHANGE_LAUNCH_STATE 20004
|
||||
#define MAIL_GET_SLOTTYPE 20005 // cur-row, return: 0: none, +1: user, +2: bot, 3: currently used
|
||||
#define MAIL_SLOTTYPE_NONE 0
|
||||
#define MAIL_SLOTTYPE_USER 1
|
||||
#define MAIL_SLOTTYPE_BOT 2
|
||||
#define MAIL_SLOTTYPE_USED 3
|
||||
#define MAIL_PROCESS_TABEVENT 20006 // slot_item-index, dir(-1,+1)
|
||||
#define MAIL_POSSIBLE_TABEVENT 20007 // row, slottype, item_index
|
||||
#define MAIL_SET_ROOKIE_MISSION -1111 // sync with conlobby.script
|
||||
@@ -229,7 +246,7 @@ main
|
||||
o_frame.type = 0
|
||||
o_frame.location = 0, 0, 100
|
||||
// MSL Version
|
||||
o_frame.screen_name = "BattleTech Console V5.07" // localize$(IDS_MP_LOBBY_GAME_LOBBY)
|
||||
o_frame.screen_name = "BattleTech Console V5.0.7Df" // localize$(IDS_MP_LOBBY_GAME_LOBBY)
|
||||
initialize(o_frame)
|
||||
|
||||
int team_camo[16] // team_camo[selected team number] is skin number(0..36)...
|
||||
@@ -250,27 +267,27 @@ main
|
||||
team_camo[14] = 36 //
|
||||
team_camo[15] = 37 //
|
||||
|
||||
int team_decal[17] // team_decal[selected team number] is decal number(0..63)...
|
||||
team_decal[0] = 3 // Steiner
|
||||
team_decal[1] = 4 // Kurita
|
||||
team_decal[2] = 2 // Davion
|
||||
team_decal[3] = 5 // Liao
|
||||
team_decal[4] = 6 // Marik
|
||||
team_decal[5] = 9 // Comstar
|
||||
team_decal[6] = 50 // VGL
|
||||
team_decal[7] = 10 // Star League
|
||||
team_decal[8] = 11 // Wolf
|
||||
team_decal[9] = 12 // Falcon
|
||||
team_decal[10] = 16 // Ghost Bear
|
||||
team_decal[11] = 20 // Hell Horses
|
||||
team_decal[12] = 21 // Coyote
|
||||
team_decal[13] = 22 // Blood Spirit
|
||||
team_decal[14] = 24 // Ice Hellion
|
||||
team_decal[15] = 27 // Goliath Scorpian
|
||||
team_decal[16] = 48 // 331st
|
||||
int TEAM_DECAL[17] // team_decal[selected team number] is decal number(0..63)...
|
||||
TEAM_DECAL[0] = 3 // Steiner
|
||||
TEAM_DECAL[1] = 4 // Kurita
|
||||
TEAM_DECAL[2] = 2 // Davion
|
||||
TEAM_DECAL[3] = 5 // Liao
|
||||
TEAM_DECAL[4] = 6 // Marik
|
||||
TEAM_DECAL[5] = 9 // Comstar
|
||||
TEAM_DECAL[6] = 50 // VGL
|
||||
TEAM_DECAL[7] = 10 // Star League
|
||||
TEAM_DECAL[8] = 11 // Wolf
|
||||
TEAM_DECAL[9] = 12 // Falcon
|
||||
TEAM_DECAL[10] = 16 // Ghost Bear
|
||||
TEAM_DECAL[11] = 20 // Hell Horses
|
||||
TEAM_DECAL[12] = 21 // Coyote
|
||||
TEAM_DECAL[13] = 22 // Blood Spirit
|
||||
TEAM_DECAL[14] = 24 // Ice Hellion
|
||||
TEAM_DECAL[15] = 27 // Goliath Scorpian
|
||||
TEAM_DECAL[16] = 48 // 331st
|
||||
|
||||
int ffa_decal[36] // ffa_decal[selected skin number] is decal number(0..63)...
|
||||
// currently, these values is useless... just for later usage
|
||||
// currently, these values is useless... just for later usage //JPP add new decal here for in game use
|
||||
ffa_decal[0] = 3
|
||||
ffa_decal[1] = 4
|
||||
ffa_decal[2] = 2
|
||||
@@ -289,7 +306,9 @@ main
|
||||
ffa_decal[15] = 27 // Goliath Scorpion
|
||||
ffa_decal[16] = 48 // 331st
|
||||
ffa_decal[17] = 49 // ddc
|
||||
ffa_decal[18] = 0 // below will not used, because "o_skins[x].list_size = 16"
|
||||
ffa_decal[18] = 47 // FSA
|
||||
ffa_decal[19] = 46 // BKG
|
||||
ffa_decal[20] = 0 // below will not used, because "o_skins[x].list_size = 16"
|
||||
//ffa_decal[18-36] = ...
|
||||
|
||||
int drop_count_mech[ROSTER_DISPLAY_COUNT]
|
||||
@@ -327,7 +346,7 @@ main
|
||||
int team_param = TEAM_PARAMETER
|
||||
int team_max_plyrs = TEAM_MAX_PLAYERS
|
||||
int teamskin = TEAM_SKIN
|
||||
int teamdecal = TEAM_DECAL
|
||||
int teamdecal = TEAM_DECAL[6]
|
||||
|
||||
int k
|
||||
int x
|
||||
@@ -349,7 +368,7 @@ main
|
||||
int update_skin = false
|
||||
// MSL 5.05
|
||||
int decal_id ///////VERY IMPORTANT FOR NEW DECAL INTERFACE
|
||||
int decal_ids[18]
|
||||
int decal_ids[20] //JPP was 18
|
||||
int update_decal = false
|
||||
int ROSTER_top_of_list = 0
|
||||
int block_launch_or_ready = FALSE
|
||||
@@ -516,73 +535,73 @@ main
|
||||
|
||||
if (USE_ALLOWED_MECHS)
|
||||
{
|
||||
// MSL ADD MECH
|
||||
// MSL ADD MECH
|
||||
|
||||
allowed_mechs[ 0 ] = 0 // Annihilator
|
||||
allowed_mechs[ 1 ] = 1 // Archer
|
||||
allowed_mechs[ 2 ] = 2 // Arctic Wolf
|
||||
allowed_mechs[ 3 ] = 3 // Ares
|
||||
allowed_mechs[ 4 ] = 4 // Argus
|
||||
allowed_mechs[ 5 ] = 5 // Assassin2
|
||||
allowed_mechs[ 6 ] = 6 // Atlas
|
||||
allowed_mechs[ 7 ] = 7 // Avatar
|
||||
allowed_mechs[ 8 ] = 8 // Awesome
|
||||
allowed_mechs[ 9 ] = 9 // Battlemaster
|
||||
allowed_mechs[ 10 ] = 10 // Battlemasteriic
|
||||
allowed_mechs[ 11 ] = 11 // Behemoth
|
||||
allowed_mechs[ 12 ] = 12 // Behemoth II
|
||||
allowed_mechs[ 13 ] = 13 // Black Hawk
|
||||
allowed_mechs[ 14 ] = 14 // Black Knight
|
||||
allowed_mechs[ 15 ] = 15 // Black Lanner
|
||||
allowed_mechs[ 16 ] = 16 // Brigand
|
||||
allowed_mechs[ 17 ] = 17 // Bushwacker
|
||||
allowed_mechs[ 18 ] = 18 // Catapult
|
||||
allowed_mechs[ 19 ] = 19 // cauldron-born
|
||||
allowed_mechs[ 20 ] = 20 // Chimera
|
||||
allowed_mechs[ 21 ] = 21 // Commando
|
||||
allowed_mechs[ 22 ] = 22 // Cougar
|
||||
allowed_mechs[ 23 ] = 23 // Cyclops
|
||||
allowed_mechs[ 24 ] = 24 // Daishi
|
||||
allowed_mechs[ 25 ] = 25 // Deimos
|
||||
allowed_mechs[ 26 ] = 26 // Dragon
|
||||
allowed_mechs[ 27 ] = 27 // Fafnir
|
||||
allowed_mechs[ 28 ] = 28 // Flea
|
||||
allowed_mechs[ 29 ] = 29 // Gladiator
|
||||
allowed_mechs[ 30 ] = 30 // Grizzly
|
||||
allowed_mechs[ 31 ] = 31 // Hauptmann
|
||||
allowed_mechs[ 32 ] = 32 // Hellhound
|
||||
allowed_mechs[ 33 ] = 33 // Hellspawn
|
||||
allowed_mechs[ 34 ] = 34 // Highlander
|
||||
allowed_mechs[ 35 ] = 35 // Hollander II
|
||||
allowed_mechs[ 36 ] = 36 // Hunchback
|
||||
allowed_mechs[ 37 ] = 37 // Kodiak
|
||||
allowed_mechs[ 38 ] = 38 // Loki
|
||||
allowed_mechs[ 39 ] = 39 // Longbow
|
||||
allowed_mechs[ 40 ] = 40 // Madcat
|
||||
allowed_mechs[ 41 ] = 41 // Madcat Mk. II
|
||||
allowed_mechs[ 42 ] = 42 // Masakari
|
||||
allowed_mechs[ 43 ] = 43 // Mauler
|
||||
allowed_mechs[ 44 ] = 44 // Novacat
|
||||
allowed_mechs[ 45 ] = 45 // Osiris
|
||||
allowed_mechs[ 46 ] = 46 // Owens
|
||||
allowed_mechs[ 47 ] = 47 // Puma
|
||||
allowed_mechs[ 48 ] = 48 // Raven
|
||||
allowed_mechs[ 49 ] = 49 // Rifleman
|
||||
allowed_mechs[ 50 ] = 50 // Ryoken
|
||||
allowed_mechs[ 51 ] = 51 // Shadowcat
|
||||
allowed_mechs[ 52 ] = 52 // Solitaire
|
||||
allowed_mechs[ 53 ] = 53 // Sunder
|
||||
allowed_mechs[ 54 ] = 54 // Templar
|
||||
allowed_mechs[ 55 ] = 55 // Thanatos
|
||||
allowed_mechs[ 56 ] = 56 // Thor
|
||||
allowed_mechs[ 57 ] = 57 // Uller
|
||||
allowed_mechs[ 58 ] = 58 // Urbanmech
|
||||
allowed_mechs[ 59 ] = 59 // Uziel
|
||||
allowed_mechs[ 60 ] = 60 // Victor
|
||||
allowed_mechs[ 61 ] = 61 // Vulture
|
||||
allowed_mechs[ 62 ] = 62 // Warhammer
|
||||
allowed_mechs[ 63 ] = 63 // Wolfhound
|
||||
allowed_mechs[ 64 ] = 64 // Zeus
|
||||
allowed_mechs[ 0 ] = 0 // Annihilator
|
||||
allowed_mechs[ 1 ] = 1 // Archer
|
||||
allowed_mechs[ 2 ] = 2 // Arctic Wolf
|
||||
allowed_mechs[ 3 ] = 3 // Ares
|
||||
allowed_mechs[ 4 ] = 4 // Argus
|
||||
allowed_mechs[ 5 ] = 5 // Assassin2
|
||||
allowed_mechs[ 6 ] = 6 // Atlas
|
||||
allowed_mechs[ 7 ] = 7 // Avatar
|
||||
allowed_mechs[ 8 ] = 8 // Awesome
|
||||
allowed_mechs[ 9 ] = 9 // Battlemaster
|
||||
allowed_mechs[ 10 ] = 10 // Battlemasteriic
|
||||
allowed_mechs[ 11 ] = 11 // Behemoth
|
||||
allowed_mechs[ 12 ] = 12 // Behemoth II
|
||||
allowed_mechs[ 13 ] = 13 // Black Hawk
|
||||
allowed_mechs[ 14 ] = 14 // Black Knight
|
||||
allowed_mechs[ 15 ] = 15 // Black Lanner
|
||||
allowed_mechs[ 16 ] = 16 // Brigand
|
||||
allowed_mechs[ 17 ] = 17 // Bushwacker
|
||||
allowed_mechs[ 18 ] = 18 // Catapult
|
||||
allowed_mechs[ 19 ] = 19 // cauldron-born
|
||||
allowed_mechs[ 20 ] = 20 // Chimera
|
||||
allowed_mechs[ 21 ] = 21 // Commando
|
||||
allowed_mechs[ 22 ] = 22 // Cougar
|
||||
allowed_mechs[ 23 ] = 23 // Cyclops
|
||||
allowed_mechs[ 24 ] = 24 // Daishi
|
||||
allowed_mechs[ 25 ] = 25 // Deimos
|
||||
allowed_mechs[ 26 ] = 26 // Dragon
|
||||
allowed_mechs[ 27 ] = 27 // Fafnir
|
||||
allowed_mechs[ 28 ] = 28 // Flea
|
||||
allowed_mechs[ 29 ] = 29 // Gladiator
|
||||
allowed_mechs[ 30 ] = 30 // Grizzly
|
||||
allowed_mechs[ 31 ] = 31 // Hauptmann
|
||||
allowed_mechs[ 32 ] = 32 // Hellhound
|
||||
allowed_mechs[ 33 ] = 33 // Hellspawn
|
||||
allowed_mechs[ 34 ] = 34 // Highlander
|
||||
allowed_mechs[ 35 ] = 35 // Hollander II
|
||||
allowed_mechs[ 36 ] = 36 // Hunchback
|
||||
allowed_mechs[ 37 ] = 37 // Kodiak
|
||||
allowed_mechs[ 38 ] = 38 // Loki
|
||||
allowed_mechs[ 39 ] = 39 // Longbow
|
||||
allowed_mechs[ 40 ] = 40 // Madcat
|
||||
allowed_mechs[ 41 ] = 41 // Madcat Mk. II
|
||||
allowed_mechs[ 42 ] = 42 // Masakari
|
||||
allowed_mechs[ 43 ] = 43 // Mauler
|
||||
allowed_mechs[ 44 ] = 44 // Novacat
|
||||
allowed_mechs[ 45 ] = 45 // Osiris
|
||||
allowed_mechs[ 46 ] = 46 // Owens
|
||||
allowed_mechs[ 47 ] = 47 // Puma
|
||||
allowed_mechs[ 48 ] = 48 // Raven
|
||||
allowed_mechs[ 49 ] = 49 // Rifleman
|
||||
allowed_mechs[ 50 ] = 50 // Ryoken
|
||||
allowed_mechs[ 51 ] = 51 // Shadowcat
|
||||
allowed_mechs[ 52 ] = 52 // Solitaire
|
||||
allowed_mechs[ 53 ] = 53 // Sunder
|
||||
allowed_mechs[ 54 ] = 54 // Templar
|
||||
allowed_mechs[ 55 ] = 55 // Thanatos
|
||||
allowed_mechs[ 56 ] = 56 // Thor
|
||||
allowed_mechs[ 57 ] = 57 // Uller
|
||||
allowed_mechs[ 58 ] = 58 // Urbanmech
|
||||
allowed_mechs[ 59 ] = 59 // Uziel
|
||||
allowed_mechs[ 60 ] = 60 // Victor
|
||||
allowed_mechs[ 61 ] = 61 // Vulture
|
||||
allowed_mechs[ 62 ] = 62 // Warhammer
|
||||
allowed_mechs[ 63 ] = 63 // Wolfhound
|
||||
allowed_mechs[ 64 ] = 64 // Zeus
|
||||
|
||||
}
|
||||
|
||||
@@ -655,6 +674,7 @@ allowed_mechs[ 64 ] = 64 // Zeus
|
||||
|
||||
player_num = -1
|
||||
|
||||
// ComboBox for the Player Type
|
||||
object o_BotList[17]
|
||||
object o_BotList_bu[17]
|
||||
int m_naLastSelected[17]
|
||||
@@ -831,14 +851,15 @@ allowed_mechs[ 64 ] = 64 // Zeus
|
||||
stock_size = 0
|
||||
if (USE_ALLOWED_MECHS)
|
||||
{
|
||||
o_mech_variant[x].list_size = MAX_ALLOWED_MECHS
|
||||
for k = 0; k < MAX_ALLOWED_MECHS; k++
|
||||
{
|
||||
o_mech_variant[x].list_item[stock_size] = mech[stock_array[allowed_mechs[k]]]
|
||||
stock_size++
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
else
|
||||
{
|
||||
for k = 0; k < $$m_mechCount$$; k++
|
||||
{
|
||||
if (stock_id[k] == 1)
|
||||
@@ -1126,6 +1147,8 @@ allowed_mechs[ 64 ] = 64 // Zeus
|
||||
initialize (o_cam_status)
|
||||
|
||||
MAX_ITEMS = 1 + (MAXTESLA - MAXTESLA_P) // 1(blank) + (MAXTESLA - MAXTESLA_P)
|
||||
|
||||
// Live Cam Drop Box
|
||||
object o_cam_list = s_droplistbox
|
||||
MAX_ITEMS = 60
|
||||
o_cam_list.location = BOT_LIST_X, CAM_STATUS_Y,10
|
||||
@@ -1160,11 +1183,13 @@ allowed_mechs[ 64 ] = 64 // Zeus
|
||||
|
||||
object o_cam_print_text = s_print_text
|
||||
|
||||
o_cam_print_text.location = PRINT_TEXT_X, CAM_STATUS_Y + 3,5
|
||||
// Let's move this so it's clearly not in the same line as the o_cam_list
|
||||
o_cam_print_text.location = (PRINT_TEXT_X + PLAYER_EDIT_WIDTH + ROSTER_GAP2), (CAM_STATUS_Y + ROSTER_GAP2),5
|
||||
|
||||
o_cam_print_text.id = -1
|
||||
o_cam_print_text.text_font = FPATH localize$(IDS_F_ML_LABEL)
|
||||
o_cam_print_text.text_color = packcolor(255,255,255,255)
|
||||
o_cam_print_text.text = "DEFAULT" // Give it some default value to start up with.
|
||||
activate(o_cam_print_text)
|
||||
|
||||
object o_reprint = s_multistatepane
|
||||
@@ -1277,74 +1302,83 @@ allowed_mechs[ 64 ] = 64 // Zeus
|
||||
|
||||
GUI_MAILBOX
|
||||
{
|
||||
// GetSlotType
|
||||
if (sender == this) && (getmessage() == MAIL_GET_SLOTTYPE)
|
||||
{
|
||||
int cur_row = getmessage(1)
|
||||
if (cur_row < MAXTESLA_P)
|
||||
{
|
||||
//mLauncherConnection = callback($$CTCL_Get$$, _CTCL_GetTeslaInfo, k, mConnection2, mApplType, mApplState, mGameState, mGameTime, mGameIsServer)
|
||||
//if (mGameState != _EGS_Idle) // ((mLauncherConnection == 1) && (mConnection2 == 1) && (mApplType == _EAT_MW4))
|
||||
// return 3
|
||||
if (o_BotList[cur_row].nselected == 1)
|
||||
return 1
|
||||
{
|
||||
return MAIL_SLOTTYPE_USER
|
||||
}
|
||||
}
|
||||
if (o_BotList[cur_row].nselected == 0)
|
||||
return 0
|
||||
{
|
||||
return MAIL_SLOTTYPE_NONE
|
||||
}
|
||||
else
|
||||
return 2
|
||||
{
|
||||
return MAIL_SLOTTYPE_BOT
|
||||
}
|
||||
}
|
||||
// IsPossibleTabEvent(cur_row, slottype, cur_item)
|
||||
if (sender == this) && (getmessage() == MAIL_POSSIBLE_TABEVENT)
|
||||
{
|
||||
int cur_row = getmessage(1)
|
||||
int slottype = getmessage(2)
|
||||
int cur_item = getmessage(3)
|
||||
if (cur_item == 0)
|
||||
int cur_row = getmessage(1)
|
||||
int slottype = getmessage(2)
|
||||
int cur_item = getmessage(3)
|
||||
if (cur_item == ROWFIELD_TYPE_BOTTYPE)
|
||||
{
|
||||
return 1
|
||||
}
|
||||
if (cur_item == 1)
|
||||
{
|
||||
if (slottype == 1)
|
||||
return 1
|
||||
return 0
|
||||
return 1
|
||||
}
|
||||
if (cur_item == 2)
|
||||
if (cur_item == ROWFIELD_TYPE_EDITBOX)
|
||||
{
|
||||
if (slottype == 1) || (slottype == 2)
|
||||
if (slottype == MAIL_SLOTTYPE_USER)
|
||||
{
|
||||
return 1
|
||||
}
|
||||
return 0
|
||||
}
|
||||
if (cur_item == ROWFIELD_TYPE_MECH)
|
||||
{
|
||||
if (slottype == MAIL_SLOTTYPE_USER) || (slottype == MAIL_SLOTTYPE_BOT)
|
||||
{
|
||||
return 1
|
||||
return 0
|
||||
}
|
||||
return 0
|
||||
}
|
||||
if (cur_item == 3)
|
||||
#if USE_O_MECH_VARIANT2
|
||||
if (cur_item == ROWFIELD_TYPE_MECHVARIANT)
|
||||
{
|
||||
if (slottype == 2)
|
||||
{
|
||||
if (cur_team_val)
|
||||
return 1
|
||||
if (slottype == MAIL_SLOTTYPE_USER) || (slottype == MAIL_SLOTTYPE_BOT)
|
||||
{
|
||||
return 1
|
||||
}
|
||||
return 0
|
||||
}
|
||||
if (slottype == 1)
|
||||
{
|
||||
return 1
|
||||
}
|
||||
}
|
||||
if (cur_item == 4)
|
||||
}
|
||||
#endif // USE_O_MECH_VARIANT2
|
||||
if (cur_item == ROWFIELD_TYPE_TEAMCAMO) || (cur_item == ROWFIELD_TYPE_TEAMDECAL)
|
||||
{
|
||||
if (slottype == 2)
|
||||
{
|
||||
if (cur_team_val)
|
||||
return 1
|
||||
return 0
|
||||
if (slottype == MAIL_SLOTTYPE_USER)
|
||||
{
|
||||
return 1
|
||||
}
|
||||
if (slottype == MAIL_SLOTTYPE_BOT)
|
||||
{
|
||||
if (cur_team_val)
|
||||
{
|
||||
return 1
|
||||
}
|
||||
return 0
|
||||
}
|
||||
}
|
||||
if (slottype == 1)
|
||||
{
|
||||
return 1
|
||||
}
|
||||
}
|
||||
return 0
|
||||
}
|
||||
if (sender == this) && (getmessage() == MAIL_PROCESS_TABEVENT)
|
||||
{
|
||||
int cur_index = getmessage(1) // row * MAX_SLOT_ITEMS + slot-item-index(bot-type, edit-field, mech-type, team/camo)
|
||||
}
|
||||
// ProcessTabEvent
|
||||
if (sender == this) && (getmessage() == MAIL_PROCESS_TABEVENT)
|
||||
{
|
||||
int cur_index = getmessage(1) // row * MAX_SLOT_ITEMS + slot-item-index(bot-type, edit-field, mech-type, ?mech-variant,? team/camo, decal)
|
||||
int tab_dir = getmessage(2) // -1 or +1
|
||||
int old_row = -1
|
||||
int cur_row
|
||||
@@ -1354,46 +1388,60 @@ allowed_mechs[ 64 ] = 64 // Zeus
|
||||
|
||||
while(!done)
|
||||
{
|
||||
cur_index = cur_index + tab_dir
|
||||
if !done && (cur_index < 0)
|
||||
{
|
||||
done = 1
|
||||
focus(o_cam_list) // focus(@ConLobbyMission@o_game_options[13]) // MAX_OPTIONS-1
|
||||
}
|
||||
if !done && (nRosterCount * MAX_SLOT_ITEMS <= cur_index)
|
||||
{
|
||||
done = 1
|
||||
focus(@ConLobbyMission@o_game_options[0])
|
||||
}
|
||||
if (!done)
|
||||
{
|
||||
cur_row = cur_index / MAX_SLOT_ITEMS
|
||||
cur_item = cur_index % MAX_SLOT_ITEMS
|
||||
if (old_row != cur_row)
|
||||
{
|
||||
old_row = cur_row
|
||||
slottype = mail(MAIL_GET_SLOTTYPE, cur_row, this)
|
||||
}
|
||||
if mail(MAIL_POSSIBLE_TABEVENT, cur_row, slottype, cur_item, this)
|
||||
cur_index = cur_index + tab_dir
|
||||
if !done && (cur_index < 0)
|
||||
{
|
||||
done = 1
|
||||
if (cur_item == 0)
|
||||
focus(o_BotList[cur_row])
|
||||
if (cur_item == 1)
|
||||
focus(o_Editbox[cur_row])
|
||||
if (cur_item == 2)
|
||||
focus(o_mech_variant[cur_row])
|
||||
if (cur_item == 3)
|
||||
{
|
||||
if (cur_team_val)
|
||||
focus(o_team[cur_row])
|
||||
else
|
||||
focus(o_skins[cur_row])
|
||||
}
|
||||
if (cur_item == 4)
|
||||
focus(o_decal[cur_row])
|
||||
focus(o_cam_list) // focus(@ConLobbyMission@o_game_options[13]) // MAX_OPTIONS-1
|
||||
}
|
||||
if !done && (nRosterCount * MAX_SLOT_ITEMS <= cur_index)
|
||||
{
|
||||
done = 1
|
||||
focus(@ConLobbyMission@o_game_options[0])
|
||||
}
|
||||
if (!done)
|
||||
{
|
||||
cur_row = cur_index / MAX_SLOT_ITEMS
|
||||
cur_item = cur_index % MAX_SLOT_ITEMS
|
||||
if (old_row != cur_row)
|
||||
{
|
||||
old_row = cur_row
|
||||
slottype = mail(MAIL_GET_SLOTTYPE, cur_row, this)
|
||||
}
|
||||
if mail(MAIL_POSSIBLE_TABEVENT, cur_row, slottype, cur_item, this)
|
||||
{
|
||||
done = 1
|
||||
if (cur_item == 0)
|
||||
{
|
||||
focus(o_BotList[cur_row])
|
||||
}
|
||||
if (cur_item == 1) // Bot Select
|
||||
{
|
||||
focus(o_Editbox[cur_row])
|
||||
}
|
||||
if (cur_item == 2) // Edit Box
|
||||
{
|
||||
focus(o_mech_variant[cur_row])
|
||||
}
|
||||
#if USE_O_MECH_VARIANT2
|
||||
if (cur_item == 3) // Mech Box
|
||||
{
|
||||
focus(o_mech_variant2[cur_row])
|
||||
}
|
||||
#endif // USE_O_MECH_VARIANT2
|
||||
if (cur_item == 4)
|
||||
{
|
||||
if (cur_team_val)
|
||||
focus(o_team[cur_row])
|
||||
else
|
||||
focus(o_skins[cur_row])
|
||||
}
|
||||
if (cur_item == ROWFIELD_TYPE_TEAMDECAL)
|
||||
{
|
||||
focus(o_decal[cur_row])
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -1415,78 +1463,83 @@ allowed_mechs[ 64 ] = 64 // Zeus
|
||||
nTabDir = +1
|
||||
if (sender == o_cam_list)
|
||||
{
|
||||
if (nTabDir == -1)
|
||||
focus(@ConLobbyMission@o_game_options[14]) // MAX_OPTIONS-1
|
||||
else
|
||||
mail(MAIL_PROCESS_TABEVENT, -1, +1, this)
|
||||
return
|
||||
}
|
||||
if (nTabDir == -1)
|
||||
focus(@ConLobbyMission@o_game_options[14]) // MAX_OPTIONS-1
|
||||
else
|
||||
mail(MAIL_PROCESS_TABEVENT, -1, +1, this)
|
||||
return
|
||||
}
|
||||
|
||||
int cur_index = 0
|
||||
int nItemFound = 0
|
||||
for (k = 0; k < nRosterCount; k++)
|
||||
{
|
||||
if (sender == o_BotList[k])
|
||||
{
|
||||
nItemFound++
|
||||
cur_index = cur_index + 0
|
||||
}
|
||||
if (sender == o_Editbox[k])
|
||||
{
|
||||
nItemFound++
|
||||
cur_index = cur_index + 1
|
||||
}
|
||||
int cur_index = 0
|
||||
int nItemFound = 0
|
||||
for (k = 0; k < nRosterCount; k++)
|
||||
{
|
||||
if (sender == o_BotList[k])
|
||||
{
|
||||
nItemFound++
|
||||
cur_index = cur_index + ROWFIELD_TYPE_BOTTYPE
|
||||
}
|
||||
if (sender == o_Editbox[k])
|
||||
{
|
||||
nItemFound++
|
||||
cur_index = cur_index + ROWFIELD_TYPE_EDITBOX
|
||||
}
|
||||
if (sender == o_mech_variant[k])
|
||||
{
|
||||
nItemFound++
|
||||
cur_index = cur_index + 2
|
||||
nItemFound++
|
||||
cur_index = cur_index + ROWFIELD_TYPE_MECH
|
||||
}
|
||||
if (sender == o_mech_variant2[k])
|
||||
{
|
||||
nItemFound++
|
||||
cur_index = cur_index + ROWFIELD_TYPE_MECHVARIANT
|
||||
}
|
||||
if (sender == o_skins[k]) || (sender == o_team[k])
|
||||
{
|
||||
nItemFound++
|
||||
cur_index = cur_index + 3
|
||||
}
|
||||
nItemFound++
|
||||
cur_index = cur_index + ROWFIELD_TYPE_TEAMCAMO
|
||||
}
|
||||
if (sender == o_decal[k])
|
||||
{
|
||||
nItemFound++
|
||||
cur_index = cur_index + 4
|
||||
}
|
||||
if (nItemFound)
|
||||
{
|
||||
//play press,1
|
||||
nItemFound++
|
||||
cur_index = cur_index + ROWFIELD_TYPE_TEAMDECAL
|
||||
}
|
||||
if (nItemFound)
|
||||
{
|
||||
//play press,1
|
||||
mail(MAIL_PROCESS_TABEVENT, cur_index, nTabDir, this)
|
||||
break
|
||||
}
|
||||
cur_index = cur_index + MAX_SLOT_ITEMS
|
||||
}
|
||||
return
|
||||
}
|
||||
if (sender == o_roster_list_scroll_controls)
|
||||
{
|
||||
if (getmessage() == MAIL_ROSTER_LIST_MAXDISPLAY)
|
||||
mail(MAIL_ROSTER_LIST_MAXDISPLAY, getmessage(1), this)
|
||||
if (getmessage() == MAIL_ROSTER_LIST_CHANGED)
|
||||
mail(MAIL_ROSTER_LIST_CHANGED, getmessage(1), this)
|
||||
return
|
||||
}
|
||||
return
|
||||
} // End TAB_EVENT
|
||||
if (sender == o_roster_list_scroll_controls)
|
||||
{
|
||||
if (getmessage() == MAIL_ROSTER_LIST_MAXDISPLAY)
|
||||
mail(MAIL_ROSTER_LIST_MAXDISPLAY, getmessage(1), this)
|
||||
if (getmessage() == MAIL_ROSTER_LIST_CHANGED)
|
||||
mail(MAIL_ROSTER_LIST_CHANGED, getmessage(1), this)
|
||||
return
|
||||
}
|
||||
// MSL 5.02 Recall Button
|
||||
if (sender == o_recall)
|
||||
{
|
||||
if (sender == o_recall)
|
||||
{
|
||||
play press,1
|
||||
mail(MAIL_PREVIOUS_MISSION, @ConLobbyMission@) // // set rookie, see conlobbymission.script
|
||||
mail(MAIL_PREVIOUS_MISSION, @ConLobbyMission@) // // set rookie, see conlobbymission.script
|
||||
for (k = 0; k < nRosterCount; k++)
|
||||
{
|
||||
o_BotList[k].nselected = o_BotList_bu[k].nselected
|
||||
if (o_BotList[k].nselected > 0)
|
||||
{
|
||||
o_BotList[k].nselected = o_BotList_bu[k].nselected
|
||||
if (o_BotList[k].nselected > 0)
|
||||
{
|
||||
activate(o_BotList[k])
|
||||
}
|
||||
o_Editbox[k].boxValue = o_Editbox[k].backup
|
||||
if (o_BotList[k].nselected == 1)
|
||||
{
|
||||
initialize(o_Editbox[k])
|
||||
activate(o_Editbox[k])
|
||||
}
|
||||
activate(o_BotList[k])
|
||||
}
|
||||
o_Editbox[k].boxValue = o_Editbox[k].backup
|
||||
if (o_BotList[k].nselected == 1)
|
||||
{
|
||||
initialize(o_Editbox[k])
|
||||
activate(o_Editbox[k])
|
||||
}
|
||||
|
||||
mail(MAIL_PLAYER_TYPE_CHANGED, k, this)
|
||||
m_naLastSelected[k] = o_BotList[k].nselected
|
||||
@@ -1866,18 +1919,18 @@ allowed_mechs[ 64 ] = 64 // Zeus
|
||||
}
|
||||
else
|
||||
{ // hidden
|
||||
deactivate(o_status[k])
|
||||
deactivate(o_status[k])
|
||||
deactivate(o_BotList[k])
|
||||
deactivate(o_Editbox[k])
|
||||
deactivate(o_print_text[k])
|
||||
deactivate(o_mech_variant[k])
|
||||
deactivate(o_mech_variant[k])
|
||||
#if USE_O_MECH_VARIANT2
|
||||
deactivate(o_mech_variant2[k])
|
||||
#endif // USE_O_MECH_VARIANT2
|
||||
deactivate(o_mech_rand[k])
|
||||
deactivate(o_skins[k])
|
||||
deactivate(o_decal[k])
|
||||
deactivate(o_team[k])
|
||||
deactivate(o_skins[k])
|
||||
deactivate(o_decal[k])
|
||||
deactivate(o_team[k])
|
||||
deactivate(o_skin_box[k])
|
||||
deactivate(o_decal_box[k])
|
||||
}
|
||||
@@ -2097,7 +2150,7 @@ allowed_mechs[ 64 ] = 64 // Zeus
|
||||
else
|
||||
nMissionReview = 0
|
||||
|
||||
callback($$CTCL_DoMission$$, 0, team_camo[0], team_decal[0], ffa_decal[0], nPrintOut, nMissionReview) // prepare to add player...
|
||||
callback($$CTCL_DoMission$$, 0, team_camo[0], TEAM_DECAL[0], ffa_decal[0], nPrintOut, nMissionReview) // prepare to add player...
|
||||
for (k = 0; k < nRosterCount; k++)
|
||||
{
|
||||
if (0 < o_BotList[k].nselected)
|
||||
@@ -2351,6 +2404,7 @@ allowed_mechs[ 64 ] = 64 // Zeus
|
||||
}
|
||||
else
|
||||
{
|
||||
// Writing out the time to each pod status
|
||||
timeString = conv$(mGameTime / 60)
|
||||
timeTemp = conv$(mGameTime % 60)
|
||||
if length$(timeTemp) == 1
|
||||
@@ -2552,7 +2606,7 @@ allowed_mechs[ 64 ] = 64 // Zeus
|
||||
{
|
||||
if (mLauncherConnection == -1)
|
||||
{
|
||||
//o_cam_print_text.text = "Connecting..."
|
||||
o_cam_print_text.text = "Connecting..."
|
||||
processing = o_cam_print_text.text
|
||||
if equal$(processing, ".")
|
||||
processing = ".."
|
||||
@@ -2579,7 +2633,7 @@ allowed_mechs[ 64 ] = 64 // Zeus
|
||||
}
|
||||
else
|
||||
{
|
||||
o_cam_print_text.text = "" // !ready"
|
||||
o_cam_print_text.text = "!" // !ready"
|
||||
}
|
||||
}
|
||||
if ((mLauncherConnection == 1) && (mConnection2 == 1) && (mApplType == _EAT_MW4) && (mGameState == _EGS_Idle))
|
||||
@@ -2882,7 +2936,7 @@ skin_box
|
||||
letters[35] = "Z"
|
||||
letters[36] = "_" // MSL Bot color
|
||||
|
||||
string decals[18]
|
||||
string decals[21] //JPP Add Decal here
|
||||
decals[0] = "03"
|
||||
decals[1] = "04"
|
||||
decals[2] = "02"
|
||||
@@ -2900,7 +2954,10 @@ skin_box
|
||||
decals[14] = "24"
|
||||
decals[15] = "27"
|
||||
decals[16] = "48"
|
||||
decals[17] = "00" // MSL Bot color
|
||||
decals[17] = "49"
|
||||
decals[18] = "47"
|
||||
decals[19] = "46"
|
||||
decals[20] = "00" // MSL Bot color
|
||||
|
||||
framerate = 10
|
||||
}
|
||||
@@ -2987,7 +3044,7 @@ decal_box
|
||||
letters[35] = "Z"
|
||||
letters[36] = "_" // MSL Bot color
|
||||
|
||||
string decals[18]
|
||||
string decals[21] //JPP Decal add here
|
||||
decals[0] = "03"
|
||||
decals[1] = "04"
|
||||
decals[2] = "02"
|
||||
@@ -3005,7 +3062,10 @@ decal_box
|
||||
decals[14] = "24"
|
||||
decals[15] = "27"
|
||||
decals[16] = "48"
|
||||
decals[17] = "00" // MSL Bot color
|
||||
decals[17] = "49"
|
||||
decals[18] = "47"
|
||||
decals[19] = "46"
|
||||
decals[20] = "00" // MSL Bot color
|
||||
|
||||
framerate = 10
|
||||
}
|
||||
@@ -3023,7 +3083,7 @@ decal_box
|
||||
}
|
||||
else
|
||||
{
|
||||
dstate = 17 // MSL Bot color
|
||||
dstate = 20 // MSL Bot color jpp decal change for bot
|
||||
}
|
||||
}
|
||||
if (dstate != nLastdState)
|
||||
@@ -4042,4 +4102,4 @@ s_error_string
|
||||
print3d text
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,5 @@
|
||||
// Mechwarrior: Vengeance
|
||||
// Copyright © 1999-2000
|
||||
// Copyright � 1999-2000
|
||||
// Mechbay_main.script
|
||||
// Paolo Malabuyo
|
||||
// July 12, 2000
|
||||
@@ -2171,6 +2171,11 @@ newmech
|
||||
int boxy2 = 425
|
||||
int boxz = 65
|
||||
|
||||
// [mechlab data fix] s_droplistbox takes its capacity from $$m_listBoxSize$$ (then resets it
|
||||
// to 60). Nothing set it here, so this list held 60 items while list_size = m_chassisCount
|
||||
// (65 mechs) -> the last chassis rows showed blank and selecting the final one crashed
|
||||
// (garbage string pointer into CreateNewMech). Size it to the actual chassis count.
|
||||
$$m_listBoxSize$$ = $$m_chassisCount$$
|
||||
object o_chassisdroplistbox = s_droplistbox
|
||||
o_chassisdroplistbox.boxFont3d = FPATH localize$(IDS_F_ML_LABEL)
|
||||
o_chassisdroplistbox.backColor = packcolor (0, 0, 0, 255)
|
||||
|
||||
Reference in New Issue
Block a user