A midnight boundary splits one evening across two files at exactly the moment the session is most worth reading whole: the 01:30 crash lands in a different file from the 23:00 run that set it up. And a 02:00 session is "last night" to everyone who was in it, so filing it under the new calendar date reads wrong even when nothing goes bad. So shift the clock back 6h before taking the date for the FILENAME. The log day runs 06:00 -> 06:00 and one night stays in one file. Only the filename moves. The session header and the lastrun breadcrumb each call GetLocalTime separately (three distinct SYSTEMTIMEs in this function), so every timestamp a human reads is still true local time -- checked the scoping rather than assuming it, since sharing one variable would have silently backdated the header by six hours. FileTimeToSystemTime carries the month and year boundaries, verified against a scratch harness rather than reasoned about: 2026-07-28 20:00 -> solo_20260728.log one playtest night, 2026-07-28 23:59 -> solo_20260728.log start to finish, 2026-07-29 00:01 -> solo_20260728.log in a single file 2026-07-29 05:59 -> solo_20260728.log 2026-07-29 06:00 -> solo_20260729.log the boundary 2026-08-01 01:00 -> solo_20260731.log month 2027-01-01 03:00 -> solo_20261231.log year 2026-03-01 02:00 -> solo_20260228.log non-leap February Nothing in the tooling parses these filenames -- the operator app's own log is operator_relay.log and _collect_egg is mission settings, not logs -- so the console auto-transfer is unaffected. The player-facing text did need fixing though: the bats and README told players to send the log "dated today", which is now wrong for anyone who plays past midnight. They now say to take the NEWEST one and ignore the date, with a note on why. That was already the safer instruction. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
171 lines
9.7 KiB
Plaintext
171 lines
9.7 KiB
Plaintext
BattleTech {VERSION} -- multiplayer client
|
|
==========================================
|
|
|
|
IMPORTANT: FULLY EXTRACT this zip first (right-click - Extract All).
|
|
Do NOT run anything from inside the zip. The .bat files must sit next
|
|
to the 'content' and 'build' folders.
|
|
|
|
UPGRADING from an older version? Extract the new zip OVER your
|
|
existing game folder and say YES TO OVERWRITE. Do NOT delete the
|
|
folder first -- your personal files (content\bindings.txt with your
|
|
key/joystick setup, content\volume.cfg with your volume) are not in
|
|
the zip and survive an extract-over-top, but a delete wipes them.
|
|
If you prefer a clean delete anyway, copy those two files out first
|
|
and put them back after.
|
|
|
|
TO JOIN AN INTERNET GAME: double-click join.bat
|
|
-- pick your CALLSIGN and MECH, click JOIN (your choice is sent to
|
|
the operator; waits for the session if it's not up yet)
|
|
TO JOIN A LAN GAME: double-click join_lan.bat (operator's LAN;
|
|
same callsign/mech menu)
|
|
SINGLE-PLAYER: double-click play_solo.bat -- opens the
|
|
mission menu: pick your mech (all 18), map, experience level,
|
|
colours, weather and mission length, then launch
|
|
{STEAM}STEAM INTERNET PLAY: double-click play_steam.bat (EXPERIMENTAL --
|
|
{STEAM} needs the Steam client running; host or join from the menu)
|
|
|
|
Your seat is assigned automatically; you'll pilot the mech you picked
|
|
in the join menu (the operator can override it).
|
|
When a round ends your game AUTOMATICALLY rejoins for the next one
|
|
(same seat, same mech) -- just wait for the operator's next launch.
|
|
Close the window to leave for real.
|
|
If the game closes unexpectedly, send the operator TODAY'S log --
|
|
content\join_YYYYMMDD.log (the NEWEST one) -- plus content\lastrun_join.txt.
|
|
|
|
AFTER A MULTIPLAYER SESSION: the game writes a small match report
|
|
(content\matchlog_<date>_<time>_<number>.txt) and, on join.bat /
|
|
join_lan.bat, UPLOADS IT TO THE OPERATOR BY ITSELF at the end of each
|
|
round -- you do not need to send it. Please send one MANUALLY only if
|
|
the game CRASHED mid-round (the upload happens on a clean round end, so
|
|
a crash loses it) or if you were playing SOLO or over STEAM (no relay
|
|
to upload through).
|
|
IF ANYTHING CRASHED OR MISBEHAVED, send BOTH of these -- neither is ever
|
|
uploaded, they only exist on your machine:
|
|
content\join_YYYYMMDD.log just take the NEWEST one; do not go by the
|
|
date in the name. A log DAY runs 6am to 6am,
|
|
so whatever you played after midnight is still
|
|
filed under the evening you started -- one
|
|
night stays in one file. There is ONE log per
|
|
day holding every session, so a crash is no
|
|
longer erased when you relaunch.
|
|
Each session inside it starts with a line
|
|
"===== BT411 SESSION ... =====" naming your
|
|
build and PC, so it still identifies itself
|
|
if the filename gets changed when you send it.
|
|
content\lastrun_join.txt tiny; send it EVEN IF there is no log dated
|
|
today -- that combination is exactly how we
|
|
tell "the game was blocked before it started"
|
|
(antivirus, or a missing system file) apart
|
|
from a normal crash.
|
|
If you UPGRADED over an older copy you may still have an old content\join.log
|
|
lying around. Nothing writes to it any more -- ignore it, or delete it, so
|
|
you don't send a stale one by mistake.
|
|
|
|
You start INSIDE the cockpit with the pod's MFD panels composited
|
|
around the view (one window). The red MFD buttons, radar rails and
|
|
joystick buttons are all MOUSE-CLICKABLE -- right-click a button to
|
|
latch it held. Press ` (backtick) any time to toggle the external
|
|
camera.
|
|
|
|
CONTROLS (keyboard) -- NEW DEFAULT LAYOUT THIS BUILD:
|
|
The keyboard IS the cockpit button board now: the letter and number
|
|
rows are the MFD button banks laid out where they sit on the panel,
|
|
and FLIGHT LIVES ON THE NUMBER PAD. Full map: CONTROLS.txt.
|
|
|
|
UPGRADING? Your bindings are MIGRATED to the new board on first
|
|
launch: any keys YOU added or changed are kept (they beat the new
|
|
defaults), and your joystick/HOTAS wizard setup is kept exactly --
|
|
but the old stock keys (W/S throttle, A/D turn, V camera, M mode...)
|
|
are replaced by the layout below. Your previous file is saved as
|
|
content\bindings.old.txt if you want to copy a favourite line back.
|
|
|
|
FLIGHT (number pad -- NUMLOCK ON):
|
|
NumPad 8/2 ........... torso aim up/down NumPad 7/9 .... left/right pedal
|
|
NumPad 4/6 ........... torso twist NumPad 5 ...... all stop
|
|
NumPad 0 or Space .... main trigger NumPad 1/3/. .. pinky/middle/upper
|
|
Shift/Ctrl ........... throttle up/down Alt ........... reverse thrust
|
|
Left/Down/Right ...... look left/behind/right Up .......... torso centre
|
|
` (backtick) ......... cockpit / chase camera
|
|
PgUp / PgDn .......... game volume up/down (saved between sessions)
|
|
|
|
THE PANEL ON YOUR KEYS: 1-4/QWER = heat & coolant, 5-8/TYUI =
|
|
engineering, 9-0-minus-equals/OP[] = comm, ASDF/ZXCV = left weapons,
|
|
HJKL/NM,. = right weapons, F1-F12 = the map columns (F1/F2 zoom,
|
|
F4 crouch, F7 CONTROL MODE, F9-F12 Generators A-D). G and B are
|
|
deliberately unbound -- feel for the gap. Every button also stays
|
|
mouse-clickable on screen (right-click latches it held).
|
|
|
|
NOTE: you SPAWN IN BASIC control mode (the pod's rookie setting) --
|
|
in BASIC the stick steers and the pedals do NOTHING. Press F7 once
|
|
for MID (pedals steer, stick twists the torso -- the full
|
|
experience). If 'turning does not work', it is this, not a bug.
|
|
CONTROL MODE (BAS/MID/ADV, the F7 key IN the cockpit) is NOT the
|
|
menu's EXPERIENCE setting (novice/standard/veteran/expert) -- that
|
|
one changes the simulation (heat, damage), not your controls.
|
|
1/2/3/Q/W/E are the six coolant valves and 4 (hold) is the flush.
|
|
CAREFUL with the valves: the detents go 1 - 5 - 50 (max) -
|
|
0 (CLOSED!) - back to 1. One press past max SHUTS THE LOOP OFF and
|
|
everything on it will overheat -- watch the valve dial on the coolant
|
|
screen. Boosting one loop starves the others (the supply is shared).
|
|
A weapon gone quiet with ammo left has probably JAMMED (heat makes
|
|
ballistic weapons jam -- authentic!). Check its panel's ENG DATA page
|
|
for the jam lamp (a cocked round with warning bolts). The pod's fix
|
|
is the EJECT button on that weapon's ENG DATA page: TAP to eject the
|
|
jammed round (weapon reloads and returns to service), HOLD ~3s to
|
|
jettison the whole bay before it cooks off. Watch the TEMP strip and
|
|
pace salvos.
|
|
NEW: on a jam or a bay fire, that system's ENG-page buttons now FLASH
|
|
to catch your eye -- the pod's own annunciator, restored.
|
|
NEW AND DANGEROUS: an AMMO BAY FIRE is now genuinely lethal. You get
|
|
a fire icon by the ammo counter, the flashing buttons, and about TEN
|
|
SECONDS -- then the bay detonates for (rounds x per-round damage),
|
|
which can and will kill you. HOLD the EJECT button on that weapon to
|
|
dump the bay and put the fire out. Previously these fires were
|
|
harmless; they are not any more, so treat one as an emergency.
|
|
G (hold) + fire key .. regroup a weapon onto that trigger -- or hold a
|
|
weapon panel's red PROGRAM button with the mouse and tap a fire key;
|
|
the joystick diagram on the panel shows the binding live.
|
|
|
|
FIXED THIS BUILD -- the automatic re-attach now works. Previously a weapon
|
|
detached by the BUS MODE button stayed dark for the rest of the mission and
|
|
you had to rescue it with a GENERATOR SELECT button. It now recovers by
|
|
itself, as the arcade did.
|
|
|
|
HOW POWER ROUTING WORKS (the ENG page). Each weapon draws from one
|
|
generator, and it has three routing modes:
|
|
GENERATOR SELECT A/B/C/D -- you pick that generator by hand.
|
|
BUS MODE, first press ---- AUTO: the mech hunts for any live generator
|
|
and attaches to it by itself. This is what
|
|
recovers a weapon whose generator died.
|
|
BUS MODE, second press --- detached. The weapon goes dark on purpose --
|
|
blank recharge arc, no ready dot, will not
|
|
fire. Press BUS MODE again for AUTO, or a
|
|
GENERATOR SELECT button to choose one.
|
|
So it is TWO presses of BUS MODE to take a weapon off line, and one more to
|
|
put it back on AUTO. There is no on-screen label for the current mode --
|
|
that is authentic, the pod had none either. You tell by behaviour: on AUTO
|
|
a weapon with a working generator comes back on its own.
|
|
|
|
NOTE these are two different buttons: BUS MODE routes a WEAPON to a
|
|
generator, while the GENERATOR A-D buttons on the radar rail (F9-F12) turn
|
|
the GENERATORS THEMSELVES on and off.
|
|
|
|
An Xbox controller works out of the box. FLIGHT STICKS / HOTAS /
|
|
pedals: run joyconfig.bat ONCE -- a wizard asks you to move each
|
|
control (stick, twist, throttle, fire buttons), writes the bindings,
|
|
and drops you into the solo menu to try them. Rebind keys in
|
|
content\bindings.txt (regenerates with defaults if deleted).
|
|
|
|
FULL CONTROLS REFERENCE: see CONTROLS.txt next to this file -- every one of
|
|
the pod's 72 cockpit buttons, what it does, and which display it sits on.
|
|
|
|
COCKPIT LAYOUT: content\environ.ini (written on first run, every option
|
|
documented in the file itself) sizes the MFDs and the map, moves the map out
|
|
of the middle of the road, or breaks each display into its own window. The
|
|
cockpit now scales to ANY window shape without distorting -- drag it, maximise
|
|
it, or launch with -fit for borderless full screen.
|
|
|
|
This build: {VERSION}. Private -- do not redistribute.
|
|
{EXPIRE}Test builds STOP WORKING 14 days after they are made -- if the game
|
|
{EXPIRE}says it has expired, just grab the operator's newest zip.
|