1dot13/source

misaligned explosion for RocketLauncher and SingleShotLaunchers

kitty624 opened this issue · 2 comments

If using a SingleShotLauncher (LAW, etc) or a reloadable RPG,
the animation and damage effect is happening at GridNo of merc using it, instead of where it hits

it looks like the actual structure damage is applied at the right place
i.e., a wall beeing hit is crumbling down (further leading to rooftop-collapse)

worst case, depending on ammo for reloadbale RPG, it will result in damage applied to soldier

i.e., if using "item 976 OG-7V Fragmentation Rocket" with an reloadable RPG the damage hits the soldier
but if using a thermobaric rocket instead, no damage is happening

might be due to different distribution of damage for those?
or frag-damage is applied in a different way than BP-loss from thermobaric

example videos (1.13 version from 11.02.2024, unchanged settings)

bandicam.2024-02-25.04-13-07-590.mp4
bandicam.2024-02-25.11-06-27-531.mp4
bandicam.2024-02-25.11-14-08-174.mp4

also, for SingleShotLaunchers, code is looking for buddyitem used for it, but that tag is currently only applied to Tripwire-roll and Wooden Shield in items.xml
as a result, the fallback, which is C1, will allways be used

see discord messages on the topic for more
starting from:

https://discord.com/channels/348449397308391426/821085354009952307/1211120725663023124

digged a little into weapons.cpp and HandleExplosion and IgniteExplosion for launchers found there, but I'm at a loss, can't find out why the coordinates turn out to be wrong

additional information on the bug:

when we actually hit the target we've been aiming at, the explosion is happening (correctly) at target

but only if the target is a living thing (merc, enemy, creature), if we hit a structure (like a wall) or the ground, explosion will still happen to harm the firing merc

therefore I tried to reference the pTarget to find any clues, but well ... just too much to be usefull for me