Rev 4254 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4254 | Rev 6167 | ||
---|---|---|---|
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=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.1" |
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 | char NEW_GAME_TEXT[]=" ®¢® [F2]"; |
28 | char NEW_GAME_TEXT[]=" ®¢® [F2]"; |
29 | char REZULT_TEXT[]="¥§ã«ìâ â: "; |
29 | char REZULT_TEXT[]="¥§ã«ìâ â: "; |
30 | #elif LANG_EST |
30 | #elif LANG_EST |
31 | char NEW_GAME_TEXT[]="Uus mäng [F2]"; |
31 | char NEW_GAME_TEXT[]="Uus mäng [F2]"; |
32 | char REZULT_TEXT[]="Tulemus: "; |
32 | char REZULT_TEXT[]="Tulemus: "; |
33 | #else |
33 | #else |
34 | char NEW_GAME_TEXT[]="New Game [F2]"; |
34 | char NEW_GAME_TEXT[]="New Game [F2]"; |
35 | char REZULT_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 key, 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 +GetSkinWidth()+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 | key = GetKey(); |
78 | key_scancode = GetKeyScancode(); |
79 | if (key==027) //Escape |
79 | if (key_scancode==001) //Escape |
80 | ExitProcess(); |
80 | ExitProcess(); |
81 | if (key==051) //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 +GetSkinWidth()+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 | - | ||
184 | //íîâàÿ èãðà |
- | |
185 | DefineButton(10,PANEL_Y+7, 13*6+6, 20, 2,sc.work_button); |
183 | |
186 | WriteText(10+4,PANEL_Y+14,0x80,sc.work_button_text,#NEW_GAME_TEXT,0); |
- | |
187 | - | ||
188 | - | ||
189 | //êíîïî÷êa âûáîðà óðîâíÿ ñëîæíîñòè |
- | |
190 | DefineButton(95,PANEL_Y+7, 20,20, 10,sc.work_button); |
184 | DrawCaptButton(10, PANEL_Y+7, 90, 20, 2, sc.work_button, sc.work_button_text,#NEW_GAME_TEXT); |
191 | WriteText(95+8,PANEL_Y+14,0x80,sc.work_button_text,BOARD_SIZES[DIFFICULTY_LEVEL],0); |
185 | DrawCaptButton(105,PANEL_Y+7, 20, 20, 10,sc.work_button, sc.work_button_text,BOARD_SIZES[DIFFICULTY_LEVEL]); |
192 | 186 | ||
193 | draw_field(); |
187 | draw_field(); |
194 | 188 | ||
195 | draw_clicks_num(); |
189 | draw_clicks_num(); |
196 | } |
190 | } |
197 | 191 | ||
198 | 192 | ||
199 | int check_for_end() |
193 | int check_for_end() |
200 | { |
194 | { |
201 | int i, j, button_id; |
195 | int i, j, button_id; |
202 | 196 | ||
203 | if (!BLOCKS_LEFT) return 1; //epic win |
197 | if (!BLOCKS_LEFT) return 1; //epic win |
204 | 198 | ||
205 | for (i=0;i |
199 | for (i=0;i |
206 | for (j=0;j |
200 | for (j=0;j |
207 | { |
201 | { |
208 | button_id=blocks_matrix[i*BLOCKS_NUM+j]; |
202 | button_id=blocks_matrix[i*BLOCKS_NUM+j]; |
209 | 203 | ||
210 | if (button_id==DELETED_BLOCK) continue; |
204 | if (button_id==DELETED_BLOCK) continue; |
211 | 205 | ||
212 | 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; |
213 | 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; |
214 | if (j |
208 | if (j |
215 | if (i |
209 | if (i |
216 | } |
210 | } |
217 | return 2; |
211 | return 2; |
218 | } |
212 | } |
219 | 213 | ||
220 | 214 | ||
221 | void draw_clicks_num() |
215 | void draw_clicks_num() |
222 | { |
216 | { |
223 | char rezult[15]; |
217 | char rezult[15]; |
224 | int i; |
218 | int i; |
225 | int TEXT_Y=BLOCK_SIZE*BLOCKS_NUM+14; |
219 | int TEXT_Y=BLOCK_SIZE*BLOCKS_NUM+14; |
226 | int TEXT_X=TEXT_Y/2+48; //130; |
220 | int TEXT_X=TEXT_Y/2+48; //130; |
227 | 221 | ||
228 | BLOCKS_LEFT=0; |
222 | BLOCKS_LEFT=0; |
229 | 223 | ||
230 | for (i=0;i |
224 | for (i=0;i |
231 | if (blocks_matrix[i]<>DELETED_BLOCK) BLOCKS_LEFT++; |
225 | if (blocks_matrix[i]<>DELETED_BLOCK) BLOCKS_LEFT++; |
232 | 226 | ||
233 | DrawBar(TEXT_X, TEXT_Y, 18,9, sc.work); |
227 | DrawBar(TEXT_X, TEXT_Y, 18,9, sc.work); |
234 | 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); |
235 | 229 | ||
236 | if (check_for_end()) |
230 | if (check_for_end()) |
237 | { |
231 | { |
238 | copystr(#REZULT_TEXT, #rezult); |
232 | copystr(#REZULT_TEXT, #rezult); |
239 | copystr(IntToStr(BLOCKS_LEFT), #rezult+strlen(#rezult)); |
233 | copystr(IntToStr(BLOCKS_LEFT), #rezult+strlen(#rezult)); |
240 | if (check_for_end()==1) copystr("Epic WIN!!1", #rezult); |
234 | if (check_for_end()==1) copystr("Epic WIN!!1", #rezult); |
241 | 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); |
242 | } |
236 | } |
243 | } |
237 | } |
244 | 238 | ||
245 | 239 | ||
246 | void new_game() |
240 | void new_game() |
247 | { |
241 | { |
248 | int i; |
242 | int i; |
249 | 243 | ||
250 | //ïÿòü öâåòîâ èñïîëüçóåòñÿ â èãðå äëÿ êâàäðàòèêîâ, MARKED äëÿ òîãî, |
244 | //ïÿòü öâåòîâ èñïîëüçóåòñÿ â èãðå äëÿ êâàäðàòèêîâ, MARKED äëÿ òîãî, |
251 | //÷òîáû îòìåòèòü êâàäðàòèêè â ïðîöåññå çàëèâêè è DELETED_BLOCK äëÿ èõ óäàëåíèÿ |
245 | //÷òîáû îòìåòèòü êâàäðàòèêè â ïðîöåññå çàëèâêè è DELETED_BLOCK äëÿ èõ óäàëåíèÿ |
252 | for (i=0;i |
246 | for (i=0;i |
253 | blocks_matrix[i] = random(5); |
247 | blocks_matrix[i] = random(5); |
254 | DeleteButton(3); |
248 | DeleteButton(3); |
255 | } |
249 | } |
256 | 250 | ||
257 | 251 | ||
258 | void draw_field() |
252 | void draw_field() |
259 | { |
253 | { |
260 | int i, j; |
254 | int i, j; |
261 | int current_id; |
255 | int current_id; |
262 | 256 | ||
263 | for (i=0;i |
257 | for (i=0;i |
264 | for (j=0;j |
258 | for (j=0;j |
265 | { |
259 | { |
266 | current_id = i*BLOCKS_NUM+j; |
260 | current_id = i*BLOCKS_NUM+j; |
267 | DeleteButton(current_id+100); |
261 | DeleteButton(current_id+100); |
268 | if (blocks_matrix[current_id]==DELETED_BLOCK) |
262 | if (blocks_matrix[current_id]==DELETED_BLOCK) |
269 | { |
263 | { |
270 | 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); |
271 | } |
265 | } |
272 | else |
266 | else |
273 | { |
267 | { |
274 | 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); |
275 | PutImage(blocks_matrix[current_id]*1323+#img,21,21,j*BLOCK_SIZE,i*BLOCK_SIZE); |
269 | PutImage(blocks_matrix[current_id]*1323+#block,21,21,j*BLOCK_SIZE,i*BLOCK_SIZE); |
276 | } |
270 | } |
277 | } |
271 | } |
278 | } |
272 | } |
279 | 273 | ||
280 | 274 | ||
281 | void DrawFlatButton(dword x,y,width,height,id,text) |
275 | void DrawFlatButton(dword x,y,width,height,id,text) |
282 | { |
276 | { |
283 | 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); |
284 | 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); |
285 | DrawBar(x+2,y+2,width-3,height-3,sc.work); |
279 | DrawBar(x+2,y+2,width-3,height-3,sc.work); |
286 | 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); |
287 | 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); |
288 | } |
282 | } |
289 | 283 | ||
290 | stop: |
284 | stop: |
291 | > |
285 | > |
292 | > |
286 | > |
293 | >> |
287 | >> |
294 | > |
288 | > |
295 | > |
289 | > |
296 | > |
290 | > |
297 | > |
291 | > |
298 | > |
292 | > |
299 | > |
293 | > |
300 | > |
294 | > |
301 | >>> |
295 | >>> |
302 | > |
296 | > |
303 | >2)> |
297 | >2)> |