sin-sdk/viewthing.h

188 lines
4.7 KiB
C++

//-----------------------------------------------------------------------------
//
// $Logfile:: /Quake 2 Engine/Sin/code/game/viewthing.h $
// $Revision:: 20 $
// $Author:: Jimdose $
// $Date:: 10/08/98 12:35a $
//
// 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/viewthing.h $
//
// 20 10/08/98 12:35a Jimdose
// Added archive functions
//
// 19 10/04/98 11:11p Jimdose
// Made current_viewthing part of ViewMaster
//
// 18 9/09/98 5:57p Markd
// added viewautoanimate
//
// 17 7/10/98 6:20a Jimdose
// Added viewpitch, viewroll, and viewangles events
//
// 16 4/08/98 12:21a Jimdose
// Added viewdeleteall command
//
// 15 3/30/98 10:00a Markd
// Added nextskin and prevskin events
//
// 14 3/27/98 7:00p Markd
// Added new viewthing commands
//
// 13 3/23/98 1:33p Jimdose
// Revamped event and command system
//
// 12 3/12/98 9:49a Markd
// Added YAW event
//
// 11 3/11/98 11:30a Markd
// Added events and variable
//
// 10 3/07/98 2:05p Markd
// Fixed Viewthing
//
// 9 3/05/98 6:48p Markd
//
// 8 3/05/98 11:03a Markd
// Updated for Q2
//
// 6 10/28/97 6:55p Markd
// made initialorigin a public variable instead of a private one.
//
// 5 10/27/97 2:59p Jimdose
// Removed dependency on quakedef.h
//
// 4 10/23/97 6:37p Markd
// Added initialorigin stuff
//
// 3 10/01/97 6:37p Markd
// Added viewthing commands (ToggleAnimate and ChangeAnimation)
//
// 2 10/01/97 2:47p Markd
// working on wander AI
//
// 1 10/01/97 11:24a Markd
// new viewthing actor code
//
// DESCRIPTION:
// Actor code for the viewthing.
//
#ifndef __VIEWTHING_H__
#define __VIEWTHING_H__
#include "entity.h"
class EXPORT_FROM_DLL ViewMaster : public Listener
{
public:
CLASS_PROTOTYPE( ViewMaster )
int current_viewthing;
ViewMaster();
void Next( Event *ev );
void Prev( Event *ev );
void DeleteAll( Event *ev );
void Spawn( Event *ev );
void SetModelEvent( Event *ev );
void PassEvent( Event *ev );
virtual void Archive( Archiver &arc );
virtual void Unarchive( Archiver &arc );
};
inline EXPORT_FROM_DLL void ViewMaster::Archive
(
Archiver &arc
)
{
Listener::Archive( arc );
arc.WriteInteger( current_viewthing );
}
inline EXPORT_FROM_DLL void ViewMaster::Unarchive
(
Archiver &arc
)
{
Listener::Unarchive( arc );
arc.ReadInteger( &current_viewthing );
}
extern ViewMaster Viewmodel;
class EXPORT_FROM_DLL Viewthing : public Entity
{
public:
CLASS_PROTOTYPE( Viewthing )
int animstate;
Vector baseorigin;
Viewthing::Viewthing();
void Think( Event *ev );
void LastFrameEvent( Event *ev );
void ToggleAnimateEvent( Event *ev );
void SetModelEvent( Event *ev );
void NextFrameEvent( Event *ev );
void PrevFrameEvent( Event *ev );
void NextAnimEvent( Event *ev );
void PrevAnimEvent( Event *ev );
void ScaleUpEvent( Event *ev );
void ScaleDownEvent( Event *ev );
void SetScaleEvent( Event *ev );
void SetYawEvent( Event *ev );
void SetPitchEvent( Event *ev );
void SetRollEvent( Event *ev );
void SetAnglesEvent( Event *ev );
void AttachModel( Event *ev );
void Delete( Event *ev );
void DetachAll( Event *ev );
void BoneGroup( Event *ev );
void BoneNum( Event *ev );
void ChangeOrigin( Event *ev );
void ChangeBoneAngles( Event *ev );
void NextSkinEvent( Event *ev );
void PrevSkinEvent( Event *ev );
void AutoAnimateEvent( Event *ev );
virtual void Archive( Archiver &arc );
virtual void Unarchive( Archiver &arc );
};
inline EXPORT_FROM_DLL void Viewthing::Archive
(
Archiver &arc
)
{
Entity::Archive( arc );
arc.WriteInteger( animstate );
arc.WriteVector( baseorigin );
}
inline EXPORT_FROM_DLL void Viewthing::Unarchive
(
Archiver &arc
)
{
Entity::Unarchive( arc );
arc.ReadInteger( &animstate );
arc.ReadVector( &baseorigin );
}
#endif /* viewthing.h */