]> git.localhorst.tv Git - l2e.git/blobdiff - src/main.cpp
closed the gap between battle and map state (yay)
[l2e.git] / src / main.cpp
index 793a76fa6f8b1c9e0b33690f2f772f28cfc4fc06..8029a64c42d9ecb570c776990c562b1b56724203 100644 (file)
@@ -13,6 +13,7 @@
 #include "battle/Monster.h"
 #include "battle/PartyLayout.h"
 #include "battle/Resources.h"
+#include "common/GameConfig.h"
 #include "common/GameState.h"
 #include "common/Hero.h"
 #include "common/Ikari.h"
@@ -58,6 +59,7 @@ using app::Input;
 using battle::BattleState;
 using battle::Monster;
 using battle::PartyLayout;
+using common::GameConfig;
 using common::GameState;
 using common::Hero;
 using common::Ikari;
@@ -194,15 +196,17 @@ int main(int argc, char **argv) {
                gameState.party[2] = &gameState.heroes[2];
                gameState.party[3] = &gameState.heroes[3];
 
+               GameConfig gameConfig;
+               gameConfig.state = &gameState;
+               gameConfig.heroesLayout = caster.GetPartyLayout("heroesLayout");
+               gameConfig.battleResources = caster.GetBattleResources("battleResources");
+
                // temporary test data
                SDL_Surface *bg(IMG_Load("test-data/battle-bg.png"));
                PartyLayout monstersLayout(*caster.GetPartyLayout("monstersLayout"));
-               PartyLayout heroesLayout(*caster.GetPartyLayout("heroesLayout"));
 
                Monster monster(*caster.GetMonster("lizard"));
 
-               battle::Resources *battleRes(caster.GetBattleResources("battleResources"));
-
                gameState.heroes[0].AddSpell(caster.GetSpell("resetSpell"));
                Spell *strongSpell(caster.GetSpell("strongSpell"));
                gameState.heroes[0].AddSpell(strongSpell);
@@ -221,14 +225,12 @@ int main(int argc, char **argv) {
                gameState.heroes[0].AddSpell(valorSpell);
                gameState.heroes[1].AddSpell(valorSpell);
 
-               Inventory inventory;
-               inventory.Add(caster.GetItem("antidoteItem"), 9);
-               inventory.Add(caster.GetItem("magicJarItem"), 4);
-               inventory.Add(caster.GetItem("hiPotionItem"), 4);
-               inventory.Add(caster.GetItem("powerPotionItem"), 4);
-               inventory.Add(caster.GetItem("escapeItem"), 2);
-               inventory.Add(caster.GetItem("sleepBallItem"), 1);
-               battleRes->inventory = &inventory;
+               gameState.inventory.Add(caster.GetItem("antidoteItem"), 9);
+               gameState.inventory.Add(caster.GetItem("magicJarItem"), 4);
+               gameState.inventory.Add(caster.GetItem("hiPotionItem"), 4);
+               gameState.inventory.Add(caster.GetItem("powerPotionItem"), 4);
+               gameState.inventory.Add(caster.GetItem("escapeItem"), 2);
+               gameState.inventory.Add(caster.GetItem("sleepBallItem"), 1);
 
                gameState.heroes[0].SetWeapon(caster.GetItem("zircoSwordItem"));
                gameState.heroes[0].SetArmor(caster.GetItem("zirconArmorItem"));
@@ -424,6 +426,7 @@ int main(int argc, char **argv) {
                map1.SetTileset(&tileset);
                map1.SetTriggers(triggers1, 1);
                map1.SetWidth(2);
+               map1.SetBattleBackground(bg);
 
                Tile tiles3[64];
 
@@ -511,6 +514,7 @@ int main(int argc, char **argv) {
                map2.SetTileset(&tileset);
                map2.SetTriggers(triggers2, 1);
                map2.SetWidth(1);
+               map2.SetBattleBackground(bg);
 
                triggers1[0].map = &map2;
                triggers1[0].target = Vector<int>(6, 2);
@@ -539,6 +543,8 @@ int main(int argc, char **argv) {
                mapMonster.SetAnimation(&mapMonsterAnimation);
                mapMonster.Position() = Vector<float>(64, 32);
                mapMonster.SetOrientation(Entity::ORIENTATION_SOUTH);
+               mapMonster.SetPartyLayout(&monstersLayout);
+               mapMonster.SetMonsters(&monster, 1);
                map1.SetEntities(&mapMonster, 1);
 
                InitScreen screen(width, height);
@@ -546,7 +552,7 @@ int main(int argc, char **argv) {
                app::State *state(0);
 
                if (battle) {
-                       BattleState *battleState(new BattleState(bg, monstersLayout, heroesLayout, battleRes));
+                       BattleState *battleState(new BattleState(&gameConfig, bg, &monstersLayout));
                        battleState->AddMonster(monster);
                        battleState->AddMonster(monster);
                        battleState->AddMonster(monster);
@@ -557,7 +563,7 @@ int main(int argc, char **argv) {
                        battleState->AddHero(gameState.heroes[3]);
                        state = battleState;
                } else {
-                       MapState *mapState(new MapState(&map1));
+                       MapState *mapState(new MapState(&gameConfig, &map1));
 
                        mapState->ControlEntity(&gameState.heroes[0].MapEntity());
                        mapState->SetWalkingSpeed(walkSpeed);