Christoph Oelckers
0659bda6b6
- SW: clear old user content before allocating a new one.
...
If old data gets in here it may break the game.
https://github.com/coelckers/Raze/issues/349
2021-05-04 11:11:38 +02:00
Christoph Oelckers
7d77b2315f
- merged the few remaining contents of mmulti.h into d_net.h
2021-05-03 19:01:00 +02:00
Christoph Oelckers
56fcf904b5
- Backend update from GZDoom.
2021-05-03 14:48:55 +02:00
Christoph Oelckers
8003ab6fa3
Merge branch 'scriptable_cutscenes' into newrenderer
2021-05-02 22:37:46 +02:00
Christoph Oelckers
dfd47ea33a
- migrated SW to RMAPINFO as well.
...
Also removed the 'definecutscene' code from the .def parser as this was never meant to be more than a temporary solution.
2021-05-02 17:35:25 +02:00
Christoph Oelckers
1798380f23
- adapted map transition in Duke/RR.
...
There's still some issues which will be taken care of by adding map flags.
2021-05-02 10:35:43 +02:00
Christoph Oelckers
93bfc35ad6
- use the volumes to find the starting maps for the menu and the clusters for the cutscenes.
2021-05-02 01:01:30 +02:00
Christoph Oelckers
825963661b
- migrated volumes to the new storage.
2021-05-02 00:35:56 +02:00
Christoph Oelckers
727244d52d
- changed 3 places to call the proper map progression function.
...
These ignored the explicit settings in the map definition.
2021-05-01 23:10:04 +02:00
Christoph Oelckers
5959543380
- hooked up SW's intermission handling.
2021-04-30 20:08:36 +02:00
Christoph Oelckers
aa148d602c
- scriptified SW's 2D screens.
...
Compiles but not tested yet.
2021-04-30 20:08:35 +02:00
Christoph Oelckers
0dc6980e5c
- made episode intro cutscenes a game independent feature.
...
So far only defined for Duke E4 but all the logic is outside the game code now and can be universally handled.
2021-04-30 20:08:33 +02:00
Christoph Oelckers
1166b00af2
- switched intro movie playing over to the new system
...
Not tested yet.
2021-04-30 20:08:32 +02:00
Christoph Oelckers
e05f900315
- added the data structures to hold the cutscene data.
2021-04-30 20:08:31 +02:00
Christoph Oelckers
4ff2010bd1
- moved the entire screen job management to the script side.
...
This isn't hooked up yet and lots of code is commented out, the games won't start with this commit.
2021-04-30 20:08:30 +02:00
Christoph Oelckers
4a7430c8e4
- got rid of JobDesc.
2021-04-30 20:08:23 +02:00
Christoph Oelckers
71e5f9b70f
- changed screen job list to work without per-job completion callbacks.
...
They made things more complex than necessary and do not translate well to scripting.
2021-04-30 20:08:22 +02:00
Christoph Oelckers
fb5e2fe0c0
- use flags instead of bools.
2021-04-30 20:08:22 +02:00
Christoph Oelckers
ad28630df6
- offloaded map patches to data files.
...
This is a lot easier to manage than having them in the code.
For now it piggybacks on the map hack feature, later this should use the same scripted approach as GZDoom.
2021-04-24 23:07:35 +02:00
Christoph Oelckers
14971f9569
Merge branch 'master' into newrenderer
2021-04-22 00:10:37 +02:00
Christoph Oelckers
729928c576
- SW: fixed bad serialization of sector object pointers
2021-04-22 00:03:18 +02:00
Christoph Oelckers
a4f5a32680
- fixed issue with restoring SO sprite array.
...
This array has -1 for empty entries so it cannot be saved partially.
2021-04-22 00:03:17 +02:00
Christoph Oelckers
c3e5cf322e
- SW: cleaned up the depth variable handling in SECT_USER which was endian dependent, including the savegame handler
2021-04-22 00:03:17 +02:00
Christoph Oelckers
c17ec5fa45
- cleanup of savegame framework
2021-04-22 00:03:17 +02:00
Christoph Oelckers
b85da221d7
- SW: save tracks as JSON.
2021-04-22 00:03:17 +02:00
Christoph Oelckers
bb8309831c
- SW: eliminated the int pointer in ANIM.
...
# Conflicts:
# source/games/sw/src/save.cpp
2021-04-22 00:03:16 +02:00
Christoph Oelckers
c49c5fcf1d
- SW: serialize SO interpolations as JSON.
2021-04-22 00:03:16 +02:00
Christoph Oelckers
2d571586bd
- save sector objects as JSON
2021-04-22 00:03:16 +02:00
Christoph Oelckers
e9b1342ffd
- SW: save globals as JSON.
2021-04-22 00:03:16 +02:00
Christoph Oelckers
66e5b9ada7
- SW: save SectUser as JSON, also store in a managed array.
2021-04-22 00:03:16 +02:00
Christoph Oelckers
06b03f7301
- SW: save the player and related data as JSON.
2021-04-22 00:03:15 +02:00
Christoph Oelckers
9bae2295cc
- better USER clearing.
2021-04-22 00:03:15 +02:00
Christoph Oelckers
8fee2b3ed7
- save SW's User array as JSON.
2021-04-22 00:03:15 +02:00
Christoph Oelckers
32955621f8
- removed all parental lock garbage from SW.
...
Better get rid of it as it's a major complication as implemented.
2021-04-22 00:03:15 +02:00
Christoph Oelckers
bbb53bc717
- refactored the main User array into something that's automatically managed.
2021-04-22 00:03:14 +02:00
Christoph Oelckers
cd45a1f035
- made more parts of USER serialization friendly.
2021-04-22 00:03:14 +02:00
Christoph Oelckers
dcb393bc44
- started reorganizing SW's memory management.
...
Need to get rid of all those unmanaged allocations and present game data in an easily serializable form.
This adds a managed TPointer class that replicates the useful parts of std::unique_pointer but steers clear of its properties that often render it useless.
2021-04-22 00:03:14 +02:00
Mitchell Richters
93edeac791
- Clean-up of input functions.
...
* Remove unused `getincanglef()`.
* Remove unused `getincangleq16()`.
* In `PlayerHorizon` struct, clamp value when setting target in `__settarget()`, not each public `settarget()` overload.
* Rename `PlayerAngle` method `applylook()` to `applyinput()`.
* Rename `PlayerHorizon` method `sethorizon()` to `applyinput()`.
* In `PlayerHorizon::applylook()`, slightly clean return to centre code so it doesn't do math if already at 0.
* In `PlayerAngle::applylook()`, slightly clean rotscrnang/look_ang code so it doesn't do math if already at 0 and reposition where mouse input is applied so that if input is applied, the player never enters a spin.
* In `Duke3d::player_struct::apply_seasick()`, use `buildfang()` method instead of scaling float to BAM within function.
2021-04-21 20:41:04 +10:00
Christoph Oelckers
f51872db25
Merge branch 'master' into newrenderer
2021-04-20 20:46:06 +02:00
Christoph Oelckers
9e40e49c2c
- generalized the special key handling for skipping cutscenes.
2021-04-20 15:01:26 +02:00
Mitchell Richters
0c5729b0f6
- SW: Ensure all sprite angles are backed up in the ticker.
...
* Fixes #326 .
2021-04-20 21:33:42 +10:00
Mitchell Richters
d34070b8ae
- gameinput.h: Remove precise bool from horizsumfrac()
, look_anghalf()
and looking_arc()
added in a4895cb270
.
...
* It looks terrible to have low precision math versions of look_anghalf and looking_arc since we always interpolate `look_ang` now, so lets just not.
2021-04-20 21:12:17 +10:00
Mitchell Richters
de06030ea0
- gameinput.cpp: Make sethorizon()
, applylook()
and calcviewpitch()
class functions of PlayerHorizon
and PlayerAngle
where appropriate.
2021-04-19 20:50:10 +10:00
Christoph Oelckers
82194bbf6b
Merge branch 'master' into newrenderer
...
# Conflicts:
# source/games/exhumed/src/2d.cpp
2021-04-17 13:22:30 +02:00
Christoph Oelckers
2b9a527aba
- added a 'Start' method to DScreenJob.
...
Since the menu pauses the ticker this is needed to perform initial setup before the first frame.
2021-04-16 23:29:53 +02:00
Christoph Oelckers
4950b556c9
- handled SW's screens.
2021-04-16 18:43:59 +02:00
Christoph Oelckers
dc8b72b2ce
Merge branch 'master' into newrenderer2
...
# Conflicts:
# source/games/duke/src/actors.cpp
# source/games/duke/src/hudweapon_d.cpp
# source/games/duke/src/hudweapon_r.cpp
# source/games/duke/src/render.cpp
2021-04-15 19:34:03 +02:00
Christoph Oelckers
61a6321cd6
- Exhumed: Change map command to start the level directly without going through the scrolling map.
2021-04-15 18:55:54 +02:00
Mitchell Richters
a4895cb270
- All Games: Allow for HUD interpolation to be disabled.
...
* Requested by users, really don't know why...
* Interpolation values are guarded by the CVAR.
* For Blood, integer truncation is employed just like original game.
* For all games where more precise sine/cosine math has been utilised, no changes have been made.
2021-04-15 13:35:53 +10:00
Christoph Oelckers
f83e678ea0
- use the smooth ratio from the game logic in the renderer instead of calling I_GetTimeFrac again.
...
Unlike the higher level code this does not check for game over conditions.
2021-04-14 21:17:32 +02:00