1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
|
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* cub3d_defines.h :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/15 15:40:25 by rbousset #+# #+# */
/* Updated: 2020/02/15 15:40:27 by rbousset ### ########lyon.fr */
/* */
/* ************************************************************************** */
# ifndef CUB3D_DEFINES_H
# define CUB3D_DEFINES_H
/*
** ====== RETURN VALUES ======
*/
/*
** ret vals:
** 1: no argv[1]
** 2: failed structs init
** 3: failed mlx init
** 4: map error
** 5: no map
** 6: read error
*/
enum
{
FT_RET_FINE,
FT_RET_BAD_ARGV,
FT_RET_ALLOC_ERR,
FT_RET_FAILED_STRUCTS,
FT_RET_FAILED_MLX,
FT_RET_MAP_ERR,
FT_RET_NO_MAP,
FT_RET_READ_ERR,
FT_RET_BMP_ERR,
FT_ERR_MISSING
} retvals;
/*
** ====== OS ======
*/
/*
** 1: Darwin
** 2: Linux
*/
# ifndef FT_OS
# define FT_OS 1
# endif
/*
** ====== KEYS ======
*/
# if FT_OS == 1
# define FT_W_KEY 13
# define FT_A_KEY 0
# define FT_S_KEY 1
# define FT_D_KEY 2
# define FT_L_ARR_KEY 123
# define FT_R_ARR_KEY 124
# define FT_F1_KEY 122
# define FT_TAB_KEY 48
# define FT_ESC_KEY 53
/* TODO: macOS return key */
# else
# define FT_W_KEY 119
# define FT_A_KEY 97
# define FT_S_KEY 115
# define FT_D_KEY 100
# define FT_L_ARR_KEY 65361
# define FT_R_ARR_KEY 65363
# define FT_TAB_KEY 65289
# define FT_F1_KEY 65470
# define FT_ESC_KEY 65307
# define FT_RET_KEY 65293
# endif
/*
** ====== NEEDED PATHS ======
*/
# define FT_SFX_DEATH_PATH "./media/sound/sfx/death_screen.wav"
# define FT_SFX_FS_ONE_PATH "./media/sound/sfx/footstep_one.wav"
# define FT_SFX_FS_TWO_PATH "./media/sound/sfx/footstep_two.wav"
# define FT_SFX_N_LVL_PATH "./media/sound/sfx/next_lvl.wav"
# define FT_SFX_SCR_ONE_PATH "./media/sound/sfx/scream_one.wav"
# define FT_SFX_SCR_TWO_PATH "./media/sound/sfx/scream_two.wav"
# define FT_SFX_TRAP_PATH "./media/sound/sfx/trap.wav"
# define FT_SFX_W_ONE_LOAD_PATH "./media/sound/sfx/weapon_two_load.wav"
# define FT_SFX_W_ONE_FIRE_PATH "./media/sound/sfx/weapon_two_load.wav"
# define FT_SFX_W_TWO_LOAD_PATH "./media/sound/sfx/weapon_two_load.wav"
# define FT_SFX_W_TWO_FIRE_PATH "./media/sound/sfx/weapon_two_load.wav"
# define FT_DEATH_SCREEN_PATH "./media/img/screens/death_screen.xpm"
# define FT_HUD_BACK_PATH "./media/img/tex/plate_small.xpm"
# define FT_WEAPON_ONE_SPR_PATH "./media/img/sprites/sword_s.xpm"
# define FT_WEAPON_TWO_SPR_PATH "./media/img/sprites/sword_s.xpm"
# define FT_WEAPON_ONE_PATH "./media/img/weapons/sword_w.xpm"
# define FT_WEAPON_ONE_FIRE_PATH "./media/img/weapons/sword_w_fire.xpm"
# define FT_WEAPON_TWO_PATH "./media/img/weapons/sword_w.xpm"
# define FT_WEAPON_TWO_FIRE_PATH "./media/img/weapons/sword_w_fire.xpm"
# define FT_HEAL_PACK_PATH "./media/img/sprites/first_aid.xpm"
/*
** ====== SOUNDS ======
*/
# if FT_OS == 1
# define FT_SND_CMD "/usr/bin/afplay --volume 0.2 %s"
# else
# define FT_SND_CMD "/usr/bin/aplay -f cd -t wav -q %s"
# endif
/*
** ====== MOVE SPEED ======
*/
# define FT_MOVE_SPEED 0.28
# define FT_STRAFE_SPEED 0.28
# define FT_ROT_SPEED 0.28
/*
** ====== COLLISION ======
*/
# define FT_COLL_MULT 0.3
/*
** ====== SCREEN ======
*/
# ifndef FT_SCR_SIZE
# define FT_SCR_SIZE "1920x1080"
# endif
/*
** ====== CHARSET ======
*/
# define FT_CHRST_VALID_PARSE "RNSEWFCLMT"
# define FT_CHRST_MAP_ENTRY "0123456789NSEWLT!@+ "
# define FT_CHRST_SPRITES "23456789"
# define FT_CHRST_SPAWN "NSEW"
# define FT_CHRST_MAP_NON_WALL "023456789NESWLT!@+"
# define FT_CHRST_COLLISION "123456789 "
# define FT_CHRST_DETECT "1L"
# define FT_CHRST_ITEM "!@+"
/*
** ====== BMP ======
*/
# ifndef FT_BMP_SAVE_DIR
# define FT_BMP_SAVE_DIR "./"
# endif
/*
** ====== MAP ERROR MSG ======
*/
# define FT_ERR_ALLOCATE "Allocation error"
# define FT_ERR_READ "read error"
# define FT_ERR_ARGS "too many or to few arguments"
# define FT_ERR_ARGV "Bad arguments"
# define FT_ERR_RES_SMALL "resolution is too small, 50x50 minimum pls"
# define FT_ERR_RES_ALPHA "resolution should be digits only"
# define FT_ERR_SH_ALPHA "shadow amount should be digits only"
# define FT_ERR_SH_RANGE "shadow should be set between 0 - 20"
# define FT_ERR_NOT_A_CUB "given map is not a .cub"
# define FT_ERR_NOT_A_XPM "given texture is not a .xpm"
# define FT_ERR_NOT_A_WAV "given sound file is not a .wav"
# define FT_ERR_COLOR_ALPHA "colors should be digits only"
# define FT_ERR_COLOR_MAX "colors should be maximum 255"
# define FT_ERR_COLOR_ARGS "colors should be three numbers with commas"
# define FT_ERR_SPRITE_DUMB "bad sprite order"
# define FT_ERR_UNFINISHED "no map"
# define FT_ERR_MAP_LEN "map length inconsistency"
# define FT_ERR_ILL_ENTRY "illegal map entry"
# define FT_ERR_ALR_SET "duplicate entry"
# define FT_ERR_ILL_MAP "map contains illegal char"
# define FT_ERR_MULT_SPAWN "multiple spawn points"
# define FT_ERR_MULT_NLVL "multiple spawn new level access points"
# define FT_ERR_NO_MAP "No map"
# define FT_ERR_MAP_WALLS "bad space or map is not surrounded by walls"
# define FT_ERR_MAP_EMPL "empty line in map"
# define FT_ERR_MAP_L_L "last line is invalid"
# define FT_ERR_RD_NO "could not find north side texture file"
# define FT_ERR_RD_SO "could not find south side texture file"
# define FT_ERR_RD_EA "could not find east side texture file"
# define FT_ERR_RD_WE "could not find west side texture file"
# define FT_ERR_RD_SP "could not find sprite texture file"
# define FT_ERR_RD_SB "could not find skybox file"
# define FT_ERR_RD_NL_TEX "could not find next level texture file"
# define FT_ERR_RD_NL_MAP "could not find next level map file"
# define FT_ERR_RD_MUSIC "could not find music file"
# define FT_ERR_RD_TRAP "could not find trap texture file"
# define FT_ERR_WR_BMP "could not export to bmp"
# define FT_ERR_TOO_MUCH_HEALS "too much heal packs, limit is 64"
# define FT_ERR_TOO_MUCH_TRAPS "too much traps, limit is 512"
# define FT_ERR_TOO_MUCH_W_ONE "too much weapon one, limit is 1"
# define FT_ERR_TOO_MUCH_W_TWO "too much weapon two, limit is 1"
/*
** ====== MISSING ERROR MSG ======
*/
# define FT_ERR_MISS_ELEMENT "Missing element:"
# define FT_ERR_MISS_NORTH "north side texture"
# define FT_ERR_MISS_SOUTH "south side texture"
# define FT_ERR_MISS_EAST "east side texture"
# define FT_ERR_MISS_WEST "west side texture"
# define FT_ERR_MISS_SPRITE "sprite texture"
# define FT_ERR_MISS_NLVL_PATH "next level path"
# define FT_ERR_MISS_NLVL "next level texture"
# define FT_ERR_MISS_RESOLUTION "resolution"
# define FT_ERR_MISS_FLOOR_C "floor color"
# define FT_ERR_MISS_CEIL_C "ceiling color"
# define FT_ERR_MISS_PLAYER_SPAWN "player spawn"
# define FT_ERR_MISS_TRAP "traps"
# define FT_ERR_MISS_SFX_DEATH "sound effect death"
# define FT_ERR_MISS_SFX_N_LVL "sound effect new level"
# define FT_ERR_MISS_SFX_SCR_ONE "sound effect scream one"
# define FT_ERR_MISS_SFX_SCR_TWO "sound effect scream two"
# define FT_ERR_MISS_SFX_TRAP "sound effect trap"
# define FT_ERR_MISS_SFX_W_ONE_LOAD "sound effect weapon one load"
# define FT_ERR_MISS_SFX_W_ONE_FIRE "sound effect weapon one fire"
# define FT_ERR_MISS_SFX_W_TWO_LOAD "sound effect weapon two load"
# define FT_ERR_MISS_SFX_W_TWO_FIRE "sound effect weapon two fire"
# define FT_ERR_MISS_DEATH_SCREEN "death screen image"
# define FT_ERR_MISS_HUD_BACK "HUD background image"
# define FT_ERR_MISS_HEAL_PACK "heal pack image"
# define FT_ERR_MISS_W_ONE "weapon one image"
# define FT_ERR_MISS_W_ONE_FIRE "weapon one shooting image"
# define FT_ERR_MISS_W_TWO "weapon two image"
# define FT_ERR_MISS_W_TWO_FIRE "weapon two shooting image"
# define FT_ERR_MISS_W_ONE_SPR "weapon one image"
# define FT_ERR_MISS_W_TWO_SPR "weapon one image"
/*
** ====== OTHER ======
*/
# define FT_PARSE_END_RET 25
# define FT_TRAP_DAMAGE_AMOUNT 20
# define FT_HEAL_PACK_AMOUNT 10
# endif
|