Rev 8081 | Rev 8324 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8081 | Rev 8084 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | #include |
1 | #include |
2 | #include |
2 | #include |
3 | #include |
3 | #include |
4 | #include |
4 | #include |
- | 5 | #include |
|
Line 5... | Line 6... | ||
5 | 6 | ||
Line 6... | Line -... | ||
6 | #include "kolibri_libimg.h" |
- | |
7 | - | ||
8 | /* |
- | |
Line -... | Line 7... | ||
- | 7 | #include "kolibri_libimg.h" |
|
- | 8 | ||
9 | EVENTS LOOK LIKE IN C-- |
9 | |
10 | */ |
10 | |
11 | 11 | //EVENTS LOOK LIKE IN C-- |
|
- | 12 | #define evReDraw 1 |
|
- | 13 | #define evKey 2 |
|
- | 14 | #define evButton 3 |
|
- | 15 | #define evExit 4 |
|
- | 16 | #define evDesktop 5 |
|
- | 17 | #define evMouse 6 |
|
Line -... | Line 18... | ||
- | 18 | #define evIPC 7 |
|
Line -... | Line 19... | ||
- | 19 | #define evNetwork 8 |
|
12 | #define evReDraw 1 |
20 | #define evDebug 9 |
13 | #define evKey 2 |
- | |
14 | #define evButton 3 |
21 | |
Line 15... | Line -... | ||
15 | - | ||
16 | 22 | ||
17 | 23 | #define RESTART 99 |
|
18 | #define _size 4 |
24 | |
19 | 25 | #define b_color 0xbbbbbb |
|
20 | #define bs 44 |
26 | #define _size 4 |
- | 27 | #define bs 44 |
|
- | 28 | ||
- | 29 | int field[_size][_size] = { |
|
- | 30 | {0, 0, 0, 1}, |
|
21 | 31 | {0, 0, 1, 0}, |
|
- | 32 | {0, 0, 0, 1}, |
|
- | 33 | {1, 0, 0, 0} |
|
Line 22... | Line 34... | ||
22 | 34 | /*{0, 0, 0, 0}, |
|
Line 23... | Line -... | ||
23 | int field[_size][_size] = { |
- | |
Line -... | Line 35... | ||
- | 35 | {0, 0, 0, 0}, |
|
24 | {0, 0, 0, 1}, |
36 | {0, 0, 0, 0}, |
25 | {0, 0, 1, 0}, |
37 | {0, 0, 0, 0}*/ |
26 | {0, 0, 0, 1}, |
38 | }; |
Line 59... | Line 71... | ||
59 | 71 | ||
60 | return fdata; |
72 | return fdata; |
Line 61... | Line -... | ||
61 | } |
- | |
62 | - | ||
63 | 73 | } |
|
64 | 74 | ||
65 | 75 | ||
66 | void load_pict() { |
76 | void load_pict() { |
Line 89... | Line 99... | ||
89 | img_to_rgb2(image_data, VER); |
99 | img_to_rgb2(image_data, VER); |
Line 90... | Line 100... | ||
90 | 100 | ||
91 | img_destroy(image_data); |
101 | img_destroy(image_data); |
92 | free(filedata); |
102 | free(filedata); |
- | 103 | } |
|
Line 93... | Line -... | ||
93 | } |
- | |
94 | - | ||
95 | - | ||
96 | - | ||
97 | 104 | // END OF PICTURES LOAD CODE |
|
98 | // END OF PIC LOAD CODE |
105 | |
99 | 106 | ||
100 | 107 | ||
101 | void redraw_buttons() { |
108 | void redraw_buttons() { |
Line 102... | Line 109... | ||
102 | for (int j = 5, yy = 0; yy<_size; j+=bs, yy++) |
109 | for (int j = 5, yy = 0; yy<_size; j+=bs, yy++) |
103 | for (int i = 15, xx = 0; xx<_size; i+=bs, xx++) |
110 | for (int i = 15, xx = 0; xx<_size; i+=bs, xx++) |
104 | { |
111 | { |
105 | define_button(65536 * i + (bs-1), 65536 * j + (bs-1), ((xx+1)*10)+yy+1, 0xbbbbbb); |
112 | define_button(65536 * i + (bs-1), 65536 * j + (bs-1), ((xx+1)*10)+yy+1, b_color); |
Line 106... | Line 113... | ||
106 | 113 | ||
107 | if (field[yy][xx]) draw_bitmap(VER, i, j, bs, bs); |
114 | if (field[yy][xx]) draw_bitmap(VER, i, j, bs, bs); |
108 | else draw_bitmap(HOR, i, j, bs, bs); |
115 | else draw_bitmap(HOR, i, j, bs, bs); |
109 | } |
116 | } |
110 | } |
117 | } |
111 | 118 | ||
Line -... | Line 119... | ||
- | 119 | void draw_game_window(){ |
|
- | 120 | BeginDraw(); |
|
- | 121 | DrawWindow(215,100,220, 220,title,b_color,0x34); |
|
- | 122 | redraw_buttons(); |
|
- | 123 | EndDraw(); |
|
- | 124 | } |
|
- | 125 | ||
- | 126 | ||
- | 127 | ||
- | 128 | static inline |
|
- | 129 | void draw_text_sysNEW(const char *text, int x, int y, int len, int fontType, color_t color) |
|
- | 130 | { |
|
- | 131 | __asm__ __volatile__( |
|
- | 132 | "int $0x40" |
|
- | 133 | ::"a"(4),"d"(text), |
|
- | 134 | "b"((x << 16) | y), |
|
- | 135 | "S"(len),"c"(fontType<<24+color) |
|
- | 136 | :"memory"); |
|
- | 137 | } |
|
- | 138 | ||
- | 139 | void SetUp() { |
|
- | 140 | for (int y = 0; y<_size; y++) |
|
- | 141 | for (int x = 0; x<_size; x++) |
|
- | 142 | { |
|
- | 143 | field[x][y] = rand() % 2; |
|
- | 144 | } |
|
- | 145 | } |
|
- | 146 | ||
- | 147 | void draw_victory_window() { |
|
- | 148 | BeginDraw(); |
|
- | 149 | DrawWindow(215,100,220, 220,title,b_color,0x34); |
|
- | 150 | ||
- | 151 | draw_text_sysNEW("Ну вы, и", 10, 10, strlen("Ну вы, и"), 0xB1, 0x000000); |
|
- | 152 | draw_text_sysNEW("медвежатник,", 10, 50, strlen("Ну вы, и медвежатник,"), 0xB1, 0x000000); |
|
- | 153 | draw_text_sysNEW("Шеф!", 12, 90, strlen("Шеф!"), 0xB1, 0x000000); |
|
- | 154 | ||
- | 155 | if (debug_pr) { |
|
- | 156 | printf("Fridge: Very great!\n"); |
|
- | 157 | debug_pr = 0; |
|
- | 158 | } |
|
- | 159 | ||
112 | void draw_window(){ |
160 | define_button(65536 * ((220/2)-(50)) + 140, 65536 * 140 + 25+12, RESTART, 0x9A9A9A); |
113 | BeginDraw(); |
161 | draw_text_sysNEW("Заново", 80, 145, strlen("Заново"), 0xB1, 0x000000); |
114 | DrawWindow(215,100,220, 220,title,0xbbbbbb,0x34); |
162 | EndDraw(); |
- | 163 | } |
|
- | 164 | ||
- | 165 | ||
- | 166 | ||
- | 167 | void Button() { |
|
115 | redraw_buttons(); |
168 | int id = get_os_button(); |
116 | EndDraw(); |
169 | if (id == 1) exit(0); else |
117 | } |
170 | if (id == RESTART) { |
Line 118... | Line 171... | ||
118 | 171 | SetUp(); |
|
Line 133... | Line 186... | ||
133 | 186 | ||
134 | redraw_buttons(); |
187 | redraw_buttons(); |
135 | } |
188 | } |
Line -... | Line 189... | ||
- | 189 | } |
|
- | 190 | ||
- | 191 | ||
- | 192 | int fridge_opened() { |
|
136 | } |
193 | int fr_op = 0; |
137 | 194 | for (int y = 0; y<_size; y++) |
|
- | 195 | for (int x = 0; x<_size; x++) |
|
- | 196 | { |
|
- | 197 | fr_op += field[x][y]; |
|
- | 198 | } |
|
- | 199 | if (fr_op == 0) return 1; |
|
- | 200 | return 0; |
|
- | 201 | } |
|
- | 202 | ||
- | 203 | ||
- | 204 | int main() |
|
- | 205 | { |
|
138 | int main(int argc, char **argv) |
206 | srand(time(0)); |
139 | { |
207 | |
140 | if (kolibri_libimg_init() == -1) |
208 | if (kolibri_libimg_init() == -1) |
141 | { |
209 | { |
142 | printf("Can not load libimg.obj!\n"); |
210 | printf("Can not load libimg.obj!\n"); |
143 | exit(1); |
- | |
144 | } |
211 | exit(1); |
Line 145... | Line 212... | ||
145 | 212 | } |
|
146 | load_pict(); |
213 | load_pict(); |
147 | 214 | ||
148 | draw_window(); |
215 | draw_game_window(); |
149 | while(1) |
216 | while(1) |
150 | { |
217 | { |
151 | switch(get_os_event()) |
218 | switch(get_os_event()) |
- | 219 | { |
|
- | 220 | case evButton: |
|
- | 221 | Button(); |
|
- | 222 | if (fridge_opened()) { |
|
152 | { |
223 | vict = 1; |
153 | case evButton: |
224 | debug_pr = 1; |
Line 154... | Line 225... | ||
154 | Button(); |
225 | draw_victory_window(); |
155 | 226 | } |
|
156 | break; |
227 | break; |
Line 157... | Line 228... | ||
157 | 228 | ||
- | 229 | case evKey: |
|
158 | case evKey: |
230 | get_key(); |
159 | get_key(); |
231 | break; |
160 | break; |
232 | |
161 | 233 | case evReDraw: |
|
162 | case evReDraw: |
234 | if (!vict) draw_game_window(); |