Medical Treatment - Use Laws of War bodybag model and add colored bodybags (#9371)

* add colored bodybags

* fix dogtags, add icons, revert item model to original

* Retexture ace's item model

* Keep original vehicle classname

* Update fnc_placeInBodyBagOrGrave.sqf

* fix displayName

---------

Co-authored-by: PabstMirror <pabstmirror@gmail.com>
This commit is contained in:
Grim 2023-10-24 15:16:52 -04:00 committed by GitHub
parent be6582ea44
commit b8a9376a65
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 52 additions and 14 deletions

View File

@ -17,7 +17,7 @@ if (["ACE_Medical"] call EFUNC(common,isModLoaded)) then {
{!isNil {_target getVariable QGVAR(dogtagData)}}
] call EFUNC(interact_menu,createAction);
["ACE_bodyBagObject", 0, ["ACE_MainActions"], _checkTagAction] call EFUNC(interact_menu,addActionToClass);
["ACE_bodyBagObject", 0, ["ACE_MainActions"], _checkTagAction, true] call EFUNC(interact_menu,addActionToClass);
private _takeTagAction = [
"ACE_TakeDogtag",
@ -27,7 +27,7 @@ if (["ACE_Medical"] call EFUNC(common,isModLoaded)) then {
{(!isNil {_target getVariable QGVAR(dogtagData)}) && {((_target getVariable [QGVAR(dogtagTaken), objNull]) != _target)}}
] call EFUNC(interact_menu,createAction);
["ACE_bodyBagObject", 0, ["ACE_MainActions"], _takeTagAction] call EFUNC(interact_menu,addActionToClass);
["ACE_bodyBagObject", 0, ["ACE_MainActions"], _takeTagAction, true] call EFUNC(interact_menu,addActionToClass);
};
if (isServer) then {

View File

@ -247,7 +247,7 @@ class GVAR(actions) {
allowSelfTreatment = 0;
medicRequired = 0;
treatmentTime = QGVAR(treatmentTimeBodyBag);
items[] = {"ACE_bodyBag"};
items[] = {"ACE_bodyBag", "ACE_bodyBag_blue", "ACE_bodyBag_white"};
condition = QFUNC(canPlaceInBodyBag);
callbackSuccess = QFUNC(placeInBodyBag);
consumeItem = 1;

View File

@ -7,20 +7,20 @@ class CfgVehicles {
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
};
displayName = "$STR_a3_cfgvehicles_land_bodybag_01_black_f0";
scope = 1;
scopeCurator = 2;
scopeCurator = 1;
side = -1;
model = QPATHTOEF(apl,ace_bodybag.p3d);
icon = "";
displayName = CSTRING(Bodybag_Display);
EGVAR(dragging,canDrag) = 1;
EGVAR(dragging,dragPosition)[] = {0,1.2,0};
EGVAR(dragging,dragDirection) = 0;
EGVAR(cargo,size) = 1;
EGVAR(cargo,canLoad) = 1;
EGVAR(cargo,noRename) = 1;
model = "\A3\Props_F_Orange\Humanitarian\Camps\Bodybag_01_F.p3d";
hiddenSelections[] = {"camo"};
hiddenSelectionsTextures[] = {QPATHTOEF(apl,data\bodybag_co.paa)};
hiddenSelectionsTextures[] = {"\A3\Props_F_Orange\Humanitarian\Camps\Data\Bodybag_01_black_CO.paa"};
class ACE_Actions {
class ACE_MainActions {
displayName = ECSTRING(interaction,MainAction);
@ -38,6 +38,20 @@ class CfgVehicles {
};
};
};
class ACE_bodyBagObject_blue: ACE_bodyBagObject {
displayName = "$STR_a3_cfgvehicles_land_bodybag_01_blue_f0";
hiddenSelectionsTextures[] = {"\A3\Props_F_Orange\Humanitarian\Camps\Data\Bodybag_01_blue_CO.paa"};
};
class ACE_bodyBagObject_white: ACE_bodyBagObject {
displayName = "$STR_a3_cfgvehicles_land_bodybag_01_white_f0";
hiddenSelectionsTextures[] = {"\A3\Props_F_Orange\Humanitarian\Camps\Data\Bodybag_01_white_CO.paa"};
};
class ACE_bodyBagObject_old: ACE_bodyBagObject {
displayName = CSTRING(Bodybag_Display);
model = QPATHTOEF(apl,ace_bodybag.p3d);
hiddenSelections[] = {"camo"};
hiddenSelectionsTextures[] = {QPATHTOEF(apl,data\bodybag_co.paa)};
};
// Grave vehicle
class Land_Grave_dirt_F;

View File

@ -285,14 +285,29 @@ class CfgWeapons {
class ACE_bodyBag: ACE_ItemCore {
scope = 2;
author = ECSTRING(common,ACETeam);
displayName= CSTRING(Bodybag_Display);
displayName = "$STR_a3_cfgvehicles_land_bodybag_01_black_f0"
model = QPATHTOF(data\bodybagItem.p3d);
picture = QPATHTOF(ui\bodybag_ca.paa);
descriptionShort = CSTRING(Bodybag_Desc_Short);
descriptionUse = CSTRING(Bodybag_Desc_Use);
ACE_isMedicalItem = 1;
GVAR(bodyBagObject) = "ACE_bodyBagObject";
class ItemInfo: CBA_MiscItem_ItemInfo {
mass = 7;
};
};
class ACE_bodyBag_blue: ACE_bodyBag {
displayName = "$STR_a3_cfgvehicles_land_bodybag_01_blue_f0";
picture = QPATHTOF(ui\bodybag_blue_ca.paa);
hiddenSelections[] = {"camo"};
hiddenSelectionsTextures[] = {QPATHTOF(data\bodybagItem_blue_co.paa)};
GVAR(bodyBagObject) = "ACE_bodyBagObject_blue";
};
class ACE_bodyBag_white: ACE_bodyBag {
displayName = "$STR_a3_cfgvehicles_land_bodybag_01_white_f0";
picture = QPATHTOF(ui\bodybag_white_ca.paa);
hiddenSelections[] = {"camo"};
hiddenSelectionsTextures[] = {QPATHTOF(data\bodybagItem_white_co.paa)};
GVAR(bodyBagObject) = "ACE_bodyBagObject_white";
};
};

View File

@ -11,7 +11,7 @@ class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
units[] = {"ACE_fieldDressingItem","ACE_packingBandageItem","ACE_elasticBandageItem","ACE_tourniquetItem","ACE_splintItem","ACE_morphineItem","ACE_adenosineItem","ACE_epinephrineItem","ACE_plasmaIVItem","ACE_bloodIVItem","ACE_salineIVItem","ACE_quikClotItem","ACE_personalAidKitItem","ACE_surgicalKitItem","ACE_sutureItem","ACE_bodyBagItem","ACE_medicalSupplyCrate","ACE_medicalSupplyCrate_advanced"};
weapons[] = {"ACE_fieldDressing","ACE_packingBandage","ACE_elasticBandage","ACE_tourniquet","ACE_splint","ACE_morphine","ACE_adenosine","ACE_epinephrine","ACE_plasmaIV","ACE_plasmaIV_500","ACE_plasmaIV_250","ACE_bloodIV","ACE_bloodIV_500","ACE_bloodIV_250","ACE_salineIV","ACE_salineIV_500","ACE_salineIV_250","ACE_quikclot","ACE_personalAidKit","ACE_surgicalKit","ACE_suture","ACE_bodyBag"};
weapons[] = {"ACE_fieldDressing","ACE_packingBandage","ACE_elasticBandage","ACE_tourniquet","ACE_splint","ACE_morphine","ACE_adenosine","ACE_epinephrine","ACE_plasmaIV","ACE_plasmaIV_500","ACE_plasmaIV_250","ACE_bloodIV","ACE_bloodIV_500","ACE_bloodIV_250","ACE_salineIV","ACE_salineIV_500","ACE_salineIV_250","ACE_quikclot","ACE_personalAidKit","ACE_surgicalKit","ACE_suture","ACE_bodyBag","ACE_bodyBag_blue","ACE_bodyBag_white"};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_medical_status", "ace_medical_damage", "ace_apl"};
author = ECSTRING(common,ACETeam);

Binary file not shown.

Binary file not shown.

View File

@ -45,7 +45,11 @@ class CfgModels {
class adenosine: Default {};
class atropine: Default {};
class bandage: Default {};
class bodybagItem: Default {};
class bodybagItem: Default {
sectionsInherit = "";
sections[] = {"camo"};
skeletonName = "";
};
class epinephrine: Default {};
class splint: Default {};

View File

@ -6,6 +6,10 @@
* Arguments:
* 0: Medic <OBJECT>
* 1: Patient <OBJECT>
* 2: Body Part (unused) <STRING>
* 3: Treatment (unused) <STRING>
* 4: Item user (unused) <OBJECT>
* 5: Body bag classname <STRING>
*
* Return Value:
* None
@ -16,13 +20,14 @@
* Public: No
*/
params ["_medic", "_patient"];
params ["_medic", "_patient", "", "", "", "_item"];
TRACE_1("placeInBodyBag",_patient);
if ((alive _patient) && {!GVAR(allowBodyBagUnconscious)}) exitWith {
[_medic, "ACE_bodyBag"] call EFUNC(common,addToInventory); // re-add slighly used bodybag?
[_medic, _item] call EFUNC(common,addToInventory); // re-add slighly used bodybag?
[LSTRING(bodybagWhileStillAlive)] call EFUNC(common,displayTextStructured);
};
// Body bag needs to be a little higher to prevent it from flipping
[_this, "ACE_bodyBagObject", [0, 0, 0.2]] call FUNC(placeInBodyBagOrGrave);
private _bodyBagClass = getText (configFile >> "CfgWeapons" >> _item >> QGVAR(bodyBagObject));
[_this, _bodyBagClass, [0, 0, 0.2], 0, false] call FUNC(placeInBodyBagOrGrave);

View File

@ -16,7 +16,7 @@
* None
*
* Example:
* [[player, cursorObject], "ACE_bodyBagObject"] call ace_medical_treatment_fnc_placeInBodyBagOrGrave
* [[player, cursorObject], "ACE_bodyBagObject_blue"] call ace_medical_treatment_fnc_placeInBodyBagOrGrave
*
* Public: No
*/

Binary file not shown.

Binary file not shown.