X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmain.cpp;h=807784300ae1c5fe416ea0c44f058e3c7596ca66;hb=bfcf2f4de43077249b82af03a0e1b8281b8490e3;hp=0fce8fe511640d4e9f3fdb7fa9feceaa224e7e1a;hpb=e411b1bbef7bc5bc383046e7bf294d2c5a17ac7e;p=l2e.git diff --git a/src/main.cpp b/src/main.cpp index 0fce8fe..8077843 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -5,6 +5,111 @@ * Author: holy */ +#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/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::Sprite; +using sdl::InitImage; +using sdl::InitScreen; +using sdl::InitSDL; + +using std::cerr; +using std::cout; +using std::endl; +using std::exception; + int main(int argc, char **argv) { - return 0; + const int width = 800; + const int height = 480; + + try { + InitSDL sdl; + InitImage image(IMG_INIT_PNG); + InitScreen screen(width, height); + + // temporary test data + SDL_Surface *bg(IMG_Load("test-data/battle-bg.png")); + PartyLayout monstersLayout; + monstersLayout.AddPosition(Point(50, 100)); + monstersLayout.AddPosition(Point(100, 108)); + monstersLayout.AddPosition(Point(150, 100)); + monstersLayout.AddPosition(Point(200, 108)); + 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, 96, 96); + Monster monster; + monster.SetSprite(&dummySprite); + + SDL_Surface *heroImg(IMG_Load("test-data/hero.png")); + Sprite heroSprite(heroImg, 96, 96); + Hero hero; + hero.SetName("Name"); + hero.SetLevel(34); + hero.SetSprite(&heroSprite); + hero.SetMaxHealth(100); + hero.SetHealth(50); + hero.SetMaxMana(100); + hero.SetMana(66); + hero.SetIP(160); + + 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); + + BattleState *battleState(new BattleState(bg, monstersLayout, heroesLayout, &attackIconsSprite, &moveIconsSprite)); + 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; + } catch (exception &e) { + cerr << "exception in main(): " << e.what() << endl; + return 1; + } }