Unlike the Steam and GOG support I'm not doing a registry search as I don't see anything in the registry that would show us the path. If we find more official ways to search for it later we can address that, in the meantime the path is just hardcoded to where it's installed by default.
Windows API ignores all trailing spaces and periods which can get around
Quake 3 file system restrictions. QVM opening 'uix86.dll.' actually
opens 'uix86.dll' which allows QVM to write native code.
This is done in the low-level Sys_FOpen() instead of the function
directly used by VMs ( FS_FOpenFileByMode() ) in case there are engine
commands now or in the future that can read or write arbitrary files.
Reported by Noah Metzger (Chomenor).
Windows' Sys_ListFiles would add files that contain the extension anywhere,
not only at the end of the file name.
Example: "word.pk3omghacks" use to be loaded as a pk3 file.
This makes pasting in client console and UI edit fields work on X11 and OS X.
Sys_GetClipboardData is only used by client, so returning NULL in dedicated is fine.
- Clean up ftol()/snapvector() mess
- Make use of SSE instructions for ftol()/snapvector() if available
- move ftol/snapvector pure assembler to inline assembler, this will add x86_64 and improve support for different calling conventions
- Set FPU control word at program startup to get consistent behaviour on all platforms
* com_standalone now read-only
* add new cvars com_basegame, com_homepath
* standalone now automatically detected when com_basegame is set to something different than baseq3 and no id pak pk3s are found
* This fixes https://bugzilla.icculus.org/show_bug.cgi?id=4699
- Replace a few hardcoded string literals with macros
- Add checks for Team Arena PK3s to FS_CheckPak0()
* Move Unix specific signal handlers to Sys_PlatformInit
* (Windows only) Don't set the SDL video driver if SDL_VIDEODRIVER is already
set externally
* (Windows only) Use the "windib" SDL video driver if in_mouse is set to -1
more or less any input event; fine for the server, not so much use for the
client
* In the main loop, don't bother sleeping if it's going to be less than 10ms as
the methods we're using to sleep at the moment aren't very precise
* Add Sys_PlatformInit for platform specific initialisation
* In win32 Sys_PlatformInit force selection of the DirectX SDL backend in order
to get better fullscreen mouse input (in conjunction with a patched SDL DLL
http://bugzilla.libsdl.org/show_bug.cgi?id=265)
* Add con_passive.c to cut down on #ifdef DEDICATED in sys_main.c
* Add Sys_ErrorDialog to report ERR_FATALs to the user
+ On Windows use a MessageBox and offer to copy the console log to the
clipboard
+ On everything else print to the terminal and save the console log as
crashlog.txt
1) NET_Sleep() no longer watches for input, Sys_Sleep() added for waiting
on input.
2) Added "CtrlHandler" for trapping Ctrl-C and other quit methods not
handled by signals on windows
3) Added history support
4) Added tab completion
5) Removed automatic cursor/scroll adjustment (too problematic)
6) Enable mousewheel scrolling
7) Stop using the InputBuffer for editing
This seems to work pretty well now, but I jumped the gun on a previous
commit message by saying you can scroll now without locking up your server.
That was only true up until the point that a server tried to print to
the console, at that point it will hang until you release the scroll bar :(
It may be possible to get around this by using a seperate thread for
console output, but that's a whole new can of worms.