A_Blast, 2 bugs, probably connected to each other

Is there something that doesn't work right in the latest GZDoom? Post about it here.

Moderator: GZDoom Developers

Forum rules
Please construct and post a simple demo whenever possible for all bug reports. Please provide links to everything.

If you can include a wad demonstrating the problem, please do so. Bug reports that include fully-constructed demos have a much better chance of being investigated in a timely manner than those that don't.

Please make a new topic for every bug. Don't combine multiple bugs into a single topic. Thanks!
Kzer-Za
Posts: 509
Joined: Sat Aug 19, 2017 11:52 pm
Graphics Processor: nVidia (Modern GZDoom)

A_Blast, 2 bugs, probably connected to each other

Post by Kzer-Za »

1. Take two actors: the "active" actor ("collider") that was blasted into another actor and the "passive" actor ("collidee") into which the first one was blasted. The damage to both of them is applied 2 times per collision (maybe sometimes more, but in my experiments it happened 2 times exactly). If you blast an actor into architecture, the damage is applied 2 times per collision at the minimum, often 3 times, sometimes more than ten times.

2. The collider and collidee become "entangled". After you have collided one into another once, you can blast one while the other is nowhere near your field of view, and the other gets blasted too.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49067
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: A_Blast, 2 bugs, probably connected to each other

Post by Graf Zahl »

Please provide a runnable example.
Kzer-Za
Posts: 509
Joined: Sat Aug 19, 2017 11:52 pm
Graphics Processor: nVidia (Modern GZDoom)

Re: A_Blast, 2 bugs, probably connected to each other

Post by Kzer-Za »

It's not in a mod, it's in the default game (Hexen). The only mod I'm using is this, to detect when the damage is applied:

MAPINFO

Code: Select all

Gameinfo
{
	AddEventHandlers = "DamLogger"
}
ZSCRIPT

Code: Select all

class DamLogger : EventHandler
{
	override void WorldThingDamaged(Worldevent event)
	{
		Console.Printf("Victim: "..event.Thing.GetClassName()..", dam: "..event.damage..", Type: "..event.DamageType..", flags: "..event.DamageFlags);	}
}
I start a new game, type "give all" in the console to get a lot of ArtiBlastRadius'es at once, and start blasting the Ettins in the starting area into architecture or one another. When I collide one into another, the output is always (per one use of the artifact):

Code: Select all

Victim: Ettin, dam: 2, Type: None, flags: 0
Victim: Ettin, dam: 5, Type: Melee, flags: 0
Victim: Ettin, dam: 2, Type: None, flags: 0
Victim: Ettin, dam: 5, Type: Melee, flags: 0
And if they both had full health (175), the collider ends up with 165 health, the collidee with 171 health.

When I blast one Ettin into architecture, the output per one use of the artifact is different. Mostly it's 2 lines with "dam: 5" per use of the artifact, sometimes it's like this or more (with one Ettin being affected):

Code: Select all

Victim: Ettin, dam: 5, Type: Melee, flags: 0
Victim: Ettin, dam: 5, Type: Melee, flags: 0
Victim: Ettin, dam: 5, Type: Melee, flags: 0
Victim: Ettin, dam: 5, Type: Melee, flags: 0
Victim: Ettin, dam: 5, Type: Melee, flags: 0
Victim: Ettin, dam: 5, Type: Melee, flags: 0
Victim: Ettin, dam: 5, Type: Melee, flags: 0
Victim: Ettin, dam: 5, Type: Melee, flags: 0
Victim: Ettin, dam: 5, Type: Melee, flags: 0
Concerning the second bug: I collide one of them into another, then get between them so that only one is in the field of view, and the other one is behind me and could not possibly be affected normally. Then blast the one in front of me, and the one behind me is also blasted some distance from the point where it was standing.
Gez
 
 
Posts: 17835
Joined: Fri Jul 06, 2007 3:22 pm

Re: A_Blast, 2 bugs, probably connected to each other

Post by Gez »

Kzer-Za wrote:It's not in a mod, it's in the default game (Hexen).
Yeah but you can still make a small mod with your damage logger and a test map with some handy artifacts and some ettins to make things faster and simpler for the developers to investigate your issue.
Kzer-Za
Posts: 509
Joined: Sat Aug 19, 2017 11:52 pm
Graphics Processor: nVidia (Modern GZDoom)

Re: A_Blast, 2 bugs, probably connected to each other

Post by Kzer-Za »

Ah, okay, I'll whip something up soon then.
Kzer-Za
Posts: 509
Joined: Sat Aug 19, 2017 11:52 pm
Graphics Processor: nVidia (Modern GZDoom)

Re: A_Blast, 2 bugs, probably connected to each other

Post by Kzer-Za »

I have made a small mod with the above-described damage logger, an EttinePassive (replacement that inherits everything from Ettin but never moves from one place or attacks, for easier testing), and a small map with 100 ArtiBlastRadius'es and three EttinePassives.

The code for EttinePassive (of course, it's in the package, but just in case):

Code: Select all

class EttinPassive : Ettin replaces Ettin
{
	States
	{
	Pain:
	See:
	Spawn:
		ETTN A 10;
		Loop;
	}
}
Attachments
BlastTest.pk3
(1.29 KiB) Downloaded 41 times
Kzer-Za
Posts: 509
Joined: Sat Aug 19, 2017 11:52 pm
Graphics Processor: nVidia (Modern GZDoom)

Re: A_Blast, 2 bugs, probably connected to each other

Post by Kzer-Za »

I'm sorry about reporting the second bug, as it turns out it's not a bug at all, since ArtiBlastRadius is supposed to blast away actors all around you, not just in front of you, as I thought.

However, the first bug is 100% reproducible, the actors blasted away take the damage the minumum of 2 times, often more times, and sometimes as much as 20 times. The latter figure can be difficult to reproduce because I can't figure out what exactly this amount depends on, but it is possible.
Post Reply

Return to “Bugs [GZDoom]”