mirror of
https://github.com/GearsProgress/Poke_Transporter_GB.git
synced 2026-03-21 17:34:42 -05:00
Modifying decompression function to be based on indexes
This commit is contained in:
parent
1055094ab9
commit
2482bb486b
|
|
@ -36,7 +36,7 @@ int Box_Menu::box_main(PokeBox* box)
|
|||
obj_unhide(box_select, 0);
|
||||
int index = 0;
|
||||
|
||||
PKMN_NAMES.decompress(get_compressed_PKMN_NAMES_table());
|
||||
PKMN_NAMES.decompress(get_compressed_text_table(PKMN_NAMES_INDEX));
|
||||
|
||||
while (true)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ void setup(const u16 *debug_charset)
|
|||
u8 general_text_table_buffer[2048];
|
||||
text_data_table general_text(general_text_table_buffer);
|
||||
|
||||
general_text.decompress(get_compressed_GENERAL_table());
|
||||
general_text.decompress(get_compressed_text_table(GENERAL_INDEX));
|
||||
ptgb_write(general_text.get_text_entry(GENERAL_connecting), true);
|
||||
}
|
||||
}
|
||||
|
|
@ -228,7 +228,7 @@ byte handleIncomingByte(byte in, byte *box_data_storage, byte *curr_payload, GB_
|
|||
u8 general_text_table_buffer[2048];
|
||||
text_data_table general_text(general_text_table_buffer);
|
||||
|
||||
general_text.decompress(get_compressed_GENERAL_table());
|
||||
general_text.decompress(get_compressed_text_table(GENERAL_INDEX));
|
||||
ptgb_write(general_text.get_text_entry(curr_gb_rom->version != YELLOW_ID ? GENERAL_link_success : GENERAL_link_success_yellow), true);
|
||||
}
|
||||
|
||||
|
|
@ -280,7 +280,7 @@ byte handleIncomingByte(byte in, byte *box_data_storage, byte *curr_payload, GB_
|
|||
u8 general_text_table_buffer[2048];
|
||||
text_data_table general_text(general_text_table_buffer);
|
||||
|
||||
general_text.decompress(get_compressed_GENERAL_table());
|
||||
general_text.decompress(get_compressed_text_table(GENERAL_INDEX));
|
||||
ptgb_write(general_text.get_text_entry(GENERAL_transferring), true);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ static void __attribute__((noinline)) show_pulled_cart_error()
|
|||
u8 general_text_table_buffer[2048];
|
||||
text_data_table general_text(general_text_table_buffer);
|
||||
|
||||
general_text.decompress(get_compressed_GENERAL_table());
|
||||
general_text.decompress(get_compressed_text_table(GENERAL_INDEX));
|
||||
ptgb_write(general_text.get_text_entry(GENERAL_pulled_cart_error), true);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -147,7 +147,7 @@ void game_load_error(void)
|
|||
u8 general_text_table_buffer[2048];
|
||||
text_data_table general_text(general_text_table_buffer);
|
||||
|
||||
general_text.decompress(get_compressed_GENERAL_table());
|
||||
general_text.decompress(get_compressed_text_table(GENERAL_INDEX));
|
||||
ptgb_write(general_text.get_text_entry(GENERAL_cart_load_error), true);
|
||||
}
|
||||
|
||||
|
|
@ -189,7 +189,7 @@ void first_load_message(void)
|
|||
u8 general_text_table_buffer[2048];
|
||||
text_data_table general_text(general_text_table_buffer);
|
||||
|
||||
general_text.decompress(get_compressed_GENERAL_table());
|
||||
general_text.decompress(get_compressed_text_table(GENERAL_INDEX));
|
||||
ptgb_write(general_text.get_text_entry(GENERAL_intro_first), true);
|
||||
}
|
||||
|
||||
|
|
@ -206,7 +206,7 @@ int credits()
|
|||
text_data_table credits_text_table(text_decompression_buffer);
|
||||
int curr_credits_num = 0;
|
||||
|
||||
credits_text_table.decompress(get_compressed_CREDITS_table());
|
||||
credits_text_table.decompress(get_compressed_text_table(CREDITS_INDEX));
|
||||
bool update = true;
|
||||
|
||||
global_next_frame();
|
||||
|
|
@ -329,7 +329,7 @@ int main_menu_loop()
|
|||
int return_values[NUM_MENU_OPTIONS] = {BTN_TRANSFER, BTN_POKEDEX, BTN_CREDITS};
|
||||
u16 test = 0;
|
||||
|
||||
general_text.decompress(get_compressed_GENERAL_table());
|
||||
general_text.decompress(get_compressed_text_table(GENERAL_INDEX));
|
||||
|
||||
while (true)
|
||||
{
|
||||
|
|
@ -429,7 +429,7 @@ static void __attribute__((noinline)) show_intro()
|
|||
text_data_table general_text(general_text_table_buffer);
|
||||
const u8 *text_entry;
|
||||
|
||||
general_text.decompress(get_compressed_GENERAL_table());
|
||||
general_text.decompress(get_compressed_text_table(GENERAL_INDEX));
|
||||
|
||||
text_entry = general_text.get_text_entry(GENERAL_press_start);
|
||||
press_start_text_length = get_string_length(text_entry);
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ void multiboot_upload_screen()
|
|||
text_data_table general_text(general_text_table_buffer);
|
||||
LinkCableMultiboot linkCableMultiboot;
|
||||
|
||||
general_text.decompress(get_compressed_GENERAL_table());
|
||||
general_text.decompress(get_compressed_text_table(GENERAL_INDEX));
|
||||
|
||||
multiboot_show_textbox();
|
||||
ptgb_write(general_text.get_text_entry(GENERAL_send_multiboot_instructions), true);
|
||||
|
|
|
|||
|
|
@ -378,7 +378,7 @@ void mystery_gift_script::build_script(PokeBox *box)
|
|||
|
||||
// this decompresses the ZX0 compressed text table into the buffer inside of the decompressed_store union
|
||||
// thereby reusing the stack (=IWRAM) memory used earlier for the PokemonTables instance we used above
|
||||
decompressed_text_table.decompress(get_compressed_RSEFRLG_table());
|
||||
decompressed_text_table.decompress(get_compressed_text_table(RSEFRLG_INDEX));
|
||||
switch (curr_GBA_rom.gamecode)
|
||||
{
|
||||
case RUBY_ID:
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ static void load_text_entry_into_buffer(text_data_table& data_table, u8 *output_
|
|||
static void load_general_table_text_entries(u8 *decompression_buffer, u8 *kanto_buffer, u8 *johto_buffer)
|
||||
{
|
||||
text_data_table data_table(decompression_buffer);
|
||||
data_table.decompress(get_compressed_GENERAL_table());
|
||||
data_table.decompress(get_compressed_text_table(GENERAL_INDEX));
|
||||
|
||||
load_text_entry_into_buffer(data_table, kanto_buffer, GENERAL_kanto_name);
|
||||
load_text_entry_into_buffer(data_table, johto_buffer, GENERAL_johto_name);
|
||||
|
|
@ -105,7 +105,7 @@ int pokedex_loop()
|
|||
load_general_table_text_entries(decompression_buffer, kanto_name, johto_name);
|
||||
|
||||
text_data_table PKMN_NAMES(decompression_buffer);
|
||||
PKMN_NAMES.decompress(get_compressed_PKMN_NAMES_table());
|
||||
PKMN_NAMES.decompress(get_compressed_text_table(PKMN_NAMES_INDEX));
|
||||
|
||||
pokedex_init();
|
||||
pokedex_show();
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ void Select_Menu::show_menu()
|
|||
{
|
||||
u8 decompression_buffer[2048];
|
||||
text_data_table text_data(decompression_buffer);
|
||||
text_data.decompress(get_compressed_GENERAL_table());
|
||||
text_data.decompress(get_compressed_text_table(GENERAL_INDEX));
|
||||
|
||||
add_menu_box(menu_options.size(), startTileX, startTileY);
|
||||
for (unsigned int i = 0; i < menu_options.size(); i++)
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ static __attribute__((noinline)) const u8* read_dialogue_text_entry(uint8_t inde
|
|||
|
||||
text_data_table dialogue_table(text_decompression_buffer);
|
||||
|
||||
dialogue_table.decompress(get_compressed_PTGB_table());
|
||||
dialogue_table.decompress(get_compressed_text_table(PTGB_INDEX));
|
||||
|
||||
text_entry = dialogue_table.get_text_entry(index);
|
||||
memcpy(output_buffer, text_entry, dialogue_table.get_text_entry_size(index));
|
||||
|
|
|
|||
|
|
@ -433,7 +433,7 @@ def write_enum_to_header_file(hFile, prefix, dictionary):
|
|||
for key, line in dictionary.items():
|
||||
hFile.write(f"#define {prefix}{key} {num}\n")
|
||||
num += 1
|
||||
hFile.write(f"\n#define {prefix}_LENGTH {num}\n")
|
||||
hFile.write(f"\n#define {prefix}LENGTH {num}\n")
|
||||
hFile.write("\n")
|
||||
return num
|
||||
|
||||
|
|
@ -476,16 +476,26 @@ print("\tGenerating header file")
|
|||
with open (os.curdir + '/include/translated_text.h', 'w') as hFile:
|
||||
hFile.write("// THIS FILE HAS BEEN GENERATED BY text_helper/main.py !\n\n#ifndef TRANSLATED_TEXT_H\n#define TRANSLATED_TEXT_H\n\n#include <tonc.h>\n\n")
|
||||
|
||||
|
||||
sectionEnds = []
|
||||
index = 0
|
||||
for section in textSections:
|
||||
num = write_enum_to_header_file(hFile, section + "_", mainDict[lang.name][section])
|
||||
hFile.write("#define " + section + "_INDEX " + str(index))
|
||||
if(section == "PTGB"):
|
||||
hFile.write(f"\n#define DIA_END {num}\n")
|
||||
|
||||
hFile.write("/** Returns the LZ10 compressed " + section + " text table.*/\n")
|
||||
hFile.write("const u8* get_compressed_" + section + "_table();\n\n")
|
||||
sectionEnds.append(num)
|
||||
index += 1
|
||||
|
||||
hFile.write("#define NUM_TEXT_SECTIONS " + str(index) + "\n")
|
||||
hFile.write("const int text_section_lengths[] = {\n")
|
||||
for end in sectionEnds:
|
||||
hFile.write("\t" + str(end) + ",\n")
|
||||
hFile.write("};\n\n")
|
||||
|
||||
hFile.write("const u8* get_compressed_text_table(int table_index);\n")
|
||||
|
||||
hFile.write("")
|
||||
|
||||
hFile.write("\n#endif")
|
||||
hFile.close()
|
||||
|
|
@ -508,12 +518,17 @@ with open(os.curdir + '/source/translated_text.cpp', 'w') as cppFile:
|
|||
|
||||
for lang in Languages:
|
||||
cppFile.write(f"\n#if PTGB_BUILD_LANGUAGE == {lang.value + 1}\n")
|
||||
cppFile.write("const u8* get_compressed_text_table(int table_index)\n")
|
||||
cppFile.write("{\n")
|
||||
cppFile.write("\tswitch (table_index)\n\t{\n")
|
||||
for section in textSections:
|
||||
cppFile.write("const u8* get_compressed_" + section + "_table()\n")
|
||||
cppFile.write("{\n")
|
||||
cppFile.write("\treturn " + section + "_" + lang.name.lower() + "_lz10_bin;\n")
|
||||
cppFile.write("}\n\n")
|
||||
|
||||
cppFile.write("\tcase(" + section + "_INDEX):\n")
|
||||
if(section == "PTGB"):
|
||||
cppFile.write("\tdefault:\n")
|
||||
cppFile.write("\t\treturn " + section + "_" + lang.name.lower() + "_lz10_bin;\n")
|
||||
cppFile.write("\t\tbreak;\n")
|
||||
cppFile.write("\t}\n")
|
||||
cppFile.write("}\n\n")
|
||||
cppFile.write(f"#endif\n\n\n")
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user