2016-12-22 19:57:21 +00:00
|
|
|
#ifndef __URDE_CGAMEPROJECTILE_HPP__
|
|
|
|
#define __URDE_CGAMEPROJECTILE_HPP__
|
|
|
|
|
|
|
|
#include "Collision/CMaterialList.hpp"
|
|
|
|
#include "Weapon/CWeaponMode.hpp"
|
|
|
|
#include "Weapon/CWeapon.hpp"
|
|
|
|
#include "World/CDamageInfo.hpp"
|
|
|
|
#include "RetroTypes.hpp"
|
|
|
|
#include "CToken.hpp"
|
2017-05-18 10:58:15 +00:00
|
|
|
#include "Weapon/CProjectileWeapon.hpp"
|
2016-12-22 19:57:21 +00:00
|
|
|
|
|
|
|
namespace urde
|
|
|
|
{
|
|
|
|
class CGenDescription;
|
|
|
|
class CWeaponDescription;
|
|
|
|
class CGameProjectile : public CWeapon
|
|
|
|
{
|
2017-05-18 10:58:15 +00:00
|
|
|
//CProjectileWeapon x170_;
|
|
|
|
TUniqueId x2c8_projectileLight;
|
|
|
|
u32 x2cc_;
|
|
|
|
union
|
|
|
|
{
|
|
|
|
struct
|
|
|
|
{
|
|
|
|
bool x2e4_24_ : 1;
|
|
|
|
bool x2e4_25_ : 1;
|
|
|
|
bool x2e4_26_ : 1;
|
|
|
|
bool x2e4_27_ : 1;
|
|
|
|
bool x2e4_28_ : 1;
|
|
|
|
};
|
|
|
|
};
|
2016-12-22 19:57:21 +00:00
|
|
|
public:
|
|
|
|
CGameProjectile(bool, const TToken<CWeaponDescription>&, const std::string&, EWeaponType, const zeus::CTransform&,
|
|
|
|
EMaterialTypes, const CDamageInfo&, TUniqueId, TAreaId, TUniqueId, TUniqueId, u32, bool,
|
|
|
|
const zeus::CVector3f&, const rstl::optional_object<TLockedToken<CGenDescription>>&, s16, bool);
|
|
|
|
|
2017-01-15 03:59:37 +00:00
|
|
|
virtual void Accept(IVisitor &visitor);
|
2017-05-18 10:58:15 +00:00
|
|
|
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager &);
|
2016-12-22 19:57:21 +00:00
|
|
|
static EProjectileAttrib GetBeamAttribType(EWeaponType wType);
|
2017-05-18 10:58:15 +00:00
|
|
|
void DeleteProjectileLight(CStateManager&);
|
|
|
|
void CreateProjectileLight(const std::string&, const CLight&, CStateManager&);
|
|
|
|
void Chase(float, CStateManager&);
|
2016-12-22 19:57:21 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // __URDE_CGAMEPROJECTILE_HPP__
|