Skip to content

Bonus Checklist

  • 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
  • make bonus succeeds
  • 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
  • bonus mode does not break the mandatory baseline behavior
  • the frame loop remains stable with bonus systems active
  • clean exit still works with ESC and the window close event
  • 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
  • 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
  • mouse look rotates the camera correctly
  • keyboard rotation and mouse rotation remain coherent together
  • no unstable camera jump appears during normal use
  • 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
  • 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
  • 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
  • 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
  • level list and current-level logic work
  • F4 triggers 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
  • no crash occurs on bonus init failure paths
  • bonus shutdown frees allocated resources cleanly
  • no obvious leak regression appears in bonus runs

Suggested command:

Terminal window
valgrind --leak-check=full --track-fds=yes ./cub3D_bonus <bonus_map.cub>

Practical note:

  • make test_bonus also performs optional symbol checks with nm when available; runtime success for valid maps is still timeout-based and therefore sensitive to headless environments.
  • 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