UFO: Alien Invasion
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
cl_team.cpp File Reference

Team management, name generation and parsing. More...

#include "client.h"
#include "cl_team.h"
#include "cl_inventory.h"
#include "cgame/cl_game.h"
#include "battlescape/cl_localentity.h"
#include "battlescape/cl_actor.h"
#include "battlescape/events/e_parse.h"
#include "battlescape/events/e_main.h"
#include "ui/ui_data.h"
#include "ui/ui_nodes.h"

Go to the source code of this file.

Functions

actorSkin_tCL_AllocateActorSkin (const char *name)
 Allocate a skin from the cls structure. More...
 
unsigned int CL_GetActorSkinCount (void)
 Get number of registered actorskins. More...
 
static const actorSkin_tCL_GetActorSkinByIDS (unsigned int idx)
 Get a actorskin from idx. More...
 
static void CL_CharacterSkillAndScoreCvars (const character_t *chr)
 
static void CL_ActorCvars (const character_t *chr)
 Updates the character cvars for the given character. More...
 
const char * CL_ActorGetSkillString (const int skill)
 Return the skill string for the given skill level. More...
 
static void CL_UGVCvars (const character_t *chr)
 Updates the UGV cvars for the given "character". The models and stats that are displayed in the menu are stored in cvars. These cvars are updated here when you select another character. More...
 
void CL_UpdateCharacterValues (const character_t *chr)
 
void CL_GenerateCharacter (character_t *chr, const char *teamDefName)
 Generates the skills and inventory for a character and for a 2x2 unit. More...
 
static void CL_InitSkin_f (void)
 Init skins into the GUI. More...
 
static int CL_FixActorSkinIDX (int idx)
 Fix actorskin idx according to game mode. More...
 
static void CL_ChangeSkin_f (void)
 Change the skin of the selected actor. More...
 
static void CL_ChangeSkinForWholeTeam_f (void)
 Use current skin for all team members onboard. More...
 
void TEAM_InitStartup (void)
 

Variables

linkedList_tchrDisplayList
 List of currently displayed or equipable characters. More...
 

Detailed Description

Team management, name generation and parsing.

Definition in file cl_team.cpp.

Function Documentation

static void CL_ActorCvars ( const character_t chr)
static

Updates the character cvars for the given character.

The models and stats that are displayed in the menu are stored in cvars. These cvars are updated here when you select another character.

Parameters
[in]chrPointer to character_t (may not be null)
See also
CL_UGVCvars
CL_ActorSelect

Definition at line 143 of file cl_team.cpp.

References Cvar_Set(), Item::def(), Inventory::getLeftHandContainer(), Inventory::getRightHandContainer(), character_s::inv, and objDef_s::model.

Referenced by CL_UpdateCharacterValues().

const char* CL_ActorGetSkillString ( const int  skill)

Return the skill string for the given skill level.

Returns
skill string
Parameters
[in]skilla skill value between 0 and MAX_SKILL

Definition at line 165 of file cl_team.cpp.

References _, Com_Printf(), and MAX_SKILL.

Referenced by CL_CharacterSkillAndScoreCvars(), CL_UGVCvars(), and GAME_GetImportData().

actorSkin_t* CL_AllocateActorSkin ( const char *  name)

Allocate a skin from the cls structure.

Returns
A actorskin structure

Definition at line 44 of file cl_team.cpp.

References client_static_s::actorSkins, cls, com_genericPool, actorSkin_s::id, actorSkin_s::idx, index, lengthof, Mem_PoolStrDup, client_static_s::numActorSkins, OBJZERO, R_ModAllocateActorSkin(), and Sys_Error().

Referenced by CL_ParseActorSkin().

static void CL_ChangeSkin_f ( void  )
static

Change the skin of the selected actor.

Todo:
Get the skin id from the model by using the actorskin id
Todo:
Or remove skins from models and convert character_t->skin to string

Definition at line 309 of file cl_team.cpp.

References character_s::bodySkin, CL_FixActorSkinIDX(), cl_selected, Cvar_GetInteger(), Cvar_SetValue(), cvar_s::integer, and LIST_GetByIdx().

Referenced by TEAM_InitStartup().

static void CL_ChangeSkinForWholeTeam_f ( void  )
static

Use current skin for all team members onboard.

Todo:
What happens if a model of a team member does not have the selected skin?
Todo:
Get the skin id from the model by using the actorskin id
Todo:
Or remove skins from models and convert character_t->skin to string

Definition at line 326 of file cl_team.cpp.

References CL_FixActorSkinIDX(), Cvar_GetInteger(), and LIST_Foreach.

Referenced by TEAM_InitStartup().

static int CL_FixActorSkinIDX ( int  idx)
static

Fix actorskin idx according to game mode.

Todo:
we should check somewhere there is at least 1 skin

Definition at line 290 of file cl_team.cpp.

References CL_GetActorSkinByIDS(), GAME_IsMultiplayer(), GAME_IsSingleplayer, actorSkin_s::multiplayer, and actorSkin_s::singleplayer.

Referenced by CL_ChangeSkin_f(), and CL_ChangeSkinForWholeTeam_f().

void CL_GenerateCharacter ( character_t chr,
const char *  teamDefName 
)
static const actorSkin_t* CL_GetActorSkinByIDS ( unsigned int  idx)
static

Get a actorskin from idx.

Returns
A actorskin, else nullptr

Definition at line 72 of file cl_team.cpp.

References client_static_s::actorSkins, cls, and client_static_s::numActorSkins.

Referenced by CL_FixActorSkinIDX(), and CL_InitSkin_f().

unsigned int CL_GetActorSkinCount ( void  )

Get number of registered actorskins.

Returns
Number of registered actorskins

Definition at line 63 of file cl_team.cpp.

References cls, and client_static_s::numActorSkins.

Referenced by CL_ParseActorSkin(), and GAME_LoadCharacter().

static void CL_UGVCvars ( const character_t chr)
static

Updates the UGV cvars for the given "character". The models and stats that are displayed in the menu are stored in cvars. These cvars are updated here when you select another character.

Parameters
[in]chrPointer to character_t (may not be null)
See also
CL_ActorCvars
CL_ActorSelect

Definition at line 210 of file cl_team.cpp.

References ABILITY_MIND, CL_ActorGetSkillString(), Cvar_Set(), character_s::score, and chrScoreGlobal_s::skills.

Referenced by CL_UpdateCharacterValues().

void TEAM_InitStartup ( void  )

Definition at line 339 of file cl_team.cpp.

References CL_ChangeSkin_f(), CL_ChangeSkinForWholeTeam_f(), CL_InitSkin_f(), and Cmd_AddCommand().

Referenced by CL_InitLocal().

Variable Documentation