X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmain.cpp;h=6bce28f0efe5d5e9eee4dbc044f0d6567c0139f9;hb=867fd5d9b79c3b9c1d0fb17ba9f55cfe971b93d5;hp=4e5fb471543cf5378bfddd98c77c9e14533e3a92;hpb=95bfa881f3fa427b67d9ce21e6a10f80f7be5439;p=l2e.git diff --git a/src/main.cpp b/src/main.cpp index 4e5fb47..6bce28f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -6,9 +6,13 @@ */ #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/Sprite.h" #include "sdl/InitScreen.h" #include "sdl/InitSDL.h" @@ -16,9 +20,13 @@ #include using app::Application; +using app::Input; using battle::BattleState; +using battle::Hero; +using battle::Monster; using battle::PartyLayout; using geometry::Point; +using graphics::Sprite; using sdl::InitScreen; using sdl::InitSDL; @@ -31,20 +39,59 @@ int main(int argc, char **argv) { const int width = 800; const int height = 480; - // temporary + // 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)); + SDL_FillRect(bg, 0, SDL_MapRGB(bg->format, 0xFF, 0xFF, 0xFF)); + SDL_Rect r; + r.x = 1; + r.y = 1; + r.w = width - 2; + r.h = height - 2; + SDL_FillRect(bg, &r, 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)); + monstersLayout.AddPosition(Point(50, 100)); + monstersLayout.AddPosition(Point(100, 100)); + monstersLayout.AddPosition(Point(150, 100)); + monstersLayout.AddPosition(Point(200, 100)); + PartyLayout heroesLayout; + heroesLayout.AddPosition(Point(27, 219)); + heroesLayout.AddPosition(Point(104, 227)); + heroesLayout.AddPosition(Point(66, 238)); + heroesLayout.AddPosition(Point(143, 246)); + SDL_Surface *white96(SDL_CreateRGBSurface(0, 96, 96, 32, 0xFF000000, 0xFF0000, 0xFF00, 0xFF)); + SDL_FillRect(white96, 0, SDL_MapRGB(bg->format, 0xFF, 0xFF, 0xFF)); + Sprite dummySprite(white96, 96, 96); + Monster monster; + monster.SetSprite(&dummySprite); + Hero hero; + hero.SetSprite(&dummySprite); try { InitSDL sdl; InitScreen screen(width, height); - Application app(screen.Screen(), new BattleState(bg, monstersLayout)); + BattleState *battleState(new BattleState(bg, monstersLayout, heroesLayout)); + battleState->AddMonster(monster); + battleState->AddMonster(monster); + battleState->AddMonster(monster); + battleState->AddMonster(monster); + 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;