Commit graph

2762 commits

Author SHA1 Message Date
Simon
4f14c4547c Multiple FIxes
- Y button for 3rd person camera mode
- X button for "Gesture" (not quite a taunt..)
- Weapon will auto-realign in multiplayer now, so B button is crouch
- When weapon auto-realigns, playspace will auto recenter too
- Attempt to prevent footstep sound if player hmd movement  is small
- Hopefully prevent CD key request from being shown
- Don't allow camera to orbit when winning on Team Arena
2022-02-14 21:24:38 +00:00
Simon
02e2957e39 Small extra tweaks
- Show scoreboard with off-hand thumbstick
- Add jumping to off-hand trigger
2022-02-13 15:25:33 +00:00
Simon
efe1e29eee Support for Team Arena
- just set the following in the commandline.txt:

+set fs_game missionpack
2022-02-13 15:00:32 +00:00
Simon
dba25f1d52 Multiplayer Server changes
- Include demo pk3 in apk
- copy autoexec and demo pk3 on startup
- support running demo out of the box
- some cvars from VR_Bummser for smoother multiplayer client experience
- Ceno's multiplayer server IPs as favourites
2022-02-12 23:39:56 +00:00
Simon
ba5b9f9ae4 CVARS
Default com_maxfps and cl_maxpackets to 72
2022-02-10 23:38:17 +00:00
Simon
f5bced0623 Lots of good stuff..
- Multiplayer 6DoF can be disabled setting vr_mp6DoF to 0 (will use a 3DoF scheme instead)
- Cross hair now correctly aligned with weapon aiming when playing on a swerver
- "Use Item" is not a right thumbstick click
- B button will perform crouch in single player or skirmish
- B button will realign the weapon with the controller when playing on a server
2022-02-10 23:28:34 +00:00
Simon
49b8ba1f43 Multiple fixes
- Only use dark crimson background in death cam
- vr_directionMode - 0 = HMD, 1 = off-hand
- use a faked positional tracking approach for multiplayer.. in game player location won't change tho, as it is only view translation
- Use the interpolated position for the weapon in a remote server situation, mades weapon movement MUCH smoother
2022-02-09 23:55:05 +00:00
Simon
2926e73185 Major Mulltiplayer Support changes
- Multiplayer support
- Updated weapon offsets with SkillFur's latest values
- APK contains and copies the glsl shader files now (no need to copy them separately)
2022-02-08 23:22:43 +00:00
Simon
3678133c67 Made the victory podium scenes full VR 2022-02-06 15:31:17 +00:00
Simon
bd28df0c91 More changes...
- cvar for HUD depth
- restored non-SDK project matrix to avoid hard to see HUD models
- Prevent drawing sky during death cam (looks much better)
2022-02-05 15:06:53 +00:00
Simon
71c6a19806 Added cg_fragMessage to allow disabling of frag notifications on screen 2022-02-04 23:41:42 +00:00
Simon
5066bb9431 Several significant changes
- Fixed bug where player would randomly move around
- Changed package name to com.drbeef.ioq3quest
- Changed location of files to /sdcard/ioquake3quest
- Added commandline.txt file
- Intermission screen now has headtracking (and in skirmish is a full VR experience)
- Fixed projectile location of railgun
- Made HUD model icons larger
2022-02-04 20:42:34 +00:00
Simon
2524be5017 Attempt to unlock headtracking in intermission 2022-02-03 23:04:39 +00:00
Simon
2c9b286da5 Several good fixes / improvements
- Positional tracking in Death Cam mode (so much nicer now)
- All 2D HUD elements now draw in both eyes
- HUD elements based on models are now 3D (face etc)
- Better 4:3 screen for virtual screen
2022-02-03 21:32:09 +00:00
Simon
6f3875e9a2 Many fixes / improvements
- When you die you now won't lose head tracking (I won't spoil what does happen now...)
- Lightning Gun Beam is now correct w.r.t cross hair
- Enemy Lightning Gun Beams fire in the direction they are aiming (not in the direction you are aiming!!)
- Sped up crosshair in the menu, as it was too sluggish still
- Restored OG rail gun
- Removed Vertex Lighting cvar
- After match, the Win screen should be shown in the front of player
2022-02-02 23:31:59 +00:00
Simon
b7d89ff02b Multiple changes
- Weapon alignment values courtesy of  SkillFur (thanks!)
- Lightning gun now renders lightning in the correct direction
- Many cvar changes
- Rail Gun and Rocket Launcher use newer implementation
- Changed projection so that UI elements draw clearer
- Made scoreboards easier to read but HUD slightly closer
2022-02-01 23:35:05 +00:00
Simon
2e97da5dda Small tweaks
- HUD models draw correctly now
- Increased the HUNK allocation limit so no more failues with Hunk_Alloc
- adjusted positional factor for adjusted worldscale
- scaled all weapons to 75% as that feels a bit better until such a time as better scaling/position is agreed
2022-01-31 23:32:27 +00:00
Simon
1b8dbcb6dc Several Changes
- world scale cvar - defaulted to 32.0
- extra latency mode enabled by default
- used sound implementation (OpenSLES) from RTCW which should eliminate the slight delay that SDL/OpenAL seems to have
- multiple cvar changes courtesy of vr_bummser
2022-01-30 23:36:14 +00:00
Simon
4b4ee4ec6e First big commit - pretty much playable throughout 2022-01-29 15:45:18 +00:00
XsparkieX
791e90b22a Initial Oculus Quest support added. 2020-09-06 13:40:32 +02:00
Tim Angus
909ab13aeb Make LCC path resolution more robust 2020-08-29 21:40:57 +01:00
r-a-sattarov
daae32ddfd E2K: fixed build by MCST lcc compiler when using USE_CURL=1 option 2019-12-07 08:16:15 -05:00
Zack Middleton
a6e66700e1 Fix duplicate team join center print for bots and g_teamAutoJoin
My 2017 commit f7c3276 ("Fix g_teamAutoJoin and g_teamForceBalance")
caused BroadcastTeamChange() to be run an extra time when bots connect.
This caused a duplicate center print message to be sent to all clients.

