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:
@@ -9,3 +9,9 @@
|
||||
|
||||
# run-firestorm skill screenshots (may capture the operator's desktop -- never mirror)
|
||||
.claude/skills/run-firestorm/shots/
|
||||
|
||||
# FS507D_20161015: later FireStorm release drop, kept local for analysis -- not part of the mirror
|
||||
FS507D_20161015/
|
||||
|
||||
# player-created mechlab variants in the game deploy (local test/play data, per-machine)
|
||||
MW4/Resource/Variants/
|
||||
|
||||
@@ -285,6 +285,22 @@ Key facts:
|
||||
source assets under `Content\`. Output: `resource\*.mw4` + `*.dep` (incremental via `.dep`
|
||||
timestamps + content version). Needs the full ~4.6 GB `Content\` source tree.
|
||||
|
||||
### ⚠️ Resource packer quirks (discovered 2026-07-02, ConLobby promotion)
|
||||
1. **Incremental rebuilds carry forward stale entries.** A package rebuild re-packs only
|
||||
entries the `.dep` flags as changed and copies the rest — including entries whose SOURCE
|
||||
FILES WERE DELETED (they are never dropped) — from the previous `.mw4`. Per-entry FILETIME
|
||||
in the directory = when that entry was last (re)packed, not the source mtime. **To pick up
|
||||
deletions/renames, force a full repack: delete `resource\<pkg>.mw4` + `<pkg>.dep`, then run
|
||||
`build-env\build-resources.ps1`.** Also: `Copy-Item` preserves the source mtime, so a
|
||||
promoted/copied file can look OLDER than the package and be skipped — touch it (or full-repack).
|
||||
2. **Script entry names are alphabetically skewed vs their contents** (in `directory=` sweeps,
|
||||
e.g. props' `content\shellscripts`): e.g. entry `ConLobby.script` holds CreatePilotModal-like
|
||||
text, entry `ConLobbyMission.script` holds `GUNStatus.script` (byte-identical), and our 140 KB
|
||||
console (source `ConLobby.script`) lands under entry `ComputerPlayer.script` — IDENTICAL skew
|
||||
in the 2016 release props.mw4, which shipped and worked. The runtime evidently resolves names
|
||||
through the same pairing, so packages are self-consistent in-game; only extraction tools see
|
||||
"swapped" names. Don't "fix" packed name mismatches by editing sources — verify in-game.
|
||||
|
||||
## ✅ STEP 6: Editor (`MW4GameEd2`) builds — DONE (with a 1-line source fix)
|
||||
- Target `MW4GameEd2 - Win32 Release` -> **`rel.bin\MW4Ed2.exe`** (3,973,120 bytes, 0 errors).
|
||||
MFC app (`Use_MFC 6`); needs `mfc42.dll` (present in deployment) at runtime. Profile config
|
||||
@@ -518,6 +534,91 @@ etc.), default loadout in `.subsystems`; 2D HUD/MFD bmps load loose from `hsh\`;
|
||||
needs MW4.exe rebuild + resource repack + redeploy. `Finished HUDS from J&J\` = pending MFD/
|
||||
radar art for ~13 chassis.
|
||||
|
||||
## 📋 Reference: FS507D_20161015 release drop analyzed (2026-07-01)
|
||||
`FS507D_20161015\` (repo root, **gitignored** — not part of the mirror) = a later shipped
|
||||
LAN-center release of this game (postinstall.bat maps per-machine 10.0.0.x IPs; Mumble refs).
|
||||
**2026-07-02: release contents DELETED (user holds the zip archive); only
|
||||
`FS507D_20161015\art-review\` remains** — 800 side-by-side pairs (`*.RELEASE.*` vs `*.OURS.*`,
|
||||
flattened paths, `manifest.tsv`) of art whose CONTENT differs from our sources, awaiting the
|
||||
user's review: `DIMS-DIFFER\` 451 (structurally different, e.g. 3state button strips grew
|
||||
110×105→110×180, btfconsole.tga 800×600 vs 112×112), `PIXELS-DIFFER\` 280 (same format,
|
||||
repainted), `HSH\` 69 (loose hsh bmps beyond pure depth-reduction; 91 8bpp-reductions of our
|
||||
24bpp sources excluded). ALL packaged art diffs are shell-UI art (`shellscripts\graphics\**`,
|
||||
`mechbay\graphics\**`, lobby skins/decals/mechicons) — zero world/mech texture diffs; the
|
||||
release = a 5.07D UI-art refresh + the ComputerPlayer console script. (Extraction note:
|
||||
6,469 map/mission-package texture entries are 4-byte cross-package reference stubs, not art.)
|
||||
Findings vs our tree:
|
||||
- **Binaries are a 2016 rebuild of (essentially) our source.** Release `MW4.exe` linked
|
||||
2016-10-04, Launcher/MissionLang/ScriptStrings/ctcls 2014, but `mw4pro.exe` is the ORIGINAL
|
||||
2009-06-14 build, byte-size-identical to our rebuild. `__TIMESTAMP__` banner in MW4.exe:
|
||||
ours `Sun Jun 14 01:45:57 2009` vs release `02:45:57` = same MWApplication.cpp within a DST
|
||||
hour. Full strings-diff of the exes: all meaningful strings present on BOTH sides (incl.
|
||||
`BiggieSizeIt`/`RuleBook`, which our `VehicleInterface.cpp` has). **No evidence of missing
|
||||
source.**
|
||||
- **✅ Degraded-mode placeholder patch made LAB-only (2026-07-02).** Our rebuilt game exe used
|
||||
to contain the `01AACA1.tga` placeholder (Adept links into the game); release was clean.
|
||||
`ResourceImagePool.cpp` now: `#ifdef LAB_ONLY` placeholder (editor keeps degraded mode),
|
||||
`#else` original `STOP(("Texture %s could not be found!"))`. Release+Profile rebuilt (0 err),
|
||||
verified placeholder gone from `rel.bin\MW4.exe` / present in `MW4pro.exe`; both deployed
|
||||
to `C:\VWE\firestorm\MW4`.
|
||||
- **✅ `hsh\` mech art synced from release (2026-07-02).** Release hsh was NEWER than our dev
|
||||
tree and matches OUR SOURCE'S names (`huddamage.cpp` wants `hud\assassin2/behemoth/
|
||||
behemothii`...). Copied the 13 missing files into `Gameleap\mw4\hsh` + deploy (hud/radar
|
||||
assassin2+behemoth+behemothii, Mechs behemoth/black hawk/longbow/solitare/victor, decals
|
||||
46/47); `Mechs\black hawk.bmp`+`solitare.bmp` upgraded to our 24bpp twins (blackhawk/
|
||||
solitaire renames). Did NOT overwrite the ~158 existing bmps that "differ": release ships
|
||||
8bpp palette reductions of our 24bpp sources (deploy-mw4.ps1 reduces at deploy anyway).
|
||||
- **resource .mw4 detail (via `.dep`/package name-set parsing, 2026-07-02):** entry SETS are
|
||||
identical for core/textures/all 26 maps/all 29 missions (maps byte-identical ±2B; mission
|
||||
payload drift of ±0.1-33KB = ABL/notation re-serialization, not content). All 29 `.nfo`
|
||||
byte-identical. **Only real packing deltas, both in props.mw4:** (1) release packs
|
||||
`shellscripts\graphics\multiplayer\lobbydecals\decal_46.tga`+`decal_47.tga` — ✅ RECOVERED
|
||||
2026-07-02: decoded the #VBD container (dir records = [len][name][FILETIME][origSize]
|
||||
[storedSize][offset]; payload base = dword@0x0C) + ported `gos_LZDecompress` (FileIO.cpp:1693
|
||||
— LZW, 9→12-bit LSB-first codes, 256=clear/257=EOF/dict@258) and extracted both TGAs into
|
||||
`Content\ShellScripts\graphics\multiplayer\lobbydecals\` (32×32 32bpp, verified: exact RLE/
|
||||
size/footer + rendered; 46=radiation emblem, 47="331" crest). Next resource repack picks
|
||||
them up and closes the props.mw4 gap;
|
||||
(2) OUR props.mw4 sweeps in junk `ConLobby.script.new`/`.script.org` backup files from
|
||||
`Content\ShellScripts\` (harmless but shippable-junk; note `.script.new` carries MSL ADD
|
||||
MECH markers — review before deleting/moving). Release ships user missions s1s1-s1s3
|
||||
(.nfo+.tga only, no .mw4 — campaign coop redirects per missionnames.tbl).
|
||||
- **✅ FULL extraction of every release .mw4/.dep done (2026-07-02)** →
|
||||
`FS507D_20161015\extracted\<pkg>\...` (~1.3 GB, 60+ packages, 0 decode failures; extractor =
|
||||
the ported gos_LZDecompress + #VBD directory parser; raw-vs-LZ rule per Database.cpp:451:
|
||||
stored==orig → raw).
|
||||
- **✅ Completeness audit (2026-07-02): NOTHING else in the release is absent from our tree.**
|
||||
Mapped all ~42k extracted package entries (23,649 unique base source paths after stripping
|
||||
`{GameModel}`/`{hint}`/`[page]` qualifiers) against the dev tree by path + whole-tree
|
||||
filename index: the only release-assets we lacked were the 13 hsh bmps + 2 lobby decal
|
||||
TGAs (recovered) and the JPP console-script revision (superseded by our ConLobby.script.new).
|
||||
Residuals: mission root-page pseudo-entries (not files) + 34 `{CampaignInterfacePlug}`
|
||||
records = compiled campaign-screen metadata whose `.Campaign` sources we have. (Caveat:
|
||||
audit is by existence, not content equality — release re-saved some shared files, e.g.
|
||||
decal_00.tga pixels differ.)
|
||||
- **The FireStorm console script in the release sits under the package entry name
|
||||
`shellscripts\ComputerPlayer.script`** (138,990 B, title "BattleTech Console V5.07.D") — the
|
||||
release's `ConLobby.script` ENTRY holds a 6,551 B copy of an old CreatePilotModal.
|
||||
**2026-07-02 CORRECTION: nobody renamed anything — this is the packer's name↔content skew**
|
||||
(see "Resource packer quirks" below): the console SOURCE file in the 5.07D tree was
|
||||
ConLobby.script all along, same as ours; the packer stores script contents under alphabetically
|
||||
shifted entry names, and the runtime reproduces the same pairing, so it works in-game and only
|
||||
looks swapped to extraction tools. **Console script genealogy (oldest→newest):**
|
||||
dev `ConLobby.script` ("V5.07", 138,544 B) → release console ("V5.07.D",
|
||||
+29 lines: JPP's decal-dropdown feature adding decals 46=BKG/47=FSA, MAX_DECAL_COUNT 17→20)
|
||||
→ dev `ConLobby.script.new` ("V5.0.7Df", 140,532 B, changelog "06/19/18 AVB": includes the
|
||||
JPP decal work PLUS ROWFIELD_TYPE_*/MAIL_SLOTTYPE_* slot framework + tab stops). **Our
|
||||
`.new` is the newest console revision anywhere** — the release only added what .new already
|
||||
contains. ✅ **RECONCILED 2026-07-02:** `.new` promoted to `Content\ShellScripts\ConLobby.script`
|
||||
(140,532 B), `.new` file removed, stale loose deploy copy `MW4\Content\shellscripts\ConLobby.script`
|
||||
removed (release also ships no loose copy), props.mw4 fully repacked + redeployed. Verified
|
||||
in-game: console title shows "BattleTech Console V5.0.7Df".
|
||||
- **Release-only config:** `options-game.ini` enables `hardwaremixing=true`, `BiggieSizeIt=1`,
|
||||
`RuleBook=1` (our inis don't); ctcl inis use 10.0.0.x (ours 200.0.0.x) + `c:\games\MW4` paths.
|
||||
- **Release drops all Movies** (~310 MB) and the loose `content\shellscripts\conlobby.script`
|
||||
(both deploys load shell scripts from props.mw4; ours ships that one loose 140 KB script —
|
||||
check whether a loose script shadows the packed one).
|
||||
|
||||
## 📋 Reference: adding a new map/mission (documented 2026-07-01)
|
||||
Full workflow in **`ADDING-A-MAP.md`** (repo root). Key facts: unlike mechs, NO code changes /
|
||||
positional arrays / exe rebuild — maps+missions are discovered by enumeration. Map (terrain) =
|
||||
|
||||
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -382,7 +382,13 @@ void
|
||||
Verify(!extension[3]);
|
||||
if (!gos_DoesFileExist(file_name))
|
||||
#endif
|
||||
file_name = "content\\textures\\01AACA1.tga"; /* [editor degraded-mode] substitute placeholder for missing texture instead of fatal STOP, so downstream gets a valid handle (was: STOP("Texture %s could not be found!")) */
|
||||
{
|
||||
#ifdef LAB_ONLY
|
||||
file_name = "content\\textures\\01AACA1.tga"; /* [editor degraded-mode] LAB builds (editor/Profile) substitute a placeholder for missing WIP textures instead of fatal STOP, so downstream gets a valid handle */
|
||||
#else
|
||||
STOP(("Texture %s could not be found!", (const char *)file_name)); /* Release: fail loud, ship no placeholder */
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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)
|
||||
|
||||
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
LFS
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user