X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fbattle%2Fstates%2FSelectMoveAction.cpp;h=c8405da7968340d01aa58f5c6c4ee7ee48f7697b;hb=eb2ad5ffd08128d31af32f3929a3295fcfa251e9;hp=de8e97b4db066fca0b316cfcc767094470f8bc89;hpb=62c0a1d0ac98eb51418e4daa59e80b6cc97b522f;p=l2e.git diff --git a/src/battle/states/SelectMoveAction.cpp b/src/battle/states/SelectMoveAction.cpp index de8e97b..c8405da 100644 --- a/src/battle/states/SelectMoveAction.cpp +++ b/src/battle/states/SelectMoveAction.cpp @@ -1,50 +1,45 @@ -/* - * SelectMoveAction.cpp - * - * Created on: Aug 7, 2012 - * Author: holy - */ - #include "SelectMoveAction.h" +#include "RunState.h" #include "SelectAttackType.h" #include "SwapHeroes.h" #include "../BattleState.h" #include "../MoveMenu.h" #include "../../app/Application.h" #include "../../app/Input.h" -#include "../../geometry/operators.h" +#include "../../math/Vector.h" using app::Application; using app::Input; -using geometry::Point; -using geometry::Vector; +using math::Vector; namespace battle { -void SelectMoveAction::EnterState(Application &c, SDL_Surface *screen) { - ctrl = &c; +void SelectMoveAction::OnEnterState(SDL_Surface *screen) { + OnResize(screen->w, screen->h); } -void SelectMoveAction::ExitState(Application &c, SDL_Surface *screen) { - ctrl = 0; +void SelectMoveAction::OnExitState(SDL_Surface *screen) { + } -void SelectMoveAction::ResumeState(Application &ctrl, SDL_Surface *screen) { +void SelectMoveAction::OnResumeState(SDL_Surface *screen) { } -void SelectMoveAction::PauseState(Application &ctrl, SDL_Surface *screen) { +void SelectMoveAction::OnPauseState(SDL_Surface *screen) { } -void SelectMoveAction::Resize(int width, int height) { - +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); } -void SelectMoveAction::HandleInput(const Input &input) { +void SelectMoveAction::HandleEvents(const Input &input) { if (input.IsDown(Input::PAD_UP)) { battle->GetMoveMenu().Select(MoveMenu::CHANGE); } else if (input.IsDown(Input::PAD_DOWN)) { @@ -56,36 +51,32 @@ void SelectMoveAction::HandleInput(const Input &input) { if (input.JustPressed(Input::ACTION_A)) { switch (battle->GetMoveMenu().Selected()) { case MoveMenu::ATTACK: - ctrl->ChangeState(new SelectAttackType(battle)); + Ctrl().ChangeState(new SelectAttackType(battle)); battle->NextHero(); break; case MoveMenu::CHANGE: - ctrl->PushState(new SwapHeroes(battle, this)); + Ctrl().PushState(new SwapHeroes(battle, this)); break; case MoveMenu::RUN: - // TODO: switch to run state + Ctrl().ChangeState(new RunState(battle)); break; } } } -void SelectMoveAction::UpdateWorld(float deltaT) { +void SelectMoveAction::UpdateWorld(Uint32 deltaT) { } void SelectMoveAction::Render(SDL_Surface *screen) { - Vector offset(battle->CalculateScreenOffset(screen)); - battle->RenderBackground(screen, offset); - battle->RenderMonsters(screen, offset); - battle->RenderHeroTags(screen, offset); - RenderMenu(screen, offset); + battle->RenderBackground(screen); + battle->RenderMonsters(screen); + battle->RenderHeroTags(screen); + RenderMenu(screen); } -void SelectMoveAction::RenderMenu(SDL_Surface *screen, const Vector &offset) { - Point position( - (battle->BackgroundWidth() - battle->GetMoveMenu().Width()) / 2, - battle->BackgroundHeight() - battle->GetMoveMenu().Height() - battle->GetMoveMenu().Height() / 2); - battle->GetMoveMenu().Render(screen, position + offset); +void SelectMoveAction::RenderMenu(SDL_Surface *screen) { + battle->GetMoveMenu().Render(screen, position); } }