Christoph Oelckers
e17da708e7
- lots of ->sectnum search & replace.
2021-12-26 23:08:43 +01:00
Christoph Oelckers
eb82f60981
- FAFcansee.
2021-12-26 23:08:42 +01:00
Christoph Oelckers
ac655abc42
- search & replace only.
2021-12-26 23:08:41 +01:00
Christoph Oelckers
82447233a7
- several getangle(delta) blocks.
2021-12-26 23:08:41 +01:00
Christoph Oelckers
0a0cc85407
- renamed HITINFO fields.
2021-12-26 23:08:41 +01:00
Christoph Oelckers
41506f35db
- calcviewpitch
2021-12-26 23:08:40 +01:00
Christoph Oelckers
7d2404ce76
- made sector a TArray.
2021-12-25 21:28:49 +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
999ec3c95a
use validSectorIndex checks where appropriate.
...
Let’s hope that this sloppiness doesn’t have negative effects with broken maps.
# Conflicts:
# source/games/sw/src/sprite.cpp
# Conflicts:
# source/games/duke/src/prediction.cpp
# source/games/duke/src/render.cpp
2021-12-25 21:28:37 +01:00
Christoph Oelckers
1de9c63d45
- fixed center aligned rendering of 2D content.
...
This calculates the centered pivot point in integer texel coordinate space so for odd numbers it must round down instead of using a fractional position.
2021-11-29 00:57:10 +01:00
Christoph Oelckers
adf3133fdc
- use sectnum and wallnum to get an index from pointers instead of subtracting the array base.
2021-11-29 00:56:26 +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
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
cbf8d2324a
- DoFindGround(Point)
2021-11-29 00:56:02 +01:00
Christoph Oelckers
057de89b9b
- u->ret cleanup.
2021-11-29 00:56:02 +01:00
Christoph Oelckers
da1e97469e
- FAFhitscan migration to HITINFO.
2021-11-29 00:55:52 +01:00
Christoph Oelckers
5264c6540c
- SpriteWarpToUnderwater + SpriteWarpToSurface
2021-11-29 00:55:51 +01:00
Christoph Oelckers
130028fa82
- SpawnSplash(XY)
...
# Conflicts:
# source/games/sw/src/weapon.cpp
2021-11-29 00:55:50 +01:00
Christoph Oelckers
83d0930a2e
- QueueFootPrint + QueuefloorBlood.
2021-11-29 00:55:49 +01:00
Christoph Oelckers
c14fb9e93f
- QueueLoWangs
2021-11-29 00:55:48 +01:00
Christoph Oelckers
a85a1e497f
- ActorCoughItem.
2021-11-29 00:55:47 +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
e98e1a6fea
- warp.cpp
2021-11-29 00:55:38 +01:00
Christoph Oelckers
36067baedd
- owner cleanup.
2021-11-29 00:55:37 +01:00
Christoph Oelckers
74fce3bf58
- sector object sprite list
2021-11-29 00:55:31 +01:00
Christoph Oelckers
01abe7b2ac
- addressed most unused/uninitialized variable warnings from MSVC.
2021-11-29 00:55:30 +01:00
Christoph Oelckers
1011f10c0b
- SpriteP fully replaced in player.cpp
2021-11-29 00:55:27 +01:00
Christoph Oelckers
a583a9cb14
- some smaller changes in various places.
2021-11-29 00:55:27 +01:00
Christoph Oelckers
bc584f6ff6
- the rest pf player.cpp
2021-11-29 00:55:27 +01:00
Christoph Oelckers
ba4b5bbbcb
- PLAYER::Killer
2021-11-29 00:55:27 +01:00
Christoph Oelckers
f2058933ed
- DoPlayerBeginDie
2021-11-29 00:55:26 +01:00
Christoph Oelckers
c40fc488e5
- SpawnBubble.
2021-11-29 00:55:26 +01:00
Christoph Oelckers
d3302d6cf9
- minor changes in multiple functions in player.cpp
2021-11-29 00:55:26 +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
b6c741892e
- player movement functions.
2021-11-29 00:55:25 +01:00
Christoph Oelckers
89ef1c0961
- DoPlayerZRange + DoPlayerSlide.
2021-11-29 00:55:25 +01:00
Christoph Oelckers
02671dbe2f
- PlayerUnderSprite.
2021-11-29 00:55:25 +01:00
Christoph Oelckers
dd684f36a4
- a few player functions.
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
f4d813b0c7
- reformatting function headers + deletion of unused code in player.cpp.
2021-11-29 00:55:24 +01:00
Christoph Oelckers
4ab13dcbea
- player.cpp global search & replace.
2021-11-29 00:55:24 +01:00
Christoph Oelckers
3e91ac6417
- InitBloodSpray
2021-11-29 00:55:21 +01:00
Christoph Oelckers
a69a45523f
- HitBreakSprite
2021-11-29 00:55:15 +01:00
Christoph Oelckers
8daa825aa1
- SpriteQueueDelete + DeleteNoSoundOwner.
2021-11-29 00:55:15 +01:00
Christoph Oelckers
6628ec9459
- DriveCrush
2021-11-29 00:55:14 +01:00
Christoph Oelckers
bd47d61615
- replaced some changespritesect with ChangeActorSect.
2021-11-29 00:55:13 +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
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
d60d3cd307
- second large batch of NewStateGroup calls.
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
740c5e1e56
- DoSuicide
2021-11-29 00:55:08 +01:00
Christoph Oelckers
400f822df3
- SpawnShrap callers
...
Function itself still needs work.
2021-11-29 00:55:08 +01:00
Christoph Oelckers
1db4be60f0
- UpdateSinglePlayKills
2021-11-29 00:55:08 +01:00
Christoph Oelckers
9602ee6c39
- most of change_sprite_stat.
2021-11-29 00:55:07 +01:00
Christoph Oelckers
c7f6b7a8c2
- DoFall + DoBeginFall.
2021-11-29 00:55:03 +01:00
Christoph Oelckers
dc6ea40911
- DoFall
2021-11-29 00:55:02 +01:00
Christoph Oelckers
2a56479e3e
- DoBeginJump
2021-11-29 00:55:02 +01:00
Christoph Oelckers
9e438b4042
- DoActorBeginSlide
2021-11-29 00:55:02 +01:00
Christoph Oelckers
8f19dc12d8
- SW: code/data pointer saving cleanup.
...
* a large number of code pointer records were removed because none of these functions ever gets assigned to a pointer
* instead of looking up entries by index, do it by name. This is far less fragile and will survive deeper refactoring. The old storage by table index will break as soon as a single entry gets removed.
Since the old savegames got broken due to this problem recently it was a good time to change the setup.
2021-11-11 23:28:28 +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
Christoph Oelckers
d20aa47adf
- made sector parameter of updatesectorz an int and deprecated the short version.
2021-11-06 19:27:51 +01:00
Mitch Richters
59850fa768
- SW: When adjusting horizon in DoPlayerDeathHoriz()
, just use integer horizon values and not Q16.16.
2021-11-02 10:29:31 +11:00
Christoph Oelckers
86166f5e67
Revert "- xs_Float.h
: Make all inlines return an unsigned value, and change previous unsigned inlines to signed."
...
Revert "- `xs_Float.h`: Add `getint()` getter to `_xs_doubleints` struct."
Revert "- SW: When adjusting horizon in `DoPlayerDeathHoriz()`, just use integer horizon values and not Q16.16."
Revert "- Duke (RR): Clean up some unnecessary `FixedToFloat()` usage with the `fixedhoriz` `asbuildf()` method."
Revert "- `binaryangle.h`: Use `constexpr` on inline functions where it was previously not possible to do so."
Revert "- `m_fixed.h`: Use `constexpr` on inline functions where it was previously not possible to do so."
Revert "- `xs_Float.h`: Convert header to `constexpr`."
This does nor work as it violates the constexpr rules for unions. The code will error out on compilation for accessing an inactive member of a union.
2021-11-01 20:25:38 +01:00
Mitch Richters
3e25637385
- SW: When adjusting horizon in DoPlayerDeathHoriz()
, just use integer horizon values and not Q16.16.
2021-11-01 23:37:32 +11:00
Mitch Richters
eb8b075727
- binaryangle.h
: Change binangle
bitshift operators to operate on signed value to properly handle angles > 1024.
2021-11-01 22:13:39 +11: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
Mitch Richters
adcdbdc931
- SW: Replace use of clipmove_old()
inline wrapper with clipmove()
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
2af688dd62
- replaced RANDOM_RANGE macro with direct calls to RandomRange
2021-10-10 11:47:19 +02:00
Christoph Oelckers
5aa27bad3b
- flag SW's cutscenes as 'boss death only'.
2021-08-13 22:25:13 +02:00
Christoph Oelckers
1fde9f2173
- workaround to allow playing SW's Last Warrior mod in one go.
...
This disables the boss's death in L4 ending the game and just advances to the next level.
This seems to be the intent with this mod as the second episode starting at L5 is not defined and the first episode's subtitle advertises the full game.
2021-07-26 00:58:00 +02:00
Mitchell Richters
675356be1a
- Ensure g_nextskill
is used everywhere so that setting skill for next level works properly.
2021-07-20 18:51:34 +10:00
Mitchell Richters
9d64779da0
- SW: Replace all uses of NULL
with nullptr
.
2021-07-10 22:25:18 +10:00
Christoph Oelckers
83f151529b
- fixed SW status bar.
2021-05-16 10:25:56 +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
645ea1e1ae
- SW: better handling for bogus ladders.
...
If there is no back sector, use the front sector of the wall as the ladder sector.
This at least fixes the badly defined ladder in Wanton Destruction's first map.
2021-05-13 23:28:29 +02:00
Christoph Oelckers
fb21e39de5
- fixed remaining SW warnings.
2021-05-12 21:50:00 +02:00
Christoph Oelckers
1085b0b7a2
- first batch of SW warning fixes.
2021-05-12 21:49:34 +02:00
Christoph Oelckers
4c161ae403
- SW: fixed signed-ness issues with SOP-related angle checks.
2021-05-12 00:10:02 +02:00
Christoph Oelckers
8003ab6fa3
Merge branch 'scriptable_cutscenes' into newrenderer
2021-05-02 22:37:46 +02:00
Christoph Oelckers
dfd47ea33a
- migrated SW to RMAPINFO as well.
...
Also removed the 'definecutscene' code from the .def parser as this was never meant to be more than a temporary solution.
2021-05-02 17:35:25 +02:00
Christoph Oelckers
1798380f23
- adapted map transition in Duke/RR.
...
There's still some issues which will be taken care of by adding map flags.
2021-05-02 10:35:43 +02:00
Christoph Oelckers
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
66e5b9ada7
- SW: save SectUser as JSON, also store in a managed array.
2021-04-22 00:03:16 +02:00
Christoph Oelckers
bbb53bc717
- refactored the main User array into something that's automatically managed.
2021-04-22 00:03:14 +02:00
Mitchell Richters
93edeac791
- Clean-up of input functions.
...
* Remove unused `getincanglef()`.
* Remove unused `getincangleq16()`.
* In `PlayerHorizon` struct, clamp value when setting target in `__settarget()`, not each public `settarget()` overload.
* Rename `PlayerAngle` method `applylook()` to `applyinput()`.
* Rename `PlayerHorizon` method `sethorizon()` to `applyinput()`.
* In `PlayerHorizon::applylook()`, slightly clean return to centre code so it doesn't do math if already at 0.
* In `PlayerAngle::applylook()`, slightly clean rotscrnang/look_ang code so it doesn't do math if already at 0 and reposition where mouse input is applied so that if input is applied, the player never enters a spin.
* In `Duke3d::player_struct::apply_seasick()`, use `buildfang()` method instead of scaling float to BAM within function.
2021-04-21 20:41:04 +10:00
Christoph Oelckers
f51872db25
Merge branch 'master' into newrenderer
2021-04-20 20:46:06 +02:00
Mitchell Richters
0c5729b0f6
- SW: Ensure all sprite angles are backed up in the ticker.
...
* Fixes #326 .
2021-04-20 21:33:42 +10:00
Mitchell Richters
de06030ea0
- gameinput.cpp: Make sethorizon()
, applylook()
and calcviewpitch()
class functions of PlayerHorizon
and PlayerAngle
where appropriate.
2021-04-19 20:50:10 +10:00
Mitchell Richters
f343bd8d5e
- Fix death camera issues stemming from f254eeb465
.
...
* Adjustment in `__addadjustment()` needs to be signed.
* Output of `bvectangbam()` needs to be signed before Duke/SW left-shift the value.
2021-04-11 17:52:29 +10:00
Mitchell Richters
f254eeb465
- binaryangle.h: Remove lookangle
class and replace use with binangle
.
...
* Added in fca846272e
to deal with signed adjustments but its just not needed.
* Made better use of `binangle`/`fixedhoriz` class getters and setters than before as well.
2021-04-11 15:45:53 +10:00
Christoph Oelckers
057b8a7354
- cleanup of bvectan family of functions.
...
This can be greatly simplified to a single bvectangbam function using atan2 directly.
2021-04-10 12:54:29 +02:00
Christoph Oelckers
b4d89cbac3
- got rid of the remaining occurences of gethiq16angle and all related tables.
2021-04-10 12:10:28 +02:00
Mitchell Richters
9c01bde44e
- gameinput.cpp: Block player input within sethorizon()
and applylook()
if target for each has been set by the ticker.
...
* Stops players having the ability to provide input and fight the system trying to set an input.
2021-04-02 22:47:19 +11: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
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