Christoph Oelckers
6475d772ca
- Exhumed: Runlist and Rand.
2020-12-01 12:19:09 +01:00
Christoph Oelckers
c1b478bf83
- Exhumed: Snake and Sequence
...
# Conflicts:
# source/exhumed/src/save.cpp
2020-12-01 12:15:43 +01:00
Christoph Oelckers
e8c56b1f9f
- Exhumed: serialize the status bar as JSON - added a helper class to handle static arrays with an attached free list more easily.
2020-12-01 12:15:43 +01:00
Christoph Oelckers
1b2895bee6
- Exhumed: wrap all serialized game data into another JSON object
...
# Conflicts:
# source/exhumed/src/save.cpp
2020-12-01 12:15:43 +01:00
Mitchell Richters
f9866f4a21
- Blood: Call resetForcedSyncInput()
after sethorizon()
in ProcessInput()
vs. playerProcess()
. Call was too early and causing player not to be able to look while synchronised input is being forced.
2020-12-01 22:02:20 +11:00
Christoph Oelckers
5850c7b284
- let SyncInput return a combination of gamesetinput and cl_syncinput - also serialize gamesetinput.
2020-11-30 23:45:21 +01:00
Christoph Oelckers
ae36ea88c3
- wrap all checks of cl_syncinput in an inline function.
2020-11-30 23:40:16 +01:00
Mitchell Richters
f429871cc6
- Blood: Promote pPlayer->angold
to binangle class.
2020-12-01 07:43:31 +11:00
Mitchell Richters
232dd5e07a
- Blood: Force synchronised input while a revolving door is busy/in-use.
...
* Fixes #205 .
2020-12-01 07:43:25 +11:00
Mitchell Richters
22f7fc93f4
- Exhumed/SW: Move code to trigger synchronised input for edge cases where its needed into gamecontrol.
2020-12-01 07:31:47 +11:00
Christoph Oelckers
0b797b0ccd
- Exhumed: added JSON serialization for view and switch - also renamed the fields in the switch struct.
...
Some refactoring was needed to put a plain C array into a TArray to remove the limits.
2020-11-29 23:32:28 +01:00
Christoph Oelckers
a51b77b95b
- do not statically initialize DukeGameInfo.
...
Since this structure contains several large arrays it will inflate the EXE size with 800kb of empty space.
2020-11-29 22:31:02 +01:00
Christoph Oelckers
9a345bdfa7
- Exhumed: Wasp
2020-11-29 22:29:36 +01:00
Christoph Oelckers
45ee475df7
- Exhumed: Set.
2020-11-29 20:59:42 +01:00
Christoph Oelckers
59e9cfa6ac
- Exhumed: Scorpion
2020-11-29 20:52:16 +01:00
Christoph Oelckers
cf5982b3fc
- Exhumed: Roach.
2020-11-29 20:47:55 +01:00
Christoph Oelckers
4f1999ab24
- Exhumed: Rex
2020-11-29 20:43:35 +01:00
Christoph Oelckers
4543982e54
- Exhumed: Rat
2020-11-29 20:39:27 +01:00
Christoph Oelckers
d92428d217
- Exhumed: The mummy has been handled, too - also renamed some fields to match the other enemies.
2020-11-29 20:34:55 +01:00
Christoph Oelckers
1fa087767e
- Exhumed: ... and for the lava dude.
2020-11-29 20:30:17 +01:00
Christoph Oelckers
bd3efcb6c4
- Exhumed: same procedure for the Lion.
2020-11-29 20:26:54 +01:00
Christoph Oelckers
b669e5405d
- Exhumed: did the same for the fish, changed some disassembly names and removed unused fields from enemy structs.
2020-11-29 20:16:58 +01:00
Christoph Oelckers
e81dbbdc93
- Exhumed: limit removal, cleanup and JSON serialization for the spider.
2020-11-29 19:32:58 +01:00
Christoph Oelckers
b26f6157e9
- Exhumed: Anubis cleanup, JSON serialization and limit removal.
2020-11-29 19:20:38 +01:00
Christoph Oelckers
8a7b3dc667
- Interpolate Duke's wave floor effect.
2020-11-29 17:40:41 +01:00
Christoph Oelckers
3ba0a242bf
- Blood: do not recreate the bucket list when loading a savegame.
...
It has been read from the savegame already, and creating a new one will not produce a correct list because not all data has been loaded yet.
2020-11-29 16:22:29 +01:00
Christoph Oelckers
ed8266df0b
- fixed bad args check in WarpToCoords CCMD.
2020-11-29 16:06:15 +01:00
Christoph Oelckers
1b1449605f
- fixed: Blood did not serialize its mirror data (which is also used for certain portals.)
...
Fixes #203
2020-11-29 16:05:23 +01:00
Christoph Oelckers
cd1b79a703
- use stricter checks when trying to levelwarp.
...
If saving is blocked, so should changing the level.
Fixes #204 .
2020-11-29 15:22:54 +01:00
Christoph Oelckers
92bf1232da
- Duke: documented global variables for eventual scriptification.
...
Most are only needed internally or for very special uses and do not need any scripting consideration.
2020-11-29 15:09:23 +01:00
Christoph Oelckers
553bb2af19
- moved 'frags' into player_struct.
...
Again for reducing the work with the script interface.
2020-11-29 14:10:03 +01:00
Christoph Oelckers
346921211e
- re-enabled the widescreen pinning code.
...
It is still off by default - the idea here is to provide a means for the user to switch it on in case a mod replaces the weapons with non-widescreen-friendly versions.
2020-11-29 14:05:53 +01:00
Christoph Oelckers
7ad0750839
- grouped all of Duke's constant per-session state in a single struct.
...
Mainly done so later the script export can be done more easily.
This also renames a few of the affected variables for clarity.
2020-11-29 13:54:58 +01:00
Christoph Oelckers
a34f5debe8
- route the shared control CCMDs through the game interface instead of registering local variants for each game.
2020-11-29 13:35:09 +01:00
Christoph Oelckers
48b16d5233
- cleanup on player CVAR use.
2020-11-29 13:22:04 +01:00
Christoph Oelckers
7887c4e80d
- use lambdas instead of templates for chaining ExitFromMenu's actions.
2020-11-29 13:15:19 +01:00
Christoph Oelckers
f2f095c469
- Blood: Only clear global state before reading a savegame.
...
Doing it before writing permanently trashes it.
2020-11-28 00:20:12 +01:00
Christoph Oelckers
7143f62cb1
- Blood: restore pointers after loading all sequences.
2020-11-27 23:47:39 +01:00
Christoph Oelckers
6a29c38240
- Blood: write out the buckethead array to the savegame instead of trying to restore it afterward.
...
It looks like this cannot be reliably reconstructed from a running level anymore.
2020-11-27 23:34:36 +01:00
Christoph Oelckers
a587a1a888
- SW: generalize the resetting of the one-sided flag for pickup items instead of trying to handle each case explicitly.
...
Fixes #202
2020-11-27 20:21:13 +01:00
Christoph Oelckers
daf71fa470
- replaced a few more literal numbers.
2020-11-27 20:06:38 +01:00
Christoph Oelckers
81bdee90f7
- Exhumed: interpolate texture animations.
2020-11-26 18:32:37 +01:00
Christoph Oelckers
d22229c042
- removed the unused interpolation utilities in Exhumed.
...
None of this was used, but with the shared implementation it isn't needed anymore.
2020-11-26 18:32:37 +01:00
Christoph Oelckers
922dc178d6
- SW: interpolate texture panning.
2020-11-26 18:32:37 +01:00
Christoph Oelckers
3d0842d851
- SW: made sector object interpolation more serialization friendly.
...
This eliminates all the direct pointers to various game data and replaces it by encoded offsets.
2020-11-26 18:32:36 +01:00
Christoph Oelckers
bf4cc9c6af
- migrated SW to the common interpolation system.
...
So far only the existing pieces - animations and sector objects still to do.
2020-11-26 18:32:36 +01:00
Christoph Oelckers
b9477f147e
- migrated Duke's interpolations to the common system and added handling for texture scrollers.
2020-11-26 18:32:36 +01:00
Christoph Oelckers
87111a2fbc
- we no longer need to recreate interpolations after loading a savegame.
2020-11-26 18:32:36 +01:00
Christoph Oelckers
82a0e95485
- made the new interpolation system work in Blood.
...
The panning interpolations need wraparuound handling due to their small value range.
2020-11-26 18:32:35 +01:00
Christoph Oelckers
2cd3927613
- use floats for wall panning offsets.
2020-11-26 18:32:35 +01:00
Christoph Oelckers
357199ecc1
- cross-game, serialization-friendly and pointer free interpolation implementation.
...
Not hooked up yet.
2020-11-26 18:32:35 +01:00
Christoph Oelckers
d545eb7aa9
- make sector panning variables floats and added some convenience wrappers.
2020-11-26 18:32:35 +01:00
Christoph Oelckers
82d80f3f07
- Blood: handle super secrets properly in the statistics display.
...
Fixes #198
2020-11-26 07:48:34 +01:00
Mitchell Richters
1504e19cf8
- Exhumed: Add sprite interpolation to analyzesprites()
.
2020-11-26 19:15:49 +11:00
Mitchell Richters
00ce61959c
- SW: Clean up some Q16.16 angle usage within DoPlayerTurnTurret()
.
2020-11-26 17:30:45 +11:00
Mitchell Richters
80ff918b17
- gameinput.h: For PlayerAngle struct methods settarget()
, properly set target as angle + delta between angle & target within method and not game-side.
2020-11-26 17:26:29 +11:00
Mitchell Richters
e9e4590f6a
- gameinput.h: For PlayerHorizon and PlayerAngle struct methods settarget()
, always set the angle directly if backup set to true.
2020-11-26 16:42:07 +11:00
Mitchell Richters
b9e1cbb5de
- gamecontrol.h: Move getHalfLookAng()
into PlayerAngle
struct as look_anghalf()
.
...
* Uses internal struct variables at full BAM precision.
2020-11-26 16:37:37 +11:00
Christoph Oelckers
aac4fcefa2
- fixed comment
2020-11-25 00:09:13 +01:00
Christoph Oelckers
6549f05127
- SW: silence an apparently misplaced ambient sound in level 9.
2020-11-24 22:39:50 +01:00
Mitchell Richters
73df144f65
- SW: Fix ladder angle issues.
...
* Fixes #197 .
2020-11-25 07:50:30 +11:00
Christoph Oelckers
0b115ac9c7
- Exhumed: added a countdown display for the magic spells in the fullscreen HUD.
2020-11-24 21:04:27 +01:00
Christoph Oelckers
7470286d5b
- Exhumed: Switch sounds must use CHANF_LISTENERZ because they use no z-coordinate for their position.
2020-11-24 00:14:32 +01:00
Christoph Oelckers
8cbd67974e
- Exhumed: fixed typo in player taunt code.
2020-11-23 19:32:12 +01:00
Christoph Oelckers
2fda1b9d52
- Exhumed: fixed positioning of the player's scream sound.
...
This was played on the wrong actor - the calling code passed 0 instead of the player's actual sprite index.
2020-11-23 18:38:58 +01:00
Christoph Oelckers
5a5f9b8e02
- backend update from GZDoom.
2020-11-23 15:54:06 +01:00
Mitchell Richters
4ad227c7d6
- Blood: Remove orphaned/unincluded loadsave.h header file.
2020-11-23 22:47:43 +11:00
Christoph Oelckers
88666c3e95
- Blood: always compare xsector and xwall serialization against a null base to reduce file size.
2020-11-23 12:23:19 +01:00
Christoph Oelckers
48049d5548
- Blood: fixed AIState and posture data serialization
2020-11-23 10:18:47 +01:00
Christoph Oelckers
9a4073508d
- Blood: Savegame fully transitioned to JSON
...
not tested yet.
2020-11-23 09:53:58 +01:00
Christoph Oelckers
572d3c9944
- Blood: serialize player as JSON.
2020-11-23 09:53:58 +01:00
Christoph Oelckers
13eae3a7bd
- a bit more cleanup
2020-11-23 09:53:58 +01:00
Christoph Oelckers
fde6407266
- removed the local duplication of the player name in Blood.
...
Using the global CVAR instead - once multiplayer support is in this will work for all players.
2020-11-23 09:53:58 +01:00
Christoph Oelckers
0c6318aed9
- renamed team variables to something meaningful.
2020-11-23 09:53:58 +01:00
Christoph Oelckers
4950a5e963
- Blood: serialize mirrors as JSON and renamed the 3 atxx variables in here.
2020-11-23 09:53:57 +01:00
Christoph Oelckers
169d708547
- removed all remaining uses of tilesiz.
2020-11-23 08:55:02 +01:00
Christoph Oelckers
d60bc8be9f
- replaced all remaining uses of tilesiz[].y
2020-11-23 08:39:49 +01:00
Christoph Oelckers
35f3de64f7
- partial cleanup of SW's game.h
...
inlined several macros, removed some unused ones, replaced a few with one or two uses and simplified some functions to remove 90's optimizations that these days have no positive effect aside from complicating the code.
2020-11-23 08:39:20 +01:00
Christoph Oelckers
6b889cbb77
- port from NBlood: Show all available powerups in HUD.
2020-11-23 07:49:36 +01:00
Mitchell Richters
3f14886830
- binaryangle.h: Return BAngToBAM()
as int64_t
to handle signed values without overflowing on unsigned values.
2020-11-23 10:49:47 +11:00
Mitchell Richters
ea2e4051f1
- Duke (RR): Fix incorrect inline call for angAdjustment
following changes in ea4ad0548a
.
2020-11-23 10:44:38 +11:00
Mitchell Richters
b65326dc22
- Duke (RR): Fix weapon swaying after copy-paste issue originating from 5172c43e71
.
2020-11-23 10:24:43 +11:00
Christoph Oelckers
bbf1352db1
- replaced approx 1/3 of all accesses to the tilesiz wrapper class.
2020-11-23 00:18:30 +01:00
Mitchell Richters
fc359065ae
- Duke: Tune level end summary screen text positioning.
...
* Number positioning was 1 px off for some items such as `TXT_YourTime`.
* Positioning of number and text was 1px off for some items such as `TXT_3DRTIME` and `TXT_EnemiesLeft`.
2020-11-23 09:36:05 +11:00
Christoph Oelckers
3ad37631a6
- SW: fixed several keycards that were accidentally flagged one-sided.
2020-11-22 23:18:45 +01:00
Mitchell Richters
89048c8e70
- binaryangle.h: Use cmath.h functions for binangle
/lookangle
trig methods as well.
2020-11-23 08:40:18 +11:00
Christoph Oelckers
b89cd6d14c
- cleanup on binaryangle.h
...
* why the reference parameters? These should be passed by value.
* removed the < and > operators from binangle class because angles should not be ordered.
* instead of calling the CRT trig functions, use the ones from cmath.h which are more reliable
2020-11-22 21:54:39 +01:00
Mitchell Richters
5ba2e7863d
- binaryangle.h: Add asbuildf()
method to all classes and use where appropriate.
2020-11-22 21:18:12 +01:00
Mitchell Richters
e57d6f8785
- Duke: Fix crane's angle settarget()
call.
...
* Fixes #185 .
2020-11-22 21:18:12 +01:00
Mitchell Richters
c42771228d
- binaryangle.h: Reverse order of binangle
and lookangle
classes and declare binangle
class a friend of lookangle
.
...
* In-prep for addressing #185 .
2020-11-22 21:18:11 +01:00
Mitchell Richters
3b3e926fd3
- gameinput.h: For PlayerAngle
struct, add int settarget()
overload and change one true call with a float to bvectangf()
.
2020-11-22 21:18:11 +01:00
Mitchell Richters
ea4ad0548a
- All Games: Make use of new addadjustment()
overloads in PlayerAngle
struct created in 25207e4f1818a5ed38648ce87673329cd75e20e4.
2020-11-22 21:18:11 +01:00
Mitchell Richters
2341ed4e25
- gameinput.h: For PlayerAngle
struct, add extra addadjustment()
overloads to remove type conversions game-side, and when incoming.
2020-11-22 21:18:11 +01:00
Mitchell Richters
35845a63e2
- binaryangle.h: Expand all classes with bit-shift operators and binangle
/lookangle
classes with some lt/le/ge/gt bools to have parity with the fixedhoriz
class.
2020-11-22 21:18:11 +01:00
Mitchell Richters
42689e02c4
- gameinput.cpp: Define getincanglebam()
and slightly clean up other getincangle*() functions.
2020-11-22 21:18:11 +01:00
Mitchell Richters
0190a98a10
- Remove calcSinTableValue()
inline function and clean up use of PI
/fPI
and BANG2RAD
#defines.
2020-11-22 21:18:10 +01:00
Mitchell Richters
6b66a958d0
- buildutils: Replace calcSinTableValue()
use within Exhumed with bsinf()
/bcosf()
.
2020-11-22 21:18:10 +01:00
Mitchell Richters
5172c43e71
- buildutils: Replace calcSinTableValue()
use within Duke with bsinf()
/bcosf()
.
2020-11-22 21:18:10 +01:00
Mitchell Richters
a2ac8cccc1
- buildutils: Replace calcSinTableValue()
use within SW with bsinf()
/bcosf()
.
2020-11-22 21:18:10 +01:00
Mitchell Richters
feb6d023fa
- buildutils: Replace sintable[]
use within SW's weapon.cpp with bsin()
/bcos()
.
2020-11-22 21:18:10 +01:00
Mitchell Richters
a7a223c13d
- buildutils: Replace sintable[]
use within SW's wallmove.cpp with bsin()
/bcos()
.
2020-11-22 21:18:09 +01:00
Mitchell Richters
a5082d24d9
- buildutils: Replace sintable[]
use within SW's track.cpp with bsin()
/bcos()
.
2020-11-22 21:18:09 +01:00
Mitchell Richters
72f12e19f3
- buildutils: Replace sintable[]
use within SW's sprite.cpp with bsin()
/bcos()
.
2020-11-22 21:18:09 +01:00
Mitchell Richters
09a560cb6d
- buildutils: Replace sintable[]
use within SW's skull.cpp with bsin()
/bcos()
.
2020-11-22 21:18:09 +01:00
Mitchell Richters
3d7d31a5b7
- buildutils: Replace sintable[]
use within SW's sector.cpp with bsin()
/bcos()
.
2020-11-22 21:18:09 +01:00
Mitchell Richters
f57372237c
- buildutils: Replace sintable[]
use within SW's sbar.cpp with bsin()
/bcos()
.
2020-11-22 21:18:09 +01:00
Mitchell Richters
f1d9c3ea9b
- buildutils: Replace sintable[]
use within SW's rooms.cpp with bsin()
/bcos()
.
2020-11-22 21:18:08 +01:00
Mitchell Richters
d0a8f1fbda
- buildutils: Replace sintable[]
use within SW's ripper2.cpp with bsin()
/bcos()
.
2020-11-22 21:18:08 +01:00
Mitchell Richters
54d0b4c291
- buildutils: Replace sintable[]
use within SW's ripper.cpp with bsin()
/bcos()
.
2020-11-22 21:18:08 +01:00
Mitchell Richters
f8cd6d2a37
- buildutils: Replace sintable[]
use within SW's player.cpp with bsin()
/bcos()
.
2020-11-22 21:18:08 +01:00
Mitchell Richters
73355edd2b
- buildutils: Replace sintable[]
use within SW's ninja.cpp with bsin()
/bcos()
.
2020-11-22 21:18:08 +01:00
Mitchell Richters
32ea54aca3
- buildutils: Replace sintable[]
use within SW's morph.cpp with bsin()
/bcos()
.
2020-11-22 21:18:07 +01:00
Mitchell Richters
512bb29ed9
- buildutils: Replace sintable[]
use within SW's mclip.cpp with bsin()
/bcos()
.
2020-11-22 21:18:07 +01:00
Mitchell Richters
94bd45569c
- buildutils: Replace sintable[]
use within SW's input.cpp with bsin()
/bcos()
.
2020-11-22 21:18:07 +01:00
Mitchell Richters
2e4bced7f9
- buildutils: Replace sintable[]
use within SW's hornet.cpp with bsin()
/bcos()
.
2020-11-22 21:18:07 +01:00
Mitchell Richters
85841f5abd
- buildutils: Replace sintable[]
use within SW's girlninj.cpp with bsin()
/bcos()
.
2020-11-22 21:18:07 +01:00
Mitchell Richters
f0be96c385
- buildutils: Replace sintable[]
use within SW's game.h with bsin()
/bcos()
.
2020-11-22 21:18:07 +01:00
Mitchell Richters
ffd768ab71
- buildutils: Replace sintable[]
use within SW's eel.cpp with bsin()
/bcos()
.
2020-11-22 21:18:07 +01:00
Mitchell Richters
e60747a913
- buildutils: Replace sintable[]
use within SW's draw.cpp with bsin()
/bcos()
.
2020-11-22 21:18:06 +01:00
Mitchell Richters
c2c49bd0b9
- buildutils: Replace sintable[]
use within SW's coolg.cpp with bsin()
/bcos()
.
2020-11-22 21:18:06 +01:00
Mitchell Richters
4192416268
- buildutils: Replace sintable[]
use within SW's bunny.cpp with bsin()
/bcos()
.
2020-11-22 21:18:06 +01:00
Mitchell Richters
156709d6bf
- buildutils: Replace sintable[]
use within SW's ai.cpp with bsin()
/bcos()
.
2020-11-22 21:18:06 +01:00
Mitchell Richters
772635e351
- buildutils: Replace sintable[]
use within SW's actor.cpp with bsin()
/bcos()
.
2020-11-22 21:18:06 +01:00
Mitchell Richters
ad814f66b0
- buildutils: Replace sintable[]
use within Duke's spawn.cpp with bsin()
/bcos()
.
2020-11-22 21:18:06 +01:00
Mitchell Richters
d6a094dcdd
- buildutils: Replace sintable[]
use within Duke's sectors_r.cpp with bsin()
/bcos()
.
2020-11-22 21:18:05 +01:00
Mitchell Richters
6fba78c123
- buildutils: Replace sintable[]
use within Duke's sectors_d.cpp with bsin()
/bcos()
.
2020-11-22 21:18:05 +01:00
Mitchell Richters
6ccf925429
- buildutils: Replace sintable[]
use within Duke's sectors.cpp with bsin()
/bcos()
.
2020-11-22 21:18:05 +01:00
Mitchell Richters
410c2cf41f
- buildutils: Replace sintable[]
use within Duke's sbar_*.cpp with bsin()
/bcos()
.
2020-11-22 21:18:05 +01:00
Mitchell Richters
0781d627dc
- buildutils: Replace sintable[]
use within Duke's prediction.cpp with bsin()
/bcos()
.
2020-11-22 21:18:05 +01:00
Mitchell Richters
6800e192e1
- buildutils: Replace sintable[]
use within Duke's player_w.cpp with bsin()
/bcos()
.
2020-11-22 21:18:05 +01:00
Mitchell Richters
1c5c90d00f
- buildutils: Replace sintable[]
use within Duke's player_r.cpp with bsin()
/bcos()
.
2020-11-22 21:18:04 +01:00
Mitchell Richters
5e45f988e3
- buildutils: Replace sintable[]
use within Duke's player_d.cpp with bsin()
/bcos()
.
2020-11-22 21:18:04 +01:00
Mitchell Richters
50b4d8cc99
- buildutils: Replace sintable[]
use within Duke's player.cpp with bsin()
/bcos()
.
2020-11-22 21:18:04 +01:00
Mitchell Richters
fd4e1b3b28
- buildutils: Replace sintable[]
use within Duke's input.cpp with bsin()
/bcos()
.
2020-11-22 21:18:04 +01:00
Mitchell Richters
d934bfd985
- buildutils: Replace sintable[]
use within Duke's gameexec.cpp with bsin()
/bcos()
.
2020-11-22 21:18:04 +01:00
Mitchell Richters
f1f0b42172
- buildutils: Replace sintable[]
use within Duke's game_misc.cpp with bsin()
/bcos()
.
2020-11-22 21:18:04 +01:00
Mitchell Richters
95fa3a6f52
- buildutils: Replace sintable[]
use within Duke's animatesprites_*.cpp with bsin()
/bcos()
.
2020-11-22 21:18:03 +01:00
Mitchell Richters
b6e8030307
- buildutils: Replace sintable[]
use within Duke's actors_r.cpp with bsin()
/bcos()
.
2020-11-22 21:18:03 +01:00
Mitchell Richters
abc49fed62
- buildutils: Replace sintable[]
use within Duke's actors_d.cpp with bsin()
/bcos()
.
2020-11-22 21:18:03 +01:00
Mitchell Richters
bf8b1238c6
- buildutils: Replace sintable[]
use within Duke's actors.cpp with bsin()
/bcos()
.
2020-11-22 21:18:03 +01:00
Mitchell Richters
bae4d77427
- buildutils: Replace sintable[]
use within Exhumed with bsin()
/bcos()
.
2020-11-22 21:18:03 +01:00
Mitchell Richters
d6d74c2712
- buildutils: Replace sintable[]
use within core with bsin()
/bcos()
.
2020-11-22 21:18:02 +01:00
Mitchell Richters
32a1796728
- buildutils: Replace sintable[]
use within Build with bsin()
/bcos()
, using bsinf()
/bcosf()
where appropriate.
...
* Includes a few header include shuffles to make it all come together.
2020-11-22 21:18:02 +01:00
Mitchell Richters
b2c42d5d03
- buildutils: Replace sintable[]
use within Blood with bsin()
/bcos()
.
...
* Further review of this should be considered as the use of sintable[] for nCos was actually sine and the use of sintable[] for nSin was actually cosine. Preserved math despite the variable names.
2020-11-22 21:18:02 +01:00
Mitchell Richters
cf6188b034
- buildutils: Replace Sin()
and Cos()
from Exhumed with bsin()
/bcos()
.
2020-11-22 21:18:02 +01:00
Mitchell Richters
8aa7051f78
- buildutils.h: Replace FSin()
from Exhumed with bsinf()
/bcosf()
.
2020-11-22 21:18:02 +01:00
Mitchell Richters
85bb248309
- binaryangle.h: Extend file with sine/cosine inline helper functions.
2020-11-22 21:18:02 +01:00
Christoph Oelckers
a906067102
- Duke WT: attenuate sound volume when commentaties are playing
2020-11-22 21:14:36 +01:00
Christoph Oelckers
3bd48fb8c5
- Exhumed: Fixed CalcPosVel not initializing the vel parameter.
...
This caused spurious errors in OpenAL if the passed values were NANs or INFs.
Fixes #183
2020-11-22 20:34:57 +01:00
Christoph Oelckers
182b8023ca
- Blood: ported BloodGDX's fix for the double shotgun graphics glitch.
...
Fixes #114
2020-11-22 20:09:09 +01:00
Christoph Oelckers
2db60ae847
- SW-TD: added a hack to flip an inverted card reader in level 10.
...
For now this is just inserted into the level loader - it should use more sophisticated checks.
Fixes #173 .
2020-11-22 19:47:20 +01:00
Christoph Oelckers
143dd3d2cf
- fixed weapon cycling in Exhumed.
...
The sword was checked for ammo (and failed) and wraparound was not handled.
Fixes #193
2020-11-22 18:59:59 +01:00
Christoph Oelckers
921a7a7166
- RRRA: fixed progression from E1L7 to E2L1 plus a texture related crash.
...
Fixes #189 .
2020-11-22 18:46:20 +01:00
Christoph Oelckers
24c797b7e3
- Duke World Tour: Exiting E1L7 should go back to E1L5.
...
fixes #187
2020-11-22 18:27:52 +01:00
Christoph Oelckers
dfc2cd8580
- make sure that all of SW's sound function check SoundEnabled().
...
Fixes #192
2020-11-22 18:16:08 +01:00
Christoph Oelckers
7df20ee047
- RR: Give ammo for the secondary ripsaw mode when picking up the weapon in standard RR, too.
2020-11-22 17:50:38 +01:00
Christoph Oelckers
034ef2290b
- RR: screen should not turn green when being attacked with alien poo.
2020-11-22 17:38:07 +01:00
Christoph Oelckers
63d71c120a
- Blood: save level stats as JSON.
2020-11-22 13:05:17 +01:00
Christoph Oelckers
c6c9b26af2
- do not specifically look in the 'music' directory for CD tracks.
...
Prepending of 'music/' is done automatically for all music not found without a path so this only limits options.
2020-11-22 12:51:13 +01:00
Christoph Oelckers
751c295b62
- minor savegame optimizations.
...
Do not write out empty elements of arrays where these are by far the most common ones.
2020-11-22 12:48:43 +01:00
Christoph Oelckers
1a588c3cbf
- merged two smaller savegame handlers into the main function.
2020-11-22 12:48:43 +01:00
Christoph Oelckers
2cb3d44384
- AI JSON serialization.
2020-11-22 12:48:43 +01:00
Christoph Oelckers
18352a760c
- more renames.
2020-11-22 12:48:42 +01:00
Christoph Oelckers
2c6fa57090
- activeXSprites map.
2020-11-22 12:48:42 +01:00
Christoph Oelckers
d4873754f3
- even more renames
2020-11-22 12:48:42 +01:00
Christoph Oelckers
dced173cda
- JSON serializer for actor.
...
Also cleaned up use of gAffectedSectors and gAffectedXWalls. These are merely needed as local worker variables, not as global persistent status.
2020-11-22 12:48:42 +01:00
Mitchell Richters
2c1b53ad1c
- Exhumed: Get GOG music playing without any user intervention required.
2020-11-22 22:35:45 +11:00
Mitchell Richters
d7c4e5e59f
- searchpaths.cpp: Add registry detection for Powerslave/Exhumed from GOG.
...
* Fixes #191 .
2020-11-22 22:23:01 +11:00
Christoph Oelckers
b2a7a0635b
- Blood: JSON serializer for triggers
...
Also renaming members of struct BUSY.
2020-11-21 20:25:06 +01:00
Christoph Oelckers
f73ca55c79
- renamed more disasm stuff.
2020-11-21 20:10:45 +01:00
Christoph Oelckers
27dfefef6c
- JSON serializer for warp.cpp
2020-11-21 19:39:24 +01:00
Christoph Oelckers
678dedf224
- more renaming.
2020-11-21 19:30:00 +01:00
Christoph Oelckers
c13dd52e34
- renamed a few functions with disasm names.
2020-11-21 19:19:02 +01:00
Christoph Oelckers
a319687373
- use static init for QAV callbacks.
...
runtime init order is undefined, so this is not safe.
2020-11-21 18:28:29 +01:00
Christoph Oelckers
9bd02634d9
- renamed a few things with disasm names.
2020-11-21 18:18:58 +01:00
Christoph Oelckers
7945242fa8
- removed some redundant utility functions.
2020-11-21 18:13:10 +01:00
Christoph Oelckers
8bfc6d98d4
- Blood: cleanup and simplification of SEQ code.
...
* removed all the large instance arrays. None of this is really necessary, all we need is a single dynamic array with only the active sequences that can expand as needed.
* added JSON serialization. With the above change this part now becomes trivial.
* renamed all 'atxx' variables in this code.
2020-11-21 18:12:51 +01:00
Christoph Oelckers
4aa06ff702
- use a static table for SEQ callbacks.
...
This ensures that callback indices are consistent. Runtime registration as performed by NBlood has undefined order and will make savegames non-transferrable.
2020-11-21 16:34:32 +01:00
Christoph Oelckers
fe845d7e12
- renamed some of those annoying 'atxx' variables.
2020-11-21 15:45:37 +01:00
Christoph Oelckers
1535182577
- simplified the event management further and added a JSON serializer for it.
2020-11-21 15:09:38 +01:00
Christoph Oelckers
5f54eac297
- made palette loader part of the game interface.
...
This gets rid of the Blood 'replace' hook for thus.
2020-11-21 12:54:09 +01:00
Christoph Oelckers
71e70f8d15
- simplified the event code by removing the priority queue layer.
...
We do not need that compatibility handling so the high level code can use the multiset directly.
2020-11-21 12:49:24 +01:00
Christoph Oelckers
b97f12a2eb
- did some global search & replace to reduce the number of accesses to the tilesiz wrapper.
2020-11-20 08:18:26 +01:00
Christoph Oelckers
9a43886be6
- Duke: fixed parsing of overlong CON identifiers.
2020-11-15 07:35:39 +01:00
alexey.lysiuk
07eeba88fa
- fixed incorrect autosegs section addresses on macOS
...
It appeared that getsectbyname() returns address stored in executable header as is, i.e. without adjusting it for ASLR
2020-11-14 12:48:39 +02:00
Christoph Oelckers
36479b623d
- re-fixed crosshair scale to only use one CVAR for everything.
2020-11-13 17:56:55 +01:00
sinisterseed
34dfb6c5fc
- fixed crosshair scaling in Exhumed & the other games.
...
The problem was that the CVARs operating the scale were different between Exhumed and the other titles, meaning that "crosshairscale" worked in one, but not the others. They have now been split.
Also lowered the default crosshair size as it was too much for Exhumed.
Fixes #180 .
2020-11-13 18:33:18 +02:00
sinisterseed
913239ee5d
- minor adjustment to the level stats widget.
...
Since the widget was right on top of the status bar, the shadows behind it were slightly bleeding into it.
2020-11-13 17:12:01 +02:00
Christoph Oelckers
d089aa8d2e
- moved Blood's and Exhumed's d_menu.cpp back into the gameprojects
...
With the new autoseg code this separation is not needed anymore.
2020-11-13 11:25:43 +01:00
alexey.lysiuk
555007539d
- eliminate dependency on linking order for autosegs registration
...
This fixes #164
2020-11-13 09:41:58 +01:00
Mitchell Richters
7673766d19
- Duke: Apply same zvel fix from 13839fc3e9
to shootgrowspark()
that was accidentally changed in f276a5f443
. I don't believe this to be an issue in any other spot for Duke.
2020-11-13 10:02:12 +11:00
Christoph Oelckers
483e0b6574
- fixed voxel rendering in palette emulation mode.
...
The recent changes for replacing fonts with hires versions made the paletted handling kick in, although the voxel textures are not suitable for that.
Fixes #178
2020-11-12 19:26:16 +01:00
Christoph Oelckers
f9a776e71c
- iterate linearly over sector effectors.
...
Apparently they aren't all properly linked into the required statnums.
Fixes #179
2020-11-12 19:12:58 +01:00
Mitchell Richters
735d89bfb6
- SW: Ensure save code backs up crouch_toggle
and player's current input.
...
* Fixes #166 .
2020-11-12 23:31:32 +11:00
Mitchell Richters
70b75f72b5
- Duke: Fix issues with crane angle adjustment in movecrane()
following changes in fca846272e
.
...
* Fixes #170 .
2020-11-12 23:21:03 +11:00
Mitchell Richters
13839fc3e9
- Duke: Fix shootstuff()
zvel calculation error following changes in badf536fef
.
...
* Fixes #177 .
2020-11-12 22:07:16 +11:00
alexey.lysiuk
6b12514a29
- fixed compilation with MSVC 14.28.29333 from VS2019 16.8.0
...
This fixes #175
include\algorithm(7419,1): error C2678: binary '=': no operator found which takes a left-hand operand of type 'const T' (or there is no acceptable conversion) (compiling source file source\common\scripting\jit\jit.cpp)
include\algorithm(7419,17): error C3892: '_First': you cannot assign to a variable that is const (compiling source file source\core\searchpaths.cpp)
2020-11-12 11:38:53 +02:00
Mitchell Richters
4dc1797345
- Duke: Reset p->dead_flag
when enabling the god cheat as per original behaviour.
...
* Fixes #172 .
2020-11-12 18:21:42 +11:00
Christoph Oelckers
2ee18b3a11
- fixed voxel rendering.
2020-11-11 20:31:27 +01:00
sinisterseed
a7dd547dc1
- fixed some typos in SW's digi.h file.
2020-11-11 17:45:01 +02:00
sinisterseed
9e0e3c649c
- marked a missed Wang speech line.
...
Sneaky one no less, took a while to find... (this was still playing on WT's Skyline when Wang was jumping between rooftops).
2020-11-11 17:37:21 +02:00
Christoph Oelckers
4bded16b09
- removed leftover Polymer checks.
2020-11-11 13:03:47 +01:00
Christoph Oelckers
a92b4943f9
- Duke: use original colors for inventory status display.
...
I took one liberty and still use green/yellow/red for the percentage, but this now uses palette translations so that it works better with hires replacements.
2020-11-11 11:49:05 +01:00
Christoph Oelckers
85edf38eba
- do not grayscale all hires tinting.
2020-11-11 07:57:25 +01:00
Christoph Oelckers
e2b6ebec91
- partially fixed colorization for hires replacements.
2020-11-10 23:59:04 +01:00
Christoph Oelckers
3558289d70
- give forward declared enum a type.
2020-11-10 21:44:15 +01:00
Christoph Oelckers
96fbfdcf86
- made hires replacements work for untranslated fonts.
2020-11-10 21:34:49 +01:00
Christoph Oelckers
8ac6a4d321
- removed redundant declaration of PickTexture.
2020-11-10 20:30:37 +01:00
Christoph Oelckers
873f4d7c0c
- link hires replacements to textures instead of tile numbers.
...
This is needed to connect them to fonts as well because its glyphs have no tile index.
2020-11-10 20:12:46 +01:00
Christoph Oelckers
ed599d0f05
- moved the hires texture replacement logic into a backend callback.
...
This way it can be handled transparently to the calling code.
Fonts do not work yet, though.
2020-11-10 16:22:02 +01:00
Christoph Oelckers
8c241afc40
- undid texture substitution in 2D code.
2020-11-10 10:08:17 +01:00
Christoph Oelckers
40358febc1
- changed render interface to resolve textures to materials in the backend.
...
This is needed to have a unified spot where to resolve textures for both 2D and 3D.
2020-11-10 09:08:48 +01:00
Christoph Oelckers
601680d08e
- moved widthBits and heightBits into engine.
...
These functions will go away with the rest of the renderer when the time comes, so this is the right place.
2020-11-09 20:56:28 +01:00
Christoph Oelckers
51115e75df
- avoid using widthBits and heightBits outside of engine code.
2020-11-09 20:51:30 +01:00
Christoph Oelckers
f24786af71
- Exhumed: Use 0 as transparent color index for the energy tile.
2020-11-09 19:16:43 +01:00
Christoph Oelckers
918425469a
- fixed crosshair setup.
...
Fixes #168
2020-11-09 17:20:14 +01:00
Christoph Oelckers
61b42ea448
- fixed font color in SW's menus
...
fixes #165
2020-11-09 16:56:59 +01:00
Christoph Oelckers
aed8a450fd
- SW: fixed episode menu display.
...
The subtitle needs to use the game specific drawer, not the generic one.
Fixes #162
2020-11-08 10:12:12 +01:00
Christoph Oelckers
40a9a4c86d
- removed redundant local variable in SW status bar code.
2020-11-08 09:12:15 +01:00
alexey.lysiuk
7f0d94798d
- fail CMake configuration process if libvpx was not found
...
This helps to avoid #160
2020-11-08 10:00:20 +02:00
Mitchell Richters
9e026d5042
- Exhumed: Partially address issues with LEV20 energy towers in #159 .
2020-11-08 12:48:23 +11:00
Mitchell Richters
8178d20f97
- c_notifybuffer.cpp: Center and pulse text for all RR games in DrawNative()
.
...
* Fixes #163 .
2020-11-08 10:39:45 +11:00
Mitchell Richters
f9f365a593
- Ensure crouch_toggle
bool from 6e3d414b3c
is serialised when saving game, and cleared when InputState::ClearAllInput()
is called.
2020-11-08 07:30:48 +11:00
Christoph Oelckers
59c72c923e
- added null pointer checks to locked door sound checks in RR.
...
This originally accessed undefined memory when no sprite was involved.
Fixes #157
2020-11-07 10:25:41 +01:00
Christoph Oelckers
976675c816
- added some helper code to deal with the fact that the sound system still needs to operate on sprites.
2020-11-07 10:25:40 +01:00
Mitchell Richters
ade1a80515
- gameinput.cpp: Remove crouch bool from applylook()
since we can now just rely in the actions bitfield that's already incoming as required and default scaleAdjust
in the prototype to 1
.
2020-11-07 18:25:06 +11:00
Mitchell Richters
6e3d414b3c
- inputstate.cpp: Move checkCrouchToggle()
from gameinput.ccp into ApplyGlobalInput()
and use static bool for crouch toggling vs. game-side bool.
2020-11-07 18:16:16 +11:00
Mitchell Richters
a153ebab7e
- SW: Migrate crouch toggling to backend solution implemented in 4ef0d20e0e
.
2020-11-07 17:53:11 +11:00
Mitchell Richters
01c494e29d
- Blood: Don't let Caleb's voice overlap if spamming the use key on a locked door.
...
* Fixes #113 .
2020-11-07 15:13:45 +11:00
Mitchell Richters
4ef0d20e0e
- gameinput.cpp: Consolidate checkCrouchToggle()
from Duke with discrete implementations from Blood in 7c8efde38c
and Exhumed in 032db82f82
to unify the functionality.
2020-11-07 13:44:25 +11:00
Mitchell Richters
032db82f82
- Exhumed: Add crouch toggle mechanism.
2020-11-07 13:27:58 +11:00
Mitchell Richters
7c8efde38c
- Blood: Add crouch toggle mechanism.
...
* Fixes #151 .
2020-11-07 13:23:16 +11:00
Mitchell Richters
a52ee89969
- Duke/RR: Add scaling to mouse input within motoApplyTurn()
and boatApplyTurn()
.
2020-11-07 09:56:57 +11:00
Mitchell Richters
f0b9029726
- Duke/RR: Fix incorrect boolean used in boatApplyTurn()
when implementing fcc2521347bb528d7a5bcd3996c509db85e993f0.
2020-11-07 09:56:57 +11:00
Mitchell Richters
74dfbfe6f8
- Duke/RR: Ensure p->vehForwardScale
/p->vehReverseScale
can only be a maximum of 1. Controller input with high sensitivity could effectively turbo-charge the bike ;)
2020-11-07 09:56:57 +11:00
Mitchell Richters
466bc84697
- Duke/RR: Completely revamped vehicle mouse/controller input.
...
* Original algorithm now used purely for keyboard input only.
* Mouse and controller input is no longer a scaled double version of the keyboard input.
* Mouse input is the square root of the base angle adjustment (20) multiplied by (mouse input divided by the input scale factor). As such, mouse input is completely consistent between synchronised and unsynchronised input.
* Controller input is base angle adjustment (20) multiplied by itself.
* Renamed `turnl`/`turnr` variables to `kbdLeft`/`kbdRight` respectively.
* Fixed issue where `p->TiltStatus` wasn't being backed up in `boatApplyTurn()`.
2020-11-07 09:56:57 +11:00
Mitchell Richters
c9708a5464
- CONTROL_GetInput()
: Reverse polarity of dx/dz and update processMovement()
appropriately.
2020-11-07 09:56:57 +11:00
Mitchell Richters
6f5f66ad35
- Duke/RR: Partially revert c9d875327850e839e3ad1f367ede15497d44fda3 by truncating p->MotoSpeed
to integer when calculating xvel/yvel to preserve original vehicle feel.
2020-11-07 09:56:57 +11:00
Mitchell Richters
567738f3ad
- Duke/RR: Tidy formatting of onMotorcycle()
, onBoat()
, onMotorcycleMove()
and onBoatMove()
.
2020-11-07 09:56:57 +11:00
Mitchell Richters
1545610501
- Duke/RR: Convert remaining vehicle function local ints to bools where appropriate.
2020-11-07 09:56:57 +11:00
Mitchell Richters
c223a50b29
- Duke/RR: Clean up vehicle turn left/right bools used in ticker functions.
2020-11-07 09:56:57 +11:00
Mitchell Richters
ad10ea4cb5
- Duke/RR: Initial implementation of scaled p->MotoSpeed
controller input.
2020-11-07 09:56:57 +11:00
Mitchell Richters
578ded1db3
- Duke/RR: Promote p->MotoSpeed
from short
to double
in prep for applying scaled controller input.
2020-11-07 09:56:57 +11:00
Mitchell Richters
c46ad10bb1
- Duke/RR: Clean up some disassembly variable names in vehicle so it's easier to understand what's going on.
2020-11-07 09:56:57 +11:00
Christoph Oelckers
94341e8582
- fixed missing null check in SetOwner and SetHitOwner.
2020-11-06 20:13:06 +01:00
Mitchell Richters
2d903ed918
- Exhumed: Skip over weapons owned but without ammo when doing WeapSel_Next
/WeapSel_Prev
.
...
* Fixes #148 .
2020-11-06 23:25:55 +11:00
Mitchell Richters
e3c6873410
- Exhumed: Move bullet puff animations up by 4096 units to give the illusion of more accurate aiming.
...
* Fixes #149 .
2020-11-06 23:02:57 +11:00
Mitchell Richters
71be467065
- Duke: Fix missing ammo counter on modern HUD for WT's flamethrower.
...
* Fixes #156 .
2020-11-06 22:07:11 +11:00
Mitchell Richters
f2e50161a5
- Exhumed: Fix issues on start of Level 20 following changes in 0c95aee8f5
.
...
* Fixes #152 .
2020-11-06 22:02:14 +11:00
Mitchell Richters
c823e33bb3
- Duke/RR: Fix remaining issues with drug mode.
...
* Primary issue was call to `renderSetAspect()` within `setdrugmode()` wasn't mulscaling with `viewingrange`.
* Changed `setdrugmode()` to `getdrugmode()` to return `p->drug_aspect`. This is so `renderSetAspect()` needs to only be called from one place only.
2020-11-06 20:52:43 +11:00