Rev 7151 | Rev 7155 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
7089 | leency | 1 | struct _colors |
2 | { |
||
7151 | leency | 3 | |
7089 | leency | 4 | unsigned rows, columns; |
7151 | leency | 5 | dword mas[32*32]; |
6 | dword img; |
||
7 | void set_pixel(); |
||
8 | dword get_pixel(); |
||
7089 | leency | 9 | dword get_image(); |
7096 | leency | 10 | void move(); |
7150 | leency | 11 | }; |
7089 | leency | 12 | |
7151 | leency | 13 | void _colors::set_pixel(int _r, _c, _color) |
7089 | leency | 14 | { |
7151 | leency | 15 | mas[columns*_r + _c] = _color; |
7089 | leency | 16 | } |
17 | |||
7151 | leency | 18 | dword _colors::get_pixel(int _r, _c) |
7089 | leency | 19 | { |
7151 | leency | 20 | return mas[columns*_r + _c]; |
7089 | leency | 21 | } |
22 | |||
23 | dword _colors::get_image() |
||
24 | { |
||
25 | int r=0, c=0; |
||
26 | dword i; |
||
27 | |||
7151 | leency | 28 | free(img); |
29 | i = img = malloc(rows*columns*3); |
||
7089 | leency | 30 | |
31 | for (r = 0; r < rows; r++) |
||
32 | { |
||
33 | for (c = 0; c < columns; c++) |
||
34 | { |
||
7151 | leency | 35 | rgb.DwordToRgb(get_pixel(r,c)); |
7089 | leency | 36 | ESBYTE[i] = rgb.b; |
37 | ESBYTE[i+1] = rgb.g; |
||
38 | ESBYTE[i+2] = rgb.r; |
||
39 | i += 3; |
||
40 | } |
||
41 | } |
||
7151 | leency | 42 | return img; |
7089 | leency | 43 | } |
44 | |||
7096 | leency | 45 | enum { |
7151 | leency | 46 | MOVE_LEFT, |
47 | MOVE_RIGHT, |
||
48 | MOVE_UP, |
||
49 | MOVE_DOWN, |
||
50 | FLIP_VER, |
||
51 | FLIP_HOR, |
||
52 | ROTE |
||
7096 | leency | 53 | }; |
7151 | leency | 54 | void _colors::move(int _direction) |
7096 | leency | 55 | { |
56 | int r, c; |
||
57 | dword first_element_data; |
||
58 | |||
7154 | leency | 59 | switch(_direction) |
7096 | leency | 60 | { |
7154 | leency | 61 | case MOVE_LEFT: |
62 | for (r = 0; r < rows; r++) |
||
63 | { |
||
64 | first_element_data = get_pixel(r, 0); |
||
65 | for (c = 0; c < columns-1; c++) set_pixel(r, c, get_pixel(r, c+1)); |
||
66 | set_pixel(r, columns-1, first_element_data); |
||
67 | } |
||
68 | break; |
||
69 | case MOVE_RIGHT: |
||
70 | for (r = 0; r < rows; r++) |
||
71 | { |
||
72 | first_element_data = get_pixel(r, columns-1); |
||
73 | for (c = columns-1; c > 0; c--) set_pixel(r, c, get_pixel(r, c-1)); |
||
74 | set_pixel(r, 0, first_element_data); |
||
75 | } |
||
76 | break; |
||
77 | case MOVE_UP: |
||
78 | for (c = 0; c < columns; c++) |
||
79 | { |
||
80 | first_element_data = get_pixel(0, c); |
||
81 | for (r = 0; r < rows-1; r++) set_pixel(r, c, get_pixel(r+1, c)); |
||
82 | set_pixel(rows-1, c, first_element_data); |
||
83 | } |
||
84 | break; |
||
85 | case MOVE_DOWN: |
||
86 | for (c = 0; c < columns; c++) |
||
87 | { |
||
88 | first_element_data = get_pixel(rows-1, c); |
||
89 | for (r = rows-1; r > 0; r--) set_pixel(r, c, get_pixel(r-1, c)); |
||
90 | set_pixel(0, c, first_element_data); |
||
91 | } |
||
92 | break; |
||
93 | case FLIP_HOR: |
||
94 | for (r = 0; r < rows; r++) |
||
95 | { |
||
96 | for (c = 0; c < columns/2; c++) { |
||
97 | first_element_data = get_pixel(r, c); |
||
98 | set_pixel(r, c, get_pixel(r, columns-c-1)); |
||
99 | set_pixel(r, columns-c-1, first_element_data); |
||
100 | } |
||
101 | } |
||
102 | break; |
||
103 | case FLIP_VER: |
||
104 | for (c = 0; c < columns; c++) |
||
105 | { |
||
106 | for (r = 0; r < rows/2; r++) { |
||
107 | first_element_data = get_pixel(r, c); |
||
108 | set_pixel(r, c, get_pixel(rows-r-1, c)); |
||
109 | set_pixel(rows-r-1, c, first_element_data); |
||
110 | } |
||
111 | } |
||
112 | break; |
||
7096 | leency | 113 | } |
114 | }>>>>>>>>>>>> |
||
7147 | leency | 115 |