docs(gb): the module header names the corner the cartridge settled

This commit is contained in:
claude 2026-09-22 04:16:48 +00:00
parent abd3e563a8
commit c8de2e42e9
2 changed files with 6 additions and 4 deletions

View file

@ -21,9 +21,10 @@
//! cartridge's *blocks* are 4x4 screen tiles; the player moves in *map tiles* of 2x2 screen tiles, //! cartridge's *blocks* are 4x4 screen tiles; the player moves in *map tiles* of 2x2 screen tiles,
//! which is the unit `wXCoord`, the warp table and everything in `macros/` is in. So one block is //! which is the unit `wXCoord`, the warp table and everything in `macros/` is in. So one block is
//! [`TILES_PER_BLOCK`] map tiles each way, and the screen tile a map tile's walkability is read //! [`TILES_PER_BLOCK`] map tiles each way, and the screen tile a map tile's walkability is read
//! from is the top left of its 2x2 quadrant -- the same corner `_GetTileAndCoordsInFrontOfPlayer` //! from is the **lower** left of its 2x2 quadrant ([`ANCHOR_ROW`]) -- the corner
//! reads at screen `(8, 9)` for the tile the player stands on, which is what //! `_GetTileAndCoordsInFrontOfPlayer` reads at screen `(8, 9)` for the tile the player stands on,
//! [`super::state::map_grid`]'s cross-check against the window predicate proves on a cartridge. //! measured rather than argued and pinned by [`super::state::map_grid`]'s cross-check against the
//! window predicate on a cartridge.
//! //!
//! What it does **not** model is what it did not model before: sprites standing on ground (the //! What it does **not** model is what it did not model before: sprites standing on ground (the
//! sprite list answers that, and [`super::macros::path::frontier`] reads it), warps that fire on //! sprite list answers that, and [`super::macros::path::frontier`] reads it), warps that fire on

View file

@ -12,7 +12,8 @@ use crate::pokemon_red::macros::state::{Facing, Walkable};
/// four different tile ids. /// four different tile ids.
/// ///
/// A block is four screen tiles each way and a map tile is two, so the quadrants are the four /// A block is four screen tiles each way and a map tile is two, so the quadrants are the four
/// corners and the tile a map tile's walkability comes from is the top left of its own quadrant. /// corners and the tile a map tile's walkability comes from is the lower left of its own quadrant
/// ([`ANCHOR_ROW`], which the cartridge settled).
fn blockset() -> Vec<u8> { fn blockset() -> Vec<u8> {
let floor = [FLOOR; 16]; let floor = [FLOOR; 16];
let wall = [WALL; 16]; let wall = [WALL; 16];