Commit graph

7806 commits

Author SHA1 Message Date
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
110adf4a83 - WH: fixed ambiguous naming of 'attack' functions. 2020-11-09 18:23:23 +01:00
Christoph Oelckers
f87d524987 - WH: initialize weapons. 2020-11-09 18:22:10 +01:00
Christoph Oelckers
dbb7697eed - WH: initialize the items. 2020-11-09 18:14:10 +01:00
Christoph Oelckers
2fbaaba116 - WH: initialize the AI data. 2020-11-09 18:07:44 +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
Mitchell Richters
821dff9868 - ApplyGlobalInput(): Clear open button for both Witchaven games like Blood. 2020-11-08 22:00:14 +11:00
Mitchell Richters
f7e30acf85 - gamecontrol.h: Define GAMEFLAG_WHALL as bitwise or of GAMEFLAG_WH and GAMEFLAG_WH2. 2020-11-08 21:59:46 +11:00
Mitchell Richters
7881dc9907 - WHaven: Fix compilation following merge of master in 5d77b1fd25. 2020-11-08 21:03:11 +11:00
Christoph Oelckers
e37dc08a6b - remap WH's fly to 'quick_kick', because crouch got refactored. 2020-11-08 10:51:19 +01:00
Christoph Oelckers
5d77b1fd25 Merge branch 'master' into witchaven2
# Conflicts:
#	source/core/packet.h
#	wadsrc/static/menudef.txt
2020-11-08 10:44:19 +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
Mitchell Richters
ed942ab1b7 - WHaven: Fix sprite interpolation issues. 2020-11-08 19:57:32 +11:00
Mitchell Richters
aa4470a237 - SkipTicCmd(): Fix missed skip increment amount changes following expansion of fvel/svel in 6371505fb3.
Thanks, Graf :).
2020-11-08 19:15:03 +11: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
7a181400b6 - WHaven: Enable unsynchronised input. 2020-11-08 17:57:26 +11:00
Mitchell Richters
249ea218f4 - WHaven: Uplift of ang to backend code. 2020-11-08 17:57:16 +11:00
Mitchell Richters
3813913970 - WHaven: Uplift of horiz to backend code. 2020-11-08 17:51:38 +11:00
Mitchell Richters
d8c7fcd259 - WHaven: Get fvel/svel working for player. 2020-11-08 17:31:52 +11:00
Mitchell Richters
6371505fb3 - InputPacket: Change fvel/svel from int16_t to int32_t to accommodate larger fvel/svel from Witchaven. 2020-11-08 17:00:52 +11: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
Christoph Oelckers
4e6e564e14 - silenced message about missing function prototypes for exports.
This is necessary to later separate the games' script content from each other because there'd be lots of unprototyped functions otherwise.
2020-11-05 18:59:21 +01:00
Christoph Oelckers
d5ff87fa4f - RRRA: fixed vehicle collision with psychedelic cactuses.
This did not fully match the original source which had a critical difference here between RR and RRRA.
2020-11-05 14:31:55 +01:00
Christoph Oelckers
977223287e - cap the frame rate of RRRA's cactus drug mode.
This was running at full render speed.
2020-11-05 07:31:48 +01:00
Christoph Oelckers
d8e331ef0f - changed Duke/RR palette handling to only retrieve the currently active palette right before rendering.
Storing this in the player_struct is pointless and a relic from having to use real hardware palette switches.
With this now just being a translation index being passed to the backend it can be cheaply retrieved right when used and nowhere else.
Also making some changes to how RRRA's psychedelic cactus handles the projection. This fixes issues with occasionally passing a bad matrix.
2020-11-05 07:31:48 +01:00
Mitchell Richters
e8ccd9bc8c - Fix compilation. 2020-11-05 11:14:04 +11:00
Christoph Oelckers
7621d3e105 - removed redundant dosetaspect function.
This was software rendering only.
2020-11-04 22:30:11 +01:00
Christoph Oelckers
60263ccad9 - fixed destroyit.
This caused parts of the exploding house in RRRA E1L5 not to disappear.
2020-11-04 21:53:56 +01:00
Christoph Oelckers
6729859e39 - fixed the crane.
Cannot take the special value out of the owner field. :(
2020-11-04 21:25:59 +01:00
Christoph Oelckers
721efae0d3 - fixed camera loop. 2020-11-04 20:44:12 +01:00
Christoph Oelckers
083454986b - made camsprite an actor variable. 2020-11-04 20:40:26 +01:00
Christoph Oelckers
25c93e65fc - more script ID wrappers for sectors. 2020-11-04 20:40:26 +01:00
Christoph Oelckers
aac5ab55a3 - movesprite cleanup. 2020-11-04 20:40:25 +01:00
Christoph Oelckers
7a95c1661e - wrap actor index storage in sector in the script index API. 2020-11-04 20:40:25 +01:00
Christoph Oelckers
471a25f819 - operaterespawns.
# Conflicts:
#	source/games/duke/src/sectors_d.cpp
#	source/games/duke/src/sectors_r.cpp
2020-11-04 20:40:25 +01:00
Christoph Oelckers
5cf288a05c - changed the trip bomb indexing to use a separate counter for robustness. 2020-11-04 20:40:25 +01:00
Christoph Oelckers
0eb10f0313 - newowner and related code. 2020-11-04 20:40:25 +01:00
Christoph Oelckers
c90e7d9b5f - almost the last owners 2020-11-04 20:40:08 +01:00
Christoph Oelckers
d0db810ab0 - ud.camerasprite -> actor. 2020-11-04 20:40:08 +01:00
Christoph Oelckers
212b99d0f3 - use owner wrappers in spawn code. 2020-11-04 20:40:08 +01:00
Christoph Oelckers
24cfd841f2 - lotsofglass - final function in spawn.cpp 2020-11-04 20:40:07 +01:00
Christoph Oelckers
4add2b5839 - two more 2020-11-04 20:40:07 +01:00
Christoph Oelckers
ac5ea2f1c9 - 3 more wrappers gone. 2020-11-04 20:40:07 +01:00
Christoph Oelckers
8f754d163d - removed inline wrappers that are not needed anymore.
# Conflicts:
#	source/games/duke/src/spawn_r.cpp
2020-11-04 20:40:07 +01:00
Christoph Oelckers
f3f0fd0a3a - ported the sound code to actors and removed the inline helpers. 2020-11-04 20:40:07 +01:00
Christoph Oelckers
4c3435bacf - moved some non-owner info out of the owner field.
This only handles items where both reading and writing can be located.
2020-11-04 20:40:07 +01:00
Christoph Oelckers
15fc884909 - owners in spawn.cpp 2020-11-04 20:40:06 +01:00
Christoph Oelckers
90511a97e7 - initcrane and spawneffector. 2020-11-04 20:40:06 +01:00
Christoph Oelckers
e2e24fc508 - spawn.cpp part 2.
(Beware of the crane! That one's hacky!)
2020-11-04 20:40:06 +01:00
Christoph Oelckers
edb991e47d - first part of spawn.cpp. 2020-11-04 20:40:06 +01:00
Christoph Oelckers
60977ef4dc - the spawn dispatcher is no longer used. 2020-11-04 20:40:06 +01:00
Christoph Oelckers
c54f17a6d5 - hittype in spawn code. 2020-11-04 20:40:05 +01:00
Christoph Oelckers
e427668373 - the remaining iterators in sectors_r.cpp 2020-11-04 20:39:43 +01:00
Christoph Oelckers
6a8dc8217f - 6 simple loops in sectors_r.cpp. 2020-11-04 20:39:43 +01:00
Christoph Oelckers
bb23d9131e - player.i, part 4. 2020-11-04 20:39:43 +01:00
Christoph Oelckers
d773601d81 - player.i, part 3 2020-11-04 20:39:43 +01:00
Christoph Oelckers
cc0a668da3 - player.i, part 2
# Conflicts:
#	source/games/duke/src/sectors_r.cpp
2020-11-04 20:39:43 +01:00
Christoph Oelckers
770897b8b9 - player.i, part 1 2020-11-04 20:39:42 +01:00
Christoph Oelckers
d5a74e4290 - handled several GetIndex calls. 2020-11-04 20:39:39 +01:00
Christoph Oelckers
64c83d166e - fixed a few parameters 2020-11-04 20:39:39 +01:00
Christoph Oelckers
eb5cd98d9a - fixed a few bad parameters. 2020-11-04 20:39:39 +01:00
Christoph Oelckers
a8212f0756 - crash fix in spawn and camera fix. 2020-11-04 20:25:02 +01:00
Christoph Oelckers
afd059d6a1 - the remaining loops in sectors_d.cpp 2020-11-04 19:55:18 +01:00
Christoph Oelckers
7c6ea9cff7 - activatebysector. 2020-11-04 19:55:17 +01:00
Christoph Oelckers
7aca51a6c4 - 6 more loops. 2020-11-04 19:55:17 +01:00
Christoph Oelckers
d8a7821b4f - cleaned up a few more loops. 2020-11-04 19:55:17 +01:00
Christoph Oelckers
618c739318 - spawninitdefault. 2020-11-04 19:55:17 +01:00
Christoph Oelckers
4d4cb2da9b - handle the cheap-ass ROR code. 2020-11-04 19:55:17 +01:00
Christoph Oelckers
10d4f92232 - use a dedicated variable to store the vehicle ammo for RRRA's bike and boat.
owner should be reserved for pointers.
2020-11-04 19:55:17 +01:00
Christoph Oelckers
803cf4aece - the last two loops in premap_r.cpp 2020-11-04 19:55:16 +01:00
Christoph Oelckers
a63c62bf7c - the geometry effect loop 2020-11-04 19:55:16 +01:00
Christoph Oelckers
9f3b74f4a2 - 3 loops in premap_r.cpp 2020-11-04 19:55:16 +01:00
Christoph Oelckers
8360ba99ff - fixed cacheit_r sector loop. 2020-11-04 19:55:16 +01:00
Christoph Oelckers
68f9037883 - pointer replacements. 2020-11-04 19:55:16 +01:00
Christoph Oelckers
86909c9068 - fixed cacheit_d sector loop. 2020-11-04 19:55:16 +01:00
Christoph Oelckers
2b0f56a94c - changed setsectinterpolate to receive a sector number, not a sprite number. 2020-11-04 19:55:16 +01:00
Christoph Oelckers
32fc9329de - another iterator.
This one's for init code that needs to iterate sprites in spawn order.
2020-11-04 19:55:15 +01:00
Christoph Oelckers
12ef8c4543 This completes player_r.cpp 2020-11-04 19:55:15 +01:00
Christoph Oelckers
34d0219d06 - nullptr fixes 2020-11-04 19:55:15 +01:00
Christoph Oelckers
36370b71e2 - wrapped neartag to return an actor. 2020-11-04 19:55:15 +01:00
Christoph Oelckers
bc6ae872ae - cleaned up the checkhitswitch interface to receive sprites as pointers. 2020-11-04 19:55:15 +01:00
Christoph Oelckers
3e7c8adc1e - checkhitswitch_r part 4 2020-11-04 19:55:15 +01:00
Christoph Oelckers
4ce19b74b0 - checkhitswitch_r part 3 2020-11-04 19:55:14 +01:00
Christoph Oelckers
e81b37b31a - checkhitswitch_r part 2 2020-11-04 19:55:14 +01:00
Christoph Oelckers
2a23dfa0a8 - checkhitswitch_r part 1 2020-11-04 19:55:14 +01:00
Christoph Oelckers
f13a8943ab - checkhitswitch_d part 2 2020-11-04 19:55:14 +01:00
Christoph Oelckers
f1ab8f03ef - checkhitswitch_d part 1 2020-11-04 19:55:14 +01:00
Christoph Oelckers
87e8801531 - handle the clipmove result in processinput. 2020-11-04 19:55:14 +01:00
Christoph Oelckers
419cf9af5e - processinput part 1. 2020-11-04 19:55:13 +01:00
Christoph Oelckers
ef2c773e02 - RR processweapon pass 1 2020-11-04 19:55:13 +01:00
Christoph Oelckers
d4dabee52d - OnMotorcycle/BoatHit. 2020-11-04 19:55:13 +01:00
Christoph Oelckers
454b2315d4 - use actors instead of indices for sound calls. 2020-11-04 19:55:13 +01:00
Christoph Oelckers
8d55138db0 - checkweapons_r. 2020-11-04 19:55:13 +01:00
Christoph Oelckers
635b53f78f - RR-movement + dummyplayersprite 2020-11-04 19:55:13 +01:00
Christoph Oelckers
60ec6b8c7d - handled the last remaining sprite references in player_d.cpp. 2020-11-04 19:55:12 +01:00
Christoph Oelckers
70e1b87160 - Duke underwater. 2020-11-04 19:55:12 +01:00
Christoph Oelckers
b302f2535f - player index and hittypes in player_d.cpp 2020-11-04 19:55:12 +01:00
Christoph Oelckers
f598c16e03 - use the script interface where needed.
Later the scripts should only see some token representing an actor, not an index.
2020-11-04 08:24:17 +01:00
Christoph Oelckers
773aa9976d - fixed compilation of release build. 2020-11-04 07:01:25 +01:00
Christoph Oelckers
29b08b2115 - access_spritenum 2020-11-03 22:49:17 +01:00
Christoph Oelckers
b891646c37 - all of player_w.cpp 2020-11-03 22:41:24 +01:00
Christoph Oelckers
be591e9cf9 - the last bit of shoot_d. 2020-11-03 22:41:24 +01:00
Christoph Oelckers
16089e56f0 - the rest of shoot_r. 2020-11-03 22:41:24 +01:00
Christoph Oelckers
47f77a97e4 - RR shootrpg and shootwhip. 2020-11-03 22:41:24 +01:00
Christoph Oelckers
aa6dd72688 - RR shootstuff 2020-11-03 22:41:23 +01:00
Christoph Oelckers
32a7c2349e - shoot interface transitioned/operateweapon mostly done. 2020-11-03 22:01:58 +01:00
Christoph Oelckers
513744aa56 - this was nonsense. atwith is a tile number, not a sprite index. 2020-11-03 21:51:17 +01:00
Christoph Oelckers
7e29be7569 - switched checkhitwall interface to actors. 2020-11-03 21:49:57 +01:00
Christoph Oelckers
4258c27248 - switched the checkhitsprite interface to actors. 2020-11-03 21:43:50 +01:00
Christoph Oelckers
30f4057451 - removed the remaining references to 'i' from checkhitsprite_d. 2020-11-03 21:43:50 +01:00
Christoph Oelckers
a31cb23be1 - checkhitsprite_r references to 'i' removed. 2020-11-03 21:43:49 +01:00
Christoph Oelckers
1ab13688a7 - RR shootweapon 2020-11-03 21:43:49 +01:00
Christoph Oelckers
51705e5a61 - RR shootmelee. 2020-11-03 21:43:49 +01:00
Christoph Oelckers
f276a5f443 - shootlaser and shootgrowspark 2020-11-03 21:43:49 +01:00
Christoph Oelckers
badf536fef - shootstuff and shootrpg. 2020-11-03 21:43:49 +01:00
Christoph Oelckers
ca78ed9b63 - shootweapon 2020-11-03 21:43:49 +01:00
Christoph Oelckers
617c2c2503 - replaced index for sound origin in checkhitsprite_r. 2020-11-03 21:43:48 +01:00
Christoph Oelckers
41f2fe5e06 - same for checkhitsprite_r. 2020-11-03 21:43:48 +01:00
Christoph Oelckers
4443234126 - replacing sprite[sn] in checkhitsprite_d. 2020-11-03 21:43:48 +01:00
Christoph Oelckers
faa4248c5c - lotsofglass wrapper and variable renaming in checkhitsprite_d. 2020-11-03 20:43:38 +01:00
Christoph Oelckers
17737eea85 - wrapped hitscan in a variant returning an actor. 2020-11-03 20:43:38 +01:00
Christoph Oelckers
768487584e - aim and all calling instances.
This also takes care of RR's chicken arrow storing an actor reference in lotag.
2020-11-03 20:42:03 +01:00
Christoph Oelckers
8268c1b538 - shootfireball, shootflamethrowerflame, shootknee 2020-11-03 20:21:53 +01:00
Christoph Oelckers
6ee856b8c1 - added missing 'break' to SE code.
This caused the car in RR's first level to go too fast.
2020-11-03 20:21:30 +01:00
Christoph Oelckers
3fdeedcae7 - player.cpp is free of array references, except one that's unavoidable for now. 2020-11-03 19:25:07 +01:00
Christoph Oelckers
79f850d126 - PlayerColorChanged, hits, hitasprite. 2020-11-03 19:21:44 +01:00
Christoph Oelckers
1fcd5eef47 - CON game access interface done. 2020-11-03 19:21:44 +01:00
Christoph Oelckers
f5cccb0df2 - actorflag, actorfella, automap, animateaccess, holoduke spawn, initreactor.
# Conflicts:
#	source/games/duke/src/game_misc.cpp
2020-11-03 19:21:43 +01:00
Christoph Oelckers
2db8ace275 - eliminated all array accesses in game_misc.cpp. 2020-11-03 19:21:43 +01:00
Christoph Oelckers
61013af910 - fixed three crashes found when testing WW2GI. 2020-11-03 19:21:43 +01:00
Christoph Oelckers
a514910aa4 - use an actor pointer in Get/SetGameVarID's parameters to weed out the ordering screwups. 2020-11-03 19:21:43 +01:00
Christoph Oelckers
de92287d0b - fixed the messed up parameter order of OnEvent.
This should serve as a textbook example why passing around indices is a very, very bad idea!
2020-11-03 19:21:42 +01:00
Christoph Oelckers
c1b5b17541 - removed a few references in animatesprites. 2020-11-03 19:21:42 +01:00
Christoph Oelckers
3ea6887c43 - replaced a bit more. 2020-11-03 19:21:42 +01:00
Christoph Oelckers
2c573a720b - starting at the bottom of player_r.cpp. 2020-11-03 19:21:42 +01:00
Christoph Oelckers
33f730baf3 - replaced "sprite[p->i]" globally. 2020-11-03 19:21:42 +01:00
Christoph Oelckers
b5309a6410 - some quick'n easy replacements. 2020-11-03 19:21:42 +01:00
Christoph Oelckers
cd70818d54 - added a few NULL checks. 2020-11-03 07:12:11 +01:00
Christoph Oelckers
b2497b346c - use GetActor() wrapper in hud weapon code. 2020-11-03 07:06:30 +01:00
Christoph Oelckers
f729f7d7a3 - renamed a few things in animatesprites.
This function will need special handling later, for now let's just reduce the work surface to a few pointers.
2020-11-03 07:06:30 +01:00
Christoph Oelckers
ac58dd8017 - execute. 2020-11-03 07:06:30 +01:00
Christoph Oelckers
8f815f9391 - LoadActor. 2020-11-03 07:06:29 +01:00
Christoph Oelckers
da9c4d90a2 - parse - part 7. 2020-11-03 07:06:29 +01:00
Christoph Oelckers
38817c3bee - parse - part 6. 2020-11-03 07:06:29 +01:00
Christoph Oelckers
aa3d1fdcad - parse - part 5. 2020-11-03 07:06:29 +01:00
Christoph Oelckers
7438b57f23 - parse - part 4. 2020-11-03 07:06:29 +01:00
Christoph Oelckers
59d9138b77 - parse - part 3. 2020-11-03 07:06:28 +01:00
Christoph Oelckers
65fc6dd3c7 - parse - part 2. 2020-11-03 07:06:28 +01:00
Christoph Oelckers
8bdeb66dcb - parse - part 1. 2020-11-03 07:06:28 +01:00
Christoph Oelckers
0fac102c26 - renamed variables in ifcansee. 2020-11-03 07:06:28 +01:00
Christoph Oelckers
83217ee620 - ifcansee. 2020-11-03 07:06:27 +01:00
Christoph Oelckers
83b47f60b3 - ifcanshoottarget. 2020-11-03 07:06:27 +01:00
Christoph Oelckers
ea9a8642b0 - doactor.
# Conflicts:
#	source/games/duke/src/gameexec.cpp
2020-11-03 07:06:27 +01:00
Christoph Oelckers
669fcc967f - cheats.cpp and ccmds.cpp handled.
# Conflicts:
#	source/games/duke/src/cheats.cpp
2020-11-03 07:06:27 +01:00
Christoph Oelckers
ad84c8149e - the rest of sectors.cpp 2020-11-03 07:06:27 +01:00
Christoph Oelckers
4236f800f6 - operateactivators and operatemasterswitches. 2020-11-03 07:06:26 +01:00
Christoph Oelckers
7635fc9ad6 - operatesectors. 2020-11-03 07:06:26 +01:00
Christoph Oelckers
326ca9e172 - handle_st28, 2020-11-03 07:06:26 +01:00
Christoph Oelckers
06695073d0 - handle_st27. 2020-11-03 07:06:26 +01:00
Christoph Oelckers
d4c53226d0 - handle_st25. 2020-11-03 07:06:26 +01:00
Christoph Oelckers
fd8ee214f5 - handle_st23. 2020-11-03 07:06:25 +01:00
Christoph Oelckers
e6507887d3 - handle_st20. 2020-11-03 07:06:25 +01:00
Christoph Oelckers
2afbbcb157 - handle_st29. 2020-11-03 07:06:25 +01:00
Christoph Oelckers
7c491742f9 - handle_st15. 2020-11-03 07:06:25 +01:00
Christoph Oelckers
c9c649d3f8 - crash fix with null pointer. 2020-11-03 07:05:51 +01:00
Christoph Oelckers
88adef3caa - split up operatesectors into more digestable pieces. 2020-11-03 07:03:01 +01:00
Christoph Oelckers
4dd9be7b6d ..
- activatewarpelevators
2020-11-03 06:52:26 +01:00
Christoph Oelckers
1a300aa220 - fixed GC crash with new statusbar code.
It looks GZDoom never run in the case where using Create<> to create an object this left a pointer uninitialized.
To be safe, use Calloc instead of Malloc to get the memory for the new object so that everything is nulled.
2020-11-03 06:51:42 +01:00
Christoph Oelckers
8d1409a708 - bring weaprec handling of RR in line with Duke.
This code set a sprite index where a tile number is expected by all other code checking this array.
In the stock game this should never trigger, though, as the actor being checked is the burning dynamite which cannot be picked up again as-is.
2020-11-03 06:51:29 +01:00
Christoph Oelckers
595a2156e4 - fixed bad spawn owner in refactored loop. 2020-11-02 21:45:36 +01:00
Mitchell Richters
6dd2f31156 - WHaven: Set enginecompatibility_mode to ENGINECOMPATIBILITY_19950829 in app_init(). 2020-11-02 22:31:36 +11:00
Mitchell Richters
4382ab09b8 - WHaven: Fix issues with smoothratio. 2020-11-02 22:31:33 +11:00
Christoph Oelckers
6adc2f8e55 - findplayer 2020-11-01 17:07:47 +01:00
Christoph Oelckers
fa5b48d270 - check_activator_motion, doanimations. 2020-11-01 17:07:47 +01:00
Christoph Oelckers
b2a2232260 - callsound 2020-11-01 17:07:46 +01:00
Christoph Oelckers
3c19f8e44e - the last remaining small functions in actors_d.cpp and actors_r.cpp. 2020-11-01 17:07:46 +01:00
Christoph Oelckers
52c342a2ff - renamed variables in move functions. 2020-11-01 17:07:46 +01:00
Christoph Oelckers
e6e53d1954 - move, fakebubbaspawn and destroyit. 2020-11-01 17:07:46 +01:00
Christoph Oelckers
a6f9673403 - moveeffectors. 2020-11-01 17:07:46 +01:00
Christoph Oelckers
c438061b83 - made SE06 and SE28 separate functions. 2020-11-01 17:07:45 +01:00
Christoph Oelckers
f5338d0acb - moveexplosions. 2020-11-01 17:07:45 +01:00
Christoph Oelckers
76c4eeddc4 - moveactors. 2020-11-01 17:07:45 +01:00
Christoph Oelckers
2ad31247ec - henstand and bowling. 2020-11-01 17:07:45 +01:00
Christoph Oelckers
a31a19d430 - fixed 2 bad iterators. 2020-11-01 17:07:45 +01:00
Christoph Oelckers
0c2a7de550 - fixed uninitialized variable with 'hitasprite'. 2020-11-01 17:06:52 +01:00
Christoph Oelckers
fd83b87b94 - rr_specialstats. 2020-11-01 15:25:18 +01:00
Christoph Oelckers
0ec7732bd4 - rrra_specialstats. 2020-11-01 15:22:34 +01:00
Christoph Oelckers
63646e7c5c - heavyhbomb 2020-11-01 15:19:51 +01:00
Christoph Oelckers
441ed6bdc5 - flamethrowerflame 2020-11-01 15:17:49 +01:00
Christoph Oelckers
44fc4f9243 - greenslime. 2020-11-01 15:11:49 +01:00
Christoph Oelckers
d4ee8a1c48 - removed a few redundant GetIndex calls. 2020-11-01 15:08:48 +01:00
Christoph Oelckers
9826ff54f9 - movetransports. 2020-11-01 15:05:21 +01:00
Christoph Oelckers
076dcef5d0 - renamed variables in movetransports. 2020-11-01 14:56:23 +01:00
Christoph Oelckers
2d1b8a2b4b - use the cleaned up movesprite interface in moveweapons. 2020-11-01 14:51:32 +01:00
Christoph Oelckers
3aaf2e80a9 - moveweapons. 2020-11-01 14:46:05 +01:00
Christoph Oelckers
00b12c5fd6 - weaponcommon subfunctions. 2020-11-01 12:27:43 +01:00
Christoph Oelckers
c5f7c29ead - chickenarrow and movefireball. 2020-11-01 12:23:14 +01:00
Christoph Oelckers
a3860de440 - movestandables. 2020-11-01 12:09:01 +01:00
Christoph Oelckers
1af39eb29d - move*bolt. 2020-11-01 12:08:39 +01:00
Christoph Oelckers
dc75037d01 - movecrack, movefireext, moveviewscreen. 2020-11-01 12:06:20 +01:00
Christoph Oelckers
a4ac7764de - movetripbomb. 2020-11-01 12:02:58 +01:00
Christoph Oelckers
d9b6be83b3 - movefallers. 2020-11-01 12:00:29 +01:00
Christoph Oelckers
7e8be10b04 - movefta and ifhitsectors. 2020-11-01 11:58:41 +01:00
Christoph Oelckers
861342a278 - guts_d and guts_r. 2020-11-01 11:32:34 +01:00
Christoph Oelckers
90d1c5f7bb - ifsquished. 2020-11-01 10:55:38 +01:00
Christoph Oelckers
4c9655b110 - check_fta_sounds. 2020-11-01 10:53:45 +01:00
Christoph Oelckers
b9aa5de217 - fixed merge error in handle_se00. 2020-11-01 10:52:38 +01:00
Christoph Oelckers
7967391728 - actors_lava.cpp handled. 2020-11-01 10:50:10 +01:00
Christoph Oelckers
6a97b3d58e - renamed variables. 2020-11-01 10:49:50 +01:00
Christoph Oelckers
f0b1ab504d - fall_common and its fallspecial subfunction. 2020-11-01 10:48:26 +01:00
Christoph Oelckers
185b795481 - renamed variables in alterang. 2020-11-01 10:45:09 +01:00
Christoph Oelckers
85ea1df76a - alterang 2020-11-01 10:44:16 +01:00
Christoph Oelckers
31e5023004 - dodge, furthestcanseepoint, furthestangle. 2020-11-01 10:41:25 +01:00
Christoph Oelckers
4e675ea322 - makeitfall 2020-11-01 10:41:24 +01:00
Christoph Oelckers
291edcdab8 - getglobalz 2020-11-01 10:41:16 +01:00
Christoph Oelckers
8f75a58343 - shared SE31 code. 2020-11-01 10:31:41 +01:00
Christoph Oelckers
21fb3fb7bb - shared SE25 code. 2020-11-01 10:27:54 +01:00
Christoph Oelckers
00f5a08390 - shared SE24 code. 2020-11-01 10:27:41 +01:00
Christoph Oelckers
02813802d4 - the 5 remaining shared SE handlers. 2020-11-01 10:12:27 +01:00
Christoph Oelckers
769bc3bd22 - handle_se20-26. 2020-11-01 10:02:58 +01:00
Christoph Oelckers
5d837176de - handle_se18+19 2020-11-01 09:58:39 +01:00
Christoph Oelckers
5b096ea35e - handle_se15-17. 2020-11-01 09:53:50 +01:00
Christoph Oelckers
33377e1810 - renamed a few things. 2020-11-01 09:45:37 +01:00
Christoph Oelckers
b585192721 - handle_se11-13. 2020-11-01 09:37:41 +01:00
Christoph Oelckers
83a9d99bd9 - use symbolic constants in spawneffectors. 2020-11-01 09:00:16 +01:00
Christoph Oelckers
45905b9137 - handle_se05, 08, 10. 2020-11-01 08:51:13 +01:00
Christoph Oelckers
2edc7168ca - handle SE02-SE04. 2020-11-01 08:43:24 +01:00
Christoph Oelckers
3e62550489 - consolidated gutsdir functions by making the spawn offset for Duke's commander an actor property. 2020-11-01 08:23:03 +01:00
Christoph Oelckers
80aab4b5f7 - handle_se30. 2020-11-01 08:22:47 +01:00
Christoph Oelckers
a6468970c6 - renamed some variables. 2020-11-01 08:14:40 +01:00
Christoph Oelckers
2dd2ba1469 - handle_SE14 function signature and recordoldspritepos 2020-11-01 08:13:29 +01:00
Christoph Oelckers
d2b4cf6770 - reformatting 2020-11-01 08:03:07 +01:00
Christoph Oelckers
1b6161d472 - SE14 part 4 2020-11-01 08:00:43 +01:00
Christoph Oelckers
1cffc76c4e - SE14 part 3 2020-11-01 08:00:03 +01:00
Christoph Oelckers
92f95ea195 - SE14 part 2 2020-11-01 07:56:49 +01:00
Christoph Oelckers
e13b61f496 - SE14 part 1
Doing this in smaller chunks because this function requires quite extensive adjustments.
2020-11-01 07:51:50 +01:00
Christoph Oelckers
1ce2600a43 - SE 0 and 1 handlers. 2020-11-01 07:36:49 +01:00
Christoph Oelckers
a37cfe2913 - renamed variables in handle_se00. 2020-11-01 07:28:49 +01:00
Christoph Oelckers
e9d6fb2bb5 - jibs, bloodpool, shell, glasspieces and scrap. 2020-11-01 07:27:15 +01:00
Christoph Oelckers
6cbe74e115 - forcesphere, watersplash2, frameeffect and money. 2020-11-01 07:24:00 +01:00
Christoph Oelckers
6e1d3a025a - ooz, reactor and camera. 2020-11-01 07:23:27 +01:00
Christoph Oelckers
876b6d5081 - forcesphere and recon. 2020-11-01 07:20:17 +01:00
Christoph Oelckers
d0e12586ba - added a higher level interface tp clipmove that unmangles its return. 2020-11-01 07:16:44 +01:00
Christoph Oelckers
3d16d9f44a - respawnmarker, rat and queball. 2020-11-01 07:15:57 +01:00
Christoph Oelckers
6257ebc30c - bounce, movetongue and rpgexplode. 2020-11-01 07:11:49 +01:00
Christoph Oelckers
e001b3117f - movetouchplate, moveooz, movecanwithsomething.
# Conflicts:
#	source/games/duke/src/funct.h
2020-11-01 07:07:59 +01:00
Christoph Oelckers
b7f26c064d - 3 smaller functions. 2020-11-01 06:54:14 +01:00
Christoph Oelckers
422d9bfebd - text update. 2020-10-31 14:08:07 +01:00
Christoph Oelckers
91ebe9bcc2 - prepared everything for use of the string table.
# Conflicts:
#	wadsrc/static/language.csv
2020-10-31 14:08:07 +01:00
Christoph Oelckers
fd3303ab2b - set up the Witchaven specific controls and their menu entries.
Sorry, no text file yet.
2020-10-31 14:07:43 +01:00
Christoph Oelckers
7f921be824 - activated weapon code and reverted quick graphics test.
Weapons do not work yet, though.
2020-10-31 14:07:43 +01:00
Christoph Oelckers
e33c7d54ac - added the weapon drawer. 2020-10-31 14:07:43 +01:00
Christoph Oelckers
25a0ce51ba - route the input to the player.
Still very broken.
2020-10-31 14:07:42 +01:00
Christoph Oelckers
dc24dcadf5 - added input code.
Not tested yet!
2020-10-31 14:07:42 +01:00
Christoph Oelckers
725cacb8e8 - added a bit more of the GameInterface. 2020-10-31 14:07:42 +01:00
Christoph Oelckers
a31bc4be6b - added the needed parts to start the game from the menu.
Levels render, but gameplay has not been hooked up yet.
2020-10-31 14:07:42 +01:00
Christoph Oelckers
f09db4c943 - fixed issues with the skill menu. 2020-10-31 14:07:41 +01:00
Christoph Oelckers
629737bd72 - main 3D render function. 2020-10-31 14:07:41 +01:00
Christoph Oelckers
15eae9c4a2 - added native notify text positioning for Witchaven.
Nothing fancy here - just a single line of text in the top left - just offset a bit from the edge of the screen.
2020-10-31 14:07:41 +01:00
Christoph Oelckers
30e96293cf - implemented the game progression interface. 2020-10-31 14:07:40 +01:00
Christoph Oelckers
9952e6d2b0 - added 'dophysics'. 2020-10-31 14:07:40 +01:00
Christoph Oelckers
434e4479a1 - added the loading screen - although this will be disabled just like the other games for now. 2020-10-31 14:07:40 +01:00
Christoph Oelckers
abc61902bb - added the WH! victory sequence. 2020-10-31 14:07:40 +01:00
Christoph Oelckers
18e37577bc - ported the statistics screen. 2020-10-31 14:07:39 +01:00
Christoph Oelckers
0e051a9d96 - precaching for WH. 2020-10-31 14:07:39 +01:00
Christoph Oelckers
33f44c5627 - temporarily reinstated rotatesprite, for easier porting of the 2D code. This will have to be removed again afterward. 2020-10-31 14:07:39 +01:00
Christoph Oelckers
23c6f4434e - analyzesprites function. 2020-10-31 14:07:39 +01:00
Christoph Oelckers
5c22908dc2 - added the screen flash code, although I have no idea how to properly render this.
What's there is an extrapolation of how Exhumed handled a similar blend mode but this needs thorough testing to fine tune.
2020-10-31 14:07:38 +01:00
Christoph Oelckers
fca94d64ed - added savegame code. 2020-10-31 14:07:38 +01:00
Christoph Oelckers
0a03331400 - added a bit more code for the main loop. 2020-10-31 14:07:38 +01:00
Christoph Oelckers
82f23a4733 - implemented the sound system for Witchaven.
The sound system itself is as primitive as it can get, the main change was to link sounds to sprites and not just their coordinates.
2020-10-31 14:07:37 +01:00
Christoph Oelckers
45d2fd95a9 - implementing the Witchaven menu.
Main menu is working, skill menu still to do.
2020-10-31 14:06:12 +01:00
Christoph Oelckers
6dfd36dba7 - draw the menu background. 2020-10-31 14:06:12 +01:00
Christoph Oelckers
f32e9b25e0 - Witchaven 2 font 2020-10-31 14:05:39 +01:00
Christoph Oelckers
2bebe0fa6a - the WH intro movies are playing now. 2020-10-31 14:05:01 +01:00
Christoph Oelckers
a23839b8e8 WIP 2020-10-31 14:05:01 +01:00
Christoph Oelckers
7f7a576961 - music code. 2020-10-31 14:05:00 +01:00
Christoph Oelckers
a4ce1688d5 - hooked up the Witchaven frontend with the core. 2020-10-31 14:05:00 +01:00
Christoph Oelckers
d9757017ee - re-added the texture animation code. 2020-10-31 14:05:00 +01:00
Christoph Oelckers
e1a9ce86be - grpinfo IDs. 2020-10-31 14:05:00 +01:00
Christoph Oelckers
ff06895470 - added game identifiers for Witchaven 1+2
Lacking any main resource file, this checks for the JOESND containers to avoid rewriting the detection logic to work without containers.
2020-10-31 14:05:00 +01:00
Christoph Oelckers
fb2629002f - fixed things so that everything compiles.
This isn't usable yet because only the play code is present.
2020-10-31 14:04:59 +01:00
Christoph Oelckers
f50b0f937d - added most of the remaining play code. 2020-10-31 14:04:59 +01:00
Christoph Oelckers
96637a25d1 - importing Witchaven code from GDX
This is a straight port of the GDX Java code to C++ with as few changes made as possible.
Part 1: AI code.
2020-10-31 14:04:59 +01:00
Christoph Oelckers
c42ff35dc5 - hitradius
# Conflicts:
#	source/games/duke/src/actors_d.cpp
#	source/games/duke/src/actors_r.cpp
2020-10-31 13:24:31 +01:00
Christoph Oelckers
7dbe9d4bfb - renaming in hitradius 2020-10-31 13:24:30 +01:00
Christoph Oelckers
81717b54ee - detonate and movemasterswitch.
# Conflicts:
#	source/games/duke/src/actors.cpp
2020-10-31 13:24:30 +01:00
Christoph Oelckers
89d750c94f - renaming in movemasterswitch and detonate. 2020-10-31 13:24:30 +01:00
Christoph Oelckers
38e0ac1e3f - movefountain and moveflammable.
# Conflicts:
#	source/games/duke/src/actors.cpp
2020-10-31 13:24:30 +01:00
Christoph Oelckers
544078c9ba - moveflammable renaming. 2020-10-31 13:24:29 +01:00
Christoph Oelckers
7a482c6284 - make DHUDFont an object. 2020-10-31 13:20:54 +01:00
Christoph Oelckers
7de6528a1f - the status bars work as objects.
# Conflicts:
#	source/common/menu/menudef.cpp
2020-10-31 13:20:54 +01:00
Christoph Oelckers
3b7ce26c86 - final function moves and renamed hud_scale to hud_scalefactor. 2020-10-31 13:20:00 +01:00
Christoph Oelckers
0270dcd5f6 - cleaned up leftovers. 2020-10-31 13:20:00 +01:00
Christoph Oelckers
37024df405 - Status bar draw code is now identical with GZDoom's. 2020-10-31 13:20:00 +01:00
Christoph Oelckers
3a0c84d3ca - split statusbar.cpp in two.
To keep Raze-exclusive content out of the main file that's about to be edited.
2020-10-31 13:19:59 +01:00
Christoph Oelckers
41e1e9b51c - ifhitbyweapon.
# Conflicts:
#	source/games/duke/src/actors_d.cpp
#	source/games/duke/src/actors_r.cpp
2020-10-31 13:19:26 +01:00
Christoph Oelckers
92c21e7259 - ifhitbyweapon cleanup.
Variables renamed and array accesses replaced with pointers in RR version.
2020-10-31 13:19:26 +01:00
Christoph Oelckers
28d0bc7477 - movecrane interface cleanup. 2020-10-31 13:19:26 +01:00
Christoph Oelckers
08f3e9e722 - variable renaming in movecrane for clarity 2020-10-31 13:19:25 +01:00
Christoph Oelckers
d95131cb4d - actor iterators for movefx and its RRRA subfunction. 2020-10-31 13:19:25 +01:00
Christoph Oelckers
801e94ca54 - renamed variables in movefx for clarity. 2020-10-31 13:19:25 +01:00
Christoph Oelckers
be0880f106 - iterators in movedummyplayers and moveplayers updated. 2020-10-31 13:19:25 +01:00
Christoph Oelckers
cf8da6c6e3 - variable renaming for clarity. 2020-10-31 13:19:25 +01:00
Christoph Oelckers
b03a637e10 - ms function. 2020-10-31 13:19:24 +01:00
Christoph Oelckers
c53653106e - fixed compilation. 2020-10-31 12:46:53 +01:00
Christoph Oelckers
e5ce1da9a3 - this is 0.7.3. 2020-10-31 12:41:17 +01:00
Christoph Oelckers
668c34d4c1 - ensure for all games that deleting a sprite unlinks all sounds from it.
This was only present in Duke but is needed for all games.
2020-10-29 00:08:06 +01:00
Christoph Oelckers
f341fbc1fb - backend update. 2020-10-28 21:46:43 +01:00
Christoph Oelckers
5abc5c0509 - option menu positioning fix. 2020-10-25 17:11:45 +01:00
Christoph Oelckers
7dda316391 - define console background for Blood. 2020-10-25 15:31:20 +01:00
Christoph Oelckers
94892cc1f8 - set up the main menu background as default console background for Duke and its offspring games. 2020-10-25 15:06:06 +01:00
Christoph Oelckers
74df8f55da - moved c_console.cpp to 'common'. 2020-10-25 13:26:40 +01:00
Christoph Oelckers
8d3585afe1 - console cleanup.
The bulk of the console is now free of game dependencies.
2020-10-25 13:14:42 +01:00
Christoph Oelckers
8bfb0b1e20 - do not dim the objects of the Exhumed background screen.
This was for dimming the console background but since the console already dims its background itself it made the background nearly opaque black.
2020-10-25 09:22:17 +01:00
Christoph Oelckers
273ad5e133 - backend update 2020-10-25 09:20:26 +01:00
Christoph Oelckers
570897005c - added sound playback to the Smacker video player.
Thanks to Blood's weird setup and the resulting lack of sound support in NBlood's player I never realized that this is a fully featured movie format that actually has sound support.
Now the soundtrack will play if present.
2020-10-25 00:46:39 +02:00
Christoph Oelckers
1a21e73cd9 - fixed bad collision state check in movesprite.
Fixes #147
2020-10-24 21:36:27 +02:00
Christoph Oelckers
aeda977bc2 - fixed incomplete font initialization. 2020-10-24 21:02:00 +02:00
Christoph Oelckers
9a6a98ada9 - RR: Picking up the crossbow should also enable the dynamite as a separate weapon. 2020-10-24 20:43:36 +02:00
Christoph Oelckers
f02cf7e067 - fixed issues with fog setup and added missing fog to Exhumed's red palette.
Foggy lookups should not attempt to calculate a fade ramp, that does not work if the color gets brighter with distance.
Fixes #143
2020-10-24 20:33:33 +02:00
Christoph Oelckers
acda4b7799 - fixed Duke's RPG explosion
Fixes #146
2020-10-24 19:44:10 +02:00
Christoph Oelckers
28a926eb9a - Blood: Copy the 'shade' member for sprites.
This got lost when the loader was transitioned to using a local buffer to read the map data.
Fixes #140
2020-10-24 19:11:58 +02:00
Christoph Oelckers
c33525381e - undid the native part of GetFullscreenRect because the functions are not compatible. 2020-10-24 18:13:45 +02:00
Christoph Oelckers
ce03813ab1 - Exhumed: Fixed the invulnerability item.
Fixes #137
2020-10-24 18:03:06 +02:00
Christoph Oelckers
c82d9d2908 - backend update from GZDoom. 2020-10-24 17:30:47 +02:00
sinisterseed
8b03abcd00 - allow Wang to make sounds when healing with "Player Speech" turned off.
Looks like I overlooked this one while doing the speeches, which left Wang completely silent when healing. This allows his relief sound to play when the toggle is off, but the "Acupuncture" joke will still be silenced.
2020-10-24 14:24:54 +03:00
Christoph Oelckers
82d87deb30 - added missing includes for release build. 2020-10-24 10:01:14 +02:00
Christoph Oelckers
8fd0fe5955 - changed the spriteq to use pointers instead of indices. 2020-10-24 09:40:10 +02:00
Christoph Oelckers
34e39dd221 - pass spawner as an actor pointer to 'lotsofstuff'.
Allows doing this without using sprite indices.
2020-10-24 09:36:35 +02:00
Christoph Oelckers
a5b3681630 - foundation for a better collision info management.
The way this is handled is the main reason why Build maps are size limited, but since it is extremely invasive it needs to be taken out of the game code piece by piece, this is the framework for doing this for Duke.
2020-10-24 09:31:15 +02:00
Christoph Oelckers
16e49ac1fd - use pointer for sprite access in movesprite_r.
Bringing it in line with movesprite_d.
2020-10-24 09:20:45 +02:00
Christoph Oelckers
42e5201e9f - replaced a few array accesses where a pointer is already available. 2020-10-24 09:11:45 +02:00
Christoph Oelckers
87e4c0fa7d - experimented a bit with optimizing the spawn function's use. 2020-10-24 09:05:54 +02:00
Christoph Oelckers
356060e127 - optimized another batch of array accesses in the spawn functions. 2020-10-24 08:52:21 +02:00
Christoph Oelckers
6311898152 - renamed a few disassembly variables. 2020-10-24 07:48:51 +02:00
Christoph Oelckers
5cde56de28 - another case of replacing a long list of array accesses with a pointer. 2020-10-24 07:39:51 +02:00
Christoph Oelckers
03da2011b6 - array cleanup in spawn.cpp. 2020-10-24 07:34:54 +02:00
Christoph Oelckers
d237471b79 - DoActor cleanup.
Using pointers instead of repeated array accesses now.
2020-10-24 07:25:25 +02:00
Christoph Oelckers
00b8a75de4 - made cheatGod function less ugly. 2020-10-24 07:19:53 +02:00
Christoph Oelckers
8868be659f - make snd_speech toggle work in SW. 2020-10-23 22:53:02 +02:00
sinisterseed
f78d9fb770 - marked most of Wang's speech lines to be used with the "Player Speech" toggle. 2020-10-23 22:38:57 +02:00
Christoph Oelckers
46d90f5d49 - clearcamera and ssp. 2020-10-23 22:37:38 +02:00
Mitchell Richters
be21cb0602 - Duke: Fix give CCMD to ensure it works after being resurrected from the dead via god cheat.
* Extension to 63cb7dd2bd.
2020-10-22 20:18:41 +11:00
Mitchell Richters
f46d9499a5 - Duke (RR): Adjust when to call DrawWeaponBar() within Statusbar().
* Partially addresses #1 of https://forum.zdoom.org/viewtopic.php?f=340&t=70284.
2020-10-22 19:54:39 +11:00
Mitchell Richters
e63f5e1ae7 - Duke (RR): Fix bad text setup in DrawWeaponBar().
* Fixes #2 of https://forum.zdoom.org/viewtopic.php?f=340&t=70284.
2020-10-22 19:40:39 +11:00
Mitchell Richters
d90badef6f - Exhumed: Amend b6ec41e2b1 to ensure next/prev weapon is actually available before trying to switch to it.
* Fixes https://forum.zdoom.org/viewtopic.php?f=340&t=70266.
2020-10-22 19:30:04 +11:00
Christoph Oelckers
e702a13ef4 - close the quickload and quicksave confirmation screens after selection.
Fixes #139
2020-10-22 01:01:28 +02:00
Mitchell Richters
c98f7ac491 - gameinput.cpp: Don't set a target when serialising PlayerHorizon struct.
* Fixes #131.
2020-10-22 09:41:21 +11:00
Mitchell Richters
63cb7dd2bd - Duke: Fix rotscrnang locked when reviving player after death via DNKROZ cheat.
* Fixes #138.
2020-10-22 09:21:35 +11:00
Christoph Oelckers
9440bc0c6d - avoid using ptrdiff_t in templated contexts.
Some systems map this to 'long' instead of 'long long' and not everything provides handlers for this type.
2020-10-21 19:19:45 +02:00
Christoph Oelckers
9cdaaff42b - migrated EGS and deletesprite to new actor interface.
Inline wrappers for old code exist.
The backupplayer inline was moved into player.cpp because that's the only place it gets used.
2020-10-21 19:14:41 +02:00
Christoph Oelckers
b8b79b6fa9 - renamed a few things. 2020-10-21 18:42:47 +02:00
Christoph Oelckers
b1f2475230 - serialize null pointers correctly. 2020-10-21 16:31:18 +02:00
Christoph Oelckers
6f4a0c94e8 - something on player is now a pointer as well 2020-10-21 16:31:18 +02:00
Christoph Oelckers
72329eb01b - wackedbyactor, too. 2020-10-21 16:31:18 +02:00
Christoph Oelckers
e94274a543 - holoduke_on is now a pointer as well. 2020-10-21 16:31:18 +02:00
Christoph Oelckers
d7604a3160 - made on_crane a pointer as well. 2020-10-21 16:31:17 +02:00
Christoph Oelckers
7c88de0b42 - made player.actorsqu a pointer and added the needed infrastructure for that. 2020-10-21 16:31:17 +02:00
Christoph Oelckers
39c154dc15 - fixed compile errors 2020-10-21 16:31:17 +02:00
Christoph Oelckers
8aca0774dc - adding more helper wrappers. 2020-10-21 16:31:17 +02:00
Christoph Oelckers
0f2c19522e - defined the iterators. 2020-10-21 16:31:17 +02:00
Christoph Oelckers
78afb67c7f - setup for Duke actor data transition to something more scripting friendly.
The main problem here is that there's two data arrays representing an actor - sprite and hittype and the engine only uses indices for reference.
By setting up hittype to contain a sprite reference, the function and iterator interface can be rewritten to use a single pointer instead to represent an actor.
The main objective is to reduce the number of accesses to the global arrays which constitute the biggest refactoring blocker.
2020-10-21 16:31:17 +02:00
Christoph Oelckers
05c095e448 - fixed parameter ordering for WW2GI's change weapon event call.
This happens when variables are ambiguously named... :?
2020-10-21 07:31:21 +02:00
Christoph Oelckers
99e3eeb19e - split up shoot_r as well and consolidated both blood splat functions. 2020-10-21 01:03:38 +02:00
Christoph Oelckers
4d1e229734 - split shoot_d into smaller, easier to manage chunks.
1100 lines for a single function is too much.
2020-10-21 00:17:09 +02:00
Christoph Oelckers
699c32ff4a - fixed quicksave setup
Fixes #133
2020-10-20 23:34:30 +02:00
Christoph Oelckers
a17f529c49 - fixed freezer projectile not moving.
These endless fallthrough switch/case blocks are a genuine menace. :(
Fixes #136
2020-10-20 23:21:38 +02:00
Christoph Oelckers
3004185646 - fixed bossguy. 2020-10-19 23:58:30 +02:00
Mitchell Richters
a00da23654 - searchpaths.cpp: When filtering duplicate games to delete, if CRC matches and CRC == 0, test whether name matches as well.
* Cryptic Passage for Blood has no CRC and therefore was failing this catch.
* Fixes #130
2020-10-19 20:46:22 +11:00
Christoph Oelckers
66c097b3b8 - fixed bad Holoduke check in alterang. 2020-10-18 21:54:30 +02:00
Mitchell Richters
ff9c7bf0bb - binaryangle.h: Create osum() for PlayerHorizon and PlayerAngle structs and use within each struct's interpolatedsum() method.
* Already doubled up by calculating `sum()` again within `interpolatedsum()` and no point changing that out without an `osum()`.
2020-10-18 22:43:42 +11:00
Mitchell Richters
cd683e6511 - binaryangle.h: Add missed line from 4e07942cff to calculate interpolation ratio using multiply instead of divide. Hopefully in the future we can just use a true double between 0 and 1 like GZDoom... 2020-10-18 22:05:21 +11:00
Mitchell Richters
4e07942cff - binaryangle.h: Minor clean up of PlayerHorizon/PlayerAngle structs.
* Sync PlayerHorizon's `settarget()` with changes to PlayerAngle's from 19d9e1a947.
* For each struct's `addadjustment()`, multiply value by unit there rather than always within `processhelpers()`.
* Properly use `xs_CRoundToUInt()` within PlayerAngle's `processhelpers()` method instead of the signed version.
* Use `abs()` within PlayerAngle's `processhelpers()` like PlayerHorizon's.
2020-10-18 22:00:39 +11:00
Mitchell Richters
19d9e1a947 - binaryangle.h: Fix issues with PlayerAngle.settarget() following changes in bf5bd01164.
* Just was not working whatsoever, really...
2020-10-18 21:31:36 +11:00
Mitchell Richters
666fe71201 - SW: Repair issues with sector object sounds following a506b45369.
* Fixes #132
2020-10-18 21:23:41 +11:00
Christoph Oelckers
a8eaf3575f - warning fixed and constants used. 2020-10-18 12:18:19 +02:00
Christoph Oelckers
c2828fe2e3 fixed undefined end of list behavior of iterators
Also fixed a few warnings
2020-10-18 12:14:05 +02:00
Christoph Oelckers
f4c79161ad - fixed crash when opening the first gate in RRRA's E1L1.
There was some poor coding at play here that fell victim to changed execution order.
Changed everything so that problem cases always get dealt with properly.
2020-10-18 12:10:46 +02:00
Christoph Oelckers
4d3135f4b8 - cleanup and consolidation of moveweapons_r. 2020-10-18 10:42:26 +02:00
Christoph Oelckers
08e29396e5 - split moveweapons_d further up into more smaller parts. 2020-10-18 09:45:41 +02:00
Christoph Oelckers
2b79b29fef - further splitting of moveweapons_d.
Progress with this but still not enough yet to break it down into manageable parts.
2020-10-18 08:38:29 +02:00
Christoph Oelckers
94e8213caf - split fireball handling out of moveweapons_d to reduce the function's size. 2020-10-17 19:53:04 +02:00
Christoph Oelckers
bc0a55de41 - backend update. 2020-10-17 16:01:31 +02:00
Mitchell Richters
a9ad043c36 - Partially resolve issues loading autoexec.cfg files.
* This works for Raze's running directory, but is not pulling in autoexec.cfg files from subdirectories from Raze's running directory (Duke, Duke.Duke) or paths where game content resides (Steam, for instance).
* Partially addresses #110
2020-10-17 12:58:00 +11:00
Mitchell Richters
3582717c43 - Duke: Fix issues in recordoldspritepos() following changes in 7043092fd0.
* Fixes #129.
2020-10-16 14:17:19 +11:00
Mitchell Richters
6385539144 - Port over i_timescale CVAR from GZDoom for use with debugging.
* Had situations where this would have been useful instead of manipulating GameTicRate and rebuilding.
2020-10-16 10:31:11 +11:00
Christoph Oelckers
197a5f642a - properly delete backing images in the texture manager.
Although the images themselves are automatically taken down, any memory they allocate is not - and some of the special tile classes do need dynamic storage.
2020-10-15 20:22:41 +02:00
Christoph Oelckers
4f7c0b696c - and finally the iterators in the backend. 2020-10-15 20:22:40 +02:00
Christoph Oelckers
db4f0d041e - all iterators in Exhumed handled. 2020-10-15 20:22:40 +02:00
Christoph Oelckers
a8e7d1ef74 - the rest for SW. 2020-10-15 20:22:40 +02:00
Christoph Oelckers
6eb6938bbe - another batch in SW. 2020-10-15 20:22:40 +02:00
Christoph Oelckers
727e2ceb29 - iterator variable cleanup. 2020-10-15 20:22:39 +02:00
Christoph Oelckers
679c394b29 - the second third of SW. 2020-10-15 20:22:39 +02:00
Christoph Oelckers
a506b45369 - one third of SW's iterators. 2020-10-15 20:22:39 +02:00
Christoph Oelckers
eb78b88598 - all Blood stat iterators ported. 2020-10-15 20:22:39 +02:00
Christoph Oelckers
33164694b9 - use iterator class for all stat loops in Blood's actor.cpp. 2020-10-15 20:22:38 +02:00
Christoph Oelckers
0a0a995cbd - some cleanup of build.h 2020-10-15 20:22:38 +02:00
Christoph Oelckers
be3292d29b - removed the mostly unused macros for sprite iteration. 2020-10-15 20:22:38 +02:00
Christoph Oelckers
aa5c7c3e34 - replaced all sector sprite iterators in Blood. 2020-10-15 20:22:38 +02:00
Mitchell Richters
b1536d8a0b - Duke (RRRA): Fix potential issue originating from 1bc51a7367 where horizon might have needed adjustment to 0 but wouldn't have done so.
* Previously used to determine whether to apply a horizon adjustment on whether local variable `horiz` was 0 or not (since baseline horizon was 100).
* For no particular reason, initalise `horiz` as FRACUNIT and process if it is not equal to one.
2020-10-15 20:33:28 +11:00
Mitchell Richters
db419fd618 - Duke (RRRA): Fix vehicle avel while cl_syncinput 1.
* Fully fixes #128.
2020-10-15 20:12:48 +11:00
Mitchell Richters
fb91fc49a3 - processMovement(): Add commentary around avel constants used within function and how they came to be. Also clean up some left-over code. 2020-10-15 20:12:34 +11:00
Christoph Oelckers
76e4661eea - more simple pointer replacements - lots of them... 2020-10-15 01:34:28 +02:00
Christoph Oelckers
0c95aee8f5 - some quick renames. 2020-10-15 01:34:28 +02:00
Christoph Oelckers
0b80ad8fb1 - handled the last remaining stat iterators in Duke. 2020-10-15 01:34:28 +02:00
Christoph Oelckers
53414afbe5 - all stat iterators in sectors.cpp handled. 2020-10-15 01:34:28 +02:00
Christoph Oelckers
3d36381752 - converted all stat iterators outside sector*.cpp. 2020-10-15 01:34:28 +02:00
Christoph Oelckers
760a557f73 - converted the remaining sector iterators in Duke. 2020-10-15 01:34:27 +02:00
Christoph Oelckers
758fab1804 - replaced several sector iterators in Duke code. 2020-10-15 01:34:27 +02:00
Christoph Oelckers
5c9b261823 - all sector iterators in actors_d.cpp, actors_r.cpp and actors_lava.cpp. 2020-10-15 01:34:27 +02:00
Christoph Oelckers
060b66b96b - replaced all stat iterators in actors_r.cpp. 2020-10-15 01:34:27 +02:00
Christoph Oelckers
db8b454df1 - fixed ond bad statnum 2020-10-15 01:34:27 +02:00
Christoph Oelckers
053a1d46d5 - replaced all stat iterators in actors_d.cpp. 2020-10-15 01:34:26 +02:00
Christoph Oelckers
595ec11609 - replaced all sector iterators in actors.cpp. 2020-10-15 01:34:26 +02:00
Christoph Oelckers
7043092fd0 - all stat iterators in Duke:actors.cpp replaced. 2020-10-15 01:34:26 +02:00
Christoph Oelckers
13093aef56 - a few quick ones, mostly simple search & replace. 2020-10-15 01:34:26 +02:00
Christoph Oelckers
a3601e59ef - rr_specialstats, rrra_specialstats and respawn_rrra.
(These look a lot better now. :) )
2020-10-15 01:34:26 +02:00
Christoph Oelckers
69e6bee64a - Interators for SE00 and a few others. 2020-10-15 01:34:25 +02:00
Christoph Oelckers
5d734eafa0 - Iterators and pointers for movefx, moveflammable and detonate 2020-10-15 01:34:25 +02:00
Christoph Oelckers
2358f14cd1 use iterators for moveplayers, movedummyplayers and movefallers_d. 2020-10-15 01:34:25 +02:00
Christoph Oelckers
d3a31a3ab7 - hitradius_d uses the iterator now. 2020-10-15 01:34:25 +02:00
Christoph Oelckers
922122c0bc - same for movefta_d and ifhitbyweapon_d 2020-10-15 01:34:25 +02:00
Christoph Oelckers
5bcaaf45e7 - use a pointer to access sprites in movesprite. 2020-10-15 01:34:24 +02:00
Christoph Oelckers
8ece66e55c - use the new iterators in the movetransports functions.
Also prefer pointers over array access.
2020-10-15 01:34:24 +02:00
Christoph Oelckers
91fdf160b6 - fixed clearing of actorinfo.
It overwrote memory beyond its end.
2020-10-15 01:34:24 +02:00
Mitchell Richters
e4af4f28ce - Duke (RR): Avoid integer truncation when dividing p->VBumpNow. 2020-10-15 10:27:08 +11:00
Mitchell Richters
1bc51a7367 - Duke (RR): Repair issues with horizon following changes in 09a05f354c and partially address vehicle turning speed in processVehicleInput().
* Issues with vehicle input handling with `cl_syncinput 1` still remain. Will address after work.
* Partially addresses #128.
2020-10-15 10:20:52 +11:00
Mitchell Richters
38c0af4d34 - D_AddFile(): Check the existence of the file before enumerating entire directory to find it as input might be coming in correctly. 2020-10-15 06:50:41 +11:00
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
Mitchell Richters
be42a6e28d - Amend 9d84f92c0e to just do true case-insensitivity.
* adding /home/mrichters/.config/raze/Blood/sOuNdS.rFf, 1747 lumps
2020-10-14 20:18:53 +11:00
Mitchell Richters
9d84f92c0e - Amend bce15428d5 to only check case on the filename, not the full path.
* Still to be tested when I get home, but need it committed to get it off my laptop anyway.
2020-10-14 18:58:55 +11:00
Christoph Oelckers
25d79285a3 - added the resource file name to the listmaps printout. 2020-10-14 01:13:36 +02:00
Christoph Oelckers
c17808d789 - extended 'listmaps' by also printing the display name for the map. 2020-10-14 00:58:43 +02:00
Christoph Oelckers
d368d734d3 - prototyping some refactoring helpers. 2020-10-14 00:58:21 +02:00
Mitchell Richters
fcfeafdbe9 - mapinfo.cpp: Create CCMD listmaps to return map filenames. 2020-10-14 09:38:37 +11:00
Christoph Oelckers
bfed4e179b - little bit of array access removal.
(It's going to be a long way to refactor the sprite system to not rely on indices...)
2020-10-14 00:30:14 +02:00
Christoph Oelckers
a34525574c - Exhumed: Cleanup of RestartPlayer
Use pointers instead of endless array accesses to the same element.
2020-10-14 00:19:39 +02:00
Christoph Oelckers
b6149f88f7 - added sprite iterator classes.
The code base currently contains roughly 600 iterator loops directly referencing Build's global variables.
That state of things is not refactorable - these iterator wrappers are supposed to get rid of these explicit references.
2020-10-14 00:05:25 +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
129aa864dd - do not accept any input in the first 0.1 seconds of running a screen job.
This is to avoid accidental skipping by pending game input.
2020-10-13 23:36:27 +02:00
Christoph Oelckers
df86a11d23 - fixed palette of Exhumed's game over screen. 2020-10-13 23:29:12 +02:00
Christoph Oelckers
ef15ac8b6e - fixed: For the episode and skill menu, autoselection for single entries did not work. 2020-10-13 22:16:43 +02:00
Christoph Oelckers
1637157f46 - removed some unused variables. 2020-10-13 21:45:21 +02:00
Christoph Oelckers
f0ef7a1322 - tabified animatesprites_d.cpp and animatesprites_r.cpp. 2020-10-13 21:44:05 +02:00
Christoph Oelckers
99b4a64a67 - removed the PSPTwoDSetter
This is no longer needed because all weapon drawing is using the proper interface now.
2020-10-13 21:38:24 +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
bdc1f66131 - missed an include. 2020-10-12 20:30:12 +02:00
Christoph Oelckers
bce15428d5 - for Unix-like systems, check added resources for lower and uppercase variants if the specified one cannot be found. 2020-10-12 20:01:40 +02:00
Christoph Oelckers
20248d8e08 - fixed a few CCMDs which were blocked in the console. 2020-10-12 19:48:47 +02:00
Christoph Oelckers
742917c6d7 - re-enabled the autoload-after-death function.
This had to be disabled for the menu but somehow was missed when reenabling these things again.
2020-10-12 19:42:16 +02:00
Mitchell Richters
b6ec41e2b1 - Exhumed: Make WeaponSel_Prev/WeaponSel_Next operable. 2020-10-12 22:31:57 +11:00
Christoph Oelckers
86ad576675 - fixed lockup on Shareware screen when quitting Duke
Two errors: the menu wasn’t closed and the shareware check was inverted.
2020-10-12 08:07:51 +02:00
Mitchell Richters
a792f329ca - binaryangle.h/PlayerAngle: Fix incorrect variable declaration on dang within interpolatedsum() method.
* Didn't seem to be causing an issue but better it be correct.
2020-10-12 16:28:05 +11:00
Mitchell Richters
bf5bd01164 - binaryangle.h/PlayerAngle: Make settarget() method consistent with PlayerHorizon class and fix incorrect variable declaration. 2020-10-12 14:51:53 +11:00
Mitchell Richters
c08851e4c0 - Blood/Duke/RR/SW: Drop resetinputhelpers(). 2020-10-12 14:42:43 +11:00
Mitchell Richters
894feb1c80 - SW: When beginning to operate a sector object, just forcibly set the angle in the ticker.
* Angle transition is not meant to be smooth or scaled to a target, it's just meant to get the player to the necessary angle.
* Fixes https://forum.zdoom.org/viewtopic.php?f=340&t=70191.
2020-10-12 13:15:19 +11:00
Mitchell Richters
1109a90273 - SW: Fix issues with sector object machine guns in InitSobjMachineGun() following changes in 6476430be6.
* Needed to account for rebase of horizon re-centering from 100 to 0.
* Horizon value here is only for projectile's z and not the player's z.
* Fixes https://forum.zdoom.org/viewtopic.php?f=340&t=70199&p=1168858.
2020-10-12 13:06:21 +11:00
Christoph Oelckers
b4a011300a - implemented proper delta serialization for sectors and walls. 2020-10-11 21:11:38 +02:00
Christoph Oelckers
f12c6b0319 - removed wallext because its only member 'blend' is not used by anything.
This is a feature not worth preserving, render style + alpha should be done directly, not via indirect lookup tables.
2020-10-11 18:44:16 +02:00
Christoph Oelckers
e6bd5989c2 - removed some unused parts from Blood's map loader. 2020-10-11 18:34:58 +02:00
Christoph Oelckers
fd31da3115 - save sectors and walls as JSON
This is not optimized yet so saves are a bit larger than necessary.
2020-10-11 18:10:52 +02:00
Christoph Oelckers
cb8d2eb94c - added serializers for PlayerAngle and PlayerHorizon. 2020-10-11 16:55:12 +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
f3f6bad1f8 - Exhumed: Wrapped the logo retrieval code into getter functions and removed the game type macros. 2020-10-11 14:30:45 +02:00
Christoph Oelckers
df42230b45 - Exhumed: converted all #define constants to enums. 2020-10-11 14:30:45 +02:00
Christoph Oelckers
51b48ca124 - Exhumed: removed most of the unused tile constants 2020-10-11 14:30:45 +02:00
Christoph Oelckers
5bb02f7bb0 - Exhumed: replace include guards with #pragma once. 2020-10-11 14:30:44 +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
7deb3ed4bd - Duke: got rid of the last 3 remaining #defines not used for list generation, as well. 2020-10-11 14:30:43 +02:00
Christoph Oelckers
fc82b3bc8a - Duke: replaced the game type macros with inline functions. 2020-10-11 14:30:42 +02:00
Christoph Oelckers
9cc1268839 - Duke: added missing include guard to conlabel.h. 2020-10-11 14:30:42 +02:00
Christoph Oelckers
67375cf79c - SW: renamed 3 duplicate constants 2020-10-11 14:30:42 +02:00
Christoph Oelckers
f0a1ce4850 - SW: fix some include guards. 2020-10-11 14:30:42 +02:00
Christoph Oelckers
fc54d98100 - Exhumed: Give all savegame handlers and action sequences unique names. 2020-10-11 14:30:41 +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
47e452f452 - fixed the real issue for the sound problems and reverted the last commit.
It was far more serious than a botched merge.
2020-10-11 13:44:23 +02:00
Mitchell Richters
5973391a51 - SW: Tune DrawHUD2() text positioning and image scaling.
Not sure how or when these came to be off. Perhaps additional chars have effected the overall font size?
2020-10-11 22:38:56 +11:00
Mitchell Richters
372f0db28a - Exhumed: Resolve sound issues following bad merge conflict resolve from b06a847d9a. 2020-10-11 22:01:37 +11:00
Christoph Oelckers
adaf25377c - moved the player sprite away from the edge of the frame. 2020-10-11 07:50:41 +02:00
Christoph Oelckers
8b8c6a5e3a - fixed episode default. 2020-10-11 07:44:51 +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
Mitchell Richters
5011b10549 - binaryangle.h/cpp: Inline the functions created in 271eb1c3fa. No real need to have a separate file for these. 2020-10-11 15:34:18 +11:00
Christoph Oelckers
820b37721b - moved tab completion code into 'common' as well. 2020-10-11 00:08:07 +02:00
Christoph Oelckers
242a70e610 - split the command line buffer off from c_console.cpp and reactivated the check for CONBACK. 2020-10-10 23:16:08 +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
dcde91b0c9 - do not wrap the simple value wrappers into a JSON object when being serialized.
It only adds to the processing time - they can just be written out as-is.
2020-10-10 21:36:12 +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
78d5b2aa95 - Duke: fixed: The Recon's roaming sound was poorly checked resulting in garbled output.
It checked for two instances globally, which made the same actor repeat its sound all over again, but if more recons were present some were silent.
Now each one is allowed to play its effect separately.
2020-10-10 19:17:23 +02:00
Christoph Oelckers
b06a847d9a Merge branch 'menu2'
# Conflicts:
#	source/exhumed/src/sound.cpp
2020-10-10 19:03:29 +02:00
Christoph Oelckers
e95fea1056 - fixed: Toggling palette emulation should reset the texture filter in the samplers. 2020-10-10 18:57:16 +02:00
Christoph Oelckers
16a4d49268 - added background dimming for the menu when in overlay mode. 2020-10-10 18:29:15 +02:00
Christoph Oelckers
b142f33edd - fixed problems with stopping sector effect sounds.
The old check only accounted for the case of trying to play a valid follow-up sound, but not for merely stopping the old one.
Restored the original check that was here.
2020-10-10 18:11:26 +02:00
Christoph Oelckers
f9ab77f700 - create named texture copies for 'tilefromtexture' replacements.
We want to be able later to find them in the texture manager again.
2020-10-10 16:52:04 +02:00
Christoph Oelckers
c478d1add2 - properly uninit the menus. 2020-10-10 15:16:28 +02:00
Mitchell Richters
271eb1c3fa - binaryangle.h/cpp: Hook up FSerializer and use within Duke for saving objects. 2020-10-11 00:10:53 +11:00
Christoph Oelckers
91e23b3ab5 - Exhumed: play the menu advance sound when starting a game 2020-10-10 13:30:23 +02:00
Christoph Oelckers
294a806793 - fixed some issues with prematurely terminated sounds. 2020-10-10 12:57:43 +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
Christoph Oelckers
16fd505f9a - make sure that sfxinfo_t is always fully initialized by adding initializer values to all fields.
Let's hope this finally fixes those sound hiccups.
2020-10-10 09:47:00 +02:00
Mitchell Richters
8f68e8b4a1 - Amend 2865fef7ed as accidentally returned horizon as Build and not Q16.16. 2020-10-10 17:52:43 +11:00
Mitchell Richters
2865fef7ed - Duke: Restore return_to_center in gameexec.cpp dropped in 0ab3b33a6c and redo based on new code. 2020-10-10 16:59:00 +11:00
Mitchell Richters
6ecbb2587e - Duke: Fix z position when on certain cameras following changes in 09a05f354c. 2020-10-10 16:17:02 +11:00
Christoph Oelckers
2237113a77 - fixed font scaling in RR's confirmation screens. 2020-10-10 00:51:26 +02:00
Christoph Oelckers
37d86d03f5 - fixed SW's skill-dependent startup lines 2020-10-10 00:09:18 +02:00
Christoph Oelckers
03e57fa3d7 - fixed Exhumed's game startup. 2020-10-09 23:58:34 +02:00
Christoph Oelckers
d6d9100992 - set proper slider colors for all games. 2020-10-09 23:35:38 +02:00
Christoph Oelckers
b21beb4039 - made the options search work.
This required changing how the engine credits menu work because it created a circular dependency in its original form.
2020-10-09 22:33:02 +02:00
Mitchell Richters
9c993b9104 - d_protocol: Change horz/avel pack/unpacking from long to float. 2020-10-09 16:18:28 +11: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
Mitchell Richters
44e4c5ff78 - Fix joystick scaling following shift to fixedhoriz and binangle.
* Remove joystick scaling from `CONTROL_GetInput()`.
* Store turnspeed as constant at top of `processMovement()` and use it for joystick yaw/pitch scaling. This adds the advantage of having the out-of-box turning speed match the keyboard's turn speed and also attenuates when the player is not running.
2020-10-09 11:34:14 +11:00
Christoph Oelckers
2d8bcd06fd - added the player display for Duke.
This completes the menu transition.
2020-10-09 01:09:51 +02:00
Christoph Oelckers
a10aacea3a - added the QAV drawer page. 2020-10-09 00:50:21 +02:00
Christoph Oelckers
2f8284f10b - added filler help and credit menus for Exhumed.
They should not be empty, so that they do not crash when opened from the console.
2020-10-09 00:21:06 +02:00
Christoph Oelckers
4024ebd12d - re-added Duke 1.3's credit screens. 2020-10-09 00:11:49 +02:00
Christoph Oelckers
802d295e48 - Shadow Warrior credit screens. 2020-10-08 23:53:15 +02:00
Christoph Oelckers
02507d937d - got the text screens working. Also reformatted RR's credits a bit for a better presentation. 2020-10-08 23:40:17 +02:00
Christoph Oelckers
19c719db4e - image scroller is working again. 2020-10-08 22:53:12 +02:00
Christoph Oelckers
6ba06f5ed0 - ImageScroller WIP commit. 2020-10-08 22:20:41 +02:00
Christoph Oelckers
15eaf86f5a - preparations for the image scroller menu. 2020-10-08 18:02:25 +02:00
Christoph Oelckers
8caaf4fa64 - menu transitions are working again. 2020-10-08 16:33:11 +02:00
Mitchell Richters
f35bec4a5d - Fix interpolation issues and do other minor fixes following shift to fixedhoriz and binangle.
* When interpolating on the initial setup, when binangle reached an overflow point when going lower than zero, the engine was spinning the player around clockwise to the new angle (2047, for instance).
* Interpolating after casting as uint64_t with a workflow similar to the original games, the issue went away.
* Cleaned up other interpolation functions to be of a consistent workflow.
* Scale keyboard input turning down to degree speeds.
* Uplift some remaining Q16.16 code in `applylook()` to full BAM precision.
* Move static calculations of aim and look speeds for `sethorizon()` back into function since GameTicRate isn't set right before calculation is done.
* Simplify the angle target setup back to a basic value like before.
* Repair SW interpolation issues of weapon sprite drawer when rotating left/right.
* Fix SW death horizon constant values following change of horizon center to 0.
2020-10-08 21:12:21 +11:00
Mitchell Richters
9bcdeae6cd - InputPacket: Change q16avel to avel, changing type from fixed_t to float. 2020-10-08 14:47:30 +11:00
Mitchell Richters
e53d58bd42 - gamecontrol: Clean up remainder of legacy angle code. 2020-10-08 14:29:50 +11:00
Mitchell Richters
d758a0ae28 - SW: Cut q16ang/q16look_ang/q16rotscrnang over to PlayerAngle struct. 2020-10-08 14:23:44 +11:00
Christoph Oelckers
cc7290e313 - work on menu transitions. 2020-10-08 01:00:23 +02:00
Christoph Oelckers
56eae0b42d - got the basics working for Exhumed's main menu. 2020-10-08 00:21:07 +02: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
3bc6777cf4 - Exhumed: Cut q16ang/q16look_ang/q16rotscrnang over to PlayerAngle struct. 2020-10-08 08:08:40 +11: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
Christoph Oelckers
53c3a6fc9b - silenced some warnings. 2020-10-07 16:02:49 +02:00
Mitchell Richters
40cb64cdcf - applylook(): Remove some forgotten debug lines. 2020-10-07 23:40:41 +11:00
Mitchell Richters
babd7b9556 - InputState: Proposed new sensitivity dividers now that mouse input is based on true pitch and true angle. 2020-10-07 23:25:36 +11: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
e2691d4184 - Duke: Clean up a few missed things during f39939d114. 2020-10-07 18:34:52 +11:00
Mitchell Richters
0c55a533be - PlayerHorizon: Change struct functions to declarations and define code in gamecontrol.cpp to reduce binary size. 2020-10-07 18:25:50 +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
6476430be6 - SW: Cut q16horiz/q16horizoff over to PlayerHorizon struct. 2020-10-07 18:08:57 +11:00
Mitchell Richters
6da756cc9f - Exhumed: Cut q16horiz over to PlayerHorizon struct. 2020-10-07 17:40:59 +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
0e3604ac9e - SW: Remove q16horizbase and apply q16horizoff in draw code like Duke & Blood.
* Standardisation is needed here for upcoming horizon changes.
2020-10-07 13:33:16 +11:00
Mitchell Richters
082336e5f8 - buildhoriz: Implementation of pitch and BAM conversion code.
* Determined maximum horizon able to be handed by engine in Q16.16 format is 280039127.
* Re-did pitch math to work on this known maximum and standardised pitch around -90/90 degrees as it should be.
* Because pitch is now -90/90 and not ~-188/188, m_sensitivity_y probably requires re-scaling.
2020-10-07 13:29:04 +11:00
Mitchell Richters
90e711464a - clamp(): Remove definition in compat.h and uplift definition in templates.h. 2020-10-07 13:29:00 +11:00
Mitchell Richters
8be8bcc87a - Duke/SW: Fix InitTracerTurret() to use player's q16horiz with full precision and replace some manually expressed mulscales with mulscale16() inline from pragmas.h. 2020-10-07 13:28:58 +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
38ddbfe65f - activated most of the support code for programmatically created menus again.
Blood's regular menu screens mostly work again
2020-10-07 01:31:41 +02:00
Christoph Oelckers
5726b693bd - added back the menu transition, although it cannot be used yet, and all game specific menu CCMDs. 2020-10-07 01:12:57 +02: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
1ea6084478 - Exhumed also done.
Also using proper assets now.
2020-10-06 22:35:25 +02:00
Christoph Oelckers
17a68bc60a - SW's caption done, too.
In this case the font is squashed to be more narrow because otherwise many texts would not fit anymore.
2020-10-06 22:01:20 +02:00
Christoph Oelckers
5bcb72f7a9 - create names for several of SW's textures.
Not complete, but should cover most that is really needed.
2020-10-06 21:35:26 +02:00
Christoph Oelckers
b8941a09ad - we need this... 2020-10-06 21:11:37 +02:00
Christoph Oelckers
bec1f67178 - implemented the menu caption for Duke et.al. 2020-10-06 20:49:55 +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
55e7e34707 - added texture aliases so that tiles can given real names in the texture manager.
Use this to turn Duke's and RR's tile enums into real names, leaving out RRTILExx - the few that are needed were renamed.
2020-10-06 19:26:22 +02:00
Mitchell Richters
bbc60e8424 - Duke: Ensure tripbomb's ammo_count decrements with use.
* Note: Unsure whether `isWW2GI()` was meant to be inversed but do not believe so. Have removed check for now.
* Fixes #104.
2020-10-06 16:31:28 +11:00
Mitchell Richters
478f20b845 - SW: Apply fix from c86af08a19 not to just when stopping operation of remote objects, but all objects.
* Fixes #105.
2020-10-06 16:23:54 +11:00
Mitchell Richters
d5bd7ba309 - Exhumed: Fix positioning of air level meter when underwater.
* Fixes #103.
2020-10-06 16:19:01 +11:00
Christoph Oelckers
1e131eda9e - implemented Blood's menu caption 2020-10-06 00:34:35 +02:00
Christoph Oelckers
3dbb8cbb11 - safety commit 2020-10-05 21:47:53 +02:00
Christoph Oelckers
29a4955f79 - missing global variables. 2020-10-05 20:44:30 +02:00
Christoph Oelckers
4d712cd5a0 - date code from GZDoom. 2020-10-05 20:28:19 +02:00
Christoph Oelckers
c03644ea76 - base.zs cleanup and extendable structs. 2020-10-05 20:03:28 +02:00
Christoph Oelckers
afea519b10 - fixed issues with underwater sound pitch.
This would repeatedly lower the pitch until the sound got inaudible.
2020-10-05 16:20:40 +02:00
Christoph Oelckers
53980787b6 - added global offset for 2D drawer.
This is needed to handle Duke's scrolling menus transparently to the menu code.
2020-10-05 01:42:47 +02:00
Christoph Oelckers
9606b09ddd - update of language code from GZDoom. 2020-10-05 00:46:24 +02:00
Christoph Oelckers
dd5c3eee91 - Exhumed: Fully initialize the sfxinfo struct for newly added sounds
This was using its own incomplete code instead of calling AddSoundLump for it.
2020-10-05 00:35:17 +02:00
Christoph Oelckers
7c89db69bd -menuCustomizer from GZDoom. 2020-10-05 00:23:30 +02:00
Christoph Oelckers
f670d35ba1 - added a game-module wide lump filter for Duke and related games. 2020-10-05 00:20:33 +02:00
Christoph Oelckers
16431e9f0a - SetupMenuColors restored. 2020-10-04 22:21:11 +02:00
Christoph Oelckers
6a4b72cfef - removed obsolete calls from menudef.cpp. 2020-10-04 22:14:20 +02:00
Christoph Oelckers
27ff78ed51 - removed the GZDoom menu CCMDs. 2020-10-04 22:02:10 +02:00
Christoph Oelckers
f233345ba1 - move most of the menu code into the backend. 2020-10-04 21:57:35 +02:00
Christoph Oelckers
26a31a626d - option menus are working, although all colors are still wrong and the captions are not displayed. 2020-10-04 21:42:40 +02:00
Christoph Oelckers
7f6b02c451 - merged string table and system callbacks. 2020-10-04 21:15:51 +02:00
Christoph Oelckers
5d76cbcbdb - game compiles and starts again (without menu, of course)
Now it's time to rebuild the menu.
2020-10-04 20:53:37 +02:00
Christoph Oelckers
9cc318da93 - ugh 2020-10-04 20:14:15 +02:00
Christoph Oelckers
b0301d6fc9 - progress. 2020-10-04 20:11:04 +02:00
Christoph Oelckers
7be2d44108 - corrected includes. 2020-10-04 20:11:03 +02:00
Christoph Oelckers
0b9c6fe559 - added GZDoom's menu script code. 2020-10-04 20:11:03 +02:00
Christoph Oelckers
82612a1330 - it compiles again (with lots of code commented out.) 2020-10-04 20:11:02 +02:00
Christoph Oelckers
46a1fe3826 - updated script definitions to silcence startup warnings. 2020-10-04 20:10:13 +02:00
Christoph Oelckers
dff8339ba3 - backend update from GZDoom. 2020-10-04 19:33:50 +02:00
Christoph Oelckers
58dcf0586b - scale weapons down to the original tile's size.
Needed because hires replacements contain no scaling info.
2020-10-04 15:33:12 +02:00
Christoph Oelckers
393b0a1db2 - added missing punctuation characters to Exhumed's SmallFont.
In particular this provides the required colon and slash characters for the level stats display.
2020-10-03 19:32:42 +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
ddc968f607 - disable palette emulation when map global fog is active.
This doesn't work well together and is pointless anyway as everything needs to be rendered at full brightness.
Fixes #99
2020-10-03 18:04:07 +02:00
Christoph Oelckers
f8caf88089 - backend update. 2020-10-03 17:04:45 +02:00
Christoph Oelckers
89d5d18b9e - these parts were missed somehow. 2020-10-02 22:42:54 +02:00
Christoph Oelckers
e0717e30b4 - savegame version change for the new member in spritetype. 2020-10-02 22:19:32 +02:00
Christoph Oelckers
57945d2baf - eliminated a few overlooked 'long's. 2020-10-02 22:18:08 +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
Mitchell Richters
c86af08a19 - SW: Repair occasional locked player angle after player stops operating a sector object. 2020-10-02 19:47:32 +10:00
Mitchell Richters
43e447d40b - Duke: Fix auto-aiming issues for shotgun and chaingun.
Fixes #98.
2020-10-02 17:05:50 +10:00
Christoph Oelckers
49642c3b3c - removed the slowdown killswitch from the ANM player.
This did not play well with SW and is generally not needed.
2020-09-30 00:28:17 +02:00
Christoph Oelckers
51f35550a9 - last but not least, for international display, use ConFont in Exhumed's laptop cutscene. 2020-09-29 23:02:32 +02:00
Christoph Oelckers
75281de42e - Shadow Warrior as well.
For the cookie text display with international characters the text font is used with 50% size to make it fit the available space.
2020-09-29 22:46:50 +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
4c2ff2950a - for Duke/RR, when not using English force use of the regular text font for drawing the map label on the automap.
This essentially removes the tiny font which is simply too small to ever be able to receive a proper international extension from the equation for localization because the level name display was the only remaining relevant content using this font.
The only other screen where this font is still being used to draw text requiring translated content is the multiplayer summary which will have to be redesigned anyway if multiplayer becomes functional again.
2020-09-29 21:47:32 +02:00
Christoph Oelckers
fe61ff09a4 - added remapping for Cyrillic characters to matching Latin counterparts. 2020-09-29 20:16:31 +02:00
Christoph Oelckers
6488f52055 - fixed: Restarting after dying unset the currently selected skill level. 2020-09-29 18:30:00 +02:00
Christoph Oelckers
a558703740 - bumped up the vertical mouse movement factor to 1/5 from 1/8.
1/8 was far too low for an average mouse
2020-09-29 18:14:22 +02:00
Mitchell Richters
0bb9904338 - Tune mouse input following changes in b57e13ff62.
* Reduce `hidInput->mouseturny` to previous scaling (0.25 of incoming input).
* Change `hidInput->mouseturnx` to be 0.5 of incoming input (33% slower than b57e13ff62, but matches what other ports by providing a 2:1 scale).
* Remove further divisions beyond m_side and m_forward and adjust code in `processMovement()` accordingly.
* Change scaling for `mousevelscale` in `processMovement()` to be 1/160th of keymove. Slightly lower for Duke and a lot faster for Blood where it's needed.
2020-09-29 21:02:36 +10:00
Christoph Oelckers
b57e13ff62 - mouse code update.
May still need some tweaking of the factors.
2020-09-28 22:36:43 +02:00
Christoph Oelckers
0ddf53a3ef Merge branch '0.7' 2020-09-28 21:26:43 +02:00
Christoph Oelckers
012bccd916 - indexed rendering fixes
backported from GZDoom.
2020-09-28 21:26:21 +02:00
Christoph Oelckers
dcae0c4103 - fixed incomplete merging of WW2GI/Duke code for the pistol animation 2020-09-28 08:55:59 +02:00
alexey.lysiuk
6cf921dbfe - restored old mouse scaling for Cocoa backend
This reverts commit df2b3b6b17.
2020-09-28 09:35:36 +03:00
Christoph Oelckers
1a65be3ddc - 0.7.1 2020-09-27 20:45:54 +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
Christoph Oelckers
9ab29f5975 - reset ud.eog after playing the end of game cutscene.
If this persists, all following levels will also immediately end the game as well.
2020-09-27 20:34:48 +02:00
Christoph Oelckers
3a50f82498 - Duke: In the ending cutscene of the first episode, stop the music only when entering the summary screen. 2020-09-27 20:34:48 +02:00
Christoph Oelckers
5d35d02c87 - fixed overflow in first episode's end cutscene. 2020-09-27 20:34:48 +02:00
Christoph Oelckers
9dd26c8196 - fixed explosion distance of Hexen Cleric's firestorm weapon. 2020-09-27 16:30:06 +02:00
Christoph Oelckers
02afa90202 - another backend update from merging several GZDoom PRs. 2020-09-27 16:16:53 +02:00
Christoph Oelckers
9764c9de0b - use the proper variable for timer frequency only.
MinFPSRate was an obsolete leftover.
2020-09-27 16:12:52 +02:00
Christoph Oelckers
c326bcd308 - fixed i_net's GetPlayerName function's indexing. 2020-09-27 16:12:51 +02:00
Christoph Oelckers
af5e3dd1b8 - render backend update from GZDoom, mostly minor stuff. 2020-09-27 16:12:51 +02:00
Christoph Oelckers
4ca5bfdd46 - sanity check added for MoveLumpsInFolder 2020-09-27 16:12:51 +02:00
Christoph Oelckers
ba5da8ebc2 - UE1 model code update. 2020-09-27 16:12:51 +02:00
Christoph Oelckers
cb49bcb96d - updated VM from GZDoom.
Just to be up to date.
2020-09-27 16:12:50 +02:00
Christoph Oelckers
0314cdec55 - texture manager fixes from GZDoom
* missing null check in FPngTexture.
* ignore identity translations when creating textures.
2020-09-27 16:12:50 +02:00
Christoph Oelckers
f8ae35f8a5 - macOS backend update, plus moving base64.cpp around. 2020-09-27 16:12:50 +02:00
Christoph Oelckers
0795c79a3a - engine updates from GZDoom. 2020-09-27 16:12:50 +02:00
Christoph Oelckers
a9ca6c8081 - sound backend update from GZDoom. 2020-09-27 16:12:49 +02:00
Christoph Oelckers
03a0cf943e -minor cleanup and backporting of con_pulsetext from Raze. 2020-09-27 16:12:49 +02:00
Christoph Oelckers
9285d91918 - added timescale support from GZDoom. 2020-09-27 16:12:49 +02:00
Christoph Oelckers
a5984ddc7c - fixed sprite changing logic for developer commentaries and attenuate the music while commentaries are playing. 2020-09-27 12:52:26 +02:00
Mitchell Richters
392c9ec0d6 - Duke: Tune menu light amounts. 2020-09-27 17:52:20 +10:00
Mitchell Richters
bb4f46489f - Exhumed/SW: Adjust 9271444feb and 289b0a089c so that the games check the state of cl_syncinput prior to setting it. 2020-09-27 16:08:32 +10:00
Mitchell Richters
289b0a089c - SW: Do 19fd0331d4 in a better way.
* Will still need to review SOs and synchronised input. It would be good to be able to run them unsynchronised like the turret.
2020-09-27 16:00:06 +10:00
Mitchell Richters
9271444feb - Exhumed: Force synchronised input when using 3rd person mode until something better can be done for it. 2020-09-27 15:46:04 +10:00
Christoph Oelckers
f0678f4f4e - Font setup fix from GZDoom. 2020-09-27 07:33:43 +02:00
Christoph Oelckers
af8b7679b6 - bumped version numbers for 0.7. 2020-09-26 17:50:19 +02:00
Christoph Oelckers
b93a9b478a - implemented World Tour's developer commentaries. 2020-09-26 17:43:34 +02:00
Christoph Oelckers
3a459ac603 - added a parser for WT's developer commentary definitions. 2020-09-26 16:18:44 +02:00
Christoph Oelckers
e549aa0527 - fixed: concmd_actor wrote beyond the end of the ScriptCode array.
This was causing spurious crashes.
2020-09-26 12:46:56 +02:00
Christoph Oelckers
3210dd5782 - fixed the noisiest value truncation warnings after shortly re-enabling them in the compiler, plus a few places where the warning pointed to incorrect code. 2020-09-26 11:59:24 +02:00
Christoph Oelckers
696610fbc5 - Exhumed: When starting the training map, skip all intermission stuff.
This tends to screw up the target map with its selection option on the map.
2020-09-26 10:49:13 +02:00
Christoph Oelckers
1e12bca0a6 - route World Tour's texts through the string table by adding an indirection option
This way they can be translated into all languages without duplicating all relevant content.
The original text files are no longer being used.
2020-09-26 10:08:48 +02:00
Christoph Oelckers
18ce5bed60 - add line feed after PALETTE_EMULATION #define 2020-09-26 08:52:11 +02:00
Mitchell Richters
1c90d16aaf - Exhumed: Fix Training menu option. 2020-09-27 02:46:11 +10:00
Christoph Oelckers
8450369a22 - must reset file pointer before reading the size from a patch texture. 2020-09-26 08:42:40 +02:00
Mitchell Richters
40a89fb26f - Duke/RR: Fix alt HUD health flashing when > 100. 2020-09-27 02:27:03 +10:00
Mitchell Richters
837b7c0a30 - SW: Changed some downscaled and upscaled Q16.16 variables missed when doing 46810ec490. 2020-09-27 02:07:07 +10:00
Mitchell Richters
362fda4378 - Duke: Change fix in 6e9576b871 to be outside of donewgame() in case player is loading a map from the command line. 2020-09-26 09:17:50 +10:00
Mitchell Richters
6e9576b871 - Duke: Fix skill level coming in from main loop. 2020-09-26 08:55:10 +10:00
Christoph Oelckers
64607834f3 - Blood: fixed application of palette from the QAV data for HUD weapons. 2020-09-25 23:55:20 +02:00
Christoph Oelckers
1e63341c4d - fixed inverted checks for texture clamping. 2020-09-25 23:42:53 +02:00
Christoph Oelckers
8b9853ad28 - print cheat prompts to the regular message display. 2020-09-25 22:41:17 +02:00
Christoph Oelckers
047c5de286 - SW: layout tweaks for inventory display. 2020-09-25 22:31:16 +02:00
Christoph Oelckers
77841b3154 - fixed application of detail textures. 2020-09-25 22:03:11 +02:00
Christoph Oelckers
3344e73fed - fixed some crashes in the .def parser and texture initialization code. 2020-09-25 20:51:02 +02:00
Christoph Oelckers
73c57af9ca - added credit screen handling for Duke Nukem 1.3. 2020-09-25 20:22:30 +02:00
Christoph Oelckers
1fc919f5a1 - fixed episode startup on Duke so that the intro for ep. 4 plays. 2020-09-25 19:46:04 +02:00
Christoph Oelckers
89bc194035 - added shareware checks to the "start game" menus. 2020-09-25 19:36:50 +02:00
Christoph Oelckers
ccfd20e074 - added some quick rejection checks for Doom patch textures.
Since the checker reads all lumps completely into memory to check them, this can take quite a while. Reject everything that can be just by looking at the size fields immediately, without loading the rest.
2020-09-25 19:06:19 +02:00
Christoph Oelckers
e7f16f6ff7 - Duke: do not play 1.5 intro sounds in 1.3
- Duke: In 1.3, the Duke team image should stay until dismissed manually.
2020-09-25 18:40:45 +02:00
Mitchell Richters
e9326fffe3 - processMovement(): Slightly adjust some ratios to provide proper average values. 2020-09-25 23:07:38 +10:00
Mitchell Richters
9b12675f4e - processMovement(): Re-arrange parameter variables somewhat so game-specific parameters are at the end and to allow some common defaults so they don't need specifying. 2020-09-25 22:26:50 +10:00
Mitchell Richters
73f52b2cee - SW: Fix turn scaling while pp->sop_control and specify !pp->sop to processMovement()s allowstrafe bool instead of an unconditional true. 2020-09-25 22:17:21 +10:00
Rachael Alexanderson
c8a74a8f3f - sw: flykey: guard against non-godmode, bind to j by default 2020-09-25 13:50:29 +02:00
Rachael Alexanderson
410d392ba8 - enable fly cheat for shadow warrior. in other games it is currently ignored, but I think Redneck Rampage and Blood both need it at some point too 2020-09-25 13:50:29 +02:00
Mitchell Richters
ce269808dc - Remove leftover Ion Fury stuffs causing log errors like "Script error, 'D:/Program Files (x86)/Steam/steamapps/common/Ion Fury/fury.grpinfo" line 10: Warning: GRP without game defined. Ignoring'". 2020-09-25 18:06:06 +10:00
Mitchell Richters
4ff3810711 - Blood/Duke/RR/SW: Improvements to 3rd person viewing by modifying the rendered player's posz so the camera is looking further above the camera sprite as EDuke32 does. Blood just enables the crosshair when using 3rd person view. 2020-09-25 17:52:00 +10:00
Mitchell Richters
e7de0da36c - Duke: Changed some downscaled and upscaled Q16.16 variables missed when doing 46810ec490. 2020-09-25 17:08:44 +10:00
Mitchell Richters
0746b98886 - RR: Don't draw weapon on screen when in 3rd person view. 2020-09-25 16:17:55 +10:00
Mitchell Richters
9c0667a7ce - Duke: Don't display cracking knuckles while in 3rd person view. 2020-09-25 16:17:34 +10:00
Mitchell Richters
71d667cdc9 - ApplyGlobalInput(): Fix const issue. 2020-09-25 13:33:44 +10:00
Mitchell Richters
67c8187d62 - processMovement(): Attenuate hidInput->dyaw when using for strafing. 2020-09-25 12:03:56 +10:00
Mitchell Richters
038edfe972 - Exhumed: A few more positioning tweaks for the classic full and split HUDs. 2020-09-25 11:02:06 +10:00
Mitchell Richters
2679e28a2e - Exhumed: Tune positioning of classic full and split HUDs. 2020-09-25 10:42:46 +10:00
Mitchell Richters
c4f4468fd4 - Exhumed: Tune DrawHUD2() sizing positioning to match other games. 2020-09-25 09:42:02 +10:00
Mitchell Richters
ad1f0ce6c3 - Duke: Tune sizing in FullscreenHUD1 for Duke 3D 1.3D and Nam/WW2GI. 2020-09-25 09:26:55 +10:00
Mitchell Richters
5e947cd78f - Duke: Fix occasional flicker in corner of 'Completed' text. Need to do the text after all backdrop changes. 2020-09-25 09:08:22 +10:00
Mitchell Richters
439633e6db - Duke: Don't play 3rd pipebomb explosion if not Plutonium/Atomic. 2020-09-25 08:40:58 +10:00
Christoph Oelckers
8480aca6f1 Merge remote-tracking branch 'remotes/Github_private/Input_UnifyProcessMovement' 2020-09-24 20:21:45 +02:00
Christoph Oelckers
0f96d6a003 - fixed transition to the next level from Ramses cutscenes. 2020-09-24 20:14:25 +02:00
Mitchell Richters
6aa494285d - processMovement(): Add scaling for Exhumed's keymove. Input was far too slow and didn't match the others. 2020-09-25 00:57:48 +10:00
Mitchell Richters
aa14ee1232 - InputState: Scale dyaw/dpitch with regards to ticrate. All testing on initial uplift was with Duke at 30Hz. SW running at 40Hz therefore is not at the same speed as the others. 2020-09-25 00:25:49 +10:00
Mitchell Richters
9e0bd569f7 Merge branch 'back_to_basics2' into Input_UnifyProcessMovement
# Conflicts:
#	source/exhumed/src/input.cpp
2020-09-25 00:17:16 +10:00
Mitchell Richters
16cee1148b - Duke: Change a few ps[] to use the p alias available following changes in f4fff5ee30. 2020-09-25 00:09:31 +10:00
Mitchell Richters
f0262039b6 - Exhumed: Fixed issues with call to playerProcessHelpers() not occurring after dying. 2020-09-25 00:04:19 +10:00
Mitchell Richters
a4438fd218 - Exhumed: Actually fix ramses/spirit head issues... 2020-09-24 22:55:27 +10:00
Mitchell Richters
04af1d9ce8 - All Games: Unify processMovement(). 2020-09-24 22:32:37 +10:00
Mitchell Richters
081dfb187c - Duke: Make changes in ce7af5fe0e easier to read by way of aliases. 2020-09-24 09:05:42 +10:00
Mitchell Richters
ca2f1bb556 - Exhumed: Fix ramses/spirit head issues in DoSpiritHead() and clamp horizon in draw code in case for whatever reason (like before) we exceed the game's defined bounds. 2020-09-24 08:11:56 +10:00
Christoph Oelckers
44fc452747 - World Tour: Fixed missing smoke on burning monsters
Yay, another one-liner...
2020-09-23 19:24:40 +02:00
Christoph Oelckers
daabb31bff - more stat constants 2020-09-23 19:24:01 +02:00
Christoph Oelckers
67985b7819 - changespritestat literal number replacement 2020-09-23 18:51:43 +02:00
Christoph Oelckers
71213bf8bd - added a missing code fragment for WT's lavapool.
This made them float in the air instead of being on the ground.
2020-09-23 18:18:23 +02:00
Christoph Oelckers
f106f35598 - fixed interpolation of palette emulation. 2020-09-23 18:18:23 +02:00
Christoph Oelckers
a6c45a8e52 - Duke: must serialize SB_CENTERVIEW (but no other bits.) 2020-09-23 18:18:23 +02:00
Christoph Oelckers
f4fff5ee30 - moved sync structure into the playerstruct for easier maintenance. 2020-09-23 18:18:23 +02:00
Christoph Oelckers
5a76dce5f8 - reinstated setuptile.
Apparently this is needed by some hires packs to fudge the sprite offsets.
Fortunately, setting sprite offsets is the only thing this was ever used for so it's relatively uninvasive.
2020-09-23 18:18:22 +02:00
Mitchell Richters
8690c633d8 - Blood: Add extra call to inputState.ClearAllInput() in StartLevel(). 2020-09-24 00:20:40 +10:00
Mitchell Richters
e078ea6ebd - Blood/Exhumed/SW: Hook up gi->clearlocalinputstate(). 2020-09-24 00:15:51 +10:00
Mitchell Richters
9b85816f70 - Exhumed: Fix ordering issue in gi->GetInput() preventing player from pressing use to start again. 2020-09-23 23:45:32 +10:00
Mitchell Richters
2bb5ef0d2e - Exhumed: Don't return to center after jumping or having something of a fall while playing with mouselook enabled. 2020-09-23 23:37:06 +10:00
Mitchell Richters
64113f8f9c - Blood/Duke/SW: Smooth out player's zpos adjustment while in 3rd person view. 2020-09-23 23:12:59 +10:00
Mitchell Richters
ce7af5fe0e - Duke: Fix security cameras skewing over time.
* Fixes regression from e1ee9bc83c. +='ing the angle by 16 gave a noticeable hiccup, but was keeping the poor math before in-check so the angle didn't drift.
* Using more temp data fields in hittype, properly define a min/max using the initial camera angle and the hitag which is conveniently the camera's viewing arc.
2020-09-23 18:31:12 +10:00
Christoph Oelckers
5784ff6ef7 - fixed damage type of incinerator's fireball.
A one-liner, what else... :D
2020-09-23 07:37:08 +02:00
Mitchell Richters
470f481619 - Duke: Simplify entire camera angle setup. 2020-09-23 15:34:03 +10:00
Mitchell Richters
ed9c8af82f - Duke: Move changes performed in 53038e1b29 from FinalizeInput() to processInputBits(). 2020-09-23 15:03:34 +10:00
Mitchell Richters
53038e1b29 - Duke: Don't allow looking left/right when on a security camera screen. 2020-09-23 15:00:33 +10:00
Mitchell Richters
88608e0682 - Duke: Interpolate camera sprite angle in animatecamsprite(). Fixes a "fixme". 2020-09-23 14:42:33 +10:00
Mitchell Richters
407b5346e3 - Blood: Fix issues taking damage following level transitions.
Fixes https://forum.zdoom.org/viewtopic.php?f=340&t=69919.
2020-09-23 13:28:07 +10:00
Mitchell Richters
d391e56d81 - Blood: Fix a few more issues following horizon change. Chase-cam now has proper z-pos. 2020-09-23 13:20:57 +10:00
Mitchell Richters
3d58a09aeb - Blood: Fix player's z-pos with changed horizon. 2020-09-23 08:54:19 +10:00
Christoph Oelckers
5e6317b8b9 Merge remote-tracking branch 'remotes/Github_private/Blood_InputReworking' 2020-09-22 23:32:28 +02:00
sinisterseed
0aa6b99287 - CMakeLists.txt fixes
Corrected some typos in the file.
2020-09-22 23:24:39 +02:00
Christoph Oelckers
2a2209b085 - cleanup and minor fixes. 2020-09-22 23:07:11 +02:00
Christoph Oelckers
d6bf4306eb - simplified the parser for blend modes 2020-09-22 23:05:43 +02:00
Christoph Oelckers
ec0e2be607 - better error message 2020-09-22 23:05:00 +02:00
Christoph Oelckers
880b811e0d - rewrote map loader to work independently of data structure sizes.
This is needed to extend a few fields that are too narrow - e.g. the texture offset fields have no room for interpolating scrolling textures.
Blood not done yet, will also need to be changed to get rid of the limits.
2020-09-22 22:40:53 +02:00
Christoph Oelckers
28c5c72605 - fixed: black fog does not mean FogColor == 0 because its alpha component is non-0 2020-09-22 22:38:08 +02:00
Christoph Oelckers
43a9be0ad0 - removed Blood's loadboard replacement hook.
It never calls engineLoadBoard but always its own map loading function directly.
2020-09-22 22:38:08 +02:00
Mitchell Richters
fdbc4d0e67 - Build: Fix precision loss when calculating an angle in renderPrepareMirror(). 2020-09-22 23:12:31 +10:00
Mitchell Richters
7bb3ab8188 - Build: Remove unused inline function in-case it accidentally gets used... 2020-09-22 23:01:45 +10:00
Mitchell Richters
2f9783150c - Blood: Correctly set playerHorizMin() and playerHorizMax() with respect to horizon changing from 0 to 100 like the other games (min used to be -180, max used to be 120). 2020-09-22 22:55:23 +10:00
Mitchell Richters
639ad46af1 - Blood: When dead, ensure player's horizon scales to max horizon value like before (old horizon was based on 0, not 100, so 100+120 is gi->playerHorizMax(). 2020-09-22 22:52:17 +10:00
Mitchell Richters
ac635ebd0f - Blood/RR: Replace a few playerSet*() calls with playerAdd*(). Because the setters continually set until target is reached, can cause some perceivable smoothness issues if ticker re-targets's player's angle/horizon before input code has reached target. 2020-09-22 22:50:27 +10:00
Mitchell Richters
77265b3138 - SW: Fix regression from 1900cf1fcc where the conversion from GetDeltaAngle() to getincangle() got muddled up. 2020-09-22 20:02:58 +10:00
Mitchell Richters
f168373ecf - Blood: Repair some ROR regressions from 31fc39b051.
Potentially addresses #87 and #88.
2020-09-22 18:14:43 +10:00
Christoph Oelckers
b06fe35c56 - removed redundant null entry in 'give' types. 2020-09-22 08:40:33 +02:00
Mitchell Richters
d338e60841 - Exhumed: Hook up crouch action to applylook() that was forgotten during initial implementation. 2020-09-22 16:06:12 +10:00
Mitchell Richters
46810ec490 - fix a few places where Q16.16 values were downscaled, only to be scaled back up again. 2020-09-22 15:51:48 +10:00
Mitchell Richters
31bb9e4d8d - Blood: Open up MAXHORIZVEL to SW levels to compensate for removal of q16horz scaling in previous horizon code. 2020-09-22 07:46:30 +10:00
Mitchell Richters
d40a2d3e95 Merge branch 'back_to_basics2' into Blood_InputReworking
# Conflicts:
#	source/blood/src/hudsprites.cpp
#	source/exhumed/src/status.cpp
#	source/games/duke/src/game_misc.cpp
#	source/sw/src/draw.cpp
2020-09-22 07:34:39 +10:00
Mitchell Richters
9859571ded - DrawCrosshair(): Factor in Blood's adjustable horizon which defaults to 90.
* Fixes https://forum.zdoom.org/viewtopic.php?f=340&t=69920.
2020-09-22 07:29:52 +10:00
Mitchell Richters
5c097c4a74 - Blood: Fix player's slope with horizon now based on 100 and not 0. 2020-09-22 07:13:48 +10:00
Mitchell Richters
f8210ef8ee - Exhumed: Clean out some old bools regarding old panning code. 2020-09-21 20:44:02 +10:00
Mitchell Richters
d46787cd96 - Exhumed: Restore synchronised input, hook up rest of backend input functions and get rid of nPlayerDAng. 2020-09-21 20:37:09 +10:00
Mitchell Richters
5324d9680b - Exhumed: Fixed a few missed constants when changing horizon to 100. 2020-09-21 19:59:20 +10:00
Mitchell Richters
fa1ce1c021 - Exhumed: Hooked up tic-rate input helpers. Also removed nDestVertPan[]. 2020-09-21 19:29:16 +10:00
Mitchell Richters
8a4d4b6905 - Exhumed: Open game's constrained horizon as much as sky tile in first level permits. 2020-09-21 18:48:38 +10:00
Mitchell Richters
bdc53ed7b0 - Exhumed: Standardise horizon on 100 and remove backend extern'd polymostcenterhoriz variable. 2020-09-21 18:41:56 +10:00
Mitchell Richters
3de787235d - Exhumed: Initial uplift of player input. Still more to do. 2020-09-21 18:36:11 +10:00
Mitchell Richters
59e4fae064 - Game input: Fix miscellaneous issues.
* Duke/RR: Fix `SB_CENTERVIEW` not clearing while `cl_syncinput 1`.
* Duke/RR: Remove superfluous call to `apply_seasick()`.
* RR: Change two calls from `playerSetAngle()` to `playerAddAngle()` Updated version of `playerSetAngle()` doesn't stop setting angle until target is reached, a bit too strict for this and compromised vehicle turning.
* `applylook()`: Remove dead flag. Was only used with Duke, no other game called the function when dead anyway. Since the input helpers are processed outside of `applylook()` now this is not needed.
* `applylook()`: Extend function with a bit of commentary.
2020-09-21 17:12:53 +10:00
Mitchell Richters
f806cdcec6 - Blood/Duke/RR/SW: Unify the player's angle/horizon helper functions. 2020-09-21 17:12:51 +10:00
Mitchell Richters
7bf1cacc7f - Blood/Duke/RR/SW: Unify the player's angle function.
* For Blood/SW, exposes `SB_LOOK_LEFT`/`SB_LOOK_RIGHT` to games, hooking up `q16look_ang` and `q16rotscrnang` within.
* For SW, use Duke & Blood's return to center function and remove `PF_TURN_180` bit.
* For RR, replace a few misused bits with some bools inside of `player_struct`.
* Since bulk of functionality is sourced from Duke (30Hz), apply proper scaling so SW speed matches (40Hz).
2020-09-21 17:12:26 +10:00
Christoph Oelckers
3810c4cb51 - Blood: instead of running the indexer after saving a state, just save the pointer before indexing to directly restore it. 2020-09-20 22:00:39 +02:00
Christoph Oelckers
c1a8d55d24 - removed Softpoly from the startup screen and its enabling define in the project.
Since this not only crashes but also has totally unfitting lighting, which is unlikely to be fixed it really makes no sense offering this to the users.
Vulkan may also have to be disabled for release builds because it's not working yet but that needs to be fixed later and should eventually be supported.
2020-09-20 21:15:16 +02:00
Christoph Oelckers
78be8f866b - always use the containing sector's fog when rendering sprites.
This is for consistency, otherwise sprites with a palette translation would stand out. Also use shade dependent fog density instead of a single global value.
Currently this only has an effect in true color rendering mode.
2020-09-20 20:39:11 +02:00
Mitchell Richters
0ab3b33a6c - Blood/Duke/RR/SW: Unify the player's horizon function.
* For Duke/SW, we continually apply `SB_CENTERVIEW` only if it was previously a toggled action, similar to Blood.
* For SW, we remove two SW-specific bits (`PF_LOCK_HORIZ` and `PF_LOOKING`) that are no longer needed.
* For Duke, we remove `return_to_center` and just use the `SB_CENTERVIEW` action bit as required.
* For `sethorizon()`, feature set and adjustment speeds are an averaged out accumulation across Duke/SW:
** GameTicRate is factored in for adjustment decisions to provide consistency for SW being the faster game.
** Adjustment amounts are half way between Duke/SW.
2020-09-20 20:01:36 +10:00
Mitchell Richters
f0b32b6078 - SW: Implement cl_viewbob. 2020-09-20 18:25:16 +10:00
Mitchell Richters
0c4fe5f91b - Blood: Fix remaining issues such as starting horizon, remove q16look and clean up some remaining bits in nnexts.cpp. 2020-09-20 16:21:40 +10:00
Mitchell Richters
f7957fc237 - Blood: Factor in game's tic-rate when aiming/looking up/down.
* Doesn't matter for Blood, but will matter for SW in a unified approach. Might as well get it right here.
* Appreciate the literal doubles in lieu of the enums isn't great, but this function will go into the backend in due course.
2020-09-20 16:21:38 +10:00
Mitchell Richters
d2501007f2 - Blood: Adapt uplifted DoPlayerHorizon() from SW to Blood.
* Horizon now standardised on 100 like the other games.
* Need to determine where/why/how the player's horizon is starting out at 0 and get it to init at 100 like the other games.
2020-09-20 16:21:36 +10:00
Mitchell Richters
f2b48fe79c - SW: Uplift DoPlayerHorizon() with changes to serve as basis for standardised backend player horizon function.
* Pre-requisite to make it possible to stop using Q16.16 for horizon input.
* Perform look up/down and aim up/down using true pitch without the need for a helper.
* Adapt SW's return to center function to work based on true pitch (Duke's is a bit too fast for my liking).
* Duke's aim up/down and look up/down is 6 & 12 respectively, SW's is 8 & 16 respectively. Let's go half-way at 7 & 14.
2020-09-20 16:21:35 +10:00
Mitchell Richters
6a091deb67 - Blood: Re-apply input scaling removed in 495c522096e0c9b31bdf6952e612bc3d03030da2 until the entire return to centre function is standardised across games. 2020-09-20 16:21:31 +10:00
Mitchell Richters
40bbb61239 - Blood: Get death chase-cam going while unsynchronised using input helpers. 2020-09-20 16:21:28 +10:00
Mitchell Richters
6e4ee9e975 - Blood: Forbid unsynchronised input if dead. 2020-09-20 16:21:26 +10:00
Mitchell Richters
85e81c94c7 - Blood: Bring in SW's input helpers and hook up within input code. 2020-09-20 16:21:23 +10:00
Mitchell Richters
1900cf1fcc - Move Duke's getincangle() function to the backend, create Q16.16 variant (getincangleq16()) and replace Shadow Warrior's discrete implementations shared versions.
* Need SW's input helpers available for Blood but therefore also need an angle delta function that does not seem to exist in Blood.
* Realise that gamecontrol.h/cpp might not be the most appropriate place, but it's a shared location and these will go into binaryangle.h when its utilisation can be more realised.
* Because SW's logic was reversed, in that param #1 was the new angle and param #2 was the current, all calls have been reversed.
* By happenstance, also fixes an issue with multiple 180° turns in quick succession.
2020-09-20 16:21:13 +10:00
Mitchell Richters
db7793bf54 - Blood: Clean up remainder of control.cpp in-line with Duke/SW.
* Split input bits and movement into separate functions.
* Reordered movement to be more like Duke/SW for ease of comparison.
* Removed a global.
* Removed a few includes.
2020-09-20 16:20:20 +10:00
Mitchell Richters
9c56dfffe0 - Blood: Apply horizon input outside of pPlayer->q16look and fix some incorrectly declared types.
* Looking up/down is a bit rough at first as q16look is disproportionate to where the player is currently looking.
* Won't be an issue with a unified horizon algorithm in the backend.
2020-09-20 16:20:18 +10:00
Mitchell Richters
eb0bd9638b - Blood: Re-implement unsynchronised q16horiz. 2020-09-20 16:20:16 +10:00
Mitchell Richters
ae5b6b6a91 - Blood: Re-implement unsynchronised q16ang. 2020-09-20 16:20:14 +10:00
Mitchell Richters
547bf110b2 - Blood: Create high-precision Sinf() and Cosf() inlines and use for player's horizon, using calcSinTableValue() from the backend, bypassing game's costable[]. 2020-09-20 16:20:12 +10:00
Mitchell Richters
c38c1cb1f1 - Blood: Re-do interpolating code in viewDrawScreen() in preparation for returning unsynchronised input.
* Changed config so `cl_interpolate` bool doesn't apply to player's overall movement. While it might be handy for debugging moving sector objects, I see no valid reason why there'd be a need to ever un-interpolate the player's position.
2020-09-20 16:20:10 +10:00
Mitchell Richters
20c73e1249 - Blood: Remove r_horizcenter and standardise horizon in game to that of the default in the backend (currently 100).
* The use of this will go when the input is re-factored to operate on the standard horizon of 100, not 0.
2020-09-20 16:20:08 +10:00
Mitchell Richters
4d47fe7e85 - Blood: Remove bVanilla. 2020-09-20 16:20:06 +10:00
Mitchell Richters
c835d9cadc - Blood: Revert upstream unsynchronised input implementation. 2020-09-20 16:20:04 +10:00
Mitchell Richters
20f94c5895 - Blood: Use backend input scaling. 2020-09-20 16:20:00 +10:00
Mitchell Richters
5e484bddad - Blood: Make gInput static within controls.cpp. 2020-09-20 16:19:58 +10:00
Christoph Oelckers
bac357a6be - disable the weapon in SW's savepics.
The way the weapon drawer is implemented does not work well with save pictures.
2020-09-19 21:31:35 +02:00
Christoph Oelckers
a27211dc34 - added support for SSI containers to the file system. 2020-09-19 10:07:53 +02:00
Christoph Oelckers
2bf5933923 - fixed weapon sprite translation index when in paletted mode. 2020-09-19 00:06:07 +02:00
Christoph Oelckers
d8639a9a64 - fixed bad checks for uncapped frame rate. 2020-09-18 23:18:42 +02:00
Christoph Oelckers
005f8feceb - properly use the correct delay for an ANM's final frame. 2020-09-18 22:49:51 +02:00
Christoph Oelckers
29a10cabcb - fixed most issues with palette emulation.
Brightness is now correct - I have no idea why this factor of 1/0.85 is needed - something must reduce the brightness of the entire scene but I have no idea what.
2020-09-18 22:29:13 +02:00
Christoph Oelckers
7b879f6fe7 - removed now unused SavegameLoaded variable. 2020-09-18 01:11:38 +02:00
Christoph Oelckers
77a2bcb958 - SW: make ambients start properly.
This fell victim to some fudging code that was needed to avoid crashes with the original game loop.
All that fudging could easily be removed now because nothing of it is needed anymore.
2020-09-18 00:33:18 +02:00
Christoph Oelckers
af298411df - added widescreen titlepic for Duke Nukem 3D:
Also made some tweaks to the intro sequence drawer so that it recognizes image formats not depending on the game palette.
2020-09-17 23:20:50 +02:00
Christoph Oelckers
f5d14f826a - added the SHOOT event and fixed some issues with poor code generation for the game data accessors.
They created different code depending on the passed index, this was changed to always emit the optional parameter, even when not needed, so that the interpreter does not need to second-guess.
2020-09-17 23:06:54 +02:00
Christoph Oelckers
8fa5d3d9d2 - added the remaining CON features from EDuke 2.x
Not everything will do something, though. This was some incredibly careless code operating without a safety net allowing uncontrolled write access to the map structure.
Most of the critical fields have been made read-only, which has been the only mode of access in the mods I checked.

Note that this does not enable scripting of the weapon sprite drawer, only the gameplay related features were done.
2020-09-17 23:06:54 +02:00
Mitchell Richters
e1ee9bc83c - Duke: Fix camera advancing angle by 16 instead of 8 under circumstances. 2020-09-17 18:31:09 +10:00
Mitchell Richters
71a06b7cdd - SW: Fix quake intensity. 2020-09-17 09:01:19 +10:00
Christoph Oelckers
4dc7f8b142 - undid some formatting screwups from the merge. 2020-09-16 19:28:51 +02:00
Christoph Oelckers
942beea1ff Merge branch 'back_to_basics2' 2020-09-16 19:26:23 +02:00
Mitchell Richters
4370686c81 - SW: Allow disabling melee weapon blurring. 2020-09-16 19:18:08 +02:00
Christoph Oelckers
b0090b07fc - do not fade screen jobs in when in the menu.
This doesn't work properly because the timer is stopped, leading to visual artifacts with the fading.
2020-09-16 19:13:21 +02:00
Christoph Oelckers
6776508239 - widescreen asset setup and consolidation of .def file loading. 2020-09-16 19:13:06 +02:00
Christoph Oelckers
2095e9e3c6 - code changes for last commit - they were not picked up automatically.
# Conflicts:
#	source/build/src/defs.cpp
2020-09-16 19:13:05 +02:00
Christoph Oelckers
5c777eeb38 - moved implementation of 'animtilerange' into buildtiles.cpp. 2020-09-16 19:13:05 +02:00
Christoph Oelckers
616838dd0a - little bit of cleanup on tileImport. 2020-09-16 19:13:05 +02:00
Mitchell Richters
ce82eaf899 - Duke/RR: Address weapon drawer interpolation concerns raised in #403. 2020-09-16 21:01:09 +10:00
Christoph Oelckers
b26a5b800e - make sure that changing the texture filter mode does not clobber the global state
Need to rebind the samplers after modifying them to avoid undefined behavior.

Fixes #397
2020-09-15 22:00:15 +02:00
Christoph Oelckers
867b8f006f Reverted key input changes from yesterday.
At least the SW version did not work right so let's take no chances here.
2020-09-15 21:54:10 +02:00