Commit graph

480 commits

Author SHA1 Message Date
Christian Beier
23dc236ed7 Enable loading of original DOOM 3 save games.
This makes it possible to use dhwem3 as a drop-in replacement for an existing doom3 installation.
2013-07-30 18:33:12 +02:00
hurikhan
2d27c807d1 SDL2 support fix 2013-07-22 23:45:10 +08:00
Rohit Nirmal
c20218f9cd Minor spelling fix. 2013-07-13 23:07:22 -05:00
Daniel Gibson
d234bc60e9 Replace custom unzip functions with standard ones
unz[SG]etCurrentFileInfoPosition() isn't needed anymore,
because newer minizip versions have unz[SG]etOffset() for
that purpose.
2013-06-12 00:07:09 +02:00
Daniel Gibson
2e47865234 Use updated minizip version for unzip
The implementation is now in framework/minizip/*
instead of framework/Unzip.cpp

This was version 0.15beta, now we use 1.1 from
zlib 1.2.7/contrib/minizip

Some code had to be adjusted for this, but it got
cleaner on the way
2013-06-12 00:07:09 +02:00
bibendovsky
351f5dc94f Fixed screen twitches with "shakes" sound shader
Caused by inaccuracies in the precached amplitude data in the OpenAL
backend, see https://github.com/dhewm/dhewm3/pull/71 for more details.

Video sample (not mine):
http://www.youtube.com/watch?v=ZUohifAbPW0
The "twitches" can also be observed right at the beginning of the
mars_city2 map.
2013-06-11 23:58:20 +02:00
Kevin Doyon
6407881cff Fix SDL2 compile-errors, made it work on Win64
.. when compiled with MSVC2012
2013-05-02 21:13:06 +02:00
Daniel Gibson
cedc129a0e Silence "unknown pragma" warning in MSVC
Appeared quite often due to the #pragma GCC diagnostic ...
stuff in Str.h and List.h
2013-04-10 00:36:37 +02:00
Daniel Gibson
92a41322f4 3c96e19610 for d3xp/ - fix miscompilation with gcc 4.5
idAnimator::GetJointLocalTransform() miscompiles with gcc 4.5 and
-ftree-vrp (implied by -O2).

Reorder code to avoid the compiler bug, no functional change.

The original commit was for game/ only, but d3xp/ will have the same
issues..
2013-01-13 22:37:34 +01:00
Daniel Gibson
f8de73862e math.h should #include sys/platform.h
Similar to f317b05
2012-11-13 23:58:50 +01:00
Daniel Gibson
b13c131e4e CD-Key check for internet-games can now be disabled
with ID_ENFORCE_KEY_CLIENT 0

This patch is from Kot-in-Action Creative Artel

Fixes #55
2012-11-13 23:48:15 +01:00
Daniel Gibson
fe0ee16ccb Guess x/y FOV/aspectratio from resolution
Added r_aspectratio -1 which means "auto" (as new default).
This mode sets fov_x and fov_y according to screen-width/height.
=> No need to set r_aspectratio manually anymore (assuming your display's
   pixels are about square).

The standard aspect ratios can still be enforced as before, though.
2012-11-13 23:40:37 +01:00
Daniel Gibson
c7956a1cb5 Fix freeze when quitting the game during timedemo
When one tries to quit the game (via quit in console) while a timedemo
is running, the game freezes indefinitely while displaying the timedemo
results.
This happens because the MessageBox used for that waits for a an event
normally triggered by a timer - but it seems like that does not happen
anymore during Shutdown()

The fix makes sure that this message box isn't displayed.
2012-11-13 23:39:38 +01:00
Yamagi Burmeister
9a9babf8d6 Add a new cvar "r_waylandcompat"
Commit 9e158470 set the SDL OpenGL attribut SDL_GL_ALPHA_SIZE to 0 since
the alpha channel is used by Wayland. But for X11 the GLX 1.4 specification
clearly states: "If the requested number of bits in attrib_list for a
particular color component is 0 or GLX_DONT_CARE, then the number of
bits for that component is not considered." So if SDL_GL_ALPHA_SIZE is
0 a framebuffer without an alpha channel is created. This is no problem
on the default GLX module due to a non standard implementation but
manifests with Nvidias GLX module. The consequence are render mistakes
like in game display showing static or the flashlight looking weird.
2012-11-13 23:33:00 +01:00
Daniel Gibson
f317b056c6 List.h needs sys/platform.h for ID_INLINE
Everytime List.h is included in a new file (and sys/platform.h isn't)
there are confusing compiler-errors..
So just #include sys/platform.h in List.h directly, because it uses
ID_INLINE which is defined there
2012-11-13 23:28:21 +01:00
Daniel Gibson
a7bfd05797 Use current type for BT_CLOSED enum
doesn't really make a difference code-wise, but removes one compiler warning.
2012-11-13 23:27:07 +01:00
Daniel Gibson
3202f0aa0f Get rid of some compiler warnings
GCC had shitloads of superfluous warnings wherever List.h and Str.h were
included.. get rid of them by using #pragma GCC diagnostic at some places
in List.h and Str.h.
Also add some casts, initialize some variables for other warnings
2012-11-13 23:24:13 +01:00
Daniel Gibson
aedc76b50e Don't save duplicate consecutive commands to history
If the entered command is the same as the last command, don't save
it to history.
2012-11-13 23:21:38 +01:00
Daniel Gibson
04266eee5e Make console history persistent
The console history is saved to a file on quit and restored after
starting the game.
So the commands entered in the console the last times the game was run
are still available in the console-history, just like commands that
were just entered.
2012-11-13 23:21:38 +01:00
Daniel Gibson
8c6e4eb38a Add support for norwegian keyboard layout
via "in_kbd norwegian". It's the '|' and '§' chars (124, 167)

Fixes #33
2012-11-13 23:18:45 +01:00
Daniel Gibson
6d9a43cb23 On Linux/Unix, return EXE-path as base-path if BUILD_DATADIR fails
Using this path was the old behavior and is expected by many users.
2012-11-13 23:16:03 +01:00
Daniel Gibson
768fdb5707 Load base game's gamelib if mod has no own gamelib
Some mods/mappacks have their own game dir (fs_game) but no own gamelib.
Doom3 defaulted to the base game dll (I think), so we should do the same.

Fixes #44
2012-11-13 23:14:57 +01:00
Daniel Gibson
c193e0b98e Win32: Statically link libgcc and libstdc++
Else one needs to copy those files from mingw32.. and I see no reason
not to statically link them.
2012-11-13 23:12:42 +01:00
Daniel Gibson
5936422d9d Fix freezing of dedicated server window on Windows
The code was donated by motorsep, thanks!
2012-11-12 20:18:00 +01:00
Daniel Gibson
105fdb0624 Fix dedicated server for Windows
* the OpenAL function definitions mustn't include __declspec(dllimport)
  => fixed by pretending to compile OpenAL statically
* glimp.cpp shouldn't be used in dedicated-only mode (as it was already
  the case on Linux and OSX)
  => No special handling for ID_DEDICATED needed in glimp.cpp, as it's not
   used anyway
* add APIENTRY to every gl function in stub_gl.cpp for compatibility
  with windows headers and MSVC
* remove GL/gl.h #include from win_local.h as it's not needed
* in qgl.h, when building dedicated server for windows, redefine WINGDIAPI
  to nothing for SDL_opengl.h #include to get rid off __declspec(dllimport)
  by using #pragma push_macro and pop_macro, because our stub is no dll.

Fixes https://github.com/dhewm/dhewm3/issues/39
2012-11-12 20:18:00 +01:00
Daniel Gibson
1f25568762 Remove duplicate functions from openal_stub.cpp + extern C
Some functions were duplicated, the only difference was a const in one
parameter. The definitions in the header were with const, so I kept
those versions.
Also, the functions in the header are pure C, so add extern "C",
this fixes issues with MSVC and the formerly duplicated functions.
2012-11-12 20:15:08 +01:00
Daniel Gibson
fa8f092e67 Unset key modifiers when regaining focus to unset ALT
There used to be a bug (discussed in #40), that ALT was still set after
using ALT-Tab. Thus when next pressing enter fullscreen was toggled.
This should now be fixed by unsetting the modifiers when focus is
regained (SDL_ACTIVEEVENT or SDL_WINDOWEVENT_FOCUS_GAINED).
2012-09-08 16:45:07 +02:00
Daniel Gibson
844cd2d8a8 Don't un-grab mouse when taking screenshots (fixes #18)
On windows un-grabbing (or possibly re-grabbing) the mouse seems to
mess up the view angly (view is centered afterwards), see
https://github.com/dhewm/dhewm3/issues/18
That's fixed by not releasing the mouse (there is no reason to do that
anyway).
2012-08-27 21:27:05 +02:00
dhewg
1b1787bb50 Disable the warning if the mouse grab request fails
This fails on some SDL drivers and just spams the console.
2012-07-28 12:54:25 +02:00
dhewg
9e15847083 Don't use alpha bits for the GL config
Wayland actually uses this.
2012-07-28 12:51:02 +02:00
Daniel Gibson
df81835de0 Fix several bugs from iodoom3 bugtracker
Apply 94cd0ee5 to d3xp as well.
2012-07-20 21:08:04 +02:00
dhewg
89071f1f57 Provide a stub for GLimp_GrabInput()
Fixes compilation of the dedicated server.
2012-07-20 21:04:04 +02:00
dhewg
227e8ee5c9 Add SDL2 support to framework/Common.cpp 2012-07-20 21:02:59 +02:00
dhewg
918e06cf00 Add SDL2 support to sys/osx/DOOMController.mm 2012-07-20 17:41:40 +02:00
dhewg
ed121102f4 Add SDL2 support to sys/win32/SDL_win32_main.c 2012-07-20 17:34:38 +02:00
dhewg
f120900000 SDL2's SDL_TimerID is not a pointer anymore 2012-07-20 17:34:38 +02:00
dhewg
454bebf99f Add SDL2 support in sys/glimp.cpp 2012-07-20 17:34:37 +02:00
dhewg
4f2f855105 Add SDL2 support in sys/events.cpp 2012-07-20 17:34:36 +02:00
dhewg
b8765ccf22 Move GrabInput() and rename to GLimp_GrabInput()
SDL2 supports multiple windows, and the grabbing is set per
window, so move it to sys/glimp.cpp.
2012-07-20 17:34:34 +02:00
dhewg
6dcf07974d Cleanup GrabInput()
Convert to bitflags to ease moving it.
2012-07-20 17:34:34 +02:00
dhewg
a75387c55e Add SDL2 support in sys/threads.cpp 2012-07-20 17:34:33 +02:00
dhewg
368bf2819c Log the SDL version 2012-07-20 17:34:32 +02:00
dhewg
264fdfa10e Add SDL2 support for the build system
Defaults to off, tree doesn't yet compile with SDL2.
2012-07-20 17:34:32 +02:00
dhewg
5639720c1c Add FindSDL2.cmake for SDL2
This is just a modified version of FindSDL.cmake
2012-07-20 16:43:39 +02:00
dhewg
826d0f7b7b cmake: set SDL_BUILDING_LIBRARY for win32 and osx
While that's a lie it makes FindSDL skip SDLmain, which we have
in tree and compile ourselves.
2012-07-20 16:43:38 +02:00
dhewg
e62e3870a3 Don't link against OpenGL
Dynamically load all symbols at runtime.
This in in preparation for SDL2/OpenGLES.
2012-07-20 16:43:37 +02:00
dhewg
63fdea82b4 Get rid of wglext.h
Good riddance.
2012-07-20 16:43:37 +02:00
dhewg
ac921bc99f Get rid of editor specific win32 vars
We don't compile any mfc crap for our own good, so get rid of these.
2012-07-20 16:43:36 +02:00
dhewg
227fac443d Fix description of r_swapInterval
This isn't specific to wgl.
2012-07-20 00:13:07 +02:00
dhewg
bf922dfc59 Get rid of glConfig.wgl_extensions_string
Unused and nobody cares.
2012-07-20 00:13:05 +02:00
dhewg
30d5cb16d0 Disable editor related rendering
These use OpenGL calls, which are useless on all platforms without
editor support.
2012-07-20 00:13:05 +02:00
dhewg
7f3fc825ed Get rid of GetCardCaps()
Useless now.
2012-07-20 00:13:04 +02:00
dhewg
3cdc5cec5c Get rid of unused var allowNV30Path 2012-07-20 00:13:03 +02:00
dhewg
de1b7b9adb Remove spurious call to SetBackEndRenderer()
Like the comment above said, this is invalid and can't work.
The backend is properly set via R_InitOpenGL().
2012-07-20 00:13:03 +02:00
dhewg
f4de0ed8c1 Remove the deprecated arb renderer 2012-07-20 00:13:02 +02:00
dhewg
a5678d2368 Remove the monochrome hack
This was only used for the nv20 renderer.
2012-07-20 00:13:02 +02:00
dhewg
6aa9b3602e Remove the deprecated nv20 renderer 2012-07-20 00:13:01 +02:00
dhewg
3f67a28abe Remove the deprecated nv10 renderer 2012-07-20 00:13:00 +02:00
dhewg
138b7b1def Remove the ATI fragment shader emulation
This was only used by the r200 renderer on OSX.
2012-07-20 00:12:59 +02:00
dhewg
4b67aae8fe Remove the deprecated r200 renderer 2012-07-20 00:12:59 +02:00
dhewg
4675ecb6d3 Get rid of precompiled.[h|.cpp]
Both unused, except for the mfc editors, which don't compile anyway.
2012-07-20 00:12:58 +02:00
dhewg
2cad07c38e Delete util_stub.cpp
Unused.
2012-07-20 00:12:57 +02:00
dhewg
e0fd437ba9 Don't warn about uppercase chars in filenames
Only print those in developer mode.
2012-07-20 00:12:56 +02:00
dhewg
d9bc9c6484 Silence warnings for removed cvars in ChoiceWindow
Disables these warnings:
WARNING: idChoiceWindow::InitVars: gui 'guis/mainmenu.gui' window
'ADVNet5Primary' references undefined cvar 'net_serverAllowServerMod'
WARNING: idChoiceWindow::InitVars: gui 'guis/mainmenu.gui' window
'SNDBPrimary' references undefined cvar 's_driver'

Both cvars have been removed from this tree.
2012-07-20 00:12:56 +02:00
dhewg
2a3d07e174 More logging cleanup 2012-07-20 00:12:55 +02:00
dhewg
373fccbd59 Cleanup OpenGL logging 2012-07-20 00:12:54 +02:00
dhewg
626de63ff5 Cleanup OpenAL logging 2012-07-20 00:12:53 +02:00
dhewg
5e05c5b031 Get rid of s_libOpenAL and s_useOpenAL
Both unused.
2012-07-20 00:12:52 +02:00
dhewg
8aa0a4a9c9 Fix "black box" effect on ase meshes
In 09ea2ca8 we fixed a memset(), but it turns out wiping memory at that
position is wrong in the first place:
If an ase mesh has a GEOMOBJECT/NODE_TM transform matrix before the
GEOMOBJECT/MESH entry, the prior parsed TM will be wiped.
Since a GEOMOBJECT aseObject_t is already calling memset() upon
initialisation, we can just drop the spurios call.

Fixes #13.
2012-07-18 19:53:08 +02:00
dhewg
a96635219c Fix pointer check/access in Sys_InitNetworking()
Reported by scaronni.
Fixes #25.
2012-07-17 18:25:06 +02:00
dhewg
020d1daf92 cmake: indent whitespace fixes 2012-07-10 10:10:35 +02:00
dhewg
f3ce725f8e cmake: Whitespace fixes for consistency 2012-07-09 23:31:35 +02:00
dhewg
28d127b230 cmake: default to build d3xp 2012-07-09 23:12:07 +02:00
dhewg
0b22c8e297 cmake: Remove fugly hack to compile 32bit binaries
This doesn't work on multiarch systems. A proper cmake toolchain file
has to be used instead.
2012-07-09 23:03:12 +02:00
dhewg
600a07e134 cmake: Fix error when curl is not found
Set the library name to an empty string to prevent this error:

CMake Error: The following variables are used in this project, but they
are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the
CMake files:
CURL_LIBRARY (ADVANCED)
2012-07-09 22:57:13 +02:00
dhewg
96e8b7b904 cmake: Use GNUInstallDirs
Provides configure style overwritable path settings.
Include a fallback for cmake versions without GNUInstallDirs.
2012-07-09 22:52:05 +02:00
dhewg
390b6a493d Try to find a steam install for the base path 2012-07-06 19:47:34 +02:00
dhewg
2052928433 Fall back to fs_basedir for cd keys
The windows cd installer and steam write it to that location.
2012-07-06 19:38:32 +02:00
dhewg
90bd14564f Remove redundant setenv() call
The version which overwrites existing envvars is just below.
2012-07-06 01:41:12 +02:00
dhewg
5a9c2006ff Get rid of Posix_EarlyInit() and Posix_LateInit()
Since we don't have our own signal handler anymore, those two
init functions can be merged into the existing Sys_Init(), which
is already called by common->Init().
2012-07-06 01:39:01 +02:00
dhewg
0bc457063f Get rid of the signal handler
SDL covers this via e.g. SDL_QUIT event on ctrl+c.
2012-07-06 01:31:27 +02:00
dhewg
d2b7eac843 Get rid of Sys_SetFatalError()
Unnecessary.
2012-07-06 01:24:25 +02:00
dhewg
33c841ef4c Get rid of socks proxy code in win_net.cpp
That was never active.
2012-07-06 01:07:02 +02:00
dhewg
7c06aa16b8 Fix warnings in win_net.cpp
warning: variable ‘err’ set but not used [-Wunused-but-set-variable]
warning: unused variable ‘len’ [-Wunused-variable]
warning: format ‘%d’ expects argument of type ‘int’, but argument 3
         has type ‘long long unsigned int’ [-Wformat]
2012-07-06 01:07:01 +02:00
dhewg
1f9c88fc22 Correct the cpu type for 64bit msvc 2012-07-06 01:07:00 +02:00
dhewg
78822ac932 Disable warning 4267 for msvc
Spams the console due to 32bit data types on 64bit.
2012-07-06 01:07:00 +02:00
dhewg
d6dd8c636b Fix sys/cpu.cpp for msvc 64bit 2012-07-06 01:06:59 +02:00
dhewg
d22865b8a1 Use _exit() in AssertFailed()
Ensure application exit.
2012-07-06 01:06:59 +02:00
dhewg
5fee87be2a Replace "__asm int 0x03" with __debugbreak()
Fixes compilation with msvc 64bit.
2012-07-06 01:06:58 +02:00
dhewg
30c66d5ef8 Only compile msvc style asm with 32bit msvc
The 64bit compiler doesn't support __asm.
2012-07-06 01:06:57 +02:00
dhewg
84717833e1 Get rid of sysMemoryStats_t
Unused.
2012-07-06 01:06:56 +02:00
dhewg
68284f9a09 Get rid of empty sys/linux/dedicated.cpp 2012-07-06 01:06:56 +02:00
dhewg
d53c91b023 Get rid of useless files in sys/linux 2012-07-06 01:06:55 +02:00
dhewg
b073f281ad Get rid of the SIGFPE handler
If shit happens, let it crash.
2012-07-06 01:06:55 +02:00
dhewg
9cbc9ff6db Get rid of win_cpu.cpp
All unused now.
2012-07-06 01:06:54 +02:00
dhewg
b58f51dbfa Get rid of Sys_FPU_StackIsEmpty()
Same as with Sys_FPU_GetState().
2012-07-06 01:06:53 +02:00
dhewg
0ccef1eba8 Get rid of Sys_FPU_GetState()
This was only implemented with MSVC style asm.
Comments suggest that it was used to help catch invalid FOV calculations,
which were probably only happening with ancient compiler bugs.
2012-07-06 01:06:53 +02:00
dhewg
93fdc96e60 Get rid of Sys_FPU_EnableExceptions()
No exceptions were ever enabled.
2012-07-06 01:06:51 +02:00
dhewg
65b13cb73e Use a more modern way to set the fpu precision 2012-07-06 01:06:51 +02:00
dhewg
a4558bb080 Get rid of Sys_FPU_SetRounding()
Unused.
2012-07-05 21:31:49 +02:00