Commit Graph

93 Commits

Author SHA1 Message Date
Spoike d248ce223f added support for persistent particle effects in hexen2.
tweaked shutdown of sql to not make sql unusable after 'disconnect' on a listen server, fixed a couple of mem leaks.
audio no longer starts up twice in windows.
removed specular permutation. its either globally active or globally inactive.
Use oblique near-plane clipping instead of a clipplane, fixing our rtlighting+water warping.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4156 fc73d0e0-1445-4013-8a0c-d673dee63da5
2012-11-29 13:37:48 +00:00
Spoike 53a7b3d47c added support for external capture plugins - and using avcodec as a plugin.c.
The ragdoll API is potentially usable now, but still really limited.
Enabled SQL requests by default using sqlite. Note that you'll need the sqlite dll to use this. MySQL should still be usable, but I didn't try. MySQL requires -DUSE_MYSQL to compile it, and a dll and -mysql argument to enable it.
Fixed nacl.
NPFTE plugin now invokes an exe to run the game rather than running the game within the browser.
externvalue builtin now accepts & prefix to return a pointer instead.
Fixed vector autocvars.
uri_get, bufstr_add, bufstr_free, now functional.
QC debugger can now show asm if line numbers are not available.
Added support for QC watchpoints. Use the watchpoint command.
gl_specular now give specular even without rtlights, thankfully not as blatently, but its there.
android will not crash due to supported audio formats, and gles2 can be selected via a cvar (requires full FTEDroidActivity/program restart).

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4152 fc73d0e0-1445-4013-8a0c-d673dee63da5
2012-11-27 03:23:19 +00:00
Spoike 63994793c9 audio on android is now configurable, hopefully.
tweaks to the media decoder's input controls and media plugin decoder stability.
lame basic volumetric fog support. needs improvements.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4115 fc73d0e0-1445-4013-8a0c-d673dee63da5
2012-10-08 04:36:10 +00:00
Spoike c6c3d3f4e0 Trimmed some dead files.
Quick hack preliminary d3d11 renderer. I'm not likely to touch this again for quite some time.
Sys_Error works properly on android, with an error message shown. Should be less of a stab in the dark if you get errors. Seg faults are still instantly fatal. Not much I can reliably do about those - most of the juicy ones will likely occur within the gl drivers (even if its my fault) and java will still call in to it.
Stereoscopic (quad-buffered) rendering is in the gl renderer. You'll likely need a quatro to use it despite it being a gl 1.0 feature. No idea about ati. See r_stereo_method for non-quad-buffered alternatives.
Tweaked networking to not overflow so much. Needs testing against other qw clients.
Fixed an issue with surface numbers > 32k on limit-breaking maps.
Fixed a preparse issue resulting in QW clients dying with the ne_ruins map's progs.
Support for the DP-variant of BSP2. The depricated RMQ variant is still supported.
QTV proxy now uses ipv6 hybrid sockets where possible. Preliminary pext support.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4105 fc73d0e0-1445-4013-8a0c-d673dee63da5
2012-09-30 05:52:03 +00:00
Spoike f58b9802b8 misc fixes, mostly for q3bsp+no pvs.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4062 fc73d0e0-1445-4013-8a0c-d673dee63da5
2012-07-07 05:17:43 +00:00
Spoike fe23d72d69 Android tweeks
memory freeing tweeks
batch data rearranged a little (to try to reduce memory).
RBSP/FBSP fixed. lightstyles now supported.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4059 fc73d0e0-1445-4013-8a0c-d673dee63da5
2012-07-05 19:42:36 +00:00
Spoike 1dcc435bca added args to the bloom shader for better tweekage.
Committing my lame water shader. r_water_refract/r_water_reflect 1 to use.
Bugfix for crepuscular arrays (r_sun_colour to easily enable).

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4047 fc73d0e0-1445-4013-8a0c-d673dee63da5
2012-05-11 01:57:00 +00:00
Spoike 33a540806e Small tweeks, bugfixes, breakages, cleanups...
Added $reflection texture map for (water) shaders. Just renders the screen to an fbo before rendering the surface.
hub/savegame fixes.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4034 fc73d0e0-1445-4013-8a0c-d673dee63da5
2012-05-09 15:30:53 +00:00
Spoike 25ef3f02db Couple of bugs fixed - other-player prediction, net_preparse crashes, q2 gamecode no longer crashes.
Throttle getstatus requests (so we don't end up being used for udp escilation (d)dos attacks so usefully/expensively).
Added cl_predict_players_frac. vanilla QW effectively had a hardcoded value of 0.5.
Added simple fps preset menu, which keeps on appearing until they actually pick one. mwahaha.
Quit menu offers to save settings if some CVAR_ARCHIVE cvar was changed.
alias models do vertex blending on the gpu.
GL renderer now uses vao when available.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4031 fc73d0e0-1445-4013-8a0c-d673dee63da5
2012-04-24 07:59:11 +00:00
Spoike 4149c85ab6 tweeks and changes for android.
audio mixer revamped to cope with threads. 'cache' memory functions no longer used for audio.
added windows acm code to decode mp3 files.
audio playback rates scale with game speed. snd_playbackrate added to control the rate of new samples.
sv_gamespeed no longer needs a map change.
fixed '=' on german keymaps and in_builtinkeymap 0 (and similar issues). bug: keybind names still use US keymap.
added support for rmqe's 24bit network precision.
fixed byterate reporting to no longer be protocol-dependant (nq rates are no longer wildly inaccurate).
removed waterjumping when already dead.
fixed model matrix for viewmodels (modelview unchanged), thus fixing rtlighting on viewmodels.
Added bspx support for rgblighting, lightingdir, and (preliminary)brushlists.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4001 fc73d0e0-1445-4013-8a0c-d673dee63da5
2012-02-27 12:23:15 +00:00
Spoike 9ee7301d32 my attempt at android multitouch (csqc can also distinguish separate mice in windows too).
playing around with fragmentation and mtus. added net_mtu to negotiate some mtu size for smaller (or larger) network messages. setting a custom mtu allows for message fragmentation too.
trying to add a reworked deltaing protocol, including all sorts of fun stuff like bbox sizes, and higher ent limits.
added support for content override entities. set the skin field to some (negative) contents value, and you get movable water with prediction and waterwarp and everything, though you likely want a custom qbsp or a shader to get backface culling.
removed some madness with model skins, fixing some weird q3 bugs.
fixed forced-pause-on-start for q2
fixed q3 server to actually accept client packets again.
fixed strftime builtin

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3979 fc73d0e0-1445-4013-8a0c-d673dee63da5
2012-02-12 05:18:31 +00:00
Spoike 1693ba6c58 revamped fog to use glsl. shouldn't harm framerate quite so much.
tweeked d3d renderer. certain shader constructs might be broken now so don't try q3 with it, but framerates are up when playing quake.
tweeked gl rendering too, timedemo results seem a little higher also.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3933 fc73d0e0-1445-4013-8a0c-d673dee63da5
2011-12-23 03:12:29 +00:00
Spoike d6d0105d3c A couple of changes.
Added a higher quality particle config.
Quick hack for crepuscular rays.
added new command, eg: pr_dumpplatform -FFTE -O csplat
used package reporting on servers, auto package downloading on clients, should be fully implemented.
Smoothed out players a little. Added option to menus.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3926 fc73d0e0-1445-4013-8a0c-d673dee63da5
2011-12-05 15:23:40 +00:00
Spoike 5118de8bdd committing for fixes for OMC
some minor changes. Mostly bug fixes and internal reorganisation.
Added code to provide an activex control as part of the npfte.dll plugin. If the dll is registered the regsvr32 way, the plugin can be used with IE as well.
fisheye/panoramic view enable is now controlled by rulesets instead of serverinfo.
server will list all pak files it has loaded. client will probably do the wrong thing and still needs fixing properly.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3909 fc73d0e0-1445-4013-8a0c-d673dee63da5
2011-10-27 15:46:36 +00:00
Spoike 4b27934867 Basic Android support. Icon resources still need to be replaced. No sound, no accelerometer.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3901 fc73d0e0-1445-4013-8a0c-d673dee63da5
2011-09-16 05:56:54 +00:00
Spoike 729d6181c2 Misc bugfixes, including q3bsp-rtlights and bloom. Matrix use clarifications. Working towards skeletal glsl code.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3890 fc73d0e0-1445-4013-8a0c-d673dee63da5
2011-07-30 14:14:56 +00:00
TimeServ 7f1db63765 remove defunct splash screen code, add cl_idlefps to reduce cpu usage in "idle" situations
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3845 fc73d0e0-1445-4013-8a0c-d673dee63da5
2011-07-06 01:01:13 +00:00
TimeServ 4a59ea5993 make threaded physics/input/whatever use generic mutex calls, fix up multithread calls and add sleep func
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3844 fc73d0e0-1445-4013-8a0c-d673dee63da5
2011-07-03 16:24:53 +00:00
Spoike d039841d21 Does this fix anything?
git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3812 fc73d0e0-1445-4013-8a0c-d673dee63da5
2011-06-05 23:53:33 +00:00
Lance 0e078381b3 Fixed incorrect pointer types, and some other warning types for GCC and MinGW
git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3788 fc73d0e0-1445-4013-8a0c-d673dee63da5
2011-05-19 13:34:07 +00:00
Spoike 93aba48cdc TA couple of fixes.
Meshes now have the right lighting if they were cached before rendering.
npFTE startup/shutdown/restartup is more robust and is less likely to crash browsers.
Re-added the r_shadows cvar. It now provides blob shadows.
Hopefully fixes mingw voip crash, may need mingw upgrade, sorry in advance moodles.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3784 fc73d0e0-1445-4013-8a0c-d673dee63da5
2011-04-30 17:21:10 +00:00
TimeServ 85fc11e682 trash assembly, old d3d renderers (d3d7/d3d9/fakegl), projects and makefile broken in this commit
git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3742 fc73d0e0-1445-4013-8a0c-d673dee63da5
2011-03-03 12:57:34 +00:00
Spoike 562f549357 Added a -outputdebugstring option for dumping console to debugger's output window (because msvc is unable to see standard out).
git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3715 fc73d0e0-1445-4013-8a0c-d673dee63da5
2011-01-23 03:33:33 +00:00
Lance 714e1f7456 VC6 project files uptodate, mingl, gl, ded server & sdl targets working (both debug and release), various fixes and hacks to provide VC6 support again. VC6 static libs provided (/libs/vc6-libs), including SDL for the debug SDL target (all old versions though as the updated versions of the libraries have stopped providing VC6 project files to compile them with).
git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3711 fc73d0e0-1445-4013-8a0c-d673dee63da5
2010-12-23 08:53:23 +00:00
Spoike 4505f7321b various small bugfixes, mvd+voip should work again, qcjit changes, towards usability.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3700 fc73d0e0-1445-4013-8a0c-d673dee63da5
2010-12-18 17:02:47 +00:00
Lance e512bb77d1 Attempt to detect MSVC SDK version and avoid redefining structs that already defined within V7's SDK
git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3692 fc73d0e0-1445-4013-8a0c-d673dee63da5
2010-12-10 05:01:25 +00:00
Lance 19207aa590 Dirty hacks to get MinGW to compile again (hopefully I haven't broken MSVC in the process)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3686 fc73d0e0-1445-4013-8a0c-d673dee63da5
2010-12-07 12:23:56 +00:00
Spoike ca9028ef76 Lets see if this works in loonix.. ehehe.
Added win7 recently opened links, so rightclicking pinned icons gives recent servers. Perhaps not the best implementation (lol) but yay, only a little bit of horrible COM crap.
Hacked about with the scripted particle system. Classic is now the default set, but the scripted system is still active and can be used by mods or whatever if they wish.
Interpolation changes: should feel better on non-fte QW servers now. Not sure about other server types.
Added svc_setanglesdelta.
Fixed vwep+skins.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3682 fc73d0e0-1445-4013-8a0c-d673dee63da5
2010-12-05 02:46:07 +00:00
Spoike 5d25e9991f Misc fixes+cleanups.
r_loadlit 2 will now use a few more cpu cores to get the job done, if it can.
Fixes the menu background shader that I broke.
Shader parser accepts cvars in more places.
d3d+gl now share common conwidth calcs code, fixing d3d issues.
d3d supports more backend features (no more gun in walls).
show_fps calcs the framerate itself, so is more accurate in regard to frame times, regardless of how much I break other stuff.
Now attempts to sleep a little between frames, to reduce cpu load and electricity (important on laptops maybe).
cl_netfps will now default to 100.Enabling independant physics by default. The framerate defaults to a max 500, to avoid too many issues with too small time deltas. You can still set it higher if you wish.
Enable voice chat by default (sorry moodles!).

git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3668 fc73d0e0-1445-4013-8a0c-d673dee63da5
2010-11-22 02:03:28 +00:00
Spoike 89dae21703 libs for win64. corrected libjpeg fastcall issues by hacking the header to make sure its all properly cdecl.
Added support for DYNAMIC_LIBBLAH, for people that don't want to statically link for whatever reason.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3644 fc73d0e0-1445-4013-8a0c-d673dee63da5
2010-11-11 04:03:16 +00:00
Spoike 2cad75bc69 Attempting to fix/rework splitscreen.
Removed the impulse2/+forward2 etc commands.
Added +p2, -p2, p2 commands as a prefixed command instead. don't use + or - on them (so '+p2 forward' to move player 2 forward), this permits a simple generic way to send commands to a single player from an input device.
rawinput mice will submit commands/movements based upon idx%maxsplits, they will correctly submit mouse clicks, which will be mapped through the +p2/+p3 commands as appropriate, so each mouse is purely for a single player.
Fixed player model visibility in splitscreen mode.
Ignoring allow_splitscreen for the local player, cl_splitscreen is technically now the only enabler (though you will need to configure rawinput or binds).
Added support for { texturename prefixes.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3582 fc73d0e0-1445-4013-8a0c-d673dee63da5
2010-08-14 00:15:07 +00:00
Spoike 29ce27e35c Whoops.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3570 fc73d0e0-1445-4013-8a0c-d673dee63da5
2010-08-01 23:35:05 +00:00
Spoike 449e38c590 Should fix the insanely slow loading mingw builds.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3569 fc73d0e0-1445-4013-8a0c-d673dee63da5
2010-08-01 22:54:14 +00:00
Spoike 244c08ad04 Attempted to add support for divVerent's varlen protocol extension info. This is more silencing warnings than anything else.
Also tweeked video code to remove 6 dead sw-only functions.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3556 fc73d0e0-1445-4013-8a0c-d673dee63da5
2010-07-18 08:42:59 +00:00
Spoike c0680334c7 What could possibly go wrong?...
Multiple consoles can now be printed/cleared via extra con commands.
Fixed the tab-completion alignment, by adding support for \t characters.
Changing the download mechanisms. Don't try downloading an ftp:// file. It'll probably crash you for now.
Trying to fix load time issues on q3bsps with a lot of curves.
Fixed sprites.
Added warning prints/spam where the new backend is bypassed, thus marking things that still need to be fixed.
QTV proxy fixed to not sit on qw servers unless someone is actually watching. Will ping for status requests still.
QTV proxy now supports ipv6.
QTV proxy now attempts to use the fte browser plugin.
Reworked the browser plugin code, now uses threads instead of ugly hacks. This should make cooperation with other such plugins work. Fixes unresponsiveness of opera, and gives an API that can be used from any other bit of software you want, tbh (read: internet explorer/activex plugins).

git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3516 fc73d0e0-1445-4013-8a0c-d673dee63da5
2010-03-14 14:35:56 +00:00
Spoike acc77b4f36 Release the mutex if we go dedicated.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3453 fc73d0e0-1445-4013-8a0c-d673dee63da5
2009-11-15 03:07:52 +00:00
Spoike 66b78c0b11 Work In Progress branch.
In this version: replacement GL backend. Replacement D3D backend sharing code with GL. Lots of code reorganisation.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3401 fc73d0e0-1445-4013-8a0c-d673dee63da5
2009-11-04 21:16:50 +00:00
Spoike 10accd2908 Cleaned up GL a minor amount more.
Sounds can now be recorded while capturing to tga sequences (as raw sound). Fixed frame limits a little.
Passed the unicode key values around to a few more key input functions.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3332 fc73d0e0-1445-4013-8a0c-d673dee63da5
2009-07-25 11:05:06 +00:00
TimeServ 4b2c4ed77a remove more unused sw variables
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3289 fc73d0e0-1445-4013-8a0c-d673dee63da5
2009-07-17 22:15:37 +00:00
TimeServ a94a33212c destroy software rendering and break everything (and that won't be all!)
also note that merged builds on non-windows no longer make much sense

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3283 fc73d0e0-1445-4013-8a0c-d673dee63da5
2009-07-16 22:06:59 +00:00
Spoike a80214290d Oh noes! Everything is broken!
Rewrote much of the console code. Should be no obvious differences.
Nearly all conchar parsing goes via a single function. Still some left in the dedicated server code.
Added the ability to parse utf-8 text, disabled by default.
Added the ability to input unicode chars using whatever keymap the user has set up in windows (not enabled by default).
Reworked vbo stuff to be a little more versatile.
Added toggle console command.
Added freetype2 support (not compiled by default).

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3234 fc73d0e0-1445-4013-8a0c-d673dee63da5
2009-07-05 18:45:53 +00:00
TimeServ 42b4577802 don't flash when already the active window
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3177 fc73d0e0-1445-4013-8a0c-d673dee63da5
2009-04-18 23:48:35 +00:00
Spoike 2adb420a6d Reworked the console/loading screen a little. The console is no longer directly shown at startup. MSVC2005 project files update for npqtv.
Added vid_wndalpha to make the window transparent (only supported in GL-win32).
Multiple issues with SW rendering, which I'll fix eventually. It does at least run, even if it looks ugly.
Plugins are now able to read the console input. Bigfoot, feel free to tweek.
Fixed up a few mismatched prototypes.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3153 fc73d0e0-1445-4013-8a0c-d673dee63da5
2009-04-06 00:34:32 +00:00
Spoike 4974c57c2c Big fat-off commit.
A few changes. Half-Life support is finally getting committed.
Some unnecessary filesystem code changes.
And there's code for nsapi - meaning we can embed FTE in a browser (firefox and opera on windows work).
A couple of CSQC changes, trying to move towards a final EXT_CSQC_1.
Revised ruleset format finally implemented.
Doesn't compile with msvc6 due to issues with libjpeg not being a clean library.
Presumably its fine in vs2005.
Your mileage may vary.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3148 fc73d0e0-1445-4013-8a0c-d673dee63da5
2009-04-01 22:03:56 +00:00
Spoike 76f6ad0345 CSQC_DAT and MENU_DAT can now be enabled in CLIENTONLY/MINIMAL builds (so long as both are enabled).
Tweeked a statement that was causing crashes with msvc2008.
Dedicated servers should build again.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3139 fc73d0e0-1445-4013-8a0c-d673dee63da5
2009-03-07 05:05:54 +00:00
Spoike 75fb5f5398 The different aspects of directx are now activated independently from each other, allowing greater custom build control.
Tweeked win64 options so as not to conflict with 32bit builds.
Win64 builds now with NO_LIBRARIES added. Yes, you need to provide 64bit libraries yourself if you want to use them (dinput/dsound should be part of the directx sdk and are, strictly speaking, not re-distributable). See bothdefs.h for how to activate individual 64bit libs.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3138 fc73d0e0-1445-4013-8a0c-d673dee63da5
2009-03-07 04:37:24 +00:00
Spoike b763b5594d My monthly commit. I wonder what I broke.
Contains some stuff to get twig working a little better.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3132 fc73d0e0-1445-4013-8a0c-d673dee63da5
2009-03-03 01:52:30 +00:00
Spoike dce284811e Minor update...
Q3 clients can connect to q1 gamecode (sv_listen_q3).
hacked support for SendFlags. It'll work compatibly, just not efficiently.
Unified shared qc builtins.
fteqcc supports int |= float, more params in macros, &~= operator.
Additional recent DP QC extensions.
Particle system abstraction. 'r_particlesystem classic' (vs null or script) will revert to truly classic particles.
Nexuiz might run again.
Network address revamp (sv_port and sv_port_ipv6 can both be used to specify an ipv4 address:port and both corrently accept clients). localhost now properly favours ipv4 (use ::1 for ipv6 localhost).
Download system revamp.
Numerous other changes.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3051 fc73d0e0-1445-4013-8a0c-d673dee63da5
2008-11-09 22:29:28 +00:00
TimeServ a631205fe7 added conditional variables for win/linux/sdl, switched sql thread worker to conditional to avoid busy looping, corrected a spikeism
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@2991 fc73d0e0-1445-4013-8a0c-d673dee63da5
2008-06-01 05:42:23 +00:00
TimeServ ce5cb75832 this commit will most likely break things: main Z_*/BZ_* calls no longer have zone logic, tagged allocs redone and now partially thread safe (still Sys_Error), code using reallocs should no longer assume new memory is zeroed, minor mysql fixes
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@2951 fc73d0e0-1445-4013-8a0c-d673dee63da5
2008-05-09 14:22:37 +00:00