Custom hands models (with weird right hand rendering bug)

This commit is contained in:
Petr Bartos 2023-11-28 20:42:34 +01:00 committed by Simon
parent 4f14c3da14
commit ffecbc8be4
24 changed files with 77 additions and 0 deletions

View file

@ -1450,6 +1450,27 @@ static void CG_RegisterGraphics( void ) {
cgs.media.handModel_fist = cgi_R_RegisterModel( "models/players/kyle/lhand_force_fisting.md3" ); cgs.media.handModel_fist = cgi_R_RegisterModel( "models/players/kyle/lhand_force_fisting.md3" );
cgs.media.handModel_force = cgi_R_RegisterModel( "models/players/kyle/lhand_f.md3" ); cgs.media.handModel_force = cgi_R_RegisterModel( "models/players/kyle/lhand_f.md3" );
cgs.media.handModel_hm_a_relaxed = cgi_R_RegisterModel( "models/players/jedi_hm/lhand_r_skin_a.md3" );
cgs.media.handModel_hm_a_fist = cgi_R_RegisterModel( "models/players/jedi_hm/lhand_force_fisting_skin_a.md3" );
cgs.media.handModel_hm_a_force = cgi_R_RegisterModel( "models/players/jedi_hm/lhand_f_skin_a.md3" );
cgs.media.handModel_hm_b_relaxed = cgi_R_RegisterModel( "models/players/jedi_hm/lhand_r_skin_b.md3" );
cgs.media.handModel_hm_b_fist = cgi_R_RegisterModel( "models/players/jedi_hm/lhand_force_fisting_skin_b.md3" );
cgs.media.handModel_hm_b_force = cgi_R_RegisterModel( "models/players/jedi_hm/lhand_f_skin_f.md3" );
cgs.media.handModel_kdm_relaxed = cgi_R_RegisterModel( "models/players/jedi_kdm/lhand_r.md3" );
cgs.media.handModel_kdm_fist = cgi_R_RegisterModel( "models/players/jedi_kdm/lhand_force_fisting.md3" );
cgs.media.handModel_kdm_force = cgi_R_RegisterModel( "models/players/jedi_kdm/lhand_f.md3" );
cgs.media.handModel_rm_relaxed = cgi_R_RegisterModel( "models/players/jedi_rm/lhand_r.md3" );
cgs.media.handModel_rm_fist = cgi_R_RegisterModel( "models/players/jedi_rm/lhand_force_fisting.md3" );
cgs.media.handModel_rm_force = cgi_R_RegisterModel( "models/players/jedi_rm/lhand_f.md3" );
cgs.media.handModel_hf_relaxed = cgi_R_RegisterModel( "models/players/jedi_hf/lhand_r.md3" );
cgs.media.handModel_hf_fist = cgi_R_RegisterModel( "models/players/jedi_hf/lhand_force_fisting.md3" );
cgs.media.handModel_hf_force = cgi_R_RegisterModel( "models/players/jedi_hf/lhand_f.md3" );
cgs.media.handModel_tf_relaxed = cgi_R_RegisterModel( "models/players/jedi_tf/lhand_r.md3" );
cgs.media.handModel_tf_fist = cgi_R_RegisterModel( "models/players/jedi_tf/lhand_force_fisting.md3" );
cgs.media.handModel_tf_force = cgi_R_RegisterModel( "models/players/jedi_tf/lhand_f.md3" );
cgs.media.handModel_zf_relaxed = cgi_R_RegisterModel( "models/players/jedi_zf/lhand_r.md3" );
cgs.media.handModel_zf_fist = cgi_R_RegisterModel( "models/players/jedi_zf/lhand_force_fisting.md3" );
cgs.media.handModel_zf_force = cgi_R_RegisterModel( "models/players/jedi_zf/lhand_f.md3" );
cgs.media.boltShader = cgi_R_RegisterShader( "gfx/misc/blueLine" ); cgs.media.boltShader = cgi_R_RegisterShader( "gfx/misc/blueLine" );

View file

@ -189,6 +189,28 @@ typedef struct {
qhandle_t handModel_fist; qhandle_t handModel_fist;
qhandle_t handModel_force; qhandle_t handModel_force;
qhandle_t handModel_hm_a_relaxed;
qhandle_t handModel_hm_a_fist;
qhandle_t handModel_hm_a_force;
qhandle_t handModel_hm_b_relaxed;
qhandle_t handModel_hm_b_fist;
qhandle_t handModel_hm_b_force;
qhandle_t handModel_kdm_relaxed;
qhandle_t handModel_kdm_fist;
qhandle_t handModel_kdm_force;
qhandle_t handModel_rm_relaxed;
qhandle_t handModel_rm_fist;
qhandle_t handModel_rm_force;
qhandle_t handModel_hf_relaxed;
qhandle_t handModel_hf_fist;
qhandle_t handModel_hf_force;
qhandle_t handModel_tf_relaxed;
qhandle_t handModel_tf_fist;
qhandle_t handModel_tf_force;
qhandle_t handModel_zf_relaxed;
qhandle_t handModel_zf_fist;
qhandle_t handModel_zf_force;
qhandle_t halfShieldModel; qhandle_t halfShieldModel;
qhandle_t solidWhiteShader; qhandle_t solidWhiteShader;

View file

@ -2389,6 +2389,40 @@ void CG_DrawActiveFrame( int serverTime, stereoFrame_t stereoView ) {
handEnt.renderfx = RF_DEPTHHACK | RF_VRVIEWMODEL; handEnt.renderfx = RF_DEPTHHACK | RF_VRVIEWMODEL;
char *char_model = cgi_Cvar_Get("g_char_model");
if ( strstr( "jedi_kdm", char_model ) != NULL ) {
cgs.media.handModel_relaxed = cgs.media.handModel_kdm_relaxed;
cgs.media.handModel_fist = cgs.media.handModel_kdm_fist;
cgs.media.handModel_force = cgs.media.handModel_kdm_force;
} else if ( strstr( "jedi_rm", char_model ) != NULL ) {
cgs.media.handModel_relaxed = cgs.media.handModel_rm_relaxed;
cgs.media.handModel_fist = cgs.media.handModel_rm_fist;
cgs.media.handModel_force = cgs.media.handModel_rm_force;
} else if ( strstr( "jedi_hf", char_model ) != NULL ) {
cgs.media.handModel_relaxed = cgs.media.handModel_hf_relaxed;
cgs.media.handModel_fist = cgs.media.handModel_hf_fist;
cgs.media.handModel_force = cgs.media.handModel_hf_force;
} else if ( strstr( "jedi_tf", char_model ) != NULL ) {
cgs.media.handModel_relaxed = cgs.media.handModel_tf_relaxed;
cgs.media.handModel_fist = cgs.media.handModel_tf_fist;
cgs.media.handModel_force = cgs.media.handModel_tf_force;
} else if ( strstr( "jedi_zf", char_model ) != NULL ) {
cgs.media.handModel_relaxed = cgs.media.handModel_zf_relaxed;
cgs.media.handModel_fist = cgs.media.handModel_zf_fist;
cgs.media.handModel_force = cgs.media.handModel_zf_force;
} else {
char *char_skin_head = cgi_Cvar_Get("g_char_skin_head");
if ( strstr( "head_a1", char_skin_head ) != NULL ) {
cgs.media.handModel_relaxed = cgs.media.handModel_hm_b_relaxed;
cgs.media.handModel_fist = cgs.media.handModel_hm_b_fist;
cgs.media.handModel_force = cgs.media.handModel_hm_b_force;
} else {
cgs.media.handModel_relaxed = cgs.media.handModel_hm_a_relaxed;
cgs.media.handModel_fist = cgs.media.handModel_hm_a_fist;
cgs.media.handModel_force = cgs.media.handModel_hm_a_force;
}
}
if (!g_entities[cg.snap->ps.viewEntity].client->ps.dualSabers || if (!g_entities[cg.snap->ps.viewEntity].client->ps.dualSabers ||
cg.snap->ps.weapon != WP_SABER) cg.snap->ps.weapon != WP_SABER)
{ {

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.