Merge branch 'master' into SpaceWarp

This commit is contained in:
Lubos 2022-06-15 16:47:00 +02:00
commit 6a1aef509f
15 changed files with 94 additions and 62 deletions

View file

@ -2,8 +2,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.drbeef.ioq3quest"
android:installLocation="preferExternal"
android:versionCode="53"
android:versionName="1.1.0">
android:versionCode="57"
android:versionName="1.1.2">
<uses-feature android:name="android.hardware.vr.headtracking" android:version="1" android:required="true" />
<uses-feature android:glEsVersion="0x00030001" />
<!-- <uses-feature android:name="oculus.software.overlay_keyboard" android:required="false"/>-->

View file

@ -1,4 +1,4 @@
set sv_master1 "13.36.227.32:27950"
set vr_master1 "mp.quakevr.com:27950"
//////////////////////////////////////////////////////////////////////////////////////////////////
// //

View file

@ -1,4 +1,4 @@
set sv_master1 "13.36.227.32:27950"
set vr_master1 "mp.quakevr.com:27950"
set vr_weapon_adjustment_1 "1.0,0,12,-13,-36,0,100"
set vr_weapon_adjustment_2 "1.0,-6,6,-3,0,0,0"

Binary file not shown.

View file

@ -620,6 +620,10 @@ void CL_FinishMove( usercmd_t *cmd ) {
{
angles[ROLL] = 0; // suppress roll
}
else
{
angles[ROLL] = vr.hmdorientation[ROLL];
}
for (i = 0; i < 3; i++) {
cmd->angles[i] = ANGLE2SHORT(angles[i]);

View file

@ -4198,7 +4198,7 @@ void CL_GlobalServers_f( void ) {
int numAddress = 0;
for ( i = 1; i <= MAX_MASTER_SERVERS; i++ ) {
sprintf(command, "sv_master%d", i);
sprintf(command, "vr_master%d", i);
masteraddress = Cvar_VariableString(command);
if(!*masteraddress)
@ -4216,7 +4216,7 @@ void CL_GlobalServers_f( void ) {
return;
}
sprintf(command, "sv_master%d", masterNum);
sprintf(command, "vr_master%d", masterNum);
masteraddress = Cvar_VariableString(command);
if(!*masteraddress)

View file

@ -107,8 +107,8 @@ 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,
f2hunter, XQuader, Ceno, Cukier, Bummser, Retro1N, Benny91, April, Ikarus,
GeTall, Lubos, MasakaPete, Config2, Maniac, Ghostdog72, Slydog43,
Cornelius, Ferret, RealityForge, PvtGenO, SatanSlayer
Special Thanks to the whole discord!
@ -140,16 +140,18 @@ Special Thanks to the whole discord!
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 );
UI_DrawString( 320, y, "Bummser, Skillfur, Ceno, Cukier, Eispfogel", UI_CENTER|UI_SMALLFONT, color_white );
y += PROP_HEIGHT * PROP_SMALL_SIZE_SCALE;
UI_DrawString( 320, y, "Omarlego (custom Q3Q background), 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, "f2hunter, XQuader, Ceno, Cukier, Bummser, Retro1N, Benny91, Ikarus,", UI_CENTER|UI_SMALLFONT, color_white );
UI_DrawString( 320, y, "f2hunter, XQuader, Ceno, Cukier, Bummser, Retro1N, Benny91, Madmac(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 );
UI_DrawString( 320, y, "GeTall, Lubos, MasakaPete, Config2, Maniac, Ghostdog72, Slydog43,", UI_CENTER|UI_SMALLFONT, color_white );
y += PROP_HEIGHT * PROP_SMALL_SIZE_SCALE;
UI_DrawString( 320, y, "April, Cornelius, Ferret, RealityForge, PvtGenO, SatanSlayer", UI_CENTER|UI_SMALLFONT, color_white );
UI_DrawString( 320, y, "Myrothas, April, 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 );

View file

@ -702,7 +702,8 @@ static void ArenaServers_Insert( char* adrstr, char* info, int pingtime )
servernodeptr->minPing = atoi( Info_ValueForKey( info, "minPing") );
servernodeptr->maxPing = atoi( Info_ValueForKey( info, "maxPing") );
servernodeptr->bPB = atoi( Info_ValueForKey( info, "punkbuster") );
servernodeptr->demo = (strcasestr(info, "demo") != NULL);
servernodeptr->demo = (strcasestr(info, "demo") != NULL) ||
(strcmp(servernodeptr->hostname, "Quake3Quest") == 0); // Demo can connect to another quest
/*
s = Info_ValueForKey( info, "nettype" );
@ -1125,7 +1126,7 @@ int ArenaServers_SetType( int type )
if(type >= UIAS_GLOBAL1 && type <= UIAS_GLOBAL5)
{
char masterstr[2], cvarname[sizeof("sv_master1")];
char masterstr[2], cvarname[sizeof("vr_master1")];
int direction;
if (type == g_servertype || type == ((g_servertype+1) % UIAS_NUM_SOURCES)) {
@ -1136,7 +1137,7 @@ int ArenaServers_SetType( int type )
while(type >= UIAS_GLOBAL1 && type <= UIAS_GLOBAL5)
{
Com_sprintf(cvarname, sizeof(cvarname), "sv_master%d", type - UIAS_GLOBAL0);
Com_sprintf(cvarname, sizeof(cvarname), "vr_master%d", type - UIAS_GLOBAL0);
trap_Cvar_VariableStringBuffer(cvarname, masterstr, sizeof(masterstr));
if(*masterstr)
break;

View file

@ -99,6 +99,14 @@ static const char *gametype_items[] = {
static int gametype_remap[] = {GT_FFA, GT_TEAM, GT_TOURNAMENT, GT_CTF};
static int gametype_remap2[] = {0, 2, 0, 1, 3};
static int fraglimit_values[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 40, 50, 75, 100, 200, 500, -1};
static const char *fraglimit_items[] = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "15",
"20", "25", "30", "40", "50", "75", "100", "200", "500", NULL};
static int timelimit_values[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 40, 50, 60, 120, 240, 480, -1};
static const char *timelimit_items[] = {"No limit", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "15",
"20", "25", "30", "40", "50", "60", "120", "240", "480", NULL};
// use ui_servers2.c definition
extern const char* punkbuster_items[];
@ -631,9 +639,9 @@ typedef struct {
menubitmap_s picframe;
menulist_s dedicated;
menufield_s timelimit;
menufield_s fraglimit;
menufield_s flaglimit;
menulist_s timelimit;
menulist_s fraglimit;
menulist_s flaglimit;
menuradiobutton_s friendlyfire;
menufield_s hostname;
menuradiobutton_s pure;
@ -735,9 +743,9 @@ static void ServerOptions_Start( void ) {
char buf[64];
const char *info;
timelimit = atoi( s_serveroptions.timelimit.field.buffer );
fraglimit = atoi( s_serveroptions.fraglimit.field.buffer );
flaglimit = atoi( s_serveroptions.flaglimit.field.buffer );
timelimit = timelimit_values[s_serveroptions.timelimit.curvalue];
fraglimit = fraglimit_values[s_serveroptions.fraglimit.curvalue];
flaglimit = fraglimit_values[s_serveroptions.flaglimit.curvalue];
dedicated = s_serveroptions.dedicated.curvalue;
friendlyfire = s_serveroptions.friendlyfire.curvalue;
pure = s_serveroptions.pure.curvalue;
@ -1127,6 +1135,21 @@ static void ServerOptions_InitBotNames( void ) {
}
}
static int getValueIndex(int* values, int value, int defaultVal)
{
int index = 0;
while (values[index] != -1)
{
if (values[index] == value)
{
return index;
}
index++;
}
//Just return the default
return defaultVal;
}
/*
=================
@ -1141,24 +1164,24 @@ static void ServerOptions_SetMenuItems( void ) {
switch( s_serveroptions.gametype ) {
case GT_FFA:
default:
Com_sprintf( s_serveroptions.fraglimit.field.buffer, 4, "%i", (int)Com_Clamp( 0, 999, trap_Cvar_VariableValue( "ui_ffa_fraglimit" ) ) );
Com_sprintf( s_serveroptions.timelimit.field.buffer, 4, "%i", (int)Com_Clamp( 0, 999, trap_Cvar_VariableValue( "ui_ffa_timelimit" ) ) );
s_serveroptions.fraglimit.curvalue = getValueIndex(fraglimit_values, trap_Cvar_VariableValue( "ui_ffa_fraglimit" ), 11);
s_serveroptions.timelimit.curvalue = getValueIndex(timelimit_values, trap_Cvar_VariableValue( "ui_ffa_timelimit" ), 0);
break;
case GT_TOURNAMENT:
Com_sprintf( s_serveroptions.fraglimit.field.buffer, 4, "%i", (int)Com_Clamp( 0, 999, trap_Cvar_VariableValue( "ui_tourney_fraglimit" ) ) );
Com_sprintf( s_serveroptions.timelimit.field.buffer, 4, "%i", (int)Com_Clamp( 0, 999, trap_Cvar_VariableValue( "ui_tourney_timelimit" ) ) );
s_serveroptions.fraglimit.curvalue = getValueIndex(fraglimit_values, trap_Cvar_VariableValue( "ui_tourney_fraglimit" ), 11);
s_serveroptions.timelimit.curvalue = getValueIndex(timelimit_values, trap_Cvar_VariableValue( "ui_tourney_timelimit" ), 0);
break;
case GT_TEAM:
Com_sprintf( s_serveroptions.fraglimit.field.buffer, 4, "%i", (int)Com_Clamp( 0, 999, trap_Cvar_VariableValue( "ui_team_fraglimit" ) ) );
Com_sprintf( s_serveroptions.timelimit.field.buffer, 4, "%i", (int)Com_Clamp( 0, 999, trap_Cvar_VariableValue( "ui_team_timelimit" ) ) );
s_serveroptions.fraglimit.curvalue = getValueIndex(fraglimit_values, trap_Cvar_VariableValue( "ui_team_fraglimit"), 11);
s_serveroptions.timelimit.curvalue = getValueIndex(timelimit_values, trap_Cvar_VariableValue( "ui_team_timelimit" ), 0);
s_serveroptions.friendlyfire.curvalue = (int)Com_Clamp( 0, 1, trap_Cvar_VariableValue( "ui_team_friendly" ) );
break;
case GT_CTF:
Com_sprintf( s_serveroptions.flaglimit.field.buffer, 4, "%i", (int)Com_Clamp( 0, 100, trap_Cvar_VariableValue( "ui_ctf_capturelimit" ) ) );
Com_sprintf( s_serveroptions.timelimit.field.buffer, 4, "%i", (int)Com_Clamp( 0, 999, trap_Cvar_VariableValue( "ui_ctf_timelimit" ) ) );
s_serveroptions.flaglimit.curvalue = getValueIndex(fraglimit_values, trap_Cvar_VariableValue( "ui_ctf_capturelimit" ), 11);
s_serveroptions.timelimit.curvalue = getValueIndex(timelimit_values, trap_Cvar_VariableValue( "ui_ctf_timelimit" ), 0);
s_serveroptions.friendlyfire.curvalue = (int)Com_Clamp( 0, 1, trap_Cvar_VariableValue( "ui_ctf_friendly" ) );
break;
}
@ -1281,35 +1304,35 @@ static void ServerOptions_MenuInit( qboolean multiplayer ) {
y = 272;
if( s_serveroptions.gametype != GT_CTF ) {
s_serveroptions.fraglimit.generic.type = MTYPE_FIELD;
s_serveroptions.fraglimit.generic.type = MTYPE_SPINCONTROL;
s_serveroptions.fraglimit.generic.name = "Frag Limit:";
s_serveroptions.fraglimit.generic.flags = QMF_NUMBERSONLY|QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_serveroptions.fraglimit.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_serveroptions.fraglimit.generic.x = OPTIONS_X;
s_serveroptions.fraglimit.generic.y = y;
s_serveroptions.fraglimit.generic.statusbar = ServerOptions_StatusBar;
s_serveroptions.fraglimit.field.widthInChars = 3;
s_serveroptions.fraglimit.field.maxchars = 3;
s_serveroptions.fraglimit.curvalue = 11;
s_serveroptions.fraglimit.itemnames = fraglimit_items;
}
else {
s_serveroptions.flaglimit.generic.type = MTYPE_FIELD;
s_serveroptions.flaglimit.generic.type = MTYPE_SPINCONTROL;
s_serveroptions.flaglimit.generic.name = "Capture Limit:";
s_serveroptions.flaglimit.generic.flags = QMF_NUMBERSONLY|QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_serveroptions.flaglimit.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_serveroptions.flaglimit.generic.x = OPTIONS_X;
s_serveroptions.flaglimit.generic.y = y;
s_serveroptions.flaglimit.generic.statusbar = ServerOptions_StatusBar;
s_serveroptions.flaglimit.field.widthInChars = 3;
s_serveroptions.flaglimit.field.maxchars = 3;
s_serveroptions.flaglimit.curvalue = 9;
s_serveroptions.flaglimit.itemnames = fraglimit_items;
}
y += BIGCHAR_HEIGHT+2;
s_serveroptions.timelimit.generic.type = MTYPE_FIELD;
s_serveroptions.timelimit.generic.type = MTYPE_SPINCONTROL;
s_serveroptions.timelimit.generic.name = "Time Limit:";
s_serveroptions.timelimit.generic.flags = QMF_NUMBERSONLY|QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_serveroptions.timelimit.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_serveroptions.timelimit.generic.x = OPTIONS_X;
s_serveroptions.timelimit.generic.y = y;
s_serveroptions.timelimit.generic.statusbar = ServerOptions_StatusBar;
s_serveroptions.timelimit.field.widthInChars = 3;
s_serveroptions.timelimit.field.maxchars = 3;
s_serveroptions.flaglimit.curvalue = 0;
s_serveroptions.timelimit.itemnames = timelimit_items;
if( s_serveroptions.gametype >= GT_TEAM ) {
y += BIGCHAR_HEIGHT+2;

View file

@ -274,7 +274,7 @@ extern cvar_t *sv_maxclients;
extern cvar_t *sv_privateClients;
extern cvar_t *sv_hostname;
extern cvar_t *sv_master[MAX_MASTER_SERVERS];
extern cvar_t *vr_master[MAX_MASTER_SERVERS];
extern cvar_t *sv_reconnectlimit;
extern cvar_t *sv_showloss;
extern cvar_t *sv_padPackets;

View file

@ -672,11 +672,11 @@ void SV_Init (void)
sv_allowDownload = Cvar_Get ("sv_allowDownload", "1", CVAR_SERVERINFO);
Cvar_Get ("sv_dlURL", "", CVAR_SERVERINFO | CVAR_ARCHIVE);
sv_master[0] = Cvar_Get("sv_master1", "", 0); // This is set to our Q3Q master
sv_master[1] = Cvar_Get("sv_master2", MASTER_SERVER_NAME, 0);
sv_master[2] = Cvar_Get("sv_master3", "master.ioquake3.org", 0);
vr_master[0] = Cvar_Get("vr_master1", "mp.quakevr.com:27950", 0); // This is set to our Q3Q master
vr_master[1] = Cvar_Get("vr_master2", MASTER_SERVER_NAME, 0);
vr_master[2] = Cvar_Get("vr_master3", "master.ioquake3.org", 0);
for(index = 3; index < MAX_MASTER_SERVERS; index++)
sv_master[index] = Cvar_Get(va("sv_master%d", index + 1), "", CVAR_ARCHIVE);
vr_master[index] = Cvar_Get(va("vr_master%d", index + 1), "", CVAR_ARCHIVE);
sv_reconnectlimit = Cvar_Get ("sv_reconnectlimit", "3", 0);
sv_showloss = Cvar_Get ("sv_showloss", "0", 0);

View file

@ -41,7 +41,7 @@ cvar_t *sv_maxclients;
cvar_t *sv_privateClients; // number of clients reserved for password
cvar_t *sv_hostname;
cvar_t *sv_master[MAX_MASTER_SERVERS]; // master server ip address
cvar_t *vr_master[MAX_MASTER_SERVERS]; // master server ip address
cvar_t *sv_reconnectlimit; // minimum seconds between connect messages
cvar_t *sv_showloss; // report when usercmds are lost
cvar_t *sv_padPackets; // add nop bytes to messages
@ -262,20 +262,20 @@ void SV_MasterHeartbeat(const char *message)
// send to group masters
for (i = 0; i < MAX_MASTER_SERVERS; i++)
{
if(!sv_master[i]->string[0])
if(!vr_master[i]->string[0])
continue;
// see if we haven't already resolved the name or if it's been over 24 hours
// resolving usually causes hitches on win95, so only do it when needed
if (sv_master[i]->modified || svs.time > svs.masterResolveTime[i])
if (vr_master[i]->modified || svs.time > svs.masterResolveTime[i])
{
sv_master[i]->modified = qfalse;
vr_master[i]->modified = qfalse;
svs.masterResolveTime[i] = svs.time + MASTERDNS_MSEC;
if(netenabled & NET_ENABLEV4)
{
Com_Printf("Resolving %s (IPv4)\n", sv_master[i]->string);
res = NET_StringToAdr(sv_master[i]->string, &adr[i][0], NA_IP);
Com_Printf("Resolving %s (IPv4)\n", vr_master[i]->string);
res = NET_StringToAdr(vr_master[i]->string, &adr[i][0], NA_IP);
if(res == 2)
{
@ -284,15 +284,15 @@ void SV_MasterHeartbeat(const char *message)
}
if(res)
Com_Printf( "%s resolved to %s\n", sv_master[i]->string, NET_AdrToStringwPort(adr[i][0]));
Com_Printf( "%s resolved to %s\n", vr_master[i]->string, NET_AdrToStringwPort(adr[i][0]));
else
Com_Printf( "%s has no IPv4 address.\n", sv_master[i]->string);
Com_Printf( "%s has no IPv4 address.\n", vr_master[i]->string);
}
if(netenabled & NET_ENABLEV6)
{
Com_Printf("Resolving %s (IPv6)\n", sv_master[i]->string);
res = NET_StringToAdr(sv_master[i]->string, &adr[i][1], NA_IP6);
Com_Printf("Resolving %s (IPv6)\n", vr_master[i]->string);
res = NET_StringToAdr(vr_master[i]->string, &adr[i][1], NA_IP6);
if(res == 2)
{
@ -301,9 +301,9 @@ void SV_MasterHeartbeat(const char *message)
}
if(res)
Com_Printf( "%s resolved to %s\n", sv_master[i]->string, NET_AdrToStringwPort(adr[i][1]));
Com_Printf( "%s resolved to %s\n", vr_master[i]->string, NET_AdrToStringwPort(adr[i][1]));
else
Com_Printf( "%s has no IPv6 address.\n", sv_master[i]->string);
Com_Printf( "%s has no IPv6 address.\n", vr_master[i]->string);
}
}
@ -313,7 +313,7 @@ void SV_MasterHeartbeat(const char *message)
}
Com_Printf ("Sending heartbeat to %s\n", sv_master[i]->string );
Com_Printf ("Sending heartbeat to %s\n", vr_master[i]->string );
// this command should be changed if the server info / status format
// ever incompatably changes

View file

@ -2488,11 +2488,11 @@ static qboolean UI_NetSource_HandleKey(int flags, float *special, int key) {
if(ui_netSource.integer >= UIAS_GLOBAL1 && ui_netSource.integer <= UIAS_GLOBAL5)
{
char masterstr[2], cvarname[sizeof("sv_master1")];
char masterstr[2], cvarname[sizeof("vr_master1")];
while(ui_netSource.integer >= UIAS_GLOBAL1 && ui_netSource.integer <= UIAS_GLOBAL5)
{
Com_sprintf(cvarname, sizeof(cvarname), "sv_master%d", ui_netSource.integer - UIAS_GLOBAL0);
Com_sprintf(cvarname, sizeof(cvarname), "vr_master%d", ui_netSource.integer - UIAS_GLOBAL0);
trap_Cvar_VariableStringBuffer(cvarname, masterstr, sizeof(masterstr));
if(*masterstr)
break;

View file

@ -117,6 +117,8 @@ public class MainActivity extends SDLActivity // implements KeyEvent.Callback
// Copy our special pak file and demo
copy_asset("/sdcard/ioquake3Quest/baseq3", "pakQ3Q.pk3", true);
copy_asset("/sdcard/ioquake3Quest/baseq3", "pak0.pk3", false);
//Copy Omarlego's excellent replacement background
copy_asset("/sdcard/ioquake3Quest/baseq3", "z_custom_background66.pk3", false);
// Cleanup incompatible shaders
delete_asset("/sdcard/ioquake3Quest/baseq3/glsl");

View file

@ -3,7 +3,7 @@
setlocal
set BUILD_TYPE=release
set VERSION=1.1.0
set VERSION=1.1.2
@REM Define the following environment variables to sign a release build
@REM set KEYSTORE=