Repository navigation
Conversation
…om the Diamond decomp The four image-traced grids had 3/4 of a tile per row (Bulbapedia's DP map images are 12 px rows for 16 px columns), so every vertical leg planned on them was short and the walls sat on the wrong rows. Take them, Sandgem Town and the Oreburgh Mine B2F from pret/pokediamond's collision tables with devtools/maps decomp, and translate each file's named tiles with its console anchors. Sandgem Town and Route 202 now cover their whole matrix cells, so the grid edges are where the game changes its location banner. - Route 201: 64x25 (was 64x20), dx 96 / dz 839 kept; BORDER_SIGN and the Potion lady unchanged; the tree stub by the north-east grass is on rows 7..12, not 5; a School Kid at (57,8) from the events file. - Route 202: 36x32 (was 36x26); CATCH_SPOT (19,27), SAVE_SPOT (30,24); the three trainers named from the events file with their sight ranges, the fourth "trainer" was a wandering Youngster and is off the grid. - Sandgem Town: 34x32 from the cell's top (every row +4); the road from Route 202 narrows on row 6 and the Lab-Center gap on the doors' row is four wide; the entry stop is (29,5). - Jubilife City: 64x64 (was 64x48) at the decomp's frame; the lamps, doors and the four 00.05 people land where the console placed them (dx 130); the Trainers' School doorway and the Route 218 gate warps are 'D'. - Route 203: 61x24; four sand rows under the ledge, the row to Jubilife is 18; the Diamond-only Youngster near the Gate wanders in BDSP (off). - Oreburgh Mine B2F: the decomp's frame (every row -1); the room's second row open, the west ledge, the top corridor's fifth row. Tests: the plan, wall-hit, route-record and short-walk tests re-planned on the new grids; the Jubilife 00.05 legs are checked with route_plan_costs(), which talk_to_npc() plans with; the Mart lady's one-tile-step walks with town costs; "Save spots to Jubilife" (no plan within max_searched, task #15, on this grid as on the old one) is checked last so the other walks run. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
PokemonBDSP_AutoStory_Tests.cpp: every walk-table entry takes #110's costs (the ones the program plans with) on #111's re-derived grids; the westward Route 202-checkpoint walk starts east of the Lab's sign (#111); "Save spot to Jubilife" from {save_spot} (#110) replaces the trailing known-failing "Save spots to Jubilife" check. RouteRecords.cpp: #110's Oreburgh City and Floaroma grids and start tiles, #111's traceable Jubilife and Route 203 records. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
…for gcc -Wdangling-reference gcc 13 refuses a reference bound to bdsp_trainer()'s result when the slug is a temporary; the lookup returns a reference into the trainer table, so the slug's lifetime does not matter, but a named slug keeps -Werror quiet. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
…g-reference Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
… on the game's grids On the decomp grids, "After training to the Pokemon Center" finds no plan with the route costs; walk_route() then falls back to the default costs, so the test plans it with those. The four Mart-lady walks to the Route 201 sign find no plan with the default costs: their one-tile steps need the town costs. They are walked by hand, so the plan is only a check of the grid. Every other entry keeps the costs the program plans it with. Checked with a standalone planner harness over the merged grids: every table entry and every 00.05 Jubilife leg finds a plan with these costs and passes the door and tall-grass checks. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
…p/maps-rederive Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
…d stop is named Moved here from #121 (bdsp/mvp-v3), where console runs r253..r258 found them; this PR owns the decomp grids. - Route 202: trees, not grass, at (15..20, 28..29): the console's catch patch is three rows between tree rows, as the image-traced grid had it (r253: west along row 29 stopped at column 21); a tree at (21, 30), south of the pocket at (21, 29) where the catch's save loads (r254). CATCH_SPOT (19, 27) is the patch's bottom row. - story_after_training_area() keeps only standable tiles (the planner refuses starts on trees); story_catch_save_area() is where the catch's save may stand: the patch and the lawn column east of it to the pocket. - Sandgem: ROUTE_202_ENTRY_STOP (29, 5), where the walk south from Route 202 stops above the Mart; sandgem_entry_stop() uses it. Tests (PokemonBDSP_AutoStory_MapGrid_Tests.cpp): the patch's columns run rows 25..27 between trees, and plans from the save area and the pocket end in the grass; Sandgem's Center door (17, 10), its sign (20, 10) and the open row below them; plans into Sandgem from every tile of the training area. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
dayfine
added a commit
that referenced
this pull request
Nov 1, 2026
#111's decomp grids win: Segment00Lines drops its Route 201 stand-in for Route201::grid() (7 rows shorter at the top) and SandgemTown::grid() is now its whole cell (4 rows taller). The 00.01-00.03 lines, triggers, named tiles and route records move by those offsets; their world tiles are unchanged. Done first on #121 (64afa5f); this PR owns the lines. This PR now builds on #111. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
dayfine
added a commit
that referenced
this pull request
Nov 1, 2026
…08f8c) into bdsp/mvp-v3 #111 now holds the grid fixes and #112 the 00.01-00.03 lines on them, both first made here; their content matches this branch's, so only nav/shared's newer LegPlanner (an opt-in wild-stop weight, 0 by default) and #111's map grid tests arrive. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
dayfine
added a commit
that referenced
this pull request
Nov 1, 2026
…n its own file Test_Route202CatchGrass, Test_SandgemCenterApproach and Test_TrainingToSandgem moved to #111 (PokemonBDSP_AutoStory_MapGrid_Tests, merged in), so Segment00_Tests.cpp is #112's again; Test_IndoorsAnyLight, v3's own, moves to PokemonBDSP_AutoStory_Indoors_Tests.cpp. No program code changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
…les go
Each of the 15 story maps on this branch is now a JSON file in the shared
map schema (Pokemon_MapData.h), PokemonBDSP/Maps/<name>.json in Packages'
Resources, converted once from the C++ tables (cell for cell; '"' grass
is '~', a standing 'N' is an npc object on open ground). The tables are
removed; each X::grid() returns story_grid("X"), which reads the map
through the shared parse_map() and turns it into a TileGrid
(PokemonBDSP_AutoStory_MapGrids): the copy the program installs from
Packages, or else the built-in copy.
The built-in copy, for the unit tests and CI without Packages, is
PokemonBDSP_AutoStory_Maps_TestData*.cpp, generated by
devtools/maps/bdsp_maps.py --json-dir ... --cpp ... (--check to verify),
one raw literal per map, byte for byte the JSON file, split into parts
under the 1000-line file limit. Named tiles stay C++ constants.
Tests: every built-in map loads, and the JSON glyphs map to BDSP tiles
(water and wanderers have none). The route and grid tests now plan on the
JSON-loaded grids.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
dayfine
added a commit
that referenced
this pull request
Nov 1, 2026
…nned-walks Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
dayfine
added a commit
that referenced
this pull request
Nov 1, 2026
The Gym's grid, which this PR added, moves to OreburghGym.json like #111's maps (converted once, cell for cell); its C++ table goes and OreburghGym::grid() returns story_grid("OreburghGym"). bdsp_maps.py embeds it, and the test data is regenerated with it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
dayfine
added a commit
that referenced
this pull request
Nov 1, 2026
…sp/mvp-v3 #111 and #112 now hold the maps as JSON, the built-in test copy, the generator and the JSON-to-grid loader (MapGrids), which were this branch's; the C++ tables are gone. What stays here: the program loads Packages' files at start, checks each against the built-in copy, and installs them for story_grid() (MapFiles); StoryMaps goes back to the X::grid() accessors. The glyph test moved to #111 with the loader. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
…ederive Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
dayfine
added a commit
that referenced
this pull request
Nov 1, 2026
Brings pa_embed_text_files() (cmake/EmbedTextFiles.cmake), which #111 uses to build the BDSP maps' JSON into the tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
…nerated C++ The 15 maps are plain files in PokemonBDSP/Programs/AutoStory/Maps, the same files as Packages' Resources/PokemonBDSP/Maps. CMake builds them into the program for the unit tests with nav/shared's pa_embed_text_files() as bdsp_map_json() (declared in MapGrids.h); story_grid()'s built-in copy reads from it. The generated Maps_TestData*.cpp go. devtools/maps/bdsp_maps.py now only checks (--check --json-dir <Packages' folder>) that Packages has the same files byte for byte; nothing builds the maps any more. The Route 201 comments no longer say the Poke Mart lady wanders: she stands still in Diamond's events file and on the console (the user, 2026-11-01); r113a..r120a missed her by the walk. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
…m to Packages The user's decision (2026-11-01): keep the maps as files in this repository for now. story_grid() reads bdsp_map_json() (the committed JSON files, built in by CMake) and nothing else; there is no installed copy from Packages to prefer. TODO notes at the loader and in bdsp_maps.py say to move them to PokemonAutomation/Packages (Resources/PokemonBDSP/Maps) when ready. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
dayfine
added a commit
that referenced
this pull request
Nov 1, 2026
…) into bdsp/segment00-planned-walks The generated test data goes with #111's swap; the Oreburgh Gym, this PR's map, is committed as Maps/OreburghGym.json beside #111's 15. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
dayfine
added a commit
that referenced
this pull request
Nov 1, 2026
…uilt in by CMake) into bdsp/mvp-v3 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
dayfine
added a commit
that referenced
this pull request
Nov 1, 2026
…s are the only copy The user's decision (2026-11-01): the maps stay files in this repository (#111, #112), built into the program; story_grid() reads only those. The start-up load of Packages' PokemonBDSP/Maps and its "differs from this build's copy" check go, with their test; the lab deploy no longer copies map files. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
… the Center On the decomp grids, with the catch patch three rows, the one walk from the training area to below the Center's sign finds no plan (tile grid plans: "After training to the Pokemon Center: no robust route found"), and on r252 its default-costs plan went round the houses south of the Mart and ended two tiles short. Two walks instead: down the road with the default costs to where it stops above the Mart (ROUTE_202_ENTRY_STOP), then the Sandgem Center events' town plan, which ends walking north into the Center's sign. Made first on #121 (cd3d0b3); it goes with the grids. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
…h limit Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
dayfine
added a commit
that referenced
this pull request
Nov 1, 2026
…dsp/segment00-planned-walks Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
dayfine
added a commit
that referenced
this pull request
Nov 1, 2026
…approach) into bdsp/mvp-v3 #111 now has the two walks into Sandgem; this branch's version of the heal (the same two walks, then the taps west below the door) is kept. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
Owner
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Base:
bdsp/event-sandgem-centeron the fork; the diff shows only this change.The Route 201, Route 202, Jubilife City and Route 203 grids were traced from Bulbapedia's DP map images, whose rows are 3/4 of a tile, so every vertical leg planned on them was 25-35% short and the walls sat on the wrong rows. This takes those four, Sandgem Town and the Oreburgh Mine B2F from the Diamond decomp (
devtools/maps decomp --repo pret/pokediamond; Platinum differs only at Jubilife's Global Terminal and a Platinum-only item ball on Route 203), places each file's named tiles with its console anchors (the Route 202 catch and save spots, the Jubilife doors and the four 00.05 people, Route 203's gate exit and its straight row to Jubilife, now row 18, Roark), and makes Sandgem Town and Route 202 cover their whole matrix cells so the grid edges are where the location banner changes. The plan, wall-hit, route-record and short-walk tests are re-planned on the new grids: the Route 202 walks south of the catch spot grew three rows, Sandgem's entry stop is(29,5), the Jubilife 00.05 legs are checked withroute_plan_costs()(whattalk_to_npc()plans with) and the Mart lady's one-tile-step walks with town costs. Tested with the BDSP native test runner linked from this branch's objects (16 passed, 2 failed: the Tesseract one, and "Save spots to Jubilife", which is themax_searchedcap of task #15 and used to surface one walk earlier as "After training to the Pokemon Center"; it is now checked last so the other plans run) and with an offline harness over Data + Navigation that plans every test walk and prints the legs (output below). Nothing has run on the console yet: every checkpoint on these maps' Status lines must be re-run (00.02-00.05, the Sandgem Center and Mart lady checkpoints, 01.01-01.03, 01.06, 01.07), and the Status lines name what to measure first (Jubilife's Mart clown tile and the walk from the steps' top to the Center, Route 203's fourth sand row under the ledge, Sandgem's entry stop, the Mine's way up from column 14).Harness output: every test walk planned on the new grids (program's max_searched)
🤖 Generated with Claude Code
https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E