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)}} {!isNil {_target getVariable QGVAR(dogtagData)}}
] call EFUNC(interact_menu,createAction); ] 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 = [ private _takeTagAction = [
"ACE_TakeDogtag", "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)}} {(!isNil {_target getVariable QGVAR(dogtagData)}) && {((_target getVariable [QGVAR(dogtagTaken), objNull]) != _target)}}
] call EFUNC(interact_menu,createAction); ] 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 { if (isServer) then {

View File

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

View File

@ -7,20 +7,20 @@ class CfgVehicles {
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {}; class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
}; };
displayName = "$STR_a3_cfgvehicles_land_bodybag_01_black_f0";
scope = 1; scope = 1;
scopeCurator = 2; scopeCurator = 1;
side = -1; side = -1;
model = QPATHTOEF(apl,ace_bodybag.p3d);
icon = ""; icon = "";
displayName = CSTRING(Bodybag_Display);
EGVAR(dragging,canDrag) = 1; EGVAR(dragging,canDrag) = 1;
EGVAR(dragging,dragPosition)[] = {0,1.2,0}; EGVAR(dragging,dragPosition)[] = {0,1.2,0};
EGVAR(dragging,dragDirection) = 0; EGVAR(dragging,dragDirection) = 0;
EGVAR(cargo,size) = 1; EGVAR(cargo,size) = 1;
EGVAR(cargo,canLoad) = 1; EGVAR(cargo,canLoad) = 1;
EGVAR(cargo,noRename) = 1; EGVAR(cargo,noRename) = 1;
model = "\A3\Props_F_Orange\Humanitarian\Camps\Bodybag_01_F.p3d";
hiddenSelections[] = {"camo"}; 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_Actions {
class ACE_MainActions { class ACE_MainActions {
displayName = ECSTRING(interaction,MainAction); 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 // Grave vehicle
class Land_Grave_dirt_F; class Land_Grave_dirt_F;

View File

@ -285,14 +285,29 @@ class CfgWeapons {
class ACE_bodyBag: ACE_ItemCore { class ACE_bodyBag: ACE_ItemCore {
scope = 2; scope = 2;
author = ECSTRING(common,ACETeam); author = ECSTRING(common,ACETeam);
displayName= CSTRING(Bodybag_Display); displayName = "$STR_a3_cfgvehicles_land_bodybag_01_black_f0"
model = QPATHTOF(data\bodybagItem.p3d); model = QPATHTOF(data\bodybagItem.p3d);
picture = QPATHTOF(ui\bodybag_ca.paa); picture = QPATHTOF(ui\bodybag_ca.paa);
descriptionShort = CSTRING(Bodybag_Desc_Short); descriptionShort = CSTRING(Bodybag_Desc_Short);
descriptionUse = CSTRING(Bodybag_Desc_Use); descriptionUse = CSTRING(Bodybag_Desc_Use);
ACE_isMedicalItem = 1; ACE_isMedicalItem = 1;
GVAR(bodyBagObject) = "ACE_bodyBagObject";
class ItemInfo: CBA_MiscItem_ItemInfo { class ItemInfo: CBA_MiscItem_ItemInfo {
mass = 7; 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 { class ADDON {
name = COMPONENT_NAME; 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"}; 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; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_medical_status", "ace_medical_damage", "ace_apl"}; requiredAddons[] = {"ace_medical_status", "ace_medical_damage", "ace_apl"};
author = ECSTRING(common,ACETeam); author = ECSTRING(common,ACETeam);

Binary file not shown.

Binary file not shown.

View File

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

View File

@ -6,6 +6,10 @@
* Arguments: * Arguments:
* 0: Medic <OBJECT> * 0: Medic <OBJECT>
* 1: Patient <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: * Return Value:
* None * None
@ -16,13 +20,14 @@
* Public: No * Public: No
*/ */
params ["_medic", "_patient"]; params ["_medic", "_patient", "", "", "", "_item"];
TRACE_1("placeInBodyBag",_patient); TRACE_1("placeInBodyBag",_patient);
if ((alive _patient) && {!GVAR(allowBodyBagUnconscious)}) exitWith { 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); [LSTRING(bodybagWhileStillAlive)] call EFUNC(common,displayTextStructured);
}; };
// Body bag needs to be a little higher to prevent it from flipping // 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 * None
* *
* Example: * Example:
* [[player, cursorObject], "ACE_bodyBagObject"] call ace_medical_treatment_fnc_placeInBodyBagOrGrave * [[player, cursorObject], "ACE_bodyBagObject_blue"] call ace_medical_treatment_fnc_placeInBodyBagOrGrave
* *
* Public: No * Public: No
*/ */

Binary file not shown.

Binary file not shown.