Btw, thanks for all the (non-existent) informative and helpful comments

-------------------------------------------
Hi,
I have a problem with player models. I want to change the player model ingame when a certain Cvar changes value. The code I refer to here is in 'cgame/cg_player.c'.
The parameters of the available models (models, skins and animation) are preloaded at level start into an array called 'newmodel'. When a Cvar change is detected, I copy the appropriate data from this array to the clientinfo structure of the player and reset the player entity.
Code: Select all
typedef struct
{
int valid;
qhandle_t model[3];
qhandle_t skin[3];
qboolean fixedlegs;
qboolean fixedtorso;
vec3_t headOffset;
footstep_t footsteps;
gender_t gender;
animation_t animations[MAX_TOTALANIMATIONS];
} newmodel_t;
newmodel_t newmodel[NEW_MODEL_NUM];
enum { MOD_LEGS, MOD_TORSO, MOD_HEAD };
void
CG_SetModel(centity_t *cent, clientInfo_t *ci, int modelindex)
{
ci->legsModel = newmodel[modelindex].model[MOD_LEGS];
ci->torsoModel = newmodel[modelindex].model[MOD_TORSO];
ci->headModel = newmodel[modelindex].model[MOD_HEAD];
ci->legsSkin = newmodel[modelindex].skin[MOD_LEGS];
ci->torsoSkin = newmodel[modelindex].skin[MOD_TORSO];
ci->headSkin = newmodel[modelindex].skin[MOD_HEAD];
ci->fixedlegs = newmodel[modelindex].fixedlegs;
ci->fixedtorso = newmodel[modelindex].fixedtorso;
VectorCopy(newmodel[modelindex].headOffset, ci->headOffset);
ci->footsteps = newmodel[modelindex].footsteps;
ci->gender = newmodel[modelindex].gender;
memcpy(ci->animations, newmodel[modelindex].animations, sizeof(ci->animations));
CG_ResetPlayerEntity(cent);
}
My development system:
Window 7 Ultimate 64-bit
MinGW/Msys
So please, tell me what is wrong with this code. Did I miss something important?
Thanks!