Commit graph

434 commits

Author SHA1 Message Date
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
alexey.lysiuk
dd30d2a045 DEHACKED lumps from IWAD now have precedence over embedded lumps and separate files
See https://forum.drdteam.org/viewtopic.php?t=7588

Processing order is now the same as in Chocolate Doom
prBoom+ loads separate files after all WAD lumps though
This makes sense but would change loading sequence existed in ZDoom for years
2017-04-04 12:20:12 +03:00
Christoph Oelckers
54764c136d - changed the 2D draw abort check to use a dedicated variable, that gets set in Begin2D and unset at the end of D_Display.
This is really all the extent where 2D draw operations may be allowed. Trying to detect this from other variables is not reliable.
2017-04-01 12:59:58 +02:00
Christoph Oelckers
1dcc017daf - reimplemented the position display, but changed its position a bit upward.
- activated the RenderOverlay event, now that it can be called from the correct spot, i.e. right after the top level HUD messages are drawn. The system's status output will still be drawn on top of them.
2017-03-29 23:51:53 +02:00
Christoph Oelckers
1d4ab0cc2a - implemented proper scaling for the status bar itself.
This allows using the UI scale or its own value, like all other scaling values.
In addition there is a choice between preserving equal pixel size or aspect ratio because the squashed non-corrected versions tend to look odd, but since proper scaling requires ununiform pixel sizes it is an option.

- changed how status bar sizes are being handled.

This has to recalculate all scaling and positioning factors, which can cause problems if the drawer leaves with some temporary values that do not reflect the status bar as a whole.
Changed it so that the status bar stores the base values and restores them after drawing is complete.
2017-03-29 19:23:40 +02:00
Christoph Oelckers
e791c957d9 - implemented the regular Doom status bar.
The DOOM status bar and HUD are complete, except the inventory bar.
2017-03-26 22:04:58 +02:00
Christoph Oelckers
3e67a8bafa - let hud_scale act like an override to uiscale, just like con_scale does.
- better handling of ForceScale for the fullscreen HUD that doesn't mess around with CVARs.
- moved the mug shot into the status bar, because this is global state that needs to be shared between different pieces of code which want to display a mug shot.
- SBARINFO should work off the current status bar settings instead of the ones stored in its script object
2017-03-25 18:32:47 +01:00
Christoph Oelckers
a3ee3c287e - major progress on the status bar code: SBARINFO's DrawGraphic has been ported into a generic function of the base statusbar class and put to use for a few items on the Strife status bar.
- decided to ditch the widget system I had started to lay out. As it turns out that would make things far more complicated and slower than they need to be.
2017-03-24 00:47:08 +01:00
Christoph Oelckers
1423d5f42a - scriptified the SBARINFO wrapper.
This serves no purpose in itself but it removes a native side class from the status bar class hierarchy which allows for better editing options later.
2017-03-22 17:29:13 +01:00
Christoph Oelckers
9bffe4ee50 - scriptified the main statusbar interface and the Strife status bar.
Note that the Strife status bar does not draw the health bars yet. I tried to replace the hacky custom texture with a single fill operation but had to find out that all the coordinate mangling for the status bar is being done deep in the video code. This needs to be fixed before this can be made to work.

Currently this is not usable in mods because they cannot initialize custom status bars yet.
2017-03-22 00:32:52 +01:00
Christoph Oelckers
622b4a6457 - switched over to the scripted intermission screens. 2017-03-18 21:19:32 +01:00
Christoph Oelckers
ef3421eee5 - moved dynamic lights out of the GL code into the common game code.
Since the true color software renderer also handles them there is no point keeping them on the GL side.
This also optimized how they are stored, because we no longer need to be aware of a base engine which doesn't have them.
2017-03-12 19:57:06 +01:00
alexey.lysiuk
b398c7458c Do not draw crosshair on automap with alternative HUD enabled 2017-03-12 08:57:25 -04:00
Magnus Norddahl
0c9014b984 - move r_utility globals into r_viewpoint and r_viewwindow
- change r_utility functions to only work on FRenderViewpoint and FViewWindow
2017-03-11 23:28:07 +01:00
Rachael Alexanderson
cc9a2e5121 Merge https://github.com/coelckers/gzdoom 2017-03-08 21:25:24 -05:00
Christoph Oelckers
ba0f5a3f94 - most WORD and SWORD are gone. 2017-03-08 18:55:55 +01:00
Christoph Oelckers
8ab562ef13 - the fourth. 2017-03-08 18:55:54 +01:00
Rachael Alexanderson
71f400e238 Merge https://github.com/coelckers/gzdoom 2017-03-07 10:00:20 -05:00
ZZYZX
620ce72ebd Fixed E_Responder for mouse events. It being active during console was actually a bug, because console should prevent any events. 2017-03-07 12:46:26 +01:00
ZZYZX
883048b538 Added E_Responder call for direct mouse input interception 2017-03-07 12:46:26 +01:00
Christoph Oelckers
1c95ddacb8 Revert "Moved some ancient playsim mouse input code around so that it works properly with input events"
This reverts commit 2e0eb742eb.

This effectively nullifies the attempt to get a higher mouse update rate for the display.
2017-03-07 10:26:03 +01:00
ZZYZX
a681b5b706 Just in case, don't send useless mouse move events to G_Responder. 2017-03-07 09:47:47 +01:00
ZZYZX
2e0eb742eb Moved some ancient playsim mouse input code around so that it works properly with input events 2017-03-07 09:47:47 +01:00