Entry 228
The cines' characters cast the original's shadows
11mrender
Filescrates/rugrats/src/media/cine.rscrates/rugrats/src/world/game/shadow.rscrates/rugrats/tests/hle.rsdocs/engine/gameplay.md
The in-engine cines' characters now cast shadows as the original's do. All 3473 shadow quads of level 1's start cine match the original's.
In the original. play_cine (0x8007424c) draws through the same room render (0x80030b80), and the characters through their own draw, so the shadow (0x8003414c) is drawn there too. Only the opening cine's init (0x8008f078) turns shadows off (0x800c3fc4), until its end (0x8008f308). Booted with cinematics, level 1's cine 7 makes 3473 shadow calls with the switch on.
The floor in a cine. It is the one under where the stream puts the character, not the one under its placement. Characters 15, 16 and 1776 are placed upstairs (floors -1279, -1490, -876), but the original draws their shadows at the hall's 1024, where cine 7 moves them. So the cine's mover refreshes +0x13c. No object top was met in this cine.
The port.
shadow::quadandQuad::trianglesare free ofGamenow, andworld::game::shadowis public.media::cine::Shadowsholds the GTE tables, the database's COL and TEXPOS 261.Set::shadow_quadsposes each character from the frame's keys with the port's integer posing (pose::posed). It finds the floor under the posed place and builds the quad.Set::shadowsdraws them, andCine::tickadds them to the frame, but not in the opening (cine 0).
Oracle. level_1_cine_shadows_as_the_original boots level 1 with its cinematics and reads every quad at 0x80034518, keyed by the cine (0x8007424c's argument), its frame (0x800c4c34) and the object's id (+0x38). It compares them with the port's from the same stream frame: 3473 the same, none off.
- Which call in the cine's mover refreshes +0x13c (the floor query or the settling).
- Whether any cine puts a character over an object, whose top 0x8006c118 would take (the port's cines have no object solids).
- Which objects lie on a room's second list with +0x00 0x4000, against the port's "no character".
- Who reads floor flag 8.