Subversion Repositories Kolibri OS

Rev

Rev 5340 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5340 Rev 5474
Line 42... Line 42...
42
#define FIELD_BOX_WATER		23
42
#define FIELD_BOX_WATER		23
43
#define FIELD_BRICK_DES		24
43
#define FIELD_BRICK_DES		24
44
#define FIELD_CRATER		25
44
#define FIELD_CRATER		25
Line 45... Line 45...
45
 
45
 
-
 
46
char* header = "Laser Tank";
Line 46... Line 47...
46
char* header = "Laser Tank";
47
bool w_redraw = true;
47
 
48
 
48
struct Level
49
struct Level
49
{
50
{
Line 50... Line 51...
50
	Byte fileds[16][16];
51
	Byte fileds[16][16];
51
};
52
};
52
 
53
 
53
void pause(int time)
54
void pause(int time)
-
 
55
{
-
 
56
	kos_Pause(time);
54
{
57
	Byte keyCode;
-
 
58
	Dword buttons;
55
	kos_Pause(time);
59
	int mX, mY;
-
 
60
	for (int i = 0; i < 10; ++i)
-
 
61
	{
56
	Byte keyCode;
62
		kos_GetKey(keyCode);
Line 57... Line 63...
57
	for (int i = 0; i < 10; ++i)
63
		kos_GetMouseState(buttons, mX, mY);
58
		kos_GetKey(keyCode);
64
	}
59
}
65
}
60
 
66
 
-
 
67
Level *levels;
Line 61... Line 68...
61
Level *levels;
68
int levelCount = 0;
62
int levelCount = 0;
69
int levelIndex = 0;
63
int levelIndex = 0;
70
int levelPage = 0;
64
int levelPage = 0;
71
float clickTime = 0;
Line 174... Line 181...
174
 
181
 
175
void SetMode(int mode)
182
void SetMode(int mode)
176
{
183
{
177
	gameMode = mode;
184
	gameMode = mode;
-
 
185
	draw_window();
-
 
186
 
178
	draw_window();
187
	pause(40);
Line 179... Line 188...
179
}
188
}
180
 
189
 
181
bool IsWater(Point pos)
190
bool IsWater(Point pos)
Line 926... Line 935...
926
	}
935
	}
927
}
936
}
Line 928... Line 937...
928
 
937
 
929
void key_press(int key)
938
void key_press(int key)
-
 
939
{
-
 
940
	sProcessInfo sPI;
-
 
941
	kos_ProcessInfo(&sPI);
-
 
942
	if (sPI.rawData[70] & 0x04)
930
{
943
		return;
Line 931... Line 944...
931
	//rtlDebugOutString(ftoa(key));
944
	//rtlDebugOutString(ftoa(key));
932
	 
945
 
933
	switch (gameMode)
946
	switch (gameMode)
Line 990... Line 1003...
990
 
1003
 
991
		break;
1004
		break;
992
	case MODE_PAUSE:
1005
	case MODE_PAUSE:
993
		if (key == 27)
1006
		if (key == 27)
994
			SetMode(MODE_LEVELS);
1007
			SetMode(MODE_LEVELS);
995
	
1008
		else
996
		if ((key == 32 || key == 13) && (gameStatus == GAME_NONE || (gameStatus == GAME_VICTORY && levelIndex < (levelCount - 1))))
1009
			if ((key == 32 || key == 13) && (gameStatus == GAME_NONE || (gameStatus == GAME_VICTORY && levelIndex < (levelCount - 1))))
997
		{
1010
			{
998
			if (gameStatus == GAME_VICTORY)
1011
				if (gameStatus == GAME_VICTORY)
999
				openLevel(levelIndex + 1);
1012
					openLevel(levelIndex + 1);
1000
			SetMode(MODE_GAME);
1013
				SetMode(MODE_GAME);
1001
		}
1014
			}
1002
 
1015
			else
1003
		if (key == 114 || (gameStatus == GAME_DEFEAT && (key == 32 || key == 13)))
1016
				if (key == 114)
1004
		{
1017
				{
1005
			openLevel(levelIndex);
1018
					openLevel(levelIndex);
1006
			SetMode(MODE_GAME);
1019
					SetMode(MODE_GAME);
1007
		}
1020
				}
Line 1145... Line 1158...
1145
				objnumbers->Draw(position + Point(18, 12), 0, number, color);
1158
				objnumbers->Draw(position + Point(18, 12), 0, number, color);
1146
}
1159
}
Line 1147... Line 1160...
1147
 
1160
 
1148
void draw_window(void)
1161
void draw_window(void)
-
 
1162
{
-
 
1163
	if (w_redraw)
1149
{
1164
	{
-
 
1165
		kos_WindowRedrawStatus(1);
-
 
1166
 
-
 
1167
		//kos_DefineAndDrawWindow(50, 50, 640, 506 - 22 + kos_GetSkinHeight(), 0x74, 0xEEEEEE, 0, 0, (Dword)windowTitle);
1150
	kos_WindowRedrawStatus(1);
1168
 
-
 
1169
		kos_DefineAndDrawWindow(10, 40, 384 + 9, 384 + 25, 0x74, 0x444444, 0, 0, (Dword)header);
-
 
1170
		kos_WindowRedrawStatus(2);
-
 
1171
		w_redraw = false;
-
 
1172
	}
1151
	kos_DefineAndDrawWindow(10, 40, 384 + 9, 384 + 25, 0x33, 0x444444, 0, 0, (Dword)header);
1173
 
1152
	Point level_pos = Point(0, 0);
1174
	Point level_pos = Point(0, 0);
1153
	switch (gameMode)
1175
	switch (gameMode)
1154
	{
1176
	{
1155
	case MODE_MENU:
1177
	case MODE_MENU:
Line 1249... Line 1271...
1249
			objPlayer->Draw(Point(0, 0), player.angle);
1271
			objPlayer->Draw(Point(0, 0), player.angle);
1250
			renderPlayer->Draw(player.position * 24);
1272
			renderPlayer->Draw(player.position * 24);
1251
		}
1273
		}
1252
	break;
1274
	break;
1253
	}
1275
	}
1254
	kos_WindowRedrawStatus(2);
-
 
1255
}
1276
}
Line 1256... Line 1277...
1256
 
1277
 
1257
void LevelsLoad()
1278
void LevelsLoad()
1258
{
1279
{
Line 1447... Line 1468...
1447
	for (;;)
1468
	for (;;)
1448
	{
1469
	{
1449
		switch (kos_WaitForEvent())
1470
		switch (kos_WaitForEvent())
1450
		{
1471
		{
1451
		case 1:
1472
		case 1:
-
 
1473
			w_redraw = true;
1452
			draw_window();
1474
			draw_window();
1453
			break;
1475
			break;
1454
		case 2:
1476
		case 2:
1455
			Byte keyCode;
1477
			Byte keyCode;
1456
			kos_GetKey(keyCode);
1478
			kos_GetKey(keyCode);