mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2025-10-30 08:01:01 +00:00
Started simplifying DJUI panels
This commit is contained in:
parent
63f2166bab
commit
2f59539d37
45 changed files with 328 additions and 780 deletions
|
|
@ -65,7 +65,7 @@ s16 gChangeActNum = -1;
|
|||
|
||||
static bool sFirstCastleGroundsMenu = true;
|
||||
bool isDemoActive = false;
|
||||
bool inPlayerMenu = false;
|
||||
bool gInPlayerMenu = false;
|
||||
static u16 gDemoCountdown = 0;
|
||||
int demoNumber = -1;
|
||||
|
||||
|
|
@ -1194,13 +1194,13 @@ s32 play_mode_normal(void) {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
if (gDjuiInMainMenu && gCurrDemoInput == NULL && configMenuDemos && !inPlayerMenu) {
|
||||
if (gDjuiInMainMenu && gCurrDemoInput == NULL && configMenuDemos && !gInPlayerMenu) {
|
||||
if ((++gDemoCountdown) == PRESS_START_DEMO_TIMER && (find_demo_number() && (demoNumber <= 6 || demoNumber > -1))) {
|
||||
start_demo();
|
||||
}
|
||||
}
|
||||
|
||||
if (((gCurrDemoInput != NULL) && (gPlayer1Controller->buttonPressed & END_DEMO || !isDemoActive || !gDjuiInMainMenu || gNetworkType != NT_NONE || inPlayerMenu)) || (gCurrDemoInput == NULL && isDemoActive)) {
|
||||
if (((gCurrDemoInput != NULL) && (gPlayer1Controller->buttonPressed & END_DEMO || !isDemoActive || !gDjuiInMainMenu || gNetworkType != NT_NONE || gInPlayerMenu)) || (gCurrDemoInput == NULL && isDemoActive)) {
|
||||
gPlayer1Controller->buttonPressed &= ~END_DEMO;
|
||||
stop_demo(NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ extern s8 gNeverEnteredCastle;
|
|||
extern u32 gControlTimerStartNat;
|
||||
extern u32 gControlTimerStopNat;
|
||||
|
||||
extern bool inPlayerMenu;
|
||||
extern bool gInPlayerMenu;
|
||||
|
||||
enum HUDDisplayFlag {
|
||||
HUD_DISPLAY_FLAG_LIVES = 0x0001,
|
||||
|
|
|
|||
|
|
@ -78,14 +78,13 @@ struct DjuiBind* djui_bind_create(struct DjuiBase* parent, const char* message,
|
|||
for (int i = 0; i < MAX_BINDS; i++) {
|
||||
#if defined(CAPI_SDL1) || defined(CAPI_SDL2)
|
||||
unsigned int key = configKey[i];
|
||||
struct DjuiButton* button = djui_button_create(&rect->base, translate_bind_to_name(key));
|
||||
struct DjuiButton* button = djui_button_create(&rect->base, translate_bind_to_name(key), DJUI_BUTTON_STYLE_NORMAL, djui_bind_button_on_click);
|
||||
#else
|
||||
struct DjuiButton* button = djui_button_create(&rect->base, "???");
|
||||
struct DjuiButton* button = djui_button_create(&rect->base, "???", DJUI_BUTTON_STYLE_NORMAL, djui_bind_button_on_click);
|
||||
#endif
|
||||
djui_base_set_size_type(&button->base, DJUI_SVT_RELATIVE, DJUI_SVT_RELATIVE);
|
||||
djui_base_set_size(&button->base, 0.33f, 1.0f);
|
||||
button->base.tag = i;
|
||||
djui_interactable_hook_click(&button->base, djui_bind_button_on_click);
|
||||
djui_interactable_hook_bind(&button->base, djui_bind_button_on_bind);
|
||||
|
||||
enum DjuiHAlign hAlign = DJUI_HALIGN_LEFT;
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ static void djui_button_update_style(struct DjuiBase* base) {
|
|||
}
|
||||
}
|
||||
|
||||
void djui_button_set_style(struct DjuiButton* button, u8 style) {
|
||||
void djui_button_set_style(struct DjuiButton* button, enum DjuiButtonStyle style) {
|
||||
button->style = style;
|
||||
djui_button_update_style(&button->base);
|
||||
}
|
||||
|
|
@ -35,7 +35,7 @@ static void djui_button_destroy(struct DjuiBase* base) {
|
|||
free(button);
|
||||
}
|
||||
|
||||
struct DjuiButton* djui_button_create(struct DjuiBase* parent, const char* message) {
|
||||
struct DjuiButton* djui_button_create(struct DjuiBase* parent, const char* message, enum DjuiButtonStyle style, void (*on_click)(struct DjuiBase*)) {
|
||||
struct DjuiButton* button = calloc(1, sizeof(struct DjuiButton));
|
||||
struct DjuiBase* base = &button->base;
|
||||
|
||||
|
|
@ -58,7 +58,25 @@ struct DjuiButton* djui_button_create(struct DjuiBase* parent, const char* messa
|
|||
djui_text_set_drop_shadow(text, 0, 0, 0, 64);
|
||||
button->text = text;
|
||||
|
||||
djui_base_set_size_type(base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(base, 1.0f, 64);
|
||||
djui_interactable_hook_click(base, on_click);
|
||||
button->style = style;
|
||||
djui_button_update_style(base);
|
||||
|
||||
return button;
|
||||
}
|
||||
|
||||
struct DjuiButton* djui_button_left_create(struct DjuiBase* parent, const char* message, enum DjuiButtonStyle style, void (*on_click)(struct DjuiBase*)) {
|
||||
struct DjuiButton* button = djui_button_create(parent, message, style, on_click);
|
||||
djui_base_set_size(&button->base, 0.485f, 64);
|
||||
djui_base_set_alignment(&button->base, DJUI_HALIGN_LEFT, DJUI_VALIGN_TOP);
|
||||
return button;
|
||||
}
|
||||
|
||||
struct DjuiButton* djui_button_right_create(struct DjuiBase* parent, const char* message, enum DjuiButtonStyle style, void (*on_click)(struct DjuiBase*)) {
|
||||
struct DjuiButton* button = djui_button_create(parent, message, style, on_click);
|
||||
djui_base_set_size(&button->base, 0.485f, 64);
|
||||
djui_base_set_alignment(&button->base, DJUI_HALIGN_RIGHT, DJUI_VALIGN_TOP);
|
||||
return button;
|
||||
}
|
||||
|
|
@ -8,6 +8,13 @@ struct DjuiButton {
|
|||
u8 style;
|
||||
};
|
||||
|
||||
void djui_button_set_style(struct DjuiButton* button, u8 style);
|
||||
enum DjuiButtonStyle {
|
||||
DJUI_BUTTON_STYLE_NORMAL,
|
||||
DJUI_BUTTON_STYLE_BACK,
|
||||
};
|
||||
|
||||
struct DjuiButton* djui_button_create(struct DjuiBase* parent, const char* message);
|
||||
void djui_button_set_style(struct DjuiButton* button, enum DjuiButtonStyle style);
|
||||
|
||||
struct DjuiButton* djui_button_create(struct DjuiBase* parent, const char* message, enum DjuiButtonStyle style, void (*on_click)(struct DjuiBase*));
|
||||
struct DjuiButton* djui_button_left_create(struct DjuiBase* parent, const char* message, enum DjuiButtonStyle style, void (*on_click)(struct DjuiBase*));
|
||||
struct DjuiButton* djui_button_right_create(struct DjuiBase* parent, const char* message, enum DjuiButtonStyle style, void (*on_click)(struct DjuiBase*));
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ static void djui_checkbox_destroy(struct DjuiBase* base) {
|
|||
free(checkbox);
|
||||
}
|
||||
|
||||
struct DjuiCheckbox* djui_checkbox_create(struct DjuiBase* parent, const char* message, bool* value) {
|
||||
struct DjuiCheckbox* djui_checkbox_create(struct DjuiBase* parent, const char* message, bool* value, void (*on_value_change)(struct DjuiBase*)) {
|
||||
struct DjuiCheckbox* checkbox = calloc(1, sizeof(struct DjuiCheckbox));
|
||||
struct DjuiBase* base = &checkbox->base;
|
||||
|
||||
|
|
@ -83,6 +83,9 @@ struct DjuiCheckbox* djui_checkbox_create(struct DjuiBase* parent, const char* m
|
|||
base->get_cursor_hover_location = djui_checkbox_get_cursor_hover_location;
|
||||
|
||||
djui_checkbox_update_style(base);
|
||||
djui_base_set_size_type(base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(base, 1.0f, 32);
|
||||
djui_interactable_hook_value_change(base, on_value_change);
|
||||
|
||||
return checkbox;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,4 +9,4 @@ struct DjuiCheckbox {
|
|||
bool* value;
|
||||
};
|
||||
|
||||
struct DjuiCheckbox* djui_checkbox_create(struct DjuiBase* parent, const char* message, bool* value);
|
||||
struct DjuiCheckbox* djui_checkbox_create(struct DjuiBase* parent, const char* message, bool* value, void (*on_value_change)(struct DjuiBase*));
|
||||
|
|
|
|||
|
|
@ -495,7 +495,7 @@ void djui_interactable_create(struct DjuiBase* base, void (*update_style)(struct
|
|||
}
|
||||
|
||||
struct DjuiInteractable* interactable = calloc(1, sizeof(struct DjuiInteractable));
|
||||
memset(interactable, 0, sizeof(struct DjuiInteractable));
|
||||
interactable->enabled = true;
|
||||
base->interactable = interactable;
|
||||
|
||||
base->interactable->update_style = update_style;
|
||||
|
|
|
|||
|
|
@ -113,16 +113,15 @@ struct DjuiPaginated* djui_paginated_create(struct DjuiBase* parent, u32 showCou
|
|||
}
|
||||
|
||||
{
|
||||
struct DjuiButton* button = djui_button_create(&paginated->base, "<");
|
||||
struct DjuiButton* button = djui_button_create(&paginated->base, "<", DJUI_BUTTON_STYLE_NORMAL, djui_paginated_prev);
|
||||
djui_base_set_alignment(&button->base, DJUI_HALIGN_LEFT, DJUI_VALIGN_BOTTOM);
|
||||
djui_base_set_size_type(&button->base, DJUI_SVT_ABSOLUTE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button->base, 128, 32);
|
||||
djui_interactable_hook_click(&button->base, djui_paginated_prev);
|
||||
paginated->prevButton = button;
|
||||
}
|
||||
|
||||
{
|
||||
struct DjuiButton* button = djui_button_create(&paginated->base, ">");
|
||||
struct DjuiButton* button = djui_button_create(&paginated->base, ">", DJUI_BUTTON_STYLE_NORMAL, djui_paginated_next);
|
||||
djui_base_set_alignment(&button->base, DJUI_HALIGN_RIGHT, DJUI_VALIGN_BOTTOM);
|
||||
djui_base_set_size_type(&button->base, DJUI_SVT_ABSOLUTE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button->base, 128, 32);
|
||||
|
|
|
|||
|
|
@ -4,12 +4,6 @@
|
|||
#include "audio/external.h"
|
||||
#include "src/game/bettercamera.h"
|
||||
|
||||
struct DjuiPanel {
|
||||
struct DjuiBase* base;
|
||||
struct DjuiPanel* parent;
|
||||
struct DjuiBase* defaultElementBase;
|
||||
};
|
||||
|
||||
static struct DjuiPanel* sPanelList = NULL;
|
||||
static struct DjuiPanel* sPanelRemoving = NULL;
|
||||
static f32 sMoveAmount = 0;
|
||||
|
|
@ -18,8 +12,20 @@ bool djui_panel_is_active(void) {
|
|||
return (sPanelList != NULL);
|
||||
}
|
||||
|
||||
void djui_panel_add(struct DjuiBase* caller, struct DjuiBase* panelBase, struct DjuiBase* defaultElementBase) {
|
||||
if (sPanelRemoving != NULL) { return; }
|
||||
struct DjuiBase* djui_panel_find_first_interactable(struct DjuiBaseChild* child) {
|
||||
while (child) {
|
||||
if (child->base->interactable && child->base->interactable->enabled) {
|
||||
return child->base;
|
||||
}
|
||||
struct DjuiBase* check = djui_panel_find_first_interactable(child->base->child);
|
||||
if (check) { return check; }
|
||||
child = child->next;
|
||||
}
|
||||
}
|
||||
|
||||
struct DjuiPanel* djui_panel_add(struct DjuiBase* caller, struct DjuiThreePanel* threePanel, struct DjuiBase* defaultElementBase) {
|
||||
if (sPanelRemoving != NULL) { return NULL; }
|
||||
struct DjuiBase* panelBase = &threePanel->base;
|
||||
bool firstPanel = (sPanelList == NULL);
|
||||
gDjuiPanelJoinMessageVisible = false;
|
||||
|
||||
|
|
@ -33,13 +39,23 @@ void djui_panel_add(struct DjuiBase* caller, struct DjuiBase* panelBase, struct
|
|||
djui_base_set_visible(sPanelList->parent->base, false);
|
||||
}
|
||||
|
||||
// calculate 3panel body height
|
||||
djui_three_panel_recalculate_body_size(threePanel);
|
||||
|
||||
|
||||
// allocate panel
|
||||
struct DjuiPanel* panel = calloc(1, sizeof(struct DjuiPanel));
|
||||
panel->parent = sPanelList;
|
||||
panel->base = panelBase;
|
||||
panel->defaultElementBase = defaultElementBase;
|
||||
panel->on_panel_destroy = NULL;
|
||||
sPanelList = panel;
|
||||
|
||||
// find better defaultElementBase
|
||||
if (panel->defaultElementBase == NULL) {
|
||||
panel->defaultElementBase = djui_panel_find_first_interactable(panel->base->child);
|
||||
}
|
||||
|
||||
// deselect cursor input
|
||||
djui_cursor_input_controlled_center(NULL);
|
||||
|
||||
|
|
@ -63,6 +79,8 @@ void djui_panel_add(struct DjuiBase* caller, struct DjuiBase* panelBase, struct
|
|||
} else {
|
||||
play_sound(SOUND_MENU_CLICK_FILE_SELECT, gGlobalSoundSource);
|
||||
}
|
||||
|
||||
return panel;
|
||||
}
|
||||
|
||||
void djui_panel_back(void) {
|
||||
|
|
@ -126,6 +144,9 @@ void djui_panel_update(void) {
|
|||
djui_cursor_input_controlled_center(sPanelList->defaultElementBase);
|
||||
|
||||
if (removingBase != NULL) {
|
||||
if (sPanelRemoving->on_panel_destroy) {
|
||||
sPanelRemoving->on_panel_destroy(NULL);
|
||||
}
|
||||
djui_base_destroy(removingBase);
|
||||
free(sPanelRemoving);
|
||||
sPanelRemoving = NULL;
|
||||
|
|
@ -147,12 +168,18 @@ void djui_panel_shutdown(void) {
|
|||
struct DjuiPanel* panel = sPanelList;
|
||||
while (panel != NULL) {
|
||||
struct DjuiPanel* next = panel->parent;
|
||||
if (panel->on_panel_destroy) {
|
||||
panel->on_panel_destroy(NULL);
|
||||
}
|
||||
djui_base_destroy(panel->base);
|
||||
free(panel);
|
||||
panel = next;
|
||||
}
|
||||
|
||||
if (sPanelRemoving != NULL) {
|
||||
if (sPanelRemoving->on_panel_destroy) {
|
||||
sPanelRemoving->on_panel_destroy(NULL);
|
||||
}
|
||||
djui_base_destroy(sPanelRemoving->base);
|
||||
free(sPanelRemoving);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,8 +4,15 @@
|
|||
#define DJUI_DEFAULT_PANEL_WIDTH (410.0f + (16 * 2.0f))
|
||||
#define DJUI_PANEL_HEADER_OFFSET (-8)
|
||||
|
||||
struct DjuiPanel {
|
||||
struct DjuiBase* base;
|
||||
struct DjuiPanel* parent;
|
||||
struct DjuiBase* defaultElementBase;
|
||||
void (*on_panel_destroy)(struct DjuiBase*);
|
||||
};
|
||||
|
||||
bool djui_panel_is_active(void);
|
||||
void djui_panel_add(struct DjuiBase* caller, struct DjuiBase* panelBase, struct DjuiBase* defaultElementBase);
|
||||
struct DjuiPanel* djui_panel_add(struct DjuiBase* caller, struct DjuiThreePanel* threePanel, struct DjuiBase* defaultElementBase);
|
||||
void djui_panel_back(void);
|
||||
void djui_panel_update(void);
|
||||
void djui_panel_shutdown(void);
|
||||
|
|
|
|||
|
|
@ -8,72 +8,24 @@ void djui_panel_camera_value_changed(UNUSED struct DjuiBase* caller) {
|
|||
}
|
||||
|
||||
void djui_panel_camera_create(struct DjuiBase* caller) {
|
||||
f32 bodyHeight = 32 * 10 + 64 * 1 + 16 * 10;
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\C\\#1be700\\A\\#00b3ff\\M\\#ffef00\\E\\#ff0800\\R\\#1be700\\A");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\C\\#1be700\\A\\#00b3ff\\M\\#ffef00\\E\\#ff0800\\R\\#1be700\\A");
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
|
||||
{
|
||||
struct DjuiCheckbox* checkbox1 = djui_checkbox_create(&body->base, "Free Camera", &configEnableCamera);
|
||||
djui_base_set_size_type(&checkbox1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox1->base, 1.0f, 32);
|
||||
djui_interactable_hook_value_change(&checkbox1->base, djui_panel_camera_value_changed);
|
||||
defaultBase = &checkbox1->base;
|
||||
|
||||
struct DjuiCheckbox* checkbox2 = djui_checkbox_create(&body->base, "Analog Camera", &configCameraAnalog);
|
||||
djui_base_set_size_type(&checkbox2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_interactable_hook_value_change(&checkbox2->base, djui_panel_camera_value_changed);
|
||||
djui_base_set_size(&checkbox2->base, 1.0f, 32);
|
||||
|
||||
djui_checkbox_create(&body->base, "Free Camera", &configEnableCamera, djui_panel_camera_value_changed);
|
||||
djui_checkbox_create(&body->base, "Analog Camera", &configCameraAnalog, djui_panel_camera_value_changed);
|
||||
#ifdef BETTERCAMERA
|
||||
struct DjuiCheckbox* checkbox3 = djui_checkbox_create(&body->base, "Mouse Look", &configCameraMouse);
|
||||
djui_base_set_size_type(&checkbox3->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_interactable_hook_value_change(&checkbox3->base, djui_panel_camera_value_changed);
|
||||
djui_base_set_size(&checkbox3->base, 1.0f, 32);
|
||||
djui_checkbox_create(&body->base, "Mouse Look", &configCameraMouse, djui_panel_camera_value_changed);
|
||||
#endif
|
||||
djui_checkbox_create(&body->base, "Invert X", &configCameraInvertX, djui_panel_camera_value_changed);
|
||||
djui_checkbox_create(&body->base, "Invert Y", &configCameraInvertY, djui_panel_camera_value_changed);
|
||||
djui_slider_create(&body->base, "X Sensitivity", &configCameraXSens, 1, 100, djui_panel_camera_value_changed);
|
||||
djui_slider_create(&body->base, "Y Sensitivity", &configCameraYSens, 1, 100, djui_panel_camera_value_changed);
|
||||
djui_slider_create(&body->base, "Aggression", &configCameraAggr, 0, 100, djui_panel_camera_value_changed);
|
||||
djui_slider_create(&body->base, "Pan Level", &configCameraPan, 0, 100, djui_panel_camera_value_changed);
|
||||
djui_slider_create(&body->base, "Deceleration", &configCameraDegrade, 0, 100, djui_panel_camera_value_changed);
|
||||
|
||||
struct DjuiCheckbox* checkbox4 = djui_checkbox_create(&body->base, "Invert X", &configCameraInvertX);
|
||||
djui_base_set_size_type(&checkbox4->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_interactable_hook_value_change(&checkbox4->base, djui_panel_camera_value_changed);
|
||||
djui_base_set_size(&checkbox4->base, 1.0f, 32);
|
||||
|
||||
struct DjuiCheckbox* checkbox5 = djui_checkbox_create(&body->base, "Invert Y", &configCameraInvertY);
|
||||
djui_base_set_size_type(&checkbox5->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_interactable_hook_value_change(&checkbox5->base, djui_panel_camera_value_changed);
|
||||
djui_base_set_size(&checkbox5->base, 1.0f, 32);
|
||||
|
||||
struct DjuiSlider* slider1 = djui_slider_create(&body->base, "X Sensitivity", &configCameraXSens, 1, 100);
|
||||
djui_base_set_size_type(&slider1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_interactable_hook_value_change(&slider1->base, djui_panel_camera_value_changed);
|
||||
djui_base_set_size(&slider1->base, 1.0f, 32);
|
||||
|
||||
struct DjuiSlider* slider2 = djui_slider_create(&body->base, "Y Sensitivity", &configCameraYSens, 1, 100);
|
||||
djui_base_set_size_type(&slider2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_interactable_hook_value_change(&slider2->base, djui_panel_camera_value_changed);
|
||||
djui_base_set_size(&slider2->base, 1.0f, 32);
|
||||
|
||||
struct DjuiSlider* slider3 = djui_slider_create(&body->base, "Aggression", &configCameraAggr, 0, 100);
|
||||
djui_base_set_size_type(&slider3->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_interactable_hook_value_change(&slider3->base, djui_panel_camera_value_changed);
|
||||
djui_base_set_size(&slider3->base, 1.0f, 32);
|
||||
|
||||
struct DjuiSlider* slider4 = djui_slider_create(&body->base, "Pan Level", &configCameraPan, 0, 100);
|
||||
djui_base_set_size_type(&slider4->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_interactable_hook_value_change(&slider4->base, djui_panel_camera_value_changed);
|
||||
djui_base_set_size(&slider4->base, 1.0f, 32);
|
||||
|
||||
struct DjuiSlider* slider5 = djui_slider_create(&body->base, "Deceleration", &configCameraDegrade, 0, 100);
|
||||
djui_base_set_size_type(&slider5->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_interactable_hook_value_change(&slider5->base, djui_panel_camera_value_changed);
|
||||
djui_base_set_size(&slider5->base, 1.0f, 32);
|
||||
|
||||
struct DjuiButton* button6 = djui_button_create(&body->base, "Back");
|
||||
djui_base_set_size_type(&button6->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button6->base, 1.0f, 64);
|
||||
djui_button_set_style(button6, 1);
|
||||
djui_interactable_hook_click(&button6->base, djui_panel_menu_back);
|
||||
djui_button_create(&body->base, "Back", DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,61 +2,20 @@
|
|||
#include "pc/cheats.h"
|
||||
|
||||
void djui_panel_cheats_create(struct DjuiBase* caller) {
|
||||
f32 bodyHeight = 32 * 8 + 64 * 1 + 16 * 9;
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\C\\#1be700\\H\\#00b3ff\\E\\#ffef00\\A\\#ff0800\\T\\#1be700\\S");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\C\\#1be700\\H\\#00b3ff\\E\\#ffef00\\A\\#ff0800\\T\\#1be700\\S");
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
|
||||
{
|
||||
{
|
||||
struct DjuiCheckbox* checkbox = djui_checkbox_create(&body->base, "Moon Jump", &gCheats.moonJump);
|
||||
djui_base_set_size_type(&checkbox->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox->base, 1.0f, 32);
|
||||
defaultBase = &checkbox->base;
|
||||
}
|
||||
{
|
||||
struct DjuiCheckbox* checkbox = djui_checkbox_create(&body->base, "God Mode", &gCheats.godMode);
|
||||
djui_base_set_size_type(&checkbox->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox->base, 1.0f, 32);
|
||||
}
|
||||
{
|
||||
struct DjuiCheckbox* checkbox = djui_checkbox_create(&body->base, "Infinite Lives", &gCheats.infiniteLives);
|
||||
djui_base_set_size_type(&checkbox->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox->base, 1.0f, 32);
|
||||
}
|
||||
{
|
||||
struct DjuiCheckbox* checkbox = djui_checkbox_create(&body->base, "Super Speed", &gCheats.superSpeed);
|
||||
djui_base_set_size_type(&checkbox->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox->base, 1.0f, 32);
|
||||
}
|
||||
{
|
||||
struct DjuiCheckbox* checkbox = djui_checkbox_create(&body->base, "Responsive Controls", &gCheats.responsiveControls);
|
||||
djui_base_set_size_type(&checkbox->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox->base, 1.0f, 32);
|
||||
}
|
||||
{
|
||||
struct DjuiCheckbox* checkbox = djui_checkbox_create(&body->base, "Rapid Fire (A)", &gCheats.rapidFireA);
|
||||
djui_base_set_size_type(&checkbox->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox->base, 1.0f, 32);
|
||||
}
|
||||
{
|
||||
struct DjuiCheckbox* checkbox = djui_checkbox_create(&body->base, "BLJ Anywhere", &gCheats.bljAnywhere);
|
||||
djui_base_set_size_type(&checkbox->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox->base, 1.0f, 32);
|
||||
}
|
||||
{
|
||||
struct DjuiCheckbox* checkbox = djui_checkbox_create(&body->base, "Always Triple Jump", &gCheats.alwaysTripleJump);
|
||||
djui_base_set_size_type(&checkbox->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox->base, 1.0f, 32);
|
||||
}
|
||||
djui_checkbox_create(&body->base, "Moon Jump", &gCheats.moonJump, NULL);
|
||||
djui_checkbox_create(&body->base, "God Mode", &gCheats.godMode, NULL);
|
||||
djui_checkbox_create(&body->base, "Infinite Lives", &gCheats.infiniteLives, NULL);
|
||||
djui_checkbox_create(&body->base, "Super Speed", &gCheats.superSpeed, NULL);
|
||||
djui_checkbox_create(&body->base, "Responsive Controls", &gCheats.responsiveControls, NULL);
|
||||
djui_checkbox_create(&body->base, "Rapid Fire (A)", &gCheats.rapidFireA, NULL);
|
||||
djui_checkbox_create(&body->base, "BLJ Anywhere", &gCheats.bljAnywhere, NULL);
|
||||
djui_checkbox_create(&body->base, "Always Triple Jump", &gCheats.alwaysTripleJump, NULL);
|
||||
|
||||
struct DjuiButton* button1 = djui_button_create(&body->base, "Back");
|
||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button1->base, 1.0f, 64);
|
||||
djui_button_set_style(button1, 1);
|
||||
djui_interactable_hook_click(&button1->base, djui_panel_menu_back);
|
||||
djui_button_create(&body->base, "Back", DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,10 +2,7 @@
|
|||
#include "src/pc/utils/misc.h"
|
||||
|
||||
void djui_panel_confirm_create(struct DjuiBase* caller, char* title, char* message, void (*on_yes_click)(struct DjuiBase*)) {
|
||||
f32 bodyHeight = 64 * 2 + 16 * 1;
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, title);
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(title);
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
{
|
||||
struct DjuiText* text = djui_text_create(&body->base, message);
|
||||
|
|
@ -14,25 +11,12 @@ void djui_panel_confirm_create(struct DjuiBase* caller, char* title, char* messa
|
|||
djui_base_set_color(&text->base, 200, 200, 200, 255);
|
||||
djui_text_set_alignment(text, DJUI_HALIGN_CENTER, DJUI_VALIGN_CENTER);
|
||||
|
||||
struct DjuiRect* rect1 = djui_rect_create(&body->base);
|
||||
djui_base_set_size_type(&rect1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&rect1->base, 1.0f, 64);
|
||||
djui_base_set_color(&rect1->base, 0, 0, 0, 0);
|
||||
struct DjuiRect* rect1 = djui_rect_container_create(&body->base, 64);
|
||||
{
|
||||
struct DjuiButton* button1 = djui_button_create(&rect1->base, "No");
|
||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button1->base, 0.485f, 64);
|
||||
djui_base_set_alignment(&button1->base, DJUI_HALIGN_LEFT, DJUI_VALIGN_TOP);
|
||||
djui_interactable_hook_click(&button1->base, djui_panel_menu_back);
|
||||
defaultBase = &button1->base;
|
||||
|
||||
struct DjuiButton* button2 = djui_button_create(&rect1->base, "Yes");
|
||||
djui_base_set_size_type(&button2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button2->base, 0.485f, 64);
|
||||
djui_base_set_alignment(&button2->base, DJUI_HALIGN_RIGHT, DJUI_VALIGN_TOP);
|
||||
djui_interactable_hook_click(&button2->base, on_yes_click);
|
||||
djui_button_left_create(&rect1->base, "No", DJUI_BUTTON_STYLE_NORMAL, djui_panel_menu_back);
|
||||
djui_button_right_create(&rect1->base, "Yes", DJUI_BUTTON_STYLE_NORMAL, on_yes_click);
|
||||
}
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,26 +9,12 @@ void djui_panel_controls_value_change(UNUSED struct DjuiBase* caller) {
|
|||
}
|
||||
|
||||
void djui_panel_controls_create(struct DjuiBase* caller) {
|
||||
f32 bodyHeight = 16 * 6 + 32 * 2 + 64 * 4;
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\C\\#1be700\\O\\#00b3ff\\N\\#ffef00\\T\\#ff0800\\R\\#1be700\\O\\#00b3ff\\L\\#ffef00\\S");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\C\\#1be700\\O\\#00b3ff\\N\\#ffef00\\T\\#ff0800\\R\\#1be700\\O\\#00b3ff\\L\\#ffef00\\S");
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
{
|
||||
struct DjuiButton* button1 = djui_button_create(&body->base, "N64 Binds");
|
||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button1->base, 1.0f, 64);
|
||||
djui_interactable_hook_click(&button1->base, djui_panel_controls_n64_create);
|
||||
defaultBase = &button1->base;
|
||||
|
||||
struct DjuiButton* button2 = djui_button_create(&body->base, "Extra Binds");
|
||||
djui_base_set_size_type(&button2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button2->base, 1.0f, 64);
|
||||
djui_interactable_hook_click(&button2->base, djui_panel_controls_extra_create);
|
||||
|
||||
struct DjuiCheckbox* checkboxGB = djui_checkbox_create(&body->base, "Background Gamepad (must restart)", &configBackgroundGamepad);
|
||||
djui_base_set_size_type(&checkboxGB->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkboxGB->base, 1.0f, 32);
|
||||
djui_button_create(&body->base, "N64 Binds", DJUI_BUTTON_STYLE_NORMAL, djui_panel_controls_n64_create);
|
||||
djui_button_create(&body->base, "Extra Binds", DJUI_BUTTON_STYLE_NORMAL, djui_panel_controls_extra_create);
|
||||
djui_checkbox_create(&body->base, "Background Gamepad (must restart)", &configBackgroundGamepad, NULL);
|
||||
|
||||
#ifdef HAVE_SDL2
|
||||
int numJoys = SDL_NumJoysticks();
|
||||
|
|
@ -45,27 +31,14 @@ void djui_panel_controls_create(struct DjuiBase* caller) {
|
|||
sprintf(&gamepadChoicesLong[index], "%d", i);
|
||||
gamepadChoices[i] = &gamepadChoicesLong[index];
|
||||
}
|
||||
struct DjuiSelectionbox* selectionboxGamepad = djui_selectionbox_create(&body->base, "Gamepad", gamepadChoices, numJoys, &configGamepadNumber);
|
||||
djui_base_set_size_type(&selectionboxGamepad->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&selectionboxGamepad->base, 1.0f, 32);
|
||||
djui_selectionbox_create(&body->base, "Gamepad", gamepadChoices, numJoys, &configGamepadNumber, NULL);
|
||||
#endif
|
||||
|
||||
struct DjuiSlider* slider1 = djui_slider_create(&body->base, "Deadzone", &configStickDeadzone, 0, 100);
|
||||
djui_base_set_size_type(&slider1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&slider1->base, 1.0f, 32);
|
||||
djui_interactable_hook_value_change(&slider1->base, djui_panel_controls_value_change);
|
||||
djui_slider_create(&body->base, "Deadzone", &configStickDeadzone, 0, 100, djui_panel_controls_value_change);
|
||||
djui_slider_create(&body->base, "Rumble Strength", &configRumbleStrength, 0, 100, djui_panel_controls_value_change);
|
||||
|
||||
struct DjuiSlider* slider2 = djui_slider_create(&body->base, "Rumble Strength", &configRumbleStrength, 0, 100);
|
||||
djui_base_set_size_type(&slider2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&slider2->base, 1.0f, 32);
|
||||
djui_interactable_hook_value_change(&slider2->base, djui_panel_controls_value_change);
|
||||
|
||||
struct DjuiButton* button6 = djui_button_create(&body->base, "Back");
|
||||
djui_base_set_size_type(&button6->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button6->base, 1.0f, 64);
|
||||
djui_button_set_style(button6, 1);
|
||||
djui_interactable_hook_click(&button6->base, djui_panel_menu_back);
|
||||
djui_button_create(&body->base, "Back", DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,10 +3,8 @@
|
|||
|
||||
void djui_panel_controls_extra_create(struct DjuiBase* caller) {
|
||||
f32 bindBodyHeight = 28 * 8 + 1 * 7;
|
||||
f32 bodyHeight = bindBodyHeight + 16 + 64;
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\C\\#1be700\\O\\#00b3ff\\N\\#ffef00\\T\\#ff0800\\R\\#1be700\\O\\#00b3ff\\L\\#ffef00\\S");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\C\\#1be700\\O\\#00b3ff\\N\\#ffef00\\T\\#ff0800\\R\\#1be700\\O\\#00b3ff\\L\\#ffef00\\S");
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
{
|
||||
struct DjuiFlowLayout* bindBody = djui_flow_layout_create(&body->base);
|
||||
|
|
@ -25,13 +23,8 @@ void djui_panel_controls_extra_create(struct DjuiBase* caller) {
|
|||
djui_bind_create(&bindBody->base, "Y", configKeyY);
|
||||
}
|
||||
|
||||
struct DjuiButton* buttonBack = djui_button_create(&body->base, "Back");
|
||||
djui_base_set_size_type(&buttonBack->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&buttonBack->base, 1.0f, 64);
|
||||
djui_button_set_style(buttonBack, 1);
|
||||
djui_interactable_hook_click(&buttonBack->base, djui_panel_menu_back);
|
||||
defaultBase = &buttonBack->base;
|
||||
djui_button_create(&body->base, "Back", DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,10 +3,8 @@
|
|||
|
||||
void djui_panel_controls_n64_create(struct DjuiBase* caller) {
|
||||
f32 bindBodyHeight = 28 * 14 + 1 * 13;
|
||||
f32 bodyHeight = bindBodyHeight + 16 + 64;
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\C\\#1be700\\O\\#00b3ff\\N\\#ffef00\\T\\#ff0800\\R\\#1be700\\O\\#00b3ff\\L\\#ffef00\\S");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\C\\#1be700\\O\\#00b3ff\\N\\#ffef00\\T\\#ff0800\\R\\#1be700\\O\\#00b3ff\\L\\#ffef00\\S");
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
{
|
||||
struct DjuiFlowLayout* bindBody = djui_flow_layout_create(&body->base);
|
||||
|
|
@ -31,13 +29,8 @@ void djui_panel_controls_n64_create(struct DjuiBase* caller) {
|
|||
djui_bind_create(&bindBody->base, "C Right", configKeyCRight);
|
||||
}
|
||||
|
||||
struct DjuiButton* buttonBack = djui_button_create(&body->base, "Back");
|
||||
djui_base_set_size_type(&buttonBack->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&buttonBack->base, 1.0f, 64);
|
||||
djui_button_set_style(buttonBack, 1);
|
||||
djui_interactable_hook_click(&buttonBack->base, djui_panel_menu_back);
|
||||
defaultBase = &buttonBack->base;
|
||||
djui_button_create(&body->base, "Back", DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,26 +2,6 @@
|
|||
#include "src/pc/utils/misc.h"
|
||||
#include "src/pc/configfile.h"
|
||||
|
||||
// The checkbox size is determined by the base size they all have and the amount.
|
||||
#define CHECKBOXES_SIZE 32 * 5
|
||||
// The checkbox pad size is determined by half the base size they all have and the amount plus one.
|
||||
#define CHECKBOXES_PAD_SIZE 16 * 7
|
||||
// The accumulative size of both the padding size and normal size for the checkboxes.
|
||||
#define CHECKBOXES_FULL_SIZE CHECKBOXES_SIZE + CHECKBOXES_PAD_SIZE
|
||||
|
||||
// The selection box size is determined by the base size they all have and the amount.
|
||||
#define SELECTION_BOXES_SIZE 32 * 3
|
||||
// The selection box pad size is determined by half the base size they all have and the amount plus one.
|
||||
#define SELECTION_BOXES_PAD_SIZE 16 * 4
|
||||
// The accumulative size of both the padding size and normal size for the selection boxes.
|
||||
#define SELECTION_BOXES_FULL_SIZE SELECTION_BOXES_SIZE + SELECTION_BOXES_PAD_SIZE
|
||||
|
||||
// The button size is determined by the base size they all have and the amount.
|
||||
#define BUTTON_SIZES 64 * 2
|
||||
|
||||
// The full height for the body.
|
||||
#define BODY_HEIGHT CHECKBOXES_FULL_SIZE + SELECTION_BOXES_FULL_SIZE + BUTTON_SIZES
|
||||
|
||||
static struct DjuiInputbox* sFrameLimitInput = NULL;
|
||||
static struct DjuiSelectionbox* sInterpolationSelectionBox = NULL;
|
||||
|
||||
|
|
@ -47,39 +27,20 @@ static void djui_panel_display_frame_limit_text_change(struct DjuiBase* caller)
|
|||
}
|
||||
|
||||
void djui_panel_display_create(struct DjuiBase* caller) {
|
||||
f32 bodyHeight = BODY_HEIGHT;
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\D\\#1be700\\I\\#00b3ff\\S\\#ffef00\\P\\#ff0800\\L\\#1be700\\A\\#00b3ff\\Y");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\D\\#1be700\\I\\#00b3ff\\S\\#ffef00\\P\\#ff0800\\L\\#1be700\\A\\#00b3ff\\Y");
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
|
||||
{
|
||||
struct DjuiCheckbox* checkbox1 = djui_checkbox_create(&body->base, "Fullscreen", &configWindow.fullscreen);
|
||||
djui_base_set_size_type(&checkbox1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox1->base, 1.0f, 32);
|
||||
djui_interactable_hook_value_change(&checkbox1->base, djui_panel_display_apply);
|
||||
defaultBase = &checkbox1->base;
|
||||
djui_checkbox_create(&body->base, "Fullscreen", &configWindow.fullscreen, djui_panel_display_apply);
|
||||
|
||||
#ifdef EXTERNAL_DATA
|
||||
struct DjuiCheckbox* checkbox7 = djui_checkbox_create(&body->base, "Preload Textures", &configPrecacheRes);
|
||||
djui_base_set_size_type(&checkbox7->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox7->base, 1.0f, 32);
|
||||
djui_checkbox_create(&body->base, "Preload Textures", &configPrecacheRes, NULL);
|
||||
#endif
|
||||
|
||||
struct DjuiCheckbox* checkbox2 = djui_checkbox_create(&body->base, "VSync", &configWindow.vsync);
|
||||
djui_base_set_size_type(&checkbox2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox2->base, 1.0f, 32);
|
||||
djui_interactable_hook_value_change(&checkbox2->base, djui_panel_display_apply);
|
||||
djui_checkbox_create(&body->base, "VSync", &configWindow.vsync, djui_panel_display_apply);
|
||||
djui_checkbox_create(&body->base, "Uncapped Framerate", &configUncappedFramerate, djui_panel_display_apply);
|
||||
|
||||
struct DjuiCheckbox* checkbox3 = djui_checkbox_create(&body->base, "Uncapped Framerate", &configUncappedFramerate);
|
||||
djui_base_set_size_type(&checkbox3->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox3->base, 1.0f, 32);
|
||||
djui_interactable_hook_value_change(&checkbox3->base, djui_panel_display_uncapped_change);
|
||||
|
||||
struct DjuiRect* rect1 = djui_rect_create(&body->base);
|
||||
djui_base_set_size_type(&rect1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&rect1->base, 1.0f, 32);
|
||||
djui_base_set_color(&rect1->base, 0, 0, 0, 0);
|
||||
struct DjuiRect* rect1 = djui_rect_container_create(&body->base, 32);
|
||||
{
|
||||
if (configFrameLimit < 30) { configFrameLimit = 30; }
|
||||
if (configFrameLimit > 3000) { configFrameLimit = 3000; }
|
||||
|
|
@ -102,33 +63,20 @@ void djui_panel_display_create(struct DjuiBase* caller) {
|
|||
}
|
||||
|
||||
char* interpChoices[2] = { "Fast", "Accurate" };
|
||||
struct DjuiSelectionbox* selectionbox1 = djui_selectionbox_create(&body->base, "Interpolation", interpChoices, 2, &configInterpolationMode);
|
||||
djui_base_set_size_type(&selectionbox1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&selectionbox1->base, 1.0f, 32);
|
||||
struct DjuiSelectionbox* selectionbox1 = djui_selectionbox_create(&body->base, "Interpolation", interpChoices, 2, &configInterpolationMode, NULL);
|
||||
djui_base_set_enabled(&selectionbox1->base, (configFrameLimit > 30 || (configFrameLimit <= 30 && configUncappedFramerate)));
|
||||
sInterpolationSelectionBox = selectionbox1;
|
||||
|
||||
char* filterChoices[3] = { "Nearest", "Linear", "Tripoint" };
|
||||
struct DjuiSelectionbox* selectionbox2 = djui_selectionbox_create(&body->base, "Filtering", filterChoices, 3, &configFiltering);
|
||||
djui_base_set_size_type(&selectionbox2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&selectionbox2->base, 1.0f, 32);
|
||||
djui_selectionbox_create(&body->base, "Filtering", filterChoices, 3, &configFiltering, NULL);
|
||||
|
||||
char* drawDistanceChoices[6] = { "0.5x", "1x", "1.5x", "3x", "10x", "100x" };
|
||||
struct DjuiSelectionbox* selectionbox3 = djui_selectionbox_create(&body->base, "Draw Distance", drawDistanceChoices, 6, &configDrawDistance);
|
||||
djui_base_set_size_type(&selectionbox3->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&selectionbox3->base, 1.0f, 32);
|
||||
djui_selectionbox_create(&body->base, "Draw Distance", drawDistanceChoices, 6, &configDrawDistance, NULL);
|
||||
|
||||
struct DjuiButton* button1 = djui_button_create(&body->base, "DynOS Packs");
|
||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button1->base, 1.0f, 64);
|
||||
djui_interactable_hook_click(&button1->base, djui_panel_dynos_create);
|
||||
djui_button_create(&body->base, "DynOS Packs", DJUI_BUTTON_STYLE_NORMAL, djui_panel_dynos_create);
|
||||
|
||||
struct DjuiButton* button2 = djui_button_create(&body->base, "Back");
|
||||
djui_base_set_size_type(&button2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button2->base, 1.0f, 64);
|
||||
djui_button_set_style(button2, 1);
|
||||
djui_interactable_hook_click(&button2->base, djui_panel_menu_back);
|
||||
djui_button_create(&body->base, "Back", DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,10 +9,7 @@ static void djui_panel_dynos_apply(struct DjuiBase* caller) {
|
|||
|
||||
void djui_panel_dynos_create(struct DjuiBase* caller) {
|
||||
int packCount = dynos_pack_get_count();
|
||||
f32 bodyHeight = (416) + 64 * 1 + 16 * 1;
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\D\\#1be700\\Y\\#00b3ff\\N\\#ffef00\\O\\#ff0800\\S");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\D\\#1be700\\Y\\#00b3ff\\N\\#ffef00\\O\\#ff0800\\S");
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
|
||||
{
|
||||
|
|
@ -22,27 +19,17 @@ void djui_panel_dynos_create(struct DjuiBase* caller) {
|
|||
bool tmp = dynos_pack_get_enabled(i);
|
||||
const char* pack = dynos_pack_get_name(i);
|
||||
|
||||
struct DjuiCheckbox* checkbox1 = djui_checkbox_create(layoutBase, pack, &tmp);
|
||||
struct DjuiCheckbox* checkbox1 = djui_checkbox_create(layoutBase, pack, &tmp, djui_panel_dynos_apply);
|
||||
checkbox1->base.tag = i;
|
||||
checkbox1->base.bTag = tmp;
|
||||
checkbox1->value = &checkbox1->base.bTag;
|
||||
|
||||
djui_base_set_size_type(&checkbox1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox1->base, 1.0f, 32);
|
||||
djui_interactable_hook_value_change(&checkbox1->base, djui_panel_dynos_apply);
|
||||
if (i == 0) { defaultBase = &checkbox1->base; }
|
||||
}
|
||||
djui_paginated_calculate_height(paginated);
|
||||
|
||||
struct DjuiButton* button6 = djui_button_create(&body->base, "Back");
|
||||
djui_base_set_size_type(&button6->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button6->base, 1.0f, 64);
|
||||
djui_button_set_style(button6, 1);
|
||||
djui_interactable_hook_click(&button6->base, djui_panel_menu_back);
|
||||
if (defaultBase == NULL) { defaultBase = &button6->base; }
|
||||
djui_button_create(&body->base, "Back", DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
|
||||
panel->bodySize.value = paginated->base.height.value + 16 + 64;
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,31 +65,22 @@ static void djui_panel_host_do_host(struct DjuiBase* caller) {
|
|||
}
|
||||
|
||||
void djui_panel_host_create(struct DjuiBase* caller) {
|
||||
f32 bodyHeight = 32 * 4 + 64 * 4 + 16 * 5;
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight,
|
||||
(gNetworkType == NT_SERVER)
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create((gNetworkType == NT_SERVER)
|
||||
? "\\#ff0800\\S\\#1be700\\E\\#00b3ff\\R\\#ffef00\\V\\#ff0800\\E\\#1be700\\R"
|
||||
: "\\#ff0800\\H\\#1be700\\O\\#00b3ff\\S\\#ffef00\\T");
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
{
|
||||
#ifdef DISCORD_SDK
|
||||
char* nChoices[2] = { "Discord", "Direct Connection" };
|
||||
struct DjuiSelectionbox* selectionbox1 = djui_selectionbox_create(&body->base, "Network system", nChoices, 2, &configNetworkSystem);
|
||||
djui_base_set_size_type(&selectionbox1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&selectionbox1->base, 1.0f, 32);
|
||||
djui_interactable_hook_value_change(&selectionbox1->base, djui_panel_host_network_system_change);
|
||||
struct DjuiSelectionbox* selectionbox1 = djui_selectionbox_create(&body->base, "Network system", nChoices, 2, &configNetworkSystem, djui_panel_host_network_system_change);
|
||||
if (gNetworkType == NT_SERVER) {
|
||||
djui_base_set_enabled(&selectionbox1->base, false);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
struct DjuiRect* rect1 = djui_rect_create(&body->base);
|
||||
djui_base_set_size_type(&rect1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&rect1->base, 1.0f, 32);
|
||||
djui_base_set_color(&rect1->base, 0, 0, 0, 0);
|
||||
struct DjuiRect* rect1 = djui_rect_container_create(&body->base, 32);
|
||||
{
|
||||
struct DjuiText* text1 = djui_text_create(&rect1->base, "Port");
|
||||
djui_base_set_size_type(&text1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
|
|
@ -118,10 +109,7 @@ void djui_panel_host_create(struct DjuiBase* caller) {
|
|||
sInputboxPort = inputbox1;
|
||||
}
|
||||
|
||||
struct DjuiRect* rect2 = djui_rect_create(&body->base);
|
||||
djui_base_set_size_type(&rect2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&rect2->base, 1.0f, 32);
|
||||
djui_base_set_color(&rect2->base, 0, 0, 0, 0);
|
||||
struct DjuiRect* rect2 = djui_rect_container_create(&body->base, 32);
|
||||
{
|
||||
struct DjuiText* text1 = djui_text_create(&rect2->base, "Save Slot");
|
||||
djui_base_set_size_type(&text1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
|
|
@ -131,50 +119,28 @@ void djui_panel_host_create(struct DjuiBase* caller) {
|
|||
|
||||
char starString[32] = { 0 };
|
||||
snprintf(starString, 32, "%c x%d", '~' + 1, save_file_get_total_star_count(configHostSaveSlot - 1, 0, 24));
|
||||
struct DjuiButton* button1 = djui_button_create(&rect2->base, starString);
|
||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
struct DjuiButton* button1 = djui_button_create(&rect2->base, starString, DJUI_BUTTON_STYLE_NORMAL, djui_panel_host_save_create);
|
||||
djui_base_set_size(&button1->base, 0.5f, 32);
|
||||
djui_base_set_alignment(&button1->base, DJUI_HALIGN_RIGHT, DJUI_VALIGN_TOP);
|
||||
djui_interactable_hook_click(&button1->base, djui_panel_host_save_create);
|
||||
}
|
||||
|
||||
struct DjuiButton* button1 = djui_button_create(&body->base, "Settings");
|
||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button1->base, 1.0f, 64);
|
||||
djui_base_set_alignment(&button1->base, DJUI_HALIGN_CENTER, DJUI_VALIGN_TOP);
|
||||
djui_interactable_hook_click(&button1->base, djui_panel_host_settings_create);
|
||||
djui_button_create(&body->base, "Settings", DJUI_BUTTON_STYLE_NORMAL, djui_panel_host_settings_create);
|
||||
|
||||
struct DjuiButton* button2 = djui_button_create(&body->base, "Mods");
|
||||
djui_base_set_size_type(&button2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button2->base, 1.0f, 64);
|
||||
djui_base_set_alignment(&button2->base, DJUI_HALIGN_CENTER, DJUI_VALIGN_TOP);
|
||||
djui_interactable_hook_click(&button2->base, djui_panel_host_mods_create);
|
||||
struct DjuiButton* button2 = djui_button_create(&body->base, "Mods", DJUI_BUTTON_STYLE_NORMAL, djui_panel_host_mods_create);
|
||||
button2->base.tag = 0;
|
||||
|
||||
struct DjuiButton* button3 = djui_button_create(&body->base, "Rom-Hacks");
|
||||
djui_base_set_size_type(&button3->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button3->base, 1.0f, 64);
|
||||
djui_base_set_alignment(&button3->base, DJUI_HALIGN_CENTER, DJUI_VALIGN_TOP);
|
||||
djui_interactable_hook_click(&button3->base, djui_panel_host_mods_create);
|
||||
struct DjuiButton* button3 = djui_button_create(&body->base, "Rom-Hacks", DJUI_BUTTON_STYLE_NORMAL, djui_panel_host_mods_create);
|
||||
button3->base.tag = 1;
|
||||
|
||||
struct DjuiRect* rect3 = djui_rect_create(&body->base);
|
||||
djui_base_set_size_type(&rect3->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&rect3->base, 1.0f, 64);
|
||||
djui_base_set_color(&rect3->base, 0, 0, 0, 0);
|
||||
struct DjuiRect* rect3 = djui_rect_container_create(&body->base, 64);
|
||||
{
|
||||
struct DjuiButton* button1 = djui_button_create(&rect3->base, (gNetworkType == NT_SERVER) ? "Cancel" : "Back");
|
||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
struct DjuiButton* button1 = djui_button_create(&rect3->base, (gNetworkType == NT_SERVER) ? "Cancel" : "Back", DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
djui_base_set_size(&button1->base, 0.485f, 64);
|
||||
djui_base_set_alignment(&button1->base, DJUI_HALIGN_LEFT, DJUI_VALIGN_TOP);
|
||||
djui_button_set_style(button1, 1);
|
||||
djui_interactable_hook_click(&button1->base, djui_panel_menu_back);
|
||||
|
||||
struct DjuiButton* button2 = djui_button_create(&rect3->base, (gNetworkType == NT_SERVER) ? "Apply" : "Host");
|
||||
djui_base_set_size_type(&button2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
struct DjuiButton* button2 = djui_button_create(&rect3->base, (gNetworkType == NT_SERVER) ? "Apply" : "Host", DJUI_BUTTON_STYLE_NORMAL, djui_panel_host_do_host);
|
||||
djui_base_set_size(&button2->base, 0.485f, 64);
|
||||
djui_base_set_alignment(&button2->base, DJUI_HALIGN_RIGHT, DJUI_VALIGN_TOP);
|
||||
djui_interactable_hook_click(&button2->base, djui_panel_host_do_host);
|
||||
|
||||
defaultBase = (gNetworkType == NT_SERVER)
|
||||
? &button1->base
|
||||
|
|
@ -182,5 +148,5 @@ void djui_panel_host_create(struct DjuiBase* caller) {
|
|||
}
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, defaultBase);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -83,10 +83,8 @@ void djui_panel_host_message_create(struct DjuiBase* caller) {
|
|||
}
|
||||
|
||||
f32 textHeight = 32 * 0.8125f * warningLines + 8;
|
||||
f32 bodyHeight = textHeight + 16 + 64;
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\I\\#1be700\\N\\#00b3ff\\F\\#ffef00\\O");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\I\\#1be700\\N\\#00b3ff\\F\\#ffef00\\O");
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
{
|
||||
struct DjuiText* text1 = djui_text_create(&body->base, warningMessage);
|
||||
|
|
@ -94,36 +92,20 @@ void djui_panel_host_message_create(struct DjuiBase* caller) {
|
|||
djui_base_set_size(&text1->base, 1.0f, textHeight);
|
||||
djui_base_set_color(&text1->base, 200, 200, 200, 255);
|
||||
|
||||
struct DjuiRect* rect1 = djui_rect_create(&body->base);
|
||||
djui_base_set_size_type(&rect1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&rect1->base, 1.0f, 64);
|
||||
djui_base_set_color(&rect1->base, 0, 0, 0, 0);
|
||||
struct DjuiRect* rect1 = djui_rect_container_create(&body->base, 64);
|
||||
{
|
||||
struct DjuiButton* button1 = djui_button_create(&rect1->base, "Back");
|
||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button1->base, 0.485f, 64);
|
||||
djui_base_set_alignment(&button1->base, DJUI_HALIGN_LEFT, DJUI_VALIGN_TOP);
|
||||
djui_button_set_style(button1, 1);
|
||||
djui_interactable_hook_click(&button1->base, djui_panel_menu_back);
|
||||
|
||||
struct DjuiButton* button2 = djui_button_create(&rect1->base, "Host");
|
||||
djui_base_set_size_type(&button2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button2->base, 0.485f, 64);
|
||||
djui_base_set_alignment(&button2->base, DJUI_HALIGN_RIGHT, DJUI_VALIGN_TOP);
|
||||
djui_interactable_hook_click(&button2->base, djui_panel_host_message_do_host);
|
||||
defaultBase = &button2->base;
|
||||
struct DjuiButton* btnHost = djui_button_right_create(&rect1->base, "Host", DJUI_BUTTON_STYLE_NORMAL, djui_panel_host_message_do_host);
|
||||
struct DjuiButton* btnBack = djui_button_left_create(&rect1->base, "Back", DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
|
||||
if (hideHostButton) {
|
||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button1->base, 1.0f, 64);
|
||||
defaultBase = &button1->base;
|
||||
djui_base_set_visible(&button2->base, false);
|
||||
djui_base_set_enabled(&button2->base, false);
|
||||
djui_base_set_size(&btnBack->base, 1.0f, 64);
|
||||
djui_base_set_visible(&btnHost->base, false);
|
||||
djui_base_set_enabled(&btnHost->base, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
#ifdef DISCORD_SDK
|
||||
if (configNetworkSystem)
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ static void djui_mod_checkbox_on_value_change(UNUSED struct DjuiBase* base) {
|
|||
struct Mod* mod = gLocalMods.entries[index];
|
||||
|
||||
djui_base_set_enabled(node->base, mod->selectable);
|
||||
|
||||
|
||||
// iterate
|
||||
node = node->next;
|
||||
}
|
||||
|
|
@ -86,13 +86,11 @@ static void djui_panel_host_mods_destroy(struct DjuiBase* base) {
|
|||
}
|
||||
|
||||
void djui_panel_host_mods_create(struct DjuiBase* caller) {
|
||||
f32 bodyHeight = (416) + 64 * 1 + 16 * 1;
|
||||
bool isRomHacks = (caller->tag == 1);
|
||||
|
||||
mods_update_selectable();
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, isRomHacks ?
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(isRomHacks ?
|
||||
"\\#ff0800\\R\\#1be700\\O\\#00b3ff\\M \\#ffef00\\H\\#ff0800\\A\\#1be700\\C\\#00b3ff\\K\\#ffef00\\S" :
|
||||
"\\#ff0800\\M\\#1be700\\O\\#00b3ff\\D\\#ffef00\\S"
|
||||
);
|
||||
|
|
@ -106,29 +104,20 @@ void djui_panel_host_mods_create(struct DjuiBase* caller) {
|
|||
if (isRomHacks != (mod->incompatible && strstr(mod->incompatible, "romhack"))) {
|
||||
continue;
|
||||
}
|
||||
struct DjuiCheckbox* checkbox = djui_checkbox_create(layoutBase, mod->name, &mod->enabled);
|
||||
struct DjuiCheckbox* checkbox = djui_checkbox_create(layoutBase, mod->name, &mod->enabled, djui_mod_checkbox_on_value_change);
|
||||
checkbox->base.tag = i;
|
||||
djui_base_set_size_type(&checkbox->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox->base, 1.0f, 32);
|
||||
djui_base_set_enabled(&checkbox->base, mod->selectable);
|
||||
djui_interactable_hook_hover(&checkbox->base, djui_mod_checkbox_on_hover, djui_mod_checkbox_on_hover_end);
|
||||
djui_interactable_hook_value_change(&checkbox->base, djui_mod_checkbox_on_value_change);
|
||||
if (i == 0) { defaultBase = &checkbox->base; }
|
||||
}
|
||||
djui_paginated_calculate_height(paginated);
|
||||
|
||||
struct DjuiButton* button1 = djui_button_create(&body->base, "Back");
|
||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button1->base, 1.0f, 64);
|
||||
djui_button_set_style(button1, 1);
|
||||
djui_interactable_hook_click(&button1->base, djui_panel_menu_back);
|
||||
if (defaultBase == NULL) { defaultBase = &button1->base; }
|
||||
djui_button_create(&body->base, "Back", DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
|
||||
panel->bodySize.value = paginated->base.height.value + 16 + 64;
|
||||
}
|
||||
|
||||
panel->base.destroy = djui_panel_host_mods_destroy;
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
djui_panel_host_mods_description_create();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,37 +34,27 @@ static void djui_panel_host_save_erase(struct DjuiBase* caller) {
|
|||
}
|
||||
|
||||
void djui_panel_host_save_create(struct DjuiBase* caller) {
|
||||
f32 bodyHeight = 32 * 4 + 64 * 1 + 16 * 5;
|
||||
sSaveButtonCaller = caller;
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\S\\#1be700\\A\\#00b3ff\\V\\#ffef00\\E");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\S\\#1be700\\A\\#00b3ff\\V\\#ffef00\\E");
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
{
|
||||
for (int i = 0; i < 4; i++) {
|
||||
struct DjuiRect* rect1 = djui_rect_create(&body->base);
|
||||
djui_base_set_size_type(&rect1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&rect1->base, 1.0f, 32);
|
||||
djui_base_set_color(&rect1->base, 0, 0, 0, 0);
|
||||
struct DjuiRect* rect1 = djui_rect_container_create(&body->base, 32);
|
||||
{
|
||||
struct DjuiButton* button1 = djui_button_create(&rect1->base, "");
|
||||
struct DjuiButton* button1 = djui_button_create(&rect1->base, "", DJUI_BUTTON_STYLE_NORMAL, djui_panel_host_save_button_click);
|
||||
djui_panel_host_save_update_button(button1, i);
|
||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button1->base, 0.74f, 32);
|
||||
djui_interactable_hook_click(&button1->base, djui_panel_host_save_button_click);
|
||||
button1->base.tag = i;
|
||||
if (i == (int)(configHostSaveSlot - 1)) { defaultBase = &button1->base; }
|
||||
sSaveButtons[i] = button1;
|
||||
|
||||
struct DjuiButton* button2 = djui_button_create(&rect1->base, "erase");
|
||||
struct DjuiButton* button2 = djui_button_create(&rect1->base, "erase", DJUI_BUTTON_STYLE_NORMAL, djui_panel_host_save_erase);
|
||||
button2->base.tag = i;
|
||||
djui_base_set_size_type(&button2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button2->base, 0.24f, 32);
|
||||
djui_base_set_alignment(&button2->base, DJUI_HALIGN_RIGHT, DJUI_VALIGN_TOP);
|
||||
djui_interactable_hook_click(&button2->base, djui_panel_host_save_erase);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,51 +43,27 @@ static void djui_panel_host_player_text_change(struct DjuiBase* caller) {
|
|||
}
|
||||
|
||||
void djui_panel_host_settings_create(struct DjuiBase* caller) {
|
||||
f32 bodyHeight = 32 * 8 + 64 * 1 + 16 * 8;
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\S\\#1be700\\E\\#00b3ff\\T\\#ffef00\\T\\#ff0800\\I\\#1be700\\N\\#00b3ff\\G\\#ffef00\\S");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\S\\#1be700\\E\\#00b3ff\\T\\#ffef00\\T\\#ff0800\\I\\#1be700\\N\\#00b3ff\\G\\#ffef00\\S");
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
{
|
||||
char* iChoices[3] = { "Non-solid", "Solid", "Friendly Fire" };
|
||||
struct DjuiSelectionbox* selectionbox1 = djui_selectionbox_create(&body->base, "Player interaction", iChoices, 3, &configPlayerInteraction);
|
||||
djui_base_set_size_type(&selectionbox1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&selectionbox1->base, 1.0f, 32);
|
||||
djui_selectionbox_create(&body->base, "Player interaction", iChoices, 3, &configPlayerInteraction, NULL);
|
||||
|
||||
char* kChoices[3] = { "Weak", "Normal", "Too much" };
|
||||
sKnockbackIndex = (configPlayerKnockbackStrength <= 20)
|
||||
? 0
|
||||
: ((configPlayerKnockbackStrength <= 40) ? 1 : 2);
|
||||
struct DjuiSelectionbox* selectionbox2 = djui_selectionbox_create(&body->base, "Knockback strength", kChoices, 3, &sKnockbackIndex);
|
||||
djui_base_set_size_type(&selectionbox2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&selectionbox2->base, 1.0f, 32);
|
||||
djui_interactable_hook_value_change(&selectionbox2->base, djui_panel_host_settings_knockback_change);
|
||||
char* kChoices[3] = { "Weak", "Normal", "Too much" };
|
||||
djui_selectionbox_create(&body->base, "Knockback strength", kChoices, 3, &sKnockbackIndex, djui_panel_host_settings_knockback_change);
|
||||
|
||||
char* lChoices[3] = { "Leave level", "Stay in level", "Non-stop" };
|
||||
struct DjuiSelectionbox* selectionbox3 = djui_selectionbox_create(&body->base, "On star collection", lChoices, 3, &configStayInLevelAfterStar);
|
||||
djui_base_set_size_type(&selectionbox3->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&selectionbox3->base, 1.0f, 32);
|
||||
djui_selectionbox_create(&body->base, "On star collection", lChoices, 3, &configStayInLevelAfterStar, NULL);
|
||||
|
||||
struct DjuiCheckbox* checkbox2 = djui_checkbox_create(&body->base, "Skip intro cutscene", &configSkipIntro);
|
||||
djui_base_set_size_type(&checkbox2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox2->base, 1.0f, 32);
|
||||
djui_checkbox_create(&body->base, "Skip intro cutscene", &configSkipIntro, NULL);
|
||||
djui_checkbox_create(&body->base, "Share lives", &configShareLives, NULL);
|
||||
djui_checkbox_create(&body->base, "Enable cheats", &configEnableCheats, NULL);
|
||||
djui_checkbox_create(&body->base, "Bubble on death", &configBubbleDeath, NULL);
|
||||
|
||||
struct DjuiCheckbox* checkbox3 = djui_checkbox_create(&body->base, "Share lives", &configShareLives);
|
||||
djui_base_set_size_type(&checkbox3->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox3->base, 1.0f, 32);
|
||||
|
||||
struct DjuiCheckbox* checkbox4 = djui_checkbox_create(&body->base, "Enable cheats", &configEnableCheats);
|
||||
djui_base_set_size_type(&checkbox4->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox4->base, 1.0f, 32);
|
||||
|
||||
struct DjuiCheckbox* checkbox5 = djui_checkbox_create(&body->base, "Bubble on death", &configBubbleDeath);
|
||||
djui_base_set_size_type(&checkbox5->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox5->base, 1.0f, 32);
|
||||
|
||||
struct DjuiRect* rect1 = djui_rect_create(&body->base);
|
||||
djui_base_set_size_type(&rect1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&rect1->base, 1.0f, 32);
|
||||
djui_base_set_color(&rect1->base, 0, 0, 0, 0);
|
||||
struct DjuiRect* rect1 = djui_rect_container_create(&body->base, 32);
|
||||
{
|
||||
struct DjuiText* text1 = djui_text_create(&rect1->base, "Amount of players");
|
||||
djui_base_set_size_type(&text1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
|
|
@ -106,11 +82,7 @@ void djui_panel_host_settings_create(struct DjuiBase* caller) {
|
|||
sPlayerAmount = inputbox1;
|
||||
}
|
||||
|
||||
struct DjuiButton* button1 = djui_button_create(&body->base, "Back");
|
||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button1->base, 1.0f, 64);
|
||||
djui_button_set_style(button1, 1);
|
||||
djui_interactable_hook_click(&button1->base, djui_panel_menu_back);
|
||||
djui_button_create(&body->base, "Back", DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
}
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -157,20 +157,16 @@ void djui_panel_join_do_join(struct DjuiBase* caller) {
|
|||
}
|
||||
|
||||
void djui_panel_join_create(struct DjuiBase* caller) {
|
||||
f32 bodyHeight = 2 + 32 + 16 * 2 + 64;
|
||||
|
||||
u16 directLines = 1;
|
||||
f32 directTextHeight = 32 * 0.8125f * directLines + 8;
|
||||
bodyHeight += directTextHeight + 16;
|
||||
|
||||
#ifdef DISCORD_SDK
|
||||
u16 discordLines = 8;
|
||||
f32 discordTextHeight = 32 * 0.8125f * discordLines + 8;
|
||||
bodyHeight += discordTextHeight + 16;
|
||||
#endif
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\J\\#1be700\\O\\#00b3ff\\I\\#ffef00\\N");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\J\\#1be700\\O\\#00b3ff\\I\\#ffef00\\N");
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
{
|
||||
#ifdef DISCORD_SDK
|
||||
|
|
@ -196,26 +192,18 @@ void djui_panel_join_create(struct DjuiBase* caller) {
|
|||
sInputboxIp = inputbox1;
|
||||
djui_panel_join_ip_text_set(inputbox1);
|
||||
|
||||
struct DjuiRect* rect2 = djui_rect_create(&body->base);
|
||||
djui_base_set_size_type(&rect2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&rect2->base, 1.0f, 64);
|
||||
djui_base_set_color(&rect2->base, 0, 0, 0, 0);
|
||||
struct DjuiRect* rect2 = djui_rect_container_create(&body->base, 64);
|
||||
{
|
||||
struct DjuiButton* button1 = djui_button_create(&rect2->base, "Back");
|
||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
struct DjuiButton* button1 = djui_button_create(&rect2->base, "Back", DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
djui_base_set_size(&button1->base, 0.485f, 64);
|
||||
djui_base_set_alignment(&button1->base, DJUI_HALIGN_LEFT, DJUI_VALIGN_TOP);
|
||||
djui_button_set_style(button1, 1);
|
||||
djui_interactable_hook_click(&button1->base, djui_panel_menu_back);
|
||||
|
||||
struct DjuiButton* button2 = djui_button_create(&rect2->base, "Join");
|
||||
djui_base_set_size_type(&button2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
struct DjuiButton* button2 = djui_button_create(&rect2->base, "Join", DJUI_BUTTON_STYLE_NORMAL, djui_panel_join_do_join);
|
||||
djui_base_set_size(&button2->base, 0.485f, 64);
|
||||
djui_base_set_alignment(&button2->base, DJUI_HALIGN_RIGHT, DJUI_VALIGN_TOP);
|
||||
djui_interactable_hook_click(&button2->base, djui_panel_join_do_join);
|
||||
defaultBase = &button2->base;
|
||||
}
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, defaultBase);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,14 +44,10 @@ void djui_panel_join_message_create(struct DjuiBase* caller) {
|
|||
// don't recreate panel if it's already visible
|
||||
if (gDjuiPanelJoinMessageVisible) { return; }
|
||||
|
||||
f32 bodyHeight = 64 + 16 + 16;
|
||||
|
||||
u16 directLines = 8;
|
||||
f32 directTextHeight = 32 * 0.8125f * directLines + 8;
|
||||
bodyHeight += directTextHeight + 16;
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\J\\#1be700\\O\\#00b3ff\\I\\#ffef00\\N\\#1be700\\I\\#00b3ff\\N\\#ffef00\\G");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\J\\#1be700\\O\\#00b3ff\\I\\#ffef00\\N\\#1be700\\I\\#00b3ff\\N\\#ffef00\\G");
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
{
|
||||
struct DjuiText* text1 = djui_text_create(&body->base, "...");
|
||||
|
|
@ -66,16 +62,10 @@ void djui_panel_join_message_create(struct DjuiBase* caller) {
|
|||
gDownloadProgress = 0;
|
||||
djui_progress_bar_create(&body->base, &gDownloadProgress, 0.0f, 1.0f);
|
||||
|
||||
struct DjuiButton* button1 = djui_button_create(&body->base, "Cancel");
|
||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button1->base, 1.0f, 64);
|
||||
djui_base_set_alignment(&button1->base, DJUI_HALIGN_LEFT, DJUI_VALIGN_TOP);
|
||||
djui_button_set_style(button1, 1);
|
||||
djui_interactable_hook_click(&button1->base, djui_panel_join_message_cancel);
|
||||
defaultBase = &button1->base;
|
||||
djui_button_create(&body->base, "Cancel", DJUI_BUTTON_STYLE_BACK, djui_panel_join_message_cancel);
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
gDjuiPanelJoinMessageVisible = true;
|
||||
sDisplayingError = false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,35 +16,16 @@ static void djui_panel_main_quit(struct DjuiBase* caller) {
|
|||
}
|
||||
|
||||
void djui_panel_main_create(struct DjuiBase* caller) {
|
||||
f32 bodyHeight = 64 * 4 + 16 * 3;
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\SM\\#1be700\\64\\#00b3ff\\EX\n\\#ffef00\\COOP");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\SM\\#1be700\\64\\#00b3ff\\EX\n\\#ffef00\\COOP");
|
||||
{
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
{
|
||||
struct DjuiButton* button1 = djui_button_create(&body->base, "Host");
|
||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button1->base, 1.0f, 64);
|
||||
struct DjuiButton* button1 = djui_button_create(&body->base, "Host", DJUI_BUTTON_STYLE_NORMAL, djui_panel_host_create);
|
||||
djui_cursor_input_controlled_center(&button1->base);
|
||||
djui_interactable_hook_click(&button1->base, djui_panel_host_create);
|
||||
defaultBase = &button1->base;
|
||||
|
||||
struct DjuiButton* button2 = djui_button_create(&body->base, "Join");
|
||||
djui_base_set_size_type(&button2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button2->base, 1.0f, 64);
|
||||
djui_interactable_hook_click(&button2->base, djui_panel_join_create);
|
||||
|
||||
struct DjuiButton* button3 = djui_button_create(&body->base, "Options");
|
||||
djui_base_set_size_type(&button3->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button3->base, 1.0f, 64);
|
||||
djui_interactable_hook_click(&button3->base, djui_panel_options_create);
|
||||
|
||||
struct DjuiButton* button4 = djui_button_create(&body->base, "Quit");
|
||||
djui_base_set_size_type(&button4->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button4->base, 1.0f, 64);
|
||||
djui_button_set_style(button4, 1);
|
||||
djui_interactable_hook_click(&button4->base, djui_panel_main_quit);
|
||||
djui_button_create(&body->base, "Join", DJUI_BUTTON_STYLE_NORMAL, djui_panel_join_create);
|
||||
djui_button_create(&body->base, "Options", DJUI_BUTTON_STYLE_NORMAL, djui_panel_options_create);
|
||||
djui_button_create(&body->base, "Quit", DJUI_BUTTON_STYLE_BACK, djui_panel_main_quit);
|
||||
}
|
||||
|
||||
char* version = get_version_local();
|
||||
|
|
@ -55,7 +36,7 @@ void djui_panel_main_create(struct DjuiBase* caller) {
|
|||
djui_text_set_alignment(footer, DJUI_HALIGN_CENTER, DJUI_VALIGN_BOTTOM);
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
gInteractableOverridePad = true;
|
||||
gDjuiPanelMainCreated = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ void djui_panel_menu_back(UNUSED struct DjuiBase* base) {
|
|||
djui_panel_back();
|
||||
}
|
||||
|
||||
struct DjuiThreePanel* djui_panel_menu_create(f32 bodyHeight, char* headerText) {
|
||||
struct DjuiThreePanel* panel = djui_three_panel_create(&gDjuiRoot->base, 64, bodyHeight, 0);
|
||||
struct DjuiThreePanel* djui_panel_menu_create(char* headerText) {
|
||||
struct DjuiThreePanel* panel = djui_three_panel_create(&gDjuiRoot->base, 64, 0, 0);
|
||||
djui_base_set_size_type(&panel->base, DJUI_SVT_ABSOLUTE, DJUI_SVT_RELATIVE);
|
||||
djui_base_set_size(&panel->base, DJUI_DEFAULT_PANEL_WIDTH, 1.0f);
|
||||
djui_base_set_color(&panel->base, 0, 0, 0, 240);
|
||||
|
|
@ -27,7 +27,7 @@ struct DjuiThreePanel* djui_panel_menu_create(f32 bodyHeight, char* headerText)
|
|||
struct DjuiFlowLayout* body = djui_flow_layout_create(&panel->base);
|
||||
djui_base_set_alignment(&body->base, DJUI_HALIGN_CENTER, DJUI_VALIGN_CENTER);
|
||||
djui_base_set_size_type(&body->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&body->base, 1.0f, bodyHeight);
|
||||
djui_base_set_size(&body->base, 1.0f, 0);
|
||||
djui_base_set_color(&body->base, 0, 0, 0, 0);
|
||||
djui_flow_layout_set_margin(body, 16);
|
||||
djui_flow_layout_set_flow_direction(body, DJUI_FLOW_DIR_DOWN);
|
||||
|
|
|
|||
|
|
@ -2,4 +2,4 @@
|
|||
#include "djui.h"
|
||||
|
||||
void djui_panel_menu_back(struct DjuiBase* base);
|
||||
struct DjuiThreePanel* djui_panel_menu_create(f32 bodyHeight, char* headerText);
|
||||
struct DjuiThreePanel* djui_panel_menu_create(char* headerText);
|
||||
|
|
|
|||
|
|
@ -10,10 +10,7 @@ static void djui_panel_random_menu(UNUSED struct DjuiBase* caller) {
|
|||
}
|
||||
|
||||
void djui_panel_main_menu_create(struct DjuiBase* caller) {
|
||||
f32 bodyHeight = 32 * 4 + 64 * 1 + 16 * 4;
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\M\\#1be700\\A\\#00b3ff\\I\\#ffef00\\N \\#ff0800\\M\\#ff0800\\E\\#1be700\\N\\#ffef00\\U\\#ff0800\\");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\M\\#1be700\\A\\#00b3ff\\I\\#ffef00\\N \\#ff0800\\M\\#ff0800\\E\\#1be700\\N\\#ffef00\\U\\#ff0800\\");
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
|
||||
{
|
||||
|
|
@ -36,33 +33,16 @@ void djui_panel_main_menu_create(struct DjuiBase* caller) {
|
|||
"PSS",
|
||||
"TTC",
|
||||
};
|
||||
struct DjuiSelectionbox* selectionbox1 = djui_selectionbox_create(&body->base, "Level", levelChoices, 17, &configMenuLevel);
|
||||
djui_base_set_size_type(&selectionbox1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&selectionbox1->base, 1.0f, 32);
|
||||
struct DjuiSelectionbox* selectionbox1 = djui_selectionbox_create(&body->base, "Level", levelChoices, 17, &configMenuLevel, NULL);
|
||||
djui_base_set_enabled(&selectionbox1->base, !configMenuRandom);
|
||||
sLevelBox = selectionbox1;
|
||||
defaultBase = &selectionbox1->base;
|
||||
|
||||
struct DjuiCheckbox* checkbox1 = djui_checkbox_create(&body->base, "Use Stage Music", &configMenuSound);
|
||||
djui_base_set_size_type(&checkbox1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox1->base, 1.0f, 32);
|
||||
|
||||
struct DjuiCheckbox* checkbox2 = djui_checkbox_create(&body->base, "Random Stage", &configMenuRandom);
|
||||
djui_base_set_size_type(&checkbox2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox2->base, 1.0f, 32);
|
||||
djui_interactable_hook_value_change(&checkbox2->base, djui_panel_random_menu);
|
||||
djui_checkbox_create(&body->base, "Use Stage Music", &configMenuSound, NULL);
|
||||
djui_checkbox_create(&body->base, "Random Stage", &configMenuRandom, djui_panel_random_menu);
|
||||
djui_checkbox_create(&body->base, "Play Vanilla Demos", &configMenuDemos, stop_demo);
|
||||
|
||||
struct DjuiCheckbox* checkbox3 = djui_checkbox_create(&body->base, "Play Vanilla Demos", &configMenuDemos);
|
||||
djui_base_set_size_type(&checkbox3->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox3->base, 1.0f, 32);
|
||||
djui_interactable_hook_value_change(&checkbox3->base, stop_demo);
|
||||
|
||||
struct DjuiButton* button1 = djui_button_create(&body->base, "Back");
|
||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button1->base, 1.0f, 64);
|
||||
djui_button_set_style(button1, 1);
|
||||
djui_interactable_hook_click(&button1->base, djui_panel_menu_back);
|
||||
djui_button_create(&body->base, "Back", DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,88 +5,39 @@
|
|||
|
||||
#ifdef DEVELOPMENT
|
||||
void djui_panel_options_debug_create(struct DjuiBase* caller) {
|
||||
f32 bodyHeight = 32 * 7 + 64 * 1 + 16 * 1;
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\D\\#1be700\\E\\#00b3ff\\B\\#ffef00\\U\\#ff0800\\G");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\D\\#1be700\\E\\#00b3ff\\B\\#ffef00\\U\\#ff0800\\G");
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
|
||||
{
|
||||
struct DjuiCheckbox* checkbox1 = djui_checkbox_create(&body->base, "Fixed Collisions", (bool*)&gLevelValues.fixCollisionBugs);
|
||||
djui_base_set_size_type(&checkbox1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox1->base, 1.0f, 32);
|
||||
defaultBase = &checkbox1->base;
|
||||
djui_checkbox_create(&body->base, "Fixed Collisions", (bool*)&gLevelValues.fixCollisionBugs, NULL);
|
||||
djui_checkbox_create(&body->base, "Lua Profiler", &configLuaProfiler, NULL);
|
||||
djui_checkbox_create(&body->base, "Debug Print", &configDebugPrint, NULL);
|
||||
djui_checkbox_create(&body->base, "Debug Info", &configDebugInfo, NULL);
|
||||
djui_checkbox_create(&body->base, "Debug Errors", &configDebugError, NULL);
|
||||
|
||||
struct DjuiCheckbox* checkbox2 = djui_checkbox_create(&body->base, "Lua Profiler", &configLuaProfiler);
|
||||
djui_base_set_size_type(&checkbox2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox2->base, 1.0f, 32);
|
||||
defaultBase = &checkbox2->base;
|
||||
|
||||
struct DjuiCheckbox* checkbox3 = djui_checkbox_create(&body->base, "Debug Print", &configDebugPrint);
|
||||
djui_base_set_size_type(&checkbox3->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox3->base, 1.0f, 32);
|
||||
defaultBase = &checkbox3->base;
|
||||
|
||||
struct DjuiCheckbox* checkbox4 = djui_checkbox_create(&body->base, "Debug Info", &configDebugInfo);
|
||||
djui_base_set_size_type(&checkbox4->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox4->base, 1.0f, 32);
|
||||
defaultBase = &checkbox4->base;
|
||||
|
||||
struct DjuiCheckbox* checkbox5 = djui_checkbox_create(&body->base, "Debug Errors", &configDebugError);
|
||||
djui_base_set_size_type(&checkbox5->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox5->base, 1.0f, 32);
|
||||
defaultBase = &checkbox5->base;
|
||||
|
||||
struct DjuiButton* button1 = djui_button_create(&body->base, "Back");
|
||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button1->base, 1.0f, 64);
|
||||
djui_button_set_style(button1, 1);
|
||||
djui_interactable_hook_click(&button1->base, djui_panel_menu_back);
|
||||
djui_button_create(&body->base, "Back", DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
}
|
||||
#endif
|
||||
|
||||
void djui_panel_misc_create(struct DjuiBase* caller) {
|
||||
#ifdef DEVELOPMENT
|
||||
f32 bodyHeight = 64 * 5 + 16 * 4;
|
||||
#else
|
||||
f32 bodyHeight = 64 * 4 + 16 * 3;
|
||||
#endif
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\M\\#1be700\\I\\#00b3ff\\S\\#ffef00\\C");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\M\\#1be700\\I\\#00b3ff\\S\\#ffef00\\C");
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
|
||||
{
|
||||
struct DjuiCheckbox* checkbox1 = djui_checkbox_create(&body->base, "Pause In Singleplayer", &configSingleplayerPause);
|
||||
djui_base_set_size_type(&checkbox1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox1->base, 1.0f, 32);
|
||||
defaultBase = &checkbox1->base;
|
||||
djui_checkbox_create(&body->base, "Pause In Singleplayer", &configSingleplayerPause, NULL);
|
||||
djui_checkbox_create(&body->base, "Disable Popups", &configDisablePopups, NULL);
|
||||
|
||||
struct DjuiCheckbox* checkbox2 = djui_checkbox_create(&body->base, "Disable Popups", &configDisablePopups);
|
||||
djui_base_set_size_type(&checkbox2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&checkbox2->base, 1.0f, 32);
|
||||
|
||||
struct DjuiButton* button1 = djui_button_create(&body->base, "Menu Options");
|
||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button1->base, 1.0f, 64);
|
||||
djui_interactable_hook_click(&button1->base, djui_panel_main_menu_create);
|
||||
djui_button_create(&body->base, "Menu Options", DJUI_BUTTON_STYLE_NORMAL, djui_panel_main_menu_create);
|
||||
|
||||
#ifdef DEVELOPMENT
|
||||
struct DjuiButton* button2 = djui_button_create(&body->base, "Debug");
|
||||
djui_base_set_size_type(&button2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button2->base, 1.0f, 64);
|
||||
djui_interactable_hook_click(&button2->base, djui_panel_options_debug_create);
|
||||
djui_button_create(&body->base, "Debug", DJUI_BUTTON_STYLE_NORMAL, djui_panel_options_debug_create);
|
||||
#endif
|
||||
|
||||
struct DjuiButton* button3 = djui_button_create(&body->base, "Back");
|
||||
djui_base_set_size_type(&button3->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button3->base, 1.0f, 64);
|
||||
djui_button_set_style(button3, 1);
|
||||
djui_interactable_hook_click(&button3->base, djui_panel_menu_back);
|
||||
djui_button_create(&body->base, "Back", DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,8 @@ void djui_panel_modlist_create(UNUSED struct DjuiBase* caller) {
|
|||
if (gActiveMods.entryCount == 0) { return; }
|
||||
|
||||
f32 bodyHeight = (gActiveMods.entryCount * 32) + (gActiveMods.entryCount - 1) * 4;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\M\\#1be700\\O\\#00b3ff\\D\\#ffef00\\S");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\M\\#1be700\\O\\#00b3ff\\D\\#ffef00\\S");
|
||||
djui_three_panel_set_body_size(panel, bodyHeight);
|
||||
gDjuiModList = panel;
|
||||
|
||||
djui_base_set_alignment(&panel->base, DJUI_HALIGN_CENTER, DJUI_VALIGN_CENTER);
|
||||
|
|
|
|||
|
|
@ -8,52 +8,17 @@ void djui_panel_options_back(struct DjuiBase* caller) {
|
|||
}
|
||||
|
||||
void djui_panel_options_create(struct DjuiBase* caller) {
|
||||
f32 bodyHeight = 64 * 7 + 16 * 6;
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\O\\#1be700\\P\\#00b3ff\\T\\#ffef00\\I\\#ff0800\\O\\#1be700\\N\\#00b3ff\\S");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\O\\#1be700\\P\\#00b3ff\\T\\#ffef00\\I\\#ff0800\\O\\#1be700\\N\\#00b3ff\\S");
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
{
|
||||
struct DjuiButton* button1 = djui_button_create(&body->base, "Player");
|
||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button1->base, 1.0f, 64);
|
||||
djui_interactable_hook_click(&button1->base, djui_panel_player_create);
|
||||
defaultBase = &button1->base;
|
||||
|
||||
struct DjuiButton* button2 = djui_button_create(&body->base, "Camera");
|
||||
djui_base_set_size_type(&button2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button2->base, 1.0f, 64);
|
||||
djui_interactable_hook_click(&button2->base, djui_panel_camera_create);
|
||||
if (defaultBase == NULL) {
|
||||
defaultBase = &button2->base;
|
||||
}
|
||||
|
||||
struct DjuiButton* button3 = djui_button_create(&body->base, "Controls");
|
||||
djui_base_set_size_type(&button3->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button3->base, 1.0f, 64);
|
||||
djui_interactable_hook_click(&button3->base, djui_panel_controls_create);
|
||||
|
||||
struct DjuiButton* button4 = djui_button_create(&body->base, "Display");
|
||||
djui_base_set_size_type(&button4->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button4->base, 1.0f, 64);
|
||||
djui_interactable_hook_click(&button4->base, djui_panel_display_create);
|
||||
|
||||
struct DjuiButton* button5 = djui_button_create(&body->base, "Sound");
|
||||
djui_base_set_size_type(&button5->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button5->base, 1.0f, 64);
|
||||
djui_interactable_hook_click(&button5->base, djui_panel_sound_create);
|
||||
|
||||
struct DjuiButton* button6 = djui_button_create(&body->base, "Misc");
|
||||
djui_base_set_size_type(&button6->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button6->base, 1.0f, 64);
|
||||
djui_interactable_hook_click(&button6->base, djui_panel_misc_create);
|
||||
|
||||
struct DjuiButton* button7 = djui_button_create(&body->base, "Back");
|
||||
djui_base_set_size_type(&button7->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button7->base, 1.0f, 64);
|
||||
djui_button_set_style(button7, 1);
|
||||
djui_interactable_hook_click(&button7->base, djui_panel_options_back);
|
||||
djui_button_create(&body->base, "Player", DJUI_BUTTON_STYLE_NORMAL, djui_panel_player_create);
|
||||
djui_button_create(&body->base, "Camera", DJUI_BUTTON_STYLE_NORMAL, djui_panel_camera_create);
|
||||
djui_button_create(&body->base, "Controls", DJUI_BUTTON_STYLE_NORMAL, djui_panel_controls_create);
|
||||
djui_button_create(&body->base, "Display", DJUI_BUTTON_STYLE_NORMAL, djui_panel_display_create);
|
||||
djui_button_create(&body->base, "Sound", DJUI_BUTTON_STYLE_NORMAL, djui_panel_sound_create);
|
||||
djui_button_create(&body->base, "Misc", DJUI_BUTTON_STYLE_NORMAL, djui_panel_misc_create);
|
||||
djui_button_create(&body->base, "Back", DJUI_BUTTON_STYLE_BACK, djui_panel_options_back);
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,69 +36,38 @@ static void djui_panel_pause_quit(struct DjuiBase* caller) {
|
|||
void djui_panel_pause_create(struct DjuiBase* caller) {
|
||||
if (gDjuiChatBoxFocus) { djui_chat_box_toggle(); }
|
||||
|
||||
f32 bodyHeight = 64 * 4 + 16 * 3;
|
||||
if (gServerSettings.enableCheats) { bodyHeight += 64 + 16; }
|
||||
if (gNetworkType == NT_SERVER) { bodyHeight += 64 + 16; }
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\P\\#1be700\\A\\#00b3ff\\U\\#ffef00\\S\\#ff0800\\E");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\P\\#1be700\\A\\#00b3ff\\U\\#ffef00\\S\\#ff0800\\E");
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
{
|
||||
|
||||
struct DjuiRect* rect1 = djui_rect_create(&body->base);
|
||||
djui_base_set_size_type(&rect1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&rect1->base, 1.0f, 64);
|
||||
djui_base_set_color(&rect1->base, 0, 0, 0, 0);
|
||||
struct DjuiRect* rect1 = djui_rect_container_create(&body->base, 64);
|
||||
{
|
||||
djui_button_left_create(&rect1->base, "Player", DJUI_BUTTON_STYLE_NORMAL, djui_panel_player_create);
|
||||
djui_button_right_create(&rect1->base, "DynOS Packs", DJUI_BUTTON_STYLE_NORMAL, djui_panel_dynos_create);
|
||||
}
|
||||
|
||||
struct DjuiButton* button1 = djui_button_create(&rect1->base, "Player");
|
||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button1->base, 0.47f, 64);
|
||||
djui_interactable_hook_click(&button1->base, djui_panel_player_create);
|
||||
|
||||
struct DjuiButton* button2 = djui_button_create(&rect1->base, "DynOS Packs");
|
||||
djui_base_set_size_type(&button2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button2->base, 0.5f, 64);
|
||||
djui_base_set_alignment(&button2->base, DJUI_HALIGN_RIGHT, DJUI_VALIGN_TOP);
|
||||
djui_interactable_hook_click(&button2->base, djui_panel_dynos_create);
|
||||
|
||||
struct DjuiButton* button3 = djui_button_create(&body->base, "Options");
|
||||
djui_base_set_size_type(&button3->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button3->base, 1.0f, 64);
|
||||
djui_interactable_hook_click(&button3->base, djui_panel_options_create);
|
||||
struct DjuiButton* button3 = djui_button_create(&body->base, "Options", DJUI_BUTTON_STYLE_NORMAL, djui_panel_options_create);
|
||||
defaultBase = &button3->base;
|
||||
|
||||
if (gServerSettings.enableCheats) {
|
||||
struct DjuiButton* button4 = djui_button_create(&body->base, "Cheats");
|
||||
djui_base_set_size_type(&button4->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button4->base, 1.0f, 64);
|
||||
djui_interactable_hook_click(&button4->base, djui_panel_cheats_create);
|
||||
djui_button_create(&body->base, "Cheats", DJUI_BUTTON_STYLE_NORMAL, djui_panel_cheats_create);
|
||||
}
|
||||
|
||||
struct DjuiButton* button5 = djui_button_create(&body->base, "Resume");
|
||||
djui_base_set_size_type(&button5->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button5->base, 1.0f, 64);
|
||||
djui_interactable_hook_click(&button5->base, djui_panel_pause_resume);
|
||||
|
||||
if (gNetworkType == NT_SERVER) {
|
||||
struct DjuiButton* button6 = djui_button_create(&body->base, "Server Settings");
|
||||
djui_base_set_size_type(&button6->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button6->base, 1.0f, 64);
|
||||
djui_interactable_hook_click(&button6->base, djui_panel_host_create);
|
||||
djui_button_create(&body->base, "Server Settings", DJUI_BUTTON_STYLE_NORMAL, djui_panel_host_create);
|
||||
}
|
||||
|
||||
struct DjuiButton* button7;
|
||||
djui_button_create(&body->base, "Resume", DJUI_BUTTON_STYLE_NORMAL, djui_panel_pause_resume);
|
||||
|
||||
if (gNetworkType == NT_SERVER) {
|
||||
button7 = djui_button_create(&body->base, "Stop Hosting");
|
||||
djui_button_create(&body->base, "Stop Hosting", DJUI_BUTTON_STYLE_BACK, djui_panel_pause_quit);
|
||||
} else {
|
||||
button7 = djui_button_create(&body->base, "Disconnect");
|
||||
djui_button_create(&body->base, "Disconnect", DJUI_BUTTON_STYLE_BACK, djui_panel_pause_quit);
|
||||
}
|
||||
djui_base_set_size_type(&button7->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button7->base, 1.0f, 64);
|
||||
djui_interactable_hook_click(&button7->base, djui_panel_pause_quit);
|
||||
djui_button_set_style(button7, 1);
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, defaultBase);
|
||||
gInteractableOverridePad = true;
|
||||
gDjuiPanelPauseCreated = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ static unsigned int sSliderChannels[3] = {0};
|
|||
|
||||
static struct DjuiSelectionbox* sPalettePresetSelection;
|
||||
|
||||
static struct DjuiSelectionbox* sPartSelection;
|
||||
static struct DjuiInputbox* sHexColorTextBox;
|
||||
static struct DjuiSlider *sSliderR, *sSliderG, *sSliderB;
|
||||
|
||||
|
|
@ -117,10 +116,7 @@ void djui_panel_player_edit_palette_destroy(struct DjuiBase* caller) {
|
|||
static void djui_panel_player_edit_palette_create(struct DjuiBase* caller) {
|
||||
char* sPartStrings[PLAYER_PART_MAX] = { "Overalls", "Shirt", "Gloves", "Shoes", "Hair", "Skin", "Cap" };
|
||||
|
||||
f32 bodyHeight = 32 * 5 + 64 * 1 + 16 * 5;
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\P\\#1be700\\A\\#00b3ff\\L\\#ffef00\\E\\#ff0800\\T\\#1be700\\T\\#00b3ff\\E");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\P\\#1be700\\A\\#00b3ff\\L\\#ffef00\\E\\#ff0800\\T\\#1be700\\T\\#00b3ff\\E");
|
||||
|
||||
// Set current palette to custom when clicking on Edit Palette
|
||||
sPalettePresetIndex = PALETTE_CUSTOM;
|
||||
|
|
@ -136,15 +132,9 @@ static void djui_panel_player_edit_palette_create(struct DjuiBase* caller) {
|
|||
|
||||
{
|
||||
sCurrentPlayerPart = SHIRT;
|
||||
sPartSelection = djui_selectionbox_create(&body->base, "Part", sPartStrings, PLAYER_PART_MAX, &sCurrentPlayerPart);
|
||||
djui_base_set_size_type(&sPartSelection->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&sPartSelection->base, 1.0f, 32);
|
||||
djui_interactable_hook_value_change(&sPartSelection->base, djui_panel_player_edit_palette_part_changed);
|
||||
djui_selectionbox_create(&body->base, "Part", sPartStrings, PLAYER_PART_MAX, &sCurrentPlayerPart, djui_panel_player_edit_palette_part_changed);
|
||||
|
||||
struct DjuiRect* rect1 = djui_rect_create(&body->base);
|
||||
djui_base_set_size_type(&rect1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&rect1->base, 1.0f, 32);
|
||||
djui_base_set_color(&rect1->base, 0, 0, 0, 0);
|
||||
struct DjuiRect* rect1 = djui_rect_container_create(&body->base, 32);
|
||||
{
|
||||
struct DjuiText* text1 = djui_text_create(&rect1->base, "Hex Code");
|
||||
djui_base_set_size_type(&text1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
|
|
@ -162,29 +152,14 @@ static void djui_panel_player_edit_palette_create(struct DjuiBase* caller) {
|
|||
|
||||
for (int i = 0; i < 3; i++) sSliderChannels[i] = configCustomPalette.parts[SHIRT][i];
|
||||
|
||||
sSliderR = djui_slider_create(&body->base, "Red", &sSliderChannels[0], 0, 255);
|
||||
djui_base_set_size_type(&sSliderR->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_interactable_hook_value_change(&sSliderR->base, djui_panel_player_edit_palette_red_changed);
|
||||
djui_base_set_size(&sSliderR->base, 1.0f, 32);
|
||||
sSliderR = djui_slider_create(&body->base, "Red", &sSliderChannels[0], 0, 255, djui_panel_player_edit_palette_red_changed);
|
||||
sSliderG = djui_slider_create(&body->base, "Green", &sSliderChannels[1], 0, 255, djui_panel_player_edit_palette_green_changed);
|
||||
sSliderB = djui_slider_create(&body->base, "Blue", &sSliderChannels[2], 0, 255, djui_panel_player_edit_palette_blue_changed);
|
||||
|
||||
sSliderG = djui_slider_create(&body->base, "Green", &sSliderChannels[1], 0, 255);
|
||||
djui_base_set_size_type(&sSliderG->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_interactable_hook_value_change(&sSliderG->base, djui_panel_player_edit_palette_green_changed);
|
||||
djui_base_set_size(&sSliderG->base, 1.0f, 32);
|
||||
|
||||
sSliderB = djui_slider_create(&body->base, "Blue", &sSliderChannels[2], 0, 255);
|
||||
djui_base_set_size_type(&sSliderB->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_interactable_hook_value_change(&sSliderB->base, djui_panel_player_edit_palette_blue_changed);
|
||||
djui_base_set_size(&sSliderB->base, 1.0f, 32);
|
||||
|
||||
struct DjuiButton* button6 = djui_button_create(&body->base, "Back");
|
||||
djui_base_set_size_type(&button6->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button6->base, 1.0f, 64);
|
||||
djui_button_set_style(button6, 1);
|
||||
djui_interactable_hook_click(&button6->base, djui_panel_menu_back);
|
||||
djui_button_create(&body->base, "Back", DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
}
|
||||
|
||||
static bool djui_panel_player_name_valid(char* buffer) {
|
||||
|
|
@ -245,31 +220,22 @@ static void djui_panel_player_prevent_demo(struct DjuiBase* caller) {
|
|||
if (caller != NULL) {
|
||||
djui_panel_menu_back(NULL);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (inPlayerMenu) {
|
||||
inPlayerMenu = false;
|
||||
djui_panel_menu_back(NULL);
|
||||
} else {
|
||||
inPlayerMenu = true;
|
||||
}
|
||||
}
|
||||
|
||||
static void djui_panel_player_destroy(UNUSED struct DjuiBase* caller) {
|
||||
gInPlayerMenu = false;
|
||||
}
|
||||
|
||||
void djui_panel_player_create(struct DjuiBase* caller) {
|
||||
f32 bodyHeight = 32 * 3 + 64 * 2 + 16 * 5;
|
||||
|
||||
djui_panel_player_prevent_demo(NULL);
|
||||
gInPlayerMenu = true;
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\P\\#1be700\\L\\#00b3ff\\A\\#ffef00\\Y\\#ff0800\\E\\#1be700\\R");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\P\\#1be700\\L\\#00b3ff\\A\\#ffef00\\Y\\#ff0800\\E\\#1be700\\R");
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
|
||||
{
|
||||
struct DjuiRect* rect1 = djui_rect_create(&body->base);
|
||||
djui_base_set_size_type(&rect1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&rect1->base, 1.0f, 32);
|
||||
djui_base_set_color(&rect1->base, 0, 0, 0, 0);
|
||||
struct DjuiRect* rect1 = djui_rect_container_create(&body->base, 32);
|
||||
{
|
||||
struct DjuiText* text1 = djui_text_create(&rect1->base, "Name");
|
||||
djui_base_set_size_type(&text1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
|
|
@ -294,10 +260,7 @@ void djui_panel_player_create(struct DjuiBase* caller) {
|
|||
for (int i = 0; i < CT_MAX; i++) {
|
||||
modelChoices[i] = gCharacters[i].name;
|
||||
}
|
||||
struct DjuiSelectionbox* selectionbox1 = djui_selectionbox_create(&body->base, "Model", modelChoices, CT_MAX, &configPlayerModel);
|
||||
djui_base_set_size_type(&selectionbox1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&selectionbox1->base, 1.0f, 32);
|
||||
djui_interactable_hook_value_change(&selectionbox1->base, djui_panel_player_value_changed);
|
||||
djui_selectionbox_create(&body->base, "Model", modelChoices, CT_MAX, &configPlayerModel, djui_panel_player_value_changed);
|
||||
|
||||
char* paletteChoices[PALETTE_PRESET_MAX+1] = {
|
||||
"Mario",
|
||||
|
|
@ -342,22 +305,12 @@ void djui_panel_player_create(struct DjuiBase* caller) {
|
|||
}
|
||||
}
|
||||
|
||||
sPalettePresetSelection = djui_selectionbox_create(&body->base, "Palette Preset", paletteChoices, PALETTE_PRESET_MAX+1, &sPalettePresetIndex);
|
||||
djui_base_set_size_type(&sPalettePresetSelection->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&sPalettePresetSelection->base, 1.0f, 32);
|
||||
djui_interactable_hook_value_change(&sPalettePresetSelection->base, djui_panel_player_value_changed);
|
||||
sPalettePresetSelection = djui_selectionbox_create(&body->base, "Palette Preset", paletteChoices, PALETTE_PRESET_MAX+1, &sPalettePresetIndex, djui_panel_player_value_changed);
|
||||
|
||||
struct DjuiButton* editPaletteButton = djui_button_create(&body->base, "Edit Palette");
|
||||
djui_base_set_size_type(&editPaletteButton->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&editPaletteButton->base, 1.0f, 64);
|
||||
djui_interactable_hook_click(&editPaletteButton->base, djui_panel_player_edit_palette_create);
|
||||
|
||||
struct DjuiButton* button6 = djui_button_create(&body->base, "Back");
|
||||
djui_base_set_size_type(&button6->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button6->base, 1.0f, 64);
|
||||
djui_button_set_style(button6, 1);
|
||||
djui_interactable_hook_click(&button6->base, djui_panel_player_prevent_demo);
|
||||
djui_button_create(&body->base, "Edit Palette", DJUI_BUTTON_STYLE_NORMAL, djui_panel_player_edit_palette_create);
|
||||
djui_button_create(&body->base, "Back", DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
struct DjuiPanel* p = djui_panel_add(caller, panel, NULL);
|
||||
p->on_panel_destroy = djui_panel_player_destroy;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,7 +66,8 @@ void djui_panel_playerlist_on_render_pre(UNUSED struct DjuiBase* base, UNUSED bo
|
|||
void djui_panel_playerlist_create(UNUSED struct DjuiBase* caller) {
|
||||
f32 bodyHeight = (MAX_PLAYERS * 32) + (MAX_PLAYERS - 1) * 4;
|
||||
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\P\\#1be700\\L\\#00b3ff\\A\\#ffef00\\Y\\#ff0800\\E\\#1be700\\R\\#00b3ff\\S");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\P\\#1be700\\L\\#00b3ff\\A\\#ffef00\\Y\\#ff0800\\E\\#1be700\\R\\#00b3ff\\S");
|
||||
djui_three_panel_set_body_size(panel, bodyHeight);
|
||||
gDjuiPlayerList = panel;
|
||||
panel->base.on_render_pre = djui_panel_playerlist_on_render_pre;
|
||||
djui_base_set_alignment(&panel->base, DJUI_HALIGN_CENTER, DJUI_VALIGN_CENTER);
|
||||
|
|
|
|||
|
|
@ -3,36 +3,16 @@
|
|||
#include "src/pc/configfile.h"
|
||||
|
||||
void djui_panel_sound_create(struct DjuiBase* caller) {
|
||||
f32 bodyHeight = 32 * 4 + 64 * 1 + 16 * 4;
|
||||
|
||||
struct DjuiBase* defaultBase = NULL;
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\S\\#1be700\\O\\#00b3ff\\U\\#ffef00\\N\\#ff0800\\D");
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create("\\#ff0800\\S\\#1be700\\O\\#00b3ff\\U\\#ffef00\\N\\#ff0800\\D");
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||
|
||||
{
|
||||
struct DjuiSlider* slider1 = djui_slider_create(&body->base, "Master Volume", &configMasterVolume, 0, 127);
|
||||
djui_base_set_size_type(&slider1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&slider1->base, 1.0f, 32);
|
||||
defaultBase = &slider1->base;
|
||||
|
||||
struct DjuiSlider* slider2 = djui_slider_create(&body->base, "Music Volume", &configMusicVolume, 0, 127);
|
||||
djui_base_set_size_type(&slider2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&slider2->base, 1.0f, 32);
|
||||
|
||||
struct DjuiSlider* slider3 = djui_slider_create(&body->base, "Sfx Volume", &configSfxVolume, 0, 127);
|
||||
djui_base_set_size_type(&slider3->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&slider3->base, 1.0f, 32);
|
||||
|
||||
struct DjuiSlider* slider4 = djui_slider_create(&body->base, "Env Volume", &configEnvVolume, 0, 127);
|
||||
djui_base_set_size_type(&slider4->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&slider4->base, 1.0f, 32);
|
||||
|
||||
struct DjuiButton* button6 = djui_button_create(&body->base, "Back");
|
||||
djui_base_set_size_type(&button6->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button6->base, 1.0f, 64);
|
||||
djui_button_set_style(button6, 1);
|
||||
djui_interactable_hook_click(&button6->base, djui_panel_menu_back);
|
||||
djui_slider_create(&body->base, "Master Volume", &configMasterVolume, 0, 127, NULL);
|
||||
djui_slider_create(&body->base, "Music Volume", &configMusicVolume, 0, 127, NULL);
|
||||
djui_slider_create(&body->base, "Sfx Volume", &configSfxVolume, 0, 127, NULL);
|
||||
djui_slider_create(&body->base, "Env Volume", &configEnvVolume, 0, 127, NULL);
|
||||
djui_button_create(&body->base, "Back", DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
}
|
||||
|
||||
djui_panel_add(caller, &panel->base, defaultBase);
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,3 +40,11 @@ struct DjuiRect* djui_rect_create(struct DjuiBase* parent) {
|
|||
|
||||
return rect;
|
||||
}
|
||||
|
||||
struct DjuiRect* djui_rect_container_create(struct DjuiBase* parent, f32 height) {
|
||||
struct DjuiRect* rect = djui_rect_create(parent);
|
||||
djui_base_set_size_type(&rect->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&rect->base, 1.0f, height);
|
||||
djui_base_set_color(&rect->base, 0, 0, 0, 0);
|
||||
return rect;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,3 +7,4 @@ struct DjuiRect {
|
|||
|
||||
bool djui_rect_render(struct DjuiBase* base);
|
||||
struct DjuiRect* djui_rect_create(struct DjuiBase* parent);
|
||||
struct DjuiRect* djui_rect_container_create(struct DjuiBase* parent, f32 height);
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ static void djui_selectionbox_destroy(struct DjuiBase* base) {
|
|||
free(selectionbox);
|
||||
}
|
||||
|
||||
struct DjuiSelectionbox* djui_selectionbox_create(struct DjuiBase* parent, const char* message, char* choices[], u8 choiceCount, unsigned int* value) {
|
||||
struct DjuiSelectionbox* djui_selectionbox_create(struct DjuiBase* parent, const char* message, char* choices[], u8 choiceCount, unsigned int* value, void (*on_value_change)(struct DjuiBase*)) {
|
||||
struct DjuiSelectionbox* selectionbox = calloc(1, sizeof(struct DjuiSelectionbox));
|
||||
struct DjuiBase* base = &selectionbox->base;
|
||||
|
||||
|
|
@ -124,5 +124,9 @@ struct DjuiSelectionbox* djui_selectionbox_create(struct DjuiBase* parent, const
|
|||
|
||||
base->get_cursor_hover_location = djui_selectionbox_get_cursor_hover_location;
|
||||
|
||||
djui_base_set_size_type(base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(base, 1.0f, 32);
|
||||
djui_interactable_hook_value_change(base, on_value_change);
|
||||
|
||||
return selectionbox;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,5 +12,5 @@ struct DjuiSelectionbox {
|
|||
u8 choiceCount;
|
||||
};
|
||||
|
||||
struct DjuiSelectionbox* djui_selectionbox_create(struct DjuiBase* parent, const char* message, char* choices[], u8 choiceCount, unsigned int* value);
|
||||
struct DjuiSelectionbox* djui_selectionbox_create(struct DjuiBase* parent, const char* message, char* choices[], u8 choiceCount, unsigned int* value, void (*on_value_change)(struct DjuiBase*));
|
||||
void djui_selectionbox_update_value(struct DjuiBase* base);
|
||||
|
|
@ -98,7 +98,7 @@ static void djui_slider_destroy(struct DjuiBase* base) {
|
|||
free(slider);
|
||||
}
|
||||
|
||||
struct DjuiSlider* djui_slider_create(struct DjuiBase* parent, const char* message, unsigned int* value, unsigned int min, unsigned int max) {
|
||||
struct DjuiSlider* djui_slider_create(struct DjuiBase* parent, const char* message, unsigned int* value, unsigned int min, unsigned int max, void (*on_value_change)(struct DjuiBase*)) {
|
||||
struct DjuiSlider* slider = calloc(1, sizeof(struct DjuiSlider));
|
||||
struct DjuiBase* base = &slider->base;
|
||||
|
||||
|
|
@ -136,5 +136,9 @@ struct DjuiSlider* djui_slider_create(struct DjuiBase* parent, const char* messa
|
|||
|
||||
base->get_cursor_hover_location = djui_slider_get_cursor_hover_location;
|
||||
|
||||
djui_base_set_size_type(base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_interactable_hook_value_change(base, on_value_change);
|
||||
djui_base_set_size(base, 1.0f, 32);
|
||||
|
||||
return slider;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,5 +11,5 @@ struct DjuiSlider {
|
|||
unsigned int max;
|
||||
};
|
||||
|
||||
struct DjuiSlider* djui_slider_create(struct DjuiBase* parent, const char* message, unsigned int* value, unsigned int min, unsigned int max);
|
||||
struct DjuiSlider* djui_slider_create(struct DjuiBase* parent, const char* message, unsigned int* value, unsigned int min, unsigned int max, void (*on_value_change)(struct DjuiBase*));
|
||||
void djui_slider_update_value(struct DjuiBase* base);
|
||||
|
|
|
|||
|
|
@ -57,6 +57,29 @@ void djui_three_panel_set_min_footer_size(struct DjuiThreePanel* threePanel, f32
|
|||
threePanel->minFooterSize.value = minFooterSize;
|
||||
}
|
||||
|
||||
void djui_three_panel_recalculate_body_size(struct DjuiThreePanel* threePanel) {
|
||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(threePanel);
|
||||
struct DjuiBaseChild* child = body->base.child;
|
||||
|
||||
if (threePanel->bodySize.value != 0) { return; }
|
||||
|
||||
if (body->margin.type != DJUI_SVT_ABSOLUTE) {
|
||||
return;
|
||||
}
|
||||
|
||||
f32 bodyHeight = body->margin.value;
|
||||
while (child != NULL) {
|
||||
bodyHeight += body->margin.value;
|
||||
bodyHeight += child->base->height.value;
|
||||
if (child->base->height.type != DJUI_SVT_ABSOLUTE) {
|
||||
return;
|
||||
}
|
||||
child = child->next;
|
||||
}
|
||||
if (bodyHeight < 0) { bodyHeight = 0; }
|
||||
djui_three_panel_set_body_size(threePanel, bodyHeight);
|
||||
}
|
||||
|
||||
////////////
|
||||
// events //
|
||||
////////////
|
||||
|
|
|
|||
|
|
@ -18,5 +18,6 @@ void djui_three_panel_set_body_size_type(struct DjuiThreePanel* threePanel, enum
|
|||
void djui_three_panel_set_body_size(struct DjuiThreePanel* threePanel, f32 bodySize);
|
||||
void djui_three_panel_set_min_footer_size_type(struct DjuiThreePanel* threePanel, enum DjuiScreenValueType minFooterSizeType);
|
||||
void djui_three_panel_set_min_footer_size(struct DjuiThreePanel* threePanel, f32 minFooterSize);
|
||||
void djui_three_panel_recalculate_body_size(struct DjuiThreePanel* threePanel);
|
||||
|
||||
struct DjuiThreePanel* djui_three_panel_create(struct DjuiBase* parent, f32 minHeaderSize, f32 bodySize, f32 minFooterSize);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue