Rev 6167 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6167 | Rev 7984 | ||
---|---|---|---|
1 | //Leency 10.10.2011, JustClicks v2.0, GPL |
- | |
2 | 1 | #include "lib\kolibri.h" |
|
3 | #include "lib\kolibri.h" |
2 | #include "lib\random.h" |
4 | #include "lib\random.h" |
3 | |
- | 4 | unsigned char block[] = FROM "lib\\boxes.raw"; |
|
5 | #include "lib\boxes.txt" |
5 | |
- | 6 | system_colors sc; |
|
6 | system_colors sc; |
7 | |
7 | 8 | //óðîâíè ñëîæíîñòè |
|
8 | //óðîâíè ñëîæíîñòè |
9 | int DIFFICULTY_LEVEL=1; //ïî-óìîë÷àíèþ ñðåäíåå ïîëå |
9 | int DIFFICULTY_LEVEL=1; //ïî-óìîë÷àíèþ ñðåäíåå ïîëå |
10 | char *BOARD_SIZES[]={ "S", "M", "L", 0 }; |
10 | char *BOARD_SIZES[]={ "S\0", "M\0", "L\0", 0 }; |
11 | int DIFFICULTY_LEV_PARAMS[]={ 9, 12, 16 }; |
11 | int DIFFICULTY_LEV_PARAMS[]={ 9, 12, 16 }; |
12 | |
12 | 13 | int BLOCKS_NUM; //êîëè÷åñòâî êâàäðàòèêîâ ïî Õ è ïî Y |
|
13 | int BLOCKS_NUM; //êîëè÷åñòâî êâàäðàòèêîâ ïî Õ è ïî Y |
14 | int BLOCKS_LEFT; //áëîêîâ îñòàëîñü |
14 | int BLOCKS_LEFT; //áëîêîâ îñòàëîñü |
15 | int blocks_matrix[28*28]; //öâåòà äëÿ ïîëÿ ñ êâàäðàòèêàìè |
15 | int blocks_matrix[28*28]; //öâåòà äëÿ ïîëÿ ñ êâàäðàòèêàìè |
16 | |
16 | 17 | #define USER_PANEL_HEIGHT 35 |
|
17 | #define USER_PANEL_HEIGHT 35 |
18 | #define BLOCK_SIZE 21 //ðàçìåð êâàäðàòèêà |
18 | #define BLOCK_SIZE 21 //ðàçìåð êâàäðàòèêà |
19 | #define MARKED 7 |
19 | #define MARKED 7 |
20 | #define DELETED_BLOCK 6 |
20 | #define DELETED_BLOCK 6 |
21 | #define HEADER "Just Clicks v2.2" |
21 | #define HEADER "Just Clicks v2.2" |
22 | |
22 | 23 | #ifndef AUTOBUILD |
|
23 | #ifndef AUTOBUILD |
24 | #include "lang.h--" |
24 | #include "lang.h--" |
25 | #endif |
25 | #endif |
26 | |
26 | 27 | #ifdef LANG_RUS |
|
27 | #ifdef LANG_RUS |
28 | #define NEW_GAME_TEXT " ®¢® [F2]" |
28 | char NEW_GAME_TEXT[]=" ®¢® [F2]"; |
29 | #define RESULT_TEXT "¥§ã«ìâ â: " |
29 | char REZULT_TEXT[]="¥§ã«ìâ â: "; |
30 | #elif LANG_EST |
30 | #elif LANG_EST |
31 | #define NEW_GAME_TEXT "Uus mäng [F2]" |
31 | char NEW_GAME_TEXT[]="Uus mäng [F2]"; |
32 | #define RESULT_TEXT "Tulemus: " |
32 | char REZULT_TEXT[]="Tulemus: "; |
33 | #else |
33 | #else |
34 | #define NEW_GAME_TEXT "New Game [F2]" |
34 | char NEW_GAME_TEXT[]="New Game [F2]"; |
35 | #define RESULT_TEXT "Result: " |
35 | char REZULT_TEXT[]="Result: "; |
36 | #endif |
36 | #endif |
37 | |
37 | 38 | ||
38 | 39 | void main() |
|
39 | void main() |
40 | { |
40 | { |
41 | int id; |
41 | int key_scancode, id; |
42 | |
42 | 43 | BLOCKS_NUM=DIFFICULTY_LEV_PARAMS[DIFFICULTY_LEVEL]; |
|
43 | BLOCKS_NUM=DIFFICULTY_LEV_PARAMS[DIFFICULTY_LEVEL]; |
44 | |
44 | 45 | new_game(); |
|
45 | new_game(); |
46 | |
46 | 47 | loop() |
|
47 | loop() |
48 | switch(WaitEvent()) |
48 | switch(WaitEvent()) |
49 | { |
49 | { |
50 | case evButton: |
50 | case evButton: |
51 | id = @GetButtonID(); |
51 | id = GetButtonID(); |
52 | if (id==1) ExitProcess(); |
52 | if (id==1) ExitProcess(); |
53 | if (id==2) || (id==3) goto _NEW_GAME_MARK; |
53 | if (id==2) || (id==3) goto _NEW_GAME_MARK; |
54 | if (id>=100) |
54 | if (id>=100) |
55 | { |
55 | { |
56 | if (check_for_end()) break; //åñëè èãðà çàêîí÷åíà |
56 | if (check_for_end()) break; //åñëè èãðà çàêîí÷åíà |
57 | |
57 | 58 | move_blocks(id-100); |
|
58 | move_blocks(id-100); |
59 | draw_field(); |
59 | draw_field(); |
60 | |
60 | 61 | draw_clicks_num(); |
|
61 | draw_clicks_num(); |
62 | |
62 | 63 | break; |
|
63 | break; |
64 | } |
64 | } |
65 | if (id==10) //èçìåíÿåì ðàçìåð ïîëÿ |
65 | if (id==10) //èçìåíÿåì ðàçìåð ïîëÿ |
66 | { |
66 | { |
67 | if (DIFFICULTY_LEVEL<2) DIFFICULTY_LEVEL++; else DIFFICULTY_LEVEL=0; |
67 | if (DIFFICULTY_LEVEL<2) DIFFICULTY_LEVEL++; else DIFFICULTY_LEVEL=0; |
68 | |
68 | 69 | BLOCKS_NUM = DIFFICULTY_LEV_PARAMS[DIFFICULTY_LEVEL]; //êîëè÷åñòâî êâàäðàòèêîâ ïî Õ è ïî Y |
|
69 | BLOCKS_NUM = DIFFICULTY_LEV_PARAMS[DIFFICULTY_LEVEL]; //êîëè÷åñòâî êâàäðàòèêîâ ïî Õ è ïî Y |
70 | |
70 | 71 | new_game(); |
|
71 | new_game(); |
72 | |
72 | 73 | MoveSize(-1, -1, BLOCK_SIZE*BLOCKS_NUM +9, BLOCK_SIZE*BLOCKS_NUM +GetSkinHeight()+4+USER_PANEL_HEIGHT); |
|
73 | MoveSize(-1, -1, BLOCK_SIZE*BLOCKS_NUM +9, BLOCK_SIZE*BLOCKS_NUM +GetSkinWidth()+4+USER_PANEL_HEIGHT); |
74 | break; |
74 | break; |
75 | } |
75 | } |
76 | break; |
76 | break; |
77 | case evKey: |
77 | case evKey: |
78 | @GetKeyScancode(); |
78 | key_scancode = GetKeyScancode(); |
79 | if (AL==001) //Escape |
79 | if (key_scancode==001) //Escape |
80 | ExitProcess(); |
80 | ExitProcess(); |
81 | if (AL==060) //F2 |
81 | if (key_scancode==060) //F2 |
82 | { |
82 | { |
83 | _NEW_GAME_MARK: |
83 | _NEW_GAME_MARK: |
84 | new_game(); |
84 | new_game(); |
85 | draw_clicks_num(); |
85 | draw_clicks_num(); |
86 | draw_field(); |
86 | draw_field(); |
87 | } |
87 | } |
88 | break; |
88 | break; |
89 | case evReDraw: |
89 | case evReDraw: |
90 | draw_window(); |
90 | draw_window(); |
91 | } |
91 | } |
92 | } |
92 | } |
93 | |
93 | 94 | ||
94 | 95 | void move_blocks(int button_id) //åñëè ôèøêà îäíà, òî íå óäàëÿåì |
|
95 | void move_blocks(int button_id) //åñëè ôèøêà îäíà, òî íå óäàëÿåì |
96 | { |
96 | { |
97 | int i, j, |
97 | int i, j, |
98 | marked_num=1, |
98 | marked_num=1, |
99 | old_marker=blocks_matrix[button_id], |
99 | old_marker=blocks_matrix[button_id], |
100 | restart; |
100 | restart; |
101 | |
101 | 102 | blocks_matrix[button_id]=MARKED; |
|
102 | blocks_matrix[button_id]=MARKED; |
103 | |
103 | 104 | //âûäåëÿåì âñå ôèøêè òîãî æå ÷âåòà |
|
104 | //âûäåëÿåì âñå ôèøêè òîãî æå ÷âåòà |
105 | _RESTART_MARK: |
105 | _RESTART_MARK: |
106 | restart=0; |
106 | restart=0; |
107 | for (i=0;i |
107 | for (i=0;i |
108 | for (j=0;j |
108 | for (j=0;j |
109 | { |
109 | { |
110 | if (blocks_matrix[i*BLOCKS_NUM+j]<>old_marker) continue; //åñëè ôèøêà íå íóæíîãî öâåòà èä¸ì äàëüøå |
110 | if (blocks_matrix[i*BLOCKS_NUM+j]<>old_marker) continue; //åñëè ôèøêà íå íóæíîãî öâåòà èä¸ì äàëüøå |
111 | if (blocks_matrix[i*BLOCKS_NUM+j]==MARKED) continue; //åñëè ôèøêà óæå îòìå÷åíà, èä¸ì äàëåå |
111 | if (blocks_matrix[i*BLOCKS_NUM+j]==MARKED) continue; //åñëè ôèøêà óæå îòìå÷åíà, èä¸ì äàëåå |
112 | |
112 | 113 | if (j>0) && (blocks_matrix[i*BLOCKS_NUM+j-1]==MARKED) blocks_matrix[i*BLOCKS_NUM+j]=MARKED; //ñìîòðèì ëåâûé |
|
113 | if (j>0) && (blocks_matrix[i*BLOCKS_NUM+j-1]==MARKED) blocks_matrix[i*BLOCKS_NUM+j]=MARKED; //ñìîòðèì ëåâûé |
114 | if (i>0) && (blocks_matrix[i-1*BLOCKS_NUM+j]==MARKED) blocks_matrix[i*BLOCKS_NUM+j]=MARKED; //ñìîòðèì âåðõíèé |
114 | if (i>0) && (blocks_matrix[i-1*BLOCKS_NUM+j]==MARKED) blocks_matrix[i*BLOCKS_NUM+j]=MARKED; //ñìîòðèì âåðõíèé |
115 | if (j |
115 | if (j |
116 | if (i |
116 | if (i |
117 | |
117 | 118 | if (blocks_matrix[i*BLOCKS_NUM+j]==MARKED) //åñëè ôèøêó îòìåòèëè, òî ïîòîì öèêë íóæíî áóäåò ïðîêðóòèòü ñíà÷àëà - ìîæ åù¸ ÷¸ îòìåòèì |
|
118 | if (blocks_matrix[i*BLOCKS_NUM+j]==MARKED) //åñëè ôèøêó îòìåòèëè, òî ïîòîì öèêë íóæíî áóäåò ïðîêðóòèòü ñíà÷àëà - ìîæ åù¸ ÷¸ îòìåòèì |
119 | { |
119 | { |
120 | restart=1; |
120 | restart=1; |
121 | marked_num++; |
121 | marked_num++; |
122 | } |
122 | } |
123 | } |
123 | } |
124 | if (restart) goto _RESTART_MARK; |
124 | if (restart) goto _RESTART_MARK; |
125 | |
125 | 126 | if (marked_num==1) //åñëè áëîê òîëüêî îäèí, óõîäèì |
|
126 | if (marked_num==1) //åñëè áëîê òîëüêî îäèí, óõîäèì |
127 | { |
127 | { |
128 | blocks_matrix[button_id]=old_marker; |
128 | blocks_matrix[button_id]=old_marker; |
129 | return; |
129 | return; |
130 | } |
130 | } |
131 | |
131 | 132 | //äâèãàåì áëîêè ïî âåðòèêàëè |
|
132 | //äâèãàåì áëîêè ïî âåðòèêàëè |
133 | _2_RESTART_MARK: |
133 | _2_RESTART_MARK: |
134 | restart=0; |
134 | restart=0; |
135 | for (i=BLOCKS_NUM;i>0;i--) |
135 | for (i=BLOCKS_NUM;i>0;i--) |
136 | for (j=BLOCKS_NUM;j>=0;j--) |
136 | for (j=BLOCKS_NUM;j>=0;j--) |
137 | { |
137 | { |
138 | if (blocks_matrix[i*BLOCKS_NUM+j]==MARKED) && (blocks_matrix[i-1*BLOCKS_NUM+j]<>blocks_matrix[i*BLOCKS_NUM+j]) |
138 | if (blocks_matrix[i*BLOCKS_NUM+j]==MARKED) && (blocks_matrix[i-1*BLOCKS_NUM+j]<>blocks_matrix[i*BLOCKS_NUM+j]) |
139 | { |
139 | { |
140 | blocks_matrix[i*BLOCKS_NUM+j]> |
140 | blocks_matrix[i*BLOCKS_NUM+j]> |
141 | restart=1; |
141 | restart=1; |
142 | } |
142 | } |
143 | } |
143 | } |
144 | if (restart) goto _2_RESTART_MARK; |
144 | if (restart) goto _2_RESTART_MARK; |
145 | |
145 | 146 | //îòìå÷àåì ôèøêè, êàê óäàë¸ííûå |
|
146 | //îòìå÷àåì ôèøêè, êàê óäàë¸ííûå |
147 | for (i=0;i |
147 | for (i=0;i |
148 | if (blocks_matrix[i]==MARKED) |
148 | if (blocks_matrix[i]==MARKED) |
149 | blocks_matrix[i]=DELETED_BLOCK; |
149 | blocks_matrix[i]=DELETED_BLOCK; |
150 | |
150 | 151 | //äâèãàåì áëîêè âëåâî, åñëè åñòü ïóñòîé ñòîëáåö |
|
151 | //äâèãàåì áëîêè âëåâî, åñëè åñòü ïóñòîé ñòîëáåö |
152 | restart=BLOCKS_NUM; //íå ïðèäóìàë íè÷åãî ëó÷øå :( |
152 | restart=BLOCKS_NUM; //íå ïðèäóìàë íè÷åãî ëó÷øå :( |
153 | |
153 | 154 | _3_RESTART_MARK: |
|
154 | _3_RESTART_MARK: |
155 | for (j=0;j |
155 | for (j=0;j |
156 | if (blocks_matrix[BLOCKS_NUM-1*BLOCKS_NUM+j]==DELETED_BLOCK) |
156 | if (blocks_matrix[BLOCKS_NUM-1*BLOCKS_NUM+j]==DELETED_BLOCK) |
157 | { |
157 | { |
158 | for (i=0;i |
158 | for (i=0;i |
159 | blocks_matrix[i*BLOCKS_NUM+j]> |
159 | blocks_matrix[i*BLOCKS_NUM+j]> |
160 | } |
160 | } |
161 | restart--; |
161 | restart--; |
162 | if (restart) goto _3_RESTART_MARK; |
162 | if (restart) goto _3_RESTART_MARK; |
163 | } |
163 | } |
164 | |
164 | 165 | ||
165 | 166 | void draw_window() |
|
166 | void draw_window() |
167 | { |
167 | { |
168 | int PANEL_Y; |
168 | int PANEL_Y; |
169 | proc_info Form; |
169 | proc_info Form; |
170 | |
170 | 171 | sc.get(); |
|
171 | sc.get(); |
172 | DefineAndDrawWindow(300,176, BLOCK_SIZE*BLOCKS_NUM +9, BLOCK_SIZE*BLOCKS_NUM +GetSkinHeight()+4+USER_PANEL_HEIGHT, |
172 | DefineAndDrawWindow(300,176, BLOCK_SIZE*BLOCKS_NUM +9, BLOCK_SIZE*BLOCKS_NUM +GetSkinWidth()+4+USER_PANEL_HEIGHT, |
173 | 0x74,sc.work,0,0,HEADER); |
173 | 0x74,sc.work,0,0,HEADER); |
174 | |
174 | 175 | //ïðîâåðÿåì íå ñõëîïíóòî ëè îêíî â çàãîëîâîê |
|
175 | //ïðîâåðÿåì íå ñõëîïíóòî ëè îêíî â çàãîëîâîê |
176 | GetProcessInfo(#Form, SelfInfo); |
176 | GetProcessInfo(#Form, SelfInfo); |
177 | if (Form.status_window>2) return; |
177 | if (Form.status_window>2) return; |
178 | |
178 | 179 | ||
179 | 180 | PANEL_Y=BLOCK_SIZE*BLOCKS_NUM; |
|
180 | PANEL_Y=BLOCK_SIZE*BLOCKS_NUM; |
181 | |
181 | 182 | DrawBar(0,PANEL_Y, PANEL_Y, USER_PANEL_HEIGHT, sc.work); //ïàíåëü ñíèçó |
|
182 | DrawBar(0,PANEL_Y, PANEL_Y, USER_PANEL_HEIGHT, sc.work); //ïàíåëü ñíèçó |
183 | |
183 | 184 | DrawCaptButton(10, PANEL_Y+7, 90, 20, 2, sc.work_button, sc.work_button_text,NEW_GAME_TEXT); |
|
184 | DrawCaptButton(10, PANEL_Y+7, 90, 20, 2, sc.work_button, sc.work_button_text,#NEW_GAME_TEXT); |
185 | DrawCaptButton(105,PANEL_Y+7, 20, 20, 10,sc.work_button, sc.work_button_text,BOARD_SIZES[DIFFICULTY_LEVEL]); |
185 | DrawCaptButton(105,PANEL_Y+7, 20, 20, 10,sc.work_button, sc.work_button_text,BOARD_SIZES[DIFFICULTY_LEVEL]); |
186 | |
186 | 187 | draw_field(); |
|
187 | draw_field(); |
188 | |
188 | 189 | draw_clicks_num(); |
|
189 | draw_clicks_num(); |
190 | } |
190 | } |
191 | |
191 | 192 | ||
192 | 193 | int check_for_end() |
|
193 | int check_for_end() |
194 | { |
194 | { |
195 | int i, j, button_id; |
195 | int i, j, button_id; |
196 | |
196 | 197 | if (!BLOCKS_LEFT) return 1; //epic win |
|
197 | if (!BLOCKS_LEFT) return 1; //epic win |
198 | |
198 | 199 | for (i=0;i |
|
199 | for (i=0;i |
200 | for (j=0;j |
200 | for (j=0;j |
201 | { |
201 | { |
202 | button_id=blocks_matrix[i*BLOCKS_NUM+j]; |
202 | button_id=blocks_matrix[i*BLOCKS_NUM+j]; |
203 | |
203 | 204 | if (button_id==DELETED_BLOCK) continue; |
|
204 | if (button_id==DELETED_BLOCK) continue; |
205 | |
205 | 206 | if (j>0) && (blocks_matrix[i*BLOCKS_NUM+j-1]==button_id) return 0; |
|
206 | if (j>0) && (blocks_matrix[i*BLOCKS_NUM+j-1]==button_id) return 0; |
207 | if (i>0) && (blocks_matrix[i-1*BLOCKS_NUM+j]==button_id) return 0; |
207 | if (i>0) && (blocks_matrix[i-1*BLOCKS_NUM+j]==button_id) return 0; |
208 | if (j |
208 | if (j |
209 | if (i |
209 | if (i |
210 | } |
210 | } |
211 | return 2; |
211 | return 2; |
212 | } |
212 | } |
213 | |
213 | 214 | ||
214 | 215 | void draw_clicks_num() |
|
215 | void draw_clicks_num() |
216 | { |
216 | { |
217 | char rezult[15]; |
217 | char rezult[15]; |
218 | int i; |
218 | int i; |
219 | int TEXT_Y=BLOCK_SIZE*BLOCKS_NUM+14; |
219 | int TEXT_Y=BLOCK_SIZE*BLOCKS_NUM+14; |
220 | int TEXT_X=TEXT_Y/2+48; //130; |
220 | int TEXT_X=TEXT_Y/2+48; //130; |
221 | |
221 | 222 | BLOCKS_LEFT=0; |
|
222 | BLOCKS_LEFT=0; |
223 | |
223 | 224 | for (i=0;i |
|
224 | for (i=0;i |
225 | if (blocks_matrix[i]<>DELETED_BLOCK) BLOCKS_LEFT++; |
225 | if (blocks_matrix[i]<>DELETED_BLOCK) BLOCKS_LEFT++; |
226 | |
226 | 227 | DrawBar(TEXT_X, TEXT_Y, 18,9, sc.work); |
|
227 | DrawBar(TEXT_X, TEXT_Y, 18,9, sc.work); |
228 | WriteText(TEXT_X,TEXT_Y,0x80,sc.work_text,IntToStr(BLOCKS_LEFT),0); |
228 | WriteText(TEXT_X,TEXT_Y,0x80,sc.work_text,IntToStr(BLOCKS_LEFT),0); |
229 | |
229 | 230 | if (check_for_end()) |
|
230 | if (check_for_end()) |
231 | { |
231 | { |
232 | copystr(RESULT_TEXT, #rezult); |
232 | copystr(#REZULT_TEXT, #rezult); |
233 | copystr(IntToStr(BLOCKS_LEFT), #rezult+strlen(#rezult)); |
233 | copystr(IntToStr(BLOCKS_LEFT), #rezult+strlen(#rezult)); |
234 | if (check_for_end()==1) copystr("Epic WIN!!1", #rezult); |
234 | if (check_for_end()==1) copystr("Epic WIN!!1", #rezult); |
235 | DrawFlatButton(BLOCK_SIZE*BLOCKS_NUM/2-70, BLOCK_SIZE*BLOCKS_NUM/2-20, 140, 40, 3, #rezult); |
235 | DrawFlatButton(BLOCK_SIZE*BLOCKS_NUM/2-70, BLOCK_SIZE*BLOCKS_NUM/2-20, 140, 40, 3, #rezult); |
236 | } |
236 | } |
237 | } |
237 | } |
238 | |
238 | 239 | ||
239 | 240 | void new_game() |
|
240 | void new_game() |
241 | { |
241 | { |
242 | int i; |
242 | int i; |
243 | |
243 | 244 | //ïÿòü öâåòîâ èñïîëüçóåòñÿ â èãðå äëÿ êâàäðàòèêîâ, MARKED äëÿ òîãî, |
|
244 | //ïÿòü öâåòîâ èñïîëüçóåòñÿ â èãðå äëÿ êâàäðàòèêîâ, MARKED äëÿ òîãî, |
245 | //÷òîáû îòìåòèòü êâàäðàòèêè â ïðîöåññå çàëèâêè è DELETED_BLOCK äëÿ èõ óäàëåíèÿ |
245 | //÷òîáû îòìåòèòü êâàäðàòèêè â ïðîöåññå çàëèâêè è DELETED_BLOCK äëÿ èõ óäàëåíèÿ |
246 | for (i=0;i |
246 | for (i=0;i |
247 | blocks_matrix[i] = random(5); |
247 | blocks_matrix[i] = random(5); |
248 | } |
- | 249 | DeleteButton(3); |
|
248 | DeleteButton(3); |
250 | } |
249 | } |
251 | |
250 | 252 | ||
251 | 253 | void draw_field() |
|
252 | void draw_field() |
254 | { |
253 | { |
255 | int i, j; |
254 | int i, j; |
256 | int current_id; |
255 | int current_id; |
257 | |
256 | 258 | for (i=0;i |
|
257 | for (i=0;i |
259 | for (j=0;j |
258 | for (j=0;j |
260 | { |
259 | { |
261 | current_id = i*BLOCKS_NUM+j; |
260 | current_id = i*BLOCKS_NUM+j; |
262 | DeleteButton(current_id+100); |
261 | DeleteButton(current_id+100); |
263 | if (blocks_matrix[current_id]==DELETED_BLOCK) |
262 | if (blocks_matrix[current_id]==DELETED_BLOCK) |
264 | { |
263 | { |
265 | DrawBar(j*BLOCK_SIZE,i*BLOCK_SIZE, BLOCK_SIZE,BLOCK_SIZE, 0xB2B4BF); |
264 | DrawBar(j*BLOCK_SIZE,i*BLOCK_SIZE, BLOCK_SIZE,BLOCK_SIZE, 0xB2B4BF); |
266 | } |
265 | } |
267 | else |
266 | else |
268 | { |
267 | { |
269 | DefineButton(j*BLOCK_SIZE,i*BLOCK_SIZE,BLOCK_SIZE-1,BLOCK_SIZE-1, current_id+100+BT_HIDE,0); |
268 | DefineButton(j*BLOCK_SIZE,i*BLOCK_SIZE,BLOCK_SIZE-1,BLOCK_SIZE-1, current_id+100+BT_HIDE,0); |
270 | PutImage(blocks_matrix[current_id]*1323+#block,21,21,j*BLOCK_SIZE,i*BLOCK_SIZE); |
269 | PutImage(blocks_matrix[current_id]*1323+#block,21,21,j*BLOCK_SIZE,i*BLOCK_SIZE); |
271 | } |
270 | } |
272 | } |
271 | } |
273 | } |
272 | } |
274 | |
273 | 275 | ||
274 | 276 | void DrawFlatButton(dword x,y,width,height,id,text) |
|
275 | void DrawFlatButton(dword x,y,width,height,id,text) |
277 | { |
276 | { |
278 | DrawRegion_3D(x,y,width,height,sc.work_graph,sc.work_graph); |
277 | DrawRegion_3D(x,y,width,height,sc.work_graph,sc.work_graph); |
279 | DrawRegion_3D(x+1,y+1,width-2,height-2,0xFFFFFF,sc.work); |
278 | DrawRegion_3D(x+1,y+1,width-2,height-2,0xFFFFFF,sc.work); |
280 | DrawBar(x+2,y+2,width-3,height-3,sc.work); |
279 | DrawBar(x+2,y+2,width-3,height-3,sc.work); |
281 | IF (id) DefineButton(x,y,width,height,id+BT_HIDE,sc.work); |
280 | IF (id) DefineButton(x,y,width,height,id+BT_HIDE,sc.work); |
282 | WriteText(-strlen(text)*6+width/2+x+1,height/2-3+y,0x80,sc.work_text,text,0); |
281 | WriteText(-strlen(text)*6+width/2+x+1,height/2-3+y,0x80,sc.work_text,text,0); |
283 | } |
282 | } |
284 | |
283 | 285 | stop: |
|
284 | stop: |
286 | > |
285 | > |
287 | >> |
286 | > |
288 | > |
287 | >> |
289 | > |
288 | > |
290 | > |
289 | > |
291 | > |
290 | > |
292 | > |
291 | > |
293 | > |
292 | > |
294 | > |
293 | > |
295 | >>> |
294 | > |
296 | > |
295 | >>> |
297 | >2)> |
296 | > |
- | |
297 | >2)> |
- |