Commit graph

879 commits

Author SHA1 Message Date
Christoph Oelckers
ec5762f024 - do not use index 0 of Blood's X arrays.
This can be written to through uninitialized data and break things quite badly.
2020-10-14 13:51:59 +02:00
Christoph Oelckers
bca29ed402 - no bit fields, please!
The memory savings are not worth the negative side effects.
2020-10-13 23:56:30 +02:00
Christoph Oelckers
1637157f46 - removed some unused variables. 2020-10-13 21:45:21 +02:00
Christoph Oelckers
53481fb9a3 - Blood: simplified management of XSectors and XWalls.
This does not need a free list - they get statically allocated per level, so a simple counter is enough.
2020-10-13 20:36:57 +02:00
Christoph Oelckers
2b1284e8fa - reorganized Blood's level structures to not use bitfields.
Only the single bits are still a bitfield,  combined with an int in a union - all other fields are 8, 16 or 32 bit now.
For serialization this is necessary - I have to wonder anyway if the added code to process the bit fields wasn’t even more than the data savings…
2020-10-13 20:23:51 +02:00
Christoph Oelckers
817fa8aba3 - save the entire engine state as JSON.
The sprite lists may still need optimization. Due to different handling between Blood and the core engine they need to be written out completely which is quite wasteful.
2020-10-13 20:18:08 +02:00
Christoph Oelckers
20248d8e08 - fixed a few CCMDs which were blocked in the console. 2020-10-12 19:48:47 +02:00
Mitchell Richters
c08851e4c0 - Blood/Duke/RR/SW: Drop resetinputhelpers(). 2020-10-12 14:42:43 +11:00
Christoph Oelckers
b4a011300a - implemented proper delta serialization for sectors and walls. 2020-10-11 21:11:38 +02:00
Christoph Oelckers
e6bd5989c2 - removed some unused parts from Blood's map loader. 2020-10-11 18:34:58 +02:00
Christoph Oelckers
1757ef2aa6 - split the game input code off gamecontrol.cpp into its own file. 2020-10-11 16:33:43 +02:00
Christoph Oelckers
8e1c71b867 Merge branch 'InputContinuation' 2020-10-11 15:24:51 +02:00
Christoph Oelckers
6acc9db540 - cleanup of the remaining homegrown Blood wrappers.
consoleSysMsg and dassert are gone now, all places now call the system implementation directly.
2020-10-11 14:30:44 +02:00
Christoph Oelckers
1579bec714 - Blood: got rid of ThrowError.
Use I_Error directly.
2020-10-11 14:30:44 +02:00
Christoph Oelckers
2769abcf0f - Blood: Removed most #defines.
only ThrowError and dassert left...
The unused BitWriter class was also removed.
2020-10-11 14:30:43 +02:00
Christoph Oelckers
7b6964a08f - Blood: #define replacement 2020-10-11 14:30:43 +02:00
Christoph Oelckers
c87185a337 - use distinct names for monster AI variables and functions.
I was just toying around with compiling all of these as a single unit and that uniform naming made it impossible.
2020-10-11 14:30:41 +02:00
Christoph Oelckers
2f4c78dd73 - use distinct variable names for QAV and SEQ management. 2020-10-11 14:30:41 +02:00
Christoph Oelckers
3b59bf759c - Blood: there's no need to store the loadsave handlers in local variables that never get used. 2020-10-11 14:30:40 +02:00
Christoph Oelckers
ca288d08f4 - compile all files with script exports in the main project.
This hopefully gets around the failure to find these on on-Windows Builds.
2020-10-11 07:40:11 +02:00
Christoph Oelckers
fe2e96d3a6 Merge branch 'master' into InputContinuation
# Conflicts:
#	source/games/duke/src/duke3d.h
2020-10-10 21:39:27 +02:00
Christoph Oelckers
a39cf290e3 - Blood: fixed: The player's inventory and some other state were reset for each level, not each new game. 2020-10-10 20:20:12 +02:00
Christoph Oelckers
db21d5e946 - took all script exports out of the namespaces.
It looks like GCC cannot deal with this - on MSVC it works fine.
2020-10-10 10:11:22 +02:00
Mitchell Richters
79cd5e4731 - Blood: Fix warptocoords CCMD. 2020-10-09 12:33:47 +11:00
Mitchell Richters
c6e3b4df11 - Blood: Use backend interpolation functions for angle and rotscrnang. 2020-10-09 11:34:42 +11:00
Christoph Oelckers
a10aacea3a - added the QAV drawer page. 2020-10-09 00:50:21 +02:00
Mitchell Richters
9bcdeae6cd - InputPacket: Change q16avel to avel, changing type from fixed_t to float. 2020-10-08 14:47:30 +11:00
Christoph Oelckers
a953404331 - SW's text menus done.
This also copies the Build texture animation info into the texture manager so that the 2D code can access it through existing interfaces.
2020-10-07 23:22:29 +02:00
Mitchell Richters
bd68f67460 - Blood: Cut q16ang/q16look_ang/q16rotscrnang over to PlayerAngle struct. 2020-10-08 07:55:54 +11:00
Christoph Oelckers
6041a3355c - removed the file location reporting for Blood errors because it embeds the full path into the executable, which is not acceptable. 2020-10-07 20:52:25 +02:00
Christoph Oelckers
789eb6d51d - Most of Duke's menus work again. 2020-10-07 20:32:43 +02:00
Christoph Oelckers
2bb38f7d67 - get load and save game menus and related CCMDs working again. 2020-10-07 18:32:57 +02:00
Mitchell Richters
fca846272e - gamecontrol: Initial setup of PlayerAngle struct and deployment within Duke.
* Struct made up of binangle class units.
* Create signed clone of binangle for use with look_ang and rotscrnang.
* Append currently outgoing function names with `2` at the end to avoid conflict.
2020-10-07 23:13:29 +11:00
Mitchell Richters
6a30d6880e - InputPacket: Change q16horz to horz, changing type from fixed_t to float. 2020-10-07 18:22:07 +11:00
Mitchell Richters
d16b4651bb - gamecontrol: Remove old horizon code left behind while cutting over each game. 2020-10-07 18:12:09 +11:00
Mitchell Richters
c03131f8d1 - Blood: Cut q16horiz/q16slopehoriz over to PlayerHorizon struct. 2020-10-07 17:16:58 +11:00
Mitchell Richters
f39939d114 - gamecontrol: Initial setup of PlayerHorizon struct and deployment within Duke.
* Started with the most complicated game first.
* Struct made up of fixedhoriz class units.
* Append currently outgoing function names with `2` at the end to avoid conflict.
2020-10-07 17:12:48 +11:00
Mitchell Richters
09a05f354c - Re-standardise horizon around 0 and not 100.
* Blood had this right. It makes sense that the horizon be based around as it's easier to work with.
* Removed all associated game math to deduct default horizon of 100 when doing weapon zvel etc, meaning actual horizon can just be used.
* Re-did return to center function to work on the already converted pitch. Return speed should be 1:1 with previous code.
2020-10-07 13:28:45 +11:00
Christoph Oelckers
0968a9d97e - renamed the Customizer to 'Delegate' because this works very much like a delegate in Objective-C.
- route menu sound calls through the delegate to better deal with differences between games.
2020-10-07 01:00:43 +02:00
Christoph Oelckers
603c3b50ec - reimplemented Blood's menu items. 2020-10-07 00:50:26 +02:00
Christoph Oelckers
06b00887f5 - added a menu control for Blood's dripping blood. 2020-10-06 23:49:34 +02:00
Christoph Oelckers
b8941a09ad - we need this... 2020-10-06 21:11:37 +02:00
Christoph Oelckers
d22bdf9dc7 - use an alias for the menu bar texture in Blood.
Direct tile access has been disabled for now, hopefully this can be buried deep in the engine for all eternity.
2020-10-06 20:05:51 +02:00
Christoph Oelckers
3dbb8cbb11 - safety commit 2020-10-05 21:47:53 +02:00
Christoph Oelckers
82612a1330 - it compiles again (with lots of code commented out.) 2020-10-04 20:11:02 +02:00
Christoph Oelckers
7661720585 - fixed Blood map loading
Whoever designed that map format with its idiotic encryption should burn in Hell >)
It's a needless complication and open invitation for errors.
To avoid follow up problems it now uses its own local struct for loading in the sprites and the global spritetype no longer depends on any map format and can be changed as the need arises.

Fixes #101
2020-10-03 18:35:47 +02:00
Christoph Oelckers
89d5d18b9e - these parts were missed somehow. 2020-10-02 22:42:54 +02:00
Christoph Oelckers
4e67197838 - added back the hijacked 'detail' member to spritetype.
This changes the Blood map loader to not use the in-game sprite structure for loading a level and moves the qsprite_filler array back into the sprite.
2020-10-02 22:18:08 +02:00
Christoph Oelckers
e8cd336f86 - same procedure for Blood.
This time there were 3 additional texts and the notify display, though, except for multiplayer content that wasn't touched yet.
The result is the same: No need to extend the tiny font with international characters
2020-09-29 22:20:25 +02:00
Christoph Oelckers
47c1c22ff7 - do not stop the music in the cross-game level-end handler.
Some maps require that it continues playing here.
2020-09-27 20:42:55 +02:00