Project Tree
Repository Layout (current)
Section titled “Repository Layout (current)”cub3D/├── include/│ ├── cub3d.h│ ├── cub3d_bonus.h│ ├── defines.h│ ├── defines_bonus.h│ ├── structs.h│ └── structs_bonus.h│├── srcs/ # Mandatory/core runtime│ ├── core/│ │ ├── main.c│ │ ├── init_app.c│ │ ├── init_mlx.c│ │ ├── window_resize.c│ │ └── shutdown.c│ ├── parsing/│ │ ├── parse_file.c│ │ ├── parse_read.c│ │ ├── parse_split.c│ │ ├── parse_config.c│ │ ├── parse_textures.c│ │ ├── parse_colors.c│ │ ├── parse_map.c│ │ └── parse_utils.c│ ├── validation/│ │ ├── validate_map.c│ │ ├── validate_map_player.c│ │ ├── validate_map_chars.c│ │ ├── validate_map_closed.c│ │ ├── validate_closed_setup.c│ │ └── validate_bfs.c│ ├── input/│ │ ├── input_keys.c│ │ ├── input_mouse.c│ │ ├── input_update.c│ │ ├── move_player.c│ │ ├── move_collision.c│ │ └── rotation.c│ ├── render/│ │ ├── render_frame.c│ │ ├── raycast.c│ │ ├── raycast_draw.c│ │ └── draw_vignette.c│ └── tools/│ ├── error.c│ ├── memory.c│ └── image.c│├── srcs_bonus/ # Bonus systems│ ├── retro/ # Retro framebuffer, minimap, walls, shading│ ├── doors/ # Door state machine + queries + interaction│ ├── pickups/ # Pickup discovery/update/effects│ ├── sprites/ # Sprite storage/sort/projection/render│ ├── hud/ # HUD panels, glyphs, face/weapon/status│ ├── levels/ # Level list, current path, reload/transfer│ └── noop/ # Mandatory-safe fallbacks for bonus APIs│├── maps/│ ├── mandatory/│ └── bonus/│├── tests/│ ├── parser/│ ├── validation/│ ├── render/│ ├── bonus/│ ├── init/│ ├── run.sh│ └── run_bonus.sh│├── textures/│ ├── mandatory/│ └── bonus/│├── tools/│├── libft/├── minilibx/├── Makefile└── README.mdStructure Notes
Section titled “Structure Notes”srcs/contains mandatory runtime flow and shared engine logic.srcs_bonus/contains all optional systems isolated by domain.srcs_bonus/noop/allows mandatory build to compile without real bonus logic.- Parsing, validation, input, render, and shutdown are explicitly separated for defendable architecture.
- Level progression and retro rendering are bonus extensions integrated through
draw_frame()and input hooks. obj/andobj_bonus/are generated build directories, not source directories.