00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #if !defined(__INCLUDE_WeaponTypeActionh_INCLUDE__)
00022 #define __INCLUDE_WeaponTypeActionh_INCLUDE__
00023
00024 #include <actions/CallbackWeapon.h>
00025
00026 class WeaponTypeAction : public WeaponCallback
00027 {
00028 public:
00029 WeaponTypeAction();
00030 virtual ~WeaponTypeAction();
00031
00032 virtual bool parseXML(AccessoryCreateContext &context,
00033 XMLNode *accessoryNode);
00034
00035
00036 void fireWeapon(ScorchedContext &context,
00037 WeaponFireContext &weaponContext, FixedVector &position, FixedVector &velocity);
00038
00039
00040 virtual void weaponCallback(
00041 ScorchedContext &context,
00042 WeaponFireContext &weaponContext, FixedVector &position, FixedVector &velocity,
00043 unsigned int userData);
00044
00045 REGISTER_ACCESSORY_HEADER(WeaponTypeAction, AccessoryPart::AccessoryWeapon);
00046
00047 protected:
00048 std::map<std::string, Weapon *> actions_;
00049
00050 };
00051
00052 #endif // __INCLUDE_WeaponTypeActionh_INCLUDE__