Commit graph

456 commits

Author SHA1 Message Date
Christoph Oelckers
b939836846 - renamed FileRdr back to FileReader. 2018-03-11 19:29:37 +01:00
Christoph Oelckers
b14ee50d0d - transition to new FileReader interface complete, but untested. 2018-03-11 12:33:46 +01:00
Christoph Oelckers
542d3431ff - Start of soundfont refactoring. This does not compile yet! 2018-02-22 07:21:19 +01:00
Neil McPhail
ded0c7805d Fix failure to write under ~/ in confinement
When running in a confined environment (such as a snap) it may not be
possible to write to directories such as ~/.config. By using the $HOME
variable instead of the '~' shortcut, the confined environment can pass
an alternative 'home' directory with write privelges.

I have only changed this for posix/unix and haven't touched code for
MacOS, as I don't know if that behaves differently
2018-01-21 10:52:42 +01:00
alexey.lysiuk
f25a5ea2bc Marked a few commands as unsafe
This process of finding unsafe commands is not complete!
2018-01-07 15:03:49 +02:00
alexey.lysiuk
90c734a39f Fixed VM abort when drawing from ZScript happens during 0 game tic
https://forum.zdoom.org/viewtopic.php?t=58523
https://forum.zdoom.org/viewtopic.php?t=58780
2017-12-19 18:07:29 +02:00
Rachael Alexanderson
a29d9e157c - fixed: screen->FrameTime should use an adjusted frame start time 2017-12-07 03:01:57 -05:00
Christoph Oelckers
8627a48b34 - consolidation of 'stat' calls.
Since this is a non-standard function it's better kept to as few places as possible, so now DirEntryExists returns an additional flag to say what type an entry is and is being used nearly everywhere where stat was used, excluding a few low level parts in the POSIX code.
2017-12-02 16:07:09 +01:00
Rachael Alexanderson
6d43c5cdc6 Merge remote-tracking branch 'origin/friendly_window_title' 2017-11-24 14:41:25 -05:00
Rachael Alexanderson
f1405f68a7 Merge remote-tracking branch 'origin/master' into friendly_window_title 2017-11-18 14:08:33 -05:00
Rachael Alexanderson
c3c637a0cc - set i_friendlywindowtitle to true by default 2017-11-18 08:17:18 -05:00
Rachael Alexanderson
e418663a26 - fixed: Reverted an accident in a previous commit where I_StartTic() was moved inappropriately. The new location fixed a mouse stutter, however, it causes net desyncs so it cannot be used here. 2017-11-15 22:20:55 -05:00
Rachael Alexanderson
909daadd75 - update more millisecond-storing data structures to u/int64_t to fix possible rollover bugs 2017-11-15 20:33:08 -05:00
Christoph Oelckers
0323f54384 - rename I_FPSTime function.
- now that the frame buffer stores its render time, the 'ms' return from I_GetTimeFrac is not needed anymore, we may just as well use the globally stored value instead.

