Entry 260
Fort Ouph and Lia Fail
Documented in Leaving the town - Kite in a field and its dungeon, Carmina Gade, Fort Ouph and Lia Fail - ROOTTOWN03, 04 and 05, Town and event-area assembly.
Filescrates/piney-world/src/town04.rscrates/piney-world/src/town05.rscrates/piney-world/src/town.rscrates/piney-world/src/lib.rscrates/piney-world/src/map/town.rscrates/piney-game/src/session.rscrates/piney-game/src/world.rscrates/piney-audio/tests/render.rs
All five Root Towns are now ported. The two added are Fort Ouph (game.town
3, server Sigma, town04.rs) and Lia Fail (4, Omega, town05.rs). The
owner wanted every town playable, so they came in ahead of the Outbreak and
Quarantine stories. The console's town N reaches all five from any disc.
Both classes are Outbreak's: ROOTTOWN04 and ROOTTOWN05 in OUT gcmn, the
same size as Quarantine's. Infection's executable has earlier builds of
both that no disc reaches, as it does for ROOTTOWN03 (218). Outbreak's
carried names cover only the constructors, DrawBG and DrawMap. The
other methods were found through the vtables:
| class | vtable | Draw | DrawBG | DrawObj | DrawObj2 | DrawFloor |
|---|---|---|---|---|---|---|
ROOTTOWN04 | 0x003842d0 | 0x0043c430 | 0x0043aa40 | 0x0043ae50 | 0x0043af40 | 0x0043b030 |
ROOTTOWN05 | 0x00384300 | 0x0043e8e0 | 0x0043d200 | 0x0043d370 | 0x0043d410 | 0x0043d4b0 |
Fort Ouph
Fort Ouph is Dun Loireag's pattern without the water.
- The constructor (0x00439c50):
town04, ortown04din crisis.- Fog
SetFog(1500, 10000, 0, 30, 0x00c8f0fb), and the background the same pale warm colour. - 16
STATICMODELs and oneSTATICOBJECT. - The sky
CMP_sr4bac1, the sunCMP_sr4sun1, and three cloud clumps. - In crisis,
CMP_sr4dat1_1-3. - Six lights (
LGT_sr4lig1,LGT_sr4omn1-5). town_z's 25CLOUDs andLENSFLARE.
DrawBG. Two scrolls step each frame, by 0.01 and 0.002.- The cloud materials take the first in U. Dun Loireag's take V.
- The sky goes on
bgLayer[0], the sun atDMY_sr4lig1pointon[1], and the crisis clumps on[2]-[4]. - The cloud clumps go on
bgLayer[5](-50). Dun Loireag puts them on effLayer. TheWORLD_MANoffsets +0x494 .. +0x4a8 arebgLayer[0]..[5], confirmed against Infection'sROOTTOWN02::DrawBG.
Draw.DrawBG, thenDrawObj2,DrawObj,DrawFloorandDrawMap.- The lens flare, then the clouds.
- No type-0 rows.
Lia Fail
- The constructor (0x0043c5e0):
town05only; there is no crisis file.- Fog
(1500, 10000, 0, 75, 0x00f0c080), Dun Loireag's colour. - 7
STATICMODELs and no objects. - The sky
CMP_sr5bac1. - 20 lights:
LGT_fdirect01andLGT_omni01-19. - Six
ccEffs of the lens flare, which nothing draws. - 19
ccEffs ofEFF_se1_1ef1atDMY_omnpoint01-19, each with a pattern, a wait and a flicker count fromfieldrand.
DrawBGsteps three scrolls that nothing reads, and draws the sky onbgLayer[0].Draw.DrawBG, the three passes,DrawMap, then the type-0 rows.- The 19 glows on effLayer.
- A waiting glow draws its pattern and steps it, back to 0 at
patNum. - When its wait runs out, it flickers: a random pattern each frame for its count, then new wait and flicker counts.
What else they needed
- Minimaps.
TownMaptakesRT04ICONPOS/RT05ICONPOSand each constructor'sstepw/steph: 0.8 for Fort Ouph, 2.0 for Lia Fail. They draw on the later volumes' own layers. Carmina Gade's map now opens on Infection's disc too. - Music. Every town's bank loads and sounds on Infection's disc
(
every_town_has_music). - Already per town. The start places (
SetCharPosition), the static tables and the NPCs needed nothing. Lia Fail's walking PCs (the Cossack Leader by the gate) come up from the tables as they are.
Checks
The two towns' tests pass:
town04::tests::constructorandfirst_draw: 16 rows, the object, six lights, the crisis clumps, and theDrawBGorder;town05::tests::constructoranda_frame: 7 rows, 20 lights, 19 points, and the glows' first step.
Headless shots through town 3 and town 4 show each town, its Chaos Gate
and its minimap with signs. The whole workspace's tests pass (705).
DrawMapfor towns 2-4 draws four sprites in the later volumes; the port draws Infection's three, as for Carmina Gade. - Neither town has been compared with the game in eemu. - Which events place characters in these towns (Outbreak's and Quarantine's stories) is for those volumes' e2e.