From 7e6bda36998beb4104b3b40574d5feb91a612874 Mon Sep 17 00:00:00 2001 From: lane-l4 Date: Tue, 8 Sep 2026 18:01:45 -0400 Subject: [PATCH] L4: the AI's command block, read out of the running game findings/subsystems/ai-order-capture.md -- two workloads on VM145, every submitted TurnCommands block dumped at the batch applier, plus sixteen pass-attributed entry probes on the task bodies and the emission gates. Headline: our emission model reproduces both real blocks exactly, list for list and element for element, and both turns land on the measured ModCount of 12. What it did not have: a list-23 element on every AI turn (the first element ever observed in the free half of the cost table, and it really is free), client-allocated ids travelling inside the commands (design 18, fleet 34 -- neither in the input save), and build, rates and population all naming the same home system. Two predictions falsified, both usefully: the batch is n = playerCount = 8 with the four monster factions holding untouched slots, not n = 4; and the fleet order names the fleet the client has ALREADY created, not the one in the save. AITRaid's pass-0 question stays open and now says why -- the task never ran on either board, so the list-16 zero is 'never entered', not 'entered and silent'. Rule 19: the ref-turn2 control passed byte-identical to the published oracle with all seventeen detours installed. Separately, the turn-1 workload is NOT reproducible -- three runs, three autosaves, differing in exactly one field: the research target of the AI player that owns nothing. ghidra/addresses.d/lane-l4.json: 9 entries (8 IAITask::Execute bodies + the list-16 order method). Raw logs and the two divergent autosaves in verify/results/shim/aiorders/. --- findings/subsystems/ai-order-capture.md | 385 ++++++++++++++++++ ghidra/addresses.d/lane-l4.json | 77 ++++ .../shim/aiorders/l4-turn1to2-aiorders.txt | 120 ++++++ .../l4-turn1to2-hooksoff-autosave.sav | Bin 0 -> 66746 bytes .../l4-turn1to2-instrumented-autosave.sav | Bin 0 -> 66740 bytes .../shim/aiorders/l4-turn2to3-aiorders.txt | 137 +++++++ 6 files changed, 719 insertions(+) create mode 100644 findings/subsystems/ai-order-capture.md create mode 100644 ghidra/addresses.d/lane-l4.json create mode 100644 verify/results/shim/aiorders/l4-turn1to2-aiorders.txt create mode 100644 verify/results/shim/aiorders/l4-turn1to2-hooksoff-autosave.sav create mode 100644 verify/results/shim/aiorders/l4-turn1to2-instrumented-autosave.sav create mode 100644 verify/results/shim/aiorders/l4-turn2to3-aiorders.txt diff --git a/findings/subsystems/ai-order-capture.md b/findings/subsystems/ai-order-capture.md new file mode 100644 index 0000000..36d527f --- /dev/null +++ b/findings/subsystems/ai-order-capture.md @@ -0,0 +1,385 @@ +# The AI's command block, read out of the running game + +Lane L4, 2026-09-08. Guest **VM145** (`sots-re-win10-145`, 192.168.10.145), build +`l4-45bf085-dirty-20260908T2113Z`. Predictions committed before the module was written: +`sots-engine` `docs/L4-predictions.md` (commit `45bf085`, before `src/shim/hooks/ai_orders.cpp` +existed). + +Closes the live half of `ai-order-emission.md` (AI4), `ai-stepping-and-passes.md` (AI3), +`ai-task-system.md` (AI2) and `ai-turn-logic.md` (AI1). **Everything in those four documents was +static reading. This is the first time anything in `src/game/ai` has run under an instrument.** + +Raw logs: `verify/results/shim/aiorders/l4-turn{1to2,2to3}-aiorders.txt`. + +--- + +## 0. Lead: what the real AI emitted, and what our model emits + +Two workloads, one End Turn each, every submitted block dumped at +`StrategySim::ApplyTurnCommandBatch` 0x0088f9b0 where all of them are complete in memory. + +**Turn 1 → 2** (`turn1-state.sav`). Player 32, the only AI with an empire: + +| list | n | element (wire order) | +|---|---:|---| +| **1** new design | 1 | a `ShipDesignDef` object carrying the name string **`"Honor Lance"`** inline | +| **3** build | 1 | `{ordinal 1, designId 18, systemId 288, 0}` | +| **5** system rates | 1 | `{systemId 288, OutputRates{0, 1.0f, 0, 0, 0, 0, 0}}` | +| **23** population | 1 | `{systemId 288, Population{vptr, vector(24 B), 1}}` | + +plus gates `rate = 0.8` and `target = techId 144`. **All twenty-three other lists empty.** + +**Turn 2 → 3** (`ref-turn2.sav`). Same player: + +| list | n | element (wire order) | +|---|---:|---| +| **3** build | 1 | `{ordinal 2, designId 18, systemId 288, 0}` | +| **5** system rates | 1 | `{systemId 288, OutputRates{0, 1.0f, 0, …}}` | +| **8** fleet move | 1 | `{fleetId 34, route[1]}` | +| **10** | 1 | `{systemId 288, fleetId 34, counted[1]}` | +| **14** fleet task | **2** | `{34, 0, true}` and `{34, 1, true}` | +| **23** population | 1 | `{systemId 288, Population{vptr, vector(24 B), −1}}` | + +plus gate `rate = 0.8`; **no research target** on any player this turn. + +**Against our model.** `sots-engine`'s `src/game/ai/orders.h` reproduces **both blocks exactly** — +list for list, element for element, and both turns land on the measured `ModCount` delta of 12. +That is now a test, `tests/game_ai/test_live_blocks.cpp`, 44 checks, built from the dumped values +and kept deliberately separate from `test_orders.cpp` (which is the record of what static reading +predicted, and must not be fitted to this). + +**The model was right about the arithmetic and incomplete about the content.** Three things it did +not have: + +1. **A list-23 element, on every turn.** No save in eleven has ever carried an element in the free + half of the table (lists 17–27), so that whole row of the cost model was a hypothesis in the + rule-6 sense. It is now exercised twice, and **the counter still lands on 12** — the free half is + free, measured, from the first workload that ever populated it. This is the single most valuable + thing the capture produced, and nobody predicted it. +2. **The ids in the commands are client-allocated.** The build order names **design 18** before the + server has issued it, and the fleet order names **fleet 34**, an object that does not exist in + the input save. Our model treated ids as opaque; a reimplementation has to allocate them where + the original does or every id in the resulting save is wrong. +3. **Build, rates and population all name system 288** — the AI's home. One decision, three + commands. + +--- + +## 1. Predictions, then outcomes + +`docs/L4-predictions.md` §1–§3, in order. Four held, two were falsified, and both falsifiers are +worth more than the predictions were. + +### P1 — the block set. **FALSIFIED, usefully.** + +Predicted `n == 4`, the four submitting players. Measured **`n == 8`**: the batch is sized to +`playerCount`, and the four `Species == 4` monster factions occupy slots 4–7 with +**`playerId == 0`, every gate clear and all twenty-seven lists empty**. + +AI3 §1.2 already read the mechanism — `ResumePlaying` does `clear(&S->+0x174)` then +`resize(&S->+0x174, playerCount)` — and I did not join it to AI4's "the monster factions submit no +block at all". Both are right: the *vector* has eight slots, the *submissions* are four. The +untouched slots are not merely empty, they are **uninitialised**: the rate-gate payload reads as +garbage floats (`8.97e-44`, `2.62e+33` on the two runs) with the gate bit clear. + +Consequence for a reimplementation: iterate `playerCount` slots and let the clear gates do the +filtering; do not build a list of "submitting players". + +The four ids that *are* set are `16, 32, 496, 512` in save-player order, so `block+0x04` is the save +player id, not an index. That half of P1 held. + +### P2 — the turn-1 block. **HELD, plus one list nobody predicted.** + +Predicted lists {1, 3, 5} on player 32 and nothing on 16/496/512. Measured **{1, 3, 5, 23}** on 32 +and nothing on the other three. The sharp falsifier was list 8/10/14 being non-empty on the turn the +AI creates its first fleet — **they were all empty**, so AI4's P2 attribution of the twelve stands. + +Four research-rate gates and **three** research-target gates (`144`, `90`, `288`), the human's +target gate clear. Exactly AI4's P2 and P5. + +### P3 — the element values. **HELD for the build order; the design id is not in the window.** + +`designId == 18` and `systemId == 288` in list 3, and list 5 names the same system: both as +predicted. The list-1 element is a polymorphic object whose first 48 bytes are a vftable pointer, +a word, and a `std::string` holding `"Honor Lance"` (`_Mysize` 11, `_Myres` 15 — short-string +optimisation, so the name is inline). **The id is past the dump window**, so "the design command +carries its own id" is not proved from list 1 directly — but it is proved from list 3, which names +design 18 in the *same block*, before the server has issued anything. + +### P4 — the probes on turn 1. **Held on the control, wrong on one row.** + +| probe | predicted | measured (1→2) | measured (2→3) | +|---|---|---:|---:| +| `RunTaskList` | 6 = 3 AI × 2 passes | **6** (3+3) | **6** (3+3) | +| `BuildTurnCommands` | 4 | 5 | 5 | +| `RequestBuildForTask` | >0, both passes | 10 (5+5) | 8 (4+4) | +| `AssignFleetsAndIssueOrders` | entered, no elements | 0 | 2 (1+1) | +| `IssueRouteForFleets` | entered, no elements | 0 | 2 (1+1) | +| `AITRaid::Execute` | 0 | **0** | **0** | +| `StrategyClient::OrderList16` | 0 | **0** | **0** | +| `AITAdvanceIdleShips::Execute` | entered | 6 (3+3) | 6 (3+3) | +| `IsClaimedByAnotherTask` | >0 | **0** | 10 (9+1) | + +`RunTaskList == 6` is the headline: **three AI agents, each stepped once, two passes each**, which +is AI3's P1 confirmed live at the agent level and AI4's "three AI players, not one" confirmed from a +second instrument. + +`IsClaimedByAnotherTask == 0` on turn 1 falsifies my "called often" — on a board with no fleets it +is never reached at all. Workload-dependent, and my prediction did not say so. + +`BuildTurnCommands == 5` where four blocks are submitted: three are the AI clients (one after each +agent's pass 1), one fires before any AI has run (game setup / load), and one more at the end. The +pass and agent columns on those two are stale globals and cannot attribute them, so I am **not** +claiming which is the human's. + +### P5 — the turn-2 block. **HELD, plus list 23 again.** + +Predicted {3:1, 5:1, 8:1, 10:1, 14:2}; measured exactly that, plus list 23. + +### P6 — list 14 is two elements against one fleet, keyed on mode. **HELD, at the values.** + +`{34, 0, true}` and `{34, 1, true}`: same fleet, modes 0 then 1, and it is the same fleet id list 8's +route names. AI2's P1 — inferred from a call site, then supported by two `ModCount` bumps — is now +read off the element values. The interface's single element (`human-turn2-orders.sav`, +`{1456, 0, true}`) is the same record with mode 0 only. + +### P7 — the fleet id. **FALSIFIED, and this is the important one.** + +Predicted `F == 1744`, the fleet that exists at submit time, with the new fleet 34 assigned by the +server on apply. Measured **`F == 34`**. + +Fleet 34 does not exist in `ref-turn2.sav`. It exists in `turn3-state.sav`, as `"Beta Fleet"`. So +**the client allocates the object and its id before it submits, and ships the id in the command.** +Design 18 is the same story from the other turn: the *other* new design that turn — a monster +faction's, created server-side with no command block — took **1712** from the save's master id +counter (`NMnx` 106 → 109), while the AI's took **18**. + +There are therefore **two id spaces**, and the small one is **client-allocated and part of the wire +protocol**. For Rung B this is a hard constraint: a reimplementation that assigns ids on apply +produces a structurally correct save with every AI-created id wrong. + +I do not know the client counter's rule. `18` and `34` differ by 16, which is the master counter's +stride, so it looks like the same `id = index * 16` scheme running off a different, small base +(index 1 and index 2 plus 2). **Unread**; it is the first thing the next lane should chase, and it +is a watchpoint, not a week of reading. + +### P8 — list 10's first word. **HALF-FALSIFIED, and the name is now supportable.** + +Predicted the first `i32` is the fleet. Measured `{systemId 288, fleetId 34, counted vector of 1}` — +system first, fleet second. Lane Q's record `{i32, i32, counted i32}` is right; the reading is +"at system 288, fleet 34, [one object]". The counted element's value is in the heap vector and the +dump does not follow it (§5.3), so the payload is still not named. AI4 §4.5 declined to name list 10 +on adjacency alone and was right to; it now has values, and "assign these ships to this fleet at +this system" fits all three words, with the tail unread. + +### P9 — AITRaid. **NOT SETTLED, and the probe says exactly why.** + +`StrategyClient::OrderList16` 0x007635f0 was entered **zero** times on both turns. That is a +non-answer about pass 0 — and the companion probe says which non-answer: **`AITRaid::Execute` was +also entered zero times, on both turns.** The task never ran. AI3 §2.4 stays open, and it stays open +for a *stated* reason instead of an assumed one, which is the whole point of rule 20. + +The workload that would settle it needs `AITRaid` in a task list. Neither of the corpus's reachable +turns has one, and the two boards differ only in whether the AI owns a fleet — so owning a fleet is +not the trigger. + +### Pass 0 writes nothing — **confirmed by element count, which is stronger than the entry count.** + +The three pass-1-gated emission exits were entered in **both** passes, in equal numbers: + +* turn 1: `RequestBuildForTask` 5 in pass 0 and 5 in pass 1 → **one** list-1 and **one** list-3 + element in the block; +* turn 2: the same, plus `AssignFleetsAndIssueOrders` and `IssueRouteForFleets` once per pass → + **one** list-8, **one** list-10 and **two** list-14 elements. + +If pass 0 emitted, every count would double. AI3's P2 holds, measured from the output rather than +inferred from the gate. + +The pass sweeps are otherwise symmetric: every probe's pass-0 count equals its pass-1 count, with +one exception — `IsClaimedByAnotherTask` runs **9 times in pass 0 and once in pass 1**. The claim +registry is already populated by the time the second sweep runs, so most candidates are filtered +before the test is reached. That is consistent with AI3's two-tier quota model and is the only +asymmetry in either run. + +--- + +## 2. Which tasks actually fire (AI3 §5, live) + +Eight `Execute` bodies probed, covering the nine classes AI2 called planners plus `AITRaid` and +`AITAdvanceIdleShips`. On both turns: + +| body | 1→2 | 2→3 | which agents | +|---|---:|---:|---| +| `AITAdvanceIdleShips::Execute` | 6 | 6 | all three, both passes | +| `AITBuildDeepScanShips::Execute` | 4 | 4 | **only 496 and 512**, both passes | +| `AITColonize`, `AITEscortGateInvade`, `AITInvade`, `AITNodeBore`, `AITBuildPoliceShips`, `AITRaid` | 0 | 0 | — | + +Two things follow, and the second is uncomfortable. + +**`AITAdvanceIdleShips` is in every agent's list and is entered on both passes**, exactly as its +priority-0, pass-1-body shape predicts. It is a good control and it read non-zero on every run. + +**Player 32's task list contains none of the six named planner bodies.** Its build orders came from +`RequestBuildForTask`, entered 5 times per pass on turn 1 and 4 times per pass on turn 2, under +tasks whose `Execute` bodies were not in my probe set. So the answer to "which of the nine planner +tasks fire on a real turn" is **one of them, `AITBuildDeepScanShips`, and only for the two AI players +that own nothing** — and the one AI that actually plays is driven by tasks nobody has probed yet. +The nine were the wrong nine to probe. AI3's §5 correction of AI2 stands on the call graph; this +lane cannot add to it, and says so. + +The event ring gives the exact per-agent sequence for both turns +(`aievent` lines in the raw logs). Turn 2→3, agent 0x335c1040 (player 32), pass 0, in order: + +``` +RunTaskList → Acquire → IsClaimed → IssueRouteForFleets → AssignFleetsAndIssueOrders + → Acquire → IsClaimed ×2 → RequestBuild (×4 more of this pair) + → AITAdvanceIdleShips +``` + +and pass 1 is the same walk with the claim tests gone. + +--- + +## 3. Rule 19: the control, and what it cost to take it + +`ref-turn2.sav` + one End Turn, with **seventeen MinHook detours installed** (the batch dump plus +sixteen entry probes): + +| file | measured | published oracle | +|---|---|---| +| `(Autosave EndTurn).sav` | 66,732 B `bb4fd9ac89f41e3b` | `bb4fd9ac89f41e3b` ✓ | +| `(Autosave).sav` | 67,219 B `978041acd168b56e` | `978041acd168b56e` ✓ | + +**Byte-identical.** Two things at once: VM145, which is a ZFS clone nobody had checked, reproduces +the reference guest exactly; and this lane's instrument is behaviour-neutral. Lane H's own entry +probes were explicitly `probes=off` in every configuration here, because that set is the one +measured to move an autosave by four bytes. + +### 3.1 And a control that did **not** pass — the turn-1 workload is not reproducible + +`turn1-state.sav` + one End Turn does **not** reproduce `turn2-state.sav`, on this build, with or +without instruments. Three runs, three different files: + +| run | `(Autosave).sav` | +|---|---| +| reference `turn2-state.sav` | 66,739 B `ab4ac2d7e2977260` | +| `hooks=off` | 66,746 B `d59bb9f2fd0eb535` | +| full instrument | 66,740 B `e43ec1d2b443c101` | + +Diffed field by field through the save reader, **exactly one field differs across all three**: + +``` +p512.ResTNm: ref = BIO_GnMod hooks=off = XNC_TrnsHum2 instrumented = XNC_TrnsMorr2 +``` + +`NMnx`, `ModCount`, every id list, every design, every fleet, every other player's target and rate: +identical. And the command block shows it at the source — player 512's research-target gate carried +techId **288** on the instrumented run, a different id on the others. + +So: **the research-target choice of an AI player that owns nothing is not reproducible run to run.** +Players 16, 32 and 496 are stable across all three; only 512 moves. Three samples, one field. + +This is a correction to an assumption, not to a published claim: `determinism-oracle.md` verifies +the oracle for the **`ref-turn2` workload** and says so; nobody had run the turn-1 workload three +times. It is now on the record that the turn-1 workload is **not** an oracle, and any lane +comparing bytes on it is comparing against noise. + +I did not find the mechanism. It is not the instrument (the `hooks=off` run diverges from the +reference too, and by a *different* value). The shape — one player, one choice, stable everywhere +else — fits a tie-break that reads a heap address or an uninitialised word, and that is a +watchpoint on the selection site, not a reading exercise. + +--- + +## 4. Corrections to earlier findings + +* **`ai-order-emission.md` §2 — "the four `Species == 4` factions submit no command block at all".** + Right about the submissions, wrong about the block array: **the batch is `n = playerCount = 8`** + and those four occupy slots with `playerId == 0` and uninitialised gate payloads. AI3 §1.2 had + already read the `resize(playerCount)` that forces it. +* **`ai-order-emission.md` §1 / §3 P1 — the 17..27 half of the cost table was read from the + instruction stream only, with no workload.** It now has one: **list 23 carries one element on + every AI turn measured**, and both turns still cost exactly 12. The free half is confirmed free. +* **`ai-order-emission.md` §4.5 — list 10 "named only by position".** It now has values: + `{systemId, fleetId, counted vector}`, with the system leading. Still not named; the vector's + contents are unread. +* **`turncommands-block.md` §3, list 3.** The wire record `{ordinal, designId, systemId, w}` is + correct — but **the in-memory element is in the opposite order**, because that list's writer + (`0x00822870`) emits `+0x14, +0x10, +0x0c, +0x08`, descending. It is the only one of the five + writers checked that reverses; lists 5, 8, 10, 14 and 23 all write ascending. Anyone reading these + elements out of memory needs that per-list, not as a rule. +* **`ai-task-system.md` / `ai-stepping-and-passes.md` — "the AI's fleet order names the fleet it + moves".** It names a fleet the input save does not contain (§1, P7). + +--- + +## 5. What this lane did **not** do + +1. **AI3 §2.4 is still open.** `AITRaid` never ran on either workload, so the list-16 pass-0 + question is untouched — but now for a measured reason rather than an assumed one (§1, P9). +2. **AI3's P3 is untouched.** An entry counter cannot see the steal branch inside + `IsClaimedByAnotherTask`; this lane measured only that it is called (10 times on turn 2, 0 on + turn 1). Stated in advance in `docs/L4-predictions.md` §4. +3. **The dump reads 48 bytes per element and does not follow pointers.** Three payloads are + therefore unread: the route in list 8 (one hop, id unknown — `turn3-state.sav`'s waypoint says + 272 but the capture does not prove it), the counted vector in list 10 (one element), and the + `Population` body in list 23 (24 bytes behind a vftable). Each is one more indirection in the + dumper. +4. **The design id is not visible in the list-1 element** (§1, P3). It is inferred from list 3 + naming design 18 in the same block. +5. **The client id counter is not located** (§1, P7). This is the largest remaining hole and it is + a watchpoint: break on the write that produces 18 and 34. +6. **Which tasks drive player 32 is not known** (§2). Five build-shaped tasks per pass reached + `RequestBuildForTask` and none of them is one of the eight `Execute` bodies probed. The probe set + was chosen from AI3 §5's list of nine and that list is not where this AI's decisions come from. +7. **Two workloads, one AI empire, 28 stars, no contact.** Every count here is a count on a very + quiet board: no colonise order, no invade, no raid, no diplomacy, no combat. Lists 2, 4, 6, 7, + 9, 11–22 and 24–27 were empty on both turns and remain unexercised (rule 6). The distinct-state + count for this lane is **two turns and one real AI player** — that is thin, and it is the caveat + that matters most for anything generalised from here. +8. **The `+0x6c` `CivilianRatios` gate and the `+0x3c` Hiver gate were clear on all eight blocks on + both turns**, as expected; nothing new about either. + +--- + +## 6. The instrument, for the next lane + +`sots-engine` `src/shim/hooks/ai_orders.{h,cpp}`, configured by three keys: + +* `aiorders=on|off` — the block dump: **one** register-transparent entry stub on + `StrategySim::ApplyTurnCommandBatch`, which receives `(blocks, n)` as stack arguments with every + submitted block complete at a fixed 0x1b4 stride. Prints six gates, twenty-seven list lengths and + 48 bytes per element per block. +* `aiprobes=off|all|N` — sixteen entry counters, lane H's asm-stub pattern with its own table so + lane H's set is untouched. `N` installs the first N, so the set bisects in one build. +* `aiorders.out=`. + +Two design points worth keeping: + +**Row 0 is `RunTaskList`, and it is both the control and the pass recorder.** Its stub reads the +`pass` stack argument before tail-jumping, so every later probe hit is attributed to a pass. That is +what turned "pass 0 emits nothing" from an inference into a measurement. The global is stale once +`RunTaskList` returns and the report says so; the `run` column in the event ring is what makes the +staleness readable. + +**Every list is measured twice** — walked, and read from `_Mysize` — and a disagreement prints +`MISMATCH`. Nothing printed it on 8 blocks × 27 lists × 2 runs, which is the evidence that the +container layout is right rather than that the block is empty (rule 1). And a run whose +`RunTaskList` count is zero prints `CONTROL ZERO` and says every other row is unmeasured, not +absent — which is exactly what the load-time batch (`seq=1`, `n=1`, the local client's block alone) +does print. + +### 6.1 Lab notes + +* **`move X Y` then `click X Y` in the same click-helper batch is reliable; a bare `click` is not.** + Roughly half of bare clicks were delivered at the *previous* cursor position, which reads as "the + click did nothing" and then as "the next click did the previous thing". Two runs were nearly lost + to it before the pattern was clear. +* **Reset `SavedGames` to a fixed two-file set before every run.** With only `ref-turn2.sav` and + `turn1-state.sav` present the Load dialog rows are always y=262 and y=291 and the click path never + has to be re-derived. `C:\SOTS\ui\l4deploy.ps1` does it. +* Startup to main menu on VM145 was 80–95 s. Verify by screenshot; never sleep and click. +* VM145 left restored: `SavedGames` back to the 9-file pre-L4 set (autosaves byte-identical to the + oracle), `binkw32.dll` and `shim.cfg` back to the W3 build and `w3mod` config, game stopped. + `C:\SOTS\shimdist-l4`, `C:\SOTS\ui\l4\` and `C:\SOTS\ui\l4{deploy,click,grab,release}.ps1` left in + place — they are a working template for the next lane. diff --git a/ghidra/addresses.d/lane-l4.json b/ghidra/addresses.d/lane-l4.json new file mode 100644 index 0000000..f903c1c --- /dev/null +++ b/ghidra/addresses.d/lane-l4.json @@ -0,0 +1,77 @@ +{ + "_note": "Lane L4 2026-09-08. Nine entry-probe targets for the live AI order capture on VM145. Eight are IAITask::Execute bodies (vtable slot 5) named from the RTTI class that owns the vtable; three of them are SHARED between a task and its `Goal` variant (lane AI3 §5: the paired classes have an identical Execute and differ only in their two GetTarget slots), so the name records the pair rather than pretending there are two bodies. The ninth is the StrategyClient order method AITRaid reaches at depth 1, which is the list-16 producer and the subject of AI3 §2.4. All nine were checked against dumps/functions.json as real function starts and disassembled far enough to confirm a >=5-byte patchable prologue with no branch target inside it, because every one of them is a MinHook target in this lane's shim module. Addresses already carried elsewhere (RunTaskList, IsClaimedByAnotherTask, AcquireFleetsForTask, RequestBuildForTask, AssignFleetsAndIssueOrders, IssueRouteForFleets, BuildTurnCommands, ApplyAllTurnCommands, ApplyTurnCommandBatch) are deliberately NOT re-declared here -- lanes AI1/AI2/AI3/A2 own those names and the generator rejects a same-address-different-name collision.", + "entries": [ + { + "name": "AITColonize_Execute", + "addr": "0x0068b400", + "convention": "thiscall", + "prototype": "void __thiscall Game::AITColonize::Execute(StrategyAIAgent* agent, int pass) -- RET 8, IAITask vtable slot 5. SHARED BODY: Game::AITColonizeGoal::Execute is the same address. 48 bytes; a forwarder to the parameterised worker 0x0068b280 called as worker(ecx = agent, this, pass, this->+0x8, &this->+0x20, &this->+0x10) with `edi = this->+0xc` passed as an IMPLICIT REGISTER ARGUMENT (whole-program-optimised custom convention; a reimplementation that ports only the stack arguments passes garbage). Reaches the colonize order (list 7) at depth 4 via 0x0068b280 -> 0x006930f0 -> 0x00578ff0 -> 0x00769640", + "status": "unverified", + "source": "findings/subsystems/ai-stepping-and-passes.md#5 -- lane AI3's unlimited-depth direct closure; address re-checked by lane L4 against dumps/functions.json and the prologue disassembled before hooking" + }, + { + "name": "AITEscortGateInvade_Execute", + "addr": "0x0068c7c0", + "convention": "thiscall", + "prototype": "void __thiscall Game::AITEscortGateInvade::Execute(StrategyAIAgent* agent, int pass) -- RET 8, IAITask vtable slot 5. SHARED BODY: Game::AITEscortGateInvadeGoal::Execute is the same address. 80 bytes; forwards to 0x0068c5d0 as __fastcall(ecx = this->+0xc, edx = agent) plus 8 stack arguments. Reaches list 7 at depth 4", + "status": "unverified", + "source": "findings/subsystems/ai-stepping-and-passes.md#5 -- lane AI3; address re-checked by lane L4" + }, + { + "name": "AITInvade_Execute", + "addr": "0x0068d7a0", + "convention": "thiscall", + "prototype": "void __thiscall Game::AITInvade::Execute(StrategyAIAgent* agent, int pass) -- RET 8, IAITask vtable slot 5. SHARED BODY: Game::AITInvadeGoal::Execute is the same address. 160 bytes; forwards to 0x0068d460 with 11 arguments, then maintains this->+0x38 and this->+0x39. +0x39 is computed at 0x0068d80f-0x0068d82a as (0x006a6380(agent, this->+0xc) < 2 * 0x006a6260(agent, this->+0xc)) and is what IAITask slot 11 returns for this class. Reaches list 14 at depth 5", + "status": "unverified", + "source": "findings/subsystems/ai-stepping-and-passes.md#4.3,#5 -- lane AI3; address re-checked by lane L4" + }, + { + "name": "AITNodeBore_Execute", + "addr": "0x0068e590", + "convention": "thiscall", + "prototype": "void __thiscall Game::AITNodeBore::Execute(StrategyAIAgent* agent, int pass) -- RET 8, IAITask vtable slot 5. Does its setup (0x00685810) and its finaliser (0x0068e090) only when pass == 0, and forwards `pass` to 0x0068a520 in both passes. Reaches list 14 at depth 5 via 0x0068a520 -> 0x006ceef0 -> 0x006c16c0 -> 0x006987e0 -> 0x007634d0. Zuul-flavoured task (the node-bore is a Zuul mechanic), so on a non-Zuul board it may be absent from the task list entirely", + "status": "unverified", + "source": "findings/subsystems/ai-stepping-and-passes.md#2.3,#5 -- lane AI3; address re-checked by lane L4" + }, + { + "name": "AITRaid_Execute", + "addr": "0x0068e670", + "convention": "thiscall", + "prototype": "void __thiscall Game::AITRaid::Execute(StrategyAIAgent* agent, int pass) -- RET 8, IAITask vtable slot 5. THE ONE TASK WHOSE PASS-0 BEHAVIOUR IS NOT SETTLED: at 0x0068e89e it calls 0x006b76a0 and then at 0x0068e8b8 loops the list-16 order method 0x007635f0(client, fleetId, 1) over the returned fleets, and NEITHER the call nor the loop carries a `pass` guard of its own. AI3 §2.3's argument says the fleet vector at [ebp-0x28] is empty on pass 0 because it is downstream of the same hub, but [ebp-0x28] was never traced to closure. This address exists as an address so that a zero at 0x007635f0 can be read: entered-and-silent and never-entered are opposite answers (method rule 20)", + "status": "unverified", + "source": "findings/subsystems/ai-stepping-and-passes.md#2.4,#8.3 -- lane AI3 named this probe; lane L4 built it" + }, + { + "name": "AITAdvanceIdleShips_Execute", + "addr": "0x0068f230", + "convention": "thiscall", + "prototype": "void __thiscall Game::AITAdvanceIdleShips::Execute(StrategyAIAgent* agent, int pass) -- RET 8, IAITask vtable slot 5. Whole body is pass-1 only: `if (pass != 1) return` at 0x0068f25a. Table priority 0, so it is always the LAST task in the descending-priority sweep -- the AI sweeps up whatever is still idle only after every other task has taken both its minimum and its desired force, which is what the two-tier quota model predicts", + "status": "unverified", + "source": "findings/subsystems/ai-stepping-and-passes.md#2.3 -- lane AI3; address re-checked by lane L4" + }, + { + "name": "AITBuildDeepScanShips_Execute", + "addr": "0x006901a0", + "convention": "thiscall", + "prototype": "void __thiscall Game::AITBuildDeepScanShips::Execute(StrategyAIAgent* agent, int pass) -- RET 8, IAITask vtable slot 5. Reaches the BUILD order (list 3) at depth 6 via 0x006ce460 -> 0x006ce360 -> 0x006ce190 -> 0x006bd790 -> 0x006b3bc0 -> 0x00762fd0, the same chain as AITBuildPoliceShips", + "status": "unverified", + "source": "findings/subsystems/ai-stepping-and-passes.md#5 -- lane AI3; address re-checked by lane L4" + }, + { + "name": "AITBuildPoliceShips_Execute", + "addr": "0x00690380", + "convention": "thiscall", + "prototype": "void __thiscall Game::AITBuildPoliceShips::Execute(StrategyAIAgent* agent, int pass) -- RET 8, IAITask vtable slot 5. Reaches the BUILD order (list 3) at depth 6, identical chain to AITBuildDeepScanShips. One of the two candidate producers of the single list-3 element the reference AI emits on turn 1", + "status": "unverified", + "source": "findings/subsystems/ai-stepping-and-passes.md#5 -- lane AI3; address re-checked by lane L4" + }, + { + "name": "StrategyClient_OrderList16", + "addr": "0x007635f0", + "convention": "thiscall", + "prototype": "bool __thiscall Game::StrategyClient::OrderList16(int objectId, bool flag) -- RET 8. THE LIST-16 PRODUCER. Opens with `cmp byte [this+0x15c], 0` -- the End-Turn latch StrategyClient::EndTurn 0x00783be0 sets at 0x00783c59 before BuildTurnCommands runs -- so like every other order method it refuses once the turn has been submitted. Element record for list 16 is {i32, bool} (lane Q), matching the (objectId, flag) pair; list 16 is in the PAYING half of the ModCount table (bump at 0x00821e23 in its applier 0x00821e20). Reached from AITRaid::Execute at depth 1. The method is named for the list it fills, NOT for what the flag means: no save has ever carried a list-16 element and nothing has been observed", + "status": "unverified", + "source": "findings/subsystems/ai-stepping-and-passes.md#2.4 + findings/objects/turncommands-block.md#3 -- lane AI3 named the probe, lane Q typed the element; lane L4 read the prologue and checked the +0x15c latch" + } + ] +} diff --git a/verify/results/shim/aiorders/l4-turn1to2-aiorders.txt b/verify/results/shim/aiorders/l4-turn1to2-aiorders.txt new file mode 100644 index 0000000..385d6c2 --- /dev/null +++ b/verify/results/shim/aiorders/l4-turn1to2-aiorders.txt @@ -0,0 +1,120 @@ +aiorders: out=C:\SOTS\shim.aiorders.txt probes=16 of 16 +aiorders: batch hook StrategySim::ApplyTurnCommandBatch rva=0x0048f9b0 va=013cf9b0 create=MH_OK enable=MH_OK +aiprobe: 0 StrategyAIAgent::RunTaskList [control+pass] rva=0x002b3320 va=011f3320 create=MH_OK enable=MH_OK +aiprobe: 1 StrategyClient::OrderList16 [list 16 emit] rva=0x003635f0 va=012a35f0 create=MH_OK enable=MH_OK +aiprobe: 2 AITRaid::Execute rva=0x0028e670 va=011ce670 create=MH_OK enable=MH_OK +aiprobe: 3 AITColonize::Execute [+Goal] rva=0x0028b400 va=011cb400 create=MH_OK enable=MH_OK +aiprobe: 4 AITEscortGateInvade::Execute [+Goal] rva=0x0028c7c0 va=011cc7c0 create=MH_OK enable=MH_OK +aiprobe: 5 AITInvade::Execute [+Goal] rva=0x0028d7a0 va=011cd7a0 create=MH_OK enable=MH_OK +aiprobe: 6 AITNodeBore::Execute rva=0x0028e590 va=011ce590 create=MH_OK enable=MH_OK +aiprobe: 7 AITBuildPoliceShips::Execute rva=0x00290380 va=011d0380 create=MH_OK enable=MH_OK +aiprobe: 8 AITBuildDeepScanShips::Execute rva=0x002901a0 va=011d01a0 create=MH_OK enable=MH_OK +aiprobe: 9 AITAdvanceIdleShips::Execute rva=0x0028f230 va=011cf230 create=MH_OK enable=MH_OK +aiprobe: 10 StrategyAIAgent::RequestBuildForTask [lists 3,1] rva=0x002cea50 va=0120ea50 create=MH_OK enable=MH_OK +aiprobe: 11 StrategyAIAgent::AssignFleetsAndIssueOrders [lists 14,8,10] rva=0x002c16c0 va=012016c0 create=MH_OK enable=MH_OK +aiprobe: 12 StrategyAIAgent::IssueRouteForFleets [list 14] rva=0x002bbd50 va=011fbd50 create=MH_OK enable=MH_OK +aiprobe: 13 StrategyAIAgent::AcquireFleetsForTask rva=0x002ceef0 va=0120eef0 create=MH_OK enable=MH_OK +aiprobe: 14 StrategyAIAgent::IsClaimedByAnotherTask [entry only] rva=0x002a8d20 va=011e8d20 create=MH_OK enable=MH_OK +aiprobe: 15 StrategyClient::BuildTurnCommands [control] rva=0x00383780 va=012c3780 create=MH_OK enable=MH_OK +---- aibatch seq=1 blocks=0x0095ee74 n=1 stride=0x1b4 ---- +aiblk seq=1 blk=0/1 at=0x0095ee74 pid=16 rate=1:0.25 target=0:9825944 boost=0:0,0 g4=0:0,0 f3=0:1,1,1 civ=0 +ailists seq=1 blk=0 pid=16 nonEmpty=0 sizes(1..27)=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] +aiprobe seq=1 idx=0 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyAIAgent::RunTaskList [control+pass] +aiprobe seq=1 idx=1 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyClient::OrderList16 [list 16 emit] +aiprobe seq=1 idx=2 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITRaid::Execute +aiprobe seq=1 idx=3 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITColonize::Execute [+Goal] +aiprobe seq=1 idx=4 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITEscortGateInvade::Execute [+Goal] +aiprobe seq=1 idx=5 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITInvade::Execute [+Goal] +aiprobe seq=1 idx=6 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITNodeBore::Execute +aiprobe seq=1 idx=7 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITBuildPoliceShips::Execute +aiprobe seq=1 idx=8 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITBuildDeepScanShips::Execute +aiprobe seq=1 idx=9 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITAdvanceIdleShips::Execute +aiprobe seq=1 idx=10 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aiprobe seq=1 idx=11 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyAIAgent::AssignFleetsAndIssueOrders [lists 14,8,10] +aiprobe seq=1 idx=12 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyAIAgent::IssueRouteForFleets [list 14] +aiprobe seq=1 idx=13 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyAIAgent::AcquireFleetsForTask +aiprobe seq=1 idx=14 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyAIAgent::IsClaimedByAnotherTask [entry only] +aiprobe seq=1 idx=15 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyClient::BuildTurnCommands [control] +aiprobe seq=1 CONTROL ZERO -- RunTaskList was not entered in this window, so every other row above is unmeasured rather than absent +---- aibatch seq=2 blocks=0x0d865dd0 n=8 stride=0x1b4 ---- +aiblk seq=2 blk=0/8 at=0x0d865dd0 pid=16 rate=1:0.25 target=0:22508140 boost=0:0,0 g4=0:0,0 f3=0:1,1,1 civ=0 +ailists seq=2 blk=0 pid=16 nonEmpty=0 sizes(1..27)=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] +aiblk seq=2 blk=1/8 at=0x0d865f84 pid=32 rate=1:0.8 target=1:144 boost=0:0,0 g4=0:0,0 f3=0:1,1,1 civ=0 +ailists seq=2 blk=1 pid=32 nonEmpty=4 sizes(1..27)=[ 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 ] +ailist blk=1 pid=32 list=1 off=0x070 size=1 +aielem blk=1 pid=32 list=1 idx=0 node=0x3364bcd8 f0=3.89263e-38 f1=2.98023e-08 ints=[ 22277988 855638017 1869508424 1632378994 6644590 861378992 11 15 861238808 2 44 859372552 ] hex=[ 0153ef64 33000001 6f6e6f48 614c2072 0065636e 335799b0 0000000b 0000000f 33557618 00000002 0000002c 3338fc08 ] +ailist blk=1 pid=32 list=3 off=0x088 size=1 +aielem blk=1 pid=32 list=3 idx=0 node=0x33567a80 f0=0 f1=4.03574e-43 ints=[ 0 288 18 1 2006885426 -2012853432 61135080 61135092 61135104 61135116 61135128 61135140 ] hex=[ 00000000 00000120 00000012 00000001 779ea432 88064b48 03a4d8e8 03a4d8f4 03a4d900 03a4d90c 03a4d918 03a4d924 ] +ailist blk=1 pid=32 list=5 off=0x0a0 size=1 +aielem blk=1 pid=32 list=5 idx=0 node=0x33000b18 f0=4.03574e-43 f1=0 ints=[ 288 0 1065353216 0 0 0 0 0 1872980489 -1946142208 855640184 226781168 ] hex=[ 00000120 00000000 3f800000 00000000 00000000 00000000 00000000 00000000 6fa36a09 8c003a00 33000878 0d8467f0 ] +ailist blk=1 pid=32 list=23 off=0x178 size=1 +aielem blk=1 pid=32 list=23 idx=0 node=0x334c8558 f0=4.03574e-43 f1=3.88586e-38 ints=[ 288 22253808 861305184 861305208 861305208 1 1700461518 -2013115563 0 0 0 0 ] hex=[ 00000120 015390f0 33567960 33567978 33567978 00000001 655afbce 88024b55 00000000 00000000 00000000 00000000 ] +aiblk seq=2 blk=2/8 at=0x0d866138 pid=496 rate=1:0.8 target=1:90 boost=0:0,0 g4=0:0,0 f3=0:1,1,1 civ=0 +ailists seq=2 blk=2 pid=496 nonEmpty=0 sizes(1..27)=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] +aiblk seq=2 blk=3/8 at=0x0d8662ec pid=512 rate=1:0.8 target=1:288 boost=0:0,0 g4=0:0,0 f3=0:1,1,1 civ=0 +ailists seq=2 blk=3 pid=512 nonEmpty=0 sizes(1..27)=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] +aiblk seq=2 blk=4/8 at=0x0d8664a0 pid=0 rate=0:8.96831e-44 target=0:0 boost=0:0,0 g4=0:0,0 f3=0:1,1,1 civ=0 +ailists seq=2 blk=4 pid=0 nonEmpty=0 sizes(1..27)=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] +aiblk seq=2 blk=5/8 at=0x0d866654 pid=0 rate=0:8.96831e-44 target=0:0 boost=0:0,0 g4=0:0,0 f3=0:1,1,1 civ=0 +ailists seq=2 blk=5 pid=0 nonEmpty=0 sizes(1..27)=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] +aiblk seq=2 blk=6/8 at=0x0d866808 pid=0 rate=0:8.96831e-44 target=0:0 boost=0:0,0 g4=0:0,0 f3=0:1,1,1 civ=0 +ailists seq=2 blk=6 pid=0 nonEmpty=0 sizes(1..27)=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] +aiblk seq=2 blk=7/8 at=0x0d8669bc pid=0 rate=0:8.96831e-44 target=0:0 boost=0:0,0 g4=0:0,0 f3=0:1,1,1 civ=0 +ailists seq=2 blk=7 pid=0 nonEmpty=0 sizes(1..27)=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] +aievent seq=0 run=0 pass=-1 agent=0x00000000 probe=15 StrategyClient::BuildTurnCommands [control] +aievent seq=1 run=1 pass=0 agent=0x322d13c0 probe=0 StrategyAIAgent::RunTaskList [control+pass] +aievent seq=2 run=1 pass=0 agent=0x322d13c0 probe=13 StrategyAIAgent::AcquireFleetsForTask +aievent seq=3 run=1 pass=0 agent=0x322d13c0 probe=10 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aievent seq=4 run=1 pass=0 agent=0x322d13c0 probe=13 StrategyAIAgent::AcquireFleetsForTask +aievent seq=5 run=1 pass=0 agent=0x322d13c0 probe=10 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aievent seq=6 run=1 pass=0 agent=0x322d13c0 probe=13 StrategyAIAgent::AcquireFleetsForTask +aievent seq=7 run=1 pass=0 agent=0x322d13c0 probe=10 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aievent seq=8 run=1 pass=0 agent=0x322d13c0 probe=13 StrategyAIAgent::AcquireFleetsForTask +aievent seq=9 run=1 pass=0 agent=0x322d13c0 probe=10 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aievent seq=10 run=1 pass=0 agent=0x322d13c0 probe=13 StrategyAIAgent::AcquireFleetsForTask +aievent seq=11 run=1 pass=0 agent=0x322d13c0 probe=10 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aievent seq=12 run=1 pass=0 agent=0x322d13c0 probe=9 AITAdvanceIdleShips::Execute +aievent seq=13 run=2 pass=1 agent=0x322d13c0 probe=0 StrategyAIAgent::RunTaskList [control+pass] +aievent seq=14 run=2 pass=1 agent=0x322d13c0 probe=13 StrategyAIAgent::AcquireFleetsForTask +aievent seq=15 run=2 pass=1 agent=0x322d13c0 probe=10 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aievent seq=16 run=2 pass=1 agent=0x322d13c0 probe=13 StrategyAIAgent::AcquireFleetsForTask +aievent seq=17 run=2 pass=1 agent=0x322d13c0 probe=10 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aievent seq=18 run=2 pass=1 agent=0x322d13c0 probe=13 StrategyAIAgent::AcquireFleetsForTask +aievent seq=19 run=2 pass=1 agent=0x322d13c0 probe=10 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aievent seq=20 run=2 pass=1 agent=0x322d13c0 probe=13 StrategyAIAgent::AcquireFleetsForTask +aievent seq=21 run=2 pass=1 agent=0x322d13c0 probe=10 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aievent seq=22 run=2 pass=1 agent=0x322d13c0 probe=13 StrategyAIAgent::AcquireFleetsForTask +aievent seq=23 run=2 pass=1 agent=0x322d13c0 probe=10 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aievent seq=24 run=2 pass=1 agent=0x322d13c0 probe=9 AITAdvanceIdleShips::Execute +aievent seq=25 run=2 pass=1 agent=0x322d13c0 probe=15 StrategyClient::BuildTurnCommands [control] +aievent seq=26 run=3 pass=0 agent=0x322d1748 probe=0 StrategyAIAgent::RunTaskList [control+pass] +aievent seq=27 run=3 pass=0 agent=0x322d1748 probe=8 AITBuildDeepScanShips::Execute +aievent seq=28 run=3 pass=0 agent=0x322d1748 probe=9 AITAdvanceIdleShips::Execute +aievent seq=29 run=4 pass=1 agent=0x322d1748 probe=0 StrategyAIAgent::RunTaskList [control+pass] +aievent seq=30 run=4 pass=1 agent=0x322d1748 probe=8 AITBuildDeepScanShips::Execute +aievent seq=31 run=4 pass=1 agent=0x322d1748 probe=9 AITAdvanceIdleShips::Execute +aievent seq=32 run=4 pass=1 agent=0x322d1748 probe=15 StrategyClient::BuildTurnCommands [control] +aievent seq=33 run=5 pass=0 agent=0x322d21e0 probe=0 StrategyAIAgent::RunTaskList [control+pass] +aievent seq=34 run=5 pass=0 agent=0x322d21e0 probe=8 AITBuildDeepScanShips::Execute +aievent seq=35 run=5 pass=0 agent=0x322d21e0 probe=9 AITAdvanceIdleShips::Execute +aievent seq=36 run=6 pass=1 agent=0x322d21e0 probe=0 StrategyAIAgent::RunTaskList [control+pass] +aievent seq=37 run=6 pass=1 agent=0x322d21e0 probe=8 AITBuildDeepScanShips::Execute +aievent seq=38 run=6 pass=1 agent=0x322d21e0 probe=9 AITAdvanceIdleShips::Execute +aievent seq=39 run=6 pass=1 agent=0x322d21e0 probe=15 StrategyClient::BuildTurnCommands [control] +aievent seq=40 run=6 pass=1 agent=0x322d21e0 probe=15 StrategyClient::BuildTurnCommands [control] +aiprobe seq=2 idx=0 installed=1 turn=6 total=6 pass0=3 pass1=3 other=0 StrategyAIAgent::RunTaskList [control+pass] +aiprobe seq=2 idx=1 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyClient::OrderList16 [list 16 emit] +aiprobe seq=2 idx=2 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITRaid::Execute +aiprobe seq=2 idx=3 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITColonize::Execute [+Goal] +aiprobe seq=2 idx=4 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITEscortGateInvade::Execute [+Goal] +aiprobe seq=2 idx=5 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITInvade::Execute [+Goal] +aiprobe seq=2 idx=6 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITNodeBore::Execute +aiprobe seq=2 idx=7 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITBuildPoliceShips::Execute +aiprobe seq=2 idx=8 installed=1 turn=4 total=4 pass0=2 pass1=2 other=0 AITBuildDeepScanShips::Execute +aiprobe seq=2 idx=9 installed=1 turn=6 total=6 pass0=3 pass1=3 other=0 AITAdvanceIdleShips::Execute +aiprobe seq=2 idx=10 installed=1 turn=10 total=10 pass0=5 pass1=5 other=0 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aiprobe seq=2 idx=11 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyAIAgent::AssignFleetsAndIssueOrders [lists 14,8,10] +aiprobe seq=2 idx=12 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyAIAgent::IssueRouteForFleets [list 14] +aiprobe seq=2 idx=13 installed=1 turn=10 total=10 pass0=5 pass1=5 other=0 StrategyAIAgent::AcquireFleetsForTask +aiprobe seq=2 idx=14 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyAIAgent::IsClaimedByAnotherTask [entry only] +aiprobe seq=2 idx=15 installed=1 turn=5 total=5 pass0=0 pass1=4 other=1 StrategyClient::BuildTurnCommands [control] diff --git a/verify/results/shim/aiorders/l4-turn1to2-hooksoff-autosave.sav b/verify/results/shim/aiorders/l4-turn1to2-hooksoff-autosave.sav new file mode 100644 index 0000000000000000000000000000000000000000..b952e1f3a7744f261da5288e31a650571a8e1aac GIT binary patch literal 66746 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

