Commit graph

322 commits

Author SHA1 Message Date
Christoph Oelckers
bcc61470a2 - mostly deal with hitinfo.hitsect. 2021-12-26 23:08:50 +01:00
Christoph Oelckers
d447e3e86f - make the sector reference in SINE_WAVE_FLOOR a pointer. 2021-12-26 23:08:49 +01:00
Christoph Oelckers
16480ccfcc - use sector wrappers where applicable. 2021-12-26 23:08:49 +01:00
Christoph Oelckers
52d9451cbc - SOP::op_main_sector 2021-12-26 23:08:49 +01:00
Christoph Oelckers
f388efc5ef - eliminated the redundant SOP::sector array. 2021-12-26 23:08:49 +01:00
Christoph Oelckers
c43d594f34 - SectorIsUnderwaterArea 2021-12-26 23:08:49 +01:00
Christoph Oelckers
4149a335a3 - SOP::mid_sector 2021-12-26 23:08:48 +01:00
Christoph Oelckers
b936345e11 - sectnum() cleanup and AnimSet return type. 2021-12-26 23:08:48 +01:00
Christoph Oelckers
3b16db7a0f - SectorMidPoint 2021-12-26 23:08:48 +01:00
Christoph Oelckers
d6cd291030 - use a wall pointer in SINE_WAVE 2021-12-26 23:08:47 +01:00
Christoph Oelckers
e3ad05d4d7 - quick cursectnum replacements. 2021-12-26 23:08:46 +01:00
Christoph Oelckers
c0496420ec - LadderSector 2021-12-26 23:08:46 +01:00
Christoph Oelckers
d1f156dec3 - most InsertActor calls. 2021-12-26 23:08:43 +01:00
Christoph Oelckers
eb82f60981 - FAFcansee. 2021-12-26 23:08:42 +01:00
Christoph Oelckers
a93dbaf5fe - SW: simplified rotation interpolation functions. 2021-12-26 23:08:40 +01:00
Christoph Oelckers
16bdea1b2e More SW shorts 2021-12-25 21:28:54 +01:00
Christoph Oelckers
6a9b377724 SW de-shortification 2021-12-25 21:28:53 +01:00
Christoph Oelckers
4d7b45b68e - SW: first batch of short handling. 2021-12-25 21:28:53 +01:00
Christoph Oelckers
fded90c491 - SW: deleted SECT_USER. 2021-12-25 21:28:49 +01:00
Christoph Oelckers
7d2404ce76 - made sector a TArray. 2021-12-25 21:28:49 +01:00
Christoph Oelckers
14907a9a97 - sector extension basics. 2021-12-25 21:28:48 +01:00
Christoph Oelckers
56a1836e68 - all SectUsers replaced, except for the maintenance code of the array. 2021-12-25 21:28:47 +01:00
Christoph Oelckers
bd43f49c29 - replaced half of the remaining SectUser accesses. 2021-12-25 21:28:46 +01:00
Christoph Oelckers
5cda292d98 - lots of search& replace actions.
This takes care of roughly 2/3 of the SectUser accesses.
2021-12-25 21:28:46 +01:00
Christoph Oelckers
4266edfa04 - SW: automatic ->sector() replacements (lots of them) 2021-12-25 21:28:46 +01:00
Christoph Oelckers
a5fac26a90 - DIVx macro removal.
Only DIV2 left because there are too many calls to quickly remove them.
2021-12-25 21:28:45 +01:00
Christoph Oelckers
f6db4a8e51 - SW: move User into DSWActor. 2021-12-25 21:28:39 +01:00
Christoph Oelckers
4daad25e5c - use WORDS_BIGENDIAN directly in place of B_BIG_ENDIAN 2021-12-14 12:27:41 +01:00
Christoph Oelckers
7daa501a4d - removed all #include "compat.h" except the one in build.h
Still all compiles fine.
2021-12-14 12:24:10 +01:00
Christoph Oelckers
b73ea76c18 - cleaned out Bunny_Count declarations.
One is enough.
2021-11-29 00:57:09 +01:00
Christoph Oelckers
cd3288860a - fixed automap player drawing for follpw mode off in all games. 2021-11-29 00:56:32 +01:00
Christoph Oelckers
ed2d8373fc - final cleanup. 2021-11-29 00:56:17 +01:00
Christoph Oelckers
e12ae040de - collision code cleanup.
# Conflicts:
#	source/games/sw/src/game.h
#	source/games/sw/src/sprite.cpp

