summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/secret_base.s334
-rw-r--r--src/secret_base.c91
2 files changed, 91 insertions, 334 deletions
diff --git a/asm/secret_base.s b/asm/secret_base.s
index 7ef007a81..3eb71e8ed 100644
--- a/asm/secret_base.s
+++ b/asm/secret_base.s
@@ -5,340 +5,6 @@
.text
- thumb_func_start sub_80EB56C
-sub_80EB56C: @ 80EB56C
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileIdAt
- ldr r1, =0xfffffdd4
- adds r0, r1
- cmp r0, 0xCF
- bls _080EB594
- b _080EB9D0
-_080EB594:
- lsls r0, 2
- ldr r1, =_080EB5A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080EB5A8:
- .4byte _080EB930
- .4byte _080EB97C
- .4byte _080EB97C
- .4byte _080EB97C
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB930
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9AC
- .4byte _080EB954
- .4byte _080EB954
- .4byte _080EB8E8
- .4byte _080EB8E8
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9AC
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9AC
- .4byte _080EB9AC
- .4byte _080EB9AC
- .4byte _080EB9AC
- .4byte _080EB9AC
- .4byte _080EB9AC
- .4byte _080EB9AC
- .4byte _080EB9AC
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9AC
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9AC
- .4byte _080EB9AC
- .4byte _080EB9AC
- .4byte _080EB9D0
- .4byte _080EB9AC
- .4byte _080EB9AC
- .4byte _080EB9AC
- .4byte _080EB9AC
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9AC
- .4byte _080EB9AC
- .4byte _080EB9AC
- .4byte _080EB9AC
- .4byte _080EB9AC
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB90C
- .4byte _080EB90C
- .4byte _080EB90C
- .4byte _080EB90C
- .4byte _080EB90C
- .4byte _080EB90C
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB90C
- .4byte _080EB90C
- .4byte _080EB90C
- .4byte _080EB90C
- .4byte _080EB90C
- .4byte _080EB90C
- .4byte _080EB90C
- .4byte _080EB90C
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB9D0
- .4byte _080EB90C
- .4byte _080EB90C
- .4byte _080EB90C
- .4byte _080EB90C
-_080EB8E8:
- ldr r0, =0x00004054
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- beq _080EB9D0
- ldr r4, =0x000040ee
- adds r0, r4, 0
- bl VarGet
- adds r1, r0, 0
- movs r0, 0x40
- b _080EB994
- .pool
-_080EB90C:
- ldr r0, =0x00004054
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- beq _080EB9D0
- ldr r4, =0x000040ee
- adds r0, r4, 0
- bl VarGet
- adds r1, r0, 0
- movs r0, 0x8
- b _080EB994
- .pool
-_080EB930:
- ldr r0, =0x00004054
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- beq _080EB9D0
- ldr r4, =0x000040ef
- adds r0, r4, 0
- bl VarGet
- adds r1, r0, 0
- movs r0, 0x40
- b _080EB994
- .pool
-_080EB954:
- ldr r0, =0x00004054
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- beq _080EB9D0
- ldr r4, =0x000040ef
- adds r0, r4, 0
- bl VarGet
- adds r1, r0, 0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- b _080EB994
- .pool
-_080EB97C:
- ldr r0, =0x00004054
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- beq _080EB9D0
- ldr r4, =0x000040ef
- adds r0, r4, 0
- bl VarGet
- adds r1, r0, 0
- movs r0, 0x10
-_080EB994:
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl VarSet
- b _080EB9D0
- .pool
-_080EB9AC:
- ldr r0, =0x00004054
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- beq _080EB9D0
- ldr r4, =0x000040ef
- adds r0, r4, 0
- bl VarGet
- adds r1, r0, 0
- movs r0, 0x8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl VarSet
-_080EB9D0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80EB56C
-
thumb_func_start sub_80EB9E0
sub_80EB9E0: @ 80EB9E0
push {r4,lr}
diff --git a/src/secret_base.c b/src/secret_base.c
index bbbf8bd31..a51cd0ff9 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -2023,3 +2023,94 @@ void sub_80EB498(void)
break;
}
}
+
+void sub_80EB56C(void)
+{
+ s16 x;
+ s16 y;
+
+ GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
+ switch (MapGridGetMetatileIdAt(x, y))
+ {
+ case 0x28a:
+ case 0x28b:
+ if (VarGet(VAR_0x4054) != 0)
+ {
+ VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x40);
+ }
+ break;
+ case 0x2d8:
+ case 0x2d9:
+ case 0x2da:
+ case 0x2db:
+ case 0x2dc:
+ case 0x2dd:
+ case 0x2e8:
+ case 0x2e9:
+ case 0x2ea:
+ case 0x2eb:
+ case 0x2ec:
+ case 0x2ed:
+ case 0x2ee:
+ case 0x2ef:
+ case 0x2f8:
+ case 0x2f9:
+ case 0x2fa:
+ case 0x2fb:
+ if (VarGet(VAR_0x4054) != 0)
+ {
+ VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x8);
+ }
+ break;
+ case 0x22c:
+ case 0x233:
+ if (VarGet(VAR_0x4054) != 0)
+ {
+ VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x40);
+ }
+ break;
+ case 0x288:
+ case 0x289:
+ if (VarGet(VAR_0x4054) != 0)
+ {
+ VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x100);
+ }
+ break;
+ case 0x22d:
+ case 0x22e:
+ case 0x22f:
+ if (VarGet(VAR_0x4054) != 0)
+ {
+ VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x10);
+ }
+ break;
+ case 0x287:
+ case 0x28f:
+ case 0x298:
+ case 0x299:
+ case 0x29a:
+ case 0x29b:
+ case 0x29c:
+ case 0x29d:
+ case 0x29e:
+ case 0x29f:
+ case 0x2ab:
+ case 0x2b0:
+ case 0x2b1:
+ case 0x2b2:
+ case 0x2b4:
+ case 0x2b5:
+ case 0x2b6:
+ case 0x2b7:
+ case 0x2cb:
+ case 0x2cc:
+ case 0x2cd:
+ case 0x2ce:
+ case 0x2cf:
+ if (VarGet(VAR_0x4054) != 0)
+ {
+ VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x8);
+ }
+ break;
+ }
+}