From 6786f73930b6a0406ddefa792763157ac41298ee Mon Sep 17 00:00:00 2001 From: Daniel Karbach Date: Sat, 29 Sep 2012 21:02:34 +0200 Subject: [PATCH] added test tileset, area and map --- src/main.cpp | 129 +++++++++++++++++++++++++++++++++++++----- test-data/tileset.png | Bin 0 -> 4219 bytes 2 files changed, 114 insertions(+), 15 deletions(-) create mode 100644 test-data/tileset.png diff --git a/src/main.cpp b/src/main.cpp index a2cdae9..0a6882a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -31,6 +31,10 @@ #include "loader/ParsedSource.h" #include "loader/Parser.h" #include "loader/TypeDescription.h" +#include "map/Area.h" +#include "map/Map.h" +#include "map/MapState.h" +#include "map/Tile.h" #include "sdl/InitImage.h" #include "sdl/InitScreen.h" #include "sdl/InitSDL.h" @@ -69,6 +73,10 @@ using loader::Interpreter; using loader::ParsedSource; using loader::Parser; using loader::TypeDescription; +using map::Area; +using map::Map; +using map::MapState; +using map::Tile; using sdl::InitImage; using sdl::InitScreen; using sdl::InitSDL; @@ -224,8 +232,96 @@ int main(int argc, char **argv) { dekar.SetRing(caster.GetItem("rocketRingItem")); dekar.SetJewel(caster.GetItem("krakenRockItem")); + Tile tiles[64]; + + tiles[ 0].SetOffset(Vector(2, 1)); + tiles[ 1].SetOffset(Vector(4, 0)); + tiles[ 2].SetOffset(Vector(3, 0)); + tiles[ 3].SetOffset(Vector(3, 0)); + tiles[ 4].SetOffset(Vector(0, 1)); + tiles[ 5].SetOffset(Vector(2, 0)); + tiles[ 6].SetOffset(Vector(2, 0)); + tiles[ 7].SetOffset(Vector(2, 0)); + + tiles[ 8].SetOffset(Vector(2, 1)); + tiles[ 9].SetOffset(Vector(4, 0)); + tiles[10].SetOffset(Vector(3, 0)); + tiles[11].SetOffset(Vector(3, 0)); + tiles[12].SetOffset(Vector(0, 2)); + tiles[13].SetOffset(Vector(1, 2)); + tiles[14].SetOffset(Vector(1, 2)); + tiles[15].SetOffset(Vector(1, 2)); + + tiles[16].SetOffset(Vector(2, 1)); + tiles[17].SetOffset(Vector(4, 0)); + tiles[18].SetOffset(Vector(3, 0)); + tiles[19].SetOffset(Vector(3, 0)); + tiles[20].SetOffset(Vector(0, 3)); + tiles[21].SetOffset(Vector(1, 3)); + tiles[22].SetOffset(Vector(1, 3)); + tiles[23].SetOffset(Vector(2, 3)); + + tiles[24].SetOffset(Vector(2, 1)); + tiles[25].SetOffset(Vector(4, 0)); + tiles[26].SetOffset(Vector(3, 0)); + tiles[27].SetOffset(Vector(3, 0)); + tiles[28].SetOffset(Vector(0, 4)); + tiles[29].SetOffset(Vector(1, 4)); + tiles[30].SetOffset(Vector(1, 4)); + tiles[31].SetOffset(Vector(2, 4)); + + tiles[32].SetOffset(Vector(2, 1)); + tiles[33].SetOffset(Vector(4, 0)); + tiles[34].SetOffset(Vector(3, 0)); + tiles[35].SetOffset(Vector(3, 0)); + tiles[36].SetOffset(Vector(3, 0)); + tiles[37].SetOffset(Vector(3, 0)); + tiles[38].SetOffset(Vector(3, 0)); + tiles[39].SetOffset(Vector(3, 0)); + + tiles[40].SetOffset(Vector(2, 1)); + tiles[41].SetOffset(Vector(4, 0)); + tiles[42].SetOffset(Vector(3, 0)); + tiles[43].SetOffset(Vector(3, 0)); + tiles[44].SetOffset(Vector(3, 0)); + tiles[45].SetOffset(Vector(4, 0)); + tiles[46].SetOffset(Vector(4, 0)); + tiles[47].SetOffset(Vector(4, 0)); + + tiles[48].SetOffset(Vector(2, 1)); + tiles[49].SetOffset(Vector(4, 0)); + tiles[50].SetOffset(Vector(3, 0)); + tiles[51].SetOffset(Vector(3, 0)); + tiles[52].SetOffset(Vector(0, 0)); + tiles[53].SetOffset(Vector(1, 0)); + tiles[54].SetOffset(Vector(1, 0)); + tiles[55].SetOffset(Vector(1, 0)); + + tiles[56].SetOffset(Vector(2, 1)); + tiles[57].SetOffset(Vector(4, 0)); + tiles[58].SetOffset(Vector(3, 0)); + tiles[59].SetOffset(Vector(3, 0)); + tiles[60].SetOffset(Vector(0, 1)); + tiles[61].SetOffset(Vector(1, 1)); + tiles[62].SetOffset(Vector(1, 1)); + tiles[63].SetOffset(Vector(1, 1)); + + Area area; + area.SetTiles(tiles, 64); + area.SetWidth(8); + + SDL_Surface *tilesetImg(IMG_Load("test-data/tileset.png")); + Sprite tileset(tilesetImg, 32, 32); + + Map map; + map.SetAreas(&area, 1); + map.SetTileset(&tileset); + map.SetWidth(1); + InitScreen screen(width, height); + app::State *state(0); + if (battle) { BattleState *battleState(new BattleState(bg, monstersLayout, heroesLayout, battleRes)); battleState->AddMonster(monster); @@ -236,24 +332,27 @@ int main(int argc, char **argv) { battleState->AddHero(selan); battleState->AddHero(guy); battleState->AddHero(dekar); - Application app(&screen, battleState); - app.Buttons().MapKey(SDLK_w, Input::PAD_UP); - app.Buttons().MapKey(SDLK_d, Input::PAD_RIGHT); - app.Buttons().MapKey(SDLK_s, Input::PAD_DOWN); - app.Buttons().MapKey(SDLK_a, Input::PAD_LEFT); - app.Buttons().MapKey(SDLK_RIGHT, Input::ACTION_A); - app.Buttons().MapKey(SDLK_DOWN, Input::ACTION_B); - app.Buttons().MapKey(SDLK_UP, Input::ACTION_X); - app.Buttons().MapKey(SDLK_LEFT, Input::ACTION_Y); - app.Buttons().MapKey(SDLK_RETURN, Input::START); - app.Buttons().MapKey(SDLK_SPACE, Input::SELECT); - app.Buttons().MapKey(SDLK_RSHIFT, Input::SHOULDER_RIGHT); - app.Buttons().MapKey(SDLK_LSHIFT, Input::SHOULDER_LEFT); - app.Run(); + state = battleState; } else { - + MapState *mapState(new MapState(&map)); + state = mapState; } + Application app(&screen, state); + app.Buttons().MapKey(SDLK_w, Input::PAD_UP); + app.Buttons().MapKey(SDLK_d, Input::PAD_RIGHT); + app.Buttons().MapKey(SDLK_s, Input::PAD_DOWN); + app.Buttons().MapKey(SDLK_a, Input::PAD_LEFT); + app.Buttons().MapKey(SDLK_RIGHT, Input::ACTION_A); + app.Buttons().MapKey(SDLK_DOWN, Input::ACTION_B); + app.Buttons().MapKey(SDLK_UP, Input::ACTION_X); + app.Buttons().MapKey(SDLK_LEFT, Input::ACTION_Y); + app.Buttons().MapKey(SDLK_RETURN, Input::START); + app.Buttons().MapKey(SDLK_SPACE, Input::SELECT); + app.Buttons().MapKey(SDLK_RSHIFT, Input::SHOULDER_RIGHT); + app.Buttons().MapKey(SDLK_LSHIFT, Input::SHOULDER_LEFT); + app.Run(); + return 0; } catch (Parser::Error &e) { cerr << "parsing exception in file " << e.File() << " on line " << e.Line() << ": " << e.what() << endl; diff --git a/test-data/tileset.png b/test-data/tileset.png new file mode 100644 index 0000000000000000000000000000000000000000..299f94fec47091eaea89ada4501aef274492555a GIT binary patch literal 4219 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 A;{X5v literal 0 HcmV?d00001 -- 2.39.2