mirror of
https://github.com/zeldaret/tmc
synced 2026-06-06 19:51:53 -04:00
Extract dungeon maps
This commit is contained in:
+13
-12
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user