static void initMain() { // try to load a saved config, if none then get Wii language menu if(!loadConfig(FILE_CFG)) { // get the language of the Wii menu and map this to the Mahjongg Wii languages if(CONF_GetLanguage()<7) opt_lang = languages[CONF_GetLanguage()]; // dirty hack to force English if not German as default if (opt_lang != 2) { opt_lang = 1; } } GRRLIB_Widescreen(opt_widescreen); // setup the layouts array for use in menu and game setupLayouts(); //init scores with 0 int i; for( i = 0; i < LAYOUTS * 2; ++i) { g_scores[i] = 0; } //load scores loadHighscores( FILE_HIGHSCORE, g_scores); }
int menuWiimote(WPADData *wd, u32 wpaddown) { checkSelected(wd); // button A selects an option if(wpaddown & WPAD_BUTTON_A) { switch(curmenunum) { case MAIN_MENU : switch(msel) { case 0: //play menu playClick(); killMainMenu(); initPlayMenu(); break; case 1 : //hi score playClick(); killMainMenu(); initHighscoreMenu(); break; case 2 : //optionsmenu playClick(); killMainMenu(); initOptionMenu(); break; case 3 : //sound menu playClick(); killMainMenu(); initSoundMenu(); break; case 4 : //exit playClick(); killMainMenu(); return EXIT; } break; case PLAY_MENU : switch(msel) { case 0 : playClick(); killPlayMenu(); return ONE_PLAYER_GAME; break; case 1 : playClick(); killPlayMenu(); return TWO_PLAYER_COOP; break; case 2 : playClick(); killPlayMenu(); return TWO_PLAYER_VERSUS; break; case 3 : playClick(); killPlayMenu(); initMainMenu(); break; } break; case OPTIONS_MENU : switch(msel) { case 0 : // change tileset playClick(); killMenu(); initTilesetMenu(); break; case 1 : // change layout playClick(); killMenu(); initLayoutMenu(); break; case 2 : // hover hint playWrong(); break; case 3 : // language selection playClick(); killMenu(); initLangMenu(); break; case 4 : // rumble on/off if(opt_rumble) opt_rumble=false; else opt_rumble=true; playClick(); break; case 5 : // widescreen on/off if(opt_widescreen) opt_widescreen=false; else opt_widescreen=true; GRRLIB_Widescreen(opt_widescreen); playClick(); break; case 6 : // back playClick(); killMenu(); initMainMenu(); break; } break; case SOUND_MENU : switch(msel) { case 2 : playClick(); killSoundMenu(); initMainMenu(); break; } break; case LANG_MENU : if(msel>-1) { int tmp_lang=msel + (curpage==0?0:9); if(tmp_lang>NORWEGIAN) return NOTHING; opt_lang=tmp_lang; setLanguage(); playClick(); killLangMenu(); initOptionMenu(); } if(btnover) { curpage++; curpage = curpage % 2; playClick(); } break; case LAYOUT_MENU : if(msel>-1) { playClick(); int tmp_sel = msel + (curpage==0?0:6); opt_layout=tmp_sel; killLayoutMenu(); initOptionMenu(); } if(btnover) { curpage++; curpage = curpage % 2; playClick(); } break; case TILESET_MENU : { if(msel>-1) { playClick(); opt_tileset=msel; killTilesetMenu(); initOptionMenu(); } } break; case HIGHSCORE_MENU: { playClick(); killHighscoreMenu(); initMainMenu(); } break; } } if (curmenunum==SOUND_MENU && wd->btns_h & WPAD_BUTTON_A) { switch(msel) { case 0 : xmusic=wd->ir.x; opt_music = (int) (((double)xmusic-soundhs[0][0])/soundhs[0][2]*64); return MUSIC_BAR + opt_music; break; case 1 : xsound=wd->ir.x; opt_sound = (int) (((double)xsound-soundhs[1][0])/soundhs[1][2]*255); playWrong(); break; } } // button B acts the same as back if(wpaddown & WPAD_BUTTON_B) { switch(curmenunum) { case MAIN_MENU : break; case PLAY_MENU : playClick(); killPlayMenu(); initMainMenu(); break; case OPTIONS_MENU : playClick(); killMenu(); initMainMenu(); break; case SOUND_MENU : playClick(); killSoundMenu(); initMainMenu(); break; case LANG_MENU : playClick(); killLangMenu(); initOptionMenu(); break; case LAYOUT_MENU : playClick(); killLayoutMenu(); initOptionMenu(); break; case TILESET_MENU : { playClick(); killTilesetMenu(); initOptionMenu(); } break; case HIGHSCORE_MENU: { playClick(); killHighscoreMenu(); initMainMenu(); } break; } } if(wpaddown & WPAD_BUTTON_PLUS) { if((curmenunum==LANG_MENU || curmenunum==LAYOUT_MENU) && curpage==0) curpage++; } if(wpaddown & WPAD_BUTTON_MINUS) { if((curmenunum==LANG_MENU || curmenunum==LAYOUT_MENU) && curpage==1) curpage--; } return NOTHING; }