diff --git a/include/sprite_data.h b/include/sprite_data.h index e8aa312..c6bef86 100644 --- a/include/sprite_data.h +++ b/include/sprite_data.h @@ -29,7 +29,8 @@ extern OBJ_ATTR *type_sprites[14]; #include "flag_ger.h" #include "flag_spa.h" #include "flag_kor.h" -extern OBJ_ATTR *flag; +extern OBJ_ATTR *gb_flag; +extern OBJ_ATTR *gba_flag; #include "Label_Green.h" #include "Label_Red.h" #include "Label_Blue.h" diff --git a/source/dbg/debug_mode.cpp b/source/dbg/debug_mode.cpp index 5223343..d01b0f7 100644 --- a/source/dbg/debug_mode.cpp +++ b/source/dbg/debug_mode.cpp @@ -2,8 +2,8 @@ debug_options g_debug_options = { - .print_link_data = (true && DEBUG_MODE), - .print_link_packets = (true && DEBUG_MODE), + .print_link_data = (false && DEBUG_MODE), + .print_link_packets = (false && DEBUG_MODE), .instant_text_speed = (true && DEBUG_MODE), .ignore_game_pak = (true && DEBUG_MODE), .ignore_game_pak_sprites = (false && DEBUG_MODE), @@ -13,7 +13,7 @@ debug_options g_debug_options = .force_tutorial = (false && DEBUG_MODE), .dont_hide_invalid_pkmn = (false && DEBUG_MODE), .ignore_dex_completion = (false && DEBUG_MODE), - .force_all_caught = (true && DEBUG_MODE), + .force_all_caught = (false && DEBUG_MODE), .write_cable_data_to_save = (u8)WRITE_CABLE_DATA_MODE_OFF, .load_cable_data_from_save = (u8)WRITE_CABLE_DATA_MODE_OFF, .display_control_char = (false && DEBUG_MODE) diff --git a/source/global_frame_controller.cpp b/source/global_frame_controller.cpp index c916e3f..0a51e87 100644 --- a/source/global_frame_controller.cpp +++ b/source/global_frame_controller.cpp @@ -212,6 +212,8 @@ void link_animation_state(int state) obj_hide(gba_cart); obj_hide(cart_shell); obj_hide(cart_label); + obj_hide(gb_flag); + obj_hide(gba_flag); break; } curr_link_animation_state = state; diff --git a/source/script_array.cpp b/source/script_array.cpp index 30ead82..00b9658 100644 --- a/source/script_array.cpp +++ b/source/script_array.cpp @@ -756,6 +756,9 @@ bool run_conditional(int index) obj_unhide(cart_label, 0); obj_set_pos(cart_label, (8 * 8) + 8, (11 * 8) + 11 + 13); + obj_unhide(gba_flag, 0); + obj_set_pos(gba_flag, 23 * 8, 14 * 8); + u16 debug_charset[256]; load_localized_charset(debug_charset, 3, ENGLISH); globalLinkCable.setup(debug_charset); @@ -785,17 +788,8 @@ bool run_conditional(int index) load_select_sprites(globalLinkCable.currROM); - obj_unhide(gba_cart, 0); - obj_set_pos(gba_cart, 17 * 8, 14 * 8); - - obj_unhide(cart_shell, 0); - obj_set_pos(cart_shell, (8 * 8), (11 * 8) + 11); - - obj_unhide(cart_label, 0); - obj_set_pos(cart_label, (8 * 8) + 8, (11 * 8) + 11 + 13); - - obj_unhide(flag, 0); - obj_set_pos(flag, 1.5 * 8, 14 * 8); + obj_unhide(gb_flag, 0); + obj_set_pos(gb_flag, 1.5 * 8, 14 * 8); if (g_debug_options.print_link_packets) { diff --git a/source/select_menu.cpp b/source/select_menu.cpp index 5e0d11f..eb765d5 100644 --- a/source/select_menu.cpp +++ b/source/select_menu.cpp @@ -90,7 +90,7 @@ void Select_Menu::on_hide() vertical_menu_cursor_handler::on_hide(); obj_hide(cart_shell); obj_hide(cart_label); - obj_hide(flag); + obj_hide(gb_flag); } void Select_Menu::on_selection_changed(unsigned new_index, unsigned x, unsigned y) @@ -110,7 +110,7 @@ void Select_Menu::on_selection_changed(unsigned new_index, unsigned x, unsigned obj_hide(cart_label); break; case LANG_MENU: - obj_hide(flag); + obj_hide(gb_flag); break; } } @@ -125,7 +125,7 @@ void Select_Menu::on_selection_changed(unsigned new_index, unsigned x, unsigned break; case LANG_MENU: //load_select_sprites(0, item_value); - obj_unhide(flag, 0); + obj_unhide(gb_flag, 0); break; } } diff --git a/source/sprite_data.cpp b/source/sprite_data.cpp index 92496b4..f1e8c9c 100644 --- a/source/sprite_data.cpp +++ b/source/sprite_data.cpp @@ -352,7 +352,9 @@ OBJ_ATTR *button_yes = &obj_buffer[num_sprites++]; OBJ_ATTR *button_no = &obj_buffer[num_sprites++]; OBJ_ATTR *cart_shell = &obj_buffer[num_sprites++]; OBJ_ATTR *cart_label = &obj_buffer[num_sprites++]; -OBJ_ATTR *flag = &obj_buffer[num_sprites++]; +OBJ_ATTR *gb_flag = &obj_buffer[num_sprites++]; +OBJ_ATTR *gba_flag = &obj_buffer[num_sprites++]; + OBJ_ATTR *type_sprites[14] = { &obj_buffer[num_sprites++], @@ -743,8 +745,8 @@ void load_select_sprites(GameBoyROM currROM) load_sprite_compressed(cart_shell, cart_tiles, curr_tile_id, GB_CART_PAL, ATTR0_SQUARE, ATTR1_SIZE_64x64, 1); load_sprite_compressed(cart_label, label_tiles, curr_tile_id, GB_CART_PAL, ATTR0_SQUARE, ATTR1_SIZE_32x32, 1); - const unsigned int *flag_tiles = 0; - const unsigned short *flag_palette = 0; + const unsigned int *gb_flag_tiles = 0; + const unsigned short *gb_flag_palette = 0; switch (currROM) { case RED_JP_v0: @@ -761,8 +763,8 @@ void load_select_sprites(GameBoyROM currROM) case SILVER_JP_v0: case SILVER_JP_v1: case CRYSTAL_JP: - flag_tiles = flag_jpnTiles; - flag_palette = flag_jpnPal; + gb_flag_tiles = flag_jpnTiles; + gb_flag_palette = flag_jpnPal; break; case RED_EN: @@ -771,8 +773,8 @@ void load_select_sprites(GameBoyROM currROM) case GOLD_EN: case SILVER_EN: case CRYSTAL_EN: - flag_tiles = flag_engTiles; - flag_palette = flag_engPal; + gb_flag_tiles = flag_engTiles; + gb_flag_palette = flag_engPal; break; case RED_FR: @@ -781,8 +783,8 @@ void load_select_sprites(GameBoyROM currROM) case GOLD_FR: case SILVER_FR: case CRYSTAL_FR: - flag_tiles = flag_freTiles; - flag_palette = flag_frePal; + gb_flag_tiles = flag_freTiles; + gb_flag_palette = flag_frePal; break; case RED_IT: @@ -791,8 +793,8 @@ void load_select_sprites(GameBoyROM currROM) case GOLD_IT: case SILVER_IT: case CRYSTAL_IT: - flag_tiles = flag_itaTiles; - flag_palette = flag_itaPal; + gb_flag_tiles = flag_itaTiles; + gb_flag_palette = flag_itaPal; break; case RED_DE: @@ -801,8 +803,8 @@ void load_select_sprites(GameBoyROM currROM) case GOLD_DE: case SILVER_DE: case CRYSTAL_DE: - flag_tiles = flag_gerTiles; - flag_palette = flag_gerPal; + gb_flag_tiles = flag_gerTiles; + gb_flag_palette = flag_gerPal; break; case RED_SP: @@ -811,24 +813,25 @@ void load_select_sprites(GameBoyROM currROM) case GOLD_SP: case SILVER_SP: case CRYSTAL_SP: - flag_tiles = flag_spaTiles; - flag_palette = flag_spaPal; + gb_flag_tiles = flag_spaTiles; + gb_flag_palette = flag_spaPal; break; case GOLD_KOR: case SILVER_KOR: - flag_tiles = flag_korTiles; - flag_palette = flag_korPal; + gb_flag_tiles = flag_korTiles; + gb_flag_palette = flag_korPal; break; default: - flag_tiles = flag_korTiles; - flag_palette = flag_jpnPal; + gb_flag_tiles = flag_korTiles; + gb_flag_palette = flag_jpnPal; break; } - load_sprite_compressed(flag, flag_tiles, curr_tile_id, FLAG_PAL, ATTR0_WIDE, ATTR1_SIZE_32x64, 1); - tonccpy(pal_obj_mem + (FLAG_PAL * 16), flag_palette, 16); // Grit is being stupid. + load_sprite_compressed(gb_flag, gb_flag_tiles, curr_tile_id, FLAG_PAL, ATTR0_WIDE, ATTR1_SIZE_32x64, 1); + load_sprite_compressed(gba_flag, gb_flag_tiles, curr_tile_id, FLAG_PAL, ATTR0_WIDE, ATTR1_SIZE_32x64, 1); + tonccpy(pal_obj_mem + (FLAG_PAL * 16), gb_flag_palette, 16); // Grit is being stupid. const unsigned int *gba_cart_tiles = 0; const unsigned short *gba_cart_palette = 0; @@ -859,6 +862,51 @@ void load_select_sprites(GameBoyROM currROM) load_sprite_compressed(gba_cart, gba_cart_tiles, curr_tile_id, GBA_CART_PAL, ATTR0_WIDE, ATTR1_SIZE_32x64, 1); tonccpy(pal_obj_mem + (GBA_CART_PAL * 16), gba_cart_palette, 32); + + const unsigned int *gba_flag_tiles = 0; + const unsigned short *gba_flag_palette = 0; + switch (curr_GBA_rom.language) + { + case LANG_JPN: + gba_flag_tiles = flag_jpnTiles; + gba_flag_palette = flag_jpnPal; + break; + + case LANG_ENG: + gba_flag_tiles = flag_engTiles; + gba_flag_palette = flag_engPal; + break; + + case LANG_FRE: + gba_flag_tiles = flag_freTiles; + gba_flag_palette = flag_frePal; + break; + + case LANG_ITA: + gba_flag_tiles = flag_itaTiles; + gba_flag_palette = flag_itaPal; + break; + + case LANG_GER: + gba_flag_tiles = flag_gerTiles; + gba_flag_palette = flag_gerPal; + break; + + case LANG_SPA: + gba_flag_tiles = flag_spaTiles; + gba_flag_palette = flag_spaPal; + break; + + default: + gba_flag_tiles = flag_korTiles; + gba_flag_palette = flag_jpnPal; + break; + } + + load_sprite_compressed(gba_flag, gba_flag_tiles, curr_tile_id, FLAG_PAL, ATTR0_WIDE, ATTR1_SIZE_32x64, 1); + load_sprite_compressed(gba_flag, gba_flag_tiles, curr_tile_id, FLAG_PAL, ATTR0_WIDE, ATTR1_SIZE_32x64, 1); + tonccpy(pal_obj_mem + (FLAG_PAL * 16), gba_flag_palette, 16); // Grit is being stupid. + } // tile ID, VH Flip, Palette Bank #define FEN_BLI_L00 (34 | (0b00 << 0xA) | (2 << 0xC)) @@ -960,7 +1008,7 @@ void update_y_offset() y_offset_timer--; obj_set_pos(cart_shell, (8 * 11) + 4, (8 * 4) + 11 + y_offset); obj_set_pos(cart_label, (8 * 11) + 4 + 8, (8 * 4) + 11 + 13 + y_offset); - obj_set_pos(flag, (8 * 11) + 4, (8 * 4) + 19 + y_offset); + obj_set_pos(gb_flag, (8 * 11) + 4, (8 * 4) + 19 + y_offset); } void update_front_box_sprite(Pokemon *curr_pkmn, bool make_greyscale)