one night = ONE log file: the 8MB size roll-over retired (it cost field evidence the moment it existed -- night16: Elengil's incident window sat in an unsent pre-rotation part; testers attach 'the log' = the newest part). The 6am log-day boundary stays. Transport moves to players/SENDLOGS.bat (ships at the dist root): one double-click zips every log/matchlog/lastrun from the last 36h to a Desktop BTLOGS_<machine>_<date>.zip (~10:1 text compression -- a 13MB night = 1.8MB, well under Discord's 10MB free cap, which is what the roll-over was protecting against). Handout HOW TO REPORT updated; mkdist carries the bat
This commit is contained in:
@@ -5,8 +5,11 @@
|
||||
build. Section A is the payoff -- please verify.
|
||||
=============================================================================
|
||||
HOW TO REPORT: drop a line in Discord with the issue number and PASS /
|
||||
FAIL / what you saw. Screenshots and rough times help; logs get collected
|
||||
as usual.
|
||||
FAIL / what you saw. Screenshots and rough times help.
|
||||
LOGS -- NEW, ONE CLICK: double-click SENDLOGS.bat in the game folder after
|
||||
the session. It puts ONE small zip on your Desktop with every log from the
|
||||
night (session logs, matchlogs, launch breadcrumbs) -- attach that one file.
|
||||
No more hunting for the right .log, no more missing parts.
|
||||
=============================================================================
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
+12
-23
@@ -731,29 +731,18 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
|
||||
lt = shifted;
|
||||
}
|
||||
}
|
||||
// SIZE ROLL-OVER -- never deletes anything, but keeps each FILE small
|
||||
// enough to actually send. A playtest evening concatenates into one
|
||||
// file (4.3 MB from a single session in scratchpad/night5/), and the
|
||||
// channel this evidence travels through is a chat attachment. Part 0
|
||||
// is <stem>_YYYYMMDD.log; once it passes the cap the NEXT launch opens
|
||||
// <stem>_YYYYMMDD.1.log, and so on. Checked only at open, so one very
|
||||
// long session can still overrun -- that is deliberate: never split a
|
||||
// live session across files.
|
||||
const DWORD part_max = 8UL * 1024UL * 1024UL;
|
||||
for (int part = 0; part < 1000; ++part)
|
||||
{
|
||||
if (part == 0)
|
||||
wsprintfA(resolvedLog, "%s_%04d%02d%02d.log",
|
||||
logStem, (int)lt.wYear, (int)lt.wMonth, (int)lt.wDay);
|
||||
else
|
||||
wsprintfA(resolvedLog, "%s_%04d%02d%02d.%d.log",
|
||||
logStem, (int)lt.wYear, (int)lt.wMonth, (int)lt.wDay, part);
|
||||
WIN32_FILE_ATTRIBUTE_DATA fad;
|
||||
if (!GetFileAttributesExA(resolvedLog, GetFileExInfoStandard, &fad))
|
||||
break; // does not exist yet -- use it
|
||||
if (fad.nFileSizeHigh == 0 && fad.nFileSizeLow < part_max)
|
||||
break; // still room to append
|
||||
}
|
||||
// ONE NIGHT = ONE FILE (the 8 MB size roll-over RETIRED 2026-08-13).
|
||||
// The roll existed because the evidence channel is a Discord
|
||||
// attachment (free-tier cap: 10 MB today; 8 MB when this shipped) --
|
||||
// but multi-part files cost us field evidence the moment they
|
||||
// existed: testers attach "the log" (the newest part) and part 0
|
||||
// stays home (night16: Elengil's 20:17 ET incident window was in the
|
||||
// unsent pre-rotation part). Transport is now SENDLOGS.bat (ships
|
||||
// in the dist root): zips every log/matchlog/lastrun to one ~10:1
|
||||
// compressed attachment, so raw file size no longer matters and the
|
||||
// whole night reads as one uninterrupted file.
|
||||
wsprintfA(resolvedLog, "%s_%04d%02d%02d.log",
|
||||
logStem, (int)lt.wYear, (int)lt.wMonth, (int)lt.wDay);
|
||||
logSelfNamed = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
@echo off
|
||||
rem ==========================================================================
|
||||
rem BT411 -- package tonight's logs into ONE Discord-attachable zip.
|
||||
rem Double-click me after a playtest. The zip lands on your DESKTOP as
|
||||
rem BTLOGS_<machine>_<date>.zip -- attach that one file in Discord.
|
||||
rem Collects: every session log, matchlog, and launch breadcrumb. Nothing
|
||||
rem is deleted or modified; this only makes a copy.
|
||||
rem ==========================================================================
|
||||
cd /d "%~dp0"
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
|
||||
"$d = Get-Date -Format yyyyMMdd_HHmm;" ^
|
||||
"$out = Join-Path ([Environment]::GetFolderPath('Desktop')) (\"BTLOGS_{0}_{1}.zip\" -f $env:COMPUTERNAME, $d);" ^
|
||||
"$files = Get-ChildItem -Path 'content\*.log','content\lastrun_*.txt','content\matchlog_*.txt','content\cdb_*.txt' -ErrorAction SilentlyContinue | Where-Object { $_.LastWriteTime -gt (Get-Date).AddHours(-36) };" ^
|
||||
"if (-not $files) { Write-Host 'No logs found -- run me from the BT411 folder (next to the content directory).'; exit 1 }" ^
|
||||
"Compress-Archive -Force -Path $files.FullName -DestinationPath $out;" ^
|
||||
"Write-Host ('Wrote ' + $out + ' (' + $files.Count + ' files, ' + [math]::Round((Get-Item $out).Length/1MB,1) + ' MB)');"
|
||||
echo.
|
||||
echo Attach the BTLOGS zip from your Desktop in Discord. Thanks!
|
||||
pause
|
||||
+1
-1
@@ -77,7 +77,7 @@ def main():
|
||||
exes = ["build/Release/btl4.exe"]
|
||||
|
||||
bats = ["players/play_solo.bat", "players/join.bat", "players/join_lan.bat",
|
||||
"players/joyconfig.bat"]
|
||||
"players/joyconfig.bat", "players/SENDLOGS.bat"]
|
||||
if steam_on:
|
||||
bats.append("players/play_steam.bat")
|
||||
for p in exes + bats:
|
||||
|
||||
Reference in New Issue
Block a user