# Conflicts:
#	source/games/sw/src/game.h
2021-11-29 00:56:17 +01:00
Christoph Oelckers
2f1e23a654 - replaced PLAYER::PlayerSprite with PLAYER::actor
# Conflicts:
#	source/games/sw/src/save.cpp
2021-11-29 00:56:15 +01:00
Christoph Oelckers
5b10e9f2d5 - got rid of SpriteP pointers in PLAYER and USER. 2021-11-29 00:56:15 +01:00
Christoph Oelckers
8d95b9cb98 - got rid of the PlaySound variant taking a sprite pointer. 2021-11-29 00:56:15 +01:00
Christoph Oelckers
69223af7b0 - SpriteControl and subfunctions. 2021-11-29 00:56:13 +01:00
Christoph Oelckers
41f8c6f4af - owner fixes in weapons.cpp.
# Conflicts:
#	source/games/sw/src/game.h

# Conflicts:
#	source/games/sw/src/game.h
#	source/games/sw/src/weapon.cpp
2021-11-29 00:56:12 +01:00
Christoph Oelckers
2b4ed0eaf3 - PlayerCheckDeath 2021-11-29 00:56:10 +01:00
Christoph Oelckers
a073ef65e7 - low level move functions now return a Collision struct.
# Conflicts:
#	source/games/sw/src/sprite.cpp
2021-11-29 00:56:09 +01:00
Christoph Oelckers
606ce997ac - cleanup of collision maintenance.
u->ret is gone, and for clearing the collision info the proper utilities are being called now.
2021-11-29 00:56:09 +01:00
Christoph Oelckers
8af0455f92 - VehicleMoveHit 2021-11-29 00:56:05 +01:00
Christoph Oelckers
6a25b4a560 - getzrange wrappers.
# Conflicts:
#	source/games/sw/src/game.h
2021-11-29 00:56:02 +01:00
Christoph Oelckers
6f0c477e85 - getting rid of COVERinsertsprite, plus cleanup. 2021-11-29 00:56:01 +01:00
Christoph Oelckers
da1e97469e - FAFhitscan migration to HITINFO. 2021-11-29 00:55:52 +01:00
Christoph Oelckers
96ebfe808c - turned some macros into functions. 2021-11-29 00:55:50 +01:00
Christoph Oelckers
83d0930a2e - QueueFootPrint + QueuefloorBlood. 2021-11-29 00:55:49 +01:00
Christoph Oelckers
0d45e50ea6 - QueueGeneric + ShrapKillSprite. 2021-11-29 00:55:48 +01:00
Christoph Oelckers
c14fb9e93f - QueueLoWangs 2021-11-29 00:55:48 +01:00
Christoph Oelckers
58749b2770 - NewStateGroup wrappers replaced. 2021-11-29 00:55:48 +01:00
Christoph Oelckers
cd8e8e4f67 - removed index based version of SpawnUser. 2021-11-29 00:55:47 +01:00
Christoph Oelckers
6489c60905 - lots of search & replace, plus a few fixes on ActorSpawn. 2021-11-29 00:55:46 +01:00
Christoph Oelckers
d49ae699f8 - ChangeSpriteState + change_sprite_stat. 2021-11-29 00:55:46 +01:00
Christoph Oelckers
1d9d70613f - char review in SW 2021-11-29 00:55:43 +01:00
Christoph Oelckers
b878bf8aac - SW: renamed all unsigned chars to uint8_t
Also deletes some unused declarations
2021-11-29 00:55:43 +01:00
Christoph Oelckers
21af63dfcc - wallmove.cpp 2021-11-29 00:55:38 +01:00
Christoph Oelckers
10ea8b0fb5 - vator.cpp 2021-11-29 00:55:38 +01:00
Christoph Oelckers
2c94259603 - BossSpriteNum 2021-11-29 00:55:37 +01:00
Christoph Oelckers
411c814dc3 - vis.cpp 2021-11-29 00:55:37 +01:00
Christoph Oelckers
02bdba71fc - spike.cpp. 2021-11-29 00:55:37 +01:00
Christoph Oelckers
e32a1af7b2 - lots of PlaySound calls migrated to actors. 2021-11-29 00:55:36 +01:00
Christoph Oelckers
1388794032 - first half of rotator.cpp. 2021-11-29 00:55:34 +01:00
Christoph Oelckers
da683ddf7a - ripper2.cpp 2021-11-29 00:55:33 +01:00
Christoph Oelckers
82b4385ede - ripper.cpp 2021-11-29 00:55:32 +01:00
Christoph Oelckers
0e629eb322 - sop.match_event_sprite 2021-11-29 00:55:32 +01:00
Christoph Oelckers
74fce3bf58 - sector object sprite list 2021-11-29 00:55:31 +01:00
Christoph Oelckers
c6bd5c04c7 - fixed most warnings GCC pointed out in game code. 2021-11-29 00:55:29 +01:00
Christoph Oelckers
1152ec0b54 - use actor pointers in animation system. 2021-11-29 00:55:28 +01:00
Christoph Oelckers
826b514571 - removed a few pointless or unused macros. 2021-11-29 00:55:27 +01:00
Christoph Oelckers
ba4b5bbbcb - PLAYER::Killer 2021-11-29 00:55:27 +01:00
Christoph Oelckers
7d7000f6ab - FindNearSprite + PLAYER::remote_sprite. 2021-11-29 00:55:26 +01:00
Christoph Oelckers
0e37e0904e - sop::sp_child. 2021-11-29 00:55:26 +01:00
Christoph Oelckers
02671dbe2f - PlayerUnderSprite. 2021-11-29 00:55:25 +01:00
Christoph Oelckers
8780be4ee4 - WpnGoal + sprite_num. 2021-11-29 00:55:24 +01:00
Christoph Oelckers
8336f689dd - DoPickTarget. 2021-11-29 00:55:24 +01:00
Christoph Oelckers
e7dcd279af - PickJumpMaxSpeed. 2021-11-29 00:55:22 +01:00
Christoph Oelckers
7012a77685 - InitShell / SpawnShell 2021-11-29 00:55:21 +01:00
Christoph Oelckers
aef68363b4 - FlagOwner refactoring.
Only those parts which use it as a sprite index, seveal actors recycle it as a general purpose variable.
2021-11-29 00:55:21 +01:00
Christoph Oelckers
5efb63b780 - InitCaltrops + InitPhosphorus 2021-11-29 00:55:21 +01:00
Christoph Oelckers
e3e9e4030e - splash functions. 2021-11-29 00:55:19 +01:00
Christoph Oelckers
cf8aaf7ff2 - JS_ProcessEchoSpot + UnlockKeyLock 2021-11-29 00:55:19 +01:00
Christoph Oelckers
ef23f69072 - EnemyDefaults. 2021-11-29 00:55:16 +01:00
Christoph Oelckers
f5c7ccd6af - bunny.cpp 2021-11-29 00:55:16 +01:00
Christoph Oelckers
4231119717 - owner stuff 2021-11-29 00:55:15 +01:00
Christoph Oelckers
13f0b08aeb - AutoBreakWall and SpawnShrap cleanup. 2021-11-29 00:55:14 +01:00
Christoph Oelckers
d63ac59fa0 - FindBreakSpriteMatch 2021-11-29 00:55:14 +01:00
Christoph Oelckers
6a4049e33c - SetupSpriteForBreak, extra sprite flags as enum 2021-11-29 00:55:14 +01:00
Christoph Oelckers
de12433809 - USER::Attach and SetAttach. 2021-11-29 00:55:13 +01:00
Christoph Oelckers
a48b45143e - ActorFindTrack 2021-11-29 00:55:13 +01:00
Christoph Oelckers
c15da92544 - add a Collision member to USER. 2021-11-29 00:55:12 +01:00
Christoph Oelckers
d5f1ec9ad7 - wrapped all assignments to USER::ret.
To allow more complex operations like filling a Collision struct and changing the calling code piece by piece.
2021-11-29 00:55:12 +01:00
Christoph Oelckers
c88524884c - made USER::flame an actor pointer. 2021-11-29 00:55:11 +01:00
Christoph Oelckers
0de816d308 - replaced tgt_sp wrapper. 2021-11-29 00:55:11 +01:00
Christoph Oelckers
84b83ad9b8 - replaced hi_sp with an actor pointer. 2021-11-29 00:55:10 +01:00
Christoph Oelckers
c0c27dfd1a - replaced lo_sp with an actor pointer, both in USER and PLAYER. 2021-11-29 00:55:10 +01:00
Christoph Oelckers
06b4e8cf08 - cleanup. 2021-11-29 00:55:10 +01:00
Christoph Oelckers
02031c77d0 - first large batch of NewStateGroup calls. 2021-11-29 00:55:09 +01:00
Christoph Oelckers
d98fe4af73 - renamed NewStateGroup.
As refactoring aid.
2021-11-29 00:55:09 +01:00
Christoph Oelckers
400f822df3 - SpawnShrap callers
Function itself still needs work.
2021-11-29 00:55:08 +01:00
Christoph Oelckers
49d43727ba - SpawnBlood. 2021-11-29 00:55:07 +01:00
Christoph Oelckers
771b4bcf43 - renamed ChangeState to ChangeSpriteState. 2021-11-29 00:55:07 +01:00
Christoph Oelckers
9602ee6c39 - most of change_sprite_stat. 2021-11-29 00:55:07 +01:00
Christoph Oelckers
7fc9ad1edb - Coolie ghost function interface. 2021-11-29 00:55:06 +01:00
Christoph Oelckers
119d4393db - Initial SetOwner WIP. 2021-11-29 00:55:06 +01:00
Christoph Oelckers
34d0c12b60 - removed all references to tgt_sp from ai.cpp, plus a few others found with search&replace. 2021-11-29 00:55:06 +01:00
Christoph Oelckers
602048b41d - more simple tgt_sp replacements. 2021-11-29 00:55:05 +01:00
Christoph Oelckers
697d4f2253 - replaced USER::tgt_sp with an actor pointer.
Most access is still through a wrapper.
2021-11-29 00:55:04 +01:00
Christoph Oelckers
2a897c0582 - SW hit code abstraction. 2021-11-29 00:55:03 +01:00
Christoph Oelckers
2a56479e3e - DoBeginJump 2021-11-29 00:55:02 +01:00
Mitch Richters
e491d15ff9 - Move InputScale() out of inputstate.cpp and into i_time.cpp as I_GetInputFrac() to make it available to GZDoom for potential future requirements.
* As part of this, feed the output of `I_GetInputFrac()` to `gi->GetInput()` instead of having each game's virtual override calling it locally.
2021-11-29 00:55:01 +01:00
Christoph Oelckers
01deb13694 - SW: fixed NORM_xxx macros
kHitIndexMask already has the -1 considered, it is 0x3fff.
2021-11-12 11:09:24 +01:00
Christoph Oelckers
25a6774540 - SW: got rid of MAXWALLS.
Only places left are declarations of global arrays.
2021-11-11 21:58:14 +01:00
Christoph Oelckers
a35900362e - only use un-deprecated variants of updatesector(z) in SW. 2021-11-09 00:09:48 +01:00
Christoph Oelckers
a5f51cfd88 - SW: migrate everything to the main clipmove function 2021-11-08 23:11:30 +01:00
Christoph Oelckers
16f9d4ec36 - got rid of COVERupdatesector
Not needed as it just forwards to the engine’s updatesector - and it gets in the way of other changes
2021-11-08 23:11:30 +01:00
Mitch Richters
9495b9e6d0 - SW: Interpolate the player's weapon recoil.
* Reported as missing by @nashmuhandes.
2021-10-31 08:53:26 +11:00
Mitch Richters
f0a347263a - SW: Replace use of getzrange_old() inline wrapper with getzrange() and remove inline wrappers. 2021-10-30 17:30:02 +02:00
Christoph Oelckers
509124c1dd - redid SW action interface to use a separate wrapper class from USER.
Turned out that not all sprites in the world have a USER, so we need something different to wrap the game's sprite data.
2021-10-29 20:55:31 +02:00
Christoph Oelckers
e241e7dc52 - SW: changed Animator interface to use USERp parameters. 2021-10-28 23:37:07 +02:00
Christoph Oelckers
a358cf8516 - SW: eliminated all SPRITE_TAG# macros. 2021-10-12 22:21:08 +02:00
Christoph Oelckers
afce1aba88 - SW: eliminated the only use of the SPRITE_TAG1 macro. 2021-10-11 23:02:54 +02:00
Christoph Oelckers
7eac8b71d5 - removed unused constants 2021-10-10 11:47:19 +02:00
Christoph Oelckers
2af688dd62 - replaced RANDOM_RANGE macro with direct calls to RandomRange 2021-10-10 11:47:19 +02:00
Mitchell Richters
d9a7465c08 - SW: Remove gi->FreeGameData() from game as its inside code wasn't freeing game data but level data already freed in gi->FreeLevelData().
* This was causing `GameMain()` to try to call `TerminateLevel()` after tile data had been freed, causing a hard stop.
* Fixes #464.
2021-07-20 20:11:29 +10:00
Mitchell Richters
33845c4a23 - Add skill CCMD to return player's current skill, while also being able to set skill for next game.
* Fixes #332.
2021-07-20 18:50:58 +10:00
Christoph Oelckers
64fc0b66b2 - SW: added countermeasure to re-enable lower skills on mods not implementing them.
Aside from spawning the enemies from the lowest supported skill it will also reduce the threat level by reducing health of some enemies or by replacing the harder Ninja variants with the base type.
2021-07-06 10:26:43 +02:00
Christoph Oelckers
454816299e - reorganized loading of textures.
Due to dependencies on initializing some data in app_init it was not possible to cleanly set up the fonts.
This adds a game-side function for loading the entire palettes before starting with the texture data and another one for loading game-side texture data.
This now allows fully setting up the palettes before starting with the textures and to fully set up the textures before reading the .def files.

