Move outstanding work from TODO.md into the issue tracker
TODO.md carried two records in one file: what had been done, with the measurements behind it, and what was left. The second half is what a tracker is for, and keeping it here has already cost something -- AGENTS.md records a round where eleven entries described code that had already changed, and this file admitted to three more. Every open item is now an issue on source.starfort.tech/andrew/libakgl, labelled by kind and blast radius and milestoned by what it can land in: 0.9.x for anything that breaks no ABI, 0.10.0 for new or changed public symbols, 1.0.0 for the design work. Four are epics: the performance plan (#60), coverage (#61), actor rotation (#62), and the false header comments (#63). Verified against the tree before filing rather than transcribed. Three entries were already fixed and were not filed: the akgl_path_relative context leak, the akgl_draw_background test extension, and the SDL enumeration audit -- keyboards, gamepads and mappings are all freed in CLEANUP today. Two were reworded because the code had moved: the fonts item is a missing teardown entry point rather than a missing API, since akgl_text_unloadallfonts exists, and draw_world's tilemap call is already bounded by numlayers, so only the per-layer actor rescan remains. TODO.md keeps the part a tracker has no place for: why a decision went the way it did, what the measurement was, and which arguments turned out to be wrong. TODO.txt is deleted. Four of its eight entries had shipped -- actor-to-actor collision, actor-to-world collision, automatic facing, image layers -- and the four that had not are #74 through #77, with the GPU renderer's research links kept because that is the part that took the time. Every reference that named an item number or a moved section is repointed, in the manual, the headers, the tests and the examples. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-Authored-By: Andrew Kesterson <andrew@aklabs.net>
This commit is contained in:
@@ -536,7 +536,7 @@ state is skipped rather than reported, so every NPC in the town disappears on fr
|
||||
silently, and so does the player as soon as they stop walking.
|
||||
|
||||
Clearing the field leaves the facing bits wherever they were last set, which is what a
|
||||
top-down game wants. `TODO.md` tracks making the default behave; until then this loop belongs
|
||||
top-down game wants. Issue #39 tracks making the default behave; until then this loop belongs
|
||||
in every game with a standing NPC in it.
|
||||
|
||||
The loop covers the player as well as the NPCs, which is what you want — a player who stops
|
||||
@@ -748,7 +748,7 @@ The physics step writes a child's `x` and `y` as an absolute world position, and
|
||||
`akgl_actor_render` adds the parent's position to it a second time. Detaching takes the
|
||||
branch that does not add it, and `CLEANUP` puts the parent back on every path including the
|
||||
failing one — an actor left with a `NULL` parent would be simulated as a free agent on the
|
||||
next step. This is `TODO.md`, "Known and still open"; when the two agree on one reading, this
|
||||
next step. This is issue #37; when the two agree on one reading, this
|
||||
hook becomes `akgl_actor_render` again.
|
||||
|
||||
Run now. A second character walks a fixed distance behind and below the player.
|
||||
@@ -892,7 +892,7 @@ Guard against the empty string:
|
||||
```
|
||||
|
||||
`akgl_text_rendertextat` refuses a zero-width string while `akgl_text_measure` accepts one.
|
||||
The disagreement is recorded in `TODO.md` under "Known and still open"; the check above is
|
||||
The disagreement is issue #37; the check above is
|
||||
the guard until it is settled.
|
||||
|
||||
### Drawing it over the world
|
||||
@@ -1132,8 +1132,8 @@ than the `NULL` chapter 20 passes. `AKGL_ITERATOR_OP_UPDATE` asks for the update
|
||||
registry and `SDL_Quit` destroys it, taking the last reference to every font with no way left
|
||||
to close them.
|
||||
|
||||
`akgl_tilemap_release` is not called. It double-frees tileset textures, which is `TODO.md`
|
||||
"Known and still open" item 2; `SDL_Quit` reclaims them correctly. A game that loads a second
|
||||
`akgl_tilemap_release` is not called. It double-freed tileset textures, which is `TODO.md`
|
||||
"Defects"; `SDL_Quit` reclaims them correctly. A game that loads a second
|
||||
level has to unwind properly, and that is what the fix will make possible.
|
||||
|
||||
The pools are static storage and the process is exiting, so there is nothing else to free.
|
||||
|
||||
Reference in New Issue
Block a user