ACE3/addons/spectator/functions/fnc_ui_updateCamButtons.sqf
SilentSpike d3ce75daef Spectator overhaul (#5171)
- Overhauls the spectator module entirely to share a similar UX to BI's "End Game Spectator" while maintaining some of the extended flexibility of ACE Spectator.
- Simplifies spectator setup by reducing the number of settings. More advanced setup is still possible via the API functions provided.
2017-08-12 14:25:48 +01:00

39 lines
1.1 KiB
Plaintext

/*
* Author: SilentSpike
* Used to update the docked camera buttons
* Disables unavailable, highlights current
*
* Arguments:
* None
*
* Return Value:
* None
*
* Example:
* [] call ace_spectator_fnc_ui_updateCamButtons
*
* Public: No
*/
#include "script_component.hpp"
// These correspond to the camera mode indices
#define ENUM_IDCs [IDC_FREE, IDC_FPS, IDC_FOLLOW]
#define ENUM_ACTIVE [CAM_ICON_FREE_SELECTED, CAM_ICON_FPS_SELECTED, CAM_ICON_FOLLOW_SELECTED]
#define ENUM_INACTIVE [CAM_ICON_FREE, CAM_ICON_FPS, CAM_ICON_FOLLOW]
private _current = ENUM_IDCs select GVAR(camMode);
{
if (_forEachIndex in GVAR(availableModes)) then {
// Highlight the current camera mode button
private _icon = ([ENUM_INACTIVE, ENUM_ACTIVE] select (_x == _current)) select _forEachIndex;
(CTRL_CAM_TYPES controlsGroupCtrl _x) ctrlSetText _icon;
(CTRL_CAM_TYPES controlsGroupCtrl _x) ctrlShow true;
} else {
// Disable any inactive camera modes
(CTRL_CAM_TYPES controlsGroupCtrl _x) ctrlShow false;
};
} forEach ENUM_IDCs;