X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fbattle%2FBattleState.cpp;h=7c8b3306e8c29947c9a4868c8de8c2d20c8f408f;hb=f552d26f537af9fa48255bd71cdc1a0a1b860bac;hp=5ba60d67bb02ac29061df9509834b307145c40ba;hpb=70641f2eb3f9fce8c89dcbf345e202050609a142;p=l2e.git diff --git a/src/battle/BattleState.cpp b/src/battle/BattleState.cpp index 5ba60d6..7c8b330 100644 --- a/src/battle/BattleState.cpp +++ b/src/battle/BattleState.cpp @@ -12,6 +12,7 @@ #include "states/PerformAttacks.h" #include "../app/Application.h" #include "../app/Input.h" +#include "../common/GameState.h" #include "../common/Ikari.h" #include "../common/Inventory.h" #include "../common/Item.h" @@ -29,6 +30,7 @@ using app::Input; using common::Inventory; using common::Item; using common::Spell; +using common::Stats; using geometry::Vector; using graphics::Menu; @@ -72,17 +74,17 @@ void BattleState::SwapHeroes(int lhs, int rhs) { } -void BattleState::Resize(int w, int h) { +void BattleState::OnResize(int w, int h) { } -void BattleState::EnterState(Application &ctrl, SDL_Surface *screen) { +void BattleState::OnEnterState(SDL_Surface *screen) { for (int i(0); i < 4; ++i) { heroes[i].Position() = heroesLayout->CalculatePosition(i, background->w, background->h); - heroes[i].SpellMenu() = res->spellMenuPrototype; + heroes[i].SpellMenu() = *res->spellMenuProperties; heroes[i].UpdateSpellMenu(); - heroes[i].IkariMenu() = res->ikariMenuPrototype; + heroes[i].IkariMenu() = *res->ikariMenuProperties; heroes[i].UpdateIkariMenu(res); heroTags[i] = HeroTag(this, i); smallHeroTags[i] = SmallHeroTag(this, i); @@ -109,12 +111,13 @@ void BattleState::EnterState(Application &ctrl, SDL_Surface *screen) { smallHeroTagPositions[2] = Vector(xOffset + tagWidth, yOffset); smallHeroTagPositions[3] = Vector(xOffset + 3 * tagWidth, yOffset); - itemMenu = res->itemMenuPrototype; + itemMenu = *res->itemMenuProperties; LoadInventory(); + ClearAllAttacks(); } void BattleState::LoadInventory() { - const Inventory &inv(*res->inventory); + const Inventory &inv(game->state->inventory); itemMenu.Clear(); itemMenu.Reserve(inv.MaxItems()); for (int i(0); i < inv.MaxItems(); ++i) { @@ -125,31 +128,30 @@ void BattleState::LoadInventory() { itemMenu.AddEmptyEntry(); } } - ClearAllAttacks(); } -void BattleState::ExitState(Application &ctrl, SDL_Surface *screen) { +void BattleState::OnExitState(SDL_Surface *screen) { } -void BattleState::ResumeState(Application &ctrl, SDL_Surface *screen) { +void BattleState::OnResumeState(SDL_Surface *screen) { if (ranAway) { - ctrl.PopState(); // quit the battle scene + Ctrl().PopState(); // quit the battle scene return; } if (Victory()) { - ctrl.PopState(); + Ctrl().PopState(); return; } if (Defeat()) { - ctrl.PopState(); + Ctrl().PopState(); return; } // TODO: this should not push a state while quitting if (AttackSelectionDone()) { - ctrl.PushState(new PerformAttacks(this)); + Ctrl().PushState(new PerformAttacks(this)); } else { - ctrl.PushState(new SelectMoveAction(this)); + Ctrl().PushState(new SelectMoveAction(this)); } } @@ -167,7 +169,7 @@ bool BattleState::Defeat() const { return true; } -void BattleState::PauseState(Application &ctrl, SDL_Surface *screen) { +void BattleState::OnPauseState(SDL_Surface *screen) { } @@ -422,7 +424,7 @@ void BattleState::RenderSmallHeroTags(SDL_Surface *screen, const Vector &of SDL_FillRect(screen, &rect, SDL_MapRGB(screen->format, 0, 0, 0)); rect.y += res->normalFont->CharHeight() / 8; rect.h -= res->normalFont->CharHeight() / 4; - SDL_FillRect(screen, &rect, res->heroesBgColor); + SDL_FillRect(screen, &rect, res->heroesBgColor.MapRGB(screen->format)); for (int i(0); i < numHeroes; ++i) { smallHeroTags[i].Render(screen, tagWidth, tagHeight, smallHeroTagPositions[i] + offset);