Extract dungeon maps

This commit is contained in:
octorock
2022-12-11 12:07:48 +01:00
parent 017eb5a65e
commit 1d741c182d
42 changed files with 2535 additions and 1471 deletions
+13 -12
View File
@@ -581,7 +581,7 @@ extern u32 gUnk_085C4620[];
extern void (*const gUnk_08128D58[])(void);
extern KeyButtonLayout gUnk_08128D60;
void sub_080A5D1C();
void DrawDungeonMapActually();
void sub_080A5CFC(u32, void*, u32);
void sub_080A6FB4(u32, u32);
void DrawDungeonFeatures(u32, void*, u32);
@@ -1067,7 +1067,7 @@ void PauseMenu_Screen_5(void) {
u32 temp;
gUnk_08128D30[gMenu.menuType]();
sub_080A5D1C();
DrawDungeonMapActually();
temp = gMain.ticks;
if ((temp & 7) == 0) {
uVar1 = *gUnk_02017830;
@@ -1091,10 +1091,10 @@ void sub_080A5C44(u32 param_1, u32 param_2, u32 param_3) {
void sub_080A5C9C(void) {
s32 newChoice;
const struct_080C9C6C* ptr;
const DungeonFloorMetadata* floorMetadata;
if (sub_080A51F4()) {
ptr = &gUnk_080C9C6C[gArea.dungeon_idx];
floorMetadata = &gDungeonFloorMetadatas[gArea.dungeon_idx];
newChoice = gMenu.field_0x3;
switch (gInput.newKeys) {
case DPAD_UP:
@@ -1103,7 +1103,7 @@ void sub_080A5C9C(void) {
}
break;
case DPAD_DOWN:
if (ptr->unk_0 - 1 > newChoice) {
if (floorMetadata->numFloors - 1 > newChoice) {
newChoice++;
}
break;
@@ -1129,7 +1129,7 @@ void sub_080A5CFC(u32 menuType, void* param_2, u32 param_3) {
#endif
// Actually draw the sprites for the dungeon map.
void sub_080A5D1C(void) {
void DrawDungeonMapActually(void) {
extern u8 gUnk_08128D3C[];
u32 bVar1;
int frameIndex;
@@ -1137,10 +1137,10 @@ void sub_080A5D1C(void) {
u32 uVar6;
u32 index;
u8* puVar8;
const struct_080C9C6C* pbVar9;
const DungeonFloorMetadata* pbVar9;
pbVar9 = &gUnk_080C9C6C[gArea.dungeon_idx];
bVar1 = gUnk_08128D3C[pbVar9->unk_0];
pbVar9 = &gDungeonFloorMetadatas[gArea.dungeon_idx];
bVar1 = gUnk_08128D3C[pbVar9->numFloors];
uVar4 = sub_0801DB94();
gOamCmd._4 = 0x400;
gOamCmd._6 = 0;
@@ -1171,7 +1171,7 @@ void sub_080A5D1C(void) {
if (sub_080A5F24()) {
gOamCmd._8 = 0;
gOamCmd.x = 0x46;
gOamCmd.y = bVar1 + (pbVar9->unk_1 - pbVar9->unk_2) * 0xc;
gOamCmd.y = bVar1 + (pbVar9->highestFloor - pbVar9->unk_2) * 0xc;
if ((gMain.ticks & 0x20) != 0) {
uVar6 = 0x7a;
} else {
@@ -1183,9 +1183,10 @@ void sub_080A5D1C(void) {
gOamCmd._8 = 0;
gOamCmd.x = 0x34;
gOamCmd.y = bVar1;
frameIndex = pbVar9->unk_1 + 0x82;
frameIndex = pbVar9->highestFloor + 0x82;
for (index = 0; index < pbVar9->unk_0; index++) {
// Floor number sprites?
for (index = 0; index < pbVar9->numFloors; index++) {
DrawDirect(DRAW_DIRECT_SPRITE_INDEX, frameIndex);
frameIndex--;
gOamCmd.y = gOamCmd.y + 0xc;