mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Fixed calls for shouldFrag and got rid of old initRound.sfq (maybe back after 2.18)
This commit is contained in:
parent
f65fcbf44f
commit
cd4d2a9cf6
@ -75,7 +75,7 @@ private _printCount = 0;
|
|||||||
_processedCfgAmmos pushBack _ammo;
|
_processedCfgAmmos pushBack _ammo;
|
||||||
|
|
||||||
private _ammoConfig = configFile >> "CfgAmmo" >> _ammo;
|
private _ammoConfig = configFile >> "CfgAmmo" >> _ammo;
|
||||||
private _shouldFrag = _ammo call FUNC(shouldFrag);
|
_ammo call FUNC(shouldFrag) params ["_shouldFrag"];
|
||||||
|
|
||||||
if (_shouldFrag || _logAll) then {
|
if (_shouldFrag || _logAll) then {
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ diag_log text "//****************** fragCalcDump Beg ******************//";
|
|||||||
continue;
|
continue;
|
||||||
};
|
};
|
||||||
|
|
||||||
private _shouldFrag = _ammo call FUNC(shouldFrag);
|
_ammo call FUNC(shouldFrag) params ["_shouldFrag"];
|
||||||
if (_shouldFrag || _logAll) then {
|
if (_shouldFrag || _logAll) then {
|
||||||
private _fragInfo = _ammo call FUNC(getFragInfo);
|
private _fragInfo = _ammo call FUNC(getFragInfo);
|
||||||
_fragInfo params ["_fragRange", "_fragMaxVelocity", "", "_modifiedFragCount"];
|
_fragInfo params ["_fragRange", "_fragMaxVelocity", "", "_modifiedFragCount"];
|
||||||
|
@ -1,84 +0,0 @@
|
|||||||
#include "..\script_component.hpp"
|
|
||||||
/*
|
|
||||||
* Author: Lambda.Tiger
|
|
||||||
* This function adds projectile explode and hitPart event handlers and is
|
|
||||||
* intended to be called from an projectile config init event handler.
|
|
||||||
*
|
|
||||||
* Arguments:
|
|
||||||
* 0: The projectile to be initialized <OBJECT>
|
|
||||||
*
|
|
||||||
* Return Value:
|
|
||||||
* None
|
|
||||||
*
|
|
||||||
* Example:
|
|
||||||
* _projectile call ace_frag_fnc_initRound
|
|
||||||
*
|
|
||||||
* Public: No
|
|
||||||
*/
|
|
||||||
|
|
||||||
TRACE_1("ACE_Frag rndInit",_this);
|
|
||||||
if (!isServer) exitWith {};
|
|
||||||
params ["_projectile"];
|
|
||||||
|
|
||||||
private _ammo = typeOf _projectile;
|
|
||||||
if (_ammo isEqualTo "" || {isNull _projectile} ||
|
|
||||||
{_projectile getVariable [QGVAR(blacklisted), false]}) exitWith {
|
|
||||||
TRACE_2("bad ammo or projectile, or blackList",_ammo,_projectile);
|
|
||||||
};
|
|
||||||
|
|
||||||
if (GVAR(enabled) && {_ammo call FUNC(shouldFrag)}) then {
|
|
||||||
_projectile addEventHandler [
|
|
||||||
"Explode",
|
|
||||||
{
|
|
||||||
params ["_projectile", "_posASL", "_velocity"];
|
|
||||||
|
|
||||||
if (_projectile getVariable [QGVAR(blacklisted), false]) exitWith {
|
|
||||||
TRACE_2("projectile blackisted",typeOf _projectile,_projectile);
|
|
||||||
};
|
|
||||||
|
|
||||||
private _shotParents = _projectile getVariable [QGVAR(shotParent), getShotParents _projectile];
|
|
||||||
private _ammo = typeOf _projectile;
|
|
||||||
// wait for frag damage to kill units before spawning fragments
|
|
||||||
[
|
|
||||||
FUNC(doFrag),
|
|
||||||
[_posASL, _velocity, _ammo, _shotParents]
|
|
||||||
] call CBA_fnc_execNextFrame;
|
|
||||||
if (GVAR(reflectionsEnabled)) then {
|
|
||||||
[_posASL, _ammo] call FUNC(doReflections);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
if (GVAR(spallEnabled) && {_ammo call FUNC(shouldSpall)}) then {
|
|
||||||
_projectile addEventHandler [
|
|
||||||
"HitPart",
|
|
||||||
{
|
|
||||||
params ["_projectile", "_hitObject", "", "_posASL", "_velocity", "_surfNorm", "", "", "_surfType"];
|
|
||||||
|
|
||||||
if (_projectile getVariable [QGVAR(blacklisted), false]) exitWith {
|
|
||||||
TRACE_2("projectile blackisted",typeOf _projectile,_projectile);
|
|
||||||
};
|
|
||||||
|
|
||||||
// starting v2.18 it may be faster to use the instigator parameter, the same as the second entry shotParents, to recreate _shotParent
|
|
||||||
// The "explode" EH does not get the same parameter
|
|
||||||
private _shotParent = getShotParents _projectile;
|
|
||||||
private _ammo = typeOf _projectile;
|
|
||||||
private _vectorUp = vectorUp _projectile;
|
|
||||||
/*
|
|
||||||
* Wait a frame to see what happens to the round, may result in
|
|
||||||
* multiple hits / slowdowns getting shunted to the first hit
|
|
||||||
*/
|
|
||||||
[
|
|
||||||
FUNC(doSpall),
|
|
||||||
[_projectile, _hitObject, _posASL, _velocity, _surfNorm, _surfType, _ammo, _shotParent, _vectorUp]
|
|
||||||
] call CBA_fnc_execNextFrame;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
#ifdef DEBUG_MODE_DRAW
|
|
||||||
if (GVAR(debugOptions) && {_ammo call FUNC(shouldFrag) || {_ammo call FUNC(shouldSpall)}}) then {
|
|
||||||
[_projectile, "red", true] call FUNC(dev_trackObj);
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
TRACE_1("initExit",_ammo);
|
|
Loading…
Reference in New Issue
Block a user