16 lines
1.0 KiB
Markdown
16 lines
1.0 KiB
Markdown
|
|
# TODO
|
||
|
|
|
||
|
|
1. **Make character-to-sprite state bindings release their references symmetrically.**
|
||
|
|
`akgl_character_sprite_add()` increments the sprite refcount for every state-map
|
||
|
|
binding, but no corresponding removal API exists. Replacing a state binding
|
||
|
|
also leaves the previous sprite's refcount incremented. When
|
||
|
|
`akgl_heap_release_character()` drops the character refcount to zero, it clears
|
||
|
|
the character registry entry and zeroes the structure without enumerating
|
||
|
|
`state_sprites`, decrementing the bound sprites, or destroying the SDL property
|
||
|
|
map. Implement binding removal/replacement so each removed binding releases
|
||
|
|
exactly one sprite reference. On final character release, enumerate every
|
||
|
|
remaining binding (the existing `akgl_character_state_sprites_iterate()` release
|
||
|
|
path may be reusable), release each reference, destroy `state_sprites`, and then
|
||
|
|
clear the character. Add tests for removal, replacement, duplicate sprite
|
||
|
|
bindings across multiple states, and final character release.
|