Difference between revisions of "Level Script External Code"

From Wolfire Games Wiki
Jump to: navigation, search
(Created page with "This is a list of the external code that is only available to be used inside a level script - variables, functions, and classes that "magically" exist. To see a list of external...")
 
m (Remove "will be in 1.0.6" notice now that 1.0.6 is released)
 
(47 intermediate revisions by the same user not shown)
Line 1: Line 1:
This is a list of the external code that is only available to be used inside a level script - variables, functions, and classes that "magically" exist.
+
[[Category: Modding]]
 +
[[Category:Overgrowth]]
 +
This is a list of the external code that is only available to be used inside a [[LevelScripts|Level Script]] or [[Hotspots|Hotspot]] - variables, functions, and classes that "magically" exist.
  
To see a list of external code that is available to all scripts, please see this page - '''TODO''': Page link here.
+
'''Some code is not available to be used in a hotspot script, and will be marked below.'''
  
This list is pulled from the ~/Documents/Wolfire/Overgrowth/aslevel_docs.h file, which is automatically generated by the game.
+
To see a list of external code that is available to all scripts, please see this page - [[Common Script External Code]]
  
See this page to find the location for the Wolfire/Overgrowth folder on each OS - http://wiki.wolfire.com/index.php/How_to_clear_the_game's_cache
+
This list is pulled from the <code>~/Documents/Wolfire/Overgrowth/aslevel_docs.h</code> file. See [[LevelScripts#Documentation|Level Script Documentation]] (or [[Hotspots#Documentation|Hotspot Script Documentation]]) to find out more about where this file is on your computer. That file is automatically generated by the game, so will always be up to date. This page is manually updated, so may be slightly out of date from time to time.
  
'''TODO''': These can be documented individually, possibly on their own pages
+
'''TODO''': Document the rest of the classes. Can put basic docs on this page, and more extensive docs/tutorials on other pages if desired, and link to them.
  
 
== Global Variables ==
 
== Global Variables ==
  
<pre style="white-space: pre-wrap;">HUDImages hud;</pre>
+
<pre style="white-space: pre-wrap;">HUDImages hud; // Instance of the HUD image manager class, to overlay images on the game UI</pre>
<pre style="white-space: pre-wrap;">int imgui_text_input_CursorPos;</pre>
+
<pre style="white-space: pre-wrap;">SaveFile save_file; // Instance of the SaveFile, for saving out custom data</pre>
<pre style="white-space: pre-wrap;">int imgui_text_input_SelectionEnd;</pre>
 
<pre style="white-space: pre-wrap;">int imgui_text_input_SelectionStart;</pre>
 
<pre style="white-space: pre-wrap;">SaveFile save_file;</pre>
 
<pre style="white-space: pre-wrap;">ScreenMetrics screenMetrics;</pre>
 
<pre style="white-space: pre-wrap;">uint SOCKET_ID_INVALID;</pre>
 
 
<pre style="white-space: pre-wrap;">float the_time;  // The current time in seconds since engine started (in-game time)</pre>
 
<pre style="white-space: pre-wrap;">float the_time;  // The current time in seconds since engine started (in-game time)</pre>
 
<pre style="white-space: pre-wrap;">float time_step;  // Time in seconds between engine time steps</pre>
 
<pre style="white-space: pre-wrap;">float time_step;  // Time in seconds between engine time steps</pre>
 
<pre style="white-space: pre-wrap;">float ui_time;  // The current time in seconds since engine started (absolute time)</pre>
 
<pre style="white-space: pre-wrap;">float ui_time;  // The current time in seconds since engine started (absolute time)</pre>
 +
=== Not available in hotspot scripts ===
 +
<pre style="white-space: pre-wrap;">int imgui_text_input_CursorPos;  // Access to the current cursor position index in a field for the IMGUI UI (not Dear ImGui)</pre>
 +
<pre style="white-space: pre-wrap;">int imgui_text_input_SelectionEnd;  // Access to the current cursor selection index a field for the in IMGUI UI (not Dear ImGui)</pre>
 +
<pre style="white-space: pre-wrap;">int imgui_text_input_SelectionStart;  // Access to the current cursor selection index a field for the in IMGUI UI (not Dear ImGui)</pre>
 +
<pre style="white-space: pre-wrap;">ScreenMetrics screenMetrics;  // Access to set and calculate the GUI size vs the current screen size, and relative scale</pre>
 +
<pre style="white-space: pre-wrap;">uint SOCKET_ID_INVALID;  // A value to specify that the socket you got back is not valid</pre>
  
 
== Constants ==
 
== Constants ==
 +
<pre style="white-space: pre-wrap;">enum PlaceholderObjectType {
 +
    kCamPreview,
 +
    kPlayerConnect,
 +
    kSpawn,
 +
};</pre>
  
<pre style="white-space: pre-wrap;">enum ContainerAlignment;</pre>
+
=== Not available in hotspot scripts ===
<pre style="white-space: pre-wrap;">enum DividerOrientation;</pre>
+
<pre style="white-space: pre-wrap;">const float UNDEFINEDSIZE;</pre>
<pre style="white-space: pre-wrap;">enum ExpansionPolicy;</pre>
+
<pre style="white-space: pre-wrap;">const int UNDEFINEDSIZEI;</pre>
<pre style="white-space: pre-wrap;">enum IMTweenType;</pre>
+
<pre style="white-space: pre-wrap;">enum ContainerAlignment {
<pre style="white-space: pre-wrap;">enum ImGuiCol_;</pre>
+
    CATop,
<pre style="white-space: pre-wrap;">enum ImGuiColorEditMode_;</pre>
+
    CALeft,
<pre style="white-space: pre-wrap;">enum ImGuiInputTextFlags_;</pre>
+
    CACenter,
<pre style="white-space: pre-wrap;">enum ImGuiKey_;</pre>
+
    CARight,
<pre style="white-space: pre-wrap;">enum ImGuiSelectableFlags_;</pre>
+
    CABottom,
<pre style="white-space: pre-wrap;">enum ImGuiSetCond_;</pre>
+
};</pre>
<pre style="white-space: pre-wrap;">enum ImGuiTreeNodeFlags_;</pre>
+
<pre style="white-space: pre-wrap;">enum DividerOrientation {
<pre style="white-space: pre-wrap;">enum ImGuiWindowFlags_;</pre>
+
    DOVertical,
<pre style="white-space: pre-wrap;">enum PhxGuiConstantsType;</pre>
+
    DOHorizontal,
<pre style="white-space: pre-wrap;">enum PlaceholderObjectType;</pre>
+
};</pre>
 +
<pre style="white-space: pre-wrap;">enum ExpansionPolicy {
 +
    ContainerExpansionStatic,
 +
    ContainerExpansionExpand,
 +
    ContainerExpansionInheritMax,
 +
};</pre>
 +
<pre style="white-space: pre-wrap;">enum IMTweenType {
 +
    linearTween,
 +
    inQuadTween,
 +
    outQuadTween,
 +
    inOutQuadTween,
 +
    outInQuadTween,
 +
    inCubicTween,
 +
    outCubicTween,
 +
    inOutCubicTween,
 +
    outInCubicTween,
 +
    inQuartTween,
 +
    outQuartTween,
 +
    inOutQuartTween,
 +
    outInQuartTween,
 +
    inQuintTween,
 +
    outQuintTween,
 +
    inOutQuintTween,
 +
    outInQuintTween,
 +
    inSineTween,
 +
    outSineTween,
 +
    inOutSineTween,
 +
    outInSineTween,
 +
    inExpoTween,
 +
    outExpoTween,
 +
    inOutExpoTween,
 +
    outInExpoTween,
 +
    inCircTween,
 +
    outCircTween,
 +
    inOutCircTween,
 +
    outInCircTween,
 +
    outBounceTween,
 +
    inBounceTween,
 +
    inOutBounceTween,
 +
    outInBounceTween,
 +
};</pre>
 +
<pre style="white-space: pre-wrap;">enum ImGuiCol_ {
 +
    ImGuiCol_Text,
 +
    ImGuiCol_TextDisabled,
 +
    ImGuiCol_WindowBg,
 +
    ImGuiCol_ChildWindowBg,
 +
    ImGuiCol_PopupBg,
 +
    ImGuiCol_Border,
 +
    ImGuiCol_BorderShadow,
 +
    ImGuiCol_FrameBg,
 +
    ImGuiCol_FrameBgHovered,
 +
    ImGuiCol_FrameBgActive,
 +
    ImGuiCol_TitleBg,
 +
    ImGuiCol_TitleBgCollapsed,
 +
    ImGuiCol_TitleBgActive,
 +
    ImGuiCol_MenuBarBg,
 +
    ImGuiCol_ScrollbarBg,
 +
    ImGuiCol_ScrollbarGrab,
 +
    ImGuiCol_ScrollbarGrabHovered,
 +
    ImGuiCol_ScrollbarGrabActive,
 +
    ImGuiCol_ComboBg,
 +
    ImGuiCol_CheckMark,
 +
    ImGuiCol_SliderGrab,
 +
    ImGuiCol_SliderGrabActive,
 +
    ImGuiCol_Button,
 +
    ImGuiCol_ButtonHovered,
 +
    ImGuiCol_ButtonActive,
 +
    ImGuiCol_Header,
 +
    ImGuiCol_HeaderHovered,
 +
    ImGuiCol_HeaderActive,
 +
    ImGuiCol_Column,
 +
    ImGuiCol_ColumnHovered,
 +
    ImGuiCol_ColumnActive,
 +
    ImGuiCol_ResizeGrip,
 +
    ImGuiCol_ResizeGripHovered,
 +
    ImGuiCol_ResizeGripActive,
 +
    ImGuiCol_CloseButton,
 +
    ImGuiCol_CloseButtonHovered,
 +
    ImGuiCol_CloseButtonActive,
 +
    ImGuiCol_PlotLines,
 +
    ImGuiCol_PlotLinesHovered,
 +
    ImGuiCol_PlotHistogram,
 +
    ImGuiCol_PlotHistogramHovered,
 +
    ImGuiCol_TextSelectedBg,
 +
    ImGuiCol_ModalWindowDarkening,
 +
    ImGuiCol_COUNT,
 +
};</pre>
 +
<pre style="white-space: pre-wrap;">enum ImGuiColorEditMode_ {
 +
    ImGuiColorEditMode_UserSelect,
 +
    ImGuiColorEditMode_UserSelectShowButton,
 +
    ImGuiColorEditMode_RGB,
 +
    ImGuiColorEditMode_HSV,
 +
    ImGuiColorEditMode_HEX,
 +
};</pre>
 +
<pre style="white-space: pre-wrap;">enum ImGuiInputTextFlags_ {
 +
    ImGuiInputTextFlags_CharsDecimal,
 +
    ImGuiInputTextFlags_CharsHexadecimal,
 +
    ImGuiInputTextFlags_CharsUppercase,
 +
    ImGuiInputTextFlags_CharsNoBlank,
 +
    ImGuiInputTextFlags_AutoSelectAll,
 +
    ImGuiInputTextFlags_EnterReturnsTrue,
 +
    ImGuiInputTextFlags_CallbackCompletion,
 +
    ImGuiInputTextFlags_CallbackHistory,
 +
    ImGuiInputTextFlags_CallbackAlways,
 +
    ImGuiInputTextFlags_CallbackCharFilter,
 +
    ImGuiInputTextFlags_AllowTabInput,
 +
    ImGuiInputTextFlags_CtrlEnterForNewLine,
 +
    ImGuiInputTextFlags_NoHorizontalScroll,
 +
    ImGuiInputTextFlags_AlwaysInsertMode,
 +
    ImGuiInputTextFlags_ReadOnly,
 +
    ImGuiInputTextFlags_Password,
 +
};</pre>
 +
<pre style="white-space: pre-wrap;">enum ImGuiKey_ {
 +
    ImGuiKey_Tab,
 +
    ImGuiKey_LeftArrow,
 +
    ImGuiKey_RightArrow,
 +
    ImGuiKey_UpArrow,
 +
    ImGuiKey_DownArrow,
 +
    ImGuiKey_PageUp,
 +
    ImGuiKey_PageDown,
 +
    ImGuiKey_Home,
 +
    ImGuiKey_End,
 +
    ImGuiKey_Delete,
 +
    ImGuiKey_Backspace,
 +
    ImGuiKey_Enter,
 +
    ImGuiKey_Escape,
 +
    ImGuiKey_A,
 +
    ImGuiKey_C,
 +
    ImGuiKey_V,
 +
    ImGuiKey_X,
 +
    ImGuiKey_Y,
 +
    ImGuiKey_Z,
 +
    ImGuiKey_COUNT,
 +
};</pre>
 +
<pre style="white-space: pre-wrap;">enum ImGuiSelectableFlags_ {
 +
    ImGuiSelectableFlags_DontClosePopups,
 +
    ImGuiSelectableFlags_SpanAllColumns,
 +
    ImGuiSelectableFlags_AllowDoubleClick,
 +
};</pre>
 +
<pre style="white-space: pre-wrap;">enum ImGuiSetCond_ {
 +
    ImGuiSetCond_Always,
 +
    ImGuiSetCond_Once,
 +
    ImGuiSetCond_FirstUseEver,
 +
    ImGuiSetCond_Appearing,
 +
};</pre>
 +
<pre style="white-space: pre-wrap;">enum ImGuiStyleVar_ {
 +
    ImGuiStyleVar_Alpha,
 +
    ImGuiStyleVar_WindowPadding,
 +
    ImGuiStyleVar_WindowRounding,
 +
    ImGuiStyleVar_WindowMinSize,
 +
    ImGuiStyleVar_ChildWindowRounding,
 +
    ImGuiStyleVar_FramePadding,
 +
    ImGuiStyleVar_FrameRounding,
 +
    ImGuiStyleVar_ItemSpacing,
 +
    ImGuiStyleVar_ItemInnerSpacing,
 +
    ImGuiStyleVar_IndentSpacing,
 +
    ImGuiStyleVar_GrabMinSize,
 +
    ImGuiStyleVar_ButtonTextAlign,
 +
    ImGuiStyleVar_Count_,
 +
};</pre>
 +
<pre style="white-space: pre-wrap;">enum ImGuiTreeNodeFlags_ {
 +
    ImGuiTreeNodeFlags_Selected,
 +
    ImGuiTreeNodeFlags_Framed,
 +
    ImGuiTreeNodeFlags_AllowOverlapMode,
 +
    ImGuiTreeNodeFlags_NoTreePushOnOpen,
 +
    ImGuiTreeNodeFlags_NoAutoOpenOnLog,
 +
    ImGuiTreeNodeFlags_DefaultOpen,
 +
    ImGuiTreeNodeFlags_OpenOnDoubleClick,
 +
    ImGuiTreeNodeFlags_OpenOnArrow,
 +
    ImGuiTreeNodeFlags_Leaf,
 +
    ImGuiTreeNodeFlags_Bullet,
 +
    ImGuiTreeNodeFlags_CollapsingHeader,
 +
};</pre>
 +
<pre style="white-space: pre-wrap;">enum ImGuiWindowFlags_ {
 +
    ImGuiWindowFlags_NoTitleBar,
 +
    ImGuiWindowFlags_NoResize,
 +
    ImGuiWindowFlags_NoMove,
 +
    ImGuiWindowFlags_NoScrollbar,
 +
    ImGuiWindowFlags_NoScrollWithMouse,
 +
    ImGuiWindowFlags_NoCollapse,
 +
    ImGuiWindowFlags_AlwaysAutoResize,
 +
    ImGuiWindowFlags_ShowBorders,
 +
    ImGuiWindowFlags_NoSavedSettings,
 +
    ImGuiWindowFlags_NoInputs,
 +
    ImGuiWindowFlags_MenuBar,
 +
    ImGuiWindowFlags_HorizontalScrollbar,
 +
    ImGuiWindowFlags_NoFocusOnAppearing,
 +
    ImGuiWindowFlags_NoBringToFrontOnFocus,
 +
    ImGuiWindowFlags_AlwaysVerticalScrollbar,
 +
    ImGuiWindowFlags_AlwaysHorizontalScrollbar,
 +
    ImGuiWindowFlags_AlwaysUseWindowPadding,
 +
};</pre>
 +
 
 +
=== Deprecated ===
 +
'''These types are deprecated from an older version of our custom UI library. Do not use them!!'''
 
<pre style="white-space: pre-wrap;">enum TextFlags;</pre>
 
<pre style="white-space: pre-wrap;">enum TextFlags;</pre>
 
<pre style="white-space: pre-wrap;">enum UIMouseState;</pre>
 
<pre style="white-space: pre-wrap;">enum UIMouseState;</pre>
Line 43: Line 245:
  
 
== Global Functions ==
 
== Global Functions ==
 +
=== IMGUI UI Functions ===
 +
Note: This is not the same at all as Dear ImGui. This is used to create more customized UI, as seen in the pause menu.
  
<pre style="white-space: pre-wrap;">void AddFileString(const string &in);</pre>
+
'''None of these functions are available to be used in hotspot scripts'''
 
<pre style="white-space: pre-wrap;">IMGUI@ CreateIMGUI();</pre>
 
<pre style="white-space: pre-wrap;">IMGUI@ CreateIMGUI();</pre>
<pre style="white-space: pre-wrap;">int CreateIMUIContext();</pre>
+
<pre style="white-space: pre-wrap;">vec4 HexColor(const string &in hex);</pre>
<pre style="white-space: pre-wrap;">uint CreateSocketTCP(string& host, uint16 port);</pre>
+
<pre style="white-space: pre-wrap;">IMImage@ ModGetThumbnailImage(ModID& sid);</pre>
<pre style="white-space: pre-wrap;">void DestroySocketTCP(uint socket);</pre>
+
=== Dear ImGui Functions ===
<pre style="white-space: pre-wrap;">void DisposeIMUIContext(int id);</pre>
+
These functions expose the Dear ImGui library that is integrated into the Phoenix engine.
<pre style="white-space: pre-wrap;">string GetFileLine();</pre>
+
 
<pre style="white-space: pre-wrap;">IMUIContext@ GetIMUIContext(int id);</pre>
+
For a little more documentation on Dear ImGui functions, see this page - https://github.com/ocornut/imgui/blob/master/imgui.h
 +
 
 +
'''None of these functions are available to be used in hotspot scripts'''
 
<pre style="white-space: pre-wrap;">string GetUserPickedReadPath(const string &in suffix, const string &in default_path);</pre>
 
<pre style="white-space: pre-wrap;">string GetUserPickedReadPath(const string &in suffix, const string &in default_path);</pre>
 
<pre style="white-space: pre-wrap;">string GetUserPickedWritePath(const string &in suffix, const string &in default_path);</pre>
 
<pre style="white-space: pre-wrap;">string GetUserPickedWritePath(const string &in suffix, const string &in default_path);</pre>
<pre style="white-space: pre-wrap;">vec4 HexColor(const string &in hex);</pre>
 
 
<pre style="white-space: pre-wrap;">void ImGui_AlignFirstTextHeightToWidgets();</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_AlignFirstTextHeightToWidgets();</pre>
<pre style="white-space: pre-wrap;">bool ImGui_Begin(const string &in name, bool &inout is_open, int flags = 0); // bool ImGui_Begin(const string &in name, bool &inout is_open, ImGuiWindowFlags flags = 0)</pre>
+
<pre style="white-space: pre-wrap;">bool ImGui_Begin(const string &in name, bool &inout is_open, ImGuiWindowFlags flags = 0);</pre>
<pre style="white-space: pre-wrap;">bool ImGui_Begin(const string &in name, int flags = 0); // bool ImGui_Begin(const string &in name, ImGuiWindowFlags flags = 0)</pre>
+
<pre style="white-space: pre-wrap;">bool ImGui_Begin(const string &in name, ImGuiWindowFlags flags = 0);</pre>
<pre style="white-space: pre-wrap;">bool ImGui_BeginChild(const string &in str_id, const vec2 &in size = vec2(0, 0), bool border = false, int extra_flags = 0); // bool ImGui_BeginChild(const string &in str_id, const vec2 &in size = vec2(0, 0), bool border = false, ImGuiWindowFlags extra_flags = 0)</pre>
+
<pre style="white-space: pre-wrap;">bool ImGui_BeginChild(const string &in str_id, const vec2 &in size = vec2(0, 0), bool border = false, ImGuiWindowFlags extra_flags = 0);</pre>
<pre style="white-space: pre-wrap;">bool ImGui_BeginChild(uint id, const vec2 &in size = vec2(0, 0), bool border = false, int extra_flags = 0); // bool ImGui_BeginChild(uint id, const vec2 &in size = vec2(0, 0), bool border = false, ImGuiWindowFlags extra_flags = 0)</pre>
+
<pre style="white-space: pre-wrap;">bool ImGui_BeginChild(uint id, const vec2 &in size = vec2(0, 0), bool border = false, ImGuiWindowFlags extra_flags = 0);</pre>
<pre style="white-space: pre-wrap;">bool ImGui_BeginChildFrame(uint id, const vec2 &in size, int extra_flags = 0); // bool ImGui_BeginChildFrame(uint id, const vec2 &in size, ImGuiWindowFlags extra_flags = 0)</pre>
+
<pre style="white-space: pre-wrap;">bool ImGui_BeginChildFrame(uint id, const vec2 &in size, ImGuiWindowFlags extra_flags = 0);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_BeginGroup();</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_BeginGroup();</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_BeginMenu(const string &in label, bool enabled = true);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_BeginMenu(const string &in label, bool enabled = true);</pre>
Line 70: Line 275:
 
<pre style="white-space: pre-wrap;">bool ImGui_BeginPopupContextWindow(bool also_over_items = true, int mouse_button = 1);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_BeginPopupContextWindow(bool also_over_items = true, int mouse_button = 1);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_BeginPopupContextWindow(bool also_over_items, const string &in popup_id, int mouse_button = 1);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_BeginPopupContextWindow(bool also_over_items, const string &in popup_id, int mouse_button = 1);</pre>
<pre style="white-space: pre-wrap;">bool ImGui_BeginPopupModal(const string &in name, bool &inout is_open, int extra_flags = 0); // bool ImGui_BeginPopupModal(const string &in name, bool &inout is_open, ImGuiWindowFlags extra_flags = 0)</pre>
+
<pre style="white-space: pre-wrap;">bool ImGui_BeginPopupModal(const string &in name, bool &inout is_open, ImGuiWindowFlags extra_flags = 0);</pre>
<pre style="white-space: pre-wrap;">bool ImGui_BeginPopupModal(const string &in name, int extra_flags = 0); // bool ImGui_BeginPopupModal(const string &in name, ImGuiWindowFlags extra_flags = 0)</pre>
+
<pre style="white-space: pre-wrap;">bool ImGui_BeginPopupModal(const string &in name, ImGuiWindowFlags extra_flags = 0);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_Bullet();</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_Bullet();</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_BulletText(const string &in label);  // Note: label is not a format string, unlike in Dear ImGui. Use string concatenation instead</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_BulletText(const string &in label);  // Note: label is not a format string, unlike in Dear ImGui. Use string concatenation instead</pre>
Line 83: Line 288:
 
<pre style="white-space: pre-wrap;">bool ImGui_CheckboxFlags(const string &in label, uint &inout flags, uint flags_value);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_CheckboxFlags(const string &in label, uint &inout flags, uint flags_value);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_CloseCurrentPopup();</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_CloseCurrentPopup();</pre>
<pre style="white-space: pre-wrap;">bool ImGui_CollapsingHeader(const string &in label, bool &inout is_open, int flags = 0); // bool ImGui_CollapsingHeader(const string &in label, bool &inout is_open, ImGuiTreeNodeFlags flags = 0)</pre>
+
<pre style="white-space: pre-wrap;">bool ImGui_CollapsingHeader(const string &in label, bool &inout is_open, ImGuiTreeNodeFlags flags = 0);</pre>
<pre style="white-space: pre-wrap;">bool ImGui_CollapsingHeader(const string &in label, int flags = 0); // bool ImGui_CollapsingHeader(const string &in label, ImGuiTreeNodeFlags flags = 0)</pre>
+
<pre style="white-space: pre-wrap;">bool ImGui_CollapsingHeader(const string &in label, ImGuiTreeNodeFlags flags = 0);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_ColorButton(const vec4 &in col, bool small_height = false, bool outline_border = true);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_ColorButton(const vec4 &in col, bool small_height = false, bool outline_border = true);</pre>
 
<pre style="white-space: pre-wrap;">uint ImGui_ColorConvertFloat4ToU32(const vec4 &in value);</pre>
 
<pre style="white-space: pre-wrap;">uint ImGui_ColorConvertFloat4ToU32(const vec4 &in value);</pre>
Line 92: Line 297:
 
<pre style="white-space: pre-wrap;">bool ImGui_ColorEdit3(const string &in label, vec3 &inout color);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_ColorEdit3(const string &in label, vec3 &inout color);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_ColorEdit4(const string &in label, vec4 &inout color, bool show_alpha = true);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_ColorEdit4(const string &in label, vec4 &inout color, bool show_alpha = true);</pre>
<pre style="white-space: pre-wrap;">void ImGui_ColorEditMode(int);  // void ImGui_ColorEditMode(ImGuiColorEditMode mode)</pre>
+
<pre style="white-space: pre-wrap;">void ImGui_ColorEditMode(ImGuiColorEditMode mode);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_Columns(int count = 1, bool border = true);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_Columns(int count = 1, bool border = true);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_Columns(int count, const string &in id, bool border = true);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_Columns(int count, const string &in id, bool border = true);</pre>
Line 128: Line 333:
 
<pre style="white-space: pre-wrap;">vec2 ImGui_GetItemRectSize();</pre>
 
<pre style="white-space: pre-wrap;">vec2 ImGui_GetItemRectSize();</pre>
 
<pre style="white-space: pre-wrap;">float ImGui_GetItemsLineHeightWithSpacing();</pre>
 
<pre style="white-space: pre-wrap;">float ImGui_GetItemsLineHeightWithSpacing();</pre>
<pre style="white-space: pre-wrap;">int ImGui_GetKeyIndex(int imgui_key);  // int ImGui_GetKeyIndex(ImGuiKey key)</pre>
+
<pre style="white-space: pre-wrap;">int ImGui_GetKeyIndex(ImGuiKey key);</pre>
<pre style="white-space: pre-wrap;">int ImGui_GetMouseCursor(); // ImGuiMouseCursor ImGui_GetMouseCursor()</pre>
+
<pre style="white-space: pre-wrap;">ImGuiMouseCursor ImGui_GetMouseCursor();</pre>
 
<pre style="white-space: pre-wrap;">vec2 ImGui_GetMouseDragDelta(int button = 0, float lock_threshold = -1.0f);</pre>
 
<pre style="white-space: pre-wrap;">vec2 ImGui_GetMouseDragDelta(int button = 0, float lock_threshold = -1.0f);</pre>
 
<pre style="white-space: pre-wrap;">vec2 ImGui_GetMousePos();</pre>
 
<pre style="white-space: pre-wrap;">vec2 ImGui_GetMousePos();</pre>
Line 137: Line 342:
 
<pre style="white-space: pre-wrap;">float ImGui_GetScrollX();</pre>
 
<pre style="white-space: pre-wrap;">float ImGui_GetScrollX();</pre>
 
<pre style="white-space: pre-wrap;">float ImGui_GetScrollY();</pre>
 
<pre style="white-space: pre-wrap;">float ImGui_GetScrollY();</pre>
<pre style="white-space: pre-wrap;">string ImGui_GetStyleColName(int idx); // string ImGui_GetStyleColName(ImGuiCol idx)</pre>
+
<pre style="white-space: pre-wrap;">string ImGui_GetStyleColName(ImGuiCol idx);</pre>
 
<pre style="white-space: pre-wrap;">string ImGui_GetTextBuf();</pre>
 
<pre style="white-space: pre-wrap;">string ImGui_GetTextBuf();</pre>
 
<pre style="white-space: pre-wrap;">float ImGui_GetTextLineHeight();</pre>
 
<pre style="white-space: pre-wrap;">float ImGui_GetTextLineHeight();</pre>
Line 151: Line 356:
 
<pre style="white-space: pre-wrap;">float ImGui_GetWindowWidth();</pre>
 
<pre style="white-space: pre-wrap;">float ImGui_GetWindowWidth();</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_Indent(float indent_w = 0.0f);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_Indent(float indent_w = 0.0f);</pre>
<pre style="white-space: pre-wrap;">bool ImGui_InputFloat(const string &in label, float &inout value, float step = 0.0f, float step_fast = 0.0f, int decimal_precision = -1, int extra_flags = 0); // bool ImGui_InputFloat(const string &in label, float &inout value, float step = 0.0f, float step_fast = 0.0f, int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0)</pre>
+
<pre style="white-space: pre-wrap;">bool ImGui_InputFloat(const string &in label, float &inout value, float step = 0.0f, float step_fast = 0.0f, int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0);</pre>
<pre style="white-space: pre-wrap;">bool ImGui_InputFloat2(const string &in label, vec2 &inout value, int decimal_precision = -1, int extra_flags = 0); // bool ImGui_InputFloat2(const string &in label, vec2 &inout value, int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0)</pre>
+
<pre style="white-space: pre-wrap;">bool ImGui_InputFloat2(const string &in label, vec2 &inout value, int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0);</pre>
<pre style="white-space: pre-wrap;">bool ImGui_InputFloat3(const string &in label, vec3 &inout value, int decimal_precision = -1, int extra_flags = 0); // bool ImGui_InputFloat3(const string &in label, vec3 &inout value, int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0)</pre>
+
<pre style="white-space: pre-wrap;">bool ImGui_InputFloat3(const string &in label, vec3 &inout value, int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0);</pre>
<pre style="white-space: pre-wrap;">bool ImGui_InputFloat4(const string &in label, vec4 &inout value, int decimal_precision = -1, int extra_flags = 0); // bool ImGui_InputFloat4(const string &in label, vec4 &inout value, int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0)</pre>
+
<pre style="white-space: pre-wrap;">bool ImGui_InputFloat4(const string &in label, vec4 &inout value, int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0);</pre>
<pre style="white-space: pre-wrap;">bool ImGui_InputInt(const string &in label, int &inout value, int step = 1, int step_fast = 100, int extra_flags = 0); // bool ImGui_InputInt(const string &in label, int &inout value, int step = 1, int step_fast = 100, ImGuiInputTextFlags extra_flags = 0)</pre>
+
<pre style="white-space: pre-wrap;">bool ImGui_InputInt(const string &in label, int &inout value, int step = 1, int step_fast = 100, ImGuiInputTextFlags extra_flags = 0);</pre>
<pre style="white-space: pre-wrap;">bool ImGui_InputText(const string &in label, int flags = 0); // bool ImGui_InputText(const string &in label, ImGuiInputTextFlags flags = 0)</pre>
+
<pre style="white-space: pre-wrap;">bool ImGui_InputText(const string &in label, ImGuiInputTextFlags flags = 0);</pre>
<pre style="white-space: pre-wrap;">bool ImGui_InputTextMultiline(const string &in label, const vec2 &in size = vec2(0, 0), int flags = 0); // bool ImGui_InputTextMultiline(const string &in label, const vec2 &in size = vec2(0, 0), ImGuiInputTextFlags flags = 0)</pre>
+
<pre style="white-space: pre-wrap;">bool ImGui_InputTextMultiline(const string &in label, const vec2 &in size = vec2(0, 0), ImGuiInputTextFlags flags = 0);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_InvisibleButton(const string &in str_id, const vec2 &in size);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_InvisibleButton(const string &in str_id, const vec2 &in size);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_IsAnyItemActive();</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_IsAnyItemActive();</pre>
Line 198: Line 403:
 
<pre style="white-space: pre-wrap;">void ImGui_PopItemWidth();</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_PopItemWidth();</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_PopStyleColor(int count = 1);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_PopStyleColor(int count = 1);</pre>
 +
<pre style="white-space: pre-wrap;">void ImGui_PopStyleVar(int count = 1);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_PushItemWidth(int item_width);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_PushItemWidth(int item_width);</pre>
<pre style="white-space: pre-wrap;">void ImGui_PushStyleColor(int idx, const vec4 &in col); // void ImGui_PushStyleColor(ImGuiCol idx, const vec4 &in col)</pre>
+
<pre style="white-space: pre-wrap;">void ImGui_PushStyleColor(ImGuiCol idx, const vec4 &in col);</pre>
 +
<pre style="white-space: pre-wrap;">void ImGui_PushStyleVar(ImGuiStyleVar idx, float val);</pre>
 +
<pre style="white-space: pre-wrap;">void ImGui_PushStyleVar(ImGuiStyleVar idx, const vec2 &in val);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_RadioButton(const string &in label, bool active);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_RadioButton(const string &in label, bool active);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_RadioButton(const string &in label, int &inout value, int v_button);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_RadioButton(const string &in label, int &inout value, int v_button);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_ResetMouseDragDelta(int button = 0);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_ResetMouseDragDelta(int button = 0);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SameLine(float pos_x = 0.0, float spacing_w = -1.0);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SameLine(float pos_x = 0.0, float spacing_w = -1.0);</pre>
<pre style="white-space: pre-wrap;">bool ImGui_Selectable(const string &in label, bool selected = false, int flags = 0, const vec2 &in size = vec2(0, 0)); // ImGui_Selectable(const string &in label, bool selected = false, ImGuiSelectableFlags flags = 0, const vec2& size = vec2(0, 0))</pre>
+
<pre style="white-space: pre-wrap;">ImGui_Selectable(const string &in label, bool selected = false, ImGuiSelectableFlags flags = 0, const vec2& size = vec2(0, 0));</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_Separator();</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_Separator();</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetColumnOffset(int column_index, float offset_x);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetColumnOffset(int column_index, float offset_x);</pre>
Line 213: Line 421:
 
<pre style="white-space: pre-wrap;">void ImGui_SetItemAllowOverlap();</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetItemAllowOverlap();</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetKeyboardFocusHere(int offset = 0);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetKeyboardFocusHere(int offset = 0);</pre>
<pre style="white-space: pre-wrap;">void ImGui_SetMouseCursor(int type); // void ImGui_SetMouseCursor(ImGuiMouseCursor type)</pre>
+
<pre style="white-space: pre-wrap;">void ImGui_SetMouseCursor(ImGuiMouseCursor type);</pre>
<pre style="white-space: pre-wrap;">void ImGui_SetNextTreeNodeOpen(bool is_open, int cond = 0); // void ImGui_SetNextTreeNodeOpen(bool is_open, ImGuiSetCond cond = 0)</pre>
+
<pre style="white-space: pre-wrap;">void ImGui_SetNextTreeNodeOpen(bool is_open, ImGuiSetCond cond = 0);</pre>
<pre style="white-space: pre-wrap;">void ImGui_SetNextWindowCollapsed(bool collapsed, int cond = 0); // void ImGui_SetNextWindowCollapsed(bool collapsed, ImGuiSetCond cond = 0)</pre>
+
<pre style="white-space: pre-wrap;">void ImGui_SetNextWindowCollapsed(bool collapsed, ImGuiSetCond cond = 0);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetNextWindowContentSize(const vec2 &in size);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetNextWindowContentSize(const vec2 &in size);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetNextWindowContentWidth(float width);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetNextWindowContentWidth(float width);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetNextWindowFocus();</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetNextWindowFocus();</pre>
<pre style="white-space: pre-wrap;">void ImGui_SetNextWindowPos(const vec2 &in pos, int cond = 0); // void ImGui_SetNextWindowPos(const vec2 &in pos, ImGuiSetCond cond = 0)</pre>
+
<pre style="white-space: pre-wrap;">void ImGui_SetNextWindowPos(const vec2 &in pos, ImGuiSetCond cond = 0);</pre>
<pre style="white-space: pre-wrap;">void ImGui_SetNextWindowPosCenter(int cond = 0); // void ImGui_SetNextWindowPosCenter(ImGuiSetCond cond = 0)</pre>
+
<pre style="white-space: pre-wrap;">void ImGui_SetNextWindowPosCenter(ImGuiSetCond cond = 0);</pre>
<pre style="white-space: pre-wrap;">void ImGui_SetNextWindowSize(const vec2 &in size, int cond = 0); // void ImGui_SetNextWindowSize(const vec2 &in size, ImGuiSetCond cond = 0)</pre>
+
<pre style="white-space: pre-wrap;">void ImGui_SetNextWindowSize(const vec2 &in size, ImGuiSetCond cond = 0);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetScrollFromPosY(float pos_y, float center_y_ratio = 0.5f);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetScrollFromPosY(float pos_y, float center_y_ratio = 0.5f);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetScrollHere(float center_y_ratio = 0.5f);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetScrollHere(float center_y_ratio = 0.5f);</pre>
Line 227: Line 435:
 
<pre style="white-space: pre-wrap;">void ImGui_SetScrollY(float scroll_y);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetScrollY(float scroll_y);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetTextBuf(const string &in value);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetTextBuf(const string &in value);</pre>
<pre style="white-space: pre-wrap;">void ImGui_SetWindowCollapsed(bool collapsed, int cond = 0); // void ImGui_SetWindowCollapsed(bool collapsed, ImGuiSetCond cond = 0)</pre>
+
<pre style="white-space: pre-wrap;">void ImGui_SetWindowCollapsed(bool collapsed, ImGuiSetCond cond = 0);</pre>
<pre style="white-space: pre-wrap;">void ImGui_SetWindowCollapsed(const string &in name, bool collapsed, int cond = 0); // void ImGui_SetWindowCollapsed(const string &in name, bool collapsed, ImGuiSetCond cond = 0)</pre>
+
<pre style="white-space: pre-wrap;">void ImGui_SetWindowCollapsed(const string &in name, bool collapsed, ImGuiSetCond cond = 0);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetWindowFocus();</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetWindowFocus();</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetWindowFocus(const string &in name);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetWindowFocus(const string &in name);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetWindowFontScale(float scale);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_SetWindowFontScale(float scale);</pre>
<pre style="white-space: pre-wrap;">void ImGui_SetWindowPos(const string &in name, const vec2 &in pos, int cond = 0); // void ImGui_SetWindowPos(const string &in name, const vec2 &in pos, ImGuiSetCond cond = 0)</pre>
+
<pre style="white-space: pre-wrap;">void ImGui_SetWindowPos(const string &in name, const vec2 &in pos, ImGuiSetCond cond = 0);</pre>
<pre style="white-space: pre-wrap;">void ImGui_SetWindowPos(const vec2 &in pos, int cond = 0); // void ImGui_SetWindowPos(const vec2 &in pos, ImGuiSetCond cond = 0)</pre>
+
<pre style="white-space: pre-wrap;">void ImGui_SetWindowPos(const vec2 &in pos, ImGuiSetCond cond = 0);</pre>
<pre style="white-space: pre-wrap;">void ImGui_SetWindowSize(const string &in name, const vec2 &in size, int cond = 0); // void ImGui_SetWindowSize(const string &in name, const vec2 &in size, ImGuiSetCond cond = 0)</pre>
+
<pre style="white-space: pre-wrap;">void ImGui_SetWindowSize(const string &in name, const vec2 &in size, ImGuiSetCond cond = 0);</pre>
<pre style="white-space: pre-wrap;">void ImGui_SetWindowSize(const vec2 &in size, int cond = 0); // void ImGui_SetWindowSize(const vec2 &in size, ImGuiSetCond cond = 0)</pre>
+
<pre style="white-space: pre-wrap;">void ImGui_SetWindowSize(const vec2 &in size, ImGuiSetCond cond = 0);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_SmallButton(const string &in label);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_SmallButton(const string &in label);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_Spacing();</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_Spacing();</pre>
Line 246: Line 454:
 
<pre style="white-space: pre-wrap;">bool ImGui_TreeNode(const string &in label);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_TreeNode(const string &in label);</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_TreeNode(const string &in str_id, const string &in label);  // Note: label is not a format string, unlike in Dear ImGui. Use string concatenation instead</pre>
 
<pre style="white-space: pre-wrap;">bool ImGui_TreeNode(const string &in str_id, const string &in label);  // Note: label is not a format string, unlike in Dear ImGui. Use string concatenation instead</pre>
<pre style="white-space: pre-wrap;">bool ImGui_TreeNodeEx(const ? &in ptr_id, int flags, const string &in label)// bool ImGui_TreeNodeEx(const ? &in ptr_id, ImGuiTreeNodeFlags_ flags, const string &in label) - Note: label is not a format string, unlike in Dear ImGui. Use string concatenation instead</pre>
+
<pre style="white-space: pre-wrap;">bool ImGui_TreeNodeEx(const ? &in ptr_id, ImGuiTreeNodeFlags_ flags, const string &in label) // Note: label is not a format string, unlike in Dear ImGui. Use string concatenation instead</pre>
<pre style="white-space: pre-wrap;">bool ImGui_TreeNodeEx(const string &in label, int flags = 0); // bool ImGui_TreeNodeEx(const string &in label, ImGuiTreeNodeFlags_ flags = 0)</pre>
+
<pre style="white-space: pre-wrap;">bool ImGui_TreeNodeEx(const string &in label, ImGuiTreeNodeFlags_ flags = 0);</pre>
<pre style="white-space: pre-wrap;">bool ImGui_TreeNodeEx(const string &in str_id, int flags, const string &in label)// bool ImGui_TreeNodeEx(const string &in str_id, ImGuiTreeNodeFlags_ flags, const string &in label) - Note: label is not a format string, unlike in Dear ImGui. Use string concatenation instead</pre>
+
<pre style="white-space: pre-wrap;">bool ImGui_TreeNodeEx(const string &in str_id, ImGuiTreeNodeFlags_ flags, const string &in label) // Note: label is not a format string, unlike in Dear ImGui. Use string concatenation instead</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_TreePop();</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_TreePop();</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_TreePush();</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_TreePush();</pre>
Line 254: Line 462:
 
<pre style="white-space: pre-wrap;">void ImGui_TreePush(const string &in str_id);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_TreePush(const string &in str_id);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_Unindent(float indent_w = 0.0f);</pre>
 
<pre style="white-space: pre-wrap;">void ImGui_Unindent(float indent_w = 0.0f);</pre>
<pre style="white-space: pre-wrap;">bool IsValidSocketTCP(uint socket);</pre>
+
 
 +
=== File Access Functions ===
 +
'''None of these functions are available to be used in hotspot scripts'''
 +
<pre style="white-space: pre-wrap;">void AddFileString(const string &in);</pre>
 +
<pre style="white-space: pre-wrap;">string GetFileLine();</pre>
 
<pre style="white-space: pre-wrap;">bool LoadFile(const string &in);</pre>
 
<pre style="white-space: pre-wrap;">bool LoadFile(const string &in);</pre>
<pre style="white-space: pre-wrap;">IMImage@ ModGetThumbnailImage(ModID& sid);</pre>
 
<pre style="white-space: pre-wrap;">int SocketTCPSend(uint socket, const array<uint8>& data);</pre>
 
 
<pre style="white-space: pre-wrap;">void StartWriteFile();</pre>
 
<pre style="white-space: pre-wrap;">void StartWriteFile();</pre>
 
<pre style="white-space: pre-wrap;">bool WriteFile(const string &in);</pre>
 
<pre style="white-space: pre-wrap;">bool WriteFile(const string &in);</pre>
 
<pre style="white-space: pre-wrap;">bool WriteFileToWriteDir(const string &in);</pre>
 
<pre style="white-space: pre-wrap;">bool WriteFileToWriteDir(const string &in);</pre>
 +
 +
=== Network Functions ===
 +
Communicate over TCP network sockets with a remote server.
 +
 +
'''None of these functions are available to be used in hotspot scripts'''
 +
<pre style="white-space: pre-wrap;">uint CreateSocketTCP(string& host, uint16 port);  // Open a TCP socket to a remote server with the given host and port</pre>
 +
<pre style="white-space: pre-wrap;">void DestroySocketTCP(uint socket);  // Close a TCP socket that you previously opened with CreateSocketTCP</pre>
 +
<pre style="white-space: pre-wrap;">bool IsValidSocketTCP(uint socket);  // Verify that the TCP socket id you have is a valid and open</pre>
 +
<pre style="white-space: pre-wrap;">int SocketTCPSend(uint socket, const array<uint8>& data);  // Send data over a TCP socket that you have previously opened with CreateSocketTCP</pre>
 +
=== IMUI UI Functions ===
 +
'''THESE ARE DEPRECATED, PLEASE AVOID USING THEM'''
 +
 +
'''None of these functions are available to be used in hotspot scripts'''
 +
<pre style="white-space: pre-wrap;">int CreateIMUIContext();</pre>
 +
<pre style="white-space: pre-wrap;">void DisposeIMUIContext(int id);</pre>
 +
<pre style="white-space: pre-wrap;">IMUIContext@ GetIMUIContext(int id);</pre>
  
 
== Classes ==
 
== Classes ==
 
+
<pre style="white-space: pre-wrap;">class HUDImage;</pre>
 +
<pre style="white-space: pre-wrap;">class HUDImages;</pre>
 +
<pre style="white-space: pre-wrap;">class PlaceholderObject;</pre>
 +
<pre style="white-space: pre-wrap;">class SaveFile;</pre>
 +
<pre style="white-space: pre-wrap;">class SavedLevel;</pre>
 +
=== Not available in hotspot scripts ===
 
<pre style="white-space: pre-wrap;">class FontSetup;</pre>
 
<pre style="white-space: pre-wrap;">class FontSetup;</pre>
 
<pre style="white-space: pre-wrap;">class GUIState;</pre>
 
<pre style="white-space: pre-wrap;">class GUIState;</pre>
<pre style="white-space: pre-wrap;">class HUDImage;</pre>
 
<pre style="white-space: pre-wrap;">class HUDImages;</pre>
 
 
<pre style="white-space: pre-wrap;">class IMChangeImageFadeOutIn;</pre>
 
<pre style="white-space: pre-wrap;">class IMChangeImageFadeOutIn;</pre>
 
<pre style="white-space: pre-wrap;">class IMChangeTextFadeOutIn;</pre>
 
<pre style="white-space: pre-wrap;">class IMChangeTextFadeOutIn;</pre>
Line 293: Line 522:
 
<pre style="white-space: pre-wrap;">class IMText;</pre>
 
<pre style="white-space: pre-wrap;">class IMText;</pre>
 
<pre style="white-space: pre-wrap;">class IMTextSelectionList;</pre>
 
<pre style="white-space: pre-wrap;">class IMTextSelectionList;</pre>
<pre style="white-space: pre-wrap;">class IMUIContext;</pre>
 
<pre style="white-space: pre-wrap;">class IMUIImage;</pre>
 
<pre style="white-space: pre-wrap;">class IMUIText;</pre>
 
 
<pre style="white-space: pre-wrap;">class IMUpdateBehavior;</pre>
 
<pre style="white-space: pre-wrap;">class IMUpdateBehavior;</pre>
<pre style="white-space: pre-wrap;">class PlaceholderObject;</pre>
 
<pre style="white-space: pre-wrap;">class SaveFile;</pre>
 
 
<pre style="white-space: pre-wrap;">class SavedChunk;</pre>
 
<pre style="white-space: pre-wrap;">class SavedChunk;</pre>
<pre style="white-space: pre-wrap;">class SavedLevel;</pre>
 
 
<pre style="white-space: pre-wrap;">class ScreenMetrics;</pre>
 
<pre style="white-space: pre-wrap;">class ScreenMetrics;</pre>
 
<pre style="white-space: pre-wrap;">class SizePolicy;</pre>
 
<pre style="white-space: pre-wrap;">class SizePolicy;</pre>
 +
=== Deprecated ===
 +
'''All of these are deprecated types from our old custom UI library. Please do not use them!!'''
 +
<pre style="white-space: pre-wrap;">class IMUIContext;</pre>
 +
<pre style="white-space: pre-wrap;">class IMUIImage;</pre>
 +
<pre style="white-space: pre-wrap;">class IMUIText;</pre>

Latest revision as of 13:30, 6 December 2017

This is a list of the external code that is only available to be used inside a Level Script or Hotspot - variables, functions, and classes that "magically" exist.

Some code is not available to be used in a hotspot script, and will be marked below.

To see a list of external code that is available to all scripts, please see this page - Common Script External Code

This list is pulled from the ~/Documents/Wolfire/Overgrowth/aslevel_docs.h file. See Level Script Documentation (or Hotspot Script Documentation) to find out more about where this file is on your computer. That file is automatically generated by the game, so will always be up to date. This page is manually updated, so may be slightly out of date from time to time.

TODO: Document the rest of the classes. Can put basic docs on this page, and more extensive docs/tutorials on other pages if desired, and link to them.

Global Variables

HUDImages hud;  // Instance of the HUD image manager class, to overlay images on the game UI
SaveFile save_file;  // Instance of the SaveFile, for saving out custom data
float the_time;  // The current time in seconds since engine started (in-game time)
float time_step;  // Time in seconds between engine time steps
float ui_time;  // The current time in seconds since engine started (absolute time)

Not available in hotspot scripts

int imgui_text_input_CursorPos;  // Access to the current cursor position index in a field for the IMGUI UI (not Dear ImGui)
int imgui_text_input_SelectionEnd;  // Access to the current cursor selection index a field for the in IMGUI UI (not Dear ImGui)
int imgui_text_input_SelectionStart;  // Access to the current cursor selection index a field for the in IMGUI UI (not Dear ImGui)
ScreenMetrics screenMetrics;  // Access to set and calculate the GUI size vs the current screen size, and relative scale
uint SOCKET_ID_INVALID;  // A value to specify that the socket you got back is not valid

Constants

enum PlaceholderObjectType {
    kCamPreview,
    kPlayerConnect,
    kSpawn,
};

Not available in hotspot scripts

const float UNDEFINEDSIZE;
const int UNDEFINEDSIZEI;
enum ContainerAlignment {
    CATop,
    CALeft,
    CACenter,
    CARight,
    CABottom,
};
enum DividerOrientation {
    DOVertical,
    DOHorizontal,
};
enum ExpansionPolicy {
    ContainerExpansionStatic,
    ContainerExpansionExpand,
    ContainerExpansionInheritMax,
};
enum IMTweenType {
    linearTween,
    inQuadTween,
    outQuadTween,
    inOutQuadTween,
    outInQuadTween,
    inCubicTween,
    outCubicTween,
    inOutCubicTween,
    outInCubicTween,
    inQuartTween,
    outQuartTween,
    inOutQuartTween,
    outInQuartTween,
    inQuintTween,
    outQuintTween,
    inOutQuintTween,
    outInQuintTween,
    inSineTween,
    outSineTween,
    inOutSineTween,
    outInSineTween,
    inExpoTween,
    outExpoTween,
    inOutExpoTween,
    outInExpoTween,
    inCircTween,
    outCircTween,
    inOutCircTween,
    outInCircTween,
    outBounceTween,
    inBounceTween,
    inOutBounceTween,
    outInBounceTween,
};
enum ImGuiCol_ {
    ImGuiCol_Text,
    ImGuiCol_TextDisabled,
    ImGuiCol_WindowBg,
    ImGuiCol_ChildWindowBg,
    ImGuiCol_PopupBg,
    ImGuiCol_Border,
    ImGuiCol_BorderShadow,
    ImGuiCol_FrameBg,
    ImGuiCol_FrameBgHovered,
    ImGuiCol_FrameBgActive,
    ImGuiCol_TitleBg,
    ImGuiCol_TitleBgCollapsed,
    ImGuiCol_TitleBgActive,
    ImGuiCol_MenuBarBg,
    ImGuiCol_ScrollbarBg,
    ImGuiCol_ScrollbarGrab,
    ImGuiCol_ScrollbarGrabHovered,
    ImGuiCol_ScrollbarGrabActive,
    ImGuiCol_ComboBg,
    ImGuiCol_CheckMark,
    ImGuiCol_SliderGrab,
    ImGuiCol_SliderGrabActive,
    ImGuiCol_Button,
    ImGuiCol_ButtonHovered,
    ImGuiCol_ButtonActive,
    ImGuiCol_Header,
    ImGuiCol_HeaderHovered,
    ImGuiCol_HeaderActive,
    ImGuiCol_Column,
    ImGuiCol_ColumnHovered,
    ImGuiCol_ColumnActive,
    ImGuiCol_ResizeGrip,
    ImGuiCol_ResizeGripHovered,
    ImGuiCol_ResizeGripActive,
    ImGuiCol_CloseButton,
    ImGuiCol_CloseButtonHovered,
    ImGuiCol_CloseButtonActive,
    ImGuiCol_PlotLines,
    ImGuiCol_PlotLinesHovered,
    ImGuiCol_PlotHistogram,
    ImGuiCol_PlotHistogramHovered,
    ImGuiCol_TextSelectedBg,
    ImGuiCol_ModalWindowDarkening,
    ImGuiCol_COUNT,
};
enum ImGuiColorEditMode_ {
    ImGuiColorEditMode_UserSelect,
    ImGuiColorEditMode_UserSelectShowButton,
    ImGuiColorEditMode_RGB,
    ImGuiColorEditMode_HSV,
    ImGuiColorEditMode_HEX,
};
enum ImGuiInputTextFlags_ {
    ImGuiInputTextFlags_CharsDecimal,
    ImGuiInputTextFlags_CharsHexadecimal,
    ImGuiInputTextFlags_CharsUppercase,
    ImGuiInputTextFlags_CharsNoBlank,
    ImGuiInputTextFlags_AutoSelectAll,
    ImGuiInputTextFlags_EnterReturnsTrue,
    ImGuiInputTextFlags_CallbackCompletion,
    ImGuiInputTextFlags_CallbackHistory,
    ImGuiInputTextFlags_CallbackAlways,
    ImGuiInputTextFlags_CallbackCharFilter,
    ImGuiInputTextFlags_AllowTabInput,
    ImGuiInputTextFlags_CtrlEnterForNewLine,
    ImGuiInputTextFlags_NoHorizontalScroll,
    ImGuiInputTextFlags_AlwaysInsertMode,
    ImGuiInputTextFlags_ReadOnly,
    ImGuiInputTextFlags_Password,
};
enum ImGuiKey_ {
    ImGuiKey_Tab,
    ImGuiKey_LeftArrow,
    ImGuiKey_RightArrow,
    ImGuiKey_UpArrow,
    ImGuiKey_DownArrow,
    ImGuiKey_PageUp,
    ImGuiKey_PageDown,
    ImGuiKey_Home,
    ImGuiKey_End,
    ImGuiKey_Delete,
    ImGuiKey_Backspace,
    ImGuiKey_Enter,
    ImGuiKey_Escape,
    ImGuiKey_A,
    ImGuiKey_C,
    ImGuiKey_V,
    ImGuiKey_X,
    ImGuiKey_Y,
    ImGuiKey_Z,
    ImGuiKey_COUNT,
};
enum ImGuiSelectableFlags_ {
    ImGuiSelectableFlags_DontClosePopups,
    ImGuiSelectableFlags_SpanAllColumns,
    ImGuiSelectableFlags_AllowDoubleClick,
};
enum ImGuiSetCond_ {
    ImGuiSetCond_Always,
    ImGuiSetCond_Once,
    ImGuiSetCond_FirstUseEver,
    ImGuiSetCond_Appearing,
};
enum ImGuiStyleVar_ {
    ImGuiStyleVar_Alpha,
    ImGuiStyleVar_WindowPadding,
    ImGuiStyleVar_WindowRounding,
    ImGuiStyleVar_WindowMinSize,
    ImGuiStyleVar_ChildWindowRounding,
    ImGuiStyleVar_FramePadding,
    ImGuiStyleVar_FrameRounding,
    ImGuiStyleVar_ItemSpacing,
    ImGuiStyleVar_ItemInnerSpacing,
    ImGuiStyleVar_IndentSpacing,
    ImGuiStyleVar_GrabMinSize,
    ImGuiStyleVar_ButtonTextAlign,
    ImGuiStyleVar_Count_,
};
enum ImGuiTreeNodeFlags_ {
    ImGuiTreeNodeFlags_Selected,
    ImGuiTreeNodeFlags_Framed,
    ImGuiTreeNodeFlags_AllowOverlapMode,
    ImGuiTreeNodeFlags_NoTreePushOnOpen,
    ImGuiTreeNodeFlags_NoAutoOpenOnLog,
    ImGuiTreeNodeFlags_DefaultOpen,
    ImGuiTreeNodeFlags_OpenOnDoubleClick,
    ImGuiTreeNodeFlags_OpenOnArrow,
    ImGuiTreeNodeFlags_Leaf,
    ImGuiTreeNodeFlags_Bullet,
    ImGuiTreeNodeFlags_CollapsingHeader,
};
enum ImGuiWindowFlags_ {
    ImGuiWindowFlags_NoTitleBar,
    ImGuiWindowFlags_NoResize,
    ImGuiWindowFlags_NoMove,
    ImGuiWindowFlags_NoScrollbar,
    ImGuiWindowFlags_NoScrollWithMouse,
    ImGuiWindowFlags_NoCollapse,
    ImGuiWindowFlags_AlwaysAutoResize,
    ImGuiWindowFlags_ShowBorders,
    ImGuiWindowFlags_NoSavedSettings,
    ImGuiWindowFlags_NoInputs,
    ImGuiWindowFlags_MenuBar,
    ImGuiWindowFlags_HorizontalScrollbar,
    ImGuiWindowFlags_NoFocusOnAppearing,
    ImGuiWindowFlags_NoBringToFrontOnFocus,
    ImGuiWindowFlags_AlwaysVerticalScrollbar,
    ImGuiWindowFlags_AlwaysHorizontalScrollbar,
    ImGuiWindowFlags_AlwaysUseWindowPadding,
};

Deprecated

These types are deprecated from an older version of our custom UI library. Do not use them!!

enum TextFlags;
enum UIMouseState;
enum UIState;

Global Functions

IMGUI UI Functions

Note: This is not the same at all as Dear ImGui. This is used to create more customized UI, as seen in the pause menu.

None of these functions are available to be used in hotspot scripts

IMGUI@ CreateIMGUI();
vec4 HexColor(const string &in hex);
IMImage@ ModGetThumbnailImage(ModID& sid);

Dear ImGui Functions

These functions expose the Dear ImGui library that is integrated into the Phoenix engine.

For a little more documentation on Dear ImGui functions, see this page - https://github.com/ocornut/imgui/blob/master/imgui.h

None of these functions are available to be used in hotspot scripts

string GetUserPickedReadPath(const string &in suffix, const string &in default_path);
string GetUserPickedWritePath(const string &in suffix, const string &in default_path);
void ImGui_AlignFirstTextHeightToWidgets();
bool ImGui_Begin(const string &in name, bool &inout is_open, ImGuiWindowFlags flags = 0);
bool ImGui_Begin(const string &in name, ImGuiWindowFlags flags = 0);
bool ImGui_BeginChild(const string &in str_id, const vec2 &in size = vec2(0, 0), bool border = false, ImGuiWindowFlags extra_flags = 0);
bool ImGui_BeginChild(uint id, const vec2 &in size = vec2(0, 0), bool border = false, ImGuiWindowFlags extra_flags = 0);
bool ImGui_BeginChildFrame(uint id, const vec2 &in size, ImGuiWindowFlags extra_flags = 0);
void ImGui_BeginGroup();
bool ImGui_BeginMenu(const string &in label, bool enabled = true);
bool ImGui_BeginMenuBar();
bool ImGui_BeginPopup(const string &in popup_id);
bool ImGui_BeginPopupContextItem(const string &in popup_id, int mouse_button = 1);
bool ImGui_BeginPopupContextVoid(const string &in popup_id, int mouse_button = 1);
bool ImGui_BeginPopupContextVoid(int mouse_button = 1);
bool ImGui_BeginPopupContextWindow(bool also_over_items = true, int mouse_button = 1);
bool ImGui_BeginPopupContextWindow(bool also_over_items, const string &in popup_id, int mouse_button = 1);
bool ImGui_BeginPopupModal(const string &in name, bool &inout is_open, ImGuiWindowFlags extra_flags = 0);
bool ImGui_BeginPopupModal(const string &in name, ImGuiWindowFlags extra_flags = 0);
void ImGui_Bullet();
void ImGui_BulletText(const string &in label);  // Note: label is not a format string, unlike in Dear ImGui. Use string concatenation instead
bool ImGui_Button(const string &in, const vec2 &in size = vec2(0, 0));
vec2 ImGui_CalcItemRectClosestPoint(const vec2 &in pos, bool on_edge = false, float outward = 0.0f);
void ImGui_CalcListClipping(int items_count, float items_height, int &out out_items_display_start, int &out out_items_display_end);
vec2 ImGui_CalcTextSize(const string &in text, bool hide_text_after_double_hash = false, float wrap_width = -1.0f);
void ImGui_CaptureKeyboardFromApp(bool capture = true);
void ImGui_CaptureMouseFromApp(bool capture = true);
bool ImGui_Checkbox(const string &in label, bool &inout value);
bool ImGui_CheckboxFlags(const string &in label, uint &inout flags, uint flags_value);
void ImGui_CloseCurrentPopup();
bool ImGui_CollapsingHeader(const string &in label, bool &inout is_open, ImGuiTreeNodeFlags flags = 0);
bool ImGui_CollapsingHeader(const string &in label, ImGuiTreeNodeFlags flags = 0);
bool ImGui_ColorButton(const vec4 &in col, bool small_height = false, bool outline_border = true);
uint ImGui_ColorConvertFloat4ToU32(const vec4 &in value);
void ImGui_ColorConvertHSVtoRGB(float h, float s, float v, float &out out_r, float &out out_g, float &out out_b);
void ImGui_ColorConvertRGBtoHSV(float r, float g, float b, float &out out_h, float &out out_s, float &out out_v);
vec4 ImGui_ColorConvertU32ToFloat4(uint value);
bool ImGui_ColorEdit3(const string &in label, vec3 &inout color);
bool ImGui_ColorEdit4(const string &in label, vec4 &inout color, bool show_alpha = true);
void ImGui_ColorEditMode(ImGuiColorEditMode mode);
bool ImGui_Columns(int count = 1, bool border = true);
bool ImGui_Columns(int count, const string &in id, bool border = true);
bool ImGui_Combo(const string &in label, int &inout current_item, const array<string> &in items, int height_in_items = -1);
bool ImGui_Combo(const string &in label, int &inout current_item, const string &in items_separated_by_zeros, int height_in_items = -1);
bool ImGui_DragFloat(const string &in label, float &inout value, float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const string &in display_format = "%.3f", float power = 1.0f);
bool ImGui_DragFloat2(const string &in label, vec2 &inout value, float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const string &in display_format = "%.3f", float power = 1.0f);
bool ImGui_DragFloat3(const string &in label, vec3 &inout value, float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const string &in display_format = "%.3f", float power = 1.0f);
bool ImGui_DragFloat4(const string &in label, vec4 &inout value, float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const string &in display_format = "%.3f", float power = 1.0f);
bool ImGui_DragInt(const string &in label, int &inout value, float v_speed = 1.0f, int v_min = 0, int v_max = 0, const string &in display_format = "%.0f");
void ImGui_DrawSettings();
void ImGui_Dummy(const vec2 &in size);
void ImGui_End();
void ImGui_EndChild();
void ImGui_EndChildFrame();
void ImGui_EndGroup();
void ImGui_EndMenu();
void ImGui_EndMenuBar();
void ImGui_EndPopup();
int ImGui_GetColumnIndex();
float ImGui_GetColumnOffset(int column_index = -1);
float ImGui_GetColumnWidth(int column_index = -1);
int ImGui_GetColumnsCount();
vec2 ImGui_GetContentRegionAvail();
float ImGui_GetContentRegionAvailWidth();
vec2 ImGui_GetContentRegionMax();
vec2 ImGui_GetCursorPos();
float ImGui_GetCursorPosX();
float ImGui_GetCursorPosY();
vec2 ImGui_GetCursorScreenPos();
vec2 ImGui_GetCursorStartPos();
int ImGui_GetFrameCount();
vec2 ImGui_GetItemRectMax();
vec2 ImGui_GetItemRectMin();
vec2 ImGui_GetItemRectSize();
float ImGui_GetItemsLineHeightWithSpacing();
int ImGui_GetKeyIndex(ImGuiKey key);
ImGuiMouseCursor ImGui_GetMouseCursor();
vec2 ImGui_GetMouseDragDelta(int button = 0, float lock_threshold = -1.0f);
vec2 ImGui_GetMousePos();
vec2 ImGui_GetMousePosOnOpeningCurrentPopup();
float ImGui_GetScrollMaxX();
float ImGui_GetScrollMaxY();
float ImGui_GetScrollX();
float ImGui_GetScrollY();
string ImGui_GetStyleColName(ImGuiCol idx);
string ImGui_GetTextBuf();
float ImGui_GetTextLineHeight();
float ImGui_GetTextLineHeightWithSpacing();
float ImGui_GetTime();
float ImGui_GetTreeNodeToLabelSpacing();
vec2 ImGui_GetWindowContentRegionMax();
vec2 ImGui_GetWindowContentRegionMin();
float ImGui_GetWindowContentRegionWidth();
float ImGui_GetWindowHeight();
vec2 ImGui_GetWindowPos();
vec2 ImGui_GetWindowSize();
float ImGui_GetWindowWidth();
void ImGui_Indent(float indent_w = 0.0f);
bool ImGui_InputFloat(const string &in label, float &inout value, float step = 0.0f, float step_fast = 0.0f, int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0);
bool ImGui_InputFloat2(const string &in label, vec2 &inout value, int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0);
bool ImGui_InputFloat3(const string &in label, vec3 &inout value, int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0);
bool ImGui_InputFloat4(const string &in label, vec4 &inout value, int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0);
bool ImGui_InputInt(const string &in label, int &inout value, int step = 1, int step_fast = 100, ImGuiInputTextFlags extra_flags = 0);
bool ImGui_InputText(const string &in label, ImGuiInputTextFlags flags = 0);
bool ImGui_InputTextMultiline(const string &in label, const vec2 &in size = vec2(0, 0), ImGuiInputTextFlags flags = 0);
bool ImGui_InvisibleButton(const string &in str_id, const vec2 &in size);
bool ImGui_IsAnyItemActive();
bool ImGui_IsAnyItemHovered();
bool ImGui_IsItemActive();
bool ImGui_IsItemClicked(int mouse_button = 0);
bool ImGui_IsItemHovered();
bool ImGui_IsItemHoveredRect();
bool ImGui_IsItemVisible();
bool ImGui_IsKeyDown(int key_index);
bool ImGui_IsKeyPressed(int key_index, bool repeat = true);
bool ImGui_IsKeyReleased(int key_index);
bool ImGui_IsMouseClicked(int button, bool repeat = false);
bool ImGui_IsMouseDoubleClicked(int button);
bool ImGui_IsMouseDown(int button);
bool ImGui_IsMouseDragging(int button = 0, float lock_threshold = -1.0f);
bool ImGui_IsMouseHoveringAnyWindow();
bool ImGui_IsMouseHoveringRect(const vec2 &in r_min, const vec2 &in r_max, bool clip = true);
bool ImGui_IsMouseHoveringWindow();
bool ImGui_IsMouseReleased(int button);
bool ImGui_IsPosHoveringAnyWindow(const vec2 &in pos);
bool ImGui_IsRectVisible(const vec2 &in rect_min, const vec2 &in rect_max);
bool ImGui_IsRectVisible(const vec2 &in size);
bool ImGui_IsRootWindowFocused();
bool ImGui_IsRootWindowOrAnyChildFocused();
bool ImGui_IsRootWindowOrAnyChildHovered();
bool ImGui_IsWindowCollapsed();
bool ImGui_IsWindowFocused();
bool ImGui_IsWindowHovered();
void ImGui_LabelText(const string &in str, const string &in label);  // Note: label is not a format string, unlike in Dear ImGui. Use string concatenation instead
bool ImGui_ListBox(const string &in label, int &inout current_item, const array<string> &in items, int height_in_items = -1);
void ImGui_ListBoxFooter();
bool ImGui_ListBoxHeader(const string &in label);
bool ImGui_ListBoxHeader(const string &in label, const vec2 &in size);
bool ImGui_ListBoxHeader(const string &in label, int items_count, int height_in_items = -1);
bool ImGui_MenuItem(const string &in label, bool selected = false, bool enabled = true);
void ImGui_NewLine();
bool ImGui_NextColumn();
void ImGui_OpenPopup(const string &in popup_id);
void ImGui_PopItemWidth();
void ImGui_PopStyleColor(int count = 1);
void ImGui_PopStyleVar(int count = 1);
void ImGui_PushItemWidth(int item_width);
void ImGui_PushStyleColor(ImGuiCol idx, const vec4 &in col);
void ImGui_PushStyleVar(ImGuiStyleVar idx, float val);
void ImGui_PushStyleVar(ImGuiStyleVar idx, const vec2 &in val);
bool ImGui_RadioButton(const string &in label, bool active);
bool ImGui_RadioButton(const string &in label, int &inout value, int v_button);
void ImGui_ResetMouseDragDelta(int button = 0);
void ImGui_SameLine(float pos_x = 0.0, float spacing_w = -1.0);
ImGui_Selectable(const string &in label, bool selected = false, ImGuiSelectableFlags flags = 0, const vec2& size = vec2(0, 0));
void ImGui_Separator();
void ImGui_SetColumnOffset(int column_index, float offset_x);
void ImGui_SetCursorPos(const vec2 &in local_pos);
void ImGui_SetCursorPosX(float x);
void ImGui_SetCursorPosY(float y);
void ImGui_SetCursorScreenPos(const vec2 &in pos);
void ImGui_SetItemAllowOverlap();
void ImGui_SetKeyboardFocusHere(int offset = 0);
void ImGui_SetMouseCursor(ImGuiMouseCursor type);
void ImGui_SetNextTreeNodeOpen(bool is_open, ImGuiSetCond cond = 0);
void ImGui_SetNextWindowCollapsed(bool collapsed, ImGuiSetCond cond = 0);
void ImGui_SetNextWindowContentSize(const vec2 &in size);
void ImGui_SetNextWindowContentWidth(float width);
void ImGui_SetNextWindowFocus();
void ImGui_SetNextWindowPos(const vec2 &in pos, ImGuiSetCond cond = 0);
void ImGui_SetNextWindowPosCenter(ImGuiSetCond cond = 0);
void ImGui_SetNextWindowSize(const vec2 &in size, ImGuiSetCond cond = 0);
void ImGui_SetScrollFromPosY(float pos_y, float center_y_ratio = 0.5f);
void ImGui_SetScrollHere(float center_y_ratio = 0.5f);
void ImGui_SetScrollX(float scroll_x);
void ImGui_SetScrollY(float scroll_y);
void ImGui_SetTextBuf(const string &in value);
void ImGui_SetWindowCollapsed(bool collapsed, ImGuiSetCond cond = 0);
void ImGui_SetWindowCollapsed(const string &in name, bool collapsed, ImGuiSetCond cond = 0);
void ImGui_SetWindowFocus();
void ImGui_SetWindowFocus(const string &in name);
void ImGui_SetWindowFontScale(float scale);
void ImGui_SetWindowPos(const string &in name, const vec2 &in pos, ImGuiSetCond cond = 0);
void ImGui_SetWindowPos(const vec2 &in pos, ImGuiSetCond cond = 0);
void ImGui_SetWindowSize(const string &in name, const vec2 &in size, ImGuiSetCond cond = 0);
void ImGui_SetWindowSize(const vec2 &in size, ImGuiSetCond cond = 0);
bool ImGui_SmallButton(const string &in label);
void ImGui_Spacing();
void ImGui_Text(const string &in label);  // Note: label is not a format string, unlike in Dear ImGui. Use string concatenation instead
void ImGui_TextColored(const vec4 &in color, const string &in label);  // Note: label is not a format string, unlike in Dear ImGui. Use string concatenation instead
void ImGui_TextDisabled(const string &in label);  // Note: label is not a format string, unlike in Dear ImGui. Use string concatenation instead
void ImGui_TextWrapped(const string &in label);  // Note: label is not a format string, unlike in Dear ImGui. Use string concatenation instead
void ImGui_TreeAdvanceToLabelPos();
bool ImGui_TreeNode(const ? &in ptr_id, const string &in label);  // Note: label is not a format string, unlike in Dear ImGui. Use string concatenation instead
bool ImGui_TreeNode(const string &in label);
bool ImGui_TreeNode(const string &in str_id, const string &in label);  // Note: label is not a format string, unlike in Dear ImGui. Use string concatenation instead
bool ImGui_TreeNodeEx(const ? &in ptr_id, ImGuiTreeNodeFlags_ flags, const string &in label) // Note: label is not a format string, unlike in Dear ImGui. Use string concatenation instead
bool ImGui_TreeNodeEx(const string &in label, ImGuiTreeNodeFlags_ flags = 0);
bool ImGui_TreeNodeEx(const string &in str_id, ImGuiTreeNodeFlags_ flags, const string &in label) // Note: label is not a format string, unlike in Dear ImGui. Use string concatenation instead
void ImGui_TreePop();
void ImGui_TreePush();
void ImGui_TreePush(const ? &in ptr_id);
void ImGui_TreePush(const string &in str_id);
void ImGui_Unindent(float indent_w = 0.0f);

File Access Functions

None of these functions are available to be used in hotspot scripts

void AddFileString(const string &in);
string GetFileLine();
bool LoadFile(const string &in);
void StartWriteFile();
bool WriteFile(const string &in);
bool WriteFileToWriteDir(const string &in);

Network Functions

Communicate over TCP network sockets with a remote server.

None of these functions are available to be used in hotspot scripts

uint CreateSocketTCP(string& host, uint16 port);  // Open a TCP socket to a remote server with the given host and port
void DestroySocketTCP(uint socket);  // Close a TCP socket that you previously opened with CreateSocketTCP
bool IsValidSocketTCP(uint socket);  // Verify that the TCP socket id you have is a valid and open
int SocketTCPSend(uint socket, const array<uint8>& data);  // Send data over a TCP socket that you have previously opened with CreateSocketTCP

IMUI UI Functions

THESE ARE DEPRECATED, PLEASE AVOID USING THEM

None of these functions are available to be used in hotspot scripts

int CreateIMUIContext();
void DisposeIMUIContext(int id);
IMUIContext@ GetIMUIContext(int id);

Classes

class HUDImage;
class HUDImages;
class PlaceholderObject;
class SaveFile;
class SavedLevel;

Not available in hotspot scripts

class FontSetup;
class GUIState;
class IMChangeImageFadeOutIn;
class IMChangeTextFadeOutIn;
class IMContainer;
class IMDivider;
class IMElement;
class IMFadeIn;
class IMFixedMessageOnClick;
class IMFixedMessageOnMouseOver;
class IMGUI;
class IMImage;
class IMMessage;
class IMMouseClickBehavior;
class IMMouseOverBehavior;
class IMMouseOverMove;
class IMMouseOverPulseBorder;
class IMMouseOverPulseBorderAlpha;
class IMMouseOverPulseColor;
class IMMouseOverScale;
class IMMouseOverShowBorder;
class IMMoveIn;
class IMPulseAlpha;
class IMPulseBorderAlpha;
class IMSpacer;
class IMText;
class IMTextSelectionList;
class IMUpdateBehavior;
class SavedChunk;
class ScreenMetrics;
class SizePolicy;

Deprecated

All of these are deprecated types from our old custom UI library. Please do not use them!!

class IMUIContext;
class IMUIImage;
class IMUIText;