ACE3/addons/markers/functions/fnc_removeTimestamp.sqf
Mike-MF 1c6c4d6bff
All - Fix parentheses around code (#10073)
* Fix Brackets around code

* Update fnc_handleFired.sqf

* Shouldn't have changed this one

---------

Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
2024-06-18 14:08:03 +00:00

71 lines
1.9 KiB
Plaintext

#include "..\script_component.hpp"
/*
* Author: commy2
* Removes timestamp from end of a string.
*
* Arguments:
* 0: Marker text string <STRING>
*
* Return Value:
* Input with timestamp removed <STRING>
*
* Example:
* "abc [12:00 am]" call ace_markers_fnc_removeTimestamp // "abc"
* "[13:37]" call ace_markers_fnc_removeTimestamp // ""
* "xyz [123]" call ace_markers_fnc_removeTimestamp // "xyz [123]"
* "xyz [12]" call ace_markers_fnc_removeTimestamp // "xyz"
* "xyz [12 pm]" call ace_markers_fnc_removeTimestamp // "xyz"
*
* Public: No
*/
#define DIGITS "0123456789"
params ["_original"];
// @todo, 2.02 reverse command will support STRING types
private _string = toArray _original;
reverse _string;
_string = toString _string;
if (_string select [0, 1] != "]") exitWith {_original};
private _timestampLength = (_string find "[") + 1;
_string = _string select [0, _timestampLength];
// @todo
_string = toArray _string;
reverse _string;
_string = toString _string;
if (_string select [0, 1] != "[") exitWith {_original};
private _index = 1;
private _keepCheckingDigits = true;
private _validTimestamp = true;
while {_keepCheckingDigits} do {
if !(_string select [_index, 1] in DIGITS) exitWith { _validTimestamp = false; };
if !(_string select [_index+1, 1] in DIGITS) exitWith { _validTimestamp = false; };
switch (_string select [_index+2, 1]) do {
case (":"): {
_index = _index + 3;
};
case ("]"): {
_keepCheckingDigits = false;
};
case (" "): {
_keepCheckingDigits = false;
if !(_string select [_index+3, 3] in ["am]", "pm]"]) then {_validTimestamp = false; };
};
default {
_keepCheckingDigits = false;
_validTimestamp = false;
};
};
};
if (_validTimestamp) then {
[_original select [0, count _original - _timestampLength], " "] call CBA_fnc_rightTrim // return
} else {
_original // return
}