Rev 5237 | Rev 5242 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5235 | alpine | 1 | #include "rsgamedraw.h" |
2 | #include "rsgametext.h" |
||
3 | #include "rsgamemenu.h" |
||
4 | |||
5237 | alpine | 5 | #include "rsgentex.h" |
6 | #include "rs/rsplatform.h" |
||
7 | |||
5235 | alpine | 8 | #include "rskos.h" |
9 | |||
10 | #include "rsnoise.h" |
||
11 | |||
12 | #include "strings.h" |
||
13 | |||
14 | |||
15 | void game_draw() { |
||
16 | |||
17 | int w = GAME_WIDTH; |
||
18 | int h = GAME_HEIGHT; |
||
19 | |||
5239 | alpine | 20 | int continue_need_redraw = 0; |
21 | |||
5237 | alpine | 22 | if (game.need_redraw) { |
5239 | alpine | 23 | // if (1) { |
5235 | alpine | 24 | |
5237 | alpine | 25 | |
5235 | alpine | 26 | |
5237 | alpine | 27 | if ( (game.status == STATUS_MENU) || (game.status == STATUS_LOADING) ) { |
28 | |||
29 | texture_draw(&game.framebuffer, &game.tex_bg, 0, 0, DRAW_MODE_REPLACE); |
||
30 | |||
31 | if (game.menu_index == MENU_MAIN) { |
||
32 | |||
33 | if (game.status == STATUS_LOADING) { |
||
34 | game_textout( GAME_WIDTH/2 - 192, 240, 0, " L0ADING``` " ); |
||
35 | } |
||
36 | else { |
||
5235 | alpine | 37 | |
5237 | alpine | 38 | texture_draw( &game.framebuffer, &game.tex_logo, 0, 50, DRAW_MODE_ALPHA ); |
5235 | alpine | 39 | |
5237 | alpine | 40 | if (game.time) { |
41 | |||
42 | game_textout( GAME_WIDTH/2 - 192, 230, 3, " LEVEL PA55ED " ); |
||
43 | |||
44 | char s[] = " TIME: 000 "; |
||
45 | int time_sec = game.time / 25; |
||
46 | s[11] = '0' + (( time_sec / 100 ) % 10); |
||
47 | s[12] = '0' + (( time_sec / 10 ) % 10); |
||
48 | s[13] = '0' + (( time_sec / 1 ) % 10); |
||
49 | game_textout( GAME_WIDTH/2 - 192, 260, 3, s ); |
||
50 | }; |
||
5235 | alpine | 51 | |
5237 | alpine | 52 | game_textout( GAME_WIDTH/2 - 192, 300, 0, " CLICK T0 5TART " ); |
5235 | alpine | 53 | |
54 | |||
55 | }; |
||
56 | |||
5237 | alpine | 57 | game_textout( 2, GAME_HEIGHT-10, 2, "DEVEL0PED BY R0MAN 5HUVAL0V"); |
58 | }; |
||
59 | |||
60 | } |
||
61 | else { |
||
5235 | alpine | 62 | |
5237 | alpine | 63 | texture_draw(&game.framebuffer, &game.tex_bg_gameplay, 0, 0, DRAW_MODE_REPLACE); |
5235 | alpine | 64 | |
5239 | alpine | 65 | int i, j, y_shift; |
5237 | alpine | 66 | for (i = 0; i < FIELD_HEIGHT; i++) { |
67 | for (j = 0; j < FIELD_WIDTH; j++) { |
||
68 | if ( IS_BIT_SET( game.field[i*FIELD_WIDTH + j], CRYSTAL_VISIBLE_BIT )) { |
||
5239 | alpine | 69 | y_shift = 0; |
70 | if ( IS_BIT_SET( game.field[i*FIELD_WIDTH + j], CRYSTAL_MOVING_BIT ) ) { |
||
71 | y_shift = -CRYSTAL_SIZE + CRYSTAL_SIZE*(game.process_timer+1)/(ANIMATION_PROCESS_TIMER_LIMIT+1); |
||
72 | continue_need_redraw = 1; |
||
5235 | alpine | 73 | }; |
5239 | alpine | 74 | texture_draw( &game.framebuffer, &game.tex_crystals[ game.field[i*FIELD_WIDTH + j] & CRYSTAL_INDEX_MASK ], FIELD_X0+ j*CRYSTAL_SIZE, y_shift + FIELD_Y0+ i*CRYSTAL_SIZE, DRAW_MODE_ALPHA ); |
5235 | alpine | 75 | }; |
76 | }; |
||
77 | }; |
||
5237 | alpine | 78 | |
5239 | alpine | 79 | if (game.selected) { |
80 | texture_draw( &game.framebuffer, &game.tex_cursor, FIELD_X0+ game.selected_x*CRYSTAL_SIZE, FIELD_Y0+ game.selected_y*CRYSTAL_SIZE, DRAW_MODE_ALPHA ); |
||
81 | }; |
||
82 | |||
83 | |||
5237 | alpine | 84 | for (i = 0; i < game.explosions_count; i++) { |
85 | texture_draw( &game.framebuffer, &(game.tex_explosion[ (game.explosions[i]>>16) & 0xFF ]), |
||
86 | FIELD_X0 + CRYSTAL_SIZE*( game.explosions[i] & 0xFF) - (EXPLOSION_SIZE-CRYSTAL_SIZE)/2 , |
||
87 | FIELD_Y0 + CRYSTAL_SIZE*( (game.explosions[i]>>8) & 0xFF) - (EXPLOSION_SIZE-CRYSTAL_SIZE)/2 , |
||
88 | DRAW_MODE_ALPHA); |
||
89 | }; |
||
90 | |||
91 | |||
92 | char str[] = "TIME: 999 "; |
||
93 | int time_sec = game.time / 25; |
||
94 | str[6] = '0' + ( (time_sec / 100) % 10); |
||
95 | str[7] = '0' + ( (time_sec / 10) % 10); |
||
96 | str[8] = '0' + ( (time_sec / 1) % 10); |
||
97 | |||
98 | game_textout( 56, 32, 3, str ); |
||
99 | |||
100 | char sstr[] = "5C0RE: 000 0F 100 "; |
||
101 | sstr[7] = '0' + ( (game.score / 100) % 10); |
||
102 | sstr[8] = '0' + ( (game.score / 10) % 10); |
||
103 | sstr[9] = '0' + ( (game.score / 1) % 10); |
||
104 | |||
105 | game_textout( 56, 64, 3, sstr ); |
||
106 | |||
5235 | alpine | 107 | }; |
108 | |||
109 | |||
5239 | alpine | 110 | // rskos_draw_area(0, 0, w, h, game.window_scale, game.framebuffer.data, NULL, RSKOS_BGRA); |
111 | rskos_draw_area(0, 0, w, h, game.window_scale, game.framebuffer.data, game.scaled_framebuffer, 0); |
||
5237 | alpine | 112 | }; |
113 | |||
5239 | alpine | 114 | if (!continue_need_redraw) { |
115 | game.need_redraw = 0; |
||
116 | }; |
||
5237 | alpine | 117 | |
118 | }; |
||
119 | |||
120 | |||
121 | |||
122 | void game_textures_init_stage1() { |
||
123 | |||
124 | int i; |
||
125 | |||
126 | texture_init(&game.framebuffer, GAME_WIDTH, GAME_HEIGHT); |
||
127 | |||
128 | // texture_init(&game.tex, 64, 64); |
||
129 | // rs_gen_init(1, 64); |
||
130 | // rs_gen_func_set(0, 0.0); |
||
131 | // rs_gen_func_cell(0, 1200, 10, NULL, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0); |
||
132 | // rs_gen_func_normalize(0, 0.0, 1.0); |
||
133 | // rs_gen_func_posterize(0, 5); |
||
134 | // rs_gen_tex_out_rgba(0, 0, 0, -1, 1.0, 1.0, 1.0, 1.0); |
||
135 | // memcpy(game.tex.data, rs_gen_reg.tex_out, 64*64*4 ); |
||
136 | // rs_gen_term(); |
||
137 | |||
138 | texture_init(&game.tex_clouds, 128, 128); |
||
139 | rs_gen_init(1, 128); |
||
140 | rs_gen_func_perlin(0, 8, 5, 0.5, 1100); |
||
141 | rs_gen_func_normalize(0, 0.0, 1.0); |
||
142 | rs_gen_func_posterize(0, 6); |
||
143 | rs_gen_func_mult_add_value(0, 0, 0.6, 0.4); |
||
144 | // rs_gen_func_set(0, 1.0); |
||
145 | rs_gen_tex_out_rgba(0, 0, 0, -1, 1.0, 1.0, 1.0, 1.0); |
||
146 | memcpy(game.tex_clouds.data, rs_gen_reg.tex_out, 128*128*4 ); |
||
147 | rs_gen_term(); |
||
148 | |||
149 | |||
150 | |||
151 | |||
152 | texture_init(&game.tex_logo, GAME_WIDTH, 128); |
||
153 | texture_clear(&game.tex_logo, COLOR_TRANSPARENT); |
||
154 | |||
155 | game_textout_adv( &game.tex_logo, GAME_WIDTH/2 - 192, 3, 1, DRAW_MODE_REPLACE, "MARBLE"); |
||
156 | game_textout_adv( &game.tex_logo, GAME_WIDTH/2 - 192, 63, 1, DRAW_MODE_REPLACE, "MATCH3"); |
||
157 | texture_draw(&game.tex_logo, &game.tex_clouds, 0, 0, DRAW_MODE_MULT | DRAW_TILED_FLAG); |
||
158 | game_textout_adv( &game.tex_logo, GAME_WIDTH/2 - 192 - 4, 0, 1, DRAW_MODE_MULT, "MARBLE"); |
||
159 | game_textout_adv( &game.tex_logo, GAME_WIDTH/2 - 192 - 4, 60, 1, DRAW_MODE_MULT, "MATCH3"); |
||
160 | |||
161 | |||
162 | |||
163 | texture_init(&game.tex_bg, 512, 512); |
||
164 | texture_clear(&game.tex_bg, COLOR_SILVER); |
||
165 | |||
166 | texture_init(&game.tex_bg_gameplay, 512, 512); |
||
167 | texture_clear(&game.tex_bg_gameplay, COLOR_SILVER); |
||
168 | |||
169 | texture_init(&game.tex_cursor, CRYSTAL_SIZE, CRYSTAL_SIZE); |
||
170 | rs_gen_init(2, CRYSTAL_SIZE); |
||
171 | |||
172 | rs_gen_func_set(0, 0.0); // inner |
||
173 | rs_gen_func_radial(0, 0.5, 0.5, 0.5, 1.0, 2.0); |
||
174 | rs_gen_func_clamp(0, 0.1, 0.5); |
||
175 | rs_gen_func_normalize(0, 0.0, 1.0); |
||
176 | rs_gen_func_mult_add_value(0, 0, -1.0, 1.0); |
||
177 | |||
178 | rs_gen_func_set(1, 0.0); // outer |
||
179 | rs_gen_func_radial(1, 0.5, 0.5, 0.5, 1.0, 2.0); |
||
180 | rs_gen_func_clamp(1, 0.0, 0.2); |
||
181 | rs_gen_func_normalize(1, 0.0, 1.0); |
||
182 | |||
183 | rs_gen_func_mult(0, 0, 1); |
||
184 | |||
185 | rs_gen_func_set(1, 1.0); |
||
186 | // rs_gen_tex_out_rgba_set(0.0, 0.0, 0.0, 0.0); |
||
187 | rs_gen_tex_out_rgba(1, 1, 1, 0, 1.0, 1.0, 1.0, 1.0); |
||
188 | memcpy(game.tex_cursor.data, rs_gen_reg.tex_out, CRYSTAL_SIZE*CRYSTAL_SIZE*4 ); |
||
189 | rs_gen_term(); |
||
190 | |||
191 | texture_init(&game.tex_field, FIELD_WIDTH*CRYSTAL_SIZE + 7, FIELD_HEIGHT*CRYSTAL_SIZE + 7); |
||
192 | texture_clear(&game.tex_field, 0xAABBBBBB); // 0x66404060 // 0xAACCCCCC |
||
193 | |||
194 | |||
195 | // float cr_r[CRYSTALS_COUNT] = { 0.8, 0.2, 0.1, 0.6, 0.7, 0.0, 0.7 }; |
||
196 | // float cr_g[CRYSTALS_COUNT] = { 0.1, 0.6, 0.4, 0.0, 0.6, 0.0, 0.8 }; |
||
197 | // float cr_b[CRYSTALS_COUNT] = { 0.1, 0.1, 0.7, 0.7, 0.0, 0.3, 0.9 }; |
||
198 | |||
199 | // float cr_r[CRYSTALS_COUNT] = { 0.9, 0.3, 0.1, 0.7, 0.8, 0.0, 0.8 }; |
||
200 | // float cr_g[CRYSTALS_COUNT] = { 0.1, 0.8, 0.5, 0.0, 0.7, 0.0, 0.8 }; |
||
201 | // float cr_b[CRYSTALS_COUNT] = { 0.0, 0.1, 0.9, 0.8, 0.0, 0.5, 0.9 }; |
||
202 | |||
203 | float cr_r[CRYSTALS_COUNT] = { 1.0, 0.4, 0.1, 0.9, 0.9, 0.2, 0.8 }; |
||
204 | float cr_g[CRYSTALS_COUNT] = { 0.1, 1.0, 0.6, 0.1, 0.8, 0.2, 0.8 }; |
||
205 | float cr_b[CRYSTALS_COUNT] = { 0.0, 0.1, 1.0, 1.0, 0.0, 0.9, 0.9 }; |
||
206 | |||
207 | |||
5239 | alpine | 208 | // rs_gen_init(5, CRYSTAL_SIZE); |
209 | // for (i = 0; i < CRYSTALS_COUNT; i++) { |
||
210 | // texture_init(&(game.tex_crystals[i]), CRYSTAL_SIZE, CRYSTAL_SIZE); |
||
211 | // |
||
212 | // rs_gen_func_set(0, 0.0); |
||
213 | // rs_gen_func_radial(0, 0.5, 0.5, 0.5, 0.75, 10.0); |
||
214 | // |
||
215 | // rs_gen_func_set(1, 0.0); |
||
216 | // rs_gen_func_cell(1, 110+100*i, 7+i, NULL, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0); |
||
217 | // rs_gen_func_normalize(1, 0.0, 1.0); |
||
218 | // |
||
219 | // rs_gen_tex_out_rgba_set(0.0, 0.0, 0.0, 0.0); |
||
220 | // rs_gen_tex_out_rgba(1, 1, 1, 0, cr_b[i], cr_g[i], cr_r[i], 1.0); |
||
221 | // |
||
222 | // memcpy(game.tex_crystals[i].data, rs_gen_reg.tex_out, CRYSTAL_SIZE*CRYSTAL_SIZE*4 ); |
||
223 | // }; |
||
224 | // rs_gen_term(); |
||
225 | |||
5237 | alpine | 226 | rs_gen_init(5, CRYSTAL_SIZE); |
227 | for (i = 0; i < CRYSTALS_COUNT; i++) { |
||
228 | texture_init(&(game.tex_crystals[i]), CRYSTAL_SIZE, CRYSTAL_SIZE); |
||
5235 | alpine | 229 | |
5237 | alpine | 230 | rs_gen_func_set(0, 0.0); |
231 | rs_gen_func_radial(0, 0.5, 0.5, 0.5, 0.75, 10.0); |
||
5235 | alpine | 232 | |
5239 | alpine | 233 | rs_gen_func_set(1, 1.0); |
234 | rs_gen_func_cell(1, 310+100*i, 5, NULL, -0.5, 1.0, 1.0, 0.0, -2.0, 2.0); |
||
5237 | alpine | 235 | rs_gen_func_normalize(1, 0.0, 1.0); |
5235 | alpine | 236 | |
5239 | alpine | 237 | rs_gen_func_normalmap(2, 3, 4, 1, 1.0); |
238 | rs_gen_func_mult_add_value(3, 3, -1.0, 1.0); |
||
5235 | alpine | 239 | |
5239 | alpine | 240 | rs_gen_func_clamp(2, 0.5, 1.0); |
241 | rs_gen_func_normalize(2, 0.0, 1.0); |
||
242 | rs_gen_func_clamp(3, 0.5, 1.0); |
||
243 | rs_gen_func_normalize(3, 0.0, 1.0); |
||
5235 | alpine | 244 | |
5239 | alpine | 245 | rs_gen_func_add(4, 2, 3, 0.5, 0.5); |
246 | rs_gen_func_mult(1, 1, 4); |
||
247 | rs_gen_func_normalize(1, 0.0, 1.0); |
||
248 | |||
5237 | alpine | 249 | rs_gen_tex_out_rgba_set(0.0, 0.0, 0.0, 0.0); |
250 | rs_gen_tex_out_rgba(1, 1, 1, 0, cr_b[i], cr_g[i], cr_r[i], 1.0); |
||
5239 | alpine | 251 | // rs_gen_tex_out_rgba(4, 4, 4, 0, 0.8-0.8*cr_b[i], 0.8-0.8*cr_g[i], 0.8-0.8*cr_r[i], 0.0); |
252 | // rs_gen_tex_out_rgba(1, 1, 1, 0, 1.0, 1.0, 1.0, 1.0); |
||
5237 | alpine | 253 | |
254 | memcpy(game.tex_crystals[i].data, rs_gen_reg.tex_out, CRYSTAL_SIZE*CRYSTAL_SIZE*4 ); |
||
5235 | alpine | 255 | }; |
5237 | alpine | 256 | rs_gen_term(); |
257 | |||
258 | |||
259 | |||
260 | rs_gen_init(3, EXPLOSION_SIZE); |
||
261 | for (i = 0; i < EXPLOSION_FRAMES_COUNT; i++) { |
||
262 | |||
263 | texture_init(&(game.tex_explosion[i]), EXPLOSION_SIZE, EXPLOSION_SIZE); |
||
5235 | alpine | 264 | |
5237 | alpine | 265 | rs_gen_func_set(0, 1.0); |
266 | // rs_gen_func_radial(0, 0.5, 0.5, 0.3 + 0.5*i/EXPLOSION_FRAMES_COUNT, 0.975, 4.0); |
||
267 | // rs_gen_func_set(0, 1.0); |
||
5235 | alpine | 268 | |
5237 | alpine | 269 | rs_gen_func_set(1, 0.0); |
270 | rs_gen_func_radial(1, 0.5, 0.5, 0.1 + 0.4*i/EXPLOSION_FRAMES_COUNT, 1.0 - 1.0*i/EXPLOSION_FRAMES_COUNT, 2.5 + i%5); |
||
5235 | alpine | 271 | |
5237 | alpine | 272 | rs_gen_tex_out_rgba_set( 0.0, 0.0, 0.0, 0.0); |
273 | rs_gen_tex_out_rgba(0, 0, 0, 1, 1.0, 1.0, 1.0, 1.0); |
||
274 | |||
275 | memcpy(game.tex_explosion[i].data, rs_gen_reg.tex_out, EXPLOSION_SIZE*EXPLOSION_SIZE*4 ); |
||
276 | }; |
||
277 | rs_gen_term(); |
||
5235 | alpine | 278 | }; |
279 | |||
5237 | alpine | 280 | void game_textures_init_stage2() { |
281 | |||
282 | // texture_clear(&game.tex_bg, COLOR_SILVER); |
||
283 | // /* |
||
284 | |||
285 | rs_gen_init(6, 512); |
||
286 | rs_gen_func_perlin(0, 8, 5, 0.5, 1100); |
||
287 | rs_gen_func_normalize(0, 0.0, 1.0); |
||
288 | rs_gen_func_perlin(1, 8, 5, 0.5, 1700); |
||
289 | rs_gen_func_normalize(1, 0.0, 1.0); |
||
290 | rs_gen_func_cell(2, 1118, 50, NULL, 1.0, 0.887, -0.333, 1.0, 0.0, 4.0); // 1360 |
||
291 | rs_gen_func_normalize(2, 0.0, 0.5); |
||
292 | |||
293 | rs_gen_func_adr(3, 2, 0, 1, 1.0, 0.3); |
||
294 | |||
295 | rs_gen_func_inv(3, 3, 7.5); |
||
296 | rs_gen_func_normalize(3, 0.0, 1.0); |
||
297 | |||
298 | // signed short c[] = { 0, 250, 250, 0, 500, 250, 250, 500}; |
||
299 | signed short c[] = { 0, 0, 0, 512, 512, 0, 512, 512}; |
||
300 | // signed short c[] = { 128, 128, 128, 384, 384, 128, 384, 384}; |
||
301 | //rs_gen_func_cell(4, 0, 4, c, 0.0, 0.3, 1.0, 0.5, 0.0, 0.30); |
||
302 | rs_gen_func_cell(4, 0, 4, c, 1.0, 0.3, 0.0, 0.95, 0.0, 0.30); |
||
303 | rs_gen_func_normalize(4, 0.0, 1.0); |
||
304 | |||
305 | // rs_gen_func_radial(5, 0.5, 0.5, 0.60, 1.0, 4.0); |
||
306 | // rs_gen_func_add(4, 4, 5, 0.5, 0.5); |
||
307 | // |
||
308 | rs_gen_func_mult(4, 4, 3); |
||
309 | |||
310 | // coloring... |
||
311 | rs_gen_func_mult_add_value(0, 4, 0.8, 0.0); |
||
312 | rs_gen_func_add(0, 4, 1, 0.95, 0.05); |
||
313 | rs_gen_func_add(3, 4, 2, 0.95, 0.05); |
||
314 | |||
315 | |||
316 | rs_gen_tex_out_rgba(4, 0, 3, -1, 0.9, 0.9, 0.9, 1.0); |
||
317 | memcpy(game.tex_bg.data, rs_gen_reg.tex_out, 512*512*4 ); |
||
318 | rs_gen_term(); |
||
319 | |||
320 | // */ |
||
321 | |||
322 | // Background for gameplay |
||
323 | |||
324 | texture_draw( &game.tex_bg_gameplay, &game.tex_bg, 256, 256, DRAW_MODE_REPLACE | DRAW_TILED_FLAG ); |
||
325 | // Bevel |
||
326 | texture_draw_vline( &game.tex_bg_gameplay, FIELD_X0 - 5, FIELD_Y0 - 5, FIELD_HEIGHT*CRYSTAL_SIZE + 10, 0xFF404060 ); |
||
327 | texture_draw_hline( &game.tex_bg_gameplay, FIELD_X0 - 5, FIELD_Y0 - 5, FIELD_WIDTH*CRYSTAL_SIZE + 10, 0xFF404060 ); |
||
328 | texture_draw_vline( &game.tex_bg_gameplay, FIELD_X0 - 4, FIELD_Y0 - 4, FIELD_HEIGHT*CRYSTAL_SIZE + 8, 0xFF606080 ); |
||
329 | texture_draw_hline( &game.tex_bg_gameplay, FIELD_X0 - 4, FIELD_Y0 - 4, FIELD_WIDTH*CRYSTAL_SIZE + 8, 0xFF606080 ); |
||
330 | |||
331 | texture_draw_vline( &game.tex_bg_gameplay, FIELD_X0 + 4 + FIELD_WIDTH*CRYSTAL_SIZE, FIELD_Y0 - 4, FIELD_HEIGHT*CRYSTAL_SIZE + 8, 0xFFC0C0C0 ); |
||
332 | texture_draw_hline( &game.tex_bg_gameplay, FIELD_X0 - 4, FIELD_Y0 + 4 + FIELD_HEIGHT*CRYSTAL_SIZE, FIELD_WIDTH*CRYSTAL_SIZE + 9, 0xFFC0C0C0 ); |
||
333 | texture_draw_vline( &game.tex_bg_gameplay, FIELD_X0 + 5 + FIELD_WIDTH*CRYSTAL_SIZE, FIELD_Y0 - 5, FIELD_HEIGHT*CRYSTAL_SIZE + 10, 0xFFE0E0E0 ); |
||
334 | texture_draw_hline( &game.tex_bg_gameplay, FIELD_X0 - 5, FIELD_Y0 + 5 + FIELD_HEIGHT*CRYSTAL_SIZE, FIELD_WIDTH*CRYSTAL_SIZE + 11, 0xFFE0E0E0 ); |
||
335 | |||
336 | texture_draw( &game.tex_bg_gameplay, &game.tex_field, FIELD_X0 - 3, FIELD_Y0 - 3, DRAW_MODE_ALPHA ); |
||
337 | |||
338 | |||
339 | }; |
||
340 | |||
341 | void game_textures_free() { |
||
342 | free(game.scaled_framebuffer); |
||
343 | |||
344 | // texture_free(&game.tex_gui_line); |
||
345 | |||
346 | int i; |
||
347 | for (i = 0; i < CRYSTALS_COUNT; i++) { |
||
348 | texture_free(&game.tex_crystals[i]); |
||
349 | }; |
||
350 | |||
351 | for (i = 0; i < EXPLOSION_FRAMES_COUNT; i++) { |
||
352 | texture_free(&game.tex_explosion[i]); |
||
353 | }; |
||
354 | |||
355 | texture_free(&game.framebuffer); |
||
356 | |||
357 | texture_free(&game.tex_logo); |
||
358 | texture_free(&game.tex_clouds); |
||
359 | |||
360 | texture_free(&game.tex_bg); |
||
361 | texture_free(&game.tex_bg_gameplay); |
||
362 | };>>>>>>>> |