Commit graph

151 commits

Author SHA1 Message Date
Mitchell Richters
81b74c2cdf - SW: Replace PANEL_SPRITEstruct ox with opos.X calls. 2021-12-31 00:32:55 +11:00
Mitchell Richters
145028bc16 - SW: Replace PANEL_SPRITEstruct y with pos.Y calls. 2021-12-31 00:32:00 +11:00
Mitchell Richters
defdb23533 - SW: Replace PANEL_SPRITEstruct x with pos.X calls. 2021-12-31 00:30:42 +11:00
Mitchell Richters
ab6b9fd083 - SW: Replace USER zchange with change.Z calls. 2021-12-31 00:23:30 +11:00
Mitchell Richters
50cb85e389 - SW: Replace USER ychange with change.Y calls. 2021-12-31 00:22:48 +11:00
Mitchell Richters
ad0ea3f2f1 - SW: Replace USER xchange with change.X calls. 2021-12-31 00:22:42 +11:00
Mitchell Richters
424b9c5f34 - SW: Replace REMOTE_CONTROL pos* variables with a vector. 2021-12-31 00:19:34 +11:00
Mitchell Richters
287351e678 - SW: Replace REMOTE_CONTROL *vect variables with vectors. 2021-12-31 00:19:34 +11:00
Mitchell Richters
5d10b32301 - SW: Replace PLAYERstruct oldpos* variables with a vector. 2021-12-31 00:19:33 +11:00
Mitchell Richters
e4d19a0bbe - SW: Replace PLAYERstruct slide_yvect with slide_vect.Y calls. 2021-12-31 00:19:33 +11:00
Mitchell Richters
8c1c5f3d55 - SW: Replace PLAYERstruct slide_xvect with slide_vect.X calls. 2021-12-31 00:19:33 +11:00
Mitchell Richters
8c99053ebd - SW: Replace PLAYERstruct oyvect with ovect.Y calls. 2021-12-31 00:19:33 +11:00
Mitchell Richters
75cc539c58 - SW: Replace PLAYERstruct oxvect with ovect.X calls. 2021-12-31 00:19:33 +11:00
Mitchell Richters
5515830e2b - SW: Replace PLAYERstruct yvect with vect.Y calls. 2021-12-31 00:19:33 +11:00
Mitchell Richters
f2497d7d08 - SW: Replace PLAYERstruct xvect with vect.X calls. 2021-12-31 00:19:33 +11:00
Mitchell Richters
03da70b3b9 - SW: Replace PLAYERstruct si* variables with a vector. 2021-12-31 00:19:33 +11:00
Mitchell Richters
6e130d026e - SW: Replace PLAYERstruct lv_* variables with a vector. 2021-12-31 00:19:33 +11:00
Mitchell Richters
13639a09b7 - SW: Remove unused PLAYERstruct variable turn180_target that was deprecated with 7bf1cacc7f. 2021-12-30 20:46:36 +11:00
Mitchell Richters
cf68018909 - SW: Replace PLAYERstruct RevolveY with Revolve.Y calls. 2021-12-30 20:41:27 +11:00
Mitchell Richters
acc11f34bf - SW: Replace PLAYERstruct RevolveX with Revolve.X calls. 2021-12-30 20:41:27 +11:00
Mitchell Richters
05de974080 - SW: Replace PLAYERstruct ly with LadderPosition.Y calls. 2021-12-30 20:41:27 +11:00
Mitchell Richters
a18fc5b66f - SW: Replace PLAYERstruct lx with LadderPosition.X calls. 2021-12-30 20:41:26 +11:00
Mitchell Richters
9c1e54a148 - SW: Replace USER sz with pos.Z calls. 2021-12-30 20:40:29 +11:00
Mitchell Richters
0d70d26625 - SW: Replace USER sy with pos.Y calls. 2021-12-30 20:31:09 +11:00
Mitchell Richters
fcf18c8c63 - SW: Replace USER sx with pos.X calls. 2021-12-30 20:31:09 +11:00
Mitchell Richters
6423684bfb - SW: Replace PLAYERstruct oposz with opos.Z calls. 2021-12-30 09:57:09 +01:00
Mitchell Richters
a2f2cc489a - SW: Replace PLAYERstruct oposy with opos.Y calls. 2021-12-30 09:57:08 +01:00
Mitchell Richters
ae50767c70 - SW: Replace PLAYERstruct oposx with opos.X calls. 2021-12-30 09:57:08 +01:00
Mitchell Richters
05a4ad4729 - SW: Replace PLAYERstruct posz with pos.Z calls and eliminate PLAYERstruct pos union. 2021-12-30 09:57:08 +01:00
Mitchell Richters
ae3369d2a3 - SW: Replace PLAYERstruct posy with pos.Y calls. 2021-12-30 09:57:08 +01:00
Mitchell Richters
3a0ee322ae - SW: Replace PLAYERstruct posx with pos.X calls. 2021-12-30 09:57:07 +01:00
Christoph Oelckers
6db1ba47c2 - SW: fixed some savegame issues:
* the saveable tables were initialized too late when reading in the actors.
* the abort messages for the saveables did not show. We need to use I_FatalError here, plus some actor list modifications to make this work.
2021-12-26 23:10:07 +01:00
Christoph Oelckers
fa05cfbaf1 - use a real pointer in DSWActor for owner tracking. 2021-12-26 23:09:56 +01:00
Christoph Oelckers
8a2385dd89 - actor clearing cleaned up.
We still need this until we can get rid of the static arrays...
2021-12-26 23:09:55 +01:00
Christoph Oelckers
d3b1e34d78 - moved sprite[], spriteext[] and spritesmooth[] into DCoreActor.
Also removed the last remaining sprite pointer in saveable data.
2021-12-26 23:09:55 +01:00
Christoph Oelckers
4cecb6f955 - removed the old actor savegame code and instead implemented a virtual Serialize function.
This isn't hooked up yet, currently savegames are non-functional. They will come back once the global actor arrays are no longer relevant for maintenance.
2021-12-26 23:09:55 +01:00
Christoph Oelckers
321608e5ac - made cursectnum et. al. real pointers. 2021-12-26 23:09:41 +01:00
Christoph Oelckers
30f36e4871 - use backend's collision struct in SW. 2021-12-26 23:08:58 +01:00
Christoph Oelckers
33d2d80c42 - sector references in remote, some cursectnum replacements. 2021-12-26 23:08:55 +01:00
Christoph Oelckers
959c3bc18b - springboard 2021-12-26 23:08:53 +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
f388efc5ef - eliminated the redundant SOP::sector array. 2021-12-26 23:08:49 +01:00
Christoph Oelckers
b936345e11 - sectnum() cleanup and AnimSet return type. 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
3ccf3ab52d - pointers in mirror struct. 2021-12-26 23:08:42 +01:00
Christoph Oelckers
7d2404ce76 - made sector a TArray. 2021-12-25 21:28:49 +01:00
Christoph Oelckers
f6db4a8e51 - SW: move User into DSWActor. 2021-12-25 21:28:39 +01:00
Christoph Oelckers
fe83487c77 - missed one bit of old savegame 2021-12-25 21:28:39 +01:00
Christoph Oelckers
b73ea76c18 - cleaned out Bunny_Count declarations.
One is enough.
2021-11-29 00:57:09 +01:00
Christoph Oelckers
ed2d8373fc - final cleanup. 2021-11-29 00:56:17 +01:00
Christoph Oelckers
898f56dd86 - User[] is mostly gone.
All access is now through the actor.
2021-11-29 00:56:16 +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
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
1d9d70613f - char review in SW 2021-11-29 00:55:43 +01:00
Christoph Oelckers
2c94259603 - BossSpriteNum 2021-11-29 00:55:37 +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
5078750569 - sprite indices in mirrors converted to actor pointers 2021-11-29 00:55:28 +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
48b1ce0c62 - savegame compatibility. 2021-11-29 00:55:25 +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
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
de12433809 - USER::Attach and SetAttach. 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
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
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
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
75e2d801a7 - SW: only check valid sectors for SecUser entries. 2021-11-11 21:58:14 +01:00
Christoph Oelckers
a5f51cfd88 - SW: migrate everything to the main clipmove function 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
Christoph Oelckers
0e82d75325 - SW: fixed recursive saving of panel sprites 2021-09-12 18:17:50 +02:00
Christoph Oelckers
bad57f6a5f - clear pspAsArray at the beginning of a save/load operation, not at the end.
If done at the end it may leave behind some stale data if saving or loading fails for some reason.
2021-09-12 18:17:50 +02:00
Mitchell Richters
172b77b9e7 - SW: Ensure PANEL_SPRITEstruct's ox/oy values are in the save data. 2021-07-11 12:05:53 +10:00
Mitchell Richters
27f1e487a2 - SW: Remove fixed-point math from panel x/y coordinate updating. 2021-07-10 22:01:35 +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
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
729928c576 - SW: fixed bad serialization of sector object pointers 2021-04-22 00:03:18 +02:00
Christoph Oelckers
a4f5a32680 - fixed issue with restoring SO sprite array.
This array has -1 for empty entries so it cannot be saved partially.
2021-04-22 00:03:17 +02:00
Christoph Oelckers
c3e5cf322e - SW: cleaned up the depth variable handling in SECT_USER which was endian dependent, including the savegame handler 2021-04-22 00:03:17 +02:00
Christoph Oelckers
c17ec5fa45 - cleanup of savegame framework 2021-04-22 00:03:17 +02:00
Christoph Oelckers
b85da221d7 - SW: save tracks as JSON. 2021-04-22 00:03:17 +02:00
Christoph Oelckers
bb8309831c - SW: eliminated the int pointer in ANIM.
# Conflicts:
#	source/games/sw/src/save.cpp
2021-04-22 00:03:16 +02:00
Christoph Oelckers
c49c5fcf1d - SW: serialize SO interpolations as JSON. 2021-04-22 00:03:16 +02:00
Christoph Oelckers
2d571586bd - save sector objects as JSON 2021-04-22 00:03:16 +02:00
Christoph Oelckers
e9b1342ffd - SW: save globals as JSON. 2021-04-22 00:03:16 +02:00
Christoph Oelckers
66e5b9ada7 - SW: save SectUser as JSON, also store in a managed array. 2021-04-22 00:03:16 +02:00
Christoph Oelckers
06b03f7301 - SW: save the player and related data as JSON. 2021-04-22 00:03:15 +02:00
Christoph Oelckers
9bae2295cc - better USER clearing. 2021-04-22 00:03:15 +02:00
Christoph Oelckers
8fee2b3ed7 - save SW's User array as JSON. 2021-04-22 00:03:15 +02:00
Christoph Oelckers
32955621f8 - removed all parental lock garbage from SW.
Better get rid of it as it's a major complication as implemented.
2021-04-22 00:03:15 +02:00
Christoph Oelckers
bbb53bc717 - refactored the main User array into something that's automatically managed. 2021-04-22 00:03:14 +02:00
Christoph Oelckers
cd45a1f035 - made more parts of USER serialization friendly. 2021-04-22 00:03:14 +02:00
Christoph Oelckers
dcb393bc44 - started reorganizing SW's memory management.
Need to get rid of all those unmanaged allocations and present game data in an easily serializable form.
This adds a managed TPointer class that replicates the useful parts of std::unique_pointer but steers clear of its properties that often render it useless.
2021-04-22 00:03:14 +02:00
Christoph Oelckers
387c62d584 - rewrote SW's precaching code.
* made it palette aware
* use backend facilities to track precached data.
* fixes bug in animation precaching loops - they only precached the base index over and over again.
2021-04-11 10:20:52 +02:00
Mitchell Richters
2abda0e27d - All Games: Migrate each game's clock counter to backend solution. 2021-02-18 21:47:33 +11:00