g_teamAutoJoin 1 sent an extra center print when any player or bot
connects. Though that is the original behavior from Team Arena.

Team set during connection no longer sends broadcast as it will be
sent later in ClientConnect().

Reported by Pascal Brochart (pbrochart) as causing clients to be
kicked due to server command overflow if many bots join at the
same time.
2019-11-16 01:38:38 -06:00
Zack Middleton
dc0c3e7bdf Fix team orders menu not listing clients with lower clientnums
If bots join before the local client (dedicated server) the bots would
not be listed in the Q3A team orders menu and so they could not be given
orders using the menu.

The Q3A team orders menu got local client's team while looping through
all clients. Ignoring any bots with clientnum lower than the local
client. Get local client's team before the loop so all bots are
listed.
2019-10-28 23:13:57 -05:00
Zack Middleton
f717a8396e Fix lightning gun handling for corpses and single player podiums
The lightning trail is fired from the real non-predicted entity for
the local client so it can show the server location. The real client
entity was always used to check if a player entity is firing the
lighting gun. This potentially causes corpses and players on single
player podiums with lightning gun to render the lightning trail if
the real (living) client is firing the lightning gun.

I'm not aware of this causing any issues without modifying the game
logic. Corpses have no weapon and it's not possible to fire during
single player intermission.
2019-10-11 20:55:57 -05:00
Bernhard M. Wiedemann
a96f32eba2 q3rcc: Allow to override build date
Allow to override __DATE__ and __TIME__ with SOURCE_DATE_EPOCH
in order to make builds reproducible.
See https://reproducible-builds.org/ for why this is good
and https://reproducible-builds.org/specs/source-date-epoch/
for the definition of this variable.

