100 lines
2.8 KiB
C++
100 lines
2.8 KiB
C++
//-----------------------------------------------------------------------------
|
|
//
|
|
// $Logfile:: /Quake 2 Engine/Sin/code/game/mover.h $
|
|
// $Revision:: 10 $
|
|
// $Author:: Markd $
|
|
// $Date:: 9/28/98 9:12p $
|
|
//
|
|
// Copyright (C) 1997 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/mover.h $
|
|
//
|
|
// 10 9/28/98 9:12p Markd
|
|
// Put in archive and unarchive functions
|
|
//
|
|
// 9 4/05/98 2:00a Jimdose
|
|
// added moveflags
|
|
//
|
|
// 8 3/23/98 1:33p Jimdose
|
|
// Revamped event and command system
|
|
//
|
|
// 7 3/02/98 8:49p Jimdose
|
|
// Changed CLASS_PROTOTYPE to only take the classname
|
|
//
|
|
// 6 2/16/98 2:13p Jimdose
|
|
// Changed EVENT_MOVER_MOVEDONE to EVENT_MOVEDONE so that physics can delay the
|
|
// movedone events
|
|
// Removed unused variables
|
|
//
|
|
// 5 2/03/98 10:45a Jimdose
|
|
// Updated to work with Quake 2 engine
|
|
// Made changeover from hackthinker to events
|
|
//
|
|
// 3 10/27/97 2:59p Jimdose
|
|
// Removed dependency on quakedef.h
|
|
//
|
|
// 2 9/26/97 5:23p Jimdose
|
|
// Added standard Ritual headers
|
|
//
|
|
// DESCRIPTION:
|
|
// Base class for any object that needs to move to specific locations over a
|
|
// period of time. This class is kept separate from most entities to keep
|
|
// class size down for objects that don't need such behavior.
|
|
//
|
|
|
|
#ifndef __MOVER_H__
|
|
#define __MOVER_H__
|
|
|
|
#include "g_local.h"
|
|
#include "entity.h"
|
|
#include "trigger.h"
|
|
|
|
class EXPORT_FROM_DLL Mover : public Trigger
|
|
{
|
|
private:
|
|
Vector finaldest;
|
|
Vector angledest;
|
|
Event endevent;
|
|
int moveflags;
|
|
|
|
public:
|
|
CLASS_PROTOTYPE( Mover );
|
|
|
|
void MoveDone( Event *ev );
|
|
void MoveTo( Vector tdest, Vector angdest, float tspeed, Event &event );
|
|
void LinearInterpolate( Vector tdest, Vector angdest, float time, Event &event );
|
|
virtual void Archive( Archiver &arc );
|
|
virtual void Unarchive( Archiver &arc );
|
|
};
|
|
|
|
inline EXPORT_FROM_DLL void Mover::Archive
|
|
(
|
|
Archiver &arc
|
|
)
|
|
{
|
|
Trigger::Archive( arc );
|
|
|
|
arc.WriteVector( finaldest );
|
|
arc.WriteVector( angledest );
|
|
arc.WriteEvent( endevent );
|
|
arc.WriteInteger( moveflags );
|
|
}
|
|
|
|
inline EXPORT_FROM_DLL void Mover::Unarchive
|
|
(
|
|
Archiver &arc
|
|
)
|
|
{
|
|
Trigger::Unarchive( arc );
|
|
|
|
arc.ReadVector( &finaldest );
|
|
arc.ReadVector( &angledest );
|
|
arc.ReadEvent( &endevent );
|
|
arc.ReadInteger( &moveflags );
|
|
}
|
|
|
|
#endif
|