Commit graph

941 commits

Author SHA1 Message Date
hendricks266
0dbf0a36a1 SW: Rename the poorly named "Cool Stuff" menu entry to "Credits" and clean it up
git-svn-id: https://svn.eduke32.com/eduke32@8326 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-29 00:48:17 +01:00
hendricks266
d4eb10d10d SW: Fix saves
Dynamically-allocated structs strike again.

git-svn-id: https://svn.eduke32.com/eduke32@8325 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/sw/src/saveable.h
2019-11-29 00:48:16 +01:00
Christoph Oelckers
115675417a Merge branch 'master' into powerslave 2019-11-28 17:07:11 +01:00
Christoph Oelckers
324056ad88 - more cleanup on music code
* removed some redundant functionality (e.g. Shift-F5 to change - use the console for that!)
* removed a few more leftover parts of the old music system
* savegames should not do more than resuming the music at the point of saving. (DN3D and RR only so far. Blood to be done.)
* handle music enabling/disabling in the backend, which simply knows better what to do. This was only working in the menu, so changing the CVAR had no effect.
2019-11-28 03:18:58 +01:00
Christoph Oelckers
8492e3c67a - migrated SW's savegame code to the same containers as the other front ends.
Fortunately everything here was wrapped in macros so that it was relatively simple to change.
2019-11-27 19:31:58 +01:00
Christoph Oelckers
3bb46a4d8d Merge branch 'master' into menu_for_real 2019-11-27 18:04:44 +01:00
hendricks266
0a70c5e55f SW: Sanitize all uses of wall.nextwall to prevent OOBs
git-svn-id: https://svn.eduke32.com/eduke32@8322 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/sw/src/jnstub.cpp
#	source/sw/src/sector.cpp
2019-11-27 18:04:01 +01:00
Christoph Oelckers
723b210c95 - major work on savegame code
Not tested yet!

* Added a JSON-based header to the savegames so that the unified menu can read from a common data source.
* moved loading and saving of frontend independent data to the wrapper so that support is automatic.
2019-11-27 00:41:26 +01:00
Christoph Oelckers
0f4d80b5d3 Merge branch 'master' into menu_for_real 2019-11-26 19:19:21 +01:00
Christoph Oelckers
abdd807e7f - fixed merge errors. 2019-11-26 19:10:24 +01:00
hendricks266
510e737360 SW: Fix "MV_GetVoice(): bad handle" log spam
git-svn-id: https://svn.eduke32.com/eduke32@8311 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/sw/src/draw.cpp
#	source/sw/src/menus.cpp
2019-11-26 18:08:43 +01:00
hendricks266
f411b72783 SW: Fix widescreen flickering in end of level screen
git-svn-id: https://svn.eduke32.com/eduke32@8310 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-26 18:06:41 +01:00
hendricks266
1a0b363ded SW: Allow the Run key to Walk when AutoRun is enabled
git-svn-id: https://svn.eduke32.com/eduke32@8309 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/sw/src/game.cpp
#	source/sw/src/player.cpp
2019-11-26 18:06:40 +01:00
hendricks266
7fb425aebb SW: Fix non-debug builds on Windows
git-svn-id: https://svn.eduke32.com/eduke32@8308 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-26 18:04:51 +01:00
hendricks266
83cfcb65a8 SW: Update the port credits
Still far from perfect.

git-svn-id: https://svn.eduke32.com/eduke32@8307 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-26 18:04:50 +01:00
hendricks266
9dde07ced9 SW: Copy the sln==1 GetUpperLowerSector case from the editor to the game
This avoids upper and lower remaining unmodified.

Sector 469 in Seppuku Station causes it!