2Om9IZEv^iT_|r=^t#l82y7S+&|c| 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 LyAP{85AXdi#)@|@ literal 0 HcmV?d00001 diff --git a/verify/results/shim/aiorders/l4-turn1to2-instrumented-autosave.sav b/verify/results/shim/aiorders/l4-turn1to2-instrumented-autosave.sav new file mode 100644 index 0000000000000000000000000000000000000000..91461b5dd487c0e50d9acfddcc302d9e4aac306b GIT binary patch literal 66740 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 M@%nLB`R-x-A4aJzRsaA1 literal 0 HcmV?d00001 diff --git a/verify/results/shim/aiorders/l4-turn2to3-aiorders.txt b/verify/results/shim/aiorders/l4-turn2to3-aiorders.txt new file mode 100644 index 0000000..e919840 --- /dev/null +++ b/verify/results/shim/aiorders/l4-turn2to3-aiorders.txt @@ -0,0 +1,137 @@ +aiorders: out=C:\SOTS\shim.aiorders.txt probes=16 of 16 +aiorders: batch hook StrategySim::ApplyTurnCommandBatch rva=0x0048f9b0 va=013cf9b0 create=MH_OK enable=MH_OK +aiprobe: 0 StrategyAIAgent::RunTaskList [control+pass] rva=0x002b3320 va=011f3320 create=MH_OK enable=MH_OK +aiprobe: 1 StrategyClient::OrderList16 [list 16 emit] rva=0x003635f0 va=012a35f0 create=MH_OK enable=MH_OK +aiprobe: 2 AITRaid::Execute rva=0x0028e670 va=011ce670 create=MH_OK enable=MH_OK +aiprobe: 3 AITColonize::Execute [+Goal] rva=0x0028b400 va=011cb400 create=MH_OK enable=MH_OK +aiprobe: 4 AITEscortGateInvade::Execute [+Goal] rva=0x0028c7c0 va=011cc7c0 create=MH_OK enable=MH_OK +aiprobe: 5 AITInvade::Execute [+Goal] rva=0x0028d7a0 va=011cd7a0 create=MH_OK enable=MH_OK +aiprobe: 6 AITNodeBore::Execute rva=0x0028e590 va=011ce590 create=MH_OK enable=MH_OK +aiprobe: 7 AITBuildPoliceShips::Execute rva=0x00290380 va=011d0380 create=MH_OK enable=MH_OK +aiprobe: 8 AITBuildDeepScanShips::Execute rva=0x002901a0 va=011d01a0 create=MH_OK enable=MH_OK +aiprobe: 9 AITAdvanceIdleShips::Execute rva=0x0028f230 va=011cf230 create=MH_OK enable=MH_OK +aiprobe: 10 StrategyAIAgent::RequestBuildForTask [lists 3,1] rva=0x002cea50 va=0120ea50 create=MH_OK enable=MH_OK +aiprobe: 11 StrategyAIAgent::AssignFleetsAndIssueOrders [lists 14,8,10] rva=0x002c16c0 va=012016c0 create=MH_OK enable=MH_OK +aiprobe: 12 StrategyAIAgent::IssueRouteForFleets [list 14] rva=0x002bbd50 va=011fbd50 create=MH_OK enable=MH_OK +aiprobe: 13 StrategyAIAgent::AcquireFleetsForTask rva=0x002ceef0 va=0120eef0 create=MH_OK enable=MH_OK +aiprobe: 14 StrategyAIAgent::IsClaimedByAnotherTask [entry only] rva=0x002a8d20 va=011e8d20 create=MH_OK enable=MH_OK +aiprobe: 15 StrategyClient::BuildTurnCommands [control] rva=0x00383780 va=012c3780 create=MH_OK enable=MH_OK +---- aibatch seq=1 blocks=0x00b5eec0 n=1 stride=0x1b4 ---- +aiblk seq=1 blk=0/1 at=0x00b5eec0 pid=16 rate=1:0.25 target=0:11923172 boost=0:0,0 g4=0:0,0 f3=0:1,1,1 civ=0 +ailists seq=1 blk=0 pid=16 nonEmpty=0 sizes(1..27)=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] +aiprobe seq=1 idx=0 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyAIAgent::RunTaskList [control+pass] +aiprobe seq=1 idx=1 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyClient::OrderList16 [list 16 emit] +aiprobe seq=1 idx=2 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITRaid::Execute +aiprobe seq=1 idx=3 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITColonize::Execute [+Goal] +aiprobe seq=1 idx=4 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITEscortGateInvade::Execute [+Goal] +aiprobe seq=1 idx=5 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITInvade::Execute [+Goal] +aiprobe seq=1 idx=6 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITNodeBore::Execute +aiprobe seq=1 idx=7 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITBuildPoliceShips::Execute +aiprobe seq=1 idx=8 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITBuildDeepScanShips::Execute +aiprobe seq=1 idx=9 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITAdvanceIdleShips::Execute +aiprobe seq=1 idx=10 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aiprobe seq=1 idx=11 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyAIAgent::AssignFleetsAndIssueOrders [lists 14,8,10] +aiprobe seq=1 idx=12 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyAIAgent::IssueRouteForFleets [list 14] +aiprobe seq=1 idx=13 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyAIAgent::AcquireFleetsForTask +aiprobe seq=1 idx=14 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyAIAgent::IsClaimedByAnotherTask [entry only] +aiprobe seq=1 idx=15 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyClient::BuildTurnCommands [control] +aiprobe seq=1 CONTROL ZERO -- RunTaskList was not entered in this window, so every other row above is unmeasured rather than absent +---- aibatch seq=2 blocks=0x0d744c18 n=8 stride=0x1b4 ---- +aiblk seq=2 blk=0/8 at=0x0d744c18 pid=16 rate=1:0.25 target=0:22508140 boost=0:0,0 g4=0:0,0 f3=0:1,1,1 civ=0 +ailists seq=2 blk=0 pid=16 nonEmpty=0 sizes(1..27)=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] +aiblk seq=2 blk=1/8 at=0x0d744dcc pid=32 rate=1:0.8 target=0:880612328 boost=0:0,0 g4=0:0,0 f3=0:1,1,1 civ=0 +ailists seq=2 blk=1 pid=32 nonEmpty=6 sizes(1..27)=[ 0 0 1 0 1 0 0 1 0 1 0 0 0 2 0 0 0 0 0 0 0 0 1 0 0 0 0 ] +ailist blk=1 pid=32 list=3 off=0x088 size=1 +aielem blk=1 pid=32 list=3 idx=0 node=0x348176f0 f0=0 f1=4.03574e-43 ints=[ 0 288 18 2 1797410169 -2012936912 62026768 62026780 62026792 62026804 62026816 62026828 ] hex=[ 00000000 00000120 00000012 00000002 6b224d79 88050530 03b27410 03b2741c 03b27428 03b27434 03b27440 03b2744c ] +ailist blk=1 pid=32 list=5 off=0x0a0 size=1 +aielem blk=1 pid=32 list=5 idx=0 node=0x33655868 f0=4.03574e-43 f1=0 ints=[ 288 0 1065353216 0 0 0 0 0 2129774730 -1946145440 164749720 878547960 ] hex=[ 00000120 00000000 3f800000 00000000 00000000 00000000 00000000 00000000 7ef1c88a 8c002d60 09d1e198 345d93f8 ] +ailist blk=1 pid=32 list=8 off=0x0c4 size=1 +aielem blk=1 pid=32 list=8 idx=0 node=0x347d28d8 f0=4.76441e-44 f1=9.6575e-21 ints=[ 34 506883280 506883284 506883284 1935961697 3503711 2010367623 -2013150891 0 0 0 0 ] hex=[ 00000022 1e366cd0 1e366cd4 1e366cd4 73646e61 0035765f 77d3c687 8801c155 00000000 00000000 00000000 00000000 ] +ailist blk=1 pid=32 list=10 off=0x0dc size=1 +aielem blk=1 pid=32 list=10 idx=0 node=0x347d2bd0 f0=4.03574e-43 f1=4.76441e-44 ints=[ 288 34 506883088 506883092 506883092 2147483647 1982908134 -1946037029 1598968388 1182164033 872443250 880181800 ] hex=[ 00000120 00000022 1e366c10 1e366c14 1e366c14 7fffffff 7630c6e6 8c01d4db 5f4e5244 46766441 34006d72 34768228 ] +ailist blk=1 pid=32 list=14 off=0x10c size=2 +aielem blk=1 pid=32 list=14 idx=0 node=0x348178f0 f0=4.76441e-44 f1=0 ints=[ 34 0 11908609 879555176 1801604281 -2147150592 880900368 880900368 141 167 92 53 ] hex=[ 00000022 00000000 00b5b601 346cf268 6b624cb9 80051500 34817910 34817910 0000008d 000000a7 0000005c 00000035 ] +aielem blk=1 pid=32 list=14 idx=1 node=0x34817730 f0=4.76441e-44 f1=1.4013e-45 ints=[ 34 1 11908609 103 1801080177 -2147154014 880899920 880899920 880899920 245 209 257 ] hex=[ 00000022 00000001 00b5b601 00000067 6b5a4d71 800507a2 34817750 34817750 34817750 000000f5 000000d1 00000101 ] +ailist blk=1 pid=32 list=23 off=0x178 size=1 +aielem blk=1 pid=32 list=23 idx=0 node=0x347d2d60 f0=4.03574e-43 f1=3.88586e-38 ints=[ 288 22253808 880900560 880900584 880900584 -1 1986184744 -2147361244 0 0 0 0 ] hex=[ 00000120 015390f0 348179d0 348179e8 348179e8 ffffffff 7662c628 8001de24 00000000 00000000 00000000 00000000 ] +aiblk seq=2 blk=2/8 at=0x0d744f80 pid=496 rate=1:0.8 target=0:-2147480387 boost=0:0,0 g4=0:0,0 f3=0:1,1,1 civ=0 +ailists seq=2 blk=2 pid=496 nonEmpty=0 sizes(1..27)=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] +aiblk seq=2 blk=3/8 at=0x0d745134 pid=512 rate=1:0.8 target=0:0 boost=0:0,0 g4=0:0,0 f3=0:1,1,1 civ=0 +ailists seq=2 blk=3 pid=512 nonEmpty=0 sizes(1..27)=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] +aiblk seq=2 blk=4/8 at=0x0d7452e8 pid=0 rate=0:2.6241e+33 target=0:1996579006 boost=0:0,0 g4=0:0,0 f3=0:1,1,1 civ=0 +ailists seq=2 blk=4 pid=0 nonEmpty=0 sizes(1..27)=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] +aiblk seq=2 blk=5/8 at=0x0d74549c pid=0 rate=0:2.6241e+33 target=0:1996579006 boost=0:0,0 g4=0:0,0 f3=0:1,1,1 civ=0 +ailists seq=2 blk=5 pid=0 nonEmpty=0 sizes(1..27)=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] +aiblk seq=2 blk=6/8 at=0x0d745650 pid=0 rate=0:2.6241e+33 target=0:1996579006 boost=0:0,0 g4=0:0,0 f3=0:1,1,1 civ=0 +ailists seq=2 blk=6 pid=0 nonEmpty=0 sizes(1..27)=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] +aiblk seq=2 blk=7/8 at=0x0d745804 pid=0 rate=0:2.6241e+33 target=0:1996579006 boost=0:0,0 g4=0:0,0 f3=0:1,1,1 civ=0 +ailists seq=2 blk=7 pid=0 nonEmpty=0 sizes(1..27)=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] +aievent seq=0 run=0 pass=-1 agent=0x00000000 probe=15 StrategyClient::BuildTurnCommands [control] +aievent seq=1 run=1 pass=0 agent=0x335c1040 probe=0 StrategyAIAgent::RunTaskList [control+pass] +aievent seq=2 run=1 pass=0 agent=0x335c1040 probe=13 StrategyAIAgent::AcquireFleetsForTask +aievent seq=3 run=1 pass=0 agent=0x335c1040 probe=14 StrategyAIAgent::IsClaimedByAnotherTask [entry only] +aievent seq=4 run=1 pass=0 agent=0x335c1040 probe=12 StrategyAIAgent::IssueRouteForFleets [list 14] +aievent seq=5 run=1 pass=0 agent=0x335c1040 probe=11 StrategyAIAgent::AssignFleetsAndIssueOrders [lists 14,8,10] +aievent seq=6 run=1 pass=0 agent=0x335c1040 probe=13 StrategyAIAgent::AcquireFleetsForTask +aievent seq=7 run=1 pass=0 agent=0x335c1040 probe=14 StrategyAIAgent::IsClaimedByAnotherTask [entry only] +aievent seq=8 run=1 pass=0 agent=0x335c1040 probe=14 StrategyAIAgent::IsClaimedByAnotherTask [entry only] +aievent seq=9 run=1 pass=0 agent=0x335c1040 probe=10 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aievent seq=10 run=1 pass=0 agent=0x335c1040 probe=13 StrategyAIAgent::AcquireFleetsForTask +aievent seq=11 run=1 pass=0 agent=0x335c1040 probe=14 StrategyAIAgent::IsClaimedByAnotherTask [entry only] +aievent seq=12 run=1 pass=0 agent=0x335c1040 probe=14 StrategyAIAgent::IsClaimedByAnotherTask [entry only] +aievent seq=13 run=1 pass=0 agent=0x335c1040 probe=10 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aievent seq=14 run=1 pass=0 agent=0x335c1040 probe=13 StrategyAIAgent::AcquireFleetsForTask +aievent seq=15 run=1 pass=0 agent=0x335c1040 probe=14 StrategyAIAgent::IsClaimedByAnotherTask [entry only] +aievent seq=16 run=1 pass=0 agent=0x335c1040 probe=14 StrategyAIAgent::IsClaimedByAnotherTask [entry only] +aievent seq=17 run=1 pass=0 agent=0x335c1040 probe=10 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aievent seq=18 run=1 pass=0 agent=0x335c1040 probe=13 StrategyAIAgent::AcquireFleetsForTask +aievent seq=19 run=1 pass=0 agent=0x335c1040 probe=14 StrategyAIAgent::IsClaimedByAnotherTask [entry only] +aievent seq=20 run=1 pass=0 agent=0x335c1040 probe=14 StrategyAIAgent::IsClaimedByAnotherTask [entry only] +aievent seq=21 run=1 pass=0 agent=0x335c1040 probe=10 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aievent seq=22 run=1 pass=0 agent=0x335c1040 probe=9 AITAdvanceIdleShips::Execute +aievent seq=23 run=2 pass=1 agent=0x335c1040 probe=0 StrategyAIAgent::RunTaskList [control+pass] +aievent seq=24 run=2 pass=1 agent=0x335c1040 probe=13 StrategyAIAgent::AcquireFleetsForTask +aievent seq=25 run=2 pass=1 agent=0x335c1040 probe=14 StrategyAIAgent::IsClaimedByAnotherTask [entry only] +aievent seq=26 run=2 pass=1 agent=0x335c1040 probe=12 StrategyAIAgent::IssueRouteForFleets [list 14] +aievent seq=27 run=2 pass=1 agent=0x335c1040 probe=11 StrategyAIAgent::AssignFleetsAndIssueOrders [lists 14,8,10] +aievent seq=28 run=2 pass=1 agent=0x335c1040 probe=13 StrategyAIAgent::AcquireFleetsForTask +aievent seq=29 run=2 pass=1 agent=0x335c1040 probe=10 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aievent seq=30 run=2 pass=1 agent=0x335c1040 probe=13 StrategyAIAgent::AcquireFleetsForTask +aievent seq=31 run=2 pass=1 agent=0x335c1040 probe=10 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aievent seq=32 run=2 pass=1 agent=0x335c1040 probe=13 StrategyAIAgent::AcquireFleetsForTask +aievent seq=33 run=2 pass=1 agent=0x335c1040 probe=10 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aievent seq=34 run=2 pass=1 agent=0x335c1040 probe=13 StrategyAIAgent::AcquireFleetsForTask +aievent seq=35 run=2 pass=1 agent=0x335c1040 probe=10 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aievent seq=36 run=2 pass=1 agent=0x335c1040 probe=9 AITAdvanceIdleShips::Execute +aievent seq=37 run=2 pass=1 agent=0x335c1040 probe=15 StrategyClient::BuildTurnCommands [control] +aievent seq=38 run=3 pass=0 agent=0x335c13c8 probe=0 StrategyAIAgent::RunTaskList [control+pass] +aievent seq=39 run=3 pass=0 agent=0x335c13c8 probe=8 AITBuildDeepScanShips::Execute +aievent seq=40 run=3 pass=0 agent=0x335c13c8 probe=9 AITAdvanceIdleShips::Execute +aievent seq=41 run=4 pass=1 agent=0x335c13c8 probe=0 StrategyAIAgent::RunTaskList [control+pass] +aievent seq=42 run=4 pass=1 agent=0x335c13c8 probe=8 AITBuildDeepScanShips::Execute +aievent seq=43 run=4 pass=1 agent=0x335c13c8 probe=9 AITAdvanceIdleShips::Execute +aievent seq=44 run=4 pass=1 agent=0x335c13c8 probe=15 StrategyClient::BuildTurnCommands [control] +aievent seq=45 run=5 pass=0 agent=0x335c3718 probe=0 StrategyAIAgent::RunTaskList [control+pass] +aievent seq=46 run=5 pass=0 agent=0x335c3718 probe=8 AITBuildDeepScanShips::Execute +aievent seq=47 run=5 pass=0 agent=0x335c3718 probe=9 AITAdvanceIdleShips::Execute +aievent seq=48 run=6 pass=1 agent=0x335c3718 probe=0 StrategyAIAgent::RunTaskList [control+pass] +aievent seq=49 run=6 pass=1 agent=0x335c3718 probe=8 AITBuildDeepScanShips::Execute +aievent seq=50 run=6 pass=1 agent=0x335c3718 probe=9 AITAdvanceIdleShips::Execute +aievent seq=51 run=6 pass=1 agent=0x335c3718 probe=15 StrategyClient::BuildTurnCommands [control] +aievent seq=52 run=6 pass=1 agent=0x335c3718 probe=15 StrategyClient::BuildTurnCommands [control] +aiprobe seq=2 idx=0 installed=1 turn=6 total=6 pass0=3 pass1=3 other=0 StrategyAIAgent::RunTaskList [control+pass] +aiprobe seq=2 idx=1 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 StrategyClient::OrderList16 [list 16 emit] +aiprobe seq=2 idx=2 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITRaid::Execute +aiprobe seq=2 idx=3 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITColonize::Execute [+Goal] +aiprobe seq=2 idx=4 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITEscortGateInvade::Execute [+Goal] +aiprobe seq=2 idx=5 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITInvade::Execute [+Goal] +aiprobe seq=2 idx=6 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITNodeBore::Execute +aiprobe seq=2 idx=7 installed=1 turn=0 total=0 pass0=0 pass1=0 other=0 AITBuildPoliceShips::Execute +aiprobe seq=2 idx=8 installed=1 turn=4 total=4 pass0=2 pass1=2 other=0 AITBuildDeepScanShips::Execute +aiprobe seq=2 idx=9 installed=1 turn=6 total=6 pass0=3 pass1=3 other=0 AITAdvanceIdleShips::Execute +aiprobe seq=2 idx=10 installed=1 turn=8 total=8 pass0=4 pass1=4 other=0 StrategyAIAgent::RequestBuildForTask [lists 3,1] +aiprobe seq=2 idx=11 installed=1 turn=2 total=2 pass0=1 pass1=1 other=0 StrategyAIAgent::AssignFleetsAndIssueOrders [lists 14,8,10] +aiprobe seq=2 idx=12 installed=1 turn=2 total=2 pass0=1 pass1=1 other=0 StrategyAIAgent::IssueRouteForFleets [list 14] +aiprobe seq=2 idx=13 installed=1 turn=10 total=10 pass0=5 pass1=5 other=0 StrategyAIAgent::AcquireFleetsForTask +aiprobe seq=2 idx=14 installed=1 turn=10 total=10 pass0=9 pass1=1 other=0 StrategyAIAgent::IsClaimedByAnotherTask [entry only] +aiprobe seq=2 idx=15 installed=1 turn=5 total=5 pass0=0 pass1=4 other=1 StrategyClient::BuildTurnCommands [control]