lane T merge fixups: name the roll-succeeded branch instead of its FUN_ id (clean-room); mark describe_i32 maybe_unused so the shim cross-builds

This commit is contained in:
alex 2026-09-08 08:13:39 -04:00
parent 6835cf4055
commit c883a325ad
3 changed files with 4 additions and 3 deletions

View file

@ -122,7 +122,7 @@ near-zero progress**, and give that player savings and a research slider that de
**≥ 1.5 × cost** in one turn — the guaranteed-completion path, so the outcome does not itself depend **≥ 1.5 × cost** in one turn — the guaranteed-completion path, so the outcome does not itself depend
on a roll. One End Turn then fires the `OnTechResearched` site with the flag set. on a roll. One End Turn then fires the `OnTechResearched` site with the flag set.
That save would also, for the first time, be able to reach `FUN_00889d60` — the branch behind the That save would also, for the first time, be able to reach `ServerPlayer_OnResearchRollSucceeded` — the branch behind the
roll. Note what it costs if it fires: the plague branch draws a **second** RNG word (`NextInt`) and roll. Note what it costs if it fires: the plague branch draws a **second** RNG word (`NextInt`) and
posts `EVENT_PLAGUE_OUTBREAK`; the rebellion branch allocates an `AIRebellion` at `ServerPlayer+0x3b8` posts `EVENT_PLAGUE_OUTBREAK`; the rebellion branch allocates an `AIRebellion` at `ServerPlayer+0x3b8`
and **cancels the current research**. Every coverage note in this repo up to now says "exactly one and **cancels the current research**. Every coverage note in this repo up to now says "exactly one

View file

@ -1,5 +1,5 @@
// GENERATED — do not edit. Facts about Sword of the Stars.exe (GOG 1.8.1). // GENERATED — do not edit. Facts about Sword of the Stars.exe (GOG 1.8.1).
// Source: sots-re ghidra/addresses.json @ afa8620, generated 2026-09-08 by tools/gen_addresses.py // Source: sots-re ghidra/addresses.json @ 834eb09, generated 2026-09-08 by tools/gen_addresses.py
// Runtime address = (uintptr_t)GetModuleHandle(NULL) + RVA (the exe is ASLR-relocated). // Runtime address = (uintptr_t)GetModuleHandle(NULL) + RVA (the exe is ASLR-relocated).
#pragma once #pragma once
#include <cstdint> #include <cstdint>

View file

@ -222,7 +222,8 @@ void capture(void* player, float dt) {
Tv describe_f32(const void* d, std::size_t n, unsigned) { Tv describe_f32(const void* d, std::size_t n, unsigned) {
return n >= 4 ? tv::f32(*static_cast<const float*>(d)) : tv::struct_(); return n >= 4 ? tv::f32(*static_cast<const float*>(d)) : tv::struct_();
} }
Tv describe_i32(const void* d, std::size_t n, unsigned) { [[maybe_unused]] // Kept for the phase-2/3/6 regions that are guarded but not yet in the verdict (docs/T-turn-driver.md).
[[maybe_unused]] Tv describe_i32(const void* d, std::size_t n, unsigned) {
return n >= 4 ? tv::i32(*static_cast<const std::int32_t*>(d)) : tv::struct_(); return n >= 4 ? tv::i32(*static_cast<const std::int32_t*>(d)) : tv::struct_();
} }
Tv describe_per_turn(const void* d, std::size_t n, unsigned) { Tv describe_per_turn(const void* d, std::size_t n, unsigned) {