Here are the data structures with brief descriptions:
| Cs_args | Structure to handle command-line arguments |
| Cs_circle | Structure used to store circle informations |
| Cs_coordinates | Structure used to store the coordinates (positive only) |
| Cs_data | Structure used to store the mlx and map structures |
| Cs_img | Structure used to store an image (buffer that contain image, and size) |
| Cs_input | Structure that handle the input of the player |
| Cs_map | Structure that handle the map informations |
| Cs_map_raoul | Structure to handle the special map needed for rendering |
| Cs_mlx | Structure that handle the mlx instance |
| Cs_player | Structure that handle the player information |
| Cs_pos2 | Structure that handle positions in the map. Same as t_coordinates but with signed integers |
| Cs_posvec | Vector implementation that stores t_pos2 objects |
| Cs_raydata | Structure used to store the raycasting data. It contains all the information needed to cast a ray |
| Cs_settings | Structure that handle the settings of the game |
| Cs_spritedata | Norm-compliant multi-variable holder for math stuff |
| Cs_textures | Structure that handle the textures of the game |
| Cs_vec2 | Structure that handle vector coordinates in 2D space |
| Cu_color | Union used to store color information. It can be used to store color in RGBA format or as a separate RGB and alpha values. Used for big-endian systems |