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