Entry 186
"The loading display between areas: the town's and the area's cards"
Documented in Leaving the town - Kite in a field and its dungeon.
Filescrates/piney-game/src/loaddisp.rscrates/piney-game/src/session.rsdocs/engine/field-walk.mdGAPS.md
How it was found. After the scene sounds (0184), which neither the port nor any page knew, an audit listed every Infection function that no crate names and no page mentions (by name or address), with the named callers of each:
- 1,716 functions in all.
- Most are the SDK and destructors, or the later volumes' bosses
(Kyvia,
ccBoss02-08). - The Ryu Books' viewer (
ccThBook) needs items no script of any volume gives; it went to GAPS' "After Infection". - One was a gap every player sees:
ccLoadDisp, the loading display.
What the game shows. ccSetupGameCtrl loads a scene's files through
ccLoadResourceFL and ccFileListLoad. The latter calls ccLoadDispInit
when the new file list has a file the old lacked (loadCheck compares
sceneFileList with dbgList), and no display is up.
By game.area and areaPrev:
- A town: the town's card, "Aqua Capital" and "Mac Anu".
- A field from a town: the area's card, its three keywords ("Bursting Passed Over Aqua Field"), unless a stream plays (the gate hack's 107) or it is field 8.
- A type 4 field's first dungeon from a town: the area's card too.
- A field from its dungeon, or any dungeon: the THE WORLD animation alone.
Both cards carry xdl_tit's blue banner in two cells, the texts in
kanji type 2, and the server's symbol with "Server" at the top right in
the server's colour.
The task (ccLoadDispTh, priority 17) draws until ccSnd.gameStart:
- the card, fading in by 8;
xdl_load'sANM_xdl_lod1, the THE WORLD logo at the bottom right, under the animation's own camera.
Then, with a card, 30 frames at full and 17 fading out, without the animation, over the scene's own fade in.
The code read: ccLoadDispInit, setupInit, townSetup, fieldSetup,
serverSetup, allDisp, townDisp, fieldDisp, serverDisp,
ccLoadDispTh, loadCheck (field-walk.md, "The loading display").
The port. piney-game's loaddisp:
kindisccLoadDispInit's choice.LoadDisp::newholds the set-ups. The texts come from main'stownNameTbl,serverNameTbl, "Server" and the separator, and the keywords fromAreaTables.frameis the task's timeline;drawdraws over the frame, with the upload ids after the frame's.- The session puts it up in
world_stage, so every change of scene gets it, and so does the log-in from the top page (gameStartis watched in the events). - The order matters:
ccKanji::Dispsends at once and the banner'sSendPacketSafter, so the port's prepending layers draw the banner under the texts. A first shot had the name hidden under it.
The port's loads take no time, so a card shows a few frames of fading in over black, the THE WORLD logo, then its 47 frames at the new scene's start. Shots:
--mode field:14: "Bursting Passed Over Aqua Field", "Δ Server", the logo while loading.--mode world: "Aqua Capital / Mac Anu".
Checks: which_card (the init's cases) and its_frames (the fade in, 30
held, 17 falling to 0; the plain display ending at the start).
How long the game's loads take, so how much of the fade in and the logo a player sees: not measured. The request's +0x18, which also stops the display, was not traced to its setter.