ACE3/addons/common/functions/fnc_displayText.sqf

48 lines
1.3 KiB
Plaintext
Raw Normal View History

/*
* Author: commy2
*
* Display a message.
*
* Argument:
* 0: Message (String)
* 1: Play a clicking sound (Bool, optional default: false)
* 2: How long before hiding the message in seconds (Number, optional default: 2 sec)
* 3: Priority, higher priority messages will override lesser important ones (Number, optional default: 0)
*
* Return value:
* Nothing
*/
2015-01-13 19:56:02 +00:00
#include "script_component.hpp"
#define DEFAULT_PLAY_SOUND false
#define DEFAULT_DELAY 2
#define DEFAULT_PRIORITY 0
_this resize 4;
2015-05-14 18:06:06 +00:00
private ["_lastHintTime", "_lastHintPriority", "_time"];
PARAMS_4(_text,_sound,_delay,_priority);
if (isNil QGVAR(lastHint)) then {
GVAR(lastHint) = [0, 0];
};
_lastHintTime = GVAR(lastHint) select 0;
_lastHintPriority = GVAR(lastHint) select 1;
if !(typeName _text in ["STRING", "TEXT"]) then {_text = str _text};
if (isNil "_sound") then {_sound = DEFAULT_PLAY_SOUND};
if (isNil "_delay") then {_delay = DEFAULT_DELAY};
if (isNil "_priority") then {_priority = DEFAULT_PRIORITY};
_time = ACE_time;
if (_time > _lastHintTime + _delay || {_priority >= _lastHintPriority}) then {
hintSilent _text;
if (_sound) then {playSound "ACE_Sound_Click"};
GVAR(lastHint) set [0, _time];
GVAR(lastHint) set [1, _priority];
[{if ((_this select 0) == GVAR(lastHint) select 0) then {hintSilent ""};}, [_time], _delay, 0] call FUNC(waitAndExecute);
};