1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
/* This file is part of the Spring engine (GPL v2 or later), see LICENSE.html */
#ifndef WEAPONDEFHANDLER_H
#define WEAPONDEFHANDLER_H
#include <string>
#include <map>
#include "Sim/Misc/CommonDefHandler.h"
#include "Sim/Misc/GuiSoundSet.h"
#include "WeaponDef.h"
#include "System/float3.h"
class LuaTable;
class CWeaponDefHandler : CommonDefHandler
{
public:
CWeaponDefHandler();
~CWeaponDefHandler();
const WeaponDef* GetWeapon(const std::string& weaponname);
const WeaponDef* GetWeaponById(int weaponDefId);
void LoadSound(const LuaTable&, GuiSoundSet&, const std::string& name);
DamageArray DynamicDamages(DamageArray damages, float3 startPos,
float3 curPos, float range, float exp,
float damageMin, bool inverted);
public:
WeaponDef *weaponDefs;
std::map<std::string, int> weaponID;
int numWeaponDefs;
private:
void ParseWeapon(const LuaTable& wdTable, WeaponDef& wd);
void ParseWeaponVisuals(const LuaTable& wdTable, WeaponDef& wd);
void ParseWeaponSounds(const LuaTable& wdTable, WeaponDef& wd);
};
extern CWeaponDefHandler* weaponDefHandler;
#endif /* WEAPONDEFHANDLER_H */
|