Rev 5229 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5229 | raandoom | 1 | #include "cell.h" |
2 | |||
3 | __u8 tile_draw(tile* t) |
||
4 | { |
||
5 | if (t->value) |
||
6 | { |
||
7 | __u32 bg_color = 0; |
||
8 | __u32 txt_color = 0; |
||
9 | switch (t->value) |
||
10 | { |
||
11 | case 0 : bg_color = CELL_COLOR; break; |
||
12 | case 2 : bg_color = 0xEEE4DA; txt_color = 0x776E65; break; |
||
13 | case 4 : bg_color = 0xEDE0C8; txt_color = 0x776E65; break; |
||
14 | case 8 : bg_color = 0xF2B179; txt_color = 0xF9F6F2; break; |
||
15 | case 16 : bg_color = 0xF59563; txt_color = 0xF9F6F2; break; |
||
16 | case 32 : bg_color = 0xF67C5F; txt_color = 0xF9F6F2; break; |
||
17 | case 64 : bg_color = 0xF65E3B; txt_color = 0xF9F6F2; break; |
||
18 | case 128 : bg_color = 0xEDCF72; txt_color = 0xF9F6F2; break; |
||
19 | case 256 : bg_color = 0xEDCC61; txt_color = 0xF9F6F2; break; |
||
20 | case 512 : bg_color = 0xEDC850; txt_color = 0xF9F6F2; break; |
||
21 | case 1024 : bg_color = 0xEDC53F; txt_color = 0xF9F6F2; break; |
||
22 | case 2048 : bg_color = 0xEDC22E; txt_color = 0xF9F6F2; break; |
||
23 | default : bg_color = 0x3C3A32; txt_color = 0xF9F6F2; break; |
||
24 | } |
||
25 | |||
26 | rect* begin = &t->cell; |
||
27 | rect* end = &t->transition; |
||
28 | |||
29 | if (rect_transform(begin,end,t->ani_step)) |
||
30 | t->animate = false; |
||
31 | |||
5231 | raandoom | 32 | canvas_draw_rect(begin,bg_color); |
33 | canvas_draw_value(begin,t->value,txt_color); |
||
5229 | raandoom | 34 | |
35 | if (t->merged) |
||
36 | { |
||
37 | if (rect_transform(&t->merged_rect,end,t->ani_step) && |
||
38 | (t->animate == false)) |
||
39 | { |
||
40 | t->animate = true; |
||
41 | t->merged = false; |
||
42 | t->value *= 2; |
||
43 | } |
||
44 | |||
5231 | raandoom | 45 | canvas_draw_rect(&t->merged_rect,bg_color); |
46 | canvas_draw_value(&t->merged_rect,t->value,txt_color); |
||
5229 | raandoom | 47 | } |
48 | } |
||
49 | |||
50 | return t->animate; |
||
51 | } |
||
52 | |||
53 | __u8 tile_mergeable(tile* from, tile* to) |
||
54 | { |
||
55 | return (from && !from->merged && |
||
56 | to && !to->merged && |
||
57 | (from->value == to->value)); |
||
58 | } |