diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 736a995c..7de6bba8 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -2,8 +2,8 @@ + android:versionCode="36" + android:versionName="0.25.0"> diff --git a/android/app/src/main/cpp/code/cgame/cg_draw.c b/android/app/src/main/cpp/code/cgame/cg_draw.c index cc4da8c3..1f2689d9 100644 --- a/android/app/src/main/cpp/code/cgame/cg_draw.c +++ b/android/app/src/main/cpp/code/cgame/cg_draw.c @@ -2823,8 +2823,9 @@ void CG_DrawActive( void ) { vec3_t pos, hmdposition, vieworg; VectorClear(pos); VectorSubtract(vr->hmdposition, vr->hmdorigin, hmdposition); - rotateAboutOrigin(hmdposition[2], hmdposition[0], - cg.refdefViewAngles[YAW] - vr->calculated_weaponangles[YAW], pos); + + float angleYaw = SHORT2ANGLE(cg.predictedPlayerState.delta_angles[YAW]) + (vr->clientviewangles[YAW] - vr->hmdorientation[YAW]); + rotateAboutOrigin(hmdposition[2], hmdposition[0], angleYaw, pos); VectorScale(pos, worldscale, pos); VectorSubtract(cg.refdef.vieworg, pos, vieworg); diff --git a/android/app/src/main/cpp/code/q3_ui/ui_credits.c b/android/app/src/main/cpp/code/q3_ui/ui_credits.c index f51e5da7..6ed47971 100644 --- a/android/app/src/main/cpp/code/q3_ui/ui_credits.c +++ b/android/app/src/main/cpp/code/q3_ui/ui_credits.c @@ -31,6 +31,7 @@ CREDITS #include "ui_local.h" +#include "../qcommon/qcommon.h" typedef struct { menuframework_s menu; @@ -84,6 +85,88 @@ static void UI_CreditMenu_Draw_ioq3( void ) { } +/* +=============== +UI_CreditMenu_Draw_ioq3 +=============== +*/ +static void UI_CreditMenu_Draw_q3q( void ) { + int y; + int i; + +/* +Quake3Quest by Team Beef & Friends +------------------------------------- +Lead programmer +Dr Beef + +Additional coding +Baggyg, MuaDiB, Lubos, Sparkie + +Additional Contributions +Bummser, Skillfur, Ceno, Cukier, Eispfogel, Pizzaluigi + +Dedicated Beta Testers +XQuader, Ceno, Cukier, Bummser, Retro1N, Benny91, April, Ikarus, +Bim, Lubos, MasakaPete, Config2, Maniac, Ghostdog72, Slydog43, +Cornelius, Ferret, RealityForge, PvtGenO, SatanSlayer + +Special Thanks to the whole discord! +*/ + + y = 12; + + UI_DrawProportionalString( 320, y, "Quake3Quest by Team Beef & Friends", UI_CENTER|UI_SMALLFONT, color_red ); + y += PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "----------------------------------", UI_CENTER|UI_SMALLFONT, color_white ); + + y += 1.42 * PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Team Beef are DrBeef, Baggyg, Bummser", UI_CENTER|UI_SMALLFONT, color_blue ); + y += 1.42 * PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Lead programmer", UI_CENTER|UI_SMALLFONT, color_red ); + y += PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawString( 320, y, "DrBeef", UI_CENTER|UI_SMALLFONT, color_white ); + + y += 1.42 * PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Companion App", UI_CENTER|UI_SMALLFONT, color_red ); + y += PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawString( 320, y, "Baggyg", UI_CENTER|UI_SMALLFONT, color_white ); + + y += 1.42 * PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Additional Quake3Quest coding", UI_CENTER|UI_SMALLFONT, color_red ); + y += PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawString( 320, y, "Baggyg, MuadDiB, Lubos, Sparkie", UI_CENTER|UI_SMALLFONT, color_white ); + + y += 1.42 * PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Additional Contributions", UI_CENTER|UI_SMALLFONT, color_red ); + y += PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawString( 320, y, "Bummser, Skillfur, Ceno, Cukier, Eispfogel, Pizzaluigi", UI_CENTER|UI_SMALLFONT, color_white ); + + y += 1.42 * PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Dedicated Beta Testers", UI_CENTER|UI_SMALLFONT, color_red ); + y += PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawString( 320, y, "XQuader, Ceno, Cukier, Bummser, Retro1N, Benny91, April, Ikarus,", UI_CENTER|UI_SMALLFONT, color_white ); + y += PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawString( 320, y, "Bim, Lubos, MasakaPete, Config2, Maniac, Ghostdog72, Slydog43,", UI_CENTER|UI_SMALLFONT, color_white ); + y += PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawString( 320, y, "Cornelius, Ferret, RealityForge, PvtGenO, SatanSlayer", UI_CENTER|UI_SMALLFONT, color_white ); + + y += 1.42 * PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString( 320, y, "Special Thanks to the whole Team Beef discord!", UI_CENTER|UI_SMALLFONT, color_red ); + + qboolean skipIOQ3Credits = trap_Cvar_VariableValue("skip_ioq3_credits") == 1.0f; + if (skipIOQ3Credits) + { + y += 1.42 * PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString(320, y, "..and additional thanks to all the", UI_CENTER | UI_SMALLFONT, color_orange); + y += PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; + UI_DrawProportionalString(320, y, "original ioquake3 contributors!", UI_CENTER | UI_SMALLFONT, color_orange); + } + + UI_DrawString( 320, 459, "Quake3Quest: https://www.quake3.quakevr.com/", UI_CENTER|UI_SMALLFONT, color_red ); +} + + /* ================= UI_CreditMenu_Key @@ -94,9 +177,16 @@ static sfxHandle_t UI_CreditMenu_Key( int key ) { return 0; } + qboolean skipIOQ3Credits = trap_Cvar_VariableValue("skip_ioq3_credits") == 1.0f; + s_credits.frame++; if (s_credits.frame == 1) { - s_credits.menu.draw = UI_CreditMenu_Draw_ioq3; + s_credits.menu.draw = UI_CreditMenu_Draw_q3q; + } else if (s_credits.frame == 2 && !skipIOQ3Credits) { + //Only show these once the first time someone plays + trap_Cvar_SetValue("skip_ioq3_credits", 1.0f); + trap_Cmd_ExecuteText( EXEC_APPEND, "writeconfig " Q3CONFIG_CFG "/n"); + s_credits.menu.draw = UI_CreditMenu_Draw_ioq3; } else { trap_Cmd_ExecuteText( EXEC_APPEND, "quit\n" ); } @@ -158,7 +248,7 @@ static void UI_CreditMenu_Draw( void ) { UI_DrawProportionalString( 320, y, "Eric Webb", UI_CENTER|UI_SMALLFONT, color_white ); y += 1.35 * PROP_HEIGHT * PROP_SMALL_SIZE_SCALE; - UI_DrawString( 320, y, "To order: 1-800-idgames www.quake3arena.com www.idsoftware.com", UI_CENTER|UI_SMALLFONT, color_red ); + UI_DrawString( 320, y, "Buy the full game on Steam: https://store.steampowered.com/app/2200/Quake_III_Arena", UI_CENTER|UI_SMALLFONT, color_red ); y += SMALLCHAR_HEIGHT; UI_DrawString( 320, y, "Quake III Arena(c) 1999-2000, Id Software, Inc. All Rights Reserved", UI_CENTER|UI_SMALLFONT, color_red ); } diff --git a/android/app/src/main/cpp/code/q3_ui/ui_players.c b/android/app/src/main/cpp/code/q3_ui/ui_players.c index ea726878..1759467a 100644 --- a/android/app/src/main/cpp/code/q3_ui/ui_players.c +++ b/android/app/src/main/cpp/code/q3_ui/ui_players.c @@ -591,7 +591,7 @@ static void UI_PlayerAngles( playerInfo_t *pi, vec3_t legs[3], vec3_t torso[3], float dest; float adjust; - pi->viewAngles[YAW] = AngleNormalize360(uis.realtime / 50.0f); + pi->viewAngles[YAW] = 180 + (45.0f * sinf(DEG2RAD(AngleNormalize360(uis.realtime / 40.0f)))); VectorCopy( pi->viewAngles, headAngles ); headAngles[YAW] = AngleMod( headAngles[YAW] ); @@ -805,8 +805,6 @@ void UI_DrawPlayer( float x, float y, float w, float h, playerInfo_t *pi, int ti VectorCopy (legs.origin, legs.oldorigin); UI_ScaleModel(&legs); - //UI_ScaleModel(&torso); - //UI_ScaleModel(&head); trap_R_AddRefEntityToScene( &legs ); diff --git a/android/app/src/main/cpp/code/qcommon/common.c b/android/app/src/main/cpp/code/qcommon/common.c index 597ff495..35f2d1d8 100644 --- a/android/app/src/main/cpp/code/qcommon/common.c +++ b/android/app/src/main/cpp/code/qcommon/common.c @@ -2947,7 +2947,7 @@ void Com_WriteConfiguration( void ) { Com_WriteConfigToFile( Q3CONFIG_CFG ); // not needed for dedicated or standalone -#if !defined(DEDICATED) && !defined(STANDALONE) +#if 0 //!defined(DEDICATED) && !defined(STANDALONE) if(!com_standalone->integer) { const char *gamedir; diff --git a/android/app/src/main/cpp/code/vr/vr_base.c b/android/app/src/main/cpp/code/vr/vr_base.c index 8245073f..acb32af8 100644 --- a/android/app/src/main/cpp/code/vr/vr_base.c +++ b/android/app/src/main/cpp/code/vr/vr_base.c @@ -57,6 +57,7 @@ engine_t* VR_Init( ovrJava java ) void VR_InitCvars( void ) { + Cvar_Get ("skip_ioq3_credits", "0.0", CVAR_ARCHIVE); vr_worldscale = Cvar_Get ("vr_worldscale", "32.0", CVAR_ARCHIVE); vr_hudDepth = Cvar_Get ("vr_hudDepth", "3", CVAR_ARCHIVE); vr_righthanded = Cvar_Get ("vr_righthanded", "1", CVAR_ARCHIVE); diff --git a/android/app/src/main/cpp/code/vr/vr_clientinfo.h b/android/app/src/main/cpp/code/vr/vr_clientinfo.h index 0ddf493e..4a2af780 100644 --- a/android/app/src/main/cpp/code/vr/vr_clientinfo.h +++ b/android/app/src/main/cpp/code/vr/vr_clientinfo.h @@ -51,16 +51,6 @@ typedef struct { vec3_t offhandposition; vec2_t thumbstick_location[2]; //left / right thumbstick locations - used in cgame - - ////////////////////////////////////// - // Test stuff for weapon alignment - ////////////////////////////////////// - - char test_name[256]; - float test_scale; - vec3_t test_angles; - vec3_t test_offset; - } vr_clientinfo_t; #endif //vr_clientinfo_h \ No newline at end of file