]> git.localhorst.tv Git - l2e.git/blobdiff - src/main.cpp
changed gauge level interpretation
[l2e.git] / src / main.cpp
index 0fce8fe511640d4e9f3fdb7fa9feceaa224e7e1a..ab02016cff4d67511af6f986f595067c58dfd875 100644 (file)
@@ -5,6 +5,123 @@
  *      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/Frame.h"
+#include "graphics/Gauge.h"
+#include "graphics/Sprite.h"
+#include "sdl/InitImage.h"
+#include "sdl/InitScreen.h"
+#include "sdl/InitSDL.h"
+
+#include <exception>
+#include <iostream>
+#include <SDL.h>
+#include <SDL_image.h>
+
+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;
+
+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<Uint8>(104, 109));
+               monstersLayout.AddPosition(Point<Uint8>(140, 118));
+               monstersLayout.AddPosition(Point<Uint8>(176, 109));
+               monstersLayout.AddPosition(Point<Uint8>(212, 118));
+               PartyLayout heroesLayout;
+               heroesLayout.AddPosition(Point<Uint8>(27, 219));
+               heroesLayout.AddPosition(Point<Uint8>(104, 227));
+               heroesLayout.AddPosition(Point<Uint8>(66, 238));
+               heroesLayout.AddPosition(Point<Uint8>(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);
+               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;
+       }
 }