Subversion Repositories Kolibri OS

Rev

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