Show ikmission.h syntax highlighted
/*
Copyright (C) 2003, 2004 by Luca Cappa
Written by Luca Cappa groton@users.sourceforge.net
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __IKMISSION_H__
#define __IKMISSION_H__
#include "csutil/scf.h"
#include "csutil/ref.h"
#include "kquaternion.h"
class scfString;
class csVector3;
struct iString;
struct iDocumentNode;
class csSchedule;
class KLandmark;
class KData;
class KDataList;
class KPosition;
class KPath;
class KPathFollower;
class KMissionType;
#ifndef NEW_MISSION_DESIGN
SCF_VERSION (iKMission, 0, 0, 1);
struct iKMission : public iBase
{
/*
INPUT
*/
/**
Get/Set the mission name.
*/
virtual const char* GetName() = 0;
virtual void SetName (const char* p_name) = 0;
/**
Get/Set the starting position.
*/
virtual KPosition* GetInitPosition () = 0;
virtual void SetInitPosition (KPosition* p_pos) = 0;
/**
Get/Set the map
*/
virtual KMap* GetMap () = 0;
virtual void SetMap (KMap*) = 0;
/**
Get/Set the landmarks
*/
virtual KLandmarkList* GetLandmarks () = 0;
virtual void SetLandmarks (KLandmarkList*) = 0;
/*
OUTPUT
*/
/**
Get the minutes the mission took from starting to ending.
*/
virtual float GetMinutes () = 0;
/**
Get the meters walked during the mission.
*/
virtual float GetMeters () = 0;
virtual void StartRecording (int p_intervalMs) = 0;
virtual void Record (int p_elapsedTimeMs) = 0;
virtual void StopRecording () = 0;
virtual bool GetCollectingData() = 0;
virtual KDataList* GetDataList () = 0;
//????virtual const KConstant<KMissionType>& GetMissionType () = 0;
virtual const KMissionType& GetMissionType () = 0;
//
//
virtual bool SaveMissionInfo (iDocumentNode* p_node) = 0;
virtual bool LoadMissionInfo (iDocumentNode* p_node) = 0;
};
SCF_VERSION (iKTargetingMission, 0, 0, 1);
struct iKTargetingMission : public iBase
{
/*
INPUT
*/
virtual void SetTargetName (const char* p_name) = 0;
virtual const char* GetTargetName () = 0;
virtual KLandmark* GetTarget () = 0;
virtual KPath* GetPath () = 0;
virtual void SetPath (KPath*) = 0;
virtual float GetAllowedMinutes () = 0;
virtual void SetAllowedMinutes (float) = 0;
//Utility methods.
virtual KPathFollower* GetPathFollower () = 0;
virtual csRefArray<iCollider>* GetColliders () = 0;
virtual bool WriteAdditionalInfo (iDocumentNode* p_parent) = 0;
virtual bool ReadAdditionalInfo (iDocumentNode* p_parent) = 0;
};
SCF_VERSION (iKFreeWalkingMission, 0, 0, 1);
struct iKFreeWalkingMission : public iBase
{
/*
INPUT
*/
virtual float GetAllowedMinutes () = 0;
virtual void SetAllowedMinutes (float) = 0;
virtual bool WriteAdditionalInfo (iDocumentNode* p_parent) = 0;
virtual bool ReadAdditionalInfo (iDocumentNode* p_parent) = 0;
};
SCF_VERSION (iKNotFreeWalkingMission, 0, 0, 1);
struct iKNotFreeWalkingMission : public iBase
{
/*
INPUT
*/
virtual KPath* GetPath () = 0;
virtual void SetPath (KPath* l_path) = 0;
virtual bool WriteAdditionalInfo (iDocumentNode* p_parent) = 0;
virtual bool ReadAdditionalInfo (iDocumentNode* p_parent) = 0;
};
SCF_VERSION (iKPointingTargetMission, 0, 0, 1);
struct iKPointingTargetMission : public iBase
{
/*
INPUT
*/
virtual char* GetTargetName () = 0;
virtual KLandmark* GetTarget () = 0;
virtual void SetTargetName (const char* p_targetName) = 0;
virtual bool WriteAdditionalInfo (iDocumentNode* p_parent) = 0;
virtual bool ReadAdditionalInfo (iDocumentNode* p_parent) = 0;
/*
OUTPUT
*/
virtual float CalculateAngle () = 0;
};
#else //NEW_MISSION_DESIGN
SCF_VERSION (iConditionTester, 0, 1, 0);
struct iConditionTester : public iBase
{
virtual bool Test () = 0;
};
SCF_VERSION (iActionGetter, 0, 1, 0);
struct iActionGetter : public iBase
{
virtual bool Action () = 0;
};
SCF_VERSION (iGeneralTester, 0, 1, 0);
struct iGeneralTester : public iBase
{
virtual bool Test () = 0;
virtual bool AddConditionTester (iConditionTester* p_aG) = 0;
virtual bool AddActionGetter (iActionGetter* p_aG) = 0;
};
SCF_VERSION (iKMission, 0, 1, 0);
struct iKMission : public iBase
{
virtual bool HandleEvent (iEvent& ev) = 0;
virtual void StartRecording (csTicks) = 0;
virtual void StopRecording () = 0;
virtual bool AddGeneralTester (iGeneralTester* p_gT) = 0;
};
#endif //NEW_MISSION_DESIGN
#endif
See more files for this project here