ef2gamesource/dlls/game/waypoints.cpp

184 lines
4.1 KiB
C++

//-----------------------------------------------------------------------------
//
// $Logfile:: /EF2/Code/DLLs/game/waypoints.cpp $
// $Revision:: 12 $
// $Author:: Singlis $
// $Date:: 9/26/03 2:36p $
//
// Copyright (C) 2001 by Ritual Entertainment, Inc.
// All rights reserved.
//
// This source may not be distributed and/or modified without
// expressly written permission by Ritual Entertainment, Inc.
//
//
// DESCRIPTION:
//
// Waypoint.cpp
//
// Implementation for Waypoint Class
//
#include "_pch_cpp.h"
//#include "g_local.h"
#include "waypoints.h"
Event EV_WayPoint_SetActorAnim
(
"setactoranim",
EV_SCRIPTONLY,
"s",
"anim_name",
"sets what primary anim to set an actor to, when it reaches this waypoint"
);
Event EV_WayPoint_SetThread
(
"setwaypointthread",
EV_SCRIPTONLY,
"s",
"thread_name",
"sets the script thread to be called when the actor reaches this waypoint"
);
CLASS_DECLARATION( Entity , WayPointNode , "info_waypointnode_waypointnode" )
{
{ &EV_WayPoint_SetActorAnim, &WayPointNode::SetActorAnim },
{ &EV_WayPoint_SetThread, &WayPointNode::SetWayPointThread },
{ NULL, NULL }
};
WayPointNode::WayPointNode()
{
Thread = "";
ActorAnim = "";
}
WayPointNode::~WayPointNode()
{
}
//
// Accessors
//
const str &WayPointNode::GetThread()
{
return Thread;
}
const str &WayPointNode::GetActorAnim()
{
return ActorAnim;
}
void WayPointNode::SetActorAnim( const str &anim )
{
ActorAnim = anim;
}
void WayPointNode::SetWayPointThread( const str &thread )
{
Thread = thread;
}
//
// Events
//
void WayPointNode::SetWayPointThread ( Event *ev )
{
Thread = ev->GetString( 1 );
}
void WayPointNode::SetActorAnim ( Event *ev )
{
ActorAnim = ev->GetString( 1 );
}
/*****************************************************************************/
/*QUAKED info_waypointnode_waypointnode (1 0 1) (-12 -12 0) (12 12 12)
******************************************************************************/
CLASS_DECLARATION( Entity , PatrolWayPointNode , "info_waypointnode_patrolwaypointnode" )
{
{ &EV_WayPoint_SetActorAnim, &PatrolWayPointNode::SetActorAnim },
{ &EV_WayPoint_SetThread, &PatrolWayPointNode::SetWayPointThread },
{ NULL, NULL }
};
PatrolWayPointNode::PatrolWayPointNode()
{
SetWayPointThread("");
SetActorAnim("");
}
PatrolWayPointNode::~PatrolWayPointNode()
{
}
/*****************************************************************************/
/*QUAKED info_waypointnode_patrolwaypointnode (0 0 1) (-12 -12 0) (12 12 12)
******************************************************************************/
CLASS_DECLARATION( Entity , CallVolumeWayPointNode , "info_waypointnode_callvolume" )
{
{ &EV_WayPoint_SetActorAnim, &CallVolumeWayPointNode::SetActorAnim },
{ &EV_WayPoint_SetThread, &CallVolumeWayPointNode::SetWayPointThread },
{ NULL, NULL }
};
CallVolumeWayPointNode::CallVolumeWayPointNode()
{
SetWayPointThread("");
SetActorAnim("");
}
CallVolumeWayPointNode::~CallVolumeWayPointNode()
{
}
/*****************************************************************************/
/*QUAKED info_waypointnode_callvolume (.5 .5 .5) (-12 -12 0) (12 12 12)
******************************************************************************/
CLASS_DECLARATION( Entity , PositionWayPointNode , "info_waypointnode_position" )
{
{ &EV_WayPoint_SetActorAnim, &PositionWayPointNode::SetActorAnim },
{ &EV_WayPoint_SetThread, &PositionWayPointNode::SetWayPointThread },
{ NULL, NULL }
};
PositionWayPointNode::PositionWayPointNode()
{
SetWayPointThread("");
SetActorAnim("");
_reserved = false;
}
PositionWayPointNode::~PositionWayPointNode()
{
}
void PositionWayPointNode::Reserve( qboolean reserve )
{
_reserved = reserve;
}
qboolean PositionWayPointNode::IsReserved()
{
return _reserved;
}
/*****************************************************************************/
/*QUAKED info_waypointnode_position (.8 0 .8) (-12 -12 0) (12 12 12)
******************************************************************************/