X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fbattle%2Fstates%2FSelectMoveAction.cpp;h=79aa8b949feab80f216c93bb2e02466c83f2b086;hb=087783315ac5955c17bb3b051c9351f321653df6;hp=c8405da7968340d01aa58f5c6c4ee7ee48f7697b;hpb=eb2ad5ffd08128d31af32f3929a3295fcfa251e9;p=l2e.git diff --git a/src/battle/states/SelectMoveAction.cpp b/src/battle/states/SelectMoveAction.cpp index c8405da..79aa8b9 100644 --- a/src/battle/states/SelectMoveAction.cpp +++ b/src/battle/states/SelectMoveAction.cpp @@ -15,6 +15,13 @@ using math::Vector; namespace battle { +SelectMoveAction::SelectMoveAction(Battle *battle, BattleState *parent) +: battle(battle) +, parent(parent) { + +} + + void SelectMoveAction::OnEnterState(SDL_Surface *screen) { OnResize(screen->w, screen->h); } @@ -33,32 +40,32 @@ void SelectMoveAction::OnPauseState(SDL_Surface *screen) { void SelectMoveAction::OnResize(int width, int height) { - position = battle->ScreenOffset() + Vector( - (battle->Width() - battle->GetMoveMenu().Width()) / 2, - battle->Height() - battle->GetMoveMenu().Height() - battle->GetMoveMenu().Height() / 2); + position = parent->ScreenOffset() + Vector( + (parent->Width() - parent->GetMoveMenu().Width()) / 2, + parent->Height() - parent->GetMoveMenu().Height() - parent->GetMoveMenu().Height() / 2); } void SelectMoveAction::HandleEvents(const Input &input) { if (input.IsDown(Input::PAD_UP)) { - battle->GetMoveMenu().Select(MoveMenu::CHANGE); + parent->GetMoveMenu().Select(MoveMenu::CHANGE); } else if (input.IsDown(Input::PAD_DOWN)) { - battle->GetMoveMenu().Select(MoveMenu::RUN); + parent->GetMoveMenu().Select(MoveMenu::RUN); } else { - battle->GetMoveMenu().Select(MoveMenu::ATTACK); + parent->GetMoveMenu().Select(MoveMenu::ATTACK); } if (input.JustPressed(Input::ACTION_A)) { - switch (battle->GetMoveMenu().Selected()) { + switch (parent->GetMoveMenu().Selected()) { case MoveMenu::ATTACK: - Ctrl().ChangeState(new SelectAttackType(battle)); + Ctrl().ChangeState(new SelectAttackType(battle, parent)); battle->NextHero(); break; case MoveMenu::CHANGE: Ctrl().PushState(new SwapHeroes(battle, this)); break; case MoveMenu::RUN: - Ctrl().ChangeState(new RunState(battle)); + Ctrl().ChangeState(new RunState(parent)); break; } } @@ -69,14 +76,31 @@ void SelectMoveAction::UpdateWorld(Uint32 deltaT) { } void SelectMoveAction::Render(SDL_Surface *screen) { - battle->RenderBackground(screen); - battle->RenderMonsters(screen); - battle->RenderHeroTags(screen); + parent->RenderBackground(screen); + parent->RenderMonsters(screen); + parent->RenderHeroTags(screen); RenderMenu(screen); } void SelectMoveAction::RenderMenu(SDL_Surface *screen) { - battle->GetMoveMenu().Render(screen, position); + parent->GetMoveMenu().Render(screen, position); +} + + +const Resources &SelectMoveAction::Res() const { + return parent->Res(); +} + +const Vector &SelectMoveAction::ScreenOffset() const { + return parent->ScreenOffset(); +} + +const HeroTag &SelectMoveAction::HeroTagAt(int index) const { + return parent->HeroTagAt(index); +} + +const Vector &SelectMoveAction::HeroTagPositionAt(int index) const { + return parent->HeroTagPositionAt(index); } }