-/*
- * SelectHero.cpp
- *
- * Created on: Oct 22, 2012
- * Author: holy
- */
-
#include "SelectHero.h"
#include "HeroStatus.h"
#include "../common/GameConfig.h"
#include "../common/GameState.h"
#include "../common/Hero.h"
-#include "../geometry/Vector.h"
+#include "../math/Vector.h"
#include "../graphics/Sprite.h"
using app::Input;
-using geometry::Vector;
+using math::Vector;
namespace menu {
-SelectHero::SelectHero(PartyMenu *parent, Callback cb, int cursor)
+SelectHero::SelectHero(app::State *parent, PartyMenu *pm, void *ref, Callback cb, int cursor)
: parent(parent)
+, partyMenu(pm)
+, ref(ref)
, callback(cb)
, cursor(cursor) {
void SelectHero::HandleEvents(const Input &input) {
if (input.JustPressed(Input::ACTION_A)) {
- callback(parent, cursor);
+ callback(ref, cursor);
}
if (input.JustPressed(Input::ACTION_B)) {
Ctrl().PopState();
}
void SelectHero::SelectUp() {
- cursor = (cursor + 2) % parent->Game().state->partySize;
+ cursor = (cursor + 2) % partyMenu->Game().state->partySize;
cursorBlink.Restart();
}
void SelectHero::SelectRight() {
- cursor = (cursor + 1) % parent->Game().state->partySize;
+ cursor = (cursor + 1) % partyMenu->Game().state->partySize;
cursorBlink.Restart();
}
void SelectHero::SelectDown() {
- cursor = (cursor + 2) % parent->Game().state->partySize;
+ cursor = (cursor + 2) % partyMenu->Game().state->partySize;
cursorBlink.Restart();
}
void SelectHero::SelectLeft() {
- cursor = (cursor + 3) % parent->Game().state->partySize;
+ cursor = (cursor + 3) % partyMenu->Game().state->partySize;
cursorBlink.Restart();
}
common::GameConfig &SelectHero::Game() {
- return parent->Game();
+ return partyMenu->Game();
}
const common::GameConfig &SelectHero::Game() const {
- return parent->Game();
+ return partyMenu->Game();
}
Resources &SelectHero::Res() {
- return parent->Res();
+ return partyMenu->Res();
}
const Resources &SelectHero::Res() const {
- return parent->Res();
+ return partyMenu->Res();
}
-void SelectHero::UpdateWorld(float deltaT) {
+void SelectHero::UpdateWorld(Uint32 deltaT) {
}
}
void SelectHero::RenderCursor(SDL_Surface *screen) const {
+ const Vector<int> offset((screen->w - partyMenu->Width()) / 2, (screen->h - partyMenu->Height()) / 2);
Vector<int> position(
0, Game().state->party[cursor]->BattleSprite()->Height());
- position += parent->StatusOffset(cursor);
- Res().heroCursor->Draw(screen, position);
+ position += partyMenu->StatusOffset(cursor);
+ Res().heroCursor->Draw(screen, position + offset);
}
}