65 lines
No EOL
1.3 KiB
C++
65 lines
No EOL
1.3 KiB
C++
#ifndef __BOB_H__
|
|
#define __BOB_H__
|
|
|
|
#include "g_local.h"
|
|
#include "actor.h"
|
|
#include "trigger.h"
|
|
#include "concussion.h"
|
|
#include "crossbow.h"
|
|
|
|
// varient of the Plasma Bow that's the secondary fire only
|
|
class EXPORT_FROM_DLL BobBow : public Weapon
|
|
{
|
|
public:
|
|
CLASS_PROTOTYPE(BobBow);
|
|
|
|
BobBow();
|
|
virtual void Shoot(Event *ev);
|
|
};
|
|
|
|
extern Event EV_Bob_Concussion;
|
|
|
|
class EXPORT_FROM_DLL Bob:public Actor
|
|
{
|
|
private:
|
|
float concussiontime;
|
|
|
|
int blastcount; // fire counter
|
|
Vector lastfirepos; // where it last fired from
|
|
Vector lastfiredir; // direction it last fired in
|
|
|
|
public:
|
|
CLASS_PROTOTYPE(Bob);
|
|
|
|
Bob::Bob();
|
|
virtual void Prethink(void);
|
|
void Killed(Event *ev);
|
|
qboolean InConcussionFOV(Vector pos);
|
|
void FireConcussion(Event *ev);
|
|
void ConcussionEffect(Event *ev);
|
|
|
|
virtual void Archive( Archiver &arc );
|
|
virtual void Unarchive( Archiver &arc );
|
|
};
|
|
|
|
inline EXPORT_FROM_DLL void Bob::Archive (Archiver &arc)
|
|
{
|
|
Actor::Archive(arc);
|
|
|
|
arc.WriteFloat(concussiontime);
|
|
arc.WriteInteger(blastcount);
|
|
arc.WriteVector(lastfirepos);
|
|
arc.WriteVector(lastfiredir);
|
|
}
|
|
|
|
inline EXPORT_FROM_DLL void Bob::Unarchive (Archiver &arc)
|
|
{
|
|
Actor::Unarchive(arc);
|
|
|
|
arc.ReadFloat(&concussiontime);
|
|
arc.ReadInteger(&blastcount);
|
|
arc.ReadVector(&lastfirepos);
|
|
arc.ReadVector(&lastfiredir);
|
|
}
|
|
|
|
#endif |