improve display of .dat tables

This commit is contained in:
Gered 2021-03-25 15:24:33 -04:00
parent 7c3eb42da3
commit 750feb7167

View file

@ -160,47 +160,56 @@ void display_info(uint8_t *bin_data, size_t bin_length, uint8_t *dat_data, size_
int table_index = 0; int table_index = 0;
uint32_t offset = 0; uint32_t offset = 0;
printf("Idx Size Table Type Area Count\n");
while (offset < decompressed_dat_length) { while (offset < decompressed_dat_length) {
QUEST_DAT_TABLE_HEADER *table_header = (QUEST_DAT_TABLE_HEADER*)(decompressed_dat_data + offset); QUEST_DAT_TABLE_HEADER *table_header = (QUEST_DAT_TABLE_HEADER*)(decompressed_dat_data + offset);
printf("Table index %d - ", table_index);
switch (table_header->type) { switch (table_header->type) {
case 1: case 1:
printf("Object\n"); printf("%3d %5d %-21s %-30s %5d",
printf("table_body_size: %d\n", table_header->table_body_size); table_index,
printf("area: %s (%d)\n", get_area_string(table_header->area, bin_header->episode), table_header->area); table_header->table_body_size,
printf("object count: %d\n", table_header->table_body_size / 68); "Object",
get_area_string(table_header->area, bin_header->episode),
table_header->table_body_size / 68);
break; break;
case 2: case 2:
printf("NPC\n"); printf("%3d %5d %-21s %-30s %5d",
printf("table_body_size: %d\n", table_header->table_body_size); table_index,
printf("area: %s (%d)\n", get_area_string(table_header->area, bin_header->episode), table_header->area); table_header->table_body_size,
printf("npc count: %d\n", table_header->table_body_size / 72); "NPC",
get_area_string(table_header->area, bin_header->episode),
table_header->table_body_size / 72);
break; break;
case 3: case 3:
printf("Wave\n"); printf("%3d %5d %-21s %-30s",
printf("table_body_size: %d\n", table_header->table_body_size); table_index,
printf("area: %s (%d)\n", get_area_string(table_header->area, bin_header->episode), table_header->area); table_header->table_body_size,
"Wave",
get_area_string(table_header->area, bin_header->episode));
break; break;
case 4: case 4:
printf("Challenge Mode Spawn Points\n"); printf("%3d %5d %-21s %-30s",
printf("table_body_size: %d\n", table_header->table_body_size); table_index,
printf("area: %s (%d)\n", get_area_string(table_header->area, bin_header->episode), table_header->area); table_header->table_body_size,
"Challenge Mode Spawns",
get_area_string(table_header->area, bin_header->episode));
break; break;
case 5: case 5:
printf("Challenge Mode (?)\n"); printf("%3d %5d %21s %30s",
printf("table_body_size: %d\n", table_header->table_body_size); table_index,
printf("area: %s (%d)\n", get_area_string(table_header->area, bin_header->episode), table_header->area); table_header->table_body_size,
"Challenge Mode (?)",
get_area_string(table_header->area, bin_header->episode));
break; break;
default: default:
if (table_header->type == 0 && table_header->table_size == 0 && table_header->area == 0 && table_header->table_body_size == 0) if (table_header->type == 0 && table_header->table_size == 0 && table_header->area == 0 && table_header->table_body_size == 0)
printf("EOF marker\n"); printf("%3d %5d %-21s", table_index, 0, "EOF marker");
else { else
printf("Unknown\n"); printf("%3d %5d Unknown (%d)",
printf("type: %d\n", table_header->type); table_index,
printf("table_body_size: %d\n", table_header->table_body_size); table_header->table_body_size,
printf("area: %d\n", table_header->area); table_header->type);
}
break; break;
} }
printf("\n"); printf("\n");