merge lane L3: trade/spy workload (watchpoint modes unioned: modcount|tshn|snlv|cont)

This commit is contained in:
alex 2026-09-08 19:48:07 -04:00
parent c36b560cf0
commit 16b1e65fa3

View file

@ -20,18 +20,14 @@ int g_players = 2;
char g_outPath[MAX_PATH] = {};
// Which four addresses the single arming point computes. `modcount` is lane W2's set and is the
<<<<<<< HEAD
// default so its run stays reproducible byte for byte; `tshn` is lane W3's.
enum class Mode { ModCount, Tshn, Snlv };
=======
// default so its run stays reproducible byte for byte; `tshn` is lane W3's; `cont` is lane L3's.
// default so its run stays reproducible byte for byte; `tshn` is lane W3's; `snlv` is lane L1's;
// `cont` is lane L3's.
//
// `cont` differs from the other two in one further respect: it re-arms and re-logs on EVERY End
// Turn rather than only the first. The other two modes measure one turn of one save, where arming
// once is right. L3's workload is a game played forward across many turns and the question is
// "did the container grow on turn N", which needs a line per turn.
enum class Mode { ModCount, Tshn, Cont };
>>>>>>> wip/l3
// `cont` differs from the others in one further respect: it re-arms and re-logs on EVERY End Turn
// rather than only the first. The other modes measure one turn of one save, where arming once is
// right. L3's workload is a game played forward across many turns and the question is "did the
// container grow on turn N", which needs a line per turn.
enum class Mode { ModCount, Tshn, Snlv, Cont };
Mode g_mode = Mode::ModCount;
// ---- what is being watched ------------------------------------------------------------------
@ -505,13 +501,9 @@ extern "C" void WatchOnApplyAll(void* self) {
g_watchAddr[2] = 0;
g_watchAddr[3] = 0;
<<<<<<< HEAD
if (g_mode == Mode::Tshn || g_mode == Mode::Snlv) {
=======
if (g_mode == Mode::Cont) {
ArmContSlots(S);
} else if (g_mode == Mode::Tshn) {
>>>>>>> wip/l3
} else if (g_mode == Mode::Tshn || g_mode == Mode::Snlv) {
ArmTshnSlots(S);
} else {
@ -604,13 +596,9 @@ bool watch_apply_config(const char* key, const char* value, std::string* err) {
if (std::strcmp(key, "watch.mode") == 0) {
if (std::strcmp(value, "modcount") == 0) g_mode = Mode::ModCount;
else if (std::strcmp(value, "tshn") == 0) g_mode = Mode::Tshn;
<<<<<<< HEAD
else if (std::strcmp(value, "snlv") == 0) g_mode = Mode::Snlv;
else if (err) *err = "expected modcount|tshn|snlv";
=======
else if (std::strcmp(value, "cont") == 0) g_mode = Mode::Cont;
else if (err) *err = "expected modcount|tshn|cont";
>>>>>>> wip/l3
else if (err) *err = "expected modcount|tshn|snlv|cont";
return true;
}
if (std::strcmp(key, "watch.out") == 0) {