ACE3/addons/medical_treatment/functions/fnc_placeInBodyBagOrGrave.sqf

76 lines
2.4 KiB
Plaintext
Raw Permalink Normal View History

Medical Treatment - Add Grave Digging for Corpse Disposal (#9276) * Add grave digging * Update fnc_placeInBodyBagOrGrave.sqf * Update fnc_placeInBodyBagOrGrave.sqf * Update fnc_placeInBodyBagOrGrave.sqf * Update addons/medical_treatment/functions/fnc_placeInBodyBag.sqf Co-authored-by: BrettMayson <brett@mayson.io> * Add setting to enable/disable * improvements - fix flipped bool in fnc_canDigGrave - improve fnc_placeInBodyBagOrGrave.sqf by splitting out some checks and item assignment into separate bodybag and grave functions * fix typo in variable * Apply suggestions from code review Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * add to XEH_PREP and fix event for non-local patient * Add interaction to check name on headstone * Update addons/medical_treatment/XEH_postInit.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Simplify Setting * Apply suggestions from code review Co-authored-by: jonpas <jonpas33@gmail.com> * Update addons/medical_treatment/stringtable.xml Co-authored-by: jonpas <jonpas33@gmail.com> * Make placeInBodyBagOrGrave more generic and use any grave class * Update addons/medical_treatment/functions/fnc_placeInGrave.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Update medical-treatment-framework.md * Update docs/wiki/framework/medical-treatment-framework.md Co-authored-by: jonpas <jonpas33@gmail.com> * update docs * Update addons/medical_treatment/functions/fnc_placeInBodyBagOrGrave.sqf * Update addons/medical_treatment/functions/fnc_placeInGrave.sqf * fix includes --------- Co-authored-by: BrettMayson <brett@mayson.io> Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> Co-authored-by: PabstMirror <pabstmirror@gmail.com> Co-authored-by: jonpas <jonpas33@gmail.com> Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
2023-09-24 19:57:08 +00:00
#include "..\script_component.hpp"
/*
* Author: Glowbal, drofseh
* Places a dead body inside a body bag or grave.
*
* Arguments:
* 0: Arguments <ARRAY>
* - 0: Medic <OBJECT>
* - 1: Patient <OBJECT>
* 1: Resting Place Classname <STRING>
* 2: Offset <ARRAY> (default: [0,0,0])
* 3: Rotation <NUMBER> (default: 0)
* 4: Is Grave <BOOL> (default: false)
Medical Treatment - Add Grave Digging for Corpse Disposal (#9276) * Add grave digging * Update fnc_placeInBodyBagOrGrave.sqf * Update fnc_placeInBodyBagOrGrave.sqf * Update fnc_placeInBodyBagOrGrave.sqf * Update addons/medical_treatment/functions/fnc_placeInBodyBag.sqf Co-authored-by: BrettMayson <brett@mayson.io> * Add setting to enable/disable * improvements - fix flipped bool in fnc_canDigGrave - improve fnc_placeInBodyBagOrGrave.sqf by splitting out some checks and item assignment into separate bodybag and grave functions * fix typo in variable * Apply suggestions from code review Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * add to XEH_PREP and fix event for non-local patient * Add interaction to check name on headstone * Update addons/medical_treatment/XEH_postInit.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Simplify Setting * Apply suggestions from code review Co-authored-by: jonpas <jonpas33@gmail.com> * Update addons/medical_treatment/stringtable.xml Co-authored-by: jonpas <jonpas33@gmail.com> * Make placeInBodyBagOrGrave more generic and use any grave class * Update addons/medical_treatment/functions/fnc_placeInGrave.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Update medical-treatment-framework.md * Update docs/wiki/framework/medical-treatment-framework.md Co-authored-by: jonpas <jonpas33@gmail.com> * update docs * Update addons/medical_treatment/functions/fnc_placeInBodyBagOrGrave.sqf * Update addons/medical_treatment/functions/fnc_placeInGrave.sqf * fix includes --------- Co-authored-by: BrettMayson <brett@mayson.io> Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> Co-authored-by: PabstMirror <pabstmirror@gmail.com> Co-authored-by: jonpas <jonpas33@gmail.com> Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
2023-09-24 19:57:08 +00:00
*
* Return Value:
* None
*
* Example:
* [[player, cursorObject], "ACE_bodyBagObject_blue"] call ace_medical_treatment_fnc_placeInBodyBagOrGrave
Medical Treatment - Add Grave Digging for Corpse Disposal (#9276) * Add grave digging * Update fnc_placeInBodyBagOrGrave.sqf * Update fnc_placeInBodyBagOrGrave.sqf * Update fnc_placeInBodyBagOrGrave.sqf * Update addons/medical_treatment/functions/fnc_placeInBodyBag.sqf Co-authored-by: BrettMayson <brett@mayson.io> * Add setting to enable/disable * improvements - fix flipped bool in fnc_canDigGrave - improve fnc_placeInBodyBagOrGrave.sqf by splitting out some checks and item assignment into separate bodybag and grave functions * fix typo in variable * Apply suggestions from code review Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * add to XEH_PREP and fix event for non-local patient * Add interaction to check name on headstone * Update addons/medical_treatment/XEH_postInit.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Simplify Setting * Apply suggestions from code review Co-authored-by: jonpas <jonpas33@gmail.com> * Update addons/medical_treatment/stringtable.xml Co-authored-by: jonpas <jonpas33@gmail.com> * Make placeInBodyBagOrGrave more generic and use any grave class * Update addons/medical_treatment/functions/fnc_placeInGrave.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Update medical-treatment-framework.md * Update docs/wiki/framework/medical-treatment-framework.md Co-authored-by: jonpas <jonpas33@gmail.com> * update docs * Update addons/medical_treatment/functions/fnc_placeInBodyBagOrGrave.sqf * Update addons/medical_treatment/functions/fnc_placeInGrave.sqf * fix includes --------- Co-authored-by: BrettMayson <brett@mayson.io> Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> Co-authored-by: PabstMirror <pabstmirror@gmail.com> Co-authored-by: jonpas <jonpas33@gmail.com> Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
2023-09-24 19:57:08 +00:00
*
* Public: No
*/
params ["_args", "_restingPlaceClass", ["_offset", [0,0,0]], ["_rotation", 0], ["_isGrave", false]];
Medical Treatment - Add Grave Digging for Corpse Disposal (#9276) * Add grave digging * Update fnc_placeInBodyBagOrGrave.sqf * Update fnc_placeInBodyBagOrGrave.sqf * Update fnc_placeInBodyBagOrGrave.sqf * Update addons/medical_treatment/functions/fnc_placeInBodyBag.sqf Co-authored-by: BrettMayson <brett@mayson.io> * Add setting to enable/disable * improvements - fix flipped bool in fnc_canDigGrave - improve fnc_placeInBodyBagOrGrave.sqf by splitting out some checks and item assignment into separate bodybag and grave functions * fix typo in variable * Apply suggestions from code review Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * add to XEH_PREP and fix event for non-local patient * Add interaction to check name on headstone * Update addons/medical_treatment/XEH_postInit.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Simplify Setting * Apply suggestions from code review Co-authored-by: jonpas <jonpas33@gmail.com> * Update addons/medical_treatment/stringtable.xml Co-authored-by: jonpas <jonpas33@gmail.com> * Make placeInBodyBagOrGrave more generic and use any grave class * Update addons/medical_treatment/functions/fnc_placeInGrave.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Update medical-treatment-framework.md * Update docs/wiki/framework/medical-treatment-framework.md Co-authored-by: jonpas <jonpas33@gmail.com> * update docs * Update addons/medical_treatment/functions/fnc_placeInBodyBagOrGrave.sqf * Update addons/medical_treatment/functions/fnc_placeInGrave.sqf * fix includes --------- Co-authored-by: BrettMayson <brett@mayson.io> Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> Co-authored-by: PabstMirror <pabstmirror@gmail.com> Co-authored-by: jonpas <jonpas33@gmail.com> Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
2023-09-24 19:57:08 +00:00
_args params ["_medic", "_patient"];
TRACE_1("placeInBodyBagOrGrave",_patient);
private _isHuman = _patient isKindOf "CaManBase";
if (_isHuman && {!local _patient}) exitWith {
Medical Treatment - Add Grave Digging for Corpse Disposal (#9276) * Add grave digging * Update fnc_placeInBodyBagOrGrave.sqf * Update fnc_placeInBodyBagOrGrave.sqf * Update fnc_placeInBodyBagOrGrave.sqf * Update addons/medical_treatment/functions/fnc_placeInBodyBag.sqf Co-authored-by: BrettMayson <brett@mayson.io> * Add setting to enable/disable * improvements - fix flipped bool in fnc_canDigGrave - improve fnc_placeInBodyBagOrGrave.sqf by splitting out some checks and item assignment into separate bodybag and grave functions * fix typo in variable * Apply suggestions from code review Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * add to XEH_PREP and fix event for non-local patient * Add interaction to check name on headstone * Update addons/medical_treatment/XEH_postInit.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Simplify Setting * Apply suggestions from code review Co-authored-by: jonpas <jonpas33@gmail.com> * Update addons/medical_treatment/stringtable.xml Co-authored-by: jonpas <jonpas33@gmail.com> * Make placeInBodyBagOrGrave more generic and use any grave class * Update addons/medical_treatment/functions/fnc_placeInGrave.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Update medical-treatment-framework.md * Update docs/wiki/framework/medical-treatment-framework.md Co-authored-by: jonpas <jonpas33@gmail.com> * update docs * Update addons/medical_treatment/functions/fnc_placeInBodyBagOrGrave.sqf * Update addons/medical_treatment/functions/fnc_placeInGrave.sqf * fix includes --------- Co-authored-by: BrettMayson <brett@mayson.io> Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> Co-authored-by: PabstMirror <pabstmirror@gmail.com> Co-authored-by: jonpas <jonpas33@gmail.com> Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
2023-09-24 19:57:08 +00:00
TRACE_1("Calling where local",local _patient);
[QGVAR(placeInBodyBagOrGrave), _this, _patient] call CBA_fnc_targetEvent;
};
if (_isHuman && {alive _patient}) then {
Medical Treatment - Add Grave Digging for Corpse Disposal (#9276) * Add grave digging * Update fnc_placeInBodyBagOrGrave.sqf * Update fnc_placeInBodyBagOrGrave.sqf * Update fnc_placeInBodyBagOrGrave.sqf * Update addons/medical_treatment/functions/fnc_placeInBodyBag.sqf Co-authored-by: BrettMayson <brett@mayson.io> * Add setting to enable/disable * improvements - fix flipped bool in fnc_canDigGrave - improve fnc_placeInBodyBagOrGrave.sqf by splitting out some checks and item assignment into separate bodybag and grave functions * fix typo in variable * Apply suggestions from code review Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * add to XEH_PREP and fix event for non-local patient * Add interaction to check name on headstone * Update addons/medical_treatment/XEH_postInit.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Simplify Setting * Apply suggestions from code review Co-authored-by: jonpas <jonpas33@gmail.com> * Update addons/medical_treatment/stringtable.xml Co-authored-by: jonpas <jonpas33@gmail.com> * Make placeInBodyBagOrGrave more generic and use any grave class * Update addons/medical_treatment/functions/fnc_placeInGrave.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Update medical-treatment-framework.md * Update docs/wiki/framework/medical-treatment-framework.md Co-authored-by: jonpas <jonpas33@gmail.com> * update docs * Update addons/medical_treatment/functions/fnc_placeInBodyBagOrGrave.sqf * Update addons/medical_treatment/functions/fnc_placeInGrave.sqf * fix includes --------- Co-authored-by: BrettMayson <brett@mayson.io> Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> Co-authored-by: PabstMirror <pabstmirror@gmail.com> Co-authored-by: jonpas <jonpas33@gmail.com> Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
2023-09-24 19:57:08 +00:00
TRACE_1("Manually killing with setDead",_patient);
[_patient, "buried_alive", _medic] call EFUNC(medical_status,setDead);
};
private _position = getPosASL _patient;
private _direction = 0;
if (_isHuman) then {
private _headPos = _patient modelToWorldVisual (_patient selectionPosition "head");
private _spinePos = _patient modelToWorldVisual (_patient selectionPosition "Spine3");
_direction = (_headPos vectorFromTo _spinePos) call CBA_fnc_vectDir;
} else {
_direction = getDir _patient;
};
Medical Treatment - Add Grave Digging for Corpse Disposal (#9276) * Add grave digging * Update fnc_placeInBodyBagOrGrave.sqf * Update fnc_placeInBodyBagOrGrave.sqf * Update fnc_placeInBodyBagOrGrave.sqf * Update addons/medical_treatment/functions/fnc_placeInBodyBag.sqf Co-authored-by: BrettMayson <brett@mayson.io> * Add setting to enable/disable * improvements - fix flipped bool in fnc_canDigGrave - improve fnc_placeInBodyBagOrGrave.sqf by splitting out some checks and item assignment into separate bodybag and grave functions * fix typo in variable * Apply suggestions from code review Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * add to XEH_PREP and fix event for non-local patient * Add interaction to check name on headstone * Update addons/medical_treatment/XEH_postInit.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Simplify Setting * Apply suggestions from code review Co-authored-by: jonpas <jonpas33@gmail.com> * Update addons/medical_treatment/stringtable.xml Co-authored-by: jonpas <jonpas33@gmail.com> * Make placeInBodyBagOrGrave more generic and use any grave class * Update addons/medical_treatment/functions/fnc_placeInGrave.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Update medical-treatment-framework.md * Update docs/wiki/framework/medical-treatment-framework.md Co-authored-by: jonpas <jonpas33@gmail.com> * update docs * Update addons/medical_treatment/functions/fnc_placeInBodyBagOrGrave.sqf * Update addons/medical_treatment/functions/fnc_placeInGrave.sqf * fix includes --------- Co-authored-by: BrettMayson <brett@mayson.io> Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> Co-authored-by: PabstMirror <pabstmirror@gmail.com> Co-authored-by: jonpas <jonpas33@gmail.com> Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
2023-09-24 19:57:08 +00:00
// apply adjustments
_position = _position vectorAdd _offset;
_direction = _direction + _rotation;
// Move the body away so it won't collide with the body bag object
// This setPosASL seems to need to be called where the unit is local
_patient setPosASL [-5000, -5000, 0];
private _restingPlace = objNull;
if (_restingPlaceClass != "") then {
// Create the body bag object, set its position to prevent it from flipping
_restingPlace = createVehicle [_restingPlaceClass, [0, 0, 0], [], 0, "NONE"];
_restingPlace setPosASL _position;
_restingPlace setDir _direction;
_restingPlace setVectorUp surfaceNormal _position;
};
Medical Treatment - Add Grave Digging for Corpse Disposal (#9276) * Add grave digging * Update fnc_placeInBodyBagOrGrave.sqf * Update fnc_placeInBodyBagOrGrave.sqf * Update fnc_placeInBodyBagOrGrave.sqf * Update addons/medical_treatment/functions/fnc_placeInBodyBag.sqf Co-authored-by: BrettMayson <brett@mayson.io> * Add setting to enable/disable * improvements - fix flipped bool in fnc_canDigGrave - improve fnc_placeInBodyBagOrGrave.sqf by splitting out some checks and item assignment into separate bodybag and grave functions * fix typo in variable * Apply suggestions from code review Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * add to XEH_PREP and fix event for non-local patient * Add interaction to check name on headstone * Update addons/medical_treatment/XEH_postInit.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Simplify Setting * Apply suggestions from code review Co-authored-by: jonpas <jonpas33@gmail.com> * Update addons/medical_treatment/stringtable.xml Co-authored-by: jonpas <jonpas33@gmail.com> * Make placeInBodyBagOrGrave more generic and use any grave class * Update addons/medical_treatment/functions/fnc_placeInGrave.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Update medical-treatment-framework.md * Update docs/wiki/framework/medical-treatment-framework.md Co-authored-by: jonpas <jonpas33@gmail.com> * update docs * Update addons/medical_treatment/functions/fnc_placeInBodyBagOrGrave.sqf * Update addons/medical_treatment/functions/fnc_placeInGrave.sqf * fix includes --------- Co-authored-by: BrettMayson <brett@mayson.io> Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> Co-authored-by: PabstMirror <pabstmirror@gmail.com> Co-authored-by: jonpas <jonpas33@gmail.com> Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
2023-09-24 19:57:08 +00:00
// Server will handle hiding and deleting the body
// Keep event name as body bag only to avoid breaking things for others
["ace_placedInBodyBag", [_patient, _restingPlace, _isGrave]] call CBA_fnc_globalEvent;
if (_isGrave) then {
["ace_placedInGrave", [_patient, _restingPlace]] call CBA_fnc_globalEvent;
};