sin-sdk/skeet.h

134 lines
3.5 KiB
C++

//-----------------------------------------------------------------------------
//
// $Logfile:: /Quake 2 Engine/Sin/code/game/skeet.h $
// $Revision:: 5 $
// $Author:: Markd $
// $Date:: 9/21/98 4:57p $
//
// Copyright (C) 1998 by Ritual Entertainment, Inc.
// All rights reserved.
//
// This source is may not be distributed and/or modified without
// expressly written permission by Ritual Entertainment, Inc.
//
// $Log:: /Quake 2 Engine/Sin/code/game/skeet.h $
//
// 5 9/21/98 4:57p Markd
// Added archive and unarchive functions
//
// 4 5/24/98 4:48p Jimdose
// Made char *'s const
//
// 3 5/19/98 4:25p Aldie
// Fixed skeet death
//
// 2 5/15/98 1:04p Aldie
//
// DESCRIPTION: Skeey and Pigeons
//
class EXPORT_FROM_DLL Pigeon : public Entity
{
private:
float maxspeed;
float acceleration;
float speed;
int owner;
str name;
public:
CLASS_PROTOTYPE( Pigeon );
void Setup( Entity *owner, Vector pos, Vector dir, float pspeed, float pgrav, float pduration, const char *name );
void RemovePigeon( Event *ev);
void Killed(Event *ev);
virtual void Archive( Archiver &arc );
virtual void Unarchive( Archiver &arc );
};
inline EXPORT_FROM_DLL void Pigeon::Archive
(
Archiver &arc
)
{
Entity::Archive( arc );
arc.WriteFloat( maxspeed );
arc.WriteFloat( acceleration );
arc.WriteFloat( speed );
arc.WriteInteger( owner );
arc.WriteString( name );
}
inline EXPORT_FROM_DLL void Pigeon::Unarchive
(
Archiver &arc
)
{
Entity::Unarchive( arc );
arc.ReadFloat( &maxspeed );
arc.ReadFloat( &acceleration );
arc.ReadFloat( &speed );
arc.ReadInteger( &owner );
arc.ReadString( &name );
}
class EXPORT_FROM_DLL SkeetLauncher : public Entity
{
private:
Vector launchAngle;
float pspeed;
float pgravity;
float pduration;
float speed_var;
float x_var;
float y_var;
float z_var;
public:
CLASS_PROTOTYPE( SkeetLauncher );
SkeetLauncher( );
void Launch(Event *ev);
void SetXdir(Event *ev);
void SetYdir(Event *ev);
void SetZdir(Event *ev);
void SetXvar(Event *ev);
void SetYvar(Event *ev);
void SetZvar(Event *ev);
void SetSpeed(Event *ev);
void SetGravity(Event *ev);
void SetDuration(Event *ev);
void SetSpeedVar(Event *ev);
virtual void Archive( Archiver &arc );
virtual void Unarchive( Archiver &arc );
};
inline EXPORT_FROM_DLL void SkeetLauncher::Archive
(
Archiver &arc
)
{
Entity::Archive( arc );
arc.WriteVector( launchAngle );
arc.WriteFloat( pspeed );
arc.WriteFloat( pgravity );
arc.WriteFloat( pduration );
arc.WriteFloat( speed_var );
arc.WriteFloat( x_var );
arc.WriteFloat( y_var );
arc.WriteFloat( z_var );
}
inline EXPORT_FROM_DLL void SkeetLauncher::Unarchive
(
Archiver &arc
)
{
Entity::Unarchive( arc );
arc.ReadVector( &launchAngle );
arc.ReadFloat( &pspeed );
arc.ReadFloat( &pgravity );
arc.ReadFloat( &pduration );
arc.ReadFloat( &speed_var );
arc.ReadFloat( &x_var );
arc.ReadFloat( &y_var );
arc.ReadFloat( &z_var );
}