/*
 * Author: commy2
 * Attempt to fix floating physx with disabled damage after setPosXXX commands.
 *
 * Arguments:
 * Physx object (Object)
 *
 * Return Value:
 * Nothing
 *
 */
#include "script_component.hpp"

private "_object";

_object = _this;

// setHitPointDamage requires local object
if (!local _object) exitWith {};

// save and restore hitpoints, see below why
private ["_hitPoints", "_hitPointDamages"];

_hitPoints = [_object] call FUNC(getHitpoints);
_hitPointDamages = [_hitPoints, {_object getHitPointDamage _this}] call FUNC(map);

// this prevents physx objects from floating when near other physx objects with allowDamage false
_object setDamage damage _object;

{
    _object setHitPointDamage [_x, _hitPointDamages select _forEachIndex];
} forEach _hitPoints;