Christoph Oelckers
47f09c61fc
WIP for event callback refactor
2023-10-08 09:41:14 +02:00
Christoph Oelckers
cb443d443c
Blood projectile scriptification.
2023-10-08 09:41:14 +02:00
Christoph Oelckers
dd2ea96d6c
turn players into DObjects and fix several bugs with bad memory access.
...
* DObjects may not be memset to 0.
* There was still code trying to retrieve the player index with pointer artithmetic. With an array of pointers this does not work.
2023-10-02 21:03:59 +02:00
Mitchell Richters
49104f9b24
- Blood: Rename PLAYER
struct to BloodPlayer
.
2023-10-02 15:30:51 +11:00
Mitchell Richters
2755b17fd5
- Blood: Wrap access to player's actor pointer.
2023-10-02 15:30:34 +11:00
Christoph Oelckers
4af7a649b6
move kill/secret management into the shared code
...
Implemented for Blood so far, this gets rid of gKillMgr and gSecretMgr
2023-10-01 10:07:45 +02:00
Christoph Oelckers
3625a510d2
took a hint from Blood-RE and replaced that awful reconstructed sorting function with the qsort call it most likely originally was.
2023-09-26 23:34:08 +02:00
Christoph Oelckers
b196e67f40
ported SHA-1: 82e3f6af9367200853fe2af1b9665dd0c53b4f05 from NBlood
...
* - Change gBusyCount limit to a higher value since xsector limit raised.
gModernMap:
- The return of the event causer (kChannelEventCauser, TXID 50).
- Fix flags for kModernPropertiesChanger type.
- Add new modern type kModernVelocityChanger.
- New features for kMarkerWarpDest type.
- New features for kModernSectorFXChanger type.
- Fix sector condition 58.
- Fix sprite hitscan conditions (35 - 38).
- Add new command (kCmdEventKillFull).
- Misc changes.
# Conflicts:
# source/games/blood/src/actor.cpp
# source/games/blood/src/nnexts.cpp
2022-08-17 20:45:51 +02:00
Christoph Oelckers
26179c56cf
- improved the secret hint management for Blood.
...
This now uses sprite and sector indices directly instead of encoding them into a larger number. Sprite secrets will use a $t prefix instead of $s now.
2022-03-20 12:47:23 +01:00
Christoph Oelckers
c11000e4cd
- Blood: do color highlighting for trigger messages, like NBlood does.
2022-01-22 09:38:01 +01:00
Christoph Oelckers
b7d095b943
- tabified more Blood files.
2021-12-30 09:58:48 +01:00
Christoph Oelckers
a291364606
- the big 'pXSprite = &actor->x()' replacement.
2021-12-30 09:57:21 +01:00
Christoph Oelckers
5623832b17
- deleted the pSprite definitions from last commit.
2021-12-30 09:57:16 +01:00
Christoph Oelckers
6b8ec17017
- the ultimate 'replace pSprite-> with actor->spr. commit.
...
This takes care of the majority of s() uses in Blood with a single search&replace action after ensuring that pSprite never gets used for other things.
(There were two small functions in nnexts.cpp left that still did.)
2021-12-30 09:57:16 +01:00
Christoph Oelckers
a87948677a
- globally replaced ->x(). with ->xspr.
2021-12-30 09:57:09 +01:00
Christoph Oelckers
d9d05e90b5
- globally replaced all occurences of '->s().' with '->spr.'
2021-12-30 09:57:00 +01:00
Christoph Oelckers
65bc6e6aef
- removed the now redundant wall() and sector() interator helper functions.
...
With both wall and sector now being TArrays they are not needed anymore.
2021-12-30 09:56:53 +01:00
Christoph Oelckers
588f88c9cc
- migrated the actors to DObjects.
...
No GC yet, only the classes have been altered and some GC-related features been added.
Full switchover will require adding GC support to all data in the game.
2021-12-26 23:09:57 +01:00
Christoph Oelckers
e543c70439
- replacement of BloodLinearSpriteIterator
...
Preparation for eliminating sprite[]. This array can later be created by the actual spawn function.
2021-12-26 23:09:51 +01:00
Christoph Oelckers
f52a542fad
- callback interface.
2021-12-25 21:29:15 +01:00
Christoph Oelckers
7bffcad49f
- trMessage* functions.
...
# Conflicts:
# source/games/blood/src/eventq.cpp
2021-12-25 21:29:10 +01:00
Christoph Oelckers
f07fafea9c
- use EventObject for OBJECTS_TO_TRACK.
2021-12-25 21:29:10 +01:00
Christoph Oelckers
2c3d2f4850
- remove the RXBUCKET alias
2021-12-25 21:29:09 +01:00
Christoph Oelckers
9e02da6380
- alias RXBucket to EventObject.
2021-12-25 21:29:09 +01:00
Christoph Oelckers
483b28b258
- uses bucket interface in evSend.
2021-12-25 21:29:09 +01:00
Christoph Oelckers
1de75d2c0f
- use wrapper stuff in GetBucketChannel.
2021-12-25 21:29:09 +01:00
Christoph Oelckers
546dee2724
- added accessors to RXBUCKET to match EventObject and renamed some of its members.
...
As a first preparation for replacement.
2021-12-25 21:29:08 +01:00
Christoph Oelckers
5787ec9618
- use EventObject as storage in EVENT.
2021-12-25 21:29:07 +01:00
Christoph Oelckers
5bec3be5e9
- abstracted access to event target objects.
2021-12-25 21:29:07 +01:00
Christoph Oelckers
32874414fd
- evSendSector, too.
2021-12-25 21:29:07 +01:00
Christoph Oelckers
0472c78ddc
- same for walls.
2021-12-25 21:29:07 +01:00
Christoph Oelckers
37f4843953
- changed evPostSector to receive a sector pointer instead of index.
2021-12-25 21:29:07 +01:00
Christoph Oelckers
f06697ed29
- removed pX... parameter from from trTriggerSector.
2021-12-25 21:28:42 +01:00
Christoph Oelckers
59312c42bb
- eliminated ca. half of the xwall references.
2021-12-25 21:28:41 +01:00
Christoph Oelckers
4cfc1577e2
- some simple xwall[] replacements.
2021-12-25 21:28:40 +01:00
Christoph Oelckers
70da9e2526
- first xwall[] removal in Blood.
2021-12-25 21:28:40 +01:00
Christoph Oelckers
b685163ab1
- Blood: extend all 16 bit fields holding sector or wall indices to 32 bit.
2021-11-29 00:55:41 +01:00
Christoph Oelckers
01abe7b2ac
- addressed most unused/uninitialized variable warnings from MSVC.
2021-11-29 00:55:30 +01:00
Christoph Oelckers
fb95f0fff7
- store an actual actor pointer in PLAYER.
...
# Conflicts:
# source/games/blood/src/player.cpp
2021-11-29 00:54:58 +01:00
Christoph Oelckers
d2bc254e03
- the rest of triggers.cpp.
2021-11-29 00:54:57 +01:00
Christoph Oelckers
344e7e840e
- remove leftover index dependencies for sprite events.
2021-11-29 00:53:51 +01:00
Christoph Oelckers
245581e00d
- cleanup
2021-11-29 00:53:50 +01:00
Christoph Oelckers
2f5be23171
- validate actors before processing them in the event queue.
2021-11-29 00:53:44 +01:00
Christoph Oelckers
e69e1b9908
- some ?vel replacements.
2021-11-06 18:16:18 +01:00
Christoph Oelckers
41316f7f8f
- evSend
2021-11-06 18:14:08 +01:00
Christoph Oelckers
7ebe492e94
- fixed map-spawned actor indexing in Blood.
...
This is needed for error reporting and the secret hint system.
2021-10-24 09:11:43 +02:00
Christoph Oelckers
2396c89fb9
- migrated EVENT to use its actor pointer.
2021-10-14 21:59:49 +02:00
Christoph Oelckers
f430c28f88
- split up evSend
...
# Conflicts:
# source/games/blood/src/nnexts.cpp
2021-10-14 21:59:49 +02:00
Christoph Oelckers
efc791ee00
- route all remaining calls to evPost and evKill through type specific variants.
2021-10-14 21:59:41 +02:00
Christoph Oelckers
71b144023d
- renamed evPost to evPostActor and evKill to evKillActor for clarity.
2021-10-14 20:31:17 +02:00