This behavior is what gcc already does.
2019-07-11 14:20:31 +01:00
Zack Middleton
350b8f9c7c Restore OpenGL 1.1 support (GL_CLAMP)
GL_CLAMP (clamp to border) was changed to GL_CLAMP_TO_EDGE in 2008
(f2baf359). In 2018 (ce1d5406) I made OpenGL 1.2 be required since
GL_CLAMP_TO_EDGE is used.

Restore support for GL_CLAMP in order to support OpenGL 1.1 like vanilla
Quake 3 does. This should allow using the default Microsoft Windows
GDI Generic OpenGL 1.1 driver (untested but it won't fail the version
check at least).

From gpuinfo.org, it looks like drivers stopped advertising support for
GL_SGIS_texture_edge_clamp so use a version check in addition to the
extension check.

r_allowExtensions 0 disables using GL_CLAMP_TO_EDGE in the opengl1
renderer. GL_CLAMP support wasn't added to the opengl2 renderer.
2019-05-28 22:44:57 -05:00
Zack Middleton
0fbde293db Remove erroneous newlines from Com_Error in sdl_glimp.c 2019-05-28 21:01:28 -05:00
Zack Middleton
2a2646fe43 Fix IQM quat normalize fail case
Should only happen with invalid models though.
2019-05-28 21:00:02 -05:00
Zack Middleton
95b9cab4d6 Fix warnings that IQM blendWeights may not be initialized 2019-04-29 15:01:47 -05:00
Zack Middleton
d404519cce Fix rendering IQM models between model frames
For lerped frames (refEntity_t frame not equal oldframe) IQM joint
matrices may have incorrect axis scale. This can cause significant model
distortion. The matrix lerp is linear causing each vector to move in a
straight line between frames instead of arcing like a circle. Each joint
frame can have a different scale so can't just normalize the joint
matrix.

Store joints as quaternions and spherical lerp between them and then
convert to a matrix. For my test model, setting up the skeleton is four
times slower now but it still seems to be fast enough to be usable.
2019-04-29 15:01:47 -05:00
Zack Middleton
d13d06424e OpenGL2: Disable r_cubeMapping if not OpenGL 3.0+
r_cubeMapping requires textureCubeLod() which is only in OpenGL 3.0
(GLSL 1.30) and later. It's not in OpenGL ES 3.0 / GLSL ES 3.00.
This needs to be checked before R_InitImages() so can't just check in
GLSL_InitGPUShaders().
2019-04-16 11:48:10 -05:00
Zack Middleton
9fcb2bb336 Override video mode list in Team Arena UI
Override the video mode list in the Team Arena data files with detected
modes from SDL like in ioquake3's Q3 UI. Add the aspect ratio to the
end of the video resolution (i.e., "640x480 (4:3)"). Add the current
(custom) video mode to the list.

Before when using a custom resolution in the menu you could not change
the video mode using the mouse because the resolution text was blank.
Now custom video resolution is displayed and can be clicked.
2019-04-16 00:02:27 -05:00
Zack Middleton
c61417b8e2 Add current (custom) resolution to Q3 UI video mode list
Custom resolution is displayed when entering system options menu and
settings can be changed without being forced to change video resolution.
2019-04-15 23:50:46 -05:00
Zack Middleton
9b4dcc809e OpenGL2: Fix compiling lightall GLSL on OpenGL 2.1
textureCubeLod() requires OpenGL 3.0 / GLSL 1.30. Added in
2018-12-21 commit e5da13f146
"OpenGL2: r_cubemapping 2 for box cubemap parallax."

Report by brugal and Simon McVittie.

