X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fbattle%2Fstates%2FSelectAttackType.cpp;h=4bac0bbe50cf1d8ebf7a827f042e14588bd304cb;hb=2147d00bbcb43f5cb4499091f646057cb6944cb3;hp=b8d604d91a68dd28937a04f7668beb441c94fc91;hpb=6d080d21d8055df9962296863b4c0954bc81410b;p=l2e.git diff --git a/src/battle/states/SelectAttackType.cpp b/src/battle/states/SelectAttackType.cpp index b8d604d..4bac0bb 100644 --- a/src/battle/states/SelectAttackType.cpp +++ b/src/battle/states/SelectAttackType.cpp @@ -36,8 +36,8 @@ void SelectAttackType::ExitState(Application &c, SDL_Surface *screen) { } void SelectAttackType::ResumeState(Application &ctrl, SDL_Surface *screen) { - if (battle->ActiveHeroTargets().HasSelected()) { - battle->SetAttackType(battle->GetAttackTypeMenu().Selected()); + if (battle->ActiveHero().GetAttackChoice().Selection().HasSelected()) { + battle->ActiveHero().GetAttackChoice().SetType(battle->GetAttackTypeMenu().Selected()); battle->NextHero(); } if (battle->AttackSelectionDone()) { @@ -73,9 +73,9 @@ void SelectAttackType::HandleEvents(const Input &input) { switch (battle->GetAttackTypeMenu().Selected()) { case AttackChoice::SWORD: // TODO: detect single/multiple/all attack mode - battle->ActiveHeroTargets().SetSingle(); - battle->ActiveHeroTargets().Reset(); - ctrl->PushState(new SelectTarget(battle, this, &battle->ActiveHeroTargets(), battle->Res().weaponTargetCursor)); + battle->ActiveHero().GetAttackChoice().Selection().SetSingle(); + battle->ActiveHero().GetAttackChoice().Selection().Reset(); + ctrl->PushState(new SelectTarget(battle, this, &battle->ActiveHero().GetAttackChoice().Selection(), battle->Res().weaponTargetCursor)); break; case AttackChoice::MAGIC: if (battle->ActiveHero().CanUseMagic()) { @@ -83,7 +83,7 @@ void SelectAttackType::HandleEvents(const Input &input) { } break; case AttackChoice::DEFEND: - battle->SetAttackType(AttackChoice::DEFEND); + battle->ActiveHero().GetAttackChoice().SetType(AttackChoice::DEFEND); battle->NextHero(); break; case AttackChoice::IKARI: @@ -96,17 +96,16 @@ void SelectAttackType::HandleEvents(const Input &input) { throw std::logic_error("selected invalid attack type"); } } else if (input.JustPressed(Input::ACTION_B)) { - battle->ActiveHeroAttackChoice().Reset(); + battle->ActiveHero().GetAttackChoice().Reset(); battle->PreviousHero(); if (battle->BeforeFirstHero()) { ctrl->ChangeState(new SelectMoveAction(battle)); } else { - battle->ActiveHeroAttackChoice().Reset(); + battle->ActiveHero().GetAttackChoice().Reset(); } } if (battle->AttackSelectionDone()) { - // TODO: switch to battle animation instead ctrl->PopState(); } } @@ -125,8 +124,8 @@ void SelectAttackType::Render(SDL_Surface *screen) { void SelectAttackType::RenderMenu(SDL_Surface *screen, const Vector &offset) { Point position( - (battle->BackgroundWidth() - battle->GetAttackTypeMenu().Width()) / 2, - battle->BackgroundHeight() - battle->GetAttackTypeMenu().Height() - battle->GetAttackTypeMenu().Height() / 2); + (battle->Width() - battle->GetAttackTypeMenu().Width()) / 2, + battle->Height() - battle->GetAttackTypeMenu().Height() - battle->GetAttackTypeMenu().Height() / 2); battle->GetAttackTypeMenu().Render(screen, position + offset); }