Entry 90
Event 11 in Mac Anu: BlackRose's stream, the Chaos Gate's talk, and her call into the party
Documented in The story maps - EVENTAREA01 (area 13), EVENTAREA02 (area 15), EVENTAREA03 (area 43), EVENTAREA07 (area 16), EVENTAREAB0 (the boss arenas) and EVENTAREAB8 (Kyvia's disc).
Filescrates/piney-game/src/field_host.rscrates/piney-game/src/world.rscrates/piney-game/src/session.rscrates/piney-game/src/session/event11.rscrates/piney-world/src/lib.rscrates/piney-world/src/event.rsdocs/engine/field-game.md
The user reported that adding BlackRose to the party does not work. In
story:11 Kite ended alone at the Chaos Gate (86). Three things were
missing on the way, none of them in the interpreter.
What was missing
- Stream 7 never played. The town host had no
stream. The stream plays in the town's set-up pass at phase 2, before the town's tasks start. - Speaking to the Chaos Gate opened its menu. Block 6 of event 11
(
talked_to type=13 code=16) never ran, so BlackRose never came over with her member address.- The game's rule.
ccEvent::CheckOperate(9)gives the talk to the event when a target's type is a bit of the character's base type flags and the codes match. - The port's rule. It had mapped event types 0-6 to world kinds (PC, NPC, enemy), so the gate, a type-13 gimmick, was never a target.
- The game's rule.
- The Member Address list was empty. The town never gave the menus
the registry (
ccSpcManager.registry[registryNum]) thatPartyInMenureads for its greeting and its room check.
The fix
- The town host.
stream:ccEventStream(num, 1)through the stream player, with subtitles and music,ccGamestatus 5. It steps a frame at a time while the call waits (Wait::Stream), and its frames show instead of the town's, whose tasks do not run meanwhile. The session gives the renderer the stream's archive.target_alive(ccCheckTarget).game_over:compulsionGameOver, which only the Data Drain menu sets, so always false in a town.clear_gate_hack:ccClearGtHack, logged; nothing in the port setsgtHackFlagyet.
- The talk test. The town world keeps the event's targets as (type, code) and tests them as the interpreter does, against the target's base type flags.
- The Member Address list.
ui_worldfills fieldui'sspcfrom the registry.
Checked
-
A playthrough test.
event_11_blackrose_joins_in_mac_anuplaysstory:11with a scripted pad, as a player would:- windows closed;
- Kite walks to the Chaos Gate and speaks to it;
- BlackRose's block runs and gives her member address;
- then triangle, Party, Add, BlackRose, OK.
She joins the party, and no event instruction falls to a host default (
take_unported()is empty). -
An existing test updated.
event_2_plays_to_the_scene_changenow expectsclear_gate_hackat frame 12, which the game calls fromccStartThEvent. -
The rest. The workspace's tests, clippy, fmt, the docs check, test_world_rs and test_field_rt pass.
-
A shot. Stream 7 in Mac Anu: BlackRose facing Kite.
- Party members stand still in town.
ccAI::ActInTownis ported but runs only in the fields' combat, so BlackRose does not follow Kite around Mac Anu. - The warp is now played through.event_11_gates_to_area_15_with_blackrosegoes back to the gate, picks area 15 in the Word List, and chooses Warp. Kite arrives on the holy ground with BlackRose in the party and placed, and her first line there opens.event_11_shots(ignored) saves the pictures. Not yet checked: event 11's block 17 as the gate sees the words, and the rest of event 11 in area 15. - Not ported. The invite of an unregistered member at the Chaos Gate (inviteSpc's warp-in withStartPosandinviteOffsetTbl). - The talk rule is not checked in eemu.ccEvent::CheckOperate(9)'s target test is the interpreter's (checked), and the town now reuses it. - The gate-address window in town is fixed. It was empty ([[82]]). The town host now takes a gate address's and a desktop item's lines from the desktop's composer (story::Announcements, checked in [[82]]) and opensDispInfowith them (FieldUi::announce_lines). Event 11 shows "Δ Hidden Forbidden Holy Ground / is added to the Word List." (event_11_shots' 2b).