Bug-Debian: https://bugs.debian.org/923226
2019-04-15 23:40:32 -05:00
Ane-Jouke Schat
44b18d72ac Fix PRINT_ERROR print level missing from CL_RefPrintf
It's used for one message in the OpenGL2 renderer.
2019-04-15 23:13:36 -05:00
James Canete
d068e1dce1 Add r_parallaxMapShadows. 2019-02-06 01:10:42 -08:00
James Canete
e5da13f146 OpenGL2: r_cubemapping 2 for box cubemap parallax. 2018-12-21 19:53:18 -08:00
kungfooman
a6df505d59 Prevent Q_IsColorString from asserting on negative ascii chars 2018-12-14 10:00:24 +00:00
Zack Middleton
09166ba05e Make Team Arena prevTeamMember command loop around player list
Team Arena HUD's team member info box can be cycled through using
nextTeamMember and prevTeamMember commands. nextTeamMember command loops
around when end of list is reached but prevTeamMember command got stuck
at last entry in list (team overview).
2018-10-17 13:32:53 -05:00
Zack Middleton
0cf10d2b77 Make s_info command display channels instead of stereo
channels-1 was displayed as '# stereo', affectively a boolean for
mono or stereo. However '3 stereo' for quad surround sound doesn't
make sense.
2018-10-01 22:31:36 -05:00
Zack Middleton
58b0fb07cd Fix SDL audio playback with 16-bit stereo sound
My commit last month "Fix SDL audio playback with surround sound" broke
16-bit stereo sound. S_TransferStereo16() still assumed that dma.samples
was a power of two. I also cleaned up code related to the previously
mentioned commit.
2018-10-01 22:28:51 -05:00
Zack Middleton
93dd14c9fb Disable pulseaudio capture regardless of SDL version
SDL changed version to 2.0.9 but the pulseaudio capture bug isn't fixed
yet. Remove my version check.
2018-09-30 14:53:18 -05:00
Zack Middleton
aab1d92b13 Allow binds to use hex values for all key codes 2018-09-30 14:40:02 -05:00
Zack Middleton
33a899d6dd Fix predicting entity origin on rotating mover
Based on G_TryPushingEntity() in code/game/g_mover.c.
2018-09-15 12:06:34 -05:00
Zack Middleton
812a3dbfa5 Fix SDL audio playback with surround sound
If user has surround sound enabled, ioq3 would not play any sound.
Fix painting sound buffer for 4/5.1 audio channels. Extra channels
currently play no audio.
2018-09-13 12:58:23 -05:00
Zack Middleton
e4208cf5a7 Improve finding obelisk entitynum for bot AI
BotSetEntityNumForGoal() was checking all entities that are not
team_redobelisk (which is the obelisk visual entity) to find the
untitled obelisk collision entity. This may fail in rare cases where
there is an another entity within 10 units of the obelisk origin.
Failing to find the correct entity may cause bots to not attack the
obelisk.

Instead add BotSetEntityNumForGoalWithActivator() for looking for the
obelisk collision entity by activator classname (team_redobelisk) which
should be less likely to find the wrong entity.

This doesn't affect official Team Arena maps (unknown if it affects any
others).

Reversed strcmp check was reported by Thomas Köppe.
2018-09-12 16:26:39 -05:00
Zack Middleton
29db64070a Fix loading favorites as initial source in server browser
When I added UIAS_GLOBAL0 in 2017 I missed changing ui_browserMaster
range clamp from 6 to 7.

Reported by cdev-tux.
2018-08-28 21:35:06 -05:00
Zack Middleton
c7ebe82131 Calculate bounds for unanimated IQM models
Bounds are optional for animated IQM models but are not possible to
include with unanimated models (seems intended for use with separate
model containing animations and bounds). Calculating bounds for
unanimated IQM models fixes culling and head model on HUD which
calculates position from model bounds.
2018-08-02 18:20:18 -05:00
Zack Middleton
1994801e1c Fix axis returned by IQM's LerpTag
The axis returned for IQM tag was the animation's joint rotation without
the base frame joint rotation. It only worked correct for models that
did not rotate the base frame joints.
2018-07-31 13:59:56 -05:00