etqw-sdk/source/game/LimboProperties.h

179 lines
5.4 KiB
C++

// Copyright (C) 2007 Id Software, Inc.
//
#ifndef __LIMBOPROPERTIES_H__
#define __LIMBOPROPERTIES_H__
#include "guis/UserInterfaceTypes.h"
SD_UI_PUSH_CLASS_TAG( sdLimboProperties )
SD_UI_CLASS_INFO_TAG(
/* ============ */
"Limbo properties are used by the limbo menu. Use \"limbo.\" to access the properties. " \
"Never use \"player.<propname>\" properties in the limbo menu. Many \"player.\" properties represent the local player OR " \
"the player that the local player is spectating. Always use the limbo.<propname> equivalents as they only ever " \
"refer to the local player. All player properties are read only."
/* ============ */
)
SD_UI_POP_CLASS_TAG
SD_UI_PROPERTY_TAG(
alias = "limbo";
)
class sdLimboProperties : public sdUIPropertyHolder {
public:
sdLimboProperties( void );
~sdLimboProperties( void );
virtual sdProperties::sdProperty* GetProperty( const char* name );
virtual sdProperties::sdProperty* GetProperty( const char* name, sdProperties::ePropertyType type );
virtual sdProperties::sdPropertyHandler& GetProperties() { return properties; }
virtual const char* GetName() const { return "limboProperties"; }
virtual const char* FindPropertyName( sdProperties::sdProperty* property, sdUserInterfaceScope*& scope ) { scope = this; return properties.NameForProperty( property ); }
void Update( void );
void Init( void );
void Shutdown( void );
void SetProficiencySource( const char* className );
void OnSetActiveSpawn( idEntity* newSpawn );
private:
void UpdateProficiency( idPlayer* player, const sdDeclPlayerClass* pc );
private:
const sdDeclPlayerClass* proficiencySource;
SD_UI_PROPERTY_TAG(
title = "LimboProperties/Role";
desc = "Selected role lookup name.";
datatype = "string";
)
sdStringProperty role;
SD_UI_PROPERTY_TAG(
title = "LimboProperties/Name";
desc = "Players current name with color codes and clan tag.";
datatype = "string";
)
sdStringProperty name;
SD_UI_PROPERTY_TAG(
title = "LimboProperties/TeamName";
desc = "Players current team lookup name.";
datatype = "string";
)
sdStringProperty teamName;
SD_UI_PROPERTY_TAG(
title = "LimboProperties/WeaponIndex";
desc = "Current weapon selection index.";
datatype = "float";
)
sdFloatProperty weaponIndex;
SD_UI_PROPERTY_TAG(
title = "LimboProperties/Rank";
desc = "Players current rank text handle.";
datatype = "int";
)
sdIntProperty rank;
SD_UI_PROPERTY_TAG(
title = "LimboProperties/Xp";
desc = "Players XP.";
datatype = "float";
)
sdFloatProperty xp;
SD_UI_PROPERTY_TAG(
title = "LimboProperties/RankIcon";
desc = "Players current rank icon.";
datatype = "string";
)
sdStringProperty rankMaterial;
SD_UI_PROPERTY_TAG(
title = "LimboProperties/MatchTime";
desc = "Current match time.";
datatype = "float";
)
sdFloatProperty matchTime;
SD_UI_PROPERTY_TAG(
title = "LimboProperties/AvailablePlayZones";
desc = "Number of play zones, usually one.";
datatype = "float";
)
sdFloatProperty availablePlayZones;
SD_UI_PROPERTY_TAG(
title = "LimboProperties/DefaultPlayZone";
desc = "The play zone the player currently is in.";
datatype = "float";
)
sdFloatProperty defaultPlayZone;
SD_UI_PROPERTY_TAG(
title = "LimboProperties/SpawnLocation";
desc = "Localized text of the players current spawn location.";
datatype = "wstring";
)
sdWStringProperty spawnLocation;
SD_UI_PUSH_GROUP_TAG( "Player Proficiency Properties" )
SD_UI_PROPERTY_TAG(
title = "LimboProperties/Proficiency";
desc = "Proficiency level for \"proficiencyX\" where X is from 0 to 4.";
datatype = "float";
)
idList< sdFloatProperty > proficiency;
SD_UI_PROPERTY_TAG(
title = "LimboProperties/ProficiencyPercent";
desc = "Percent complete for \"proficiencyPercentX\" where X is from 0 to 4.";
datatype = "float";
)
idList< sdFloatProperty > proficiencyPercent;
SD_UI_PROPERTY_TAG(
title = "LimboProperties/ProficiencyLevels";
desc = "Number of proficiency levels for \"proficiencyLevelsX\" where X is from 0 to 4.";
datatype = "float";
)
idList< sdFloatProperty > proficiencyLevels;
SD_UI_PROPERTY_TAG(
title = "LimboProperties/ProficiencyTitle";
desc = "Proficiency title for \"proficiencyTitleX\" where X is from 0 to 4.";
datatype = "int";
)
idList< sdIntProperty > proficiencyTitle;
SD_UI_PROPERTY_TAG(
title = "LimboProperties/ProficiencyID";
desc = "Proficiency ID (an index) for \"proficiencyIDX\" where X is from 0 to 4.";
datatype = "float";
)
idList< sdFloatProperty > proficiencyID;
SD_UI_PROPERTY_TAG(
title = "LimboProperties/ProficiencyXP";
desc = "Proficiency XP gained for \"proficiencyXPX\" where X is from 0 to 4.";
datatype = "float";
)
idList< sdFloatProperty > proficiencyXP;
SD_UI_PROPERTY_TAG(
title = "LimboProperties/ProficiencyName";
desc = "Proficiency Name for \"proficiencyNameX\" where X is from 0 to 4.";
datatype = "string";
)
idList< sdStringProperty > proficiencyName;
SD_UI_POP_GROUP_TAG
sdProperties::sdPropertyHandler properties;
};
#endif // __LIMBOPROPERTIES_H__