summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoroctorock <79596758+octorock@users.noreply.github.com>2021-08-30 17:56:22 +0200
committeroctorock <79596758+octorock@users.noreply.github.com>2021-08-30 17:56:40 +0200
commitd6329131229e280762a5cf0b32311cd191a2364a (patch)
tree1e68bf97d0f30aef78b08389e59f892bf0ebe7da /src
parent29d7c7bd6bce5fbe25c92dad6f27f545eeb12bec (diff)
Decompile manager35
Diffstat (limited to 'src')
-rw-r--r--src/code_0808091C.c2
-rw-r--r--src/enemy/mazaalHead.c1
-rw-r--r--src/enemy/mazaalMacro.c1
-rw-r--r--src/enemy/wallMaster.c4
-rw-r--r--src/enemy/wallMaster2.c3
-rw-r--r--src/manager/manager1.c2
-rw-r--r--src/manager/manager10.c2
-rw-r--r--src/manager/manager12.c2
-rw-r--r--src/manager/manager13.c2
-rw-r--r--src/manager/manager14.c2
-rw-r--r--src/manager/manager16.c2
-rw-r--r--src/manager/manager17.c2
-rw-r--r--src/manager/manager18.c2
-rw-r--r--src/manager/manager19.c6
-rw-r--r--src/manager/manager1B.c2
-rw-r--r--src/manager/manager1D.c8
-rw-r--r--src/manager/manager1F.c8
-rw-r--r--src/manager/manager2.c2
-rw-r--r--src/manager/manager22.c2
-rw-r--r--src/manager/manager24.c5
-rw-r--r--src/manager/manager2A.c2
-rw-r--r--src/manager/manager2B.c12
-rw-r--r--src/manager/manager2C.c6
-rw-r--r--src/manager/manager2F.c38
-rw-r--r--src/manager/manager31.c2
-rw-r--r--src/manager/manager32.c2
-rw-r--r--src/manager/manager33.c2
-rw-r--r--src/manager/manager35.c83
-rw-r--r--src/manager/manager37.c2
-rw-r--r--src/manager/manager6.c2
-rw-r--r--src/manager/managerD.c2
-rw-r--r--src/manager/managerF.c2
-rw-r--r--src/npc/emma.c8
-rw-r--r--src/npc/picolyteBottle.c1
-rw-r--r--src/npc/simon.c6
-rw-r--r--src/object/book.c2
-rw-r--r--src/object/minishSizedEntrance.c4
-rw-r--r--src/player.c1
38 files changed, 159 insertions, 78 deletions
diff --git a/src/code_0808091C.c b/src/code_0808091C.c
index 0ea3dbcf..7d11a428 100644
--- a/src/code_0808091C.c
+++ b/src/code_0808091C.c
@@ -10,8 +10,6 @@ extern u32 gUnk_0200B650;
extern u32 gUnk_02025EB0;
extern u8 gUnk_02000070;
-extern void DoExitTransition(ScreenTransitionData*);
-
void sub_080808D8(void) {
gScreenTransition.transitionType = 0;
}
diff --git a/src/enemy/mazaalHead.c b/src/enemy/mazaalHead.c
index 1139af36..1672b5c4 100644
--- a/src/enemy/mazaalHead.c
+++ b/src/enemy/mazaalHead.c
@@ -8,7 +8,6 @@
#include "functions.h"
extern void UnloadOBJPalette(Entity*);
-extern void DoExitTransition(ScreenTransitionData*);
extern u8 gEntCount;
diff --git a/src/enemy/mazaalMacro.c b/src/enemy/mazaalMacro.c
index d3dbee34..0e32a810 100644
--- a/src/enemy/mazaalMacro.c
+++ b/src/enemy/mazaalMacro.c
@@ -6,7 +6,6 @@
#include "structures.h"
#include "functions.h"
-extern void DoExitTransition(ScreenTransitionData*);
extern void sub_0807B600(u32);
extern const u16 script_08012E20[];
diff --git a/src/enemy/wallMaster.c b/src/enemy/wallMaster.c
index 394e8620..663c3612 100644
--- a/src/enemy/wallMaster.c
+++ b/src/enemy/wallMaster.c
@@ -6,9 +6,7 @@
extern void sub_08001328(Entity*);
extern Entity* sub_08049DF4(u32);
-extern void DoExitTransition(u32*);
-
-extern u32* gUnk_0813AB1C[];
+extern ScreenTransitionData* gUnk_0813AB1C[];
void sub_0802A78C(Entity*);
void sub_0802A7D0(Entity*);
diff --git a/src/enemy/wallMaster2.c b/src/enemy/wallMaster2.c
index 7c488c30..a0c79d74 100644
--- a/src/enemy/wallMaster2.c
+++ b/src/enemy/wallMaster2.c
@@ -4,10 +4,9 @@
#include "functions.h"
extern void sub_08001328(Entity*);
-extern void DoExitTransition(u32*);
extern Entity* gUnk_020000B0;
-extern u32* gUnk_0813AB1C[];
+extern ScreenTransitionData* gUnk_0813AB1C[];
void sub_0802CF64(Entity*);
void sub_0802CF8C(Entity*);
diff --git a/src/manager/manager1.c b/src/manager/manager1.c
index c0390149..200fc720 100644
--- a/src/manager/manager1.c
+++ b/src/manager/manager1.c
@@ -69,4 +69,4 @@ ASM_FUNC("asm/non_matching/manager1/nullsub_494.inc", void nullsub_494())
ASM_FUNC("asm/non_matching/manager1/sub_080573AC.inc", void sub_080573AC())
-ASM_FUNC("asm/non_matching/manager1/sub_08057450.inc", void sub_08057450()) \ No newline at end of file
+ASM_FUNC("asm/non_matching/manager1/sub_08057450.inc", void sub_08057450())
diff --git a/src/manager/manager10.c b/src/manager/manager10.c
index e7c0b944..e1b1b2a8 100644
--- a/src/manager/manager10.c
+++ b/src/manager/manager10.c
@@ -20,4 +20,4 @@ ASM_FUNC("asm/non_matching/manager10/sub_080598F8.inc", void sub_080598F8())
ASM_FUNC("asm/non_matching/manager10/sub_08059960.inc", void sub_08059960())
-ASM_FUNC("asm/non_matching/manager10/sub_08059994.inc", void sub_08059994()) \ No newline at end of file
+ASM_FUNC("asm/non_matching/manager10/sub_08059994.inc", void sub_08059994())
diff --git a/src/manager/manager12.c b/src/manager/manager12.c
index d69c5d19..15759fdd 100644
--- a/src/manager/manager12.c
+++ b/src/manager/manager12.c
@@ -12,4 +12,4 @@ ASM_FUNC("asm/non_matching/manager12/sub_08059C8C.inc", void sub_08059C8C())
ASM_FUNC("asm/non_matching/manager12/sub_08059CC0.inc", void sub_08059CC0())
-ASM_FUNC("asm/non_matching/manager12/TryLoadPrologueHyruleTown.inc", void TryLoadPrologueHyruleTown()) \ No newline at end of file
+ASM_FUNC("asm/non_matching/manager12/TryLoadPrologueHyruleTown.inc", void TryLoadPrologueHyruleTown())
diff --git a/src/manager/manager13.c b/src/manager/manager13.c
index cd151e5a..acfe8b48 100644
--- a/src/manager/manager13.c
+++ b/src/manager/manager13.c
@@ -1,3 +1,3 @@
#include "manager.h"
-ASM_FUNC("asm/non_matching/manager13/Manager13_Main.inc", void Manager13_Main()) \ No newline at end of file
+ASM_FUNC("asm/non_matching/manager13/Manager13_Main.inc", void Manager13_Main())
diff --git a/src/manager/manager14.c b/src/manager/manager14.c
index eb3d820c..bb7388ef 100644
--- a/src/manager/manager14.c
+++ b/src/manager/manager14.c
@@ -22,4 +22,4 @@ ASM_FUNC("asm/non_matching/manager14/sub_0805A1D8.inc", void sub_0805A1D8())
ASM_FUNC("asm/non_matching/manager14/nullsub_495.inc", void nullsub_495())
-ASM_FUNC("asm/non_matching/manager14/sub_0805A25C.inc", void sub_0805A25C()) \ No newline at end of file
+ASM_FUNC("asm/non_matching/manager14/sub_0805A25C.inc", void sub_0805A25C())
diff --git a/src/manager/manager16.c b/src/manager/manager16.c
index 1436b67b..23292b39 100644
--- a/src/manager/manager16.c
+++ b/src/manager/manager16.c
@@ -3,4 +3,4 @@
ASM_FUNC("asm/non_matching/manager16/Manager16_Main.inc", void Manager16_Main())
-ASM_FUNC("asm/non_matching/manager16/sub_0805ACC0.inc", void sub_0805ACC0()) \ No newline at end of file
+ASM_FUNC("asm/non_matching/manager16/sub_0805ACC0.inc", void sub_0805ACC0())
diff --git a/src/manager/manager17.c b/src/manager/manager17.c
index 1722da42..d19440b0 100644
--- a/src/manager/manager17.c
+++ b/src/manager/manager17.c
@@ -16,10 +16,8 @@ typedef struct {
extern void (*const gUnk_08108654[])(Manager17*);
-
void sub_0805AD80(Manager17*);
-
void Manager17_Main(Manager17* manager) {
gUnk_08108654[manager->manager.action](manager);
}
diff --git a/src/manager/manager18.c b/src/manager/manager18.c
index 4dd08c6d..98e3cf57 100644
--- a/src/manager/manager18.c
+++ b/src/manager/manager18.c
@@ -4,4 +4,4 @@ ASM_FUNC("asm/non_matching/manager18/Manager18_Main.inc", void Manager18_Main())
ASM_FUNC("asm/non_matching/manager18/sub_0805AEDC.inc", void sub_0805AEDC())
-ASM_FUNC("asm/non_matching/manager18/sub_0805AF3C.inc", void sub_0805AF3C()) \ No newline at end of file
+ASM_FUNC("asm/non_matching/manager18/sub_0805AF3C.inc", void sub_0805AF3C())
diff --git a/src/manager/manager19.c b/src/manager/manager19.c
index b5586cf8..fa0f1912 100644
--- a/src/manager/manager19.c
+++ b/src/manager/manager19.c
@@ -9,7 +9,7 @@ void sub_0805AFFC(Manager*);
void Manager19_Main(Manager* this) {
if (this == NULL) {
if ((void*)gArea.unk3 != sub_0805AFFC) {
- sub_0805AFFC(this);
+ sub_0805AFFC(this);
}
} else {
if (this->action == 0) {
@@ -23,7 +23,7 @@ void Manager19_Main(Manager* this) {
}
} else {
gRoomControls.bg3OffsetX.WORD = gRoomControls.bg3OffsetX.WORD - 0x2000;
- gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI ;
+ gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI;
gScreen.affine.bg3yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI;
}
}
@@ -34,4 +34,4 @@ void sub_0805AFFC(Manager* this) {
gScreen.lcd.displayControl |= 0x800;
gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI;
gScreen.affine.bg3yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI;
-} \ No newline at end of file
+}
diff --git a/src/manager/manager1B.c b/src/manager/manager1B.c
index 79cb5f45..e04dca81 100644
--- a/src/manager/manager1B.c
+++ b/src/manager/manager1B.c
@@ -9,4 +9,4 @@ ASM_FUNC("asm/non_matching/manager1B/sub_0805B474.inc", void sub_0805B474())
ASM_FUNC("asm/non_matching/manager1B/sub_0805B4B4.inc", void sub_0805B4B4())
-ASM_FUNC("asm/non_matching/manager1B/sub_0805B4D0.inc", void sub_0805B4D0()) \ No newline at end of file
+ASM_FUNC("asm/non_matching/manager1B/sub_0805B4D0.inc", void sub_0805B4D0())
diff --git a/src/manager/manager1D.c b/src/manager/manager1D.c
index 2e52aaf6..6d1a850b 100644
--- a/src/manager/manager1D.c
+++ b/src/manager/manager1D.c
@@ -23,18 +23,18 @@ void sub_0805B5E0(Manager* this) {
default:
gScreen.affine.bg3yOffset = 0;
gScreen.affine.bg3xOffset = 0;
- break;
+ break;
case 1:
gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI;
gScreen.affine.bg3yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI;
- break;
+ break;
}
}
void sub_0805B638(Manager* this) {
if (this->unk_0a == 1) {
gRoomControls.bg3OffsetX.WORD = gRoomControls.bg3OffsetX.WORD + 0x2000;
- gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI ;
+ gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI;
gScreen.affine.bg3yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI;
}
-} \ No newline at end of file
+}
diff --git a/src/manager/manager1F.c b/src/manager/manager1F.c
index 08fd71e8..1ad3135e 100644
--- a/src/manager/manager1F.c
+++ b/src/manager/manager1F.c
@@ -28,8 +28,7 @@ void sub_0805B70C(Manager1F* this) {
this->manager.unk_0b = 1;
}
this->manager.action = 1;
- this->field_0x38 =
- (this->field_0x38 >> 4 & 0x3fU) | (((this->field_0x3a << 0x10) >> 0x14 & 0x3fU) << 6);
+ this->field_0x38 = (this->field_0x38 >> 4 & 0x3fU) | (((this->field_0x3a << 0x10) >> 0x14 & 0x3fU) << 6);
sub_0805B778(this);
}
@@ -48,6 +47,5 @@ void sub_0805B744(Manager1F* this) {
}
void sub_0805B778(Manager1F* this) {
- SetTileType(gUnk_08108C9C[this->manager.unk_0a * 2 + this->manager.unk_0b],
- this->field_0x38, this->field_0x36);
-} \ No newline at end of file
+ SetTileType(gUnk_08108C9C[this->manager.unk_0a * 2 + this->manager.unk_0b], this->field_0x38, this->field_0x36);
+}
diff --git a/src/manager/manager2.c b/src/manager/manager2.c
index f634c42d..1198575c 100644
--- a/src/manager/manager2.c
+++ b/src/manager/manager2.c
@@ -22,4 +22,4 @@ ASM_FUNC("asm/non_matching/manager2/sub_080575C8.inc", void sub_080575C8(u32 par
ASM_FUNC("asm/non_matching/manager2/sub_08057688.inc", void sub_08057688())
-ASM_FUNC("asm/non_matching/manager2/sub_080576A0.inc", void sub_080576A0()) \ No newline at end of file
+ASM_FUNC("asm/non_matching/manager2/sub_080576A0.inc", void sub_080576A0())
diff --git a/src/manager/manager22.c b/src/manager/manager22.c
index b5524f42..ba174d0a 100644
--- a/src/manager/manager22.c
+++ b/src/manager/manager22.c
@@ -15,4 +15,4 @@ ASM_FUNC("asm/non_matching/manager22/sub_0805BBBC.inc", void sub_0805BBBC())
ASM_FUNC("asm/non_matching/manager22/sub_0805BC04.inc", void sub_0805BC04())
-ASM_FUNC("asm/non_matching/manager22/sub_0805BC4C.inc", void sub_0805BC4C()) \ No newline at end of file
+ASM_FUNC("asm/non_matching/manager22/sub_0805BC4C.inc", void sub_0805BC4C())
diff --git a/src/manager/manager24.c b/src/manager/manager24.c
index b0d78f36..88a5a8e9 100644
--- a/src/manager/manager24.c
+++ b/src/manager/manager24.c
@@ -305,7 +305,6 @@ void sub_0805C4E0(u32 pos, u32 layer) {
}
}
-u32 sub_0805C608(void)
-{
- return gUnk_08108CFC[gArea.regret];
+u32 sub_0805C608(void) {
+ return gUnk_08108CFC[gArea.regret];
}
diff --git a/src/manager/manager2A.c b/src/manager/manager2A.c
index 048df4cb..f82aabd7 100644
--- a/src/manager/manager2A.c
+++ b/src/manager/manager2A.c
@@ -9,7 +9,7 @@ typedef struct {
u16 flag;
u16 tilePos;
u16 tileType; // If the tile type at tilePos, tileLayer is tileType, set the local flag.
-} Manager2A_unk; // TODO result of GetCurrentRoomProperty(3)?
+} Manager2A_unk; // TODO result of GetCurrentRoomProperty(3)?
void sub_0805CFF0(Manager2A_unk*);
diff --git a/src/manager/manager2B.c b/src/manager/manager2B.c
index 3471a5bc..b3601007 100644
--- a/src/manager/manager2B.c
+++ b/src/manager/manager2B.c
@@ -1,13 +1,13 @@
#include "manager.h"
#include "flags.h"
-#include "room.h"
+#include "room.h"
#include "functions.h"
#include "object.h"
#include "audio.h"
typedef struct {
Manager manager;
- Entity * field_0x20;
+ Entity* field_0x20;
u8 field_0x24;
u8 field_0x25;
u8 field_0x26;
@@ -37,8 +37,6 @@ typedef struct {
u16 field_0x3e;
} Manager2B;
-
-
extern void (*const gUnk_08108D30[])(Entity*);
extern u8 gEntCount;
@@ -62,7 +60,7 @@ NONMATCH("asm/non_matching/manager2B/sub_0805D02C.inc", void sub_0805D02C(Manage
objectData = GetCurrentRoomProperty(this->manager.unk_0a);
counter = 0;
createdObjects = &this->field_0x20;
- while(counter < 4) {
+ while (counter < 4) {
object = CreateObject(OBJECT_A0, objectData[2], counter);
object->x.HALF.HI = objectData[0] + gRoomControls.roomOriginX;
object->y.HALF.HI = objectData[1] + gRoomControls.roomOriginY;
@@ -72,7 +70,7 @@ NONMATCH("asm/non_matching/manager2B/sub_0805D02C.inc", void sub_0805D02C(Manage
counter += 1;
objectData += 3;
createdObjects += 1;
- }
+ }
this->manager.action = 1;
this->manager.unk_0f = 0x3c;
this->field_0x36 = 0;
@@ -106,7 +104,7 @@ NONMATCH("asm/non_matching/manager2B/sub_0805D11C.inc", void sub_0805D11C(Manage
u32 counter;
counter = 0;
- createdObjects = &this->field_0x20;
+ createdObjects = &this->field_0x20;
while (counter < 4) {
entity = *createdObjects;
*createdObjects = NULL;
diff --git a/src/manager/manager2C.c b/src/manager/manager2C.c
index ba66443d..3c578661 100644
--- a/src/manager/manager2C.c
+++ b/src/manager/manager2C.c
@@ -18,12 +18,12 @@ void Manager2C_Main(Manager2C* manager) {
manager->manager.action = 1;
manager->field_0x3a = 0;
}
- if (((CheckPlayerInRegion(manager->field_0x38, manager->field_0x3a, 0x14, 0x40) != 0) &&
- (((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) +gPlayerEntity.height.HALF.HI) < 0)) &&
+ if (((CheckPlayerInRegion(manager->field_0x38, manager->field_0x3a, 0x14, 0x40) != 0) &&
+ (((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) + gPlayerEntity.height.HALF.HI) < 0)) &&
(gRoomControls.roomScrollY == gRoomControls.roomOriginY)) {
MemClear(&gScreenTransition.areaID, 0x20);
gScreenTransition.transitioningOut = 1;
- gScreenTransition.transitionType = 0;
+ gScreenTransition.transitionType = 0;
gScreenTransition.field_0xf = 0xb;
gScreenTransition.areaID = manager->manager.unk_0b;
gScreenTransition.roomID = manager->manager.unk_0e;
diff --git a/src/manager/manager2F.c b/src/manager/manager2F.c
index 4d61dc37..68e41338 100644
--- a/src/manager/manager2F.c
+++ b/src/manager/manager2F.c
@@ -1,6 +1,40 @@
#include "manager.h"
+#include "area.h"
+#include "room.h"
+#include "screen.h"
+#include "functions.h"
-ASM_FUNC("asm/non_matching/manager2F/Manager2F_Main.inc", void Manager2F_Main())
+void sub_0805D470(Manager*);
-ASM_FUNC("asm/non_matching/manager2F/sub_0805D470.inc", void sub_0805D470()) \ No newline at end of file
+void Manager2F_Main(Manager* this) {
+ if (this == NULL) {
+ if ((void*)gArea.unk3 != sub_0805D470) {
+ sub_0805D470(NULL);
+ }
+ } else {
+ if (this->action == 0) {
+ this->action = 1;
+ this->unk_10 |= 0x20;
+ sub_0805E3A0(this, 6);
+ if (gArea.unk3 == 0) {
+ sub_08052D74(this, sub_0805D470, NULL);
+ } else {
+ DeleteThisEntity();
+ }
+ } else {
+ gRoomControls.bg3OffsetX.WORD -= 0x4000;
+ gRoomControls.bg3OffsetY.WORD -= 0x2000;
+ gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI;
+ gScreen.affine.bg3yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI;
+ }
+ }
+}
+
+void sub_0805D470(Manager* this) {
+ LoadGfxGroup(0x4c);
+ gScreen.affine.bg3Control = 0x1e07;
+ gScreen.lcd.displayControl |= 0x800;
+ gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI;
+ gScreen.affine.bg3yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI;
+}
diff --git a/src/manager/manager31.c b/src/manager/manager31.c
index 2186974b..1dfa0b75 100644
--- a/src/manager/manager31.c
+++ b/src/manager/manager31.c
@@ -1,4 +1,4 @@
#include "manager.h"
-ASM_FUNC("asm/non_matching/manager31/Manager31_Main.inc", void Manager31_Main()) \ No newline at end of file
+ASM_FUNC("asm/non_matching/manager31/Manager31_Main.inc", void Manager31_Main())
diff --git a/src/manager/manager32.c b/src/manager/manager32.c
index ef35a608..4461617e 100644
--- a/src/manager/manager32.c
+++ b/src/manager/manager32.c
@@ -14,4 +14,4 @@ ASM_FUNC("asm/non_matching/manager32/sub_0805D9D8.inc", void sub_0805D9D8())
ASM_FUNC("asm/non_matching/manager32/sub_0805DA08.inc", void sub_0805DA08())
-ASM_FUNC("asm/non_matching/manager32/sub_0805DA90.inc", void sub_0805DA90()) \ No newline at end of file
+ASM_FUNC("asm/non_matching/manager32/sub_0805DA90.inc", void sub_0805DA90())
diff --git a/src/manager/manager33.c b/src/manager/manager33.c
index 25d630d6..df2feeb7 100644
--- a/src/manager/manager33.c
+++ b/src/manager/manager33.c
@@ -1,3 +1,3 @@
#include "manager.h"
-ASM_FUNC("asm/non_matching/manager33/Manager33_Main.inc", void Manager33_Main(Manager* this)) \ No newline at end of file
+ASM_FUNC("asm/non_matching/manager33/Manager33_Main.inc", void Manager33_Main(Manager* this))
diff --git a/src/manager/manager35.c b/src/manager/manager35.c
index 498af777..0afd3b02 100644
--- a/src/manager/manager35.c
+++ b/src/manager/manager35.c
@@ -1,11 +1,84 @@
#include "manager.h"
+#include "flags.h"
+#include "room.h"
+#include "object.h"
-ASM_FUNC("asm/non_matching/manager35/Manager35_Main.inc", void Manager35_Main())
+typedef struct {
+ Manager manager;
+ u8 field_0x20[0x15];
+ u8 field_0x35;
+ u8 field_0x36;
+ u8 field_0x37;
+ s16 field_0x38;
+ s16 field_0x3a;
+ u16 field_0x3c;
+ u16 field_0x3e;
+} Manager35;
-ASM_FUNC("asm/non_matching/manager35/sub_0805DC9C.inc", void sub_0805DC9C())
+extern void (*const gUnk_08108D98[])(Manager35*);
-ASM_FUNC("asm/non_matching/manager35/sub_0805DCC8.inc", void sub_0805DCC8())
+extern void sub_0805E4E0(Entity*, u32);
-ASM_FUNC("asm/non_matching/manager35/sub_0805DD24.inc", void sub_0805DD24())
+void Manager35_Main(Manager35* this) {
+ gUnk_08108D98[this->manager.action](this);
+}
-ASM_FUNC("asm/non_matching/manager35/sub_0805DD68.inc", void sub_0805DD68()) \ No newline at end of file
+void sub_0805DC9C(Manager35* this) {
+ if (CheckFlags(this->field_0x3c) != 0) {
+ DeleteThisEntity();
+ }
+ if (CheckFlags(this->field_0x3e) != 0) {
+ SetFlag(this->field_0x3c);
+ DeleteThisEntity();
+ }
+ this->manager.action = 1;
+}
+
+void sub_0805DCC8(Manager35* this) {
+ Entity* object;
+
+ if (CheckFlags(this->field_0x3e) != 0) {
+ this->manager.action = 2;
+ this->manager.unk_0e = this->field_0x35;
+ if (this->manager.unk_0e == 0) {
+ this->manager.unk_0e = 0x1e;
+ }
+ this->manager.parent = (Manager*)gRoomControls.cameraTarget;
+ object = CreateObject(OBJECT_69, 0, 0);
+ if (object != NULL) {
+ object->x.HALF.HI = this->field_0x38 + gRoomControls.roomOriginX;
+ object->y.HALF.HI = this->field_0x3a + gRoomControls.roomOriginY;
+ *(Entity**)this->manager.unk_18 = object;
+ gRoomControls.cameraTarget = object;
+ sub_0805E4E0(object, 0x1e);
+ }
+ }
+}
+
+void sub_0805DD24(Manager35* this) {
+ sub_0805E4E0(0, 8);
+ if ((gRoomControls.unk6 & 4) == 0 && --this->manager.unk_0e == 0) {
+ this->manager.action = 3;
+ SetFlag(this->field_0x3c);
+ if (this->field_0x36 == 0) {
+ this->field_0x36 = 1;
+ }
+ }
+}
+
+void sub_0805DD68(Manager35* this) {
+ sub_0805E4E0(0, 8);
+ if (this->field_0x36 != 0) {
+ if (--this->field_0x36 == 0) {
+ gRoomControls.cameraTarget = (Entity*)this->manager.parent;
+ }
+ } else {
+ if ((gRoomControls.unk6 & 4) == 0) {
+ Entity* entity = *(Entity**)this->manager.unk_18;
+ if (entity != NULL) {
+ DeleteEntity(entity);
+ }
+ DeleteThisEntity();
+ }
+ }
+}
diff --git a/src/manager/manager37.c b/src/manager/manager37.c
index 635bd5a5..b9b8cdcc 100644
--- a/src/manager/manager37.c
+++ b/src/manager/manager37.c
@@ -20,4 +20,4 @@ ASM_FUNC("asm/non_matching/manager37/sub_0805E000.inc", void sub_0805E000())
ASM_FUNC("asm/non_matching/manager37/sub_0805E078.inc", void sub_0805E078())
-ASM_FUNC("asm/non_matching/manager37/sub_0805E094.inc", void sub_0805E094()) \ No newline at end of file
+ASM_FUNC("asm/non_matching/manager37/sub_0805E094.inc", void sub_0805E094())
diff --git a/src/manager/manager6.c b/src/manager/manager6.c
index 0f5637cb..7c7f3cfb 100644
--- a/src/manager/manager6.c
+++ b/src/manager/manager6.c
@@ -3,8 +3,6 @@
#include "manager.h"
#include "functions.h"
-extern void DoExitTransition(void*);
-
void Manager6_Main(Manager6* this) {
u32 tmp;
Manager6WarpData* i;
diff --git a/src/manager/managerD.c b/src/manager/managerD.c
index dcd31bb5..376fa94f 100644
--- a/src/manager/managerD.c
+++ b/src/manager/managerD.c
@@ -32,7 +32,6 @@ typedef struct {
u16 field_0x3e;
} ManagerD;
-
extern void (*const gUnk_08108308[])(ManagerD*);
extern u16* GetLayerByIndex(u32);
@@ -52,7 +51,6 @@ void sub_08058DE8(ManagerD* this) {
puVar3 = (this->field_0x38 + 2) + puVar2;
this->field_0x30 = puVar3;
this->field_0x28 = *puVar3;
-
}
}
diff --git a/src/manager/managerF.c b/src/manager/managerF.c
index 65fa7757..3f99ad78 100644
--- a/src/manager/managerF.c
+++ b/src/manager/managerF.c
@@ -46,4 +46,4 @@ ASM_FUNC("asm/non_matching/managerF/sub_0805947C.inc", void sub_0805947C())
ASM_FUNC("asm/non_matching/managerF/sub_080594DC.inc", void sub_080594DC())
-ASM_FUNC("asm/non_matching/managerF/sub_08059548.inc", void sub_08059548()) \ No newline at end of file
+ASM_FUNC("asm/non_matching/managerF/sub_08059548.inc", void sub_08059548())
diff --git a/src/npc/emma.c b/src/npc/emma.c
index f7a8577a..cdbfe8e3 100644
--- a/src/npc/emma.c
+++ b/src/npc/emma.c
@@ -3,11 +3,9 @@
#include "script.h"
#include "functions.h"
-extern u32 gUnk_0813AD10;
-extern u32 gUnk_0813AD24;
-extern u32 gUnk_0813AD38;
-
-extern void DoExitTransition(u32*);
+extern ScreenTransitionData gUnk_0813AD10;
+extern ScreenTransitionData gUnk_0813AD24;
+extern ScreenTransitionData gUnk_0813AD38;
void Emma(Entity* this) {
if (this->action == 0) {
diff --git a/src/npc/picolyteBottle.c b/src/npc/picolyteBottle.c
index 720cdf61..4dd3dcaf 100644
--- a/src/npc/picolyteBottle.c
+++ b/src/npc/picolyteBottle.c
@@ -4,7 +4,6 @@
#include "functions.h"
#include "textbox.h"
-extern void DoExitTransition(ScreenTransitionData*);
extern ScreenTransitionData gUnk_0813AD4C;
void sub_0806E014(Entity* this);
diff --git a/src/npc/simon.c b/src/npc/simon.c
index f5f1aad7..740ffa7e 100644
--- a/src/npc/simon.c
+++ b/src/npc/simon.c
@@ -12,10 +12,8 @@ typedef struct {
u32 unk;
} struct_0806C2A0;
-extern void DoExitTransition(void*);
-
-extern void gUnk_0813AD60;
-extern void gUnk_0813AD74;
+extern ScreenTransitionData gUnk_0813AD60;
+extern ScreenTransitionData gUnk_0813AD74;
void Simon(Entity* this) {
if (this->action == 0) {
diff --git a/src/object/book.c b/src/object/book.c
index ee53ef99..b51c4716 100644
--- a/src/object/book.c
+++ b/src/object/book.c
@@ -232,4 +232,4 @@ void (*const BookActionFuncs[])(Entity*) = {
sub_0809B3C4, sub_0809B4A8, sub_0809B524, sub_0809B56C, sub_0809B5B4, sub_0809B5EC,
};
-const s8 gUnk_08123D94[] = { -22, -20, -20, -20 }; \ No newline at end of file
+const s8 gUnk_08123D94[] = { -22, -20, -20, -20 };
diff --git a/src/object/minishSizedEntrance.c b/src/object/minishSizedEntrance.c
index 03467f41..ce5ab316 100644
--- a/src/object/minishSizedEntrance.c
+++ b/src/object/minishSizedEntrance.c
@@ -4,8 +4,6 @@
#include "player.h"
#include "functions.h"
-extern void DoExitTransition(void*);
-
extern void (*const gUnk_08122254[])(Entity*);
extern u16 gUnk_0812225C[];
@@ -35,6 +33,6 @@ void sub_08090F00(Entity* this) {
}
if ((gPlayerState.flags.all & 0x80) && sub_080041A0(this, &gPlayerEntity, 4, 4) &&
(gPlayerEntity.height.HALF.HI == 0) && (((u16)gPlayerState.field_0x90.HALF.LO) & gUnk_0812225C[this->type2])) {
- DoExitTransition((Entity*)GetCurrentRoomProperty(this->actionDelay));
+ DoExitTransition(GetCurrentRoomProperty(this->actionDelay));
}
}
diff --git a/src/player.c b/src/player.c
index 21b3c234..8c3612f1 100644
--- a/src/player.c
+++ b/src/player.c
@@ -31,7 +31,6 @@ extern void sub_0806F948();
extern void sub_08077698();
extern void sub_0805E544();
extern void sub_080717F8();
-extern void DoExitTransition();
extern void UnfreezeTime();
extern void sub_08071A6C();
extern void sub_08052BB8();