summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-01-05 19:51:31 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-01-05 19:51:31 -0500
commit81aec4e8dfe9171f7482ff3a38148dbb0e92d407 (patch)
treecc57b2dc7654ca3dcd398afe1dfeef461c63f03f
parentbc5fdb16a8d374972a4dc93e61eacaa6061e3f61 (diff)
through sub_8124598
-rw-r--r--asm/cable_car.s98
-rw-r--r--src/scene/cable_car.c54
2 files changed, 46 insertions, 106 deletions
diff --git a/asm/cable_car.s b/asm/cable_car.s
index c7128c69f..92518cef6 100644
--- a/asm/cable_car.s
+++ b/asm/cable_car.s
@@ -5,104 +5,6 @@
.text
- thumb_func_start sub_812453C
-sub_812453C: @ 812453C
- push {r4,r5,lr}
- ldr r5, _08124594 @ =gUnknown_02039274
- ldr r4, [r5]
- ldrb r0, [r4, 0x1C]
- adds r0, 0x1
- movs r1, 0x60
- bl __modsi3
- strb r0, [r4, 0x1C]
- ldr r1, [r5]
- ldrb r0, [r1, 0x1F]
- ldrb r2, [r1, 0x1D]
- subs r0, r2
- strb r0, [r1, 0x8]
- ldr r2, [r5]
- adds r0, r2, 0
- adds r0, 0x20
- ldrb r0, [r0]
- ldrb r1, [r2, 0x1E]
- subs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, [r5]
- ldrb r0, [r1, 0x1D]
- adds r0, 0x1
- strb r0, [r1, 0x1D]
- ldr r2, [r5]
- ldrb r0, [r2, 0x1D]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08124580
- ldrb r0, [r2, 0x1E]
- adds r0, 0x1
- strb r0, [r2, 0x1E]
-_08124580:
- ldr r0, [r5]
- ldrb r0, [r0, 0x1D]
- cmp r0, 0x10
- bls _0812458C
- bl sub_81245F4
-_0812458C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08124594: .4byte gUnknown_02039274
- thumb_func_end sub_812453C
-
- thumb_func_start sub_8124598
-sub_8124598: @ 8124598
- push {r4,r5,lr}
- ldr r5, _081245F0 @ =gUnknown_02039274
- ldr r4, [r5]
- ldrb r0, [r4, 0x1C]
- adds r0, 0x1
- movs r1, 0x60
- bl __modsi3
- strb r0, [r4, 0x1C]
- ldr r1, [r5]
- ldrb r0, [r1, 0x1D]
- ldrb r2, [r1, 0x1F]
- adds r0, r2
- strb r0, [r1, 0x8]
- ldr r1, [r5]
- adds r2, r1, 0
- adds r2, 0x20
- ldrb r0, [r1, 0x1E]
- ldrb r2, [r2]
- adds r0, r2
- strb r0, [r1, 0x9]
- ldr r1, [r5]
- ldrb r0, [r1, 0x1D]
- adds r0, 0x1
- strb r0, [r1, 0x1D]
- ldr r2, [r5]
- ldrb r0, [r2, 0x1D]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _081245DC
- ldrb r0, [r2, 0x1E]
- adds r0, 0x1
- strb r0, [r2, 0x1E]
-_081245DC:
- ldr r0, [r5]
- ldrb r0, [r0, 0x1D]
- cmp r0, 0x10
- bls _081245E8
- bl sub_812476C
-_081245E8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081245F0: .4byte gUnknown_02039274
- thumb_func_end sub_8124598
-
thumb_func_start sub_81245F4
sub_81245F4: @ 81245F4
push {r4-r7,lr}
diff --git a/src/scene/cable_car.c b/src/scene/cable_car.c
index c735f8ace..3582ce4fd 100644
--- a/src/scene/cable_car.c
+++ b/src/scene/cable_car.c
@@ -46,7 +46,11 @@ struct CableCarEwramStruct1 {
u8 unk_0015;
u8 filler_0016[5];
u8 unk_001b;
- u8 filler_001c[6];
+ u8 unk_001c;
+ u8 unk_001d;
+ u8 unk_001e;
+ u8 unk_001f;
+ u8 unk_0020;
u16 unk_0022[9][12];
u8 filler_00fa[2];
u16 unk_00fc[0x400];
@@ -74,20 +78,22 @@ EWRAM_DATA u32 filler_02039280 = 0;
// Static ROM declarations
void sub_8123244(void);
-void sub_8124118(void);
-void sub_81248AC(u8);
-void sub_8123FBC(u8);
-void sub_8123C40(void);
void sub_8123724(void);
void sub_8123878(u8 taskId);
void sub_81239E4(u8 taskId);
void sub_8123AF8(u8 taskId);
-void sub_812453C(void);
-void sub_8124598(void);
-void sub_8123CB8(struct Sprite *sprite);
+void sub_8123C40(void);
void nullsub_76(struct Sprite *sprite);
+void sub_8123CB8(struct Sprite *sprite);
void sub_8123EB8(struct Sprite *sprite);
void sub_8123F44(struct Sprite *sprite);
+void sub_8123FBC(u8);
+void sub_8124118(void);
+void sub_812453C(void);
+void sub_8124598(void);
+void sub_81245F4(void);
+void sub_812476C(void);
+void sub_81248AC(u8);
// .rodata
@@ -857,4 +863,36 @@ void sub_812446C(void)
}
}
gUnknown_02039274->unk_001b = (gUnknown_02039274->unk_001b + 1) % 3;
+}
+
+void sub_812453C(void)
+{
+ gUnknown_02039274->unk_001c = (gUnknown_02039274->unk_001c + 1) % 0x60;
+ gUnknown_02039274->unk_0008 = gUnknown_02039274->unk_001f - gUnknown_02039274->unk_001d;
+ gUnknown_02039274->unk_0009 = gUnknown_02039274->unk_0020 - gUnknown_02039274->unk_001e;
+ gUnknown_02039274->unk_001d++;
+ if ((gUnknown_02039274->unk_001d % 4) == 0)
+ {
+ gUnknown_02039274->unk_001e++;
+ }
+ if (gUnknown_02039274->unk_001d > 16)
+ {
+ sub_81245F4();
+ }
+}
+
+void sub_8124598(void)
+{
+ gUnknown_02039274->unk_001c = (gUnknown_02039274->unk_001c + 1) % 0x60;
+ gUnknown_02039274->unk_0008 = gUnknown_02039274->unk_001f + gUnknown_02039274->unk_001d;
+ gUnknown_02039274->unk_0009 = gUnknown_02039274->unk_0020 + gUnknown_02039274->unk_001e;
+ gUnknown_02039274->unk_001d++;
+ if ((gUnknown_02039274->unk_001d % 4) == 0)
+ {
+ gUnknown_02039274->unk_001e++;
+ }
+ if (gUnknown_02039274->unk_001d > 16)
+ {
+ sub_812476C();
+ }
} \ No newline at end of file