mirror of
				https://github.com/coop-deluxe/sm64coopdx.git
				synced 2025-10-30 08:01:01 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			72 lines
		
	
	
		
			No EOL
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			No EOL
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
 | 
						|
#ifndef COOP
 | 
						|
// Not my problem
 | 
						|
#pragma GCC diagnostic push
 | 
						|
#pragma GCC diagnostic ignored "-Wsizeof-pointer-div"
 | 
						|
#pragma GCC diagnostic ignored "-Wdiscarded-qualifiers"
 | 
						|
#pragma GCC diagnostic ignored "-Wpointer-sign"
 | 
						|
#pragma GCC diagnostic ignored "-Wsign-compare"
 | 
						|
#define optmenu_toggle optmenu_toggle_unused
 | 
						|
#define optmenu_draw optmenu_draw_unused
 | 
						|
#define optmenu_draw_prompt optmenu_draw_prompt_unused
 | 
						|
#define optmenu_check_buttons optmenu_check_buttons_unused
 | 
						|
#define optmenu_open optmenu_open_unused
 | 
						|
#define DYNOS_INL
 | 
						|
#include "game/options_menu.c"
 | 
						|
#undef DYNOS_INL
 | 
						|
#undef optmenu_toggle
 | 
						|
#undef optmenu_draw
 | 
						|
#undef optmenu_draw_prompt
 | 
						|
#undef optmenu_check_buttons
 | 
						|
#undef optmenu_open
 | 
						|
#pragma GCC diagnostic pop
 | 
						|
// Now, that's my problem
 | 
						|
 | 
						|
extern void dynos_opt_end_submenu();
 | 
						|
extern void dynos_opt_convert_submenu(const u8 *label, const u8 *title);
 | 
						|
extern void dynos_opt_convert_toggle(const u8 *label, bool *bval);
 | 
						|
extern void dynos_opt_convert_scroll(const u8 *label, s32 min, s32 max, s32 step, u32 *uval);
 | 
						|
extern void dynos_opt_convert_choice(const u8 *label, const u8 **choices, s32 numChoices, u32 *uval);
 | 
						|
extern void dynos_opt_convert_button(const u8 *label, void *action);
 | 
						|
extern void dynos_opt_convert_bind(const u8 *label, u32 *uval);
 | 
						|
 | 
						|
static void dynos_opt_convert_menu(struct SubMenu *submenu) {
 | 
						|
    for (s32 i = 0; i != submenu->numOpts; ++i) {
 | 
						|
        struct Option *opt = &submenu->opts[i];
 | 
						|
        switch (opt->type) {
 | 
						|
            case OPT_TOGGLE:
 | 
						|
                dynos_opt_convert_toggle(opt->label, opt->bval);
 | 
						|
                break;
 | 
						|
 | 
						|
            case OPT_CHOICE:
 | 
						|
                dynos_opt_convert_choice(opt->label, opt->choices, opt->numChoices, opt->uval);
 | 
						|
                break;
 | 
						|
 | 
						|
            case OPT_SCROLL:
 | 
						|
                dynos_opt_convert_scroll(opt->label, opt->scrMin, opt->scrMax, opt->scrStep, opt->uval);
 | 
						|
                break;
 | 
						|
 | 
						|
            case OPT_SUBMENU:
 | 
						|
                dynos_opt_convert_submenu(opt->label, opt->nextMenu->label);
 | 
						|
                dynos_opt_convert_menu(opt->nextMenu);
 | 
						|
                dynos_opt_end_submenu();
 | 
						|
                break;
 | 
						|
 | 
						|
            case OPT_BIND:
 | 
						|
                dynos_opt_convert_bind(opt->label, opt->uval);
 | 
						|
                break;
 | 
						|
 | 
						|
            case OPT_BUTTON:
 | 
						|
                dynos_opt_convert_button(opt->label, opt->actionFn);
 | 
						|
                break;
 | 
						|
 | 
						|
            default:
 | 
						|
                break;
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
void dynos_opt_convert_vanilla_main_menu() {
 | 
						|
    dynos_opt_convert_menu(&menuMain);
 | 
						|
}
 | 
						|
#endif |