The only feature this value was ever used for was texture warping.
2017-11-13 00:54:32 +01:00
Christoph Oelckers
96e9eadd97 - removed I_MSTime entirely after checking how the wipe code actually works.
Since this calls I_WaitVBL, which resets the frame time, it was essentially just like calling a real-time timer anyway and nothing in it required a specific 0-timepoint.
The same applies to the ZScript interface. All it needs is a millisecond-precise timer with no semantics attached.
2017-11-13 00:38:04 +01:00
Christoph Oelckers
2c65f08011 - more timer cleanup
* store the frame time in the current screen buffer from where all render code can access it.
* replace some uses of I_MSTime with I_FPSTime, because they should not use a per-frame timer. The only one left is the wipe code but even this doesn't look like it needs either a per-frame timer or a timer counting from the start of the playsim.
2017-11-13 00:28:43 +01:00
Christoph Oelckers
93e9c383fa - get the timer used for animation only once at the very beginning of the frame and pass it on to the renderer to avoid any dependencies on the timer's implementation. 2017-11-12 18:51:11 +01:00
Christoph Oelckers
6bd76d6b5a - fixed compilation in debug mode.
- moved timer definitions into their own header/source files. d_main is not the right place for this.
- removed some leftover cruft from the old timer code.
2017-11-12 09:06:40 +01:00
Magnus Norddahl
307d8931d8 - Switch to C++11 steady clock
- Move the C++11 implementation to d_main
- Remove the platform specific timer implementations
2017-11-12 03:12:22 +01:00
Rachael Alexanderson
cdf0733c8b - added latching CVARs to CVARINFO 2017-11-11 09:37:41 -05:00
Rachael Alexanderson
d313ef4b61 - de-init DoomStartupInfo on 'restart' ccmd so that the window title always contains the correct game information. 2017-10-31 20:00:58 -04:00
Rachael Alexanderson
d16ad3dcb5 - added I_FriendlyWindowTitle cvar, which takes the current game/mod name and uses it as a default window title. 2017-10-31 19:47:56 -04:00
alexey.lysiuk
cb982ec313 Use FString::Back() when possible
Changed usages of str[str.Len() - 1] to str.Back()
2017-10-23 11:55:20 +03:00
Leonard2
80701927e8 Fixed: don't interpolate view movements if a key press didn't result in any changes. 2017-10-11 19:01:37 +02:00
Rachael Alexanderson
765646ee1c - fixed: Changed IWAD_FILENUM to a dynamic lookup. 2017-09-13 04:19:03 -04:00
Rachael Alexanderson
bcc5830467 - don't call BaseFileSearch inside of d_iwad.cpp since it is supposed to be treated as a private function. 2017-09-09 06:37:08 -04:00
Rachael Alexanderson
9a7f727aa4 - fixed: zd_extra.pk3 now loads before the iwad. 2017-09-09 06:21:40 -04:00
Rachael Alexanderson
b7f6126bcd - First commit of archive split - preserve original assets
- Added: d_main.cpp now searches for "gzdoom_optional_assets.pk3" - this can be changed in version.h for fork authors.
- Updated forum links to point to ZDoom.org.
2017-09-07 04:08:09 -04:00
nashmuhandes
3c39d51c83 Fixed a wrong variable type declaration. 2017-09-02 09:57:48 +02:00
nashmuhandes
c885b6aa35 Send player FOV across the network as floatig point. 2017-09-02 09:57:48 +02:00
nashmuhandes
541fac8c6b Cleaned up and shorted the code for R_SetFOV. 2017-08-28 21:14:11 -04:00
nashmuhandes
30966ef951 Use a fallback FOV for the R_SetFOV call. 2017-08-28 21:14:11 -04:00
nashmuhandes
42db31b816 Added per-actor camera FOV. 2017-08-28 21:14:11 -04:00
alexey.lysiuk
fae52d398b Properly handle VM abort exception when occurred in menu
https://forum.zdoom.org/viewtopic.php?t=57677
2017-08-25 15:36:06 +03:00
Christoph Oelckers
f3d31e055f - print the version at the start of the log. 2017-08-19 20:13:12 +02:00
Christoph Oelckers
cdff5bdc08 - rewrite of the IWAD loading mechanism.
The old code went through a list of predefined file names and looked each of them up in a list of predefined directories until it found a match. This made it nearly impossible to add custom IWAD support because the list of valid file names could not be extended.
This has now been switched around to run a scan for matching files on each given directory. With this approach it can look for *.iwad and *.ipk3 as IWAD extensions as well and read an IWADINFO out of these files that can be added to the internal list of IWADs, making it finally possible to define custom IWADs without having to add them to the internal list.

(This isn't fully tested yet so some errors may still occur.)
2017-08-19 19:30:48 +02:00
Rachael Alexanderson
b6c15b997a - added 'r_debug_disable_vis_filter' cvar for debug purposes, to show all objects regardless of their actor filter fields. 2017-07-29 17:03:43 -04:00
Rachael Alexanderson
9a9fe7c133 - implemented GetCaps() for OpenGL
- renamed RFF_FRAGMENTSHADER to RFF_MATSHADER
- D_Display now calls Renderer->GetCaps() and stores it in a global variable for later use.
2017-07-29 17:03:43 -04:00
Christoph Oelckers
03ed0656e1 - fixed: The frame timer for interpolating the renderer should always take its time from the actual beginning of the frame instead of checking the system timer in real time when rendering starts.
This fixes two issues:

* timer related texture animations are not being recreated multiple times if a scene renders multiple viewpoints (e.g. camera textures or portals.)
* interpolation is smoother when maps have a high think time of multiple milliseconds. A good map to see the difference would be ZDCMP2 which has a think time of 4-5 milliseconds. With the timer taken in real time after the thinkers have run and VSync on this resulted in alternating time slices of 11 and 21 ms between frame interpolations instead of an even 16 as should be done for smooth 60 fps because roughly every second frame was offset by those 5 ms.
2017-07-20 14:20:50 +02:00
Christoph Oelckers
ac30e47ab4 - Added an 'srand' call to the RBG initialization.
This is needed because 'rand' gets used by parts of the sound code (e.g. playlists.)
2017-07-15 09:34:07 +02:00
Rachael Alexanderson
c18134dbd3 - r_vanillatrans: Cache the cache! Transform the function into a global variable and recheck at the start of D_Display 2017-06-04 12:30:35 +02:00
Rachael Alexanderson
68b6f922f7 - Added auto-detection scheme for r_vanillatrans
It now works the following way:
(0) - Force off (ZDoom defaults)
(1) - Force on (Doom defaults)
(2) - Auto off (Prefer ZDoom defaults - if DEHACKED is detected with no ZSCRIPT it will turn on) (default)
(3) - Auto on (Prefer Doom defaults - if DECORATE is detected with no ZSCRIPT it will turn off)
2017-06-04 12:30:35 +02:00
Christoph Oelckers
ba37f093e0 - use FluidSynth as default MIDI device and allow loading a 'gzdoom.sf2' sound font if none is specified. The search rules for this file will be the same as for gzdoom.pk3. 2017-05-13 12:33:14 +02:00
Christoph Oelckers
762ba13cd9 - store the last found OpenGL version in the INI so that modern GL related options can be removed when running old hardware with software rendering. 2017-05-08 19:30:51 +02:00
Rachael Alexanderson
00dab8677a - fixed: Changing fullscreen while vid_renderer != currentrenderer will cause a fake vid_renderer to be passed to the mode change function in order to prevent a crash. 2017-05-03 10:05:46 +02:00
alexey.lysiuk
e19f6fe8ea Final touch in fixing restart CCMD
https://mantis.zdoom.org/view.php?id=595
2017-04-20 16:20:51 +03:00
Christoph Oelckers
42a34ddd58 - fixed: The menu descriptors were not cleared on restart, leaving some menu data behind. 2017-04-18 16:54:06 +02:00
Christoph Oelckers
96d328de9b - removed all Doom Source license and all default Raven copyright headers and replaced them with GPLv3. Also fixed the license in a few other files.
For some files that had the Doom Source license attached but saw heavy external contributions over the years I added a special note to license all original ZDoom code under BSD.
2017-04-17 13:33:19 +02:00
Christoph Oelckers
cd180d29c7 - block direct use of 'new' for DObjects.
This is to ensure that the Class pointer can be set right on creation. ZDoom had always depended on handling this lazily which poses some problems for the VM.
So now there is a variadic Create<classtype> function taking care of that, but to ensure that it gets used, direct access to the new operator has been blocked.

This also neccessitated making DArgs a regular object because they get created before the type system is up. Since the few uses of DArgs are easily controllable this wasn't a big issue.

- did a bit of optimization on the bots' decision making whether to pick up a health item or not.
2017-04-14 13:31:58 +02:00
Christoph Oelckers
6599e2c425 - moved the VM types into their own file and only include it where really needed. 2017-04-13 01:12:04 +02:00