Entry 178
"The towns' remote walks, the side events surveyed, and the operations numbered"
Documented in Event scripts.
Filescrates/piney-world/src/ai.rscrates/piney-world/src/party.rscrates/piney-world/src/event.rscrates/piney-world/src/player.rscrates/piney-world/src/combat/spc.rscrates/piney-world/tests/world.rscrates/piney-game/src/session.rscrates/piney-game/src/session/tests/side_events.rsdocs/engine/field-game.mddocs/engine/events.md
The side events. side_event_survey (ignored, a diagnostic) plays
Infection's side events 50-53, 55 and 58-61 where they happen. For each
event it:
- takes the story start the event opens after, and marks as done the side events it needs;
- marks as run the blocks before the first one that names a place (the board's post, the read, the words);
- puts the session in that field, or in the dungeon room of the event point, found from the points the set-up registers;
- drives it with the story autopilot.
None panicked and none reached a host default.
- The goblin chases (50-53) place their goblin (
entry 5 131and on) and talk. - 55 closes itself.
- 59 and 60 run most of their blocks.
- 58 and 61 stop where the player has to walk to a marker or fight.
A gap the host check could not see. Worklog 0176's check found every
host method implemented. But the town's pc_command answered the remote
walks (pc_walk_pos, _dir, _marker, _char, pc_run_pos) and
pc_command itself with "not done". Two Infection towns walk characters
this way:
- event 21 walks Elk up to Kite in Mac Anu (
pc_walk_dir 10 6144 30); - event 30 walks Kite and BlackRose in Dun Loireag (
pc_walk_pos).
The fields had these through piney-battle's EvParty.
What was missing was only the town side:
- A member in a town is a battle character (
TownParty), so the battle'sManualControl(ai_move, already checked against the game) walks it once its AI has the remote command and the goal. piney-world'sAigainedgPointandgPos, and the bridge to the battle's AI copies them both ways. - Kite in a town is the town's own player, whose
ManualControl(piney_world::ai) did remote commands 0 and 3-7 only. It now does 1 and 2 on a straight goal, transcribing piney-battle'sMoveP2P(0x00582d50): a step toward the goal, turning to face it when it may (CheckAction2) and starting to move when it may (CheckAction1). Once the ground distance less the body's radius is under 50, the body stands, the command is done withremoteFlag1, andgDegtakes the heading the body had.SpcRefcarries the stride (velocity, Kite'sspeed). party::pc_walkstarts a walk:ManualModeAI(1),SetRemoteCmd, andSetGoalPos(v, 0). The goals are asEvParty's: tenths for_pos, the offset for_dirand_char, the marker's dummy with w 1 for_marker.party::pc_commandlists or unlists the characters named.
A detail the first test assertion missed: running widens the body's hit radius (Kite's 45 is 72.5 on the run), so he stops about 107 short of a goal 300 away.
Checks:
kite_walks_to_an_event_goal(piney-world): Kite walks 300 in Mac Anu and stops by that rule, with the command done.event_21_elk_walks_up_in_mac_anu(piney-game): story 21 played by the autopilot to block 4. The walk is done and Elk moves more than 100 before the gate address.
The operations numbered. events.md listed "operation numbering" as
unknown. Every CheckOperate call site in main and the overlays (a1,
the method's number) with the port's reading of each gives the table now
in events.md:
- 0-5 the desktop's icons; 6-8 the top page's commands;
- 9 action, 10 chat, 11 START on the desktop and PERSONAL in The World, 12 options, 13 the map, 14 leaving (Gate Out, the Sprite Ocarina), 15 a gate hack, 16 the Chaos Gate's Warp, 17 a skill;
- the second locks 19-24, 25-27 and 28 (
_sf).
The rest of that unknown line was already answered elsewhere: the
streams (streamTbl), the markers (markerEvTbl), the menus (the field
UI's table), the sound commands (0176), and pc_act's and npc_act's
codes. The line now points to each. npc_act -3 and -5 are the only
codes not ported, and only volume 2's event 114 uses them.
The walks along the town navigator's route (gPoint not -1) are not ported for Kite; no event sets one. Event 30's walks in Dun Loireag were not run in a test, only the same code in Mac Anu. The side events were not played to their ends: the fights, the walks to markers and the rewards need a player the autopilot is not.