git-svn-id: https://svn.eduke32.com/eduke32@8306 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/sw/src/brooms.cpp
2019-11-26 18:04:48 +01:00
hendricks266
a51e91d4e9 SW: Fix keyboard input
git-svn-id: https://svn.eduke32.com/eduke32@8303 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/config.cpp
#	source/duke3d/src/menus.cpp
#	source/mact/include/control.h
#	source/mact/src/control.cpp
#	source/sw/src/config.cpp
#	source/sw/src/menus.cpp
2019-11-26 18:03:13 +01:00
hendricks266
383ecda2b2 SW: Avoid an OOB in GetUpperLowerSector
git-svn-id: https://svn.eduke32.com/eduke32@8302 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/sw/src/brooms.cpp
2019-11-26 17:59:30 +01:00
hendricks266
fd3ec56827 SW: Fix OOB access when viewing a mirror
git-svn-id: https://svn.eduke32.com/eduke32@8299 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-26 17:58:20 +01:00
hendricks266
2fc49b3489 SW: Fix mouse aiming
git-svn-id: https://svn.eduke32.com/eduke32@8298 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/sw/src/config.cpp
#	source/sw/src/game.cpp
2019-11-26 17:58:19 +01:00
hendricks266
92a699b7eb SW: Fix enough OOBs to get in-game
git-svn-id: https://svn.eduke32.com/eduke32@8295 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/sw/src/_functio.h
#	source/sw/src/config.cpp
#	source/sw/src/sector.cpp
2019-11-26 17:50:55 +01:00
hendricks266
41194f99f9 SW: Fix playing track 0 when entering the sound settings
git-svn-id: https://svn.eduke32.com/eduke32@8294 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/sw/src/menus.cpp
2019-11-26 17:49:49 +01:00
Christoph Oelckers
8d11990494 - more work on making Exhumed compile.
Almost done, down to 20 compile errors.
2019-11-24 13:59:36 +01:00
Christoph Oelckers
52cfb7fb92 - completely disconnected the old menu from the rest of the game to allow rebuilding the new one.
Sadly this uncovered a few more places where script events are allowed too broad access to the game state.
2019-11-23 23:05:24 +01:00
Christoph Oelckers
728635c1c0 - correct application of in_mouseflip flag. 2019-11-20 23:29:13 +01:00
Christoph Oelckers
200f54ad47 - mouse turning works. 2019-11-20 22:50:37 +01:00
Christoph Oelckers
2da4294ba5 - hooked up the event processing for Shadow Warrior, so keyboard input is working now. Mouse movement is not being processed yet.
Also removed some leftover code from the old input system.
2019-11-20 22:01:44 +01:00
Christoph Oelckers
6d40c9202c - deleted a batch of code from engine.cpp which is only needed for the assembly drawers. 2019-11-20 19:33:36 +01:00
Christoph Oelckers
234283ca8a - SW: added validation checks to WallSetup.
This code wrote to array index -1.
With this change the level finally gets rendered, although it still doesn't work.
2019-11-19 23:04:22 +01:00
Christoph Oelckers
fd31d4fa6a - replaced 32 bit SDL library - the preincluded one appeared to be broken.
- fixed main group autochoice.
- fixed uninitialized player links for Shadow Warrior.
2019-11-19 22:35:52 +01:00
Christoph Oelckers
f24de03501 - fixed auto-picking of game GRPS from the command line. 2019-11-19 21:35:35 +01:00
Christoph Oelckers
557bd201fb - removed unused code. (MDA screen hack - huh???)
- Shadow Warrior updates from SWP.
2019-11-19 20:43:11 +01:00
Christoph Oelckers
5fc81d1bd4 - made brightmaps operational.
The logic is not yet optimal but at least it works.
2019-11-10 19:42:26 +01:00
Christoph Oelckers
21ac5e87b5 - added blend table translucency estimation instead of using a lame default.
- draw fullscreen blends below the console.
- moved all mouse event processing out of the SDL backend to D_PostEvent.
- removed all remaining code for dealing with mouse buttons directly.
2019-11-10 15:15:14 +01:00
Christoph Oelckers
299f596afc - Changed EDuke menu to receive all settings storage locations as CVARs.
With this out of the way the only part that needs a real replacement immediately is the keybinds menu.
2019-11-09 19:15:03 +01:00
hendricks266
dc10a8b03d SW, KenBuild: Replace strupr with Bstrupr
git-svn-id: https://svn.eduke32.com/eduke32@8283 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/kenbuild/src/kdmeng.cpp
#	source/sw/src/bldscript.cpp
#	source/sw/src/jbhlp.cpp
2019-11-08 17:42:09 +01:00
hendricks266
fbb75aae0b SW: Replace UCHAR with unsigned char
git-svn-id: https://svn.eduke32.com/eduke32@8282 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-08 17:41:40 +01:00
hendricks266
125ec7ad2c SW: Replace MAXLONG with INT32_MAX
git-svn-id: https://svn.eduke32.com/eduke32@8281 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-08 17:41:39 +01:00
Christoph Oelckers
9aa275f996 - got rid of some editor-only code and the entire buildvfs header
Nearly all file write access now uses the FileWriter class, which is UTF-8-safe on all platforms - unlike stdio.
2019-11-08 02:02:54 +01:00
Christoph Oelckers
b6a3a60251 - console output is functional. 2019-11-06 23:40:10 +01:00
Christoph Oelckers
5d31119a49 - fixed the Shadow Warrior menu, but it doesn't do much good. The game appears to be thoroughly broken. 2019-11-06 19:22:14 +01:00
Christoph Oelckers
c46b22e52e - more cleanup of obsolete OSD code. 2019-11-05 20:16:53 +01:00
Christoph Oelckers
a4483f131d - Printf related cleanup. 2019-11-05 20:07:16 +01:00
Christoph Oelckers
570696fc09 - added ZDoom's CCMD code.
Not tested yet.
2019-11-04 23:01:50 +01:00
Christoph Oelckers
1ee4efebb0 - fixed compilation. 2019-11-04 17:58:18 +01:00
Christoph Oelckers
b747df60ee - moved all keyboard related code into the InputState class, so that looking for this stuff is easier.
Sadly there's 1ß00 lines of code using this...
2019-11-04 00:53:55 +01:00
Christoph Oelckers
1b958a7f9f - removed more backing data for the old keybinding code.
Unfortunately this means that the keybinding menus in all games except Blood are shot to shit right now because of how they passed the data on to its destination.
These menus are not fixable, this will have to wait until the replacement is up.
2019-11-03 20:58:10 +01:00
Christoph Oelckers
3c7151810f - made the game interfaces classes instead of function pointer lists because that is far better at error catching.
- fixed: Blood's monster flag is a 'have_monsters', not 'nomonsters' flag. As a result none were spawned.
2019-11-03 12:32:58 +01:00
Christoph Oelckers
8fb54b51c3 - rewrote the screenshot code to use m_png as its backend.
Mainly to finally get rid of kplib. There's really no use to keep such code around if alternatives are already present.
2019-11-02 12:59:59 +01:00
Christoph Oelckers
1149b4f4aa - various fixes and improvements related to file location management:
* saving of demos and savegames no longer mindlessly writes to the mod directory. All such access is now being rerouted through the special paths interface so that the game data can reside in write protected locations.
* refactored all occurences of klistpath except fnlist_getnames.
* do not allow CON scripts to write to arbitrary files. This is a massive exploit and can be used to cause real damage if someone knows how to play this thing - it's far easier than people may think! It will now write any such data to a special section in the main config which is safe and cannot be manipulated to write to random locations on the hard drive.
2019-11-02 00:38:30 +01:00
Christoph Oelckers
cfca8060ba - gutted cache1d. The old file system is gone, excepr for klistpath, which still gets used in a few places.
- consolidated the 3 identical S_OpenAudio implementations. The replacement code is disabled for the time being because it needs a rewrite. The replacement logic is uses is a bit too volatile.
- removed the old GRP scan code.
2019-11-01 22:17:15 +01:00
Christoph Oelckers
2d7c0e26d2 - cleanup of the old file system initialization.
The real fun part is yet to come, i.e. removing the remaining dependencies on the old file system code.
2019-11-01 19:25:42 +01:00
Christoph Oelckers
8d5e665caa - various initialization related changes
* reroute several error conditions to I_Error.
* removed some soon-to-be obsolete GRP loading code.
* explicitly trigger the SetDefaults script events which depended on side effects from the config implementation.
* removed the nonsensical file system switch. All this does is create instabilities because it is non-obvious from where data is loaded. If a resource is mounted, it should be checked for content no matter what. While this may affect the stray weird mod out there it is a necessity if we want to allow transparent project repackaging.
2019-11-01 09:30:28 +01:00
Christoph Oelckers
39bfd64fe9 - a bit more cleanup in app_init. 2019-11-01 08:24:10 +01:00
Christoph Oelckers
67acad3984 - startup cleanup. 2019-11-01 00:32:56 +01:00
Christoph Oelckers
57f879fa8b - moved the startup dialog out of the game front ends, now that there is a global cross-game list of playable configurations. 2019-10-31 23:25:21 +01:00
Christoph Oelckers
2a7beeff69 - cleaned out some chunks of unused or useless code, most importantly the Build cache which was only used by the sound code for permanently loading the data into memory. 2019-10-30 21:51:04 +01:00
Christoph Oelckers
535c68fac1 - fixed Shadow Warrior startup.
It runs to the menu, unfortunately key input is broken.
2019-10-30 20:13:43 +01:00
Christoph Oelckers
266dc9e04e - added SW search paths to new code and cleaned up the init code. 2019-10-30 19:26:55 +01:00
hendricks266
d410694e40 SW: Fix 3D Realms and ANM palettes
git-svn-id: https://svn.eduke32.com/eduke32@8272 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/astub.cpp
#	source/sw/src/anim.cpp
#	source/sw/src/colormap.cpp
#	source/sw/src/common_game.h
#	source/sw/src/game.cpp
2019-10-30 18:50:23 +01:00
hendricks266
d679603cab SW: Fix MIDI music
git-svn-id: https://svn.eduke32.com/eduke32@8271 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/sw/src/config.cpp
#	source/sw/src/config.h
#	source/sw/src/game.cpp
#	source/sw/src/menus.cpp
#	source/sw/src/sounds.cpp
2019-10-30 18:45:53 +01:00
hendricks266
dcba445f4e SW: Fix file loading and init sequence
git-svn-id: https://svn.eduke32.com/eduke32@8269 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/common.cpp
#	source/duke3d/src/game.cpp
#	source/sw/src/common.cpp
#	source/sw/src/common_game.h
#	source/sw/src/game.cpp
#	source/sw/src/jnstub.cpp
2019-10-30 18:38:43 +01:00
Christoph Oelckers
ac87665972 - use std::filesystem for directory traversal.
So far implemented for scanning search paths
2019-10-29 19:53:46 +01:00
Christoph Oelckers
762f174743 - moved the command line parser out of the game frontends.
Some part are not done yet, and the file system data is currently ignored - there's no way to properly set this up with the file system code Build came with.
2019-10-28 22:19:50 +01:00
Christoph Oelckers
a72863112b - fix compilation 2019-10-28 17:50:08 +01:00
Christoph Oelckers
901b86577e - more cleanup
Moving init code and key binding getter to backend
2019-10-28 07:05:32 +01:00
Christoph Oelckers
4f4fc1a8d4 - Cleanup 2019-10-28 07:02:42 +01:00
Christoph Oelckers
c589a6ab82 - replaced KEY_PRESSED globally
This was just a redundant name getting in the way.
2019-10-28 07:01:01 +01:00
Christoph Oelckers
065721c62b - simplified the button state maintenance
This removes all unused parts of the implementation and moves the rest to the InputState class for easier replacement later. All MACT is doing now here is to call the UpdateStatus function, the internal workings are no longer relevant.
2019-10-28 07:00:31 +01:00
Christoph Oelckers
f8203ac766 - fixed the compile errors and consolidated the key binding CCMDs. 2019-10-28 06:47:49 +01:00
Christoph Oelckers
e7f75cbf4d WIP 2019-10-28 01:12:31 +01:00
Christoph Oelckers
19b9e34726 - removed empty #includes. 2019-10-27 22:17:21 +01:00
Christoph Oelckers
d962a7810d - deleted unused headers 2019-10-27 22:15:21 +01:00
Christoph Oelckers
cee194fd05 - removed the MACT scriplib after completing the config transition. 2019-10-27 17:31:23 +01:00
Christoph Oelckers
bfea07570a - mapped the remaining Shadow Warrior options to the CVARs. 2019-10-27 16:53:00 +01:00
Christoph Oelckers
2e7ba30068 - a bit more config cleanup. 2019-10-27 14:09:56 +01:00
Christoph Oelckers
c0d5ca8ab8 - Config work almost done.
The only thing still referencing the old config file is Shadow Warrior's config read function.
2019-10-27 13:40:24 +01:00
Christoph Oelckers
cdc5044f07 - converted noautoload and forcesetup flags to CVARs. 2019-10-27 09:38:55 +01:00
Christoph Oelckers
4b5ec2aabb - transitioned the combat macros to the new config and made them independent for all games, so that everything can use the original text. (But considering that they are a multiplayer feature I'm not sure how much that is worth.)
- sort the config output alphabetically.
- do not use [=] as key names for the bindings.
2019-10-27 08:14:58 +01:00
Christoph Oelckers
249f6e9d62 - consolidated the joystick and mouse setup code. 2019-10-26 23:45:55 +02:00
Christoph Oelckers
b2d7179dbe - consolidated the 4 sets of mouse and joystick configuration variables. 2019-10-26 21:50:49 +02:00
Christoph Oelckers
db1a9a9363 - the config finally get saved.
Still with a few errors, though.
2019-10-26 20:47:37 +02:00
Christoph Oelckers
cd47582632 - disabled the settings.cfg console script so that the newly added config code can take over its duties.
- write the console log to the folder returned by M_GetDocumentsPath and not to the root game directory.
- removed G_ExtPreInit because it has become redundant. The search path setup will have to be redone anyway.
2019-10-26 13:41:42 +02:00
Christoph Oelckers
1e0d49f947 - game starts again. 2019-10-26 13:16:32 +02:00
Christoph Oelckers
0d878a8604 - some needed cleanup on the control code before testing can start. 2019-10-26 10:16:39 +02:00
Christoph Oelckers
cfaafcede7 - everything compiles again (not tested yet.) 2019-10-26 00:32:49 +02:00
Christoph Oelckers
8730ce552b - make things compile again.
Let's hope it still works...
2019-10-24 20:28:46 +02:00
hendricks266
4ca1af72c3 SW: Load swtimbr.tmb
git-svn-id: https://svn.eduke32.com/eduke32@8262 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/sw/src/sounds.cpp
2019-10-24 19:46:29 +02:00
hendricks266
c6c7c91d7c Add MIDI_GetDevice and use it so that the default driver value doesn't show as "Custom" in the menu
git-svn-id: https://svn.eduke32.com/eduke32@8261 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-24 19:44:22 +02:00
hendricks266
7650cbe592 Fix calls to FX_ErrorString and MUSIC_ErrorString
git-svn-id: https://svn.eduke32.com/eduke32@8260 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/sounds.cpp
#	source/duke3d/src/sounds_mapster32.cpp
#	source/sw/src/sounds.cpp
2019-10-24 19:44:21 +02:00
hendricks266
553dfb3544 Prefer early return on error in sound and MIDI init functions
git-svn-id: https://svn.eduke32.com/eduke32@8259 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/sounds.cpp
#	source/duke3d/src/sounds_mapster32.cpp
#	source/sw/src/sounds.cpp
2019-10-24 19:43:51 +02:00
hendricks266
14996d930b Prefer "MIDI driver" to "Music device"
git-svn-id: https://svn.eduke32.com/eduke32@8258 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/duke3d/src/sounds_mapster32.cpp
#	source/sw/src/sounds.cpp
2019-10-24 19:42:54 +02:00
hendricks266
55744eff09 Remove second EMIDICard / ForceEMIDI parameter from MUSIC_Init which only served to clobber the value entered using the cvar
git-svn-id: https://svn.eduke32.com/eduke32@8257 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-24 19:41:50 +02:00
hendricks266
89cd122d14 Initialize sound before music
git-svn-id: https://svn.eduke32.com/eduke32@8255 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-24 19:06:04 +02:00
Christoph Oelckers
966751b7e8 - added GZDoom's font code and some dependencies. 2019-10-24 01:20:58 +02:00
Christoph Oelckers
20df360778 - converted the Polymost CVARs. 2019-10-23 21:11:37 +02:00
Christoph Oelckers
21d90fd08b - fixed compilation. 2019-10-23 18:36:48 +02:00
Christoph Oelckers
02fff2df06 - refactored wchoice and sensitivity CVARS
This is all that's needed for now, the remaining ones can wait.
2019-10-23 17:21:14 +02:00
Christoph Oelckers
43413e4dff - r_useprecache 2019-10-23 14:39:33 +02:00
Christoph Oelckers
e5aa6c5df0 - refactored the HUD scaling into something manageable.
Blood was fine, albeit with an inverted scale, but the EDuke implementation was something very special - and not in a good way, using 4 CVARs to store the scaling state instead of one.
2019-10-22 23:31:46 +02:00
Christoph Oelckers
a829f1cb52 - fixed all compile errors. 2019-10-22 17:47:24 +02:00
Christoph Oelckers
8431266d27 - refactoring of music CVARs
This is a lot of changes in a lot of code because nothing here was abstracted into the sound system. :(

Hopefully most of the affected code here can be tossed out soon, it's not pretty.
2019-10-22 02:01:05 +02:00
Christoph Oelckers
dbe3cadd0f - refactored autorunning CVARs 2019-10-22 00:52:07 +02:00
Christoph Oelckers
30e9eed1b3 - the next CVAR, cl_autoaim 2019-10-22 00:05:21 +02:00
Christoph Oelckers
7cacb7203f - refactored all file access in SW frontend to use the FileReader variant and added a few utilities to avoid opening handles.
Because use of the handle API needs to be eliminated before a functioning resource management can be plugged in here.
2019-10-20 20:08:17 +02:00
Christoph Oelckers
1b96861615 - consolidated RTS code, because there were 3 copies.
Also completely rewritten to get rid of the cache dependency.
2019-10-20 19:13:44 +02:00
Christoph Oelckers
bf8a2ee573 - started refactoring of file handling, starting with some nasty bits in Shadow Warrior. 2019-10-20 17:09:58 +02:00
Christoph Oelckers
2316957026 - made things compile again after updating enet. Also removed the redundant dumb and game_music_emu libraries which just got imported by accident when using other things from GZDoom.
Note: enet uses 'malloc' and 'free' as field names in a struct - this does not work with any compiler using some sort of heap instrumentation that #defines these names!
This had to be changed to allow MSVC debug builds to compile again.
2019-10-20 09:16:01 +02:00
Christoph Oelckers
cd7bbe35a8 - removed all legacy fog code. 2019-10-19 15:52:46 +02:00
Christoph Oelckers
ed415c1fa0 - silenced a few warnings. 2019-10-18 17:55:22 +02:00
Christoph Oelckers
6d7458fe42 - fixed bad endif() placing in CMake projects 2019-10-17 08:44:01 +02:00
Christoph Oelckers
0aa5db7969 - project rework to shorten compile times.
* subprojects fpr game frontends added and unsigned char option put into global flags.
2019-10-16 23:09:02 +02:00
Christoph Oelckers
9a52e8039c - rerouted tileCreate and tileSetExternal calls. 2019-10-15 23:18:52 +02:00
Christoph Oelckers
c3bc690e98 - more updating and bug in UpdatePicSize fixed. 2019-10-15 20:02:37 +02:00
Christoph Oelckers
0e165e40a3 - first batch of adjustments to the new tile management.
- consolidated Polymost precaching and removed precaching for static tiles because they now are always loaded.
- removed cache configurability. On modern systems this is relatively pointless - allocating 50 or 100 MB is a non-issue - and the cache is due for replacement anyway.
2019-10-15 00:54:14 +02:00
Christoph Oelckers
a6ba81939a - reworked texture management, not yet active. 2019-10-12 22:49:46 +02:00
Christoph Oelckers
fbc22e0125 - sanitized walock.
Sorry, but having a globally writable pointer to every texture is just insane and makes any functional management impossible.
This is merely a preparation for adding a real texture manager. That cannot be done if any code can write over the data at will. For that, it now has to make the texture writable first or create a writable empty texture.
2019-10-11 23:31:59 +02:00
Christoph Oelckers
3621aae3f0 - rerouted all write accesses to tilesiz and picsiz through a function interface.
These will have to do some texture management bookkeeping so directly changing the values is problematic.
This required changing the parameter interface in polymost.cpp because a few places hacked around with the global state to pass parameters to subfunctions.
2019-10-11 21:04:31 +02:00
Christoph Oelckers
1407c18f8b - cleaned out some remains of the non-indexed render path.
All of this will be redone in the backend.
2019-10-10 19:40:33 +02:00
Christoph Oelckers
eca099681a - hooked up the Shadow Warrior frontend.
It doesn't really work but this way it always gets compiled and linked so that it receives the changes to the backend code.
2019-10-09 20:14:04 +02:00
Christoph Oelckers
0f4abfa4f4 - SW compiles.
This required taking lots of function prototypes out of functions because they won't get a namespace in there.
2019-10-09 19:58:09 +02:00
Christoph Oelckers
70004665fd - added Shadow Warrior files to CMake project - not compiled yet. 2019-10-09 18:09:05 +02:00
Christoph Oelckers
527d99008b - fixed the setup.
Renamed all elements still referring to zdoom.
removed the frontend specific resource data.
fixed startup dialog to accept ANSI date despite building as Unicode. This needed a bit of hackery because the macros in windowsx.h are not character set sensitive.
2019-09-23 01:28:18 +02:00
Christoph Oelckers
92fa2cc030 - removed Mapster launcher images. 2019-09-21 20:28:55 +02:00
nukeykt
996dfde6d0 Fix compile errors, backport input code for RR
# Conflicts:
#	platform/Windows/voidsw.vcxproj
#	source/blood/src/controls.cpp
#	source/blood/src/m32common.cpp
#	source/rr/src/actors.cpp
#	source/rr/src/anim.cpp
#	source/rr/src/demo.cpp
#	source/rr/src/game.cpp
#	source/rr/src/gameexec.cpp
#	source/rr/src/global.h
#	source/rr/src/menus.cpp
#	source/rr/src/menus.h
#	source/rr/src/net.cpp
#	source/rr/src/player.cpp
#	source/rr/src/premap.cpp
#	source/rr/src/savegame.cpp
#	source/rr/src/sbar.cpp
#	source/rr/src/screens.cpp
#	source/rr/src/sector.cpp
2019-09-21 11:39:19 +02:00
Christoph Oelckers
1b20e5d4da - 3 more files moved out of 'build' folder.
# Conflicts:
#	platform/Windows/build.vcxproj
2019-09-20 22:34:34 +02:00
pogokeen
222e593437 Change some clocks to support sub-tick precision using a new class, ClockTicks.
Using that higher precision, interpolate at a higher granularity.
Further, truncate the target interpolation time to vertical blank boundaries to avoid producing temporal artifacts.
Fix issues caused by interpolation calculations being handled differently in multiple places (and fix cases where smoothratios were being thrown away only to be redone without checking all proper conditions).
Ensure ClockTicks changes do not break other targets (EKenBuild, VoidSW), but note any interpolation there is not similarly updated.

git-svn-id: https://svn.eduke32.com/eduke32@8050 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
#	source/build/src/sdlayer.cpp
2019-09-20 21:09:14 +02:00
terminx
28c778c8a3 Automatic source file dependency generation for GNUmakefile
This automatically saves the dependencies used for a given object file during the first compilation, then uses the generated data for each subsequent compile to determine if the object needs to be rebuilt. Why? Because if I see one more warning about the C++ One Definition Rule, I'm going to fucking snap.

git-svn-id: https://svn.eduke32.com/eduke32@7839 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:50 +02:00
pogokeen
8cbdf3a0c4 Use stencil buffer in Polymost to restrict mirrors to only render within the region of the screen occupied by the mirror wall.
Additionally, raise minimum number of stencil buffer bits to accomodate future use of the stencil buffer.

git-svn-id: https://svn.eduke32.com/eduke32@7736 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/build.h
#	source/build/src/polymer.cpp
#	source/build/src/polymost.cpp
#	source/kenbuild/src/game.cpp
2019-09-20 14:04:29 +02:00
Christoph Oelckers
53335f20ec - Blood merge
# Conflicts:
#	source/build/include/polymost.h
#	source/build/src/build.cpp
#	source/build/src/engine.cpp
#	source/build/src/polymost.cpp
#	source/build/src/voxmodel.cpp
2019-09-19 22:06:49 +02:00
hendricks266
30d4f29b42 SW, KenBuild: Populate the default resolution values from the current desktop settings
git-svn-id: https://svn.eduke32.com/eduke32@7563 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:23:37 +02:00
hendricks266
fdb5fabc86 SW: Fix -Waggressive-loop-optimizations
git-svn-id: https://svn.eduke32.com/eduke32@7562 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:23:36 +02:00
hendricks266
7ea2d2024b SW: Fix -Wrestrict
git-svn-id: https://svn.eduke32.com/eduke32@7561 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:23:35 +02:00
hendricks266
5aec94bd60 SW: Fix more -Wformat-overflow
git-svn-id: https://svn.eduke32.com/eduke32@7560 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:23:34 +02:00
hendricks266
0b14d8cdb5 SW: Fix -Wabsolute-value
git-svn-id: https://svn.eduke32.com/eduke32@7556 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:23:28 +02:00
hendricks266
392917d61f SW: Fix -Wpointer-bool-conversion
git-svn-id: https://svn.eduke32.com/eduke32@7555 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:23:27 +02:00
hendricks266
97e9f1ee75 SW: Fix -Warray-bounds
git-svn-id: https://svn.eduke32.com/eduke32@7554 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:23:26 +02:00
hendricks266
6c62f4e52d SW: Fix -Wformat-security
git-svn-id: https://svn.eduke32.com/eduke32@7553 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:23:25 +02:00
hendricks266
b600d3ff56 SW: Take a crack at the editor's ExtPostStartupWindow
git-svn-id: https://svn.eduke32.com/eduke32@7539 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:06:22 +02:00
hendricks266
73e66e164a SW: Copy editor function stubs from KenBuild
git-svn-id: https://svn.eduke32.com/eduke32@7538 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:06:20 +02:00
hendricks266
36b75561cc Update some program names
git-svn-id: https://svn.eduke32.com/eduke32@7537 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:06:18 +02:00
hendricks266
07010b398a SW: Fix -Wlogical-op
git-svn-id: https://svn.eduke32.com/eduke32@7536 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:06:16 +02:00
hendricks266
54b7b27eb0 SW: Fix -Wsizeof-pointer-memaccess
git-svn-id: https://svn.eduke32.com/eduke32@7535 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:06:16 +02:00
hendricks266
d97f1ed79e SW: Fix -Wformat-overflow and -Wstringop-overflow
git-svn-id: https://svn.eduke32.com/eduke32@7534 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:06:14 +02:00
hendricks266
e4975c522b SW: Fix -Wimplicit-fallthrough
git-svn-id: https://svn.eduke32.com/eduke32@7533 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:06:13 +02:00
hendricks266
dc049cdf41 SW: Fix -Wmisleading-indentation
git-svn-id: https://svn.eduke32.com/eduke32@7532 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:06:11 +02:00
hendricks266
daa2e46b13 SW: Fix -Wint-to-pointer-cast
git-svn-id: https://svn.eduke32.com/eduke32@7531 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:06:09 +02:00
hendricks266
d14039e821 SW: Fix remaining -Wcast-qual warnings
git-svn-id: https://svn.eduke32.com/eduke32@7530 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:06:07 +02:00
hendricks266
068a254c52 SW: Fix hilarious -Wlogical-not-parentheses warning that accidentally worked as intended owing to numerical values of the MIRRORSTATE enum
git-svn-id: https://svn.eduke32.com/eduke32@7529 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:06:05 +02:00
hendricks266
963624735f SW: Fix -Wcast-qual in grpscan
git-svn-id: https://svn.eduke32.com/eduke32@7528 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:06:03 +02:00
hendricks266
c7a209f690 SW: Fix -Wnarrowing warning
git-svn-id: https://svn.eduke32.com/eduke32@7527 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:06:01 +02:00
hendricks266
7f3052c662 SW: More TrackerCast
git-svn-id: https://svn.eduke32.com/eduke32@7525 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:58 +02:00
hendricks266
bc96cd998d SW: Fix -Wnarrowing errors in grpscan
git-svn-id: https://svn.eduke32.com/eduke32@7524 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:56 +02:00
hendricks266
3d3348c2b8 SW: Fix -fpermissive function pointer type errors
git-svn-id: https://svn.eduke32.com/eduke32@7523 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:55 +02:00
hendricks266
b6c8147842 SW: #ifdef'd out supportdir and user_profiles_disabled stuff for now.
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7522 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:54 +02:00
hendricks266
6689bbd913 SW: Hacks to input code just to get it to compile.
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7521 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:53 +02:00
hendricks266
c36897e466 SW: Added dummy M32RunScript/G_Polymer_UnInit/app_crashhandler/osdcmd_restartvid calls.
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7520 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:51 +02:00
hendricks266
c0ad055f6d SW: Made a slight stylistic change to GetSyncInfoFromPacket declaration to match actual function.
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7519 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:49 +02:00
hendricks266
2ce5f1936f SW: Added 1.f to floating point volume parameter of FX_Play(3D) calls, will need a proper implementation at some point.
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7518 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:49 +02:00
hendricks266
d3c8c4579f SW: Put a temporary shim in to get the length of an anm file to pass to ANIM_LoadAnim.
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7516 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:46 +02:00
hendricks266
ee6326c2a0 SW: Get the log file working and avoid crashing due to not doing so
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7514 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:42 +02:00
hendricks266
2448bbe600 SW: Get grpscan.cpp compiling by fixing declaration and initialization of grpfiles/foundgrps
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7513 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:36 +02:00
hendricks266
a7facc0e35 SW: Fix overflow in password member of "GAME_SET gs" struct.
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7512 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:32 +02:00
hendricks266
d04df28a93 SW: Add includes of config.h where needed
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7511 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:30 +02:00
hendricks266
7991de2793 SW: Replace old crc32 functions with Bcrc32, mirroring how it's used in Duke's grpscan.cpp.
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7510 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:27 +02:00
hendricks266
b242259be1 SW: Update calls to functions that have been renamed.
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7509 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:25 +02:00
hendricks266
864ab5cac5 SW: Comment bad free calls to pointers that are never heap allocated.
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7508 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:21 +02:00
hendricks266
a60905524c SW: Replace void* with decltype(o) in TRAVERSE define.
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7507 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:18 +02:00
hendricks266
78df29ce00 SW: Make the function GetSyncInfoFromPacket in sync.cpp match the declaration in net.cpp. Fixed signed-ness of lumplockbyte to stop unresolved externals.
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7506 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:17 +02:00
hendricks266
8ab6e700f1 SW: Remove very bad externs.
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7505 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:14 +02:00
hendricks266
38e55f1a8b SW: Deal with how C++ does not implicitly convert enums to or from ints
Typedef Voc3D_Flags and Voc_Flags to int, and turn typedef'd enums into normal enums.

Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7504 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:13 +02:00
hendricks266
f3a223914f SW: Add casts to void pointers where needed
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7503 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:12 +02:00
hendricks266
c456c414da SW: Fix questionable function pointer typecasts
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7502 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:09 +02:00
hendricks266
d842dc761d SW: Fix types of min/max statements
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7501 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:08 +02:00
hendricks266
28ec01ef75 SW: Add TrackerCast where needed for printf.
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7500 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:06 +02:00
hendricks266
61446c0995 SW: Fix const correctness issues.
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7499 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:04 +02:00
hendricks266
ac8dabb0fb Rename net.* to network.*
git-svn-id: https://svn.eduke32.com/eduke32@7443 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 12:20:45 +02:00
hendricks266
7414f29348 Add buildvfs, abstraction layer for file I/O.
Currently it passes calls through to the system libraries as before.

Also adds an incomplete implementation on PhysFS.

git-svn-id: https://svn.eduke32.com/eduke32@7359 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-01 08:51:50 +00:00
hendricks266
142b97b9fb Fix variable capitalization in Dependencies.mak files
git-svn-id: https://svn.eduke32.com/eduke32@6946 1a8010ca-5511-0410-912e-c29ae57300e0
2018-07-23 02:55:42 +00:00
hendricks266
03f2cdd9b3 Fix MIDI playback on non-Windows platforms
git-svn-id: https://svn.eduke32.com/eduke32@6889 1a8010ca-5511-0410-912e-c29ae57300e0
2018-05-19 14:14:18 +00:00
hendricks266
84183c439b SW: Fix NORM_(SPRITE|WALL|SECTOR) macros to use MAX$1 instead of ARRAY_SIZE, which would fail due to the structs not being statically allocated.
Patch prepared by Striker.

git-svn-id: https://svn.eduke32.com/eduke32@6825 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-11 03:34:03 +00:00
hendricks266
3ae7cb1de5 Replace bespoke CON/def module and clipmap filename array reallocing with a new class, GrowArray.
git-svn-id: https://svn.eduke32.com/eduke32@6673 1a8010ca-5511-0410-912e-c29ae57300e0
2018-02-17 22:30:39 +00:00
pogokeen
a2cf961591 Moved BUILD engine defined CSTAT enums into the BUILD engine side of the code base.
git-svn-id: https://svn.eduke32.com/eduke32@6657 1a8010ca-5511-0410-912e-c29ae57300e0
2018-02-16 06:38:31 +00:00
hendricks266
092631ca0d KenBuild, SW: Fix screencapture signature.
git-svn-id: https://svn.eduke32.com/eduke32@6416 1a8010ca-5511-0410-912e-c29ae57300e0
2017-08-06 13:44:32 +00:00
hendricks266
965e40bda7 mulscale(a, b, ##) --> mulscale##(a, b)
git-svn-id: https://svn.eduke32.com/eduke32@6254 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-24 09:20:21 +00:00
hendricks266
b3d597200b Common.mak: Massive reorganization/cleanup.
Any functional changes are incidental and minor, other than the outright removals.

git-svn-id: https://svn.eduke32.com/eduke32@6147 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-09 06:38:42 +00:00
hendricks266
aa04307ad1 Route all inclusion of libc headers and most of POSIX headers through compat.h.
git-svn-id: https://svn.eduke32.com/eduke32@6074 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-25 08:15:36 +00:00
hendricks266
26e740c0b7 Eliminate many cases of duplication of compat.h's functionality.
git-svn-id: https://svn.eduke32.com/eduke32@6067 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-19 22:15:56 +00:00
hendricks266
d4ee6d00c8 Route inclusion of all Windows headers through a new header, windows_inc.h.
This allows us to make certain guarantees about limits on the extent of namespace pollution these headers introduce.

git-svn-id: https://svn.eduke32.com/eduke32@6065 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-19 22:15:44 +00:00
hendricks266
417b047cf3 Bring the previous commit into effect.
git-svn-id: https://svn.eduke32.com/eduke32@6056 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-01 10:20:54 +00:00
hendricks266
1cc9d13ccf The great repository rearrangement of 2017.
Files moved but not modified. Changes to follow in a subsequent commit.

You down with CPP?

git-svn-id: https://svn.eduke32.com/eduke32@6055 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-01 10:01:11 +00:00