MantisBT - Zandronum |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0004190 | Zandronum | [All Projects] Suggestion | public | 2024-01-30 04:52 | 2024-04-08 19:51 |
|
Reporter | StrikerMan780 | |
Assigned To | | |
Priority | normal | Severity | major | Reproducibility | always |
Status | resolved | Resolution | fixed | |
Platform | Microsoft | OS | Windows | OS Version | XP/Vista/7 |
Product Version | 3.1 | |
Target Version | 3.2 | Fixed in Version | 3.2 | |
|
Summary | 0004190: GAMEEVENT_ACTOR_ARMORDAMAGED doesn't fire if actor lacks an inventory |
Description | GAMEEVENT_ACTOR_ARMORDAMAGED doesn't seem to trigger when hit by radius damage, even though radius damage can affect armor. |
Steps To Reproduce | Just make an event script checking for type == GAMEEVENT_ACTOR_ARMORDAMAGED, and have it print when fired. Use the rocket launcher on some enemies, and you'll notice that the script will only fire for enemies that were directly hit, and not for any that were hit with splash damage. |
Additional Information | |
Tags | No tags attached. |
Relationships | |
Attached Files | |
|
Issue History |
Date Modified | Username | Field | Change |
2024-01-30 04:52 | StrikerMan780 | New Issue | |
2024-02-09 14:58 | WaTaKiD | Note Added: 0023060 | |
2024-02-09 16:06 | StrikerMan780 | Note Added: 0023065 | |
2024-02-09 20:31 | StrikerMan780 | Note Added: 0023067 | |
2024-02-09 20:31 | StrikerMan780 | Note Edited: 0023067 | bug_revision_view_page.php?bugnote_id=23067#r14074 |
2024-02-09 20:32 | StrikerMan780 | Note Edited: 0023067 | bug_revision_view_page.php?bugnote_id=23067#r14075 |
2024-02-09 20:33 | StrikerMan780 | Note Edited: 0023067 | bug_revision_view_page.php?bugnote_id=23067#r14076 |
2024-02-09 21:48 | StrikerMan780 | Note Edited: 0023067 | bug_revision_view_page.php?bugnote_id=23067#r14077 |
2024-02-09 21:49 | StrikerMan780 | Note Edited: 0023067 | bug_revision_view_page.php?bugnote_id=23067#r14078 |
2024-02-09 21:49 | StrikerMan780 | Note Edited: 0023067 | bug_revision_view_page.php?bugnote_id=23067#r14079 |
2024-02-09 21:51 | StrikerMan780 | Note Edited: 0023067 | bug_revision_view_page.php?bugnote_id=23067#r14080 |
2024-02-09 21:55 | StrikerMan780 | Note Edited: 0023067 | bug_revision_view_page.php?bugnote_id=23067#r14081 |
2024-02-09 22:08 | StrikerMan780 | Note Edited: 0023067 | bug_revision_view_page.php?bugnote_id=23067#r14082 |
2024-02-09 22:09 | StrikerMan780 | Note Edited: 0023067 | bug_revision_view_page.php?bugnote_id=23067#r14083 |
2024-04-06 00:22 | StrikerMan780 | Note Added: 0023522 | |
2024-04-06 02:22 | Kaminsky | Status | new => needs review |
2024-04-06 02:22 | Kaminsky | Summary | GAMEEVENT_ACTOR_ARMORDAMAGED doesn't fire for radius damage => GAMEEVENT_ACTOR_ARMORDAMAGED doesn't fire if actor lacks an inventory |
2024-04-06 13:32 | Kaminsky | Note Added: 0023524 | |
2024-04-06 13:32 | Kaminsky | Category | Bug => Suggestion |
2024-04-07 20:28 | Ru5tK1ng | Note Added: 0023525 | |
2024-04-07 20:28 | Ru5tK1ng | Status | needs review => needs testing |
2024-04-07 20:28 | Ru5tK1ng | Target Version | => 3.2 |
2024-04-07 23:03 | StrikerMan780 | Note Added: 0023543 | |
2024-04-08 19:51 | Ru5tK1ng | Note Added: 0023556 | |
2024-04-08 19:51 | Ru5tK1ng | Status | needs testing => resolved |
2024-04-08 19:51 | Ru5tK1ng | Resolution | open => fixed |
2024-04-08 19:51 | Ru5tK1ng | Fixed in Version | => 3.2 |
Notes |
|
|
|
|
|
About to go to sleep, but I'll get one uploaded when I wake up tomorrow. |
|
|
(0023067)
|
StrikerMan780
|
2024-02-09 20:31
(edited on: 2024-02-09 22:09) |
|
Had some interesting findings. There's a Inventory != NULL check before executing the event in P_DamageMobj, and if a monster doesn't have any inventory, the event won't fire. This means if you give the monster so much as a clip, or other random item, the event will then fire.
Perhaps the ticket title/description should be renamed "GAMEEVENT_ACTOR_ARMORDAMAGED doesn't fire if actor lacks an inventory."
I propose moving the event call up a line, out of that block, and naming the event something more appropriate, like GAMEEVENT_ACTOR_DAMAGE_PREARMOR, as this code occurs BEFORE any armor takes damage, not when it is taking damage.
This way, it'll behave more consistently, but still keep its current use/function. It would also mean one doesn't have to go around giving everyone dummy items so it works across all monsters/players.
|
|
|
|
|
|
|
I changed this to a suggestion because GAMEEVENT_ACTOR_ARMORDAMAGED was intended to only trigger for actors that have inventory items that can potentially absorb some of the damage (thus, actors without an inventory shouldn't have triggered the event). This isn't a bug and the MR only improves the behaviour. |
|
|
|
|
|
|
|
|
|
Marking as resolved since Strikerman extensively tested this for a performance check. |
|