; [STR_OUTPUT_FORMAT, FUNCTION] exec "watch.sqs"
;
; STR_OUTPUT_FORMAT - строка выходного формата времени,
; должна включать набор из следующих тегов:
; %1 - часы,
; %2 - минуты,
; %3 - секунды,
; %4 - часы по полудню,
; %5 - индикатор AM/PM
;
; FUNCTION - sqf-функция, получающая (через _this) время в формате
; заданном STR_OUTPUT_FORMAT и осуществляющая конкретные действия,
; например вывод этой строки на экран. Должна возвращать true для продолжения,
; либо false для прекращения работы часов
;
; Примеры.
; Вывод в диалог:
; ["%1:%2:%3", "ctrlSetText[controlId, _this]; dialog"] exec "watch.sqs";
;
; Тоже самое, только возможен различный формат для разных стран
; [localize "STR_TIME", "ctrlSetText[controlId, _this]; dialog"] exec "watch.sqs";
; Одноразовый вывод времени на экран:
; ["Московское время: %1:%2:%3", "TitleText [_this, {plain down}]; false"] exec "watch.sqs";
;
; _format=_this select 0
_function=_this select 1
_int={_this-(_this%1)}
_sxd={(_this call _int)%60}
_dec={format["%1%2", _this/10 call _int, _this%10]}
#timer
_dt=daytime
_h=(_dt*0001 call _sxd) call _dec
_m=(_dt*0060 call _sxd) call _dec
_s=(_dt*3600 call _sxd) call _dec
_hAmPm=(((((_dt call _sxd)+11)%12)+1) call _int) call _dec
_AmPm=["PM","AM"] select (_dt call _sxd >= 12)
?!(format[_format, _h, _m, _s, _hAmPm, _AmPm] call _function):exit
~1
goto "timer"