The operator station the archive never preserved: build missions with authoritative dropdowns, run the console/relay, watch pods arrive, launch -- LAN mesh or internet relay -- plus one-click local instances for testing. tools/eggmodel.py (headless, importable, self-tested 14/14): - Order-preserving egg parse/emit: the editor manages [mission]/[pilots]/ per-pilot pages; bitmap rasters, ordinals and role pages survive untouched. - EVERY value set read LIVE from content/BTL4.RES (the resscan parser, importable): maps = MakeMessageStream(14) INTERSECT ExistanceBoxStream(26) (the game aborts unless both exist); colors/badges/patches from the VehicleTable resource (type 25, NUL-line NotationFile text with ;-comments); vehicles = ModelList names, known-good mechs (bhk1, madcat) surfaced first. - validate(): the full required-key ruleset from MISSION.cpp/btl4mssn.cpp (missing map/time/weather/scenario, per-pilot hostType/vehicle/dropzone/ color/patch/badge/experience/role, role page model=, illegal values, duplicate addresses) -- kills the hand-edited-egg crash class, incl. the color=Red-vs-Crimson gotcha that bit the dev eggs. tools/btoperator.py (PySide6, dark Fusion theme): - Mission form + pilot roster table (all dropdowns from eggmodel), relay-tag auto-numbering, add/remove pilots, egg New/Open/Save/Validate. - Mode switch: Relay (internet; runs btconsole --relay) / Mesh (LAN legacy; dial-out console at address-port minus 1 per the +1 rule). - Session panel: QProcess drives btconsole.py; stdout parsed live into per-pilot state lights (waiting/egg/registered/LAUNCHED) + relay stats. - Local launcher: spawns btl4.exe per roster row with BT_RELAY/BT_SELF (or mesh -net port), BT_DEV_GAUGES/BT_START_INSIDE toggles. - Export player scripts: per-pilot join_as_playerN.bat with the public relay hostname (a remote player's whole setup = run one .bat). - Wire/protocol code stays in btconsole.py/eggmodel.py -- the GUI is only UI + process management; CLI + test harnesses share the same tested core. Verified: eggmodel self-test 14/14; scripted end-to-end (scratchpad/operator_e2e.py) drives the real window through its own methods -- start relay session -> launch 2 local instances -> monitor observes the mission LAUNCH (user-confirmed live on screen: both pods in-mission). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
245 lines
7.6 KiB
Plaintext
245 lines
7.6 KiB
Plaintext
[mission]
|
|
adventure=BattleTech
|
|
map=cavern
|
|
scenario=freeforall
|
|
time=night
|
|
weather=clear
|
|
temperature=27
|
|
length=600
|
|
[ordinals]
|
|
bitmap=Ordinal::BitMap::1
|
|
bitmap=Ordinal::BitMap::2
|
|
bitmap=Ordinal::BitMap::3
|
|
bitmap=Ordinal::BitMap::4
|
|
[Ordinal::BitMap::1]
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=000038000003C000001FF00000000F00
|
|
bitmap=0000F8000003C000003FF80000000F00
|
|
bitmap=0001F8000003C00000707C0000000F00
|
|
bitmap=0001F8000003C00000603C0000000F00
|
|
bitmap=00007801FC0FF00000003C3DF807FF00
|
|
bitmap=00007803FE0FF00000003C3FFC0FFF00
|
|
bitmap=00007803C703C00000003C3E3C1F0F00
|
|
bitmap=000078078303C0000000783C1E1E0F00
|
|
bitmap=000078078003C0000000783C1E1E0F00
|
|
bitmap=00007807C003C0000000F03C1E1E0F00
|
|
bitmap=00007807F003C0000001E03C1E1E0F00
|
|
bitmap=00007803FC03C0000003C03C1E1E0F00
|
|
bitmap=00007801FE03C0000007803C1E1E0F00
|
|
bitmap=000078007F03C000000F003C1E1E0F00
|
|
bitmap=000078001F03C000001E003C1E1E0F00
|
|
bitmap=000078000F03C000003C003C1E1E0F00
|
|
bitmap=000078060F03C0000078003C1E1E0F00
|
|
bitmap=000078071E03E0000078003C1E1F1F00
|
|
bitmap=00007803FE01F000007FFC3C1E0FFF00
|
|
bitmap=00007801FC00F000007FFC3C1E07EF00
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
x=128
|
|
y=32
|
|
width=8
|
|
[Ordinal::BitMap::2]
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=001FFF0000003C0000003C03C0780000
|
|
bitmap=001FFF0000003C0000007C03C0780000
|
|
bitmap=00000E0000003C000000FC03C0780000
|
|
bitmap=00003C0000003C000001BC03C0780000
|
|
bitmap=0000700F3E1FFC000003BC0FF07BF000
|
|
bitmap=0001E00F7E3FFC0000073C0FF07FF800
|
|
bitmap=0003800FFE7C3C0000063C03C07C7800
|
|
bitmap=0007F80FFE783C00000C3C03C0783C00
|
|
bitmap=0007FE0F80783C0000183C03C0783C00
|
|
bitmap=00001E0F00783C0000383C03C0783C00
|
|
bitmap=00000F0F00783C0000703C03C0783C00
|
|
bitmap=00000F0F00783C00007FFF03C0783C00
|
|
bitmap=00000F0F00783C00007FFF03C0783C00
|
|
bitmap=00000F0F00783C0000003C03C0783C00
|
|
bitmap=00000F0F00783C0000003C03C0783C00
|
|
bitmap=00000F0F00783C0000003C03C0783C00
|
|
bitmap=00180F0F00783C0000003C03C0783C00
|
|
bitmap=001C1F0F007C7C0000003C03E0783C00
|
|
bitmap=000FFE0F003FFC0000003C01F0783C00
|
|
bitmap=0007FC0F001FBC0000003C00F0783C00
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
x=128
|
|
y=32
|
|
width=8
|
|
[Ordinal::BitMap::3]
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=001FFF03C07800000000FC03C0780000
|
|
bitmap=001FFF03C07800000003FC03C0780000
|
|
bitmap=001E0003C07800000007C003C0780000
|
|
bitmap=001E0003C0780000000F0003C0780000
|
|
bitmap=001E000FF07BF000000F000FF07BF000
|
|
bitmap=001E000FF07FF800001E000FF07FF800
|
|
bitmap=001E0003C07C7800001E0003C07C7800
|
|
bitmap=001FFC03C0783C00001EFC03C0783C00
|
|
bitmap=001FFE03C0783C00001FFE03C0783C00
|
|
bitmap=00001F03C0783C00001F1F03C0783C00
|
|
bitmap=00000F03C0783C00001E0F03C0783C00
|
|
bitmap=00000F03C0783C00001E0F03C0783C00
|
|
bitmap=00000F03C0783C00001E0F03C0783C00
|
|
bitmap=00000F03C0783C00001E0F03C0783C00
|
|
bitmap=00000F03C0783C00001E0F03C0783C00
|
|
bitmap=00000F03C0783C00001E0F03C0783C00
|
|
bitmap=00180F03C0783C00001E0F03C0783C00
|
|
bitmap=001C1F03E0783C00001F1F03E0783C00
|
|
bitmap=000FFE01F0783C00000FFE01F0783C00
|
|
bitmap=0007FC00F0783C000007FC00F0783C00
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
x=128
|
|
y=32
|
|
width=8
|
|
[Ordinal::BitMap::4]
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=001FFF03C07800000007FC03C0780000
|
|
bitmap=001FFF03C0780000000FFE03C0780000
|
|
bitmap=00000F03C0780000001F1F03C0780000
|
|
bitmap=00000F03C0780000001E0F03C0780000
|
|
bitmap=00000F0FF07BF000001E0F0FF07BF000
|
|
bitmap=00001F0FF07FF800001E0F0FF07FF800
|
|
bitmap=00001E03C07C7800001E0F03C07C7800
|
|
bitmap=00003E03C0783C00001E0F03C0783C00
|
|
bitmap=00003C03C0783C00000F1E03C0783C00
|
|
bitmap=00003C03C0783C000007FC03C0783C00
|
|
bitmap=00007803C0783C000007FC03C0783C00
|
|
bitmap=00007803C0783C00000F1E03C0783C00
|
|
bitmap=00007803C0783C00001E0F03C0783C00
|
|
bitmap=0000F003C0783C00001E0F03C0783C00
|
|
bitmap=0000F003C0783C00001E0F03C0783C00
|
|
bitmap=0000F003C0783C00001E0F03C0783C00
|
|
bitmap=0000F003C0783C00001E0F03C0783C00
|
|
bitmap=0000F003E0783C00000F1E03E0783C00
|
|
bitmap=0000F001F0783C00000FFE01F0783C00
|
|
bitmap=0000F000F0783C000007FC00F0783C00
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
x=128
|
|
y=32
|
|
width=8
|
|
[pilots]
|
|
pilot=10.99.0.1:1502
|
|
pilot=10.99.0.2:1502
|
|
[10.99.0.1:1502]
|
|
hostType=0
|
|
advancedDamage=1
|
|
loadzones=1
|
|
name=Aeolus
|
|
bitmapindex=1
|
|
experience=expert
|
|
badge=VGL
|
|
patch=Yellow
|
|
role=Role::Default
|
|
dropzone=one
|
|
vehicle=bhk1
|
|
vehicleValue=1000
|
|
color=White
|
|
[10.99.0.2:1502]
|
|
hostType=0
|
|
advancedDamage=1
|
|
loadzones=1
|
|
name=Aeolus
|
|
bitmapindex=2
|
|
experience=expert
|
|
badge=VGL
|
|
patch=Yellow
|
|
role=Role::Default
|
|
dropzone=one
|
|
vehicle=madcat
|
|
vehicleValue=1000
|
|
color=Crimson
|
|
[largebitmap]
|
|
bitmap=BitMap::Large::Aeolus
|
|
[BitMap::Large::Aeolus]
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=000003FE0000000001E0000000000000
|
|
bitmap=000007FF0000000001E0000000000000
|
|
bitmap=00000F8F8000000001E0000000000000
|
|
bitmap=00000F078000000001E0000000000000
|
|
bitmap=00000F0781FF00FF81E0F0781FC00000
|
|
bitmap=00000F0783FF81FFC1E0F0783FE00000
|
|
bitmap=00000F0787C7C3E3E1E0F0783C700000
|
|
bitmap=00000F078783C3C1E1E0F07878300000
|
|
bitmap=00000F078783C3C1E1E0F07878000000
|
|
bitmap=00000FFF8783C3C1E1E0F0787C000000
|
|
bitmap=00000FFF8783C3C1E1E0F0787F000000
|
|
bitmap=00000F0787FFC3C1E1E0F0783FC00000
|
|
bitmap=00000F0787FFC3C1E1E0F0781FE00000
|
|
bitmap=00000F07878003C1E1E0F07807F00000
|
|
bitmap=00000F07878003C1E1E0F07801F00000
|
|
bitmap=00000F07878003C1E1E0F07800F00000
|
|
bitmap=00000F078780C3C1E1E0F07860F00000
|
|
bitmap=00000F0787C1C3E3E1E078F871E00000
|
|
bitmap=00000F0783FF81FFC1E07FF83FE00000
|
|
bitmap=00000F0781FF00FF81E03F781FC00000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
x=128
|
|
y=32
|
|
width=8
|
|
[smallbitmap]
|
|
bitmap=BitMap::Small::Aeolus
|
|
[BitMap::Small::Aeolus]
|
|
bitmap=00000000000000000000000000000000
|
|
bitmap=0000000000000000003E00000C000000
|
|
bitmap=006300000C00000000631F0F8CC63C00
|
|
bitmap=00633198CCC66200007F3198CCC66000
|
|
bitmap=00633F98CCC6780000633018CCC61E00
|
|
bitmap=00633018CCC6060000633098CCC64600
|
|
bitmap=00631F0F8C7E3C000000000000000000
|
|
bitmap=00000000000000000000000000000000
|
|
x=64
|
|
y=16
|
|
width=4
|
|
[Role::Default]
|
|
model=dfltrole
|
|
[Role::NoReturn]
|
|
model=noretun
|