#include "SmallHeroTag.h"
#include "../app/fwd.h"
#include "../app/State.h"
+#include "../common/GameConfig.h"
#include "../common/fwd.h"
+#include "../common/Stats.h"
#include "../geometry/Vector.h"
#include "../graphics/Animation.h"
#include "../graphics/fwd.h"
: public app::State {
public:
- BattleState(SDL_Surface *background, const PartyLayout &monstersLayout, const PartyLayout &heroesLayout, const Resources *res)
- : background(background)
- , monstersLayout(&monstersLayout)
- , heroesLayout(&heroesLayout)
- , res(res)
+ BattleState(common::GameConfig *game, SDL_Surface *background, const PartyLayout *monstersLayout)
+ : game(game)
+ , background(background)
+ , monstersLayout(monstersLayout)
+ , heroesLayout(game->heroesLayout)
+ , res(game->battleResources)
, attackTypeMenu(res->attackIcons)
, moveMenu(res->moveIcons)
, numHeroes(0)
, attackCursor(-1)
, expReward(0)
, goldReward(0)
- , ranAway(false) { assert(background && res); }
+ , ranAway(false) { assert(background && monstersLayout && game); }
public:
void AddMonster(const Monster &);
void LoadInventory();
void DecideMonsterAttack(Monster &) const;
- void CalculateDamage(const Stats &attackerStats, TargetSelection &targets) const;
- Uint16 CalculateDamage(const Stats &attacker, const Stats &defender) const;
+ void CalculateDamage(const common::Stats &attackerStats, TargetSelection &targets) const;
+ Uint16 CalculateDamage(const common::Stats &attacker, const common::Stats &defender) const;
private:
+ common::GameConfig *game;
SDL_Surface *background;
const PartyLayout *monstersLayout;
const PartyLayout *heroesLayout;