mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
b10c68405a
fix vr arsenal anim when empty-handed
125 lines
3.9 KiB
Plaintext
125 lines
3.9 KiB
Plaintext
#include "script_component.hpp"
|
|
#include "\z\ace\addons\arsenal\defines.hpp"
|
|
#include "\a3\ui_f\hpp\defineDIKCodes.inc"
|
|
|
|
enableSaving [false, false];
|
|
cba_diagnostic_projectileMaxLines = 10;
|
|
|
|
[QGVAR(displayOpened), {
|
|
private _player = player;
|
|
|
|
// Player pose
|
|
[{
|
|
switch (currentWeapon _this) do {
|
|
case (""): {
|
|
_this switchMove "amovpercmstpsnonwnondnon";
|
|
};
|
|
case (primaryWeapon _this): {
|
|
_this switchMove "amovpercmstpslowwrfldnon";
|
|
};
|
|
case (handgunWeapon _this): {
|
|
_this switchMove "amovpercmstpslowwpstdnon";
|
|
};
|
|
case (binocular _this);
|
|
case (secondaryWeapon _this): {}; // deliberately nothing
|
|
};
|
|
}, _player] call CBA_fnc_execNextFrame;
|
|
|
|
// Hide everything except the player
|
|
{
|
|
_x enableSimulation false;
|
|
_x hideObject true;
|
|
} forEach (allMissionObjects "" - [_player] - attachedObjects _player);
|
|
|
|
if ((_player getVariable ["CBA_projectile_firedEhId", -1]) != -1) then {
|
|
_player call CBA_fnc_removeUnitTrackProjectiles;
|
|
};
|
|
|
|
_player setFatigue 0;
|
|
|
|
// Esc to close mission
|
|
{
|
|
private _display = findDisplay IDD_ace_arsenal;
|
|
|
|
_display displayAddEventHandler ["KeyDown", {
|
|
params ["_display", "_key", "_shift"];
|
|
|
|
if (_key isEqualTo DIK_ESCAPE && {!_shift}) then {
|
|
[_display] spawn {
|
|
disableSerialization;
|
|
|
|
params ["_display"];
|
|
|
|
private _return = [
|
|
localize "str_sure",
|
|
localize "str_a3_rscdisplaymain_buttonexit",
|
|
true, true,
|
|
_display, false, true
|
|
] call BIS_fnc_GUImessage;
|
|
|
|
if (_return) then {
|
|
// Save loadout for next time arsenal mission is played
|
|
profileNamespace setVariable [QGVAR(missionLastLoadout), [player] call CBA_fnc_getLoadout];
|
|
|
|
// Quit mission
|
|
_display closeDisplay IDC_CANCEL;
|
|
findDisplay IDD_MISSION closeDisplay 0;
|
|
};
|
|
};
|
|
|
|
true
|
|
};
|
|
}];
|
|
|
|
(_display displayCtrl IDC_menuBarClose) ctrlSetText localize "str_a3_rscdisplayarsenal_buttonok";
|
|
} call CBA_fnc_execNextFrame;
|
|
}] call CBA_fnc_addEventHandler;
|
|
|
|
[QGVAR(displayClosed), {
|
|
private _player = player;
|
|
|
|
// Unhide everthing
|
|
{
|
|
_x enableSimulation true;
|
|
_x hideObject false;
|
|
} forEach allMissionObjects "";
|
|
|
|
private _unit = objNull;
|
|
|
|
// Update VR unit gear
|
|
{
|
|
_unit = _x;
|
|
|
|
removeVest _unit;
|
|
if (vest _player != "") then { _unit addVest vest _player; };
|
|
|
|
removeBackpack _unit;
|
|
if (backpack _player != "") then { _unit addBackpack backpack _player; };
|
|
removeHeadgear _unit;
|
|
if (headgear _player != "") then { _unit addHeadgear headgear _player; };
|
|
removeGoggles _unit;
|
|
if (goggles _player != "") then { _unit addGoggles goggles _player; };
|
|
|
|
removeAllWeapons _unit;
|
|
if (primaryWeapon _player != "") then { _unit addWeapon primaryWeapon _player; };
|
|
|
|
{
|
|
_unit addPrimaryWeaponItem _x;
|
|
} forEach primaryWeaponItems _player;
|
|
|
|
if (secondaryWeapon _player != "") then { _unit addWeapon secondaryWeapon _player; };
|
|
|
|
{
|
|
_unit addSecondaryWeaponItem _x;
|
|
} forEach secondaryWeaponItems _player;
|
|
|
|
if (handgunWeapon _player != "") then { _unit addWeapon handgunWeapon _player; };
|
|
|
|
{
|
|
_unit addHandgunItem _x;
|
|
} forEach handgunItems _player;
|
|
} forEach (entities [["B_Soldier_VR_F", "O_Soldier_VR_F", "I_Soldier_VR_F"], [], true]);
|
|
|
|
_player call CBA_fnc_addUnitTrackProjectiles;
|
|
}] call CBA_fnc_addEventHandler;
|