From 9930b4d557bf493db346ea016a5be681c3756a89 Mon Sep 17 00:00:00 2001 From: silversurfer Date: Fri, 3 Oct 2014 10:04:19 +0000 Subject: [PATCH] Fix: The game used an internal range multiplier for fragments giving them insane range. I changed that from 10 to 1. Fragment range defined in Explosives.xml already includes a x10 multiplier. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7542 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- TileEngine/Explosion Control.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/TileEngine/Explosion Control.cpp b/TileEngine/Explosion Control.cpp index 76fc266b..880b7bd5 100644 --- a/TileEngine/Explosion Control.cpp +++ b/TileEngine/Explosion Control.cpp @@ -5066,7 +5066,8 @@ void FireFragments( UINT8 ubOwner, INT16 sX, INT16 sY, INT16 sZ, UINT16 usItem, FLOAT dDeltaY = (dRandomY * ubFragRange); FLOAT dDeltaZ = ((dRandomZ * 25.6f) * 50 ); - FLOAT dRangeMultiplier = 10; // Arbitrary, but gives good results. + // silversurfer: changed that from 10 to 1 because ubFragRange is already in tiles * 10. A Claymore for example has ubFragRange = 100. Multiplying again by 10 means 100 tiles range! + FLOAT dRangeMultiplier = 1; // Arbitrary, but gives good results. FLOAT dEndX = (FLOAT)(sX + (dDeltaX * dRangeMultiplier)); FLOAT dEndY = (FLOAT)(sY + (dDeltaY * dRangeMultiplier)); @@ -5157,7 +5158,8 @@ void FireFragmentsTrapGun( SOLDIERTYPE* pThrower, INT32 gridno, INT16 sZ, OBJECT FLOAT dDeltaY = (dRandomY * ubFragRange); FLOAT dDeltaZ = ((dRandomZ * 25.6f) * 50 ); - FLOAT dRangeMultiplier = 10; // Arbitrary, but gives good results. + // silversurfer: changed that from 10 to 1 because ubFragRange is already in tiles * 10. A Claymore for example has ubFragRange = 100. Multiplying again by 10 means 100 tiles range! + FLOAT dRangeMultiplier = 1; // Arbitrary, but gives good results. FLOAT dEndX = (FLOAT)(sX + (dDeltaX * dRangeMultiplier)); FLOAT dEndY = (FLOAT)(sY + (dDeltaY * dRangeMultiplier));