diff --git a/players/README.txt b/players/README.txt new file mode 100644 index 0000000..3301c62 --- /dev/null +++ b/players/README.txt @@ -0,0 +1,38 @@ +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. + +TO JOIN AN INTERNET GAME: double-click join.bat + (waits for the operator's session if it's not up yet) +TO JOIN A LAN GAME: double-click join_lan.bat (operator's LAN) +SINGLE-PLAYER PRACTICE: double-click play_solo.bat (no network) +STEAM INTERNET PLAY: double-click play_steam.bat (EXPERIMENTAL -- + needs the Steam client running; host or join from the menu) + +Your seat and mech are assigned automatically by the operator. +If the game closes unexpectedly, send the operator content\join.log. + +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 V any time to toggle the external camera. + +CONTROLS (keyboard): + W/S or Up/Down ....... throttle lever X / NumPad5 ... all stop + A/D or Left/Right .... turn pedals Alt ........... reverse thrust + Q/E .................. torso twist R/F ........... torso aim + NumPad 8/2/4/6 ....... torso aim/twist (alt) Shift ......... throttle up + 1 or Space ........... main trigger 2 ............. middle thumb + 3 or Ctrl ............ upper thumb (missiles) 4 ............ pinky + V view | B look-behind | M control mode | N schematic | J/K/L MFD pages + 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. + +An Xbox controller works out of the box. Rebind keys in +content\bindings.txt (regenerates with defaults if deleted). + +This build: {VERSION}. Private -- do not redistribute. diff --git a/redist/d3dx9_43.dll b/redist/d3dx9_43.dll new file mode 100644 index 0000000..96cfbe2 Binary files /dev/null and b/redist/d3dx9_43.dll differ diff --git a/redist/msvcp140.dll b/redist/msvcp140.dll new file mode 100644 index 0000000..fbaa279 Binary files /dev/null and b/redist/msvcp140.dll differ diff --git a/redist/vcruntime140.dll b/redist/vcruntime140.dll new file mode 100644 index 0000000..5050e20 Binary files /dev/null and b/redist/vcruntime140.dll differ diff --git a/tools/mkdist.py b/tools/mkdist.py index 08083e0..1293d1c 100644 --- a/tools/mkdist.py +++ b/tools/mkdist.py @@ -66,8 +66,20 @@ def main(): if f.lower().endswith(".dll"): exes.append(d + "/" + f) + # System runtime DLLs the exe needs on a bare tester machine (32-bit + # d3dx9 + MSVC runtimes -- carried in redist/, shipped next to the exe; + # the first zips included them and machines without the redists fail + # to load the exe otherwise). + redist = ["redist/" + f for f in sorted(os.listdir("redist")) + if f.lower().endswith(".dll")] if os.path.isdir("redist") else [] + total = 0 with zipfile.ZipFile(zpath, "w", zipfile.ZIP_DEFLATED, compresslevel=6) as z: + # versioned tester README at the zip root + if os.path.exists("players/README.txt"): + readme = open("players/README.txt", encoding="utf-8").read() + readme = readme.replace("{VERSION}", name.replace("BT411_", "")) + z.writestr(name + "/README.txt", readme) for p in bats: # bats at the zip ROOT (next to arc = os.path.basename(p) # content\ + build\, per the guard) z.write(p, name + "/" + arc) @@ -75,6 +87,9 @@ def main(): for p in exes: z.write(p, name + "/" + p) total += os.path.getsize(p) + for p in redist: # next to the exe + z.write(p, name + "/build/Release/" + os.path.basename(p)) + total += os.path.getsize(p) for p in tracked: if not os.path.exists(p): print(" (skipping tracked-but-absent: %s)" % p)