]> git.localhorst.tv Git - l2e.git/blob - src/battle/AttackTypeMenu.cpp
added attack type selection menu in battle state
[l2e.git] / src / battle / AttackTypeMenu.cpp
1 /*
2  * AttackTypeMenu.cpp
3  *
4  *  Created on: Aug 6, 2012
5  *      Author: holy
6  */
7
8 #include "AttackTypeMenu.h"
9
10 #include "../app/Input.h"
11 #include "../geometry/operators.h"
12 #include "../geometry/Vector.h"
13 #include "../graphics/Sprite.h"
14
15 using app::Input;
16 using geometry::Point;
17 using geometry::Vector;
18
19 namespace battle {
20
21 void AttackTypeMenu::ReadInput(const Input &input) {
22         if (input.IsDown(Input::PAD_UP)) {
23                 selected = MAGIC;
24         } else if (input.IsDown(Input::PAD_RIGHT)) {
25                 selected = DEFEND;
26         } else if (input.IsDown(Input::PAD_DOWN)) {
27                 selected = IKARI;
28         } else if (input.IsDown(Input::PAD_LEFT)) {
29                 selected = ITEM;
30         } else {
31                 selected = SWORD;
32         }
33 }
34
35 void AttackTypeMenu::Render(SDL_Surface *screen, const geometry::Point<int> &center) {
36         Vector<int> swordOffset(icons->Width() / -2, icons->Height() / -2);
37         Vector<int> magicOffset(swordOffset.X(), swordOffset.Y() - icons->Height());
38         Vector<int> defendOffset(swordOffset.X() + icons->Width(), swordOffset.Y());
39         Vector<int> ikariOffset(swordOffset.X(), swordOffset.Y() + icons->Height());
40         Vector<int> itemOffset(swordOffset.X() - icons->Width(), swordOffset.Y());
41
42         icons->Draw(screen, center + swordOffset, SWORD, (selected == SWORD) ? 1 : 0);
43         icons->Draw(screen, center + magicOffset, MAGIC, (selected == MAGIC) ? 1 : 0);
44         icons->Draw(screen, center + defendOffset, DEFEND, (selected == DEFEND) ? 1 : 0);
45         icons->Draw(screen, center + ikariOffset, IKARI, (selected == IKARI) ? 1 : 0);
46         icons->Draw(screen, center + itemOffset, ITEM, (selected == ITEM) ? 1 : 0);
47 }
48
49 }