Bonus Checklist
0) Gate condition
Section titled “0) Gate condition”- mandatory is excellent and fully validated first
- error handling stays clean on bad or twisted usage
- no uncontrolled crash or segfault occurs during bonus demo
1) Build and entry
Section titled “1) Build and entry”-
make bonussucceeds - the bonus executable name is exactly
cub3D_bonus - bonus runtime starts correctly with a valid bonus map
- if runtime checks are performed, they are done in a real X11 session
2) Bonus runtime integration
Section titled “2) Bonus runtime integration”- bonus mode does not break the mandatory baseline behavior
- the frame loop remains stable with bonus systems active
- clean exit still works with
ESCand the window close event
3) Minimap
Section titled “3) Minimap”- the minimap is visible and readable
- the player marker and direction are correct
- nearby geometry and doors are represented coherently
- zoom controls work with wheel up and wheel down
4) Doors
Section titled “4) Doors”- the door interaction key works (
E) - door state transitions are visible during opening and closing
- collision and passability match the current door state
- raycast and render behavior match the visual opening state
5) Mouse and view control
Section titled “5) Mouse and view control”- mouse look rotates the camera correctly
- keyboard rotation and mouse rotation remain coherent together
- no unstable camera jump appears during normal use
6) Sprites
Section titled “6) Sprites”- sprites appear in the world at expected positions
- sprite sorting is visually correct
- wall occlusion works and sprites do not render through walls
- transparent texels are handled correctly
7) Pickups and stats
Section titled “7) Pickups and stats”- pickup detection triggers on contact
- each pickup type updates the correct stat (
HP,Armor,Ammo,Score) - collected pickups are no longer active or rendered
- stat values remain within expected limits
8) HUD
Section titled “8) HUD”- the HUD is rendered and remains readable
- displayed values track runtime stats correctly
- face, weapon, and status updates react to gameplay events
- HUD layering stays correct above the world render
9) Retro render path
Section titled “9) Retro render path”- the retro path initializes correctly when available
- the world is drawn through the active bonus output image
- the optional nearest-neighbor upscale helper remains safe if used
- the world remains playable and visually coherent
- fallback behavior stays safe if retro or minimap buffers fail initialization
10) Levels and progression
Section titled “10) Levels and progression”- level list and current-level logic work
-
F4triggers next-level load when available - map, config, doors, and pickups are reloaded safely
- player vectors and input reset correctly on transition
- end-of-list behavior is safe and does not crash
11) Bonus resource safety
Section titled “11) Bonus resource safety”- no crash occurs on bonus init failure paths
- bonus shutdown frees allocated resources cleanly
- no obvious leak regression appears in bonus runs
Suggested command:
valgrind --leak-check=full --track-fds=yes ./cub3D_bonus <bonus_map.cub>Practical note:
make test_bonusalso performs optional symbol checks withnmwhen available; runtime success for valid maps is stilltimeout-based and therefore sensitive to headless environments.
12) Final bonus demo flow
Section titled “12) Final bonus demo flow”- launch a bonus map
- move and test mouse look
- interact with a door
- collect at least one pickup
- show HUD and minimap updates
- trigger next level with
F4 - exit cleanly