Subversion Repositories Kolibri OS

Rev

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
>
297
>