void areYouABoyOrGirl(u8 index) { if (check_a_pressed(0)) return; /* * Hide professor background layer */ gpu_sync_bg_hide(2); tasks[index].function = (u32) chooseGender; }
void callback (u8 index) { u16 arg; arg = tasks[index].args[6]; /* * Change 08460568 to 00 00 so that blue colour doesn't flash */ /* * First case. Simply fade to black and wait for the fade. */ if (!arg) { u8 i; u8 *ptr; show_bg(); /* How long to wait - in frames? */ tasks[index].args[6] = 0x30; switch(variables[0xC]) { case 0: /* Partial unfade. Don't cover message box */ fadescreen(0xFFFFFFF0, 0x0, 0x10, 0x0, 0x0000); /* * Hide the background layer for now */ gpu_sync_bg_hide(1); fadescreen(0xFFFFFFFF, 0x0, 0, 0x10, 0x0000); tasks[index].function = (u32) startTutorial; break; case 1: fadescreen(0xFFFFFFFF, 0x10, 0x10, 0x0, 0x0000); tasks[index].function = (u32) returnFromPlayerName; break; case 2: fadescreen(0xFFFFFFFF, 0x10, 0x10, 0x0, 0x0000); tasks[index].function = (u32) returnFromRivalName; break; } } else { tasks[index].args[6] -= 1; } }
void region_loop(u8 tid) { (void)tid; switch (pokedex_context->state) { case 0: bgid_send_tilemap(2); for (u8 i = 0; i < 7; ++i) { rboxid_clear_pixels(i, 0); rboxid_print(i, FONT_DEX_STD, region_text_x_offset[i], region_text_y_offset[i], &pdex_text_color, 0, pdex_str_regions[i + 1]); rboxid_update_tilemap_and_tileset(i); } region_load_border(); region_load_icon_palettes(); for (u8 i = 0; i < 21; ++i) region_load_icon(i); palette_bg_faded_fill_black(); pokedex_context->state++; break; case 1: gpu_sync_bg_show(0); gpu_sync_bg_hide(1); gpu_sync_bg_hide(3); gpu_sync_bg_show(2); fade_screen(0xFFFFFFFF, PDEX_FADEIN_SPD, 16, 0, 0x0000); pokedex_context->state++; break; case 2: if (!pal_fade_control.active) pokedex_context->state++; break; case 3: switch (super.buttons_new) { case KEY_RIGHT: if (pokedex_context->region_selected < 6) { pokedex_context->region_selected++; m4aSongNumStart(101); } break; case KEY_DOWN: if (pokedex_context->region_selected < 3) { pokedex_context->region_selected += 3; m4aSongNumStart(101); } break; case KEY_LEFT: if (pokedex_context->region_selected > 0) { pokedex_context->region_selected--; m4aSongNumStart(101); } break; case KEY_UP: if ((pokedex_context->region_selected > 2) && (pokedex_context->region_selected < 6)) { pokedex_context->region_selected -= 3; m4aSongNumStart(101); } break; case KEY_A: fade_screen(0xFFFFFFFF, PDEX_FADEIN_SPD, 0, 16, 0x0000); pokedex_context->state = 10; m4aSongNumStart(5); break; case KEY_B: fade_screen(0xFFFFFFFF, PDEX_FADEIN_SPD, 0, 16, 0x0000); pokedex_context->state = 11; m4aSongNumStart(601); default: break; } break; case 10: if (!pal_fade_control.active) { task_del(tid); pdex_vram_free_bgmaps(); pokedex_context->cursor_position_top = region_to_dex[pokedex_context->region_selected]; set_callback2(pdex_load); } break; case 11: if (!pal_fade_control.active) { task_del(tid); pdex_free_memory(); set_callback2(c2_overworld_switch_start_menu); set_callback1(c1_overworld); } break; default: break; } }