Known Issues & TODO
This page aggregates outstanding issues from TODO.md, ENUMS.md, and DOXYGEN_DOCUMENTATION_PLAN.md.
Open Bugs (from TODO.md)
| # | Issue | Description |
|---|---|---|
| 1 | Accelerometer visibility | The accelerometer setting button should only appear on hardware that actually has an accelerometer. Currently visible on all platforms. |
| 2 | Sound system verification | Audio playback needs end-to-end testing across all platforms (Linux, Windows, Web, Android). Particularly the 93 WAV files and volume/balance panning. |
| 3 | Sprite transparency | Some sprites have transparency handling issues ā certain pixels appear with incorrect blending artefacts. |
| 4 | Fullscreen mode | Fullscreen mode currently malfunctions (incorrect resolution or display state). Windowed mode is unaffected. |
| 5 | Web sound delay | Audio has a noticeable startup delay in the Emscripten/WebAssembly build on first sound playback. Likely related to browser autoplay policy and SDL3_mixer initialization. |
| 6 | Cheat name conflict | quick and quicklollypop cheat codes conflict because one is a prefix of the other. The fix is to rename quicklollypop. |
Magic Number Refactoring (from ENUMS.md)
Multiple locations in the codebase still use raw integer literal magic numbers instead of the typed enums defined in include/def/ and include/decor/.
The ENUMS.md file catalogues every location where this occurs. Fixing them is an ongoing refactoring effort. The priority is:
Decor.cppā the largest file with the most magic numbersGame1.cppā button and phase comparisons- Smaller files
Impact
Magic number usages do not cause bugs on their own, but they make the code harder to maintain and
refactor. Replacing them with enum values enables type checking by the compiler.
Doxygen Documentation (from DOXYGEN_DOCUMENTATION_PLAN.md)
Complete Doxygen documentation is planned for all 50 source files. As of the last update, it has not yet been written.
Priority Groups
| Priority | Files | Reason |
|---|---|---|
| 1ā4 (highest) | Decor.cpp/hpp, Tables.cpp/hpp, Game1.cpp/hpp | Complex algorithms, animation table layout, phase state machine |
| 5ā12 | Pixmap, Worlds, GameData, InputPad, Sound, decor/* headers | Public API surfaces used by multiple callers |
| 13ā21 | MyResource, Misc, Text, Slider, Helper, TinyRect, TinyPoint, IPixmap, ISound, IGame1, ConfigDef, Config | Utility classes and interfaces |
Documentation Conventions
All files must follow the conventions in DOXYGEN_DOCUMENTATION_PLAN.md and CLAUDE.md:
- Every file:
@file+@brief+@details - Every class:
@class,@brief,@details,@note,@warning,@see - Every method:
@brief,@param[in/out](directional),@return/@retval,@throws,@pre,@post - Member variables: trailing
///< @briefinline comment .cppfiles: document only what is not already in the.hpp
Performance Issues
Four known performance issues in Decor.cpp. None are blocking. See Performance for the full analysis and proposed fixes.