From 3d78aa2c9852f4b41047b516d56ecfc4a2e2d243 Mon Sep 17 00:00:00 2001 From: johnb432 <58661205+johnb432@users.noreply.github.com> Date: Fri, 28 Jun 2024 09:17:09 +0200 Subject: [PATCH] Give more randomness for throwing objects away from destroyed vehicle --- addons/cargo/XEH_postInit.sqf | 15 +++++++++++---- addons/cargo/script_component.hpp | 1 + 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/addons/cargo/XEH_postInit.sqf b/addons/cargo/XEH_postInit.sqf index 21f4db3a12..cc3055ae30 100644 --- a/addons/cargo/XEH_postInit.sqf +++ b/addons/cargo/XEH_postInit.sqf @@ -38,11 +38,18 @@ [QGVAR(unloadedCargoOnKilled), { params ["_item", "_vehicle"]; - private _velocity = velocity _vehicle apply {_x / CARGO_TUMBLE_VELOCITY_DIVISOR}; - private _torque = _vehicle vectorModelToWorld [random CARGO_TUMBLE_TORQUE, 0, 0]; - _item setVelocity _velocity; - _item addTorque _torque; + // Get direction from vehicle to item, so that item is thrown away from vehicle + private _vectorDir = (getPosWorld _vehicle) vectorFromTo (getPosWorld _item); + + // Give some z + _vectorDir set [2, random [0.5, 0.75, 1]]; + + // Add some randomness to resulting velocity + _vectorDir = (_vectorDir vectorMultiply random CARGO_TUMBLE_RANDOM_MUL) vectorAdd (velocity _vehicle); + + _item setVelocity _vectorDir; + _item addTorque [random CARGO_TUMBLE_TORQUE, random CARGO_TUMBLE_TORQUE, random CARGO_TUMBLE_TORQUE]; }] call CBA_fnc_addEventHandler; // Direction must be set before setting position according to wiki diff --git a/addons/cargo/script_component.hpp b/addons/cargo/script_component.hpp index 42666e4f4c..dd66aaa5a3 100644 --- a/addons/cargo/script_component.hpp +++ b/addons/cargo/script_component.hpp @@ -22,4 +22,5 @@ #define CARGO_TUMBLE_VELOCITY_DIVISOR (random [1, 2, 3]) +#define CARGO_TUMBLE_RANDOM_MUL 8 #define CARGO_TUMBLE_TORQUE 500