mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-16 11:06:06 -04:00
start rewriting overlays
This commit is contained in:
parent
242ffea6e2
commit
bb4d963a70
16
src/Gui.c
16
src/Gui.c
@ -125,7 +125,7 @@ static void Gui_LoadOptions(void) {
|
|||||||
Gui_ShowFPS = Options_GetBool(OPT_SHOW_FPS, true);
|
Gui_ShowFPS = Options_GetBool(OPT_SHOW_FPS, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Gui_FontChanged(void* obj) { Gui_Refresh(); }
|
static void Gui_FontChanged(void* obj) { Gui_RefreshAll(); }
|
||||||
|
|
||||||
static void Gui_FileChanged(void* obj, struct Stream* stream, const String* name) {
|
static void Gui_FileChanged(void* obj, struct Stream* stream, const String* name) {
|
||||||
if (String_CaselessEqualsConst(name, "gui.png")) {
|
if (String_CaselessEqualsConst(name, "gui.png")) {
|
||||||
@ -209,7 +209,7 @@ void Gui_SetActive(struct Screen* screen) {
|
|||||||
Camera_CheckFocus();
|
Camera_CheckFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Gui_Refresh(void) {
|
void Gui_RefreshAll(void) {
|
||||||
Gui_ContextLost(NULL);
|
Gui_ContextLost(NULL);
|
||||||
Gui_ContextRecreated(NULL);
|
Gui_ContextRecreated(NULL);
|
||||||
}
|
}
|
||||||
@ -312,18 +312,6 @@ struct Screen* Gui_GetClosable(void) {
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Gui_ShowOverlay(struct Screen* screen) {
|
|
||||||
if (Gui_OverlaysCount == GUI_MAX_OVERLAYS) {
|
|
||||||
Logger_Abort("Gui_ShowOverlay - hit max count");
|
|
||||||
}
|
|
||||||
|
|
||||||
Gui_Overlays[Gui_OverlaysCount] = screen;
|
|
||||||
Gui_OverlaysCount++;
|
|
||||||
|
|
||||||
Elem_Init(screen);
|
|
||||||
Camera_CheckFocus();
|
|
||||||
}
|
|
||||||
|
|
||||||
int Gui_IndexOverlay(const void* screen) {
|
int Gui_IndexOverlay(const void* screen) {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -159,9 +159,8 @@ struct Screen* Gui_GetBlocksWorld(void);
|
|||||||
/* Returns highest priority screen that is closable. */
|
/* Returns highest priority screen that is closable. */
|
||||||
struct Screen* Gui_GetClosable(void);
|
struct Screen* Gui_GetClosable(void);
|
||||||
|
|
||||||
void Gui_Refresh(void);
|
void Gui_RefreshAll(void);
|
||||||
void Gui_RefreshHud(void);
|
void Gui_RefreshHud(void);
|
||||||
void Gui_ShowOverlay(struct Screen* screen);
|
|
||||||
/* Returns index of the given screen in the overlays list, -1 if not */
|
/* Returns index of the given screen in the overlays list, -1 if not */
|
||||||
int Gui_IndexOverlay(const void* screen);
|
int Gui_IndexOverlay(const void* screen);
|
||||||
/* Removes given screen from the overlays list */
|
/* Removes given screen from the overlays list */
|
||||||
|
@ -173,7 +173,7 @@ static bool InputHandler_HandleNonClassicKey(Key key) {
|
|||||||
}
|
}
|
||||||
} else if (key == KeyBinds[KEYBIND_IDOVERLAY]) {
|
} else if (key == KeyBinds[KEYBIND_IDOVERLAY]) {
|
||||||
if (Gui_OverlaysCount) return true;
|
if (Gui_OverlaysCount) return true;
|
||||||
Gui_ShowOverlay(TexIdsOverlay_MakeInstance());
|
TexIdsOverlay_Show();
|
||||||
} else if (key == KeyBinds[KEYBIND_BREAK_LIQUIDS]) {
|
} else if (key == KeyBinds[KEYBIND_BREAK_LIQUIDS]) {
|
||||||
InputHandler_Toggle(key, &Game_BreakableLiquids,
|
InputHandler_Toggle(key, &Game_BreakableLiquids,
|
||||||
" &eBreakable liquids is &aenabled",
|
" &eBreakable liquids is &aenabled",
|
||||||
|
93
src/Menus.c
93
src/Menus.c
@ -44,25 +44,6 @@ struct MenuOptionDesc {
|
|||||||
};
|
};
|
||||||
struct SimpleButtonDesc { int x, y; const char* title; Widget_LeftClick onClick; };
|
struct SimpleButtonDesc { int x, y; const char* title; Widget_LeftClick onClick; };
|
||||||
|
|
||||||
struct UrlWarningOverlay {
|
|
||||||
MenuScreen_Layout
|
|
||||||
bool openingUrl;
|
|
||||||
String url;
|
|
||||||
struct ButtonWidget buttons[2];
|
|
||||||
struct TextWidget labels[4];
|
|
||||||
char _urlBuffer[STRING_SIZE * 4];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct TexPackOverlay {
|
|
||||||
MenuScreen_Layout
|
|
||||||
bool showingDeny, alwaysDeny;
|
|
||||||
uint32_t contentLength;
|
|
||||||
String identifier;
|
|
||||||
struct ButtonWidget buttons[4];
|
|
||||||
struct TextWidget labels[4];
|
|
||||||
char _identifierBuffer[STRING_SIZE + 4];
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/*########################################################################################################################*
|
/*########################################################################################################################*
|
||||||
*--------------------------------------------------------Menu base--------------------------------------------------------*
|
*--------------------------------------------------------Menu base--------------------------------------------------------*
|
||||||
@ -98,6 +79,21 @@ static void Menu_Back(void* s, int i, struct ButtonWidget* btn, const char* labe
|
|||||||
Menu_Button(s, i, btn, width, &msg, font, onClick, ANCHOR_CENTRE, ANCHOR_MAX, 0, 25);
|
Menu_Button(s, i, btn, width, &msg, font, onClick, ANCHOR_CENTRE, ANCHOR_MAX, 0, 25);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CC_NOINLINE static void Menu_MakeBack(struct ButtonWidget* btn, Widget_LeftClick onClick) {
|
||||||
|
int width = Gui_ClassicMenu ? 400 : 200;
|
||||||
|
ButtonWidget_Make(btn, width, onClick);
|
||||||
|
Widget_SetLocation(btn, ANCHOR_CENTRE, ANCHOR_MAX, 0, 25);
|
||||||
|
}
|
||||||
|
|
||||||
|
CC_NOINLINE static void Menu_MakeTitleFont(FontDesc* font) {
|
||||||
|
Drawer2D_MakeFont(font, 16, FONT_STYLE_BOLD);
|
||||||
|
}
|
||||||
|
|
||||||
|
CC_NOINLINE static void Menu_MakeBodyFont(FontDesc* font) {
|
||||||
|
Drawer2D_MakeFont(font, 16, FONT_STYLE_NORMAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void Menu_ContextLost(void* screen) {
|
static void Menu_ContextLost(void* screen) {
|
||||||
struct Menu* s = (struct Menu*)screen;
|
struct Menu* s = (struct Menu*)screen;
|
||||||
struct Widget** widgets = s->widgets;
|
struct Widget** widgets = s->widgets;
|
||||||
@ -122,7 +118,7 @@ static void Menu_OnResize(void* screen) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Menu_Render(void* screen, double delta) {
|
static void Menu_RenderWidgets(void* screen, double delta) {
|
||||||
struct Menu* s = (struct Menu*)screen;
|
struct Menu* s = (struct Menu*)screen;
|
||||||
struct Widget** widgets = s->widgets;
|
struct Widget** widgets = s->widgets;
|
||||||
int i;
|
int i;
|
||||||
@ -229,7 +225,7 @@ static float Menu_Float(const String* str) { float v; Convert_ParseFloat(st
|
|||||||
static PackedCol Menu_HexCol(const String* str) { PackedCol v; PackedCol_TryParseHex(str, &v); return v; }
|
static PackedCol Menu_HexCol(const String* str) { PackedCol v; PackedCol_TryParseHex(str, &v); return v; }
|
||||||
#define Menu_ReplaceActive(screen) Gui_FreeActive(); Gui_SetActive(screen);
|
#define Menu_ReplaceActive(screen) Gui_FreeActive(); Gui_SetActive(screen);
|
||||||
|
|
||||||
static void Menu_SwitchOptions(void* a, void* b) { Menu_ReplaceActive(OptionsGroupScreen_MakeInstance()); }
|
static void Menu_SwitchOptions(void* a, void* b) { OptionsGroupScreen_Show(); }
|
||||||
static void Menu_SwitchPause(void* a, void* b) { PauseScreen_Show(); }
|
static void Menu_SwitchPause(void* a, void* b) { PauseScreen_Show(); }
|
||||||
static void Menu_SwitchClassicOptions(void* a, void* b) { Menu_ReplaceActive(ClassicOptionsScreen_MakeInstance()); }
|
static void Menu_SwitchClassicOptions(void* a, void* b) { Menu_ReplaceActive(ClassicOptionsScreen_MakeInstance()); }
|
||||||
|
|
||||||
@ -352,8 +348,7 @@ static void ListScreen_ContextRecreated(void* screen) {
|
|||||||
ButtonWidget_SetConst(&s->left, "<", &s->font);
|
ButtonWidget_SetConst(&s->left, "<", &s->font);
|
||||||
ButtonWidget_SetConst(&s->right, ">", &s->font);
|
ButtonWidget_SetConst(&s->right, ">", &s->font);
|
||||||
TextWidget_SetConst(&s->title, s->titleText, &s->font);
|
TextWidget_SetConst(&s->title, s->titleText, &s->font);
|
||||||
|
ButtonWidget_SetConst(&s->done, "Done", &s->font);
|
||||||
Menu_Back(s, 7, &s->buttons[7], "Done", &s->font, Menu_SwitchPause);
|
|
||||||
ListScreen_UpdatePage(s);
|
ListScreen_UpdatePage(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -420,20 +415,21 @@ static void ListScreen_Init(void* screen) {
|
|||||||
ButtonWidget_Make(&s->right, 40, ListScreen_MoveForwards);
|
ButtonWidget_Make(&s->right, 40, ListScreen_MoveForwards);
|
||||||
TextWidget_Make(&s->title);
|
TextWidget_Make(&s->title);
|
||||||
TextWidget_Make(&s->page);
|
TextWidget_Make(&s->page);
|
||||||
|
Menu_MakeBack(&s->done, Menu_SwitchPause);
|
||||||
|
|
||||||
Widget_SetLocation(&s->left, ANCHOR_CENTRE, ANCHOR_CENTRE, -220, 0);
|
Widget_SetLocation(&s->left, ANCHOR_CENTRE, ANCHOR_CENTRE, -220, 0);
|
||||||
Widget_SetLocation(&s->right, ANCHOR_CENTRE, ANCHOR_CENTRE, 220, 0);
|
Widget_SetLocation(&s->right, ANCHOR_CENTRE, ANCHOR_CENTRE, 220, 0);
|
||||||
Widget_SetLocation(&s->title, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, -155);
|
Widget_SetLocation(&s->title, ANCHOR_CENTRE, ANCHOR_CENTRE, 0, -155);
|
||||||
Widget_SetLocation(&s->page, ANCHOR_CENTRE, ANCHOR_MAX, 0, 75);
|
Widget_SetLocation(&s->page, ANCHOR_CENTRE, ANCHOR_MAX, 0, 75);
|
||||||
|
|
||||||
Drawer2D_MakeFont(&s->font, 16, FONT_STYLE_BOLD);
|
Menu_MakeTitleFont(&s->font);
|
||||||
s->LoadEntries(s);
|
s->LoadEntries(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ListScreen_Render(void* screen, double delta) {
|
static void ListScreen_Render(void* screen, double delta) {
|
||||||
Menu_RenderBounds();
|
Menu_RenderBounds();
|
||||||
Gfx_SetTexturing(true);
|
Gfx_SetTexturing(true);
|
||||||
Menu_Render(screen, delta);
|
Menu_RenderWidgets(screen, delta);
|
||||||
Gfx_SetTexturing(false);
|
Gfx_SetTexturing(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -499,7 +495,7 @@ static void MenuScreen_Init(void* screen) {
|
|||||||
static void MenuScreen_Render(void* screen, double delta) {
|
static void MenuScreen_Render(void* screen, double delta) {
|
||||||
Menu_RenderBounds();
|
Menu_RenderBounds();
|
||||||
Gfx_SetTexturing(true);
|
Gfx_SetTexturing(true);
|
||||||
Menu_Render(screen, delta);
|
Menu_RenderWidgets(screen, delta);
|
||||||
Gfx_SetTexturing(false);
|
Gfx_SetTexturing(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -703,7 +699,7 @@ static struct ScreenVTABLE OptionsGroupScreen_VTABLE = {
|
|||||||
Menu_MouseDown, Menu_MouseUp, OptionsGroupScreen_MouseMove, MenuScreen_MouseScroll,
|
Menu_MouseDown, Menu_MouseUp, OptionsGroupScreen_MouseMove, MenuScreen_MouseScroll,
|
||||||
Menu_OnResize, Menu_ContextLost, OptionsGroupScreen_ContextRecreated,
|
Menu_OnResize, Menu_ContextLost, OptionsGroupScreen_ContextRecreated,
|
||||||
};
|
};
|
||||||
struct Screen* OptionsGroupScreen_MakeInstance(void) {
|
void OptionsGroupScreen_Show(void) {
|
||||||
static struct Widget* widgets[9];
|
static struct Widget* widgets[9];
|
||||||
struct OptionsGroupScreen* s = &OptionsGroupScreen_Instance;
|
struct OptionsGroupScreen* s = &OptionsGroupScreen_Instance;
|
||||||
|
|
||||||
@ -714,7 +710,7 @@ struct Screen* OptionsGroupScreen_MakeInstance(void) {
|
|||||||
|
|
||||||
s->VTABLE = &OptionsGroupScreen_VTABLE;
|
s->VTABLE = &OptionsGroupScreen_VTABLE;
|
||||||
s->selectedI = -1;
|
s->selectedI = -1;
|
||||||
return (struct Screen*)s;
|
Gui_Replace((struct Screen*)s, GUI_PRIORITY_MENU);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2876,6 +2872,7 @@ static bool WarningOverlay_IsAlways(void* screen, void* w) { return Menu_Index(s
|
|||||||
*#########################################################################################################################*/
|
*#########################################################################################################################*/
|
||||||
#define TEXID_OVERLAY_MAX_PER_PAGE (ATLAS2D_TILES_PER_ROW * ATLAS2D_TILES_PER_ROW)
|
#define TEXID_OVERLAY_MAX_PER_PAGE (ATLAS2D_TILES_PER_ROW * ATLAS2D_TILES_PER_ROW)
|
||||||
#define TEXID_OVERLAY_VERTICES_COUNT (TEXID_OVERLAY_MAX_PER_PAGE * 4)
|
#define TEXID_OVERLAY_VERTICES_COUNT (TEXID_OVERLAY_MAX_PER_PAGE * 4)
|
||||||
|
|
||||||
static struct TexIdsOverlay {
|
static struct TexIdsOverlay {
|
||||||
MenuScreen_Layout
|
MenuScreen_Layout
|
||||||
GfxResourceID dynamicVb;
|
GfxResourceID dynamicVb;
|
||||||
@ -2987,7 +2984,7 @@ static void TexIdsOverlay_Render(void* screen, double delta) {
|
|||||||
Menu_RenderBounds();
|
Menu_RenderBounds();
|
||||||
Gfx_SetTexturing(true);
|
Gfx_SetTexturing(true);
|
||||||
Gfx_SetVertexFormat(VERTEX_FORMAT_P3FT2FC4B);
|
Gfx_SetVertexFormat(VERTEX_FORMAT_P3FT2FC4B);
|
||||||
Menu_Render(s, delta);
|
Menu_RenderWidgets(s, delta);
|
||||||
|
|
||||||
origXOffset = s->xOffset;
|
origXOffset = s->xOffset;
|
||||||
s->baseTexLoc = 0;
|
s->baseTexLoc = 0;
|
||||||
@ -3019,7 +3016,7 @@ static struct ScreenVTABLE TexIdsOverlay_VTABLE = {
|
|||||||
Menu_MouseDown, Menu_MouseUp, Menu_MouseMove, MenuScreen_MouseScroll,
|
Menu_MouseDown, Menu_MouseUp, Menu_MouseMove, MenuScreen_MouseScroll,
|
||||||
Menu_OnResize, TexIdsOverlay_ContextLost, TexIdsOverlay_ContextRecreated,
|
Menu_OnResize, TexIdsOverlay_ContextLost, TexIdsOverlay_ContextRecreated,
|
||||||
};
|
};
|
||||||
struct Screen* TexIdsOverlay_MakeInstance(void) {
|
void TexIdsOverlay_Show(void) {
|
||||||
static struct Widget* widgets[1];
|
static struct Widget* widgets[1];
|
||||||
struct TexIdsOverlay* s = &TexIdsOverlay_Instance;
|
struct TexIdsOverlay* s = &TexIdsOverlay_Instance;
|
||||||
|
|
||||||
@ -3029,14 +3026,22 @@ struct Screen* TexIdsOverlay_MakeInstance(void) {
|
|||||||
s->widgetsCount = Array_Elems(widgets);
|
s->widgetsCount = Array_Elems(widgets);
|
||||||
|
|
||||||
s->VTABLE = &TexIdsOverlay_VTABLE;
|
s->VTABLE = &TexIdsOverlay_VTABLE;
|
||||||
return (struct Screen*)s;
|
Gui_Replace((struct Screen*)s, GUI_PRIORITY_TEXIDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*########################################################################################################################*
|
/*########################################################################################################################*
|
||||||
*----------------------------------------------------UrlWarningOverlay----------------------------------------------------*
|
*----------------------------------------------------UrlWarningOverlay----------------------------------------------------*
|
||||||
*#########################################################################################################################*/
|
*#########################################################################################################################*/
|
||||||
static struct UrlWarningOverlay UrlWarningOverlay_Instance;
|
static struct UrlWarningOverlay {
|
||||||
|
MenuScreen_Layout
|
||||||
|
bool openingUrl;
|
||||||
|
String url;
|
||||||
|
struct ButtonWidget buttons[2];
|
||||||
|
struct TextWidget labels[4];
|
||||||
|
char _urlBuffer[STRING_SIZE * 4];
|
||||||
|
} UrlWarningOverlay_Instance;
|
||||||
|
|
||||||
static void UrlWarningOverlay_OpenUrl(void* screen, void* b) {
|
static void UrlWarningOverlay_OpenUrl(void* screen, void* b) {
|
||||||
struct UrlWarningOverlay* s = (struct UrlWarningOverlay*)screen;
|
struct UrlWarningOverlay* s = (struct UrlWarningOverlay*)screen;
|
||||||
if (s->openingUrl) return;
|
if (s->openingUrl) return;
|
||||||
@ -3080,7 +3085,7 @@ static struct ScreenVTABLE UrlWarningOverlay_VTABLE = {
|
|||||||
Menu_MouseDown, Menu_MouseUp, Menu_MouseMove, MenuScreen_MouseScroll,
|
Menu_MouseDown, Menu_MouseUp, Menu_MouseMove, MenuScreen_MouseScroll,
|
||||||
Menu_OnResize, Menu_ContextLost, UrlWarningOverlay_ContextRecreated,
|
Menu_OnResize, Menu_ContextLost, UrlWarningOverlay_ContextRecreated,
|
||||||
};
|
};
|
||||||
struct Screen* UrlWarningOverlay_MakeInstance(const String* url) {
|
void UrlWarningOverlay_Show(const String* url) {
|
||||||
static struct Widget* widgets[6];
|
static struct Widget* widgets[6];
|
||||||
struct UrlWarningOverlay* s = &UrlWarningOverlay_Instance;
|
struct UrlWarningOverlay* s = &UrlWarningOverlay_Instance;
|
||||||
|
|
||||||
@ -3093,14 +3098,23 @@ struct Screen* UrlWarningOverlay_MakeInstance(const String* url) {
|
|||||||
String_Copy(&s->url, url);
|
String_Copy(&s->url, url);
|
||||||
|
|
||||||
s->VTABLE = &UrlWarningOverlay_VTABLE;
|
s->VTABLE = &UrlWarningOverlay_VTABLE;
|
||||||
return (struct Screen*)s;
|
Gui_Replace((struct Screen*)s, GUI_PRIORITY_URLWARNING);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*########################################################################################################################*
|
/*########################################################################################################################*
|
||||||
*-----------------------------------------------------TexPackOverlay------------------------------------------------------*
|
*-----------------------------------------------------TexPackOverlay------------------------------------------------------*
|
||||||
*#########################################################################################################################*/
|
*#########################################################################################################################*/
|
||||||
static struct TexPackOverlay TexPackOverlay_Instance;
|
static struct TexPackOverlay {
|
||||||
|
MenuScreen_Layout
|
||||||
|
bool showingDeny, alwaysDeny;
|
||||||
|
uint32_t contentLength;
|
||||||
|
String identifier;
|
||||||
|
struct ButtonWidget buttons[4];
|
||||||
|
struct TextWidget labels[4];
|
||||||
|
char _identifierBuffer[STRING_SIZE + 4];
|
||||||
|
} TexPackOverlay_Instance;
|
||||||
|
|
||||||
static void TexPackOverlay_YesClick(void* screen, void* widget) {
|
static void TexPackOverlay_YesClick(void* screen, void* widget) {
|
||||||
struct TexPackOverlay* s = (struct TexPackOverlay*)screen;
|
struct TexPackOverlay* s = (struct TexPackOverlay*)screen;
|
||||||
String url = String_UNSAFE_SubstringAt(&s->identifier, 3);
|
String url = String_UNSAFE_SubstringAt(&s->identifier, 3);
|
||||||
@ -3217,15 +3231,10 @@ static struct ScreenVTABLE TexPackOverlay_VTABLE = {
|
|||||||
Menu_MouseDown, Menu_MouseUp, Menu_MouseMove, MenuScreen_MouseScroll,
|
Menu_MouseDown, Menu_MouseUp, Menu_MouseMove, MenuScreen_MouseScroll,
|
||||||
Menu_OnResize, Menu_ContextLost, TexPackOverlay_ContextRecreated,
|
Menu_OnResize, Menu_ContextLost, TexPackOverlay_ContextRecreated,
|
||||||
};
|
};
|
||||||
struct Screen* TexPackOverlay_MakeInstance(const String* url) {
|
void TexPackOverlay_Show(const String* url) {
|
||||||
static struct Widget* widgets[8];
|
static struct Widget* widgets[8];
|
||||||
struct TexPackOverlay* s = &TexPackOverlay_Instance;
|
struct TexPackOverlay* s = &TexPackOverlay_Instance;
|
||||||
|
|
||||||
/* If we are showing this texture pack overlay, completely free it first */
|
|
||||||
/* It doesn't matter anymore, because the new texture pack URL will always */
|
|
||||||
/* replace/override the old texture pack URL associated with that overlay */
|
|
||||||
if (Gui_IndexOverlay(s) >= 0) { Elem_Free(s); }
|
|
||||||
|
|
||||||
s->showingDeny = false;
|
s->showingDeny = false;
|
||||||
s->grabsInput = true;
|
s->grabsInput = true;
|
||||||
s->closable = true;
|
s->closable = true;
|
||||||
@ -3238,5 +3247,5 @@ struct Screen* TexPackOverlay_MakeInstance(const String* url) {
|
|||||||
|
|
||||||
Http_AsyncGetHeaders(url, true, &s->identifier);
|
Http_AsyncGetHeaders(url, true, &s->identifier);
|
||||||
s->VTABLE = &TexPackOverlay_VTABLE;
|
s->VTABLE = &TexPackOverlay_VTABLE;
|
||||||
return (struct Screen*)s;
|
Gui_Replace((struct Screen*)s, GUI_PRIORITY_TEXPACK);
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
struct Screen;
|
struct Screen;
|
||||||
|
|
||||||
void PauseScreen_Show(void);
|
void PauseScreen_Show(void);
|
||||||
struct Screen* OptionsGroupScreen_MakeInstance(void);
|
void OptionsGroupScreen_Show(void);
|
||||||
struct Screen* ClassicOptionsScreen_MakeInstance(void);
|
struct Screen* ClassicOptionsScreen_MakeInstance(void);
|
||||||
|
|
||||||
struct Screen* ClassicKeyBindingsScreen_MakeInstance(void);
|
struct Screen* ClassicKeyBindingsScreen_MakeInstance(void);
|
||||||
@ -33,7 +33,7 @@ struct Screen* HacksSettingsScreen_MakeInstance(void);
|
|||||||
struct Screen* EnvSettingsScreen_MakeInstance(void);
|
struct Screen* EnvSettingsScreen_MakeInstance(void);
|
||||||
struct Screen* NostalgiaScreen_MakeInstance(void);
|
struct Screen* NostalgiaScreen_MakeInstance(void);
|
||||||
|
|
||||||
struct Screen* UrlWarningOverlay_MakeInstance(const String* url);
|
void UrlWarningOverlay_Show(const String* url);
|
||||||
struct Screen* TexIdsOverlay_MakeInstance(void);
|
void TexIdsOverlay_Show(void);
|
||||||
struct Screen* TexPackOverlay_MakeInstance(const String* url);
|
void TexPackOverlay_Show(const String* url);
|
||||||
#endif
|
#endif
|
||||||
|
@ -1156,7 +1156,7 @@ static bool HUDScreen_MouseDown(void* screen, int x, int y, MouseButton btn) {
|
|||||||
if (!text.length) return false;
|
if (!text.length) return false;
|
||||||
|
|
||||||
if (Utils_IsUrlPrefix(&text)) {
|
if (Utils_IsUrlPrefix(&text)) {
|
||||||
Gui_ShowOverlay(UrlWarningOverlay_MakeInstance(&text));
|
UrlWarningOverlay_Show(&text);
|
||||||
} else if (Gui_ClickableChat) {
|
} else if (Gui_ClickableChat) {
|
||||||
InputWidget_AppendString(&s->input.base, &text);
|
InputWidget_AppendString(&s->input.base, &text);
|
||||||
}
|
}
|
||||||
|
@ -46,7 +46,7 @@ void Server_RetrieveTexturePack(const String* url) {
|
|||||||
if (!url->length || TextureCache_HasAccepted(url)) {
|
if (!url->length || TextureCache_HasAccepted(url)) {
|
||||||
World_ApplyTexturePack(url);
|
World_ApplyTexturePack(url);
|
||||||
} else {
|
} else {
|
||||||
Gui_ShowOverlay(TexPackOverlay_MakeInstance(url));
|
TexPackOverlay_Show(url);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user