ACE3/addons/quickmount/CfgVehicles.hpp
Dystopian e8c3be8016 Quick Mount - Add Get In and Change seat action menu (#5745)
* Add quickmount GetIn menu

* Add compartment support

* Check engine, check pilot, check static turret driver

* Add doc, condition, translation

* Add hybrid config entries, fix MP issue

* Optimize condition

* Ignore Enabled setting in vehicle

* Work around SQF validator macro issue

* Fix config macro entries

* Add workaround for getting damage when seat changing while moving

* Add setting for Get In menu disabling

* Fix race when 2 players try to get the same seat

* Convert if-else to switch

* Decrease move-back timeout to 0.5s

* Check if vehicle is flipped

* Add getin statement for parent menu

* Improve canShowFreeSeats

* Apply latest trends

* Improve fnc_addFreeSeatsActions

* Change copilot and gunless turret icons

* Fix macro name

* Fix FFV icon

* Optimize turret icon code

* Extend setting to 4 values

* Fix menu is shown when vehicle is full

* Optimize UAV checking code

* Fix bug with disabled FFV turrets

* Remove bugged FFV, Add turret locality check, Add Failed message

* Replace some macros with function

* Fix validator

* Remove global variables, Add debug
2018-11-18 22:33:50 -06:00

85 lines
2.5 KiB
C++

class CfgVehicles {
class ACE_Module;
class GVAR(module): ACE_Module {
author = ECSTRING(common,ACETeam);
category = "ACE";
displayName = CSTRING(Category);
function = QFUNC(moduleInit);
scope = 1;
isGlobal = 1;
isTriggerActivated = 0;
isDisposable = 0;
icon = "a3\ui_f\data\IGUI\Cfg\Actions\Obsolete\ui_action_getin_ca.paa";
class Arguments {
class enabled {
displayName = ECSTRING(common,Enabled);
description = CSTRING(KeybindDescription);
typeName = "BOOL";
defaultValue = 1;
};
class distance {
displayName = CSTRING(Distance);
description = CSTRING(DistanceDescription);
typeName = "NUMBER";
defaultValue = DEFAULT_DISTANCE;
};
class speed {
displayName = CSTRING(Speed);
description = CSTRING(SpeedDescription);
typeName = "NUMBER";
defaultValue = DEFAULT_SPEED;
};
};
class ModuleDescription {
description = CSTRING(KeybindDescription);
};
};
#define GETIN_ACTIONS \
class ACE_Actions { \
class ACE_MainActions { \
class GVAR(GetIn) { \
displayName = "$STR_rscMenu.hppRscGroupRootMenu_Items_GetIn1"; \
condition = QUOTE(call DFUNC(canShowFreeSeats)); \
statement = QUOTE(call DFUNC(getInNearest)); \
exceptions[] = {"isNotSwimming"}; \
insertChildren = QUOTE(call DFUNC(addFreeSeatsActions)); \
}; \
}; \
}; \
class ACE_SelfActions { \
class GVAR(ChangeSeat) { \
displayName = CSTRING(ChangeSeat); \
condition = QUOTE(call DFUNC(canShowFreeSeats)); \
statement = ""; \
insertChildren = QUOTE(call DFUNC(addFreeSeatsActions)); \
}; \
}
class LandVehicle;
class Car: LandVehicle {
GETIN_ACTIONS;
};
class Motorcycle: LandVehicle {
GETIN_ACTIONS;
};
class StaticWeapon: LandVehicle {
GETIN_ACTIONS;
};
class Tank: LandVehicle {
GETIN_ACTIONS;
};
class Air;
class Helicopter: Air {
GETIN_ACTIONS;
};
class Plane: Air {
GETIN_ACTIONS;
};
class Ship;
class Ship_F: Ship {
GETIN_ACTIONS;
};
};