Subversion Repositories Kolibri OS

Rev

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