From 2844b21186be57eff69d44af71724382ab2b51fb Mon Sep 17 00:00:00 2001 From: Petr Bartos Date: Tue, 16 Apr 2024 19:19:52 +0200 Subject: [PATCH] Change hand model; Allow hand model adjustment; Move weapon adustments to pak --- .../Android/jni/rtcw/src/cgame/cg_weapons.c | 39 +++++++++++++++++- .../Android/jni/rtcw/src/qcommon/common.c | 3 +- Projects/Android/jni/rtcw/src/ui/ui_main.c | 3 ++ .../z_vr_assets/models/players/bj/hand.jpg | Bin 4656 -> 0 bytes .../z_vr_assets/models/players/bj/hand.md3 | Bin 12356 -> 0 bytes .../z_vr_assets/models/players/bj/hand.mdc | Bin 0 -> 413096 bytes Projects/Android/z_vr_assets/models_vr.cfg | 4 ++ Projects/Android/z_vr_assets/ui/credits.menu | 14 +++++++ .../Android/z_vr_assets}/weapons_vr.cfg | 0 .../drbeef/rtcwquest/GLES3JNIActivity.java | 14 +++++-- 10 files changed, 71 insertions(+), 6 deletions(-) delete mode 100644 Projects/Android/z_vr_assets/models/players/bj/hand.jpg delete mode 100644 Projects/Android/z_vr_assets/models/players/bj/hand.md3 create mode 100644 Projects/Android/z_vr_assets/models/players/bj/hand.mdc create mode 100644 Projects/Android/z_vr_assets/models_vr.cfg rename {assets => Projects/Android/z_vr_assets}/weapons_vr.cfg (100%) diff --git a/Projects/Android/jni/rtcw/src/cgame/cg_weapons.c b/Projects/Android/jni/rtcw/src/cgame/cg_weapons.c index 0dc5e4a..a9038ee 100644 --- a/Projects/Android/jni/rtcw/src/cgame/cg_weapons.c +++ b/Projects/Android/jni/rtcw/src/cgame/cg_weapons.c @@ -3885,10 +3885,47 @@ void CG_AddViewHand( playerState_t *ps ) { memset( &handEnt, 0, sizeof(refEntity_t) ); CG_CalculateVROffHandPosition( handEnt.origin, angles ); + float scale = 1.0f; + char offhand_adjustment[256]; + trap_Cvar_VariableStringBuffer("vr_offhand_adjustment", offhand_adjustment, 256); + if (strlen(offhand_adjustment) > 0) { + vec3_t adjust, offset, temp_offset; + VectorClear(adjust); + VectorClear(offset); + VectorClear(temp_offset); + sscanf(offhand_adjustment, "%f,%f,%f,%f,%f,%f,%f", &scale, + &(temp_offset[0]), &(temp_offset[1]), &(temp_offset[2]), + &(adjust[PITCH]), &(adjust[YAW]), &(adjust[ROLL])); + VectorScale(temp_offset, scale, offset); + if (cgVR->right_handed) + { + //yaw needs to go in the other direction as left handed model is reversed + adjust[YAW] *= -1.0f; + } + //Adjust angles for hand models that aren't aligned very well + matrix4x4 m1, m2, m3; + vec3_t zero; + VectorClear(zero); + Matrix4x4_CreateFromEntity(m1, angles, zero, 1.0); + Matrix4x4_CreateFromEntity(m2, adjust, zero, 1.0); + Matrix4x4_Concat(m3, m1, m2); + Matrix4x4_ConvertToEntity(m3, angles, zero); + //Now move weapon closer to proper origin + vec3_t forward, right, up; + AngleVectors( angles, forward, right, up ); + VectorMA( handEnt.origin, offset[2], forward, handEnt.origin ); + VectorMA( handEnt.origin, offset[1], up, handEnt.origin ); + if (cgVR->right_handed) { + VectorMA(handEnt.origin, offset[0], right, handEnt.origin); + } else { + VectorMA(handEnt.origin, -offset[0], right, handEnt.origin); + } + } + vec3_t axis[3]; AnglesToAxis(angles, handEnt.axis); for ( int i = 0; i < 3; i++ ) { - VectorScale( handEnt.axis[i], (cgVR->right_handed || i != 1) ? 1.0f : -1.0f, handEnt.axis[i] ); + VectorScale( handEnt.axis[i], (cgVR->right_handed || i != 1) ? scale : -scale, handEnt.axis[i] ); } handEnt.renderfx = RF_DEPTHHACK | RF_FIRST_PERSON | RF_MINLIGHT | RF_VIEWWEAPON; diff --git a/Projects/Android/jni/rtcw/src/qcommon/common.c b/Projects/Android/jni/rtcw/src/qcommon/common.c index 93fafad..b31b7a0 100644 --- a/Projects/Android/jni/rtcw/src/qcommon/common.c +++ b/Projects/Android/jni/rtcw/src/qcommon/common.c @@ -2006,9 +2006,10 @@ void Com_Init( char *commandLine ) { Cbuf_AddText( "exec autoexec.cfg\n" ); + //Execute to overwrite additional vr models location with our desired adjustments + Cbuf_AddText( "exec models_vr.cfg\n" ); //Execute to overwrite weapon locations with our desired adjustments Cbuf_AddText( "exec weapons_vr.cfg\n" ); - //Execute last to allow user adjustment of weapon models if they have something else to use Cbuf_AddText( "exec weapons_user.cfg\n" ); diff --git a/Projects/Android/jni/rtcw/src/ui/ui_main.c b/Projects/Android/jni/rtcw/src/ui/ui_main.c index dcdbb7a..1d5f409 100644 --- a/Projects/Android/jni/rtcw/src/ui/ui_main.c +++ b/Projects/Android/jni/rtcw/src/ui/ui_main.c @@ -4570,6 +4570,9 @@ static void UI_RunMenuScript( char **args ) { Controls_SetDefaults(); trap_Cvar_Set( "com_introPlayed", "1" ); trap_Cvar_Set( "com_recommendedSet", "1" ); // NERVE - SMF + trap_Cmd_ExecuteText( EXEC_NOW, "exec models_vr.cfg\n" ); + trap_Cmd_ExecuteText( EXEC_NOW, "exec weapons_vr.cfg\n" ); + trap_Cmd_ExecuteText( EXEC_NOW, "exec weapons_user.cfg\n" ); trap_Cmd_ExecuteText( EXEC_APPEND, "vid_restart\n" ); // end from MP } else if ( Q_stricmp( name, "getCDKey" ) == 0 ) { diff --git a/Projects/Android/z_vr_assets/models/players/bj/hand.jpg b/Projects/Android/z_vr_assets/models/players/bj/hand.jpg deleted file mode 100644 index c11968e613d30584bb85873daf7bd5362b863065..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4656 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�#6~0H0U&H=)|1Io)hg-w`cmF-?f5+Ry{&)K`?Ej5@!~S>wIqZM8Kg0fa{dd^^ zZhwaT@5K3vN1)x%eu%!FZQY_!If(rsoU^kWDwAxp|CG;9brd=KOep@1YfRRJE`%CD zd@sHS=QePDJ>Q3se`lo1CUGbtukCFQ)r8pQqWGFL8uB5@HuIVg<7tq-i+&f?F&!`B zn3$~dOE@p;TqzGjk0d`PZz-P~+9+w;g;DJnwZ+)JRJ&5`ef3?0{uuScs81=qFNn^S z;h0drrTSpiH?Dqujag{?MdM-`<0A*;ljW1;lQq6y6D;8TgmjKV8r7$yJ|*=jsZWU< zAR{#XqVX5ah10o`eX5#osj*kKAvI4)W3QTPt$E{`10OgbpB&oEy3Rt^jHpjZK3Q`V zL;sO{vV5|9vV5|9vV8J#^qX)#p2l7^_R996e6oD9e6oD9=3Qv*4y{8HI3S-apDdrO zHHfsHlGcXOSdzw))J9etS#4ysk<~_48(D2+wUMAED1 zBeQ*|>ymU`lCDb%^NV!-zOLWb_4}c%JQU{!jU{O;Nn=SGOVU`9e6q%pG?t{XB#k9$ zEJ9xUsC#*#Faq_HH8C21@v+>2ND7t?|v7Wvr}~v+{PfonsZOqE)iWR>i7XHLGql ztftkn+E&NvT0N_84XmLxvc`6_Y2oU978hvx}^|U2Hw9r}eVl*2nr=7gX~hf%m&-#HpGV7FdJ?o zY^05{(Kg1$+BnOx@ixIG+7))CU1gJOvQ4q8ZK_>k)9hNCZhy1u?0TDFH`tAKlih5$ z*sbPmrrl<@+bp}o?zFpXw%u*_*u8e2-ER-rgZ7ZkvAH(S=Gy{WXp3yIJ#0&CsXbzk z+A>>iD{Q5$vemZ69<#OfxIJO(>`7a1PuT{0+BVuI+iY8Gt36}S+H