All this is needed because to properly initialize, the fonts need to be able to access the fully initialized texture state, including replacements and hires substitutions from the .def files.
2021-06-01 11:05:26 +02:00
Christoph Oelckers
8b507ed606 - enabled the ENDOOM-like text screens when quitting Duke and SW.
Turned out that all they needed was the font.
2021-05-31 23:16:52 +02:00
Christoph Oelckers
af781e0422 - moved all font setup out of the C++ code.
All internal fonts now get defined through FONTDEFS.
Also fixing a few offsets.
2021-05-31 21:20:31 +02:00
Christoph Oelckers
8d8b3cda46 - scriptified SW's status bar.
Not tested yet. This just compiles without errors.
2021-05-16 09:34:08 +02:00
Christoph Oelckers
d311792e06 - engine side preparations for Duke Statusbar scriptification.
Mainly, gotweapon had to be reverted to a flat bool array to avoid implementing FixedBitArray for the VM.
Also adding a few new tile names and PushV for string arrays.
2021-05-15 10:44:35 +02:00
Christoph Oelckers
fb21e39de5 - fixed remaining SW warnings. 2021-05-12 21:50:00 +02:00
Christoph Oelckers
03289f5097 - silenced some warnings. 2021-05-12 21:47:32 +02:00
Christoph Oelckers
e40ed2262e - cleanup of 'gotpic' handling. 2021-05-10 20:13:28 +02:00
Christoph Oelckers
c679f83f75 - make all games return to the main menu when the game is ended with F10.
Duke still went to the intro movies which was a bit problematic.
2021-05-04 11:32:09 +02:00
Christoph Oelckers
7d77b2315f - merged the few remaining contents of mmulti.h into d_net.h 2021-05-03 19:01:00 +02:00
Christoph Oelckers
8003ab6fa3 Merge branch 'scriptable_cutscenes' into newrenderer 2021-05-02 22:37:46 +02:00
Christoph Oelckers
dfd47ea33a - migrated SW to RMAPINFO as well.
Also removed the 'definecutscene' code from the .def parser as this was never meant to be more than a temporary solution.
2021-05-02 17:35:25 +02:00
Christoph Oelckers
aa148d602c - scriptified SW's 2D screens.
Compiles but not tested yet.
2021-04-30 20:08:35 +02:00
Christoph Oelckers
14971f9569 Merge branch 'master' into newrenderer 2021-04-22 00:10:37 +02:00
Christoph Oelckers
c3e5cf322e - SW: cleaned up the depth variable handling in SECT_USER which was endian dependent, including the savegame handler 2021-04-22 00:03:17 +02:00
Christoph Oelckers
b85da221d7 - SW: save tracks as JSON. 2021-04-22 00:03:17 +02:00
Christoph Oelckers
bb8309831c - SW: eliminated the int pointer in ANIM.
# Conflicts:
#	source/games/sw/src/save.cpp
2021-04-22 00:03:16 +02:00
Christoph Oelckers
e9b1342ffd - SW: save globals as JSON. 2021-04-22 00:03:16 +02:00
Christoph Oelckers
66e5b9ada7 - SW: save SectUser as JSON, also store in a managed array. 2021-04-22 00:03:16 +02:00
Christoph Oelckers
06b03f7301 - SW: save the player and related data as JSON. 2021-04-22 00:03:15 +02:00
Christoph Oelckers
9bae2295cc - better USER clearing. 2021-04-22 00:03:15 +02:00
Christoph Oelckers
8fee2b3ed7 - save SW's User array as JSON. 2021-04-22 00:03:15 +02:00
Christoph Oelckers
32955621f8 - removed all parental lock garbage from SW.
Better get rid of it as it's a major complication as implemented.
2021-04-22 00:03:15 +02:00
Christoph Oelckers
bbb53bc717 - refactored the main User array into something that's automatically managed. 2021-04-22 00:03:14 +02:00
Christoph Oelckers
cd45a1f035 - made more parts of USER serialization friendly. 2021-04-22 00:03:14 +02:00
Christoph Oelckers
dcb393bc44 - started reorganizing SW's memory management.
Need to get rid of all those unmanaged allocations and present game data in an easily serializable form.
This adds a managed TPointer class that replicates the useful parts of std::unique_pointer but steers clear of its properties that often render it useless.
2021-04-22 00:03:14 +02:00
Christoph Oelckers
dc8b72b2ce Merge branch 'master' into newrenderer2
# Conflicts:
#	source/games/duke/src/actors.cpp
#	source/games/duke/src/hudweapon_d.cpp
#	source/games/duke/src/hudweapon_r.cpp
#	source/games/duke/src/render.cpp
2021-04-15 19:34:03 +02:00
Christoph Oelckers
61a6321cd6 - Exhumed: Change map command to start the level directly without going through the scrolling map. 2021-04-15 18:55:54 +02:00
Christoph Oelckers
42d02834b1 Merge branch 'master' into newrenderer2
# Conflicts:
#	source/build/include/build.h
#	source/build/src/polymost.cpp
#	source/build/src/voxmodel.cpp
#	source/core/gamecontrol.cpp
#	source/core/gamestruct.h
#	source/games/blood/src/animatesprite.cpp
#	source/games/blood/src/misc.h
#	source/games/blood/src/view.cpp
#	source/games/duke/src/render.cpp
#	source/games/sw/src/draw.cpp
#	source/games/sw/src/game.h
#	source/games/sw/src/jsector.cpp
#	source/glbackend/glbackend.cpp
2021-04-11 14:38:56 +02:00
Christoph Oelckers
0ee28fb45e - also handle SW's voxels. 2021-04-11 13:38:23 +02:00
Christoph Oelckers
952bccbf5f - added a check for game-side-defined voxels when discarding one-sided wall sprites viewed from the back. 2021-04-03 21:49:28 +02:00
Christoph Oelckers
9c95c902c7 - added a check for game-side-defined voxels when discarding one-sided wall sprites viewed from the back. 2021-04-03 21:40:16 +02:00
Christoph Oelckers
c8a75a8664 - give each DrawInfo its own list of tsprites.
Since these do not fully get processed sequentially the contents need to be preserved until needed.
This required getting rid of the global tsprite array. Polymost still uses a static vatiable, though, but this is only accessed in polymost-exclusive code.
2021-04-02 10:28:40 +02:00
Christoph Oelckers
80e5cd0dc5 - fixed some automap issues:
* Blood's automap was not drawn at all.
* SW's automap always showed all sectors
* SW's player sprite was not rendered.
* Non-automap: Forward gotsector to the game code because there's still a few places in Blood that need it.
2021-04-01 20:47:05 +02:00
Christoph Oelckers
92bb9c5319 - fixed display of player in mirrors. 2021-03-29 21:48:23 +02:00
Christoph Oelckers
e8edb32e0d - fixed camera texture setup.
They still are upside-down but aside from that work as expected.
2021-03-28 19:22:51 +02:00
Christoph Oelckers
be7bca8e9e - expose animatesprite set of functions to new renderer as a callback. 2021-03-26 10:05:01 +01:00
Christoph Oelckers
f6568fee0c - rewrote SW portal setup to use static data instead of ad-hoc setup.
This was by far the messiest game, there's two reasons for this.
First, the portal links do not need to be in an actual portal sector, so they cannot be used to detect portal sectors.
Second, the game moves portals in place, so all offsets are (0,0,0) so that not even these can be used for detection.

The only working method is the super-complicated original way to look up portals at run time, just being done at map start.
Having static portal links should reduce the render glitches quite significantly because the renderer knows now which sectors belong to a portal and can use this information to ensure proper processing.
2021-03-25 21:21:48 +01:00
Christoph Oelckers
af54cf3a3c - made SW's sector portals operational.
Unlike the other games these are so poorly defined that the engine has to rely on the original fudging to pick the proper portal to link to. As a result they are just as limited as they always were.
In addition all the portal search code had to be reinstated.
2021-03-25 16:45:40 +01:00
Christoph Oelckers
09a9e14feb - set up engine portals for SW.
Also moving more code to _polymost.cpp which is only needed for ad-hoc lookup of portals with a client side implementation of a two-layer renderer.
2021-03-21 17:04:06 +01:00
Christoph Oelckers
91957e40f1 - moved some original Raze code out if the Build folder. 2021-03-20 17:08:55 +01:00
Christoph Oelckers
fa8ca81460 - SW: added persistent copy of oz.
The door movement code uses oz for its position checks so we need a persistent version of it that survives uncontrolled changes from the engine side.
2021-02-28 12:35:34 +01:00
Mitchell Richters
cff97c9cf3 - calcChaseCamPos(): Restore original algorithms for new position via GameInterface struct.
* Averaging out the values was a net negative for all games. Each games' original value is tuned to the specific games.
2021-02-18 21:47:39 +11:00
Mitchell Richters
ba57429ac6 - Blood, Duke & SW: Create new backend chasecam function and replace game-specific versions with it.
* Based off SW's implementation.
2021-02-18 21:47:37 +11:00
Mitchell Richters
2abda0e27d - All Games: Migrate each game's clock counter to backend solution. 2021-02-18 21:47:33 +11:00
Christoph Oelckers
fc11f537f7 - project cleanup
* moved all games into the 'games' folder.
* fixed project to include all sources and move them to the proper folders.
2021-01-10 20:31:32 +01:00
Renamed from source/sw/src/game.h (Browse further)