From 850c90fc1852ccd234a096281aa88e4a61c2d39e Mon Sep 17 00:00:00 2001 From: ZblCoder Date: Mon, 29 Dec 2014 14:38:28 +0000 Subject: [PATCH] LaserTank: gun added, brick animation destroyer added git-svn-id: svn://kolibrios.org@5287 a494cfbc-eb01-0410-851d-a64ba20cac60 --- data/common/games/LaserTank/arh.pak | Bin 541476 -> 584100 bytes data/common/games/LaserTank/levels.lvl | Bin 1028 -> 1028 bytes programs/games/LaserTank/trunk/LaserTank.cpp | 555 +++++++++++-------- programs/games/LaserTank/trunk/LaserTank.sdf | Bin 2490368 -> 2490368 bytes 4 files changed, 333 insertions(+), 222 deletions(-) diff --git a/data/common/games/LaserTank/arh.pak b/data/common/games/LaserTank/arh.pak index b9be3f86b8c2d2ef29c2d16d9aa3abc4c28a8b6b..2b1722081d378279ecb7b7313d95b4317798452c 100644 GIT binary patch delta 65817 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 delta 18948 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 B`a%Ez diff --git a/data/common/games/LaserTank/levels.lvl b/data/common/games/LaserTank/levels.lvl index dc7b894f6785422397a69b7d9ef463679aa48c48..ae454958eade26f006afe419a056eeb7728b0eac 100644 GIT binary patch literal 1028 zcmd5)(GCM42oo*aoi6+T&t1`pxYs3@>w}?C1sYTO1qM8ghlo6}xKJR@Ev}JMp2>-R z1tNIMft)8-WEQgy0bZFVLVjsMh~ZF+(dV- zrLa8LqdiL3qMn8Z?hUS6nk_>!vKliehNZx%`!+mBfPNKFwjy|+bx5nkynSNx082SVD9s@!E diff --git a/programs/games/LaserTank/trunk/LaserTank.cpp b/programs/games/LaserTank/trunk/LaserTank.cpp index d1f0586eb4..b1b35a67d5 100644 --- a/programs/games/LaserTank/trunk/LaserTank.cpp +++ b/programs/games/LaserTank/trunk/LaserTank.cpp @@ -15,39 +15,66 @@ #define MOUSE_LEFT 0 +#define FIELD_NONE 0 +#define FIELD_WATER 1 +#define FIELD_GROUND 2 +#define FIELD_BRICK 3 +#define FIELD_WALL 4 +#define FIELD_BOX 5 +#define FIELD_MISSLE_0 6 +#define FIELD_MISSLE_1 7 +#define FIELD_MISSLE_2 8 +#define FIELD_MISSLE_3 9 +#define FIELD_HERO 10 +#define FIELD_FINISH 11 +#define FIELD_GUN_0 12 +#define FIELD_GUN_1 13 +#define FIELD_GUN_2 14 +#define FIELD_GUN_3 15 +#define FIELD_BOX_MISSLE_0 16 +#define FIELD_BOX_MISSLE_1 17 +#define FIELD_BOX_MISSLE_2 18 +#define FIELD_BOX_MISSLE_3 19 +#define FIELD_BRICK_DES 20 +#define FIELD_BOX_WATER 21 + + char* header = "Laser Tank"; struct Level { - char fileds[16][16]; + Byte fileds[16][16]; }; +void pause(int time) +{ + kos_Pause(time); + Byte keyCode; + for (int i = 0; i < 10; ++i) + kos_GetKey(keyCode); +} + Level *levels; int levelCount = 0; int levelIndex = 0; RGBA img_tank[576]; RGB img_water[576]; -RGB img_brick[576]; +RGB img_brick[11][576]; RGB img_waterbox[576]; RGB img_ground[576]; RGB img_wall[576]; RGB img_finish[576]; RGBA img_box[576]; RGBA img_laser[576]; -RGBA img_mirror[576]; -RGBA img_mirror90[576]; -RGBA img_mirror180[576]; -RGBA img_mirror270[576]; -RGBA img_mini_mirror[576]; -RGBA img_mini_mirror90[576]; -RGBA img_mini_mirror180[576]; -RGBA img_mini_mirror270[576]; +RGB img_mirror[4][576]; +RGBA img_mini_mirror[4][576]; RGBA img_laser1[576]; RGBA img_laser2[576]; RGB img_brick1[576]; RGB img_menu[147456]; RGBA img_explosion[8064]; +RGBA img_gun[576]; RGB img_button[7500]; @@ -62,18 +89,11 @@ CKosImage* objLaser1; CKosImage* objLaser2; CKosRender* renderMirror; -CKosImage* objMirror; -CKosImage* objMirror90; -CKosImage* objMirror180; -CKosImage* objMirror270; - -CKosImage* objMiniMirror; -CKosImage* objMiniMirror90; -CKosImage* objMiniMirror180; -CKosImage* objMiniMirror270; +CKosImage* objMiniMirror[4]; CKosRender* renderBox; CKosImage* objBox; +CKosImage* objGun; CKosRender* renderExplosion; CKosImage* objExplosion; @@ -83,6 +103,7 @@ int gameStatus = GAME_NONE; void draw_window(); void openLevel(int index); +void Laser(Point pos, Point vec, RGB color); bool CollRecrVsPoint(Point point, Rect rect) { @@ -106,8 +127,8 @@ Button ToExit("Exit", Rect(150, 321, 224, 50)); struct LvlItem { - char s; - char d; + Byte s; + Byte d; Byte l; }; @@ -115,7 +136,7 @@ LvlItem level[16][16]; char GetField(Point position, bool din) { - if (din && level[position.Y][position.X].d != ' ') + if (din && level[position.Y][position.X].d != FIELD_NONE) return level[position.Y][position.X].d; return level[position.Y][position.X].s; } @@ -124,46 +145,109 @@ RGB* GetImg(Point position, bool din) { switch (GetField(position, din)) { - case 's': + case FIELD_WALL: return (RGB*)img_wall; - case '7': - renderMirror->RenderImg(GetImg(player.position, false), Point(0, 0), 24, 24); - objMirror->Draw(Point(0, 0), 0); - return renderMirror->buffer; - case '9': - renderMirror->RenderImg(GetImg(player.position, false), Point(0, 0), 24, 24); - objMirror90->Draw(Point(0, 0), 0); - return renderMirror->buffer; - case '3': - renderMirror->RenderImg(GetImg(player.position, false), Point(0, 0), 24, 24); - objMirror180->Draw(Point(0, 0), 0); - return renderMirror->buffer; - case '1': - renderMirror->RenderImg(GetImg(player.position, false), Point(0, 0), 24, 24); - objMirror270->Draw(Point(0, 0), 0); - return renderMirror->buffer; - case 'h': - case 'g': + case FIELD_MISSLE_0: + return (RGB*)img_mirror[0]; + case FIELD_MISSLE_1: + return (RGB*)img_mirror[1]; + case FIELD_MISSLE_2: + return (RGB*)img_mirror[2]; + case FIELD_MISSLE_3: + return (RGB*)img_mirror[3]; + case FIELD_GUN_0: + renderBox->RenderImg(GetImg(position, false), Point(0, 0), 24, 24); + objGun->Draw(Point(0, 0), 0); + return renderBox->buffer; + case FIELD_GUN_1: + renderBox->RenderImg(GetImg(position, false), Point(0, 0), 24, 24); + objGun->Draw(Point(0, 0), 90); + return renderBox->buffer; + case FIELD_GUN_2: + renderBox->RenderImg(GetImg(position, false), Point(0, 0), 24, 24); + objGun->Draw(Point(0, 0), 180); + return renderBox->buffer; + case FIELD_GUN_3: + renderBox->RenderImg(GetImg(position, false), Point(0, 0), 24, 24); + objGun->Draw(Point(0, 0), 270); + return renderBox->buffer; + case FIELD_GROUND: return (RGB*)img_ground; - case 'b': - renderBox->RenderImg(GetImg(player.position, false), Point(0, 0), 24, 24); + case FIELD_BOX: + renderBox->RenderImg(GetImg(position, false), Point(0, 0), 24, 24); objBox->Draw(Point(0, 0), 0); return renderBox->buffer; // return (RGB*)img_box; - case 'f': + case FIELD_FINISH: return (RGB*)img_finish; - case 'x': - return (RGB*)img_brick; - case 'w': + case FIELD_BRICK: + return (RGB*)img_brick[level[position.Y][position.X].l]; + case FIELD_WATER: return (RGB*)img_water; - case 'e': + case FIELD_BOX_WATER: return (RGB*)img_waterbox; - case 'y': + case FIELD_BRICK_DES: return (RGB*)img_brick1; } return NULL; } +Byte CollField(Point position) +{ + if (position.X < 0 || position.Y < 0 || position.X > 15 || position.Y > 15) + return 0; + + switch (GetField(position, true)) + { + case FIELD_NONE: + case FIELD_WATER: + case FIELD_GROUND: + case FIELD_BOX_WATER: + case FIELD_BRICK_DES: + case FIELD_FINISH: + return 1; + case FIELD_GUN_0: + return FIELD_GUN_0; + case FIELD_GUN_1: + return FIELD_GUN_1; + case FIELD_GUN_2: + return FIELD_GUN_2; + case FIELD_GUN_3: + return FIELD_GUN_3; + } + return 0; +} + +bool ExistGun1(Point position, Point vec, int gun) +{ + rtlDebugOutString("ExistGun"); + Point pos = position; + + Byte result = 1; + while (result == 1) + { + pos = pos + vec; + result = CollField(pos); + } + if (result == gun) + { + Laser(pos, vec * -1, (RGB)0x00CCFF); + return true; + } + return false; +} + +void ExistGun(Point position) +{ + if (ExistGun1(position, Point(1, 0), FIELD_GUN_2)) + return; + if (ExistGun1(position, Point(0, 1), FIELD_GUN_3)) + return; + if (ExistGun1(position, Point(-1, 0), FIELD_GUN_0)) + return; + ExistGun1(position, Point(0, -1), FIELD_GUN_1); +} + void DrawElevent(Point position, bool din) { kos_PutImage(GetImg(position, din), 24, 24, 24 * position.X, 24 * position.Y); @@ -171,21 +255,23 @@ void DrawElevent(Point position, bool din) void MoveBox(Point a, Point b) { - level[a.Y][a.X].d = ' '; + Byte code = GetField(a, true); + level[a.Y][a.X].d = FIELD_NONE; DrawElevent(a, true); - if (level[b.Y][b.X].s == 'w') + if (level[b.Y][b.X].s == FIELD_WATER) { - level[b.Y][b.X].s = 'e'; + if (code = FIELD_BOX) + level[b.Y][b.X].s = FIELD_BOX_WATER; DrawElevent(b, true); } else { - level[b.Y][b.X].d = 'b'; + level[b.Y][b.X].d = code; DrawElevent(b, true); } } -void animation(Point vector, float angle) +void animation(Point vector, float angle, int obj) { for (int i = 2; i < 23; ++i) { @@ -196,17 +282,33 @@ void animation(Point vector, float angle) renderPlayer->RenderImg(GetImg(player.position, true), Point(0, 0), 24, 24); objPlayer->Draw(Point(0, 0), angle); renderPlayer->Draw(player.position * 24 + vector * i); - if (level[player.position.Y + vector.Y][player.position.X + vector.X].d == 'b') + if (level[player.position.Y + vector.Y][player.position.X + vector.X].d == obj) { - renderBox->RenderImg(GetImg(player.position, true), Point(0, 0), 24, 24); - objBox->Draw(Point(0, 0), 0); + renderBox->RenderImg(GetImg(player.position + vector, true), Point(0, 0), 24, 24); + switch (obj) + { + case FIELD_GUN_0: + objGun->Draw(Point(0, 0), 0); + break; + case FIELD_GUN_1: + objGun->Draw(Point(0, 0), 90); + break; + case FIELD_GUN_2: + objGun->Draw(Point(0, 0), 180); + break; + case FIELD_GUN_3: + objGun->Draw(Point(0, 0), 270); + break; + case FIELD_BOX: + objBox->Draw(Point(0, 0), 0); + } renderBox->Draw((player.position + vector) * 24 + vector * i); } kos_WindowRedrawStatus(2); - kos_Pause(1); + pause(1); } - if (level[player.position.Y + vector.Y][player.position.X + vector.X].d == 'b') + if (level[player.position.Y + vector.Y][player.position.X + vector.X].d == obj) MoveBox(player.position + vector, player.position + vector * 2); DrawElevent(player.position, true); @@ -216,86 +318,51 @@ void animation(Point vector, float angle) renderPlayer->RenderImg(GetImg(player.position, false), Point(0, 0), 24, 24); objPlayer->Draw(Point(0, 0), angle); renderPlayer->Draw(player.position * 24); + ExistGun(player.position); } -void DrawLaser(Point position, int frame) +void DrawLaser(Point position, int frame, RGB color) { renderLaser->RenderImg(GetImg(position, false), Point(0, 0), 24, 24); switch (frame) { case 1: - objLaser->Draw(Point(0, 0), 0, (RGB)0x00FF00); - break; + objLaser->Draw(Point(0, 0), 0, color); + break; case 2: - objLaser->Draw(Point(0, 0), 90, (RGB)0x00FF00); + objLaser->Draw(Point(0, 0), 90, color); break; case 3: - objLaser2->Draw(Point(0, 0), 0, (RGB)0x00FF00); + objLaser2->Draw(Point(0, 0), 0, color); break; default: - objLaser1->Draw(Point(-1, 0), (float)frame, (RGB)0x00FF00); + objLaser1->Draw(Point(-1, 0), (float)frame, color); } renderLaser->Draw(position * 24); level[position.Y][position.X].l = 1; } -void PlayerLaser(void) +void Laser(Point pos, Point vec, RGB color) { - Point vector = player.vector; - Point position = player.position + vector; + Point vector = vec; + Point position = pos + vector; bool en = true; - + Byte code; + bool LaserGun = false; + while (en) { - switch (GetField(position, true)) + code = GetField(position, true); + switch (code) { - case 'b': - if (position + vector != player.position) - switch (GetField(position + vector, true)) - { - case 'g': - case 'w': - case 'e': - for (int i = 2; i < 23; ++i) - { - DrawElevent(position, false); - DrawElevent(position + vector, true); - DrawLaser(position, (vector.X != 0) ? 1 : 2); - renderBox->RenderImg(GetImg(position, false), Point(0, 0), 24, 24); - objBox->Draw(Point(0, 0), 0); - renderBox->Draw((position) * 24 + vector * i); - kos_Pause(1); - } - MoveBox(position, position + vector); - } - en = false; - break; - case 'x': - for (int i = 0; i < 23; ++i) + case FIELD_BOX: + case FIELD_GUN_0: + case FIELD_GUN_1: + case FIELD_GUN_2: + case FIELD_GUN_3: + if (code == FIELD_GUN_0 && vector == Point(-1, 0) || code == FIELD_GUN_1 && vector == Point(0, -1) + || code == FIELD_GUN_2 && vector == Point(1, 0) || code == FIELD_GUN_3 && vector == Point(0, 1)) { - if (i == 11 || i == 22) - { - level[position.Y][position.X].l -= 1; - if (level[position.Y][position.X].l == 2) - { - level[position.Y][position.X].s = 'y'; - level[position.Y][position.X].l = 0; - } - // rtlDebugOutString(ftoa(level[position.Y][position.X].l)); - - DrawElevent(position, false); - } - kos_Pause(1); - } - en = false; - break; - case 'g': - case 'w': - case 'y': - case 'e': - if (player.position == position) - { - for (int i = 2; i < 23; ++i) kos_Pause(1); for (int y = 0; y < 16; y++) @@ -310,7 +377,88 @@ void PlayerLaser(void) renderExplosion->RenderImg(GetImg(position, false), Point(0, 0), 24, 24); objExplosion->Draw(Point(0, 0), 0, i); renderExplosion->Draw((position)* 24); - kos_Pause(2); + pause(2); + } + level[position.Y][position.X].d = FIELD_NONE; + draw_window(); + return; + } + else + if (position + vector != player.position) + switch (GetField(position + vector, true)) + { + case FIELD_GROUND: + case FIELD_WATER: + case FIELD_BRICK_DES: + case FIELD_BOX_WATER: + for (int i = 2; i < 23; ++i) + { + DrawElevent(position, false); + DrawElevent(position + vector, true); + DrawLaser(position, (vector.X != 0) ? 1 : 2, color); + renderBox->RenderImg(GetImg(position, false), Point(0, 0), 24, 24); + switch (code) + { + case FIELD_GUN_0: + objGun->Draw(Point(0, 0), 0); + break; + case FIELD_GUN_1: + objGun->Draw(Point(0, 0), 90); + break; + case FIELD_GUN_2: + objGun->Draw(Point(0, 0), 180); + break; + case FIELD_GUN_3: + objGun->Draw(Point(0, 0), 270); + break; + case FIELD_BOX: + objBox->Draw(Point(0, 0), 0); + } + renderBox->Draw((position) * 24 + vector * i); + kos_Pause(1); + } + MoveBox(position, position + vector); + LaserGun = true; + } + en = false; + break; + case FIELD_BRICK: + for (int i = 0; i < 6; ++i) + { + level[position.Y][position.X].l += 1; + if (level[position.Y][position.X].l == 11) + { + level[position.Y][position.X].s = FIELD_BRICK_DES; + level[position.Y][position.X].l = 0; + LaserGun = true; + } + DrawElevent(position, false); + pause(5); + } + en = false; + break; + case FIELD_GROUND: + case FIELD_WATER: + case FIELD_FINISH: + case FIELD_BRICK_DES: + case FIELD_BOX_WATER: + if (player.position == position) + { + for (int i = 2; i < 23; ++i) + kos_Pause(1); + for (int y = 0; y < 16; y++) + for (int x = 0; x < 16; x++) + if (level[y][x].l == 1) + { + DrawElevent(Point(x, y), true); + level[y][x].l = 0; + } + for (int i = 0; i < 14; ++i) + { + renderExplosion->RenderImg(GetImg(position, false), Point(0, 0), 24, 24); + objExplosion->Draw(Point(0, 0), 0, i); + renderExplosion->Draw((position)* 24); + pause(2); } gameStatus = GAME_DEFEAT; draw_window(); @@ -319,66 +467,66 @@ void PlayerLaser(void) else { if (level[position.Y][position.X].l == 1) - DrawLaser(position, 3); + DrawLaser(position, 3, color); else - DrawLaser(position, (vector.X != 0) ? 1 : 2); + DrawLaser(position, (vector.X != 0) ? 1 : 2, color); } break; - case '7': + case FIELD_MISSLE_0: if (vector == Point(-1, 0) || vector == Point(0, -1)) { vector = (vector.Y == -1) ? Point(1, 0) : Point(0, 1); - DrawLaser(position, 0); + DrawLaser(position, 0, color); } else { for (int i = 2; i < 23; ++i) - kos_Pause(1); + pause(1); en = false; } break; - case '9': + case FIELD_MISSLE_1: if (vector == Point(0, -1) || vector == Point(1, 0)) { vector = (vector.Y == -1) ? Point(-1, 0) : Point(0, 1); - DrawLaser(position, 90); + DrawLaser(position, 90, color); } else { for (int i = 2; i < 23; ++i) - kos_Pause(1); + pause(1); en = false; } break; - case '1': + case FIELD_MISSLE_3: if (vector == Point(-1, 0) || vector == Point(0, 1)) { vector = (vector.Y == 1) ? Point(1, 0) : Point(0, -1); - DrawLaser(position, 270); + DrawLaser(position, 270, color); } else { for (int i = 2; i < 23; ++i) - kos_Pause(1); + pause(1); en = false; } break; - case '3': + case FIELD_MISSLE_2: if (vector == Point(1, 0) || vector == Point(0, 1)) { vector = (vector.Y == 1) ? Point(-1, 0) : Point(0, -1); - DrawLaser(position, 180); + DrawLaser(position, 180, color); } else { for (int i = 2; i < 23; ++i) - kos_Pause(1); + pause(1); en = false; } break; default: for (int i = 2; i < 23; ++i) - kos_Pause(1); + pause(1); en = false; } position = position + vector; @@ -392,40 +540,47 @@ void PlayerLaser(void) level[y][x].l = 0; } + if (LaserGun) + ExistGun(player.position); } void player_move(Point vector, float angle) { if (player.vector == vector) { - switch (GetField(player.position + vector, true)) + Byte code = GetField(player.position + vector, true); + switch (code) { - case 'b': + case FIELD_GUN_0: + case FIELD_GUN_1: + case FIELD_GUN_2: + case FIELD_GUN_3: + case FIELD_BOX: switch (GetField(player.position + vector * 2, true)) { - case 'g': - case 'w': - case 'e': - case 'y': - animation(vector, angle); + case FIELD_GROUND: + case FIELD_WATER: + case FIELD_BOX_WATER: + case FIELD_BRICK_DES: + animation(vector, angle, code); return; } break; - case 'f': + case FIELD_FINISH: gameStatus = GAME_VICTORY; draw_window(); break; - case ' ': - case 'x': - case 's': - case 'w': - case '7': - case '9': - case '3': - case '1': + case FIELD_NONE: + case FIELD_BRICK: + case FIELD_WALL: + case FIELD_WATER: + case FIELD_MISSLE_0: + case FIELD_MISSLE_1: + case FIELD_MISSLE_2: + case FIELD_MISSLE_3: break; default: - animation(vector, angle); + animation(vector, angle, -1); } } else @@ -452,7 +607,7 @@ void player_move(Point vector, float angle) renderPlayer->RenderImg(GetImg(player.position, false), Point(0, 0), 24, 24); objPlayer->Draw(Point(0, 0), player.angle); renderPlayer->Draw(player.position * 24); - kos_Pause(1); + pause(1); } player.vector = vector; @@ -507,9 +662,10 @@ void key_press(int key) break; case 32: // Space if (gameStatus == GAME_NONE) - PlayerLaser(); + Laser(player.position, player.vector, (RGB)0x00FF00); break; case 13: + // openLevel(levelIndex + 1); if (gameStatus == GAME_VICTORY) openLevel(levelIndex + 1); else @@ -565,9 +721,9 @@ void draw_window(void) for (int y = 0; y < 16; y++) for (int x = 0; x < 16; x++) { - if (level[y][x].s != ' ') + if (level[y][x].s != FIELD_NONE) kos_PutImage(GetImg(Point(x, y), true), 24, 24, 24 * x, 24 * y); - if (level[y][x].d == 'b') + if (level[y][x].d == FIELD_BOX) { renderBox->RenderImg(GetImg(player.position, false), Point(0, 0), 24, 24); objBox->Draw(Point(0, 0), 0); @@ -628,52 +784,10 @@ void LevelsLoad() for (int y = 0; y < 16; y++) for (int x = 0; x < 16; x++) { - // if (block[k] != 0) - // rtlDebugOutString(ftoa(block[k])); - switch (block[k]) - { - case 0: - levels[i].fileds[y][x] = ' '; - break; - case 1: - levels[i].fileds[y][x] = 'w'; - break; - case 2: - levels[i].fileds[y][x] = 'g'; - break; - case 3: - levels[i].fileds[y][x] = 'x'; - break; - case 4: - levels[i].fileds[y][x] = 's'; - break; - case 5: - levels[i].fileds[y][x] = 'b'; - break; - case 6: - levels[i].fileds[y][x] = '7'; - break; - case 7: - levels[i].fileds[y][x] = '9'; - break; - case 8: - levels[i].fileds[y][x] = '3'; - break; - case 9: - levels[i].fileds[y][x] = '1'; - break; - case 10: - levels[i].fileds[y][x] = 'h'; - break; - case 11: - levels[i].fileds[y][x] = 'f'; - break; - } + levels[i].fileds[y][x] = block[k]; k++; } } - - } void openLevel(int index) @@ -683,20 +797,24 @@ void openLevel(int index) for (int x = 0; x < 16; x++) { level[y][x].s = levels[index].fileds[y][x]; - level[y][x].d = ' '; + level[y][x].d = FIELD_NONE; level[y][x].l = 0; switch (levels[index].fileds[y][x]) { - case 'b': - level[y][x].s = 'g'; - level[y][x].d = 'b'; + case FIELD_BOX: + case FIELD_GUN_0: + case FIELD_GUN_1: + case FIELD_GUN_2: + case FIELD_GUN_3: + level[y][x].s = FIELD_GROUND; + level[y][x].d = levels[index].fileds[y][x]; break; - case 'h': + case FIELD_HERO: player = Player(Point(x, y)); - level[y][x].s = 'g'; + level[y][x].s = FIELD_GROUND; break; - case 'x': - level[y][x].l = 6; + case FIELD_BRICK: + level[y][x].l = 0; break; } } @@ -722,31 +840,29 @@ void kos_Main() CKosFile *file = new CKosFile(kosExePath); file->LoadTex((Byte*)img_box, 4, 24, 24); - file->LoadTex((Byte*)img_brick, 3, 24, 24); + for (int i = 0; i < 11; ++i) + file->LoadTex((Byte*)img_brick[i], 3, 24, 24); + file->LoadTex((Byte*)img_brick1, 3, 24, 24); file->LoadTex((Byte*)img_finish, 3, 24, 24); file->LoadTex((Byte*)img_ground, 3, 24, 24); file->LoadTex((Byte*)img_laser, 4, 24, 24); file->LoadTex((Byte*)img_laser1, 4, 24, 24); file->LoadTex((Byte*)img_laser2, 4, 24, 24); - file->LoadTex((Byte*)img_mirror, 4, 24, 24); - file->LoadTex((Byte*)img_mirror90, 4, 24, 24); - file->LoadTex((Byte*)img_mirror180, 4, 24, 24); - file->LoadTex((Byte*)img_mirror270, 4, 24, 24); + for (int i = 0; i < 4; ++i) + file->LoadTex((Byte*)img_mirror[i], 3, 24, 24); - file->LoadTex((Byte*)img_mini_mirror, 4, 24, 24); - file->LoadTex((Byte*)img_mini_mirror90, 4, 24, 24); - file->LoadTex((Byte*)img_mini_mirror180, 4, 24, 24); - file->LoadTex((Byte*)img_mini_mirror270, 4, 24, 24); + for (int i = 0; i < 4; ++i) + file->LoadTex((Byte*)img_mini_mirror[4], 4, 24, 24); file->LoadTex((Byte*)img_tank, 4, 24, 24); file->LoadTex((Byte*)img_wall, 3, 24, 24); file->LoadTex((Byte*)img_water, 3, 24, 24); file->LoadTex((Byte*)img_waterbox, 3, 24, 24); - file->LoadTex((Byte*)img_brick1, 3, 24, 24); file->LoadTex((Byte*)img_menu, 3, 384, 384); file->LoadTex((Byte*)img_button, 3, 150, 50); file->LoadTex((Byte*)img_explosion, 4, 24, 336); + file->LoadTex((Byte*)img_gun, 4, 24, 24); delete file; @@ -762,18 +878,13 @@ void kos_Main() objLaser2->SetMode(DRAW_ALPHA_ADD); renderMirror = new CKosRender(24, 24); - objMirror = new CKosImage(renderMirror, (RGBA*)img_mirror, 24, 24); - objMirror90 = new CKosImage(renderMirror, (RGBA*)img_mirror90, 24, 24); - objMirror180 = new CKosImage(renderMirror, (RGBA*)img_mirror180, 24, 24); - objMirror270 = new CKosImage(renderMirror, (RGBA*)img_mirror270, 24, 24); - objMiniMirror = new CKosImage(renderMirror, (RGBA*)img_mini_mirror, 24, 24); - objMiniMirror = new CKosImage(renderMirror, (RGBA*)img_mini_mirror90, 24, 24); - objMiniMirror = new CKosImage(renderMirror, (RGBA*)img_mini_mirror180, 24, 24); - objMiniMirror = new CKosImage(renderMirror, (RGBA*)img_mini_mirror270, 24, 24); + for (int i = 0; i < 4; ++i) + objMiniMirror[i] = new CKosImage(renderMirror, (RGBA*)img_mini_mirror[i], 24, 24); renderBox = new CKosRender(24, 24); objBox = new CKosImage(renderBox, (RGBA*)img_box, 24, 24); + objGun = new CKosImage(renderBox, (RGBA*)img_gun, 24, 24); renderExplosion = new CKosRender(24, 24); objExplosion = new CKosImage(renderExplosion, (RGBA*)img_explosion, 24, 24); diff --git a/programs/games/LaserTank/trunk/LaserTank.sdf b/programs/games/LaserTank/trunk/LaserTank.sdf index b479f130df67b99c37760b8565e1761013674b01..8972224b30bbd8ce67a2ffc77cc505605f6c989e 100644 GIT binary patch delta 61598 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 QHEfd_w@FPWq^{C`0^YjGT>t<8 delta 60176 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

J?E{gJD}+Olpd*+%6gXr# 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