Rev 5235 | Rev 5239 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5235 | Rev 5237 | ||
---|---|---|---|
Line 13... | Line 13... | ||
13 | #include "rsnoise.h" |
13 | #include "rsnoise.h" |
Line 14... | Line 14... | ||
14 | 14 | ||
Line 15... | Line -... | ||
15 | #include "rs/rsplatform.h" |
- | |
16 | - | ||
17 | - | ||
18 | #ifdef RS_USE_C_LIBS // linux version |
- | |
19 | #include |
- | |
20 | #include |
- | |
21 | #include |
- | |
Line 22... | Line 15... | ||
22 | 15 | #include "rs/rsplatform.h" |
|
Line 78... | Line 71... | ||
78 | 71 | ||
79 | if (mode == DRAW_MODE_REPLACE) { |
72 | if (mode == DRAW_MODE_REPLACE) { |
80 | for (i = istart; i < iend; i++) { |
73 | for (i = istart; i < iend; i++) { |
81 | for (j = jstart; j < jend; j++) { |
74 | for (j = jstart; j < jend; j++) { |
82 | for (k = 0; k < 4; k++) { |
75 | for (k = 0; k < 4; k++) { |
83 | dest->data[ 4 * ( (y+i)*dest->w + (x+j) ) + k ] = src->data[ (4*(i*src->w + j) + k) % modvalue ]; |
76 | dest->data[ 4 * ( (y+i)*dest->w + (x+j) ) + k ] = src->data[ (4*((i+ishift)*src->w + j + jshift) + k) % modvalue]; |
84 | }; |
77 | }; |
85 | }; |
78 | }; |
86 | }; |
79 | }; |
87 | } |
80 | } |
Line 134... | Line 127... | ||
134 | for (i = 0; i < l; i++) { |
127 | for (i = 0; i < l; i++) { |
135 | *((unsigned int*) &tex->data[ 4 * ( (y+i)*tex->w + (x) ) + 0 ]) = color; |
128 | *((unsigned int*) &tex->data[ 4 * ( (y+i)*tex->w + (x) ) + 0 ]) = color; |
136 | }; |
129 | }; |
137 | }; |
130 | }; |
Line -... | Line 131... | ||
- | 131 | ||
- | 132 | void texture_draw_hline(rs_texture_t *tex, int x, int y, int l, unsigned int color) { |
|
- | 133 | int i; |
|
- | 134 | if (x+l >= tex->w) { |
|
- | 135 | l = tex->w - x; |
|
- | 136 | }; |
|
- | 137 | for (i = 0; i < l; i++) { |
|
- | 138 | *((unsigned int*) &tex->data[ 4 * ( (y)*tex->w + (x+i) ) + 0 ]) = color; |
|
- | 139 | }; |
|
- | 140 | }; |
|
Line 138... | Line 141... | ||
138 | 141 | ||
139 | 142 | ||
140 | 143 | ||
Line 212... | Line 215... | ||
212 | 215 | ||
Line 213... | Line 216... | ||
213 | void game_reg_init() { |
216 | void game_reg_init() { |
Line -... | Line 217... | ||
- | 217 | ||
- | 218 | game.loader_counter = 0; |
|
214 | 219 | ||
215 | game.loader_counter = 0; |
220 | game.need_redraw = 1; |
Line 216... | Line 221... | ||
216 | 221 | ||
217 | game.score = 0; |
222 | game.score = 0; |
Line 280... | Line 285... | ||
280 | match_count++; |
285 | match_count++; |
281 | } |
286 | } |
282 | else { |
287 | else { |
283 | if (match_count >= 2) { |
288 | if (match_count >= 2) { |
284 | found = 1; |
289 | found = 1; |
285 | // DEBUG10f("found vert (x %d, y %d, count %d) \n", x, y, match_count); |
- | |
286 | for (i = y+1; i < y+1+match_count+1; i++) { |
290 | for (i = y+1; i < y+1+match_count+1; i++) { |
287 | BIT_SET( FIELD_ITEM(x, i), CRYSTAL_EXPLODED_BIT ); |
291 | BIT_SET( FIELD_ITEM(x, i), CRYSTAL_EXPLODED_BIT ); |
288 | }; |
292 | }; |
289 | } |
293 | } |
290 | item = FIELD_ITEM(x,y) & CRYSTAL_INDEX_MASK; |
294 | item = FIELD_ITEM(x,y) & CRYSTAL_INDEX_MASK; |
Line 316... | Line 320... | ||
316 | match_count++; |
320 | match_count++; |
317 | } |
321 | } |
318 | else { |
322 | else { |
319 | if (match_count >= 2) { |
323 | if (match_count >= 2) { |
320 | found = 1; |
324 | found = 1; |
321 | // DEBUG10f("found horiz (x %d, y %d, count %d) \n", x, y, match_count); |
- | |
322 | for (i = x+1; i < x+1+match_count+1; i++) { |
325 | for (i = x+1; i < x+1+match_count+1; i++) { |
323 | BIT_SET( FIELD_ITEM(i, y), CRYSTAL_EXPLODED_BIT ); |
326 | BIT_SET( FIELD_ITEM(i, y), CRYSTAL_EXPLODED_BIT ); |
324 | }; |
327 | }; |
325 | } |
328 | } |
326 | item = FIELD_ITEM(x,y) & CRYSTAL_INDEX_MASK; |
329 | item = FIELD_ITEM(x,y) & CRYSTAL_INDEX_MASK; |
327 | match_count = 0; |
330 | match_count = 0; |
328 | }; |
331 | }; |
329 | }; |
332 | }; |
330 | if (match_count >= 2) { // last |
333 | if (match_count >= 2) { // last |
331 | found = 1; |
334 | found = 1; |
332 | // DEBUG10("found horiz (2)"); |
- | |
333 | for (i = x+1; i < x+1+match_count+1; i++) { |
335 | for (i = x+1; i < x+1+match_count+1; i++) { |
334 | BIT_SET( FIELD_ITEM(i, y), CRYSTAL_EXPLODED_BIT ); |
336 | BIT_SET( FIELD_ITEM(i, y), CRYSTAL_EXPLODED_BIT ); |
335 | }; |
337 | }; |
336 | }; |
338 | }; |
337 | }; |
339 | }; |
Line 347... | Line 349... | ||
347 | }; |
349 | }; |
348 | }; |
350 | }; |
Line 349... | Line 351... | ||
349 | 351 | ||
350 | if (game.score > 99) { |
352 | if (game.score > 99) { |
- | 353 | game.status = STATUS_MENU; |
|
- | 354 | game.need_redraw = 1; |
|
- | 355 | }; |
|
- | 356 | ||
- | 357 | if (found) { |
|
351 | game.status = STATUS_MENU; |
358 | game.need_redraw = 1; |
Line 352... | Line -... | ||
352 | }; |
- | |
353 | 359 | }; |
|
354 | // DEBUG10f("found = %d \n", found); |
360 | |
Line 355... | Line 361... | ||
355 | return found; |
361 | return found; |
356 | }; |
362 | }; |
Line 361... | Line 367... | ||
361 | fall = 0; |
367 | fall = 0; |
362 | for (y = FIELD_HEIGHT-1; y > 0; y--) { |
368 | for (y = FIELD_HEIGHT-1; y > 0; y--) { |
363 | fall |= !(FIELD_ITEM(x, y) & CRYSTAL_VISIBLE_BIT); |
369 | fall |= !(FIELD_ITEM(x, y) & CRYSTAL_VISIBLE_BIT); |
364 | if (fall) { |
370 | if (fall) { |
365 | FIELD_ITEM(x, y) = FIELD_ITEM(x, y-1) | CRYSTAL_MOVING_BIT; |
371 | FIELD_ITEM(x, y) = FIELD_ITEM(x, y-1) | CRYSTAL_MOVING_BIT; |
- | 372 | game.need_redraw = 1; |
|
366 | } |
373 | } |
367 | else { |
374 | else { |
368 | BIT_CLEAR( FIELD_ITEM(x, y), CRYSTAL_MOVING_BIT ); |
375 | BIT_CLEAR( FIELD_ITEM(x, y), CRYSTAL_MOVING_BIT ); |
369 | }; |
376 | }; |
370 | }; |
377 | }; |
Line 380... | Line 387... | ||
380 | 387 | ||
381 | if (game.status == STATUS_LOADING) { |
388 | if (game.status == STATUS_LOADING) { |
382 | game.loader_counter++; |
389 | game.loader_counter++; |
Line 383... | Line -... | ||
383 | if (game.loader_counter == 2) { |
- | |
384 | - | ||
385 | // texture_clear(&game.tex_bg, COLOR_SILVER); |
- | |
386 | // /* |
390 | if (game.loader_counter == 2) { |
387 | - | ||
388 | rs_gen_init(6, 512); |
- | |
389 | rs_gen_func_perlin(0, 8, 5, 0.5, 1100); |
- | |
390 | rs_gen_func_normalize(0, 0.0, 1.0); |
- | |
391 | rs_gen_func_perlin(1, 8, 5, 0.5, 1700); |
- | |
392 | rs_gen_func_normalize(1, 0.0, 1.0); |
- | |
393 | rs_gen_func_cell(2, 1360, 50, NULL, 1.0, 0.887, -0.333, 1.0, 0.0, 4.0); |
- | |
394 | rs_gen_func_normalize(2, 0.0, 0.5); |
- | |
395 | - | ||
396 | rs_gen_func_adr(3, 2, 0, 1, 1.0, 0.3); |
- | |
397 | - | ||
398 | rs_gen_func_inv(3, 3, 7.5); |
- | |
399 | rs_gen_func_normalize(3, 0.0, 1.0); |
- | |
400 | - | ||
401 | // signed short c[] = { 0, 250, 250, 0, 500, 250, 250, 500}; |
- | |
402 | signed short c[] = { 0, 0, 0, 512, 512, 0, 512, 512}; |
- | |
403 | // signed short c[] = { 128, 128, 128, 384, 384, 128, 384, 384}; |
- | |
404 | //rs_gen_func_cell(4, 0, 4, c, 0.0, 0.3, 1.0, 0.5, 0.0, 0.30); |
- | |
405 | rs_gen_func_cell(4, 0, 4, c, 1.0, 0.3, 0.0, 0.95, 0.0, 0.30); |
- | |
406 | rs_gen_func_normalize(4, 0.0, 1.0); |
- | |
407 | - | ||
408 | // rs_gen_func_radial(5, 0.5, 0.5, 0.60, 1.0, 4.0); |
- | |
409 | // rs_gen_func_add(4, 4, 5, 0.5, 0.5); |
- | |
410 | // |
- | |
411 | rs_gen_func_mult(4, 4, 3); |
- | |
412 | - | ||
413 | // coloring... |
- | |
414 | rs_gen_func_mult_add_value(0, 4, 0.8, 0.0); |
- | |
415 | rs_gen_func_add(0, 4, 1, 0.95, 0.05); |
- | |
416 | rs_gen_func_add(3, 4, 2, 0.95, 0.05); |
- | |
417 | - | ||
418 | - | ||
419 | rs_gen_tex_out_rgba(4, 0, 3, -1, 0.9, 0.9, 0.9, 1.0); |
- | |
420 | memcpy(game.tex_bg.data, rs_gen_reg.tex_out, 512*512*4 ); |
- | |
421 | rs_gen_term(); |
- | |
Line 422... | Line 391... | ||
422 | 391 | ||
- | 392 | game_textures_init_stage2(); |
|
Line 423... | Line 393... | ||
423 | // */ |
393 | |
424 | 394 | ||
425 | 395 | ||
Line 439... | Line 409... | ||
439 | process_timer = 0; |
409 | process_timer = 0; |
440 | }; |
410 | }; |
Line 441... | Line 411... | ||
441 | 411 | ||
442 | int i; |
412 | int i; |
- | 413 | for (i = 0; i < game.explosions_count; i++) { |
|
443 | for (i = 0; i < game.explosions_count; i++) { |
414 | game.need_redraw = 1; |
444 | game.explosions[i] = (game.explosions[i] & 0xFFFF) | ( ((game.explosions[i]>>16)+1) << 16 ); |
415 | game.explosions[i] = (game.explosions[i] & 0xFFFF) | ( ((game.explosions[i]>>16)+1) << 16 ); |
445 | if ( (game.explosions[i] >> 16) >= EXPLOSION_FRAMES_COUNT ) { |
416 | if ( (game.explosions[i] >> 16) >= EXPLOSION_FRAMES_COUNT ) { |
446 | game.explosions[i] = game.explosions[game.explosions_count-1]; |
417 | game.explosions[i] = game.explosions[game.explosions_count-1]; |
447 | game.explosions_count--; |
418 | game.explosions_count--; |
448 | i--; |
419 | i--; |
449 | }; |
420 | }; |
Line -... | Line 421... | ||
- | 421 | }; |
|
- | 422 | ||
- | 423 | if ((game.time+1)/25 != game.time/25) { |
|
- | 424 | game.need_redraw = 1; |
|
450 | }; |
425 | }; |
Line -... | Line 426... | ||
- | 426 | ||
- | 427 | game.time++; |
|
- | 428 | ||
451 | 429 | ||
Line 452... | Line 430... | ||
452 | game.time++; |
430 | |
Line 453... | Line 431... | ||
453 | 431 | ||
Line 475... | Line 453... | ||
475 | game.scaled_framebuffer = malloc(GAME_WIDTH*game.window_scale * GAME_HEIGHT*game.window_scale * 3); |
453 | game.scaled_framebuffer = malloc(GAME_WIDTH*game.window_scale * GAME_HEIGHT*game.window_scale * 3); |
476 | DEBUG10f("scaled framebuffer: %d (window_scale = %d) \n", game.window_scale * GAME_WIDTH * GAME_HEIGHT * 3, game.window_scale); |
454 | DEBUG10f("scaled framebuffer: %d (window_scale = %d) \n", game.window_scale * GAME_WIDTH * GAME_HEIGHT * 3, game.window_scale); |
Line 477... | Line 455... | ||
477 | 455 | ||
Line 478... | Line -... | ||
478 | game_font_init(); |
- | |
479 | - | ||
480 | texture_init(&game.framebuffer, GAME_WIDTH, GAME_HEIGHT); |
- | |
481 | - | ||
482 | // texture_init(&game.tex, 64, 64); |
- | |
483 | // rs_gen_init(1, 64); |
- | |
484 | // rs_gen_func_set(0, 0.0); |
- | |
485 | // rs_gen_func_cell(0, 1200, 10, NULL, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0); |
- | |
486 | // rs_gen_func_normalize(0, 0.0, 1.0); |
- | |
487 | // rs_gen_func_posterize(0, 5); |
- | |
488 | // rs_gen_tex_out_rgba(0, 0, 0, -1, 1.0, 1.0, 1.0, 1.0); |
- | |
489 | // memcpy(game.tex.data, rs_gen_reg.tex_out, 64*64*4 ); |
- | |
490 | // rs_gen_term(); |
- | |
491 | 456 | game_font_init(); |
|
492 | texture_init(&game.tex_clouds, 128, 128); |
- | |
493 | rs_gen_init(1, 128); |
- | |
494 | rs_gen_func_perlin(0, 8, 5, 0.5, 1100); |
- | |
495 | rs_gen_func_normalize(0, 0.0, 1.0); |
- | |
496 | rs_gen_func_posterize(0, 6); |
- | |
497 | rs_gen_func_mult_add_value(0, 0, 0.6, 0.4); |
- | |
498 | // rs_gen_func_set(0, 1.0); |
- | |
499 | rs_gen_tex_out_rgba(0, 0, 0, -1, 1.0, 1.0, 1.0, 1.0); |
- | |
500 | memcpy(game.tex_clouds.data, rs_gen_reg.tex_out, 128*128*4 ); |
- | |
501 | rs_gen_term(); |
- | |
502 | - | ||
503 | - | ||
504 | - | ||
505 | - | ||
506 | texture_init(&game.tex_logo, GAME_WIDTH, 128); |
- | |
507 | texture_clear(&game.tex_logo, COLOR_TRANSPARENT); |
- | |
508 | - | ||
509 | game_textout_adv( &game.tex_logo, GAME_WIDTH/2 - 192, 3, 1, DRAW_MODE_REPLACE, "MARBLE"); |
- | |
510 | game_textout_adv( &game.tex_logo, GAME_WIDTH/2 - 192, 63, 1, DRAW_MODE_REPLACE, "MATCH3"); |
- | |
511 | texture_draw(&game.tex_logo, &game.tex_clouds, 0, 0, DRAW_MODE_MULT | DRAW_TILED_FLAG); |
- | |
512 | game_textout_adv( &game.tex_logo, GAME_WIDTH/2 - 192 - 4, 0, 1, DRAW_MODE_MULT, "MARBLE"); |
- | |
513 | game_textout_adv( &game.tex_logo, GAME_WIDTH/2 - 192 - 4, 60, 1, DRAW_MODE_MULT, "MATCH3"); |
- | |
514 | - | ||
515 | // rs_gen_init(1, 128); |
- | |
516 | // rs_gen_func_perlin(0, 8, 5, 0.5, 1100); |
- | |
517 | // rs_gen_func_normalize(0, 0.0, 1.0); |
- | |
518 | // rs_gen_func_posterize(0, 4); |
- | |
519 | // rs_gen_func_normalize(0, 0.0, 0.50); |
- | |
520 | // rs_gen_tex_out_rgba(0, 0, 0, -1, 0.9, 0.7, 0.5, 1.0); |
- | |
521 | // memcpy(game.tex_clouds.data, rs_gen_reg.tex_out, 128*128*4 ); |
- | |
522 | // rs_gen_term(); |
- | |
523 | - | ||
524 | - | ||
525 | texture_init(&game.tex_bg, 512, 512); |
- | |
526 | texture_clear(&game.tex_bg, COLOR_SILVER); |
- | |
527 | - | ||
528 | texture_init(&game.tex_cursor, CRYSTAL_SIZE, CRYSTAL_SIZE); |
- | |
529 | texture_clear(&game.tex_cursor, COLOR_SEMI_TRANSPARENT); |
- | |
530 | - | ||
531 | - | ||
532 | - | ||
533 | - | ||
534 | // float cr_r[CRYSTALS_COUNT] = { 0.8, 0.2, 0.1, 0.6, 0.7, 0.0, 0.7 }; |
- | |
535 | // float cr_g[CRYSTALS_COUNT] = { 0.1, 0.6, 0.4, 0.0, 0.6, 0.0, 0.8 }; |
- | |
536 | // float cr_b[CRYSTALS_COUNT] = { 0.1, 0.1, 0.7, 0.7, 0.0, 0.3, 0.9 }; |
- | |
537 | - | ||
538 | // float cr_r[CRYSTALS_COUNT] = { 0.9, 0.3, 0.1, 0.7, 0.8, 0.0, 0.8 }; |
- | |
539 | // float cr_g[CRYSTALS_COUNT] = { 0.1, 0.8, 0.5, 0.0, 0.7, 0.0, 0.8 }; |
- | |
540 | // float cr_b[CRYSTALS_COUNT] = { 0.0, 0.1, 0.9, 0.8, 0.0, 0.5, 0.9 }; |
- | |
541 | - | ||
542 | float cr_r[CRYSTALS_COUNT] = { 1.0, 0.4, 0.1, 0.9, 0.9, 0.2, 0.8 }; |
- | |
543 | float cr_g[CRYSTALS_COUNT] = { 0.1, 1.0, 0.6, 0.1, 0.8, 0.2, 0.8 }; |
- | |
544 | float cr_b[CRYSTALS_COUNT] = { 0.0, 0.1, 1.0, 1.0, 0.0, 0.9, 0.9 }; |
- | |
545 | - | ||
546 | - | ||
547 | rs_gen_init(5, CRYSTAL_SIZE); |
- | |
548 | for (i = 0; i < CRYSTALS_COUNT; i++) { |
- | |
549 | - | ||
550 | texture_init(&(game.tex_crystals[i]), CRYSTAL_SIZE, CRYSTAL_SIZE); |
- | |
551 | - | ||
552 | rs_gen_func_set(0, 0.0); |
- | |
553 | rs_gen_func_radial(0, 0.5, 0.5, 0.5, 0.75, 10.0); |
- | |
554 | - | ||
555 | // rs_gen_func_perlin(2, 33, 4, 0.5, 350+i); |
- | |
556 | // rs_gen_func_normalize(2, 0.0, 1.0); |
- | |
557 | // rs_gen_func_posterize(2, 4); |
- | |
558 | // |
- | |
559 | // rs_gen_func_cell(1, 410+i, 50, NULL, -2.0, 1.0, 1.0, 1.0, 0.0, 1.0); |
- | |
560 | // rs_gen_func_posterize(1, 2); |
- | |
561 | // rs_gen_func_normalize(1, 0.0, 1.0); |
- | |
562 | // rs_gen_func_add(1, 1, 2, 1.0, 0.5); |
- | |
563 | // rs_gen_func_normalize(1, 0.0, 1.0); |
- | |
564 | // rs_gen_func_posterize(1, 4); |
- | |
565 | // |
- | |
566 | // rs_gen_func_add(1, 0, 1, 1.0, 1.0); |
- | |
567 | // rs_gen_func_normalize(1, 0.0, 1.0); |
- | |
568 | // rs_gen_func_mult(1, 0, 1); |
- | |
569 | // rs_gen_func_normalize(1, 0.0, 1.0); |
- | |
570 | // rs_gen_func_posterize(1, 4); |
- | |
571 | - | ||
572 | rs_gen_func_set(1, 0.0); |
- | |
573 | rs_gen_func_cell(1, 110+100*i, 7+i, NULL, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0); |
- | |
574 | rs_gen_func_normalize(1, 0.0, 1.0); |
- | |
575 | // rs_gen_func_mult_add_value(1, 1, 0.9, 0.1); |
- | |
576 | - | ||
577 | // rs_gen_func_normalmap(2, 3, 3, 1, 1.0); |
- | |
578 | // rs_gen_func_mult(1, 1, 2); |
- | |
579 | - | ||
580 | //rs_gen_tex_out_rgba_set(0.0, 0.0, 0.0, 0.0); |
- | |
581 | //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); |
- | |
582 | // 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); |
- | |
583 | // rs_gen_tex_out_rgba(1, 1, 1, 1, 0.0, 0.0, 0.0, 1.0); |
- | |
584 | - | ||
585 | rs_gen_tex_out_rgba_set(0.0, 0.0, 0.0, 0.0); |
- | |
586 | // rs_gen_tex_out_rgba_set( cr_b[i], cr_g[i], cr_r[i], 0.0); |
- | |
587 | rs_gen_tex_out_rgba(1, 1, 1, 0, cr_b[i], cr_g[i], cr_r[i], 1.0); |
- | |
588 | - | ||
589 | memcpy(game.tex_crystals[i].data, rs_gen_reg.tex_out, CRYSTAL_SIZE*CRYSTAL_SIZE*4 ); |
- | |
590 | }; |
- | |
591 | rs_gen_term(); |
- | |
592 | - | ||
593 | - | ||
594 | - | ||
595 | rs_gen_init(3, EXPLOSION_SIZE); |
- | |
596 | for (i = 0; i < EXPLOSION_FRAMES_COUNT; i++) { |
- | |
597 | - | ||
598 | texture_init(&(game.tex_explosion[i]), EXPLOSION_SIZE, EXPLOSION_SIZE); |
- | |
599 | - | ||
600 | rs_gen_func_set(0, 1.0); |
- | |
601 | // rs_gen_func_radial(0, 0.5, 0.5, 0.3 + 0.5*i/EXPLOSION_FRAMES_COUNT, 0.975, 4.0); |
- | |
602 | // rs_gen_func_set(0, 1.0); |
- | |
603 | - | ||
604 | rs_gen_func_set(1, 0.0); |
- | |
605 | 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); |
- | |
606 | - | ||
607 | rs_gen_tex_out_rgba_set( 0.0, 0.0, 0.0, 0.0); |
- | |
608 | rs_gen_tex_out_rgba(0, 0, 0, 1, 1.0, 1.0, 1.0, 1.0); |
- | |
609 | - | ||
610 | memcpy(game.tex_explosion[i].data, rs_gen_reg.tex_out, EXPLOSION_SIZE*EXPLOSION_SIZE*4 ); |
- | |
Line 611... | Line 457... | ||
611 | }; |
457 | |
612 | rs_gen_term(); |
458 | game_textures_init_stage1(); |
Line 644... | Line 490... | ||
644 | rs_audio_term(); |
490 | rs_audio_term(); |
645 | #endif |
491 | #endif |
Line 646... | Line 492... | ||
646 | 492 | ||
Line 647... | Line 493... | ||
647 | game_font_term(); |
493 | game_font_term(); |
- | 494 | ||
Line 648... | Line -... | ||
648 | - | ||
649 | free(game.scaled_framebuffer); |
- | |
650 | - | ||
651 | texture_free(&game.framebuffer); |
- | |
Line 652... | Line -... | ||
652 | texture_free(&game.tex_logo); |
- | |
Line 653... | Line -... | ||
653 | texture_free(&game.tex_clouds); |
- | |
654 | texture_free(&game.tex_bg); |
- | |
655 | - | ||
656 | // texture_free(&game.tex_gui_line); |
- | |
Line 657... | Line 495... | ||
657 | 495 | game_textures_free(); |
|
658 | // int i; |
496 | |
659 | // for (i = 0; i < ROCKS_COUNT; i++) { |
497 | |
Line 674... | Line 512... | ||
674 | 512 | ||
Line -... | Line 513... | ||
- | 513 | ||
- | 514 | ||
- | 515 | void GameKeyDown(int key, int first) { |
|
- | 516 | ||
- | 517 | if (key == RS_KEY_A) { |
|
Line 675... | Line 518... | ||
675 | 518 | ||
676 | 519 | game.need_redraw = 1; |
|
677 | void GameKeyDown(int key, int first) { |
520 | |
678 | 521 | }; |
|
Line 727... | Line 570... | ||
727 | 570 | ||
Line 728... | Line 571... | ||
728 | }; |
571 | }; |
Line 729... | Line -... | ||
729 | - | ||
730 | if (game.status == STATUS_PLAYING) { |
- | |
731 | - | ||
Line 732... | Line -... | ||
732 | if (key == RS_KEY_A) { |
- | |
Line 733... | Line 572... | ||
733 | 572 | ||
Line 734... | Line -... | ||
734 | - | ||
735 | - | ||
736 | }; |
- | |
737 | 573 | if (game.status == STATUS_PLAYING) { |
|
Line 738... | Line 574... | ||
738 | if (key == RS_KEY_SPACE) { |
574 | |
Line 739... | Line -... | ||
739 | - | ||
740 | // Check and explode match-3 |
- | |
741 | - | ||
742 | - | ||
743 | game.score = 101; |
- | |
744 | - | ||
745 | - | ||
746 | }; |
- | |
747 | - | ||
748 | - | ||
749 | // switch (key) { |
- | |
750 | // |
- | |
751 | // case RS_KEY_ESCAPE: |
- | |
752 | // game.status = STATUS_MENU; |
- | |
753 | // menu_open(0); |
- | |
754 | // break; |
- | |
755 | // case RS_KEY_A: |
- | |
756 | // |
- | |
757 | //// if ( (game.tx > 0) && (game.ty > 5) && (game.tx < GAME_WIDTH-20) && (game.ty < GAME_HEIGHT-10) ) { |
- | |
758 | //// |
- | |
759 | //// soundbuf_play(&game.sound_test1); |
- | |
760 | //// |
- | |
761 | //// game.bullet_index++; |
575 | |
Line 762... | Line 576... | ||
762 | //// game.bullet_index %= BULLETS_COUNT; |
576 | |
Line 763... | Line 577... | ||
763 | //// game.bullet_x[game.bullet_index] = game.tx + 12; |
577 | if (key == RS_KEY_SPACE) { |
Line 792... | Line 606... | ||
792 | }; |
606 | }; |
Line 793... | Line 607... | ||
793 | 607 | ||
Line 794... | Line 608... | ||
794 | }; |
608 | }; |
- | 609 | ||
- | 610 | void GameMouseDown(int x, int y) { |
|
- | 611 | ||
795 | 612 | game.need_redraw = 1; |
|
796 | void GameMouseDown(int x, int y) { |
613 | |
Line 797... | Line 614... | ||
797 | game.tx = x; |
614 | game.tx = x; |
798 | game.ty = y; |
615 | game.ty = y; |