Rev 5237 | Rev 5242 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5237 | Rev 5239 | ||
---|---|---|---|
Line 15... | Line 15... | ||
15 | void game_draw() { |
15 | void game_draw() { |
Line 16... | Line 16... | ||
16 | 16 | ||
17 | int w = GAME_WIDTH; |
17 | int w = GAME_WIDTH; |
Line -... | Line 18... | ||
- | 18 | int h = GAME_HEIGHT; |
|
- | 19 | ||
18 | int h = GAME_HEIGHT; |
20 | int continue_need_redraw = 0; |
- | 21 | ||
Line 19... | Line 22... | ||
19 | 22 | if (game.need_redraw) { |
|
Line 57... | Line 60... | ||
57 | } |
60 | } |
58 | else { |
61 | else { |
Line 59... | Line 62... | ||
59 | 62 | ||
Line 60... | Line 63... | ||
60 | texture_draw(&game.framebuffer, &game.tex_bg_gameplay, 0, 0, DRAW_MODE_REPLACE); |
63 | texture_draw(&game.framebuffer, &game.tex_bg_gameplay, 0, 0, DRAW_MODE_REPLACE); |
61 | 64 | ||
62 | int i, j; |
65 | int i, j, y_shift; |
63 | for (i = 0; i < FIELD_HEIGHT; i++) { |
66 | for (i = 0; i < FIELD_HEIGHT; i++) { |
64 | for (j = 0; j < FIELD_WIDTH; j++) { |
- | |
65 | if ( IS_BIT_SET( game.field[i*FIELD_WIDTH + j], CRYSTAL_VISIBLE_BIT )) { |
67 | for (j = 0; j < FIELD_WIDTH; j++) { |
66 | texture_draw( &game.framebuffer, &game.tex_crystals[ game.field[i*FIELD_WIDTH + j] & CRYSTAL_INDEX_MASK ], FIELD_X0+ j*CRYSTAL_SIZE, FIELD_Y0+ i*CRYSTAL_SIZE, DRAW_MODE_ALPHA ); |
68 | if ( IS_BIT_SET( game.field[i*FIELD_WIDTH + j], CRYSTAL_VISIBLE_BIT )) { |
67 | if (game.selected) { |
69 | y_shift = 0; |
- | 70 | if ( IS_BIT_SET( game.field[i*FIELD_WIDTH + j], CRYSTAL_MOVING_BIT ) ) { |
|
68 | if ( (j == game.selected_x) && (i == game.selected_y) ) { |
71 | y_shift = -CRYSTAL_SIZE + CRYSTAL_SIZE*(game.process_timer+1)/(ANIMATION_PROCESS_TIMER_LIMIT+1); |
- | 72 | continue_need_redraw = 1; |
|
69 | texture_draw( &game.framebuffer, &game.tex_cursor, FIELD_X0+ j*CRYSTAL_SIZE, FIELD_Y0+ i*CRYSTAL_SIZE, DRAW_MODE_ALPHA ); |
73 | }; |
70 | }; |
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 ); |
71 | }; |
75 | }; |
- | 76 | }; |
|
- | 77 | }; |
|
- | 78 | ||
72 | }; |
79 | if (game.selected) { |
Line -... | Line 80... | ||
- | 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 ); |
|
73 | }; |
81 | }; |
74 | }; |
82 | |
75 | 83 | ||
76 | for (i = 0; i < game.explosions_count; i++) { |
84 | for (i = 0; i < game.explosions_count; i++) { |
77 | texture_draw( &game.framebuffer, &(game.tex_explosion[ (game.explosions[i]>>16) & 0xFF ]), |
85 | texture_draw( &game.framebuffer, &(game.tex_explosion[ (game.explosions[i]>>16) & 0xFF ]), |
Line 97... | Line 105... | ||
97 | game_textout( 56, 64, 3, sstr ); |
105 | game_textout( 56, 64, 3, sstr ); |
Line 98... | Line 106... | ||
98 | 106 | ||
Line -... | Line 107... | ||
- | 107 | }; |
|
99 | }; |
108 | |
100 | 109 | ||
Line -... | Line 110... | ||
- | 110 | // rskos_draw_area(0, 0, w, h, game.window_scale, game.framebuffer.data, NULL, RSKOS_BGRA); |
|
101 | 111 | rskos_draw_area(0, 0, w, h, game.window_scale, game.framebuffer.data, game.scaled_framebuffer, 0); |
|
- | 112 | }; |
|
Line 102... | Line 113... | ||
102 | rskos_draw_area(0, 0, w, h, game.window_scale, game.framebuffer.data, game.scaled_framebuffer); |
113 | |
Line 192... | Line 203... | ||
192 | float cr_r[CRYSTALS_COUNT] = { 1.0, 0.4, 0.1, 0.9, 0.9, 0.2, 0.8 }; |
203 | float cr_r[CRYSTALS_COUNT] = { 1.0, 0.4, 0.1, 0.9, 0.9, 0.2, 0.8 }; |
193 | float cr_g[CRYSTALS_COUNT] = { 0.1, 1.0, 0.6, 0.1, 0.8, 0.2, 0.8 }; |
204 | float cr_g[CRYSTALS_COUNT] = { 0.1, 1.0, 0.6, 0.1, 0.8, 0.2, 0.8 }; |
194 | float cr_b[CRYSTALS_COUNT] = { 0.0, 0.1, 1.0, 1.0, 0.0, 0.9, 0.9 }; |
205 | float cr_b[CRYSTALS_COUNT] = { 0.0, 0.1, 1.0, 1.0, 0.0, 0.9, 0.9 }; |
Line -... | Line 206... | ||
- | 206 | ||
- | 207 | ||
- | 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 | // }; |
|
195 | 224 | // rs_gen_term(); |
|
196 | 225 | ||
197 | rs_gen_init(5, CRYSTAL_SIZE); |
- | |
198 | for (i = 0; i < CRYSTALS_COUNT; i++) { |
226 | rs_gen_init(5, CRYSTAL_SIZE); |
Line 199... | Line 227... | ||
199 | 227 | for (i = 0; i < CRYSTALS_COUNT; i++) { |
|
200 | texture_init(&(game.tex_crystals[i]), CRYSTAL_SIZE, CRYSTAL_SIZE); |
228 | texture_init(&(game.tex_crystals[i]), CRYSTAL_SIZE, CRYSTAL_SIZE); |
Line 201... | Line -... | ||
201 | - | ||
202 | rs_gen_func_set(0, 0.0); |
- | |
203 | rs_gen_func_radial(0, 0.5, 0.5, 0.5, 0.75, 10.0); |
- | |
204 | - | ||
205 | // rs_gen_func_perlin(2, 33, 4, 0.5, 350+i); |
- | |
206 | // rs_gen_func_normalize(2, 0.0, 1.0); |
- | |
207 | // rs_gen_func_posterize(2, 4); |
- | |
208 | // |
- | |
209 | // rs_gen_func_cell(1, 410+i, 50, NULL, -2.0, 1.0, 1.0, 1.0, 0.0, 1.0); |
- | |
210 | // rs_gen_func_posterize(1, 2); |
- | |
211 | // rs_gen_func_normalize(1, 0.0, 1.0); |
- | |
212 | // rs_gen_func_add(1, 1, 2, 1.0, 0.5); |
- | |
213 | // rs_gen_func_normalize(1, 0.0, 1.0); |
- | |
214 | // rs_gen_func_posterize(1, 4); |
- | |
215 | // |
- | |
216 | // rs_gen_func_add(1, 0, 1, 1.0, 1.0); |
- | |
217 | // rs_gen_func_normalize(1, 0.0, 1.0); |
- | |
218 | // rs_gen_func_mult(1, 0, 1); |
229 | |
219 | // rs_gen_func_normalize(1, 0.0, 1.0); |
230 | rs_gen_func_set(0, 0.0); |
220 | // rs_gen_func_posterize(1, 4); |
231 | rs_gen_func_radial(0, 0.5, 0.5, 0.5, 0.75, 10.0); |
221 | - | ||
Line 222... | Line 232... | ||
222 | rs_gen_func_set(1, 0.0); |
232 | |
223 | rs_gen_func_cell(1, 110+100*i, 7+i, NULL, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0); |
233 | rs_gen_func_set(1, 1.0); |
Line -... | Line 234... | ||
- | 234 | rs_gen_func_cell(1, 310+100*i, 5, NULL, -0.5, 1.0, 1.0, 0.0, -2.0, 2.0); |
|
224 | rs_gen_func_normalize(1, 0.0, 1.0); |
235 | rs_gen_func_normalize(1, 0.0, 1.0); |
- | 236 | ||
225 | // rs_gen_func_mult_add_value(1, 1, 0.9, 0.1); |
237 | rs_gen_func_normalmap(2, 3, 4, 1, 1.0); |
- | 238 | rs_gen_func_mult_add_value(3, 3, -1.0, 1.0); |
|
226 | 239 | ||
- | 240 | rs_gen_func_clamp(2, 0.5, 1.0); |
|
227 | // rs_gen_func_normalmap(2, 3, 3, 1, 1.0); |
241 | rs_gen_func_normalize(2, 0.0, 1.0); |
Line 228... | Line 242... | ||
228 | // rs_gen_func_mult(1, 1, 2); |
242 | rs_gen_func_clamp(3, 0.5, 1.0); |
229 | - | ||
230 | //rs_gen_tex_out_rgba_set(0.0, 0.0, 0.0, 0.0); |
243 | rs_gen_func_normalize(3, 0.0, 1.0); |
- | 244 | ||
- | 245 | rs_gen_func_add(4, 2, 3, 0.5, 0.5); |
|
Line 231... | Line 246... | ||
231 | //rs_gen_tex_out_rgba(1, 1, 1, 1, 0.5+ 0.03*(i%2), 0.7+ 0.03*(i%3) , 0.9, 1.0); |
246 | rs_gen_func_mult(1, 1, 4); |
232 | // rs_gen_tex_out_rgba_set(0.2 + 0.2*(i/3), 0.2 + 0.1*(i%5), 0.2 + 0.1*(i%7), 0.0); |
247 | rs_gen_func_normalize(1, 0.0, 1.0); |
233 | // rs_gen_tex_out_rgba(1, 1, 1, 1, 0.0, 0.0, 0.0, 1.0); |
248 |