What you skipped is probably important.
If that's the same server i'm looking at, this is
DrawDmgRadius() which contains
if( !GetMonitorHex( __MouseX, __MouseY, centerhexX, centerhexY ) )
return;
called some lines before part you pasted.
If there is an invalid pointer or/and that target is dead or/and target is chosen
centerhexX/Y wont be set to the right hexes... AND THE CODE STILL CONTINUE PROCESSING...
Isn't it exactly how it should be?
Take VC turret made as Critter as example:
If your cursor is over its "head", and you attack it, Client will change attack position to Critter's hex position, at turret's "feet", which is good few hexes below a cursor.
If your cursor is over its "head", but turret is dead already, nothing changes. You cannot attack dead Critters, so you attack hex under cursor instead - amount of care about rockets/nades/etc. in this function hints that it's connected to hexshooting.
This is a feedback function for players, so they know exactly where their attack,
which might include splash damage, will end. It has to be consisted with Client/combat logic or it's worthless.
Just a wild guess, obviously. You didn't mention server name (i wonder why... :7), or any details after all. And it always could be copypaste from one server to another... which, in the end, does different things.