X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmain.cpp;h=ab02016cff4d67511af6f986f595067c58dfd875;hb=cf20874f973521e84fc2aaa6cd47c56a278d9de7;hp=b2904b5c6c3edfee8467e3242b1515d3d65ee74d;hpb=509ef53f0adeb204167aabe1715f3a230f8c59fe;p=l2e.git diff --git a/src/main.cpp b/src/main.cpp index b2904b5..ab02016 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -6,23 +6,35 @@ */ #include "app/Application.h" +#include "app/Input.h" #include "battle/BattleState.h" +#include "battle/Hero.h" #include "battle/Monster.h" #include "battle/PartyLayout.h" #include "geometry/Point.h" +#include "graphics/Frame.h" +#include "graphics/Gauge.h" #include "graphics/Sprite.h" +#include "sdl/InitImage.h" #include "sdl/InitScreen.h" #include "sdl/InitSDL.h" #include #include +#include +#include using app::Application; +using app::Input; using battle::BattleState; +using battle::Hero; using battle::Monster; using battle::PartyLayout; using geometry::Point; +using graphics::Frame; +using graphics::Gauge; using graphics::Sprite; +using sdl::InitImage; using sdl::InitScreen; using sdl::InitSDL; @@ -35,30 +47,76 @@ int main(int argc, char **argv) { const int width = 800; const int height = 480; - // temporary test data - SDL_Surface *bg(SDL_CreateRGBSurface(0, width, height, 32, 0xFF000000, 0xFF0000, 0xFF00, 0xFF)); - SDL_FillRect(bg, 0, SDL_MapRGB(bg->format, 0, 0, 0)); - PartyLayout monstersLayout; - monstersLayout.AddPosition(Point(50, 50)); - monstersLayout.AddPosition(Point(100, 50)); - monstersLayout.AddPosition(Point(150, 50)); - monstersLayout.AddPosition(Point(200, 50)); - SDL_Surface *white100(SDL_CreateRGBSurface(0, 100, 100, 32, 0xFF000000, 0xFF0000, 0xFF00, 0xFF)); - SDL_FillRect(white100, 0, SDL_MapRGB(bg->format, 0xFF, 0xFF, 0xFF)); - Sprite dummyMonsterSprite(white100, 100, 100); - Monster monster; - monster.SetSprite(&dummyMonsterSprite); - try { InitSDL sdl; + InitImage image(IMG_INIT_PNG); InitScreen screen(width, height); - BattleState *battleState(new BattleState(bg, monstersLayout)); + // temporary test data + SDL_Surface *bg(IMG_Load("test-data/battle-bg.png")); + PartyLayout monstersLayout; + monstersLayout.AddPosition(Point(104, 109)); + monstersLayout.AddPosition(Point(140, 118)); + monstersLayout.AddPosition(Point(176, 109)); + monstersLayout.AddPosition(Point(212, 118)); + PartyLayout heroesLayout; + heroesLayout.AddPosition(Point(27, 219)); + heroesLayout.AddPosition(Point(104, 227)); + heroesLayout.AddPosition(Point(66, 238)); + heroesLayout.AddPosition(Point(143, 246)); + + SDL_Surface *monsterImg(IMG_Load("test-data/monster.png")); + Sprite dummySprite(monsterImg, 64, 64); + Monster monster; + monster.SetSprite(&dummySprite); + + SDL_Surface *heroImg(IMG_Load("test-data/hero.png")); + Sprite heroSprite(heroImg, 64, 64); + Hero hero; + hero.SetName("Name"); + hero.SetLevel(34); + hero.SetSprite(&heroSprite); + hero.SetMaxHealth(100); + hero.SetHealth(50); + hero.SetMaxMana(100); + hero.SetMana(100); + hero.SetIP(255); + + SDL_Surface *attackIcons(IMG_Load("test-data/attack-type-icons.png")); + Sprite attackIconsSprite(attackIcons, 32, 32); + SDL_Surface *moveIcons(IMG_Load("test-data/move-icons.png")); + Sprite moveIconsSprite(moveIcons, 32, 32); + SDL_Surface *tagFrames(IMG_Load("test-data/tag-frames.png")); + Frame heroTagFrame(tagFrames, 16, 16, 1, 1, 0, 33); + Frame activeHeroTagFrame(tagFrames, 16, 16); + + SDL_Surface *gauges(IMG_Load("test-data/gauges.png")); + Gauge healthGauge(gauges, 0, 16, 0, 0, 16, 6, 1, 6); + Gauge manaGauge(gauges, 0, 32, 0, 0, 16, 6, 1, 6); + Gauge ikariGauge(gauges, 0, 48, 0, 0, 16, 6, 1, 6); + + BattleState *battleState(new BattleState(bg, monstersLayout, heroesLayout, &attackIconsSprite, &moveIconsSprite, &heroTagFrame, &activeHeroTagFrame, &healthGauge, &manaGauge, &ikariGauge)); battleState->AddMonster(monster); battleState->AddMonster(monster); battleState->AddMonster(monster); battleState->AddMonster(monster); - Application app(screen.Screen(), battleState); + battleState->AddHero(hero); + battleState->AddHero(hero); + battleState->AddHero(hero); + battleState->AddHero(hero); + 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(); return 0;