mirror of
https://github.com/UberGames/EF2GameSource.git
synced 2024-11-10 06:31:42 +00:00
117 lines
3.1 KiB
C++
117 lines
3.1 KiB
C++
//-----------------------------------------------------------------------------
|
|
//
|
|
// $Logfile:: /Code/DLLs/game/surfaceflags.h $
|
|
// $Revision:: 9 $
|
|
// $Author:: Jwaters $
|
|
// $Date:: 7/30/02 8:35p $
|
|
//
|
|
// Copyright (C) 1999 by Ritual Entertainment, Inc.
|
|
// All rights reserved.
|
|
//
|
|
// This source may not be distributed and/or modified without
|
|
// expressly written permission by Ritual Entertainment, Inc.
|
|
//
|
|
// $Log:: /Code/DLLs/game/surfaceflags.h $
|
|
|
|
#ifndef TEAMMATE_ROSTER_HPP
|
|
#define TEAMMATE_ROSTER_HPP
|
|
|
|
#include "listener.h"
|
|
#include "container.h"
|
|
#include "str.h"
|
|
|
|
const int MAX_TEAMMATES=4;
|
|
|
|
//Teammate Data Structure
|
|
typedef struct
|
|
{
|
|
int entNum;
|
|
int injuredHealthLevel;
|
|
int criticalHealthLevel;
|
|
bool active;
|
|
str archeType;
|
|
|
|
}TeammateData;
|
|
|
|
//-------------------------- CLASS ----------------------------------
|
|
//
|
|
// Name: TeammateRoster
|
|
// Base Class: None
|
|
//
|
|
// Description: Handles adding the teammate to the roster. This is a singleton system that will receive events
|
|
// (usually through script) to add and remove teammates to a roster. This system then updates
|
|
// the teammates health status via the database. The client reads in these database values via the
|
|
// user interface and displays this to the user.
|
|
//
|
|
// Method Of Use:
|
|
//
|
|
//-------------------------------------------------------------------
|
|
class TeammateRoster
|
|
{
|
|
public:
|
|
TeammateRoster();
|
|
~TeammateRoster();
|
|
|
|
static void createInstance(void);
|
|
static void deleteInstance(void);
|
|
|
|
static TeammateRoster* getInstance(void) { if(_instance == 0) TeammateRoster::createInstance(); return _instance; }
|
|
|
|
TeammateStatus getTeammateStatus(int index);
|
|
|
|
void addTeammate(const Entity* entity, int index);
|
|
void removeTeammate(int index);
|
|
|
|
void update(void);
|
|
|
|
void clearTeammates(void);
|
|
|
|
void Archive( Archiver &arc );
|
|
|
|
protected:
|
|
void removeTeammateDataFromDatabase(int index);
|
|
|
|
|
|
private:
|
|
TeammateData _teammateList[MAX_TEAMMATES];
|
|
static TeammateRoster* _instance;
|
|
|
|
str _healthyShader;
|
|
str _injuredShader;
|
|
str _criticalShader;
|
|
str _defaultShader;
|
|
|
|
str _healthyAnimation;
|
|
str _injuredAnimation;
|
|
str _criticalAnimation;
|
|
};
|
|
|
|
|
|
inline void TeammateRoster::Archive( Archiver& arc )
|
|
{
|
|
TeammateData* teammateData;
|
|
|
|
for(int i = 0; i < MAX_TEAMMATES; i++)
|
|
{
|
|
teammateData = &_teammateList[i];
|
|
arc.ArchiveInteger( &teammateData->entNum);
|
|
arc.ArchiveInteger( &teammateData->injuredHealthLevel);
|
|
arc.ArchiveInteger( &teammateData->criticalHealthLevel);
|
|
arc.ArchiveBool( &teammateData->active);
|
|
arc.ArchiveString( &teammateData->archeType);
|
|
}
|
|
|
|
|
|
arc.ArchiveString(&_healthyShader);
|
|
arc.ArchiveString(&_injuredShader);
|
|
arc.ArchiveString(&_criticalShader);
|
|
arc.ArchiveString(&_defaultShader);
|
|
|
|
arc.ArchiveString(&_healthyAnimation);
|
|
arc.ArchiveString(&_injuredAnimation);
|
|
arc.ArchiveString(&_criticalAnimation);
|
|
|
|
}
|
|
|
|
#endif
|
|
|