mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-09 07:57:50 +00:00
* The TGS thing * Revert the 516 revert * Further segment the world/New() proc * Fixes an issue here
53 lines
1.9 KiB
Plaintext
53 lines
1.9 KiB
Plaintext
/// Green eye; fully interactive
|
|
#define UI_INTERACTIVE 2
|
|
/// Orange eye; updates but is not interactive
|
|
#define UI_UPDATE 1
|
|
/// Red eye; disabled, does not update
|
|
#define UI_DISABLED 0
|
|
/// UI Should close
|
|
#define UI_CLOSE -1
|
|
|
|
/// Maximum number of windows that can be suspended/reused
|
|
/// Normally 5.
|
|
/// There's an issue that causes the cursor to always show the loading animation
|
|
/// if tgui windows are open (pooled hidden windows count as well).
|
|
#define TGUI_WINDOW_SOFT_LIMIT 0
|
|
|
|
/// Maximum number of open windows
|
|
#define TGUI_WINDOW_HARD_LIMIT 9
|
|
|
|
/// Maximum ping timeout allowed to detect zombie windows
|
|
#define TGUI_PING_TIMEOUT 4 SECONDS
|
|
|
|
/// Used for rate-limiting to prevent DoS by excessively refreshing a TGUI window
|
|
#define TGUI_REFRESH_FULL_UPDATE_COOLDOWN (1 SECONDS)
|
|
|
|
/// Window does not exist
|
|
#define TGUI_WINDOW_CLOSED 0
|
|
/// Window was just opened, but is still not ready to be sent data
|
|
#define TGUI_WINDOW_LOADING 1
|
|
/// Window is free and ready to receive data
|
|
#define TGUI_WINDOW_READY 2
|
|
|
|
/// Get a window id based on the provided pool index
|
|
#define TGUI_WINDOW_ID(index) "tgui-window-[index]"
|
|
/// Get a pool index of the provided window id
|
|
#define TGUI_WINDOW_INDEX(window_id) text2num(copytext(window_id, 13))
|
|
|
|
/// Creates a message packet for sending via output()
|
|
// This is {"type":type,"payload":payload}, but pre-encoded. This is much faster
|
|
// than doing it the normal way.
|
|
// To ensure this is correct, this is unit tested in tgui_create_message.
|
|
#define TGUI_CREATE_MESSAGE(type, payload) ( \
|
|
"%7b%22type%22%3a%22[type]%22%2c%22payload%22%3a[url_encode(json_encode(payload))]%7d" \
|
|
)
|
|
|
|
/**
|
|
* NAMEOF: Compile time checked variable name to string conversion
|
|
* evaluates to a string equal to "X", but compile errors if X isn't a var on datum.
|
|
**/
|
|
#define NAMEOF(datum, X) (#X || ##datum.##X)
|
|
|
|
/// Call by name proc reference, checks if the proc exists on either the given type or as a global proc
|
|
#define TYPE_PROC_REF(TYPE, X) (nameof(##TYPE.proc/##X))
|