summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/bike.s57
-rw-r--r--include/field_player_avatar.h2
-rw-r--r--ld_script.txt2
-rw-r--r--src/bike.c183
4 files changed, 129 insertions, 115 deletions
diff --git a/data/bike.s b/data/bike.s
deleted file mode 100644
index ab2d7b67c..000000000
--- a/data/bike.s
+++ /dev/null
@@ -1,57 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_083DB594:: @ 83DB594
- .4byte sub_80E5168
- .4byte sub_80E517C
- .4byte sub_80E51C4
- .4byte sub_80E5270
-
- .align 2
-gUnknown_083DB5A4:: @ 83DB5A4
- .4byte PlayerGoSpeed0
- .4byte sub_80593C4
- .4byte sub_80593F4
-
- .align 2
-gUnknown_083DB5B0:: @ 83DB5B0
- .4byte sub_80E56F8
- .4byte sub_80E5708
- .4byte sub_80E5744
- .4byte sub_80E57BC
- .4byte sub_80E57F8
- .4byte sub_80E5834
- .4byte sub_80E5870
- .4byte sub_80E58AC
- .4byte sub_80E5920
- .4byte sub_80E5990
- .4byte sub_80E59A0
- .4byte sub_80E5A30
- .4byte sub_80E5AC0
-
- .align 2
-gUnknown_083DB5E4:: @ 83DB5E4
- .4byte CheckMovementInputAcroBikeNormal
- .4byte CheckMovementInputAcroBikeChangingDirection
- .4byte CheckMovementInputAcroBikeStandingWheelie
- .4byte CheckMovementInputAcroBikeBunnyHop
- .4byte CheckMovementInputAcroBikeMovingWheelie
- .4byte CheckMovementInputAcroBikeUnknownMode5
- .4byte CheckMovementInputAcroBikeUnknownMode6
-
- .align 1
-gUnknown_083DB600:: @ 83DB600
- .2byte 1, 2, 4
-
-Unknown_3DB606:: @ 83DB606
- .byte 4, 0
-
- .align 2
-gUnknown_083DB608:: @ 83DB608
- .4byte 0x1, 0x2, 0xf, 0xf, Unknown_3DB606, Unknown_3DB606, 0x1
- .4byte 0x2, 0x2, 0xf, 0xf, Unknown_3DB606, Unknown_3DB606, 0x2
- .4byte 0x3, 0x2, 0xf, 0xf, Unknown_3DB606, Unknown_3DB606, 0x3
- .4byte 0x4, 0x2, 0xf, 0xf, Unknown_3DB606, Unknown_3DB606, 0x4
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index 9636c2dc1..7f18f1ef4 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -38,7 +38,7 @@ void player_npc_set_state_and_x22_etc(u8 a, u8 b);
void PlayerGoSpeed0(u8 a);
void sub_80593C4(u8 a);
void npc_use_some_d2s(u8 a);
-// sub_80593F4
+void sub_80593F4(u8 a);
void sub_805940C(u8 a);
void PlayerOnBikeCollide(u8);
void PlayerFaceDirection(u8 a);
diff --git a/ld_script.txt b/ld_script.txt
index a725b54b0..ceb519f0a 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -378,7 +378,7 @@ SECTIONS {
data/rotating_gate.o(.rodata);
data/item_use.o(.rodata);
data/battle_anim_80CA710.o(.rodata);
- data/bike.o(.rodata);
+ src/bike.o(.rodata);
data/easy_chat.o(.rodata);
data/pokenav.o(.rodata);
data/mon_markings.o(.rodata);
diff --git a/src/bike.c b/src/bike.c
index 4d882d21a..fb6ef7067 100644
--- a/src/bike.c
+++ b/src/bike.c
@@ -14,39 +14,110 @@ struct UnknownStruct1
u32 unk4;
u32 unk8;
u32 unkC;
- u8 *unk10;
- u8 *unk14;
+ const u8 *unk10;
+ const u8 *unk14;
u32 unk18;
};
extern u8 gUnknown_0202E86C[];
extern u8 gUnknown_0202E874[];
-extern void (*gUnknown_083DB594[])(u8);
-extern void (*gUnknown_083DB5A4[])(u8);
-extern void (*gUnknown_083DB5B0[])(u8);
-extern u8 (*gUnknown_083DB5E4[])(u8 *, u16, u16);
-extern const struct UnknownStruct1 gUnknown_083DB608[];
-extern void sub_80E6024(void);
+static void MovePlayerOnMachBike(u8, u16, u16);
+static u8 CheckMovementInputMachBike(u8 *);
+static void sub_80E5168(u8);
+static void sub_80E517C(u8);
+static void sub_80E51C4(u8);
+static void sub_80E5270(u8);
+static void MovePlayerOnAcroBike(u8, u16, u16);
+static u8 CheckMovementInputAcroBike(u8 *, u16, u16);
+static u8 CheckMovementInputAcroBikeNormal(u8 *, u16, u16);
+static u8 CheckMovementInputAcroBikeChangingDirection(u8 *, u16, u16);
+static u8 CheckMovementInputAcroBikeStandingWheelie(u8 *, u16, u16);
+static u8 CheckMovementInputAcroBikeBunnyHop(u8 *, u16, u16);
+static u8 CheckMovementInputAcroBikeMovingWheelie(u8 *, u16, u16);
+static u8 CheckMovementInputAcroBikeUnknownMode5(u8 *, u16, u16);
+static u8 CheckMovementInputAcroBikeUnknownMode6(u8 *, u16, u16);
+static void sub_80E56F8(u8);
+static void sub_80E5708(u8);
+static void sub_80E5744(u8);
+static void sub_80E57BC(u8);
+static void sub_80E57F8(u8);
+static void sub_80E5834(u8);
+static void sub_80E5870(u8);
+static void sub_80E58AC(u8);
+static void sub_80E5920(u8);
+static void sub_80E5990(u8);
+static void sub_80E59A0(u8);
+static void sub_80E5A30(u8);
+static void sub_80E5AC0(u8);
+static void sub_80E5B60(u16, u16);
+static u8 sub_80E5C2C(void);
+static void sub_80E5C7C(u8);
+static void sub_80E5CB8(u8);
+static u8 sub_80E5CF4(u16);
+static u8 sub_80E5D34(u8);
+u8 sub_80E5DA0(struct MapObject *, s16, s16, u8, u8);
+
+extern void sub_80E5E4C();
extern u8 sub_80E5E70(u8, u8);
-extern u8 sub_80E5D34(u8);
-extern u8 sub_80608A4(u8);
+extern void sub_80E6024(void);
extern u8 sub_80E5EC0();
extern u8 IsRunningDisallowedByMetatile(u8);
+extern u8 sub_80608A4(u8);
-void MovePlayerOnMachBike(u8, u16, u16);
-u8 CheckMovementInputMachBike(u8 *);
-u8 CheckMovementInputAcroBike(u8 *, u16, u16);
-void sub_80E5168(u8);
-void sub_80E5270(u8);
-void MovePlayerOnAcroBike(u8, u16, u16);
-void sub_80E5B60(u16, u16);
-u8 sub_80E5CF4(u16);
-static void sub_80E5C7C(u8);
-static void sub_80E5CB8(u8);
-u8 sub_80E5C2C(void);
-u8 sub_80E5DA0(struct MapObject *mapObject, s16 x, s16 y, u8 direction, u8 metatitleBehavior);
-void sub_80E5E4C();
+static void (*const gUnknown_083DB594[])(u8) =
+{
+ sub_80E5168,
+ sub_80E517C,
+ sub_80E51C4,
+ sub_80E5270,
+};
+
+static void (*const gUnknown_083DB5A4[])(u8) =
+{
+ PlayerGoSpeed0,
+ sub_80593C4,
+ sub_80593F4,
+};
+
+static void (*const gUnknown_083DB5B0[])(u8) =
+{
+ sub_80E56F8,
+ sub_80E5708,
+ sub_80E5744,
+ sub_80E57BC,
+ sub_80E57F8,
+ sub_80E5834,
+ sub_80E5870,
+ sub_80E58AC,
+ sub_80E5920,
+ sub_80E5990,
+ sub_80E59A0,
+ sub_80E5A30,
+ sub_80E5AC0,
+};
+
+static u8 (*const gUnknown_083DB5E4[])(u8 *, u16, u16) =
+{
+ CheckMovementInputAcroBikeNormal,
+ CheckMovementInputAcroBikeChangingDirection,
+ CheckMovementInputAcroBikeStandingWheelie,
+ CheckMovementInputAcroBikeBunnyHop,
+ CheckMovementInputAcroBikeMovingWheelie,
+ CheckMovementInputAcroBikeUnknownMode5,
+ CheckMovementInputAcroBikeUnknownMode6,
+};
+
+const u16 gUnknown_083DB600[] = {1, 2, 4};
+static const u8 Unknown_3DB606[] = {4, 0};
+
+static const struct UnknownStruct1 gUnknown_083DB608[] =
+{
+ {1, 2, 15, 15, Unknown_3DB606, Unknown_3DB606, 1},
+ {2, 2, 15, 15, Unknown_3DB606, Unknown_3DB606, 2},
+ {3, 2, 15, 15, Unknown_3DB606, Unknown_3DB606, 3},
+ {4, 2, 15, 15, Unknown_3DB606, Unknown_3DB606, 4},
+};
void MovePlayerOnBike(u8 var1, u16 var2, u16 var3)
{
@@ -56,12 +127,12 @@ void MovePlayerOnBike(u8 var1, u16 var2, u16 var3)
MovePlayerOnAcroBike(var1, var2, var3);
}
-void MovePlayerOnMachBike(u8 var1, u16 var2, u16 var3)
+static void MovePlayerOnMachBike(u8 var1, u16 var2, u16 var3)
{
gUnknown_083DB594[CheckMovementInputMachBike(&var1) & 0x3FF](var1); // var2 and var3 arent used?
}
-u8 CheckMovementInputMachBike(u8 *ptr)
+static u8 CheckMovementInputMachBike(u8 *ptr)
{
u8 direction = player_get_direction_upper_nybble();
@@ -95,13 +166,13 @@ u8 CheckMovementInputMachBike(u8 *ptr)
}
}
-void sub_80E5168(u8 var)
+static void sub_80E5168(u8 var)
{
PlayerFaceDirection(var);
sub_80E6024();
}
-void sub_80E517C(u8 var)
+static void sub_80E517C(u8 var)
{
struct MapObject *mapPtr = &gMapObjects[gPlayerAvatar.mapObjectId];
@@ -114,7 +185,7 @@ void sub_80E517C(u8 var)
sub_80E5168(mapPtr->mapobj_unk_18);
}
-void sub_80E51C4(u8 var)
+static void sub_80E51C4(u8 var)
{
struct MapObject *mapPtr = &gMapObjects[gPlayerAvatar.mapObjectId];
u8 funcVar;
@@ -150,7 +221,7 @@ void sub_80E51C4(u8 var)
}
}
-void sub_80E5270(u8 var)
+static void sub_80E5270(u8 var)
{
u8 funcVar;
@@ -174,17 +245,17 @@ void sub_80E5270(u8 var)
gUnknown_083DB5A4[gPlayerAvatar.unkA](var);
}
-void MovePlayerOnAcroBike(u8 var1, u16 var2, u16 var3)
+static void MovePlayerOnAcroBike(u8 var1, u16 var2, u16 var3)
{
gUnknown_083DB5B0[CheckMovementInputAcroBike(&var1, var2, var3)](var1);
}
-u8 CheckMovementInputAcroBike(u8 *ptr, u16 var1, u16 var2)
+static u8 CheckMovementInputAcroBike(u8 *ptr, u16 var1, u16 var2)
{
return gUnknown_083DB5E4[gPlayerAvatar.unk8](ptr, var1, var2);
}
-u8 CheckMovementInputAcroBikeNormal(u8 *ptr, u16 var1, u16 var2)
+static u8 CheckMovementInputAcroBikeNormal(u8 *ptr, u16 var1, u16 var2)
{
u8 direction = player_get_direction_upper_nybble();
@@ -222,7 +293,7 @@ u8 CheckMovementInputAcroBikeNormal(u8 *ptr, u16 var1, u16 var2)
return 2;
}
-u8 CheckMovementInputAcroBikeChangingDirection(u8 *ptr, u16 unused1, u16 unused2)
+static u8 CheckMovementInputAcroBikeChangingDirection(u8 *ptr, u16 unused1, u16 unused2)
{
u8 direction;
@@ -256,7 +327,7 @@ u8 CheckMovementInputAcroBikeChangingDirection(u8 *ptr, u16 unused1, u16 unused2
return 0;
}
-u8 CheckMovementInputAcroBikeStandingWheelie(u8 *ptr, u16 unused1, u16 c)
+static u8 CheckMovementInputAcroBikeStandingWheelie(u8 *ptr, u16 unused1, u16 c)
{
u8 direction;
struct MapObject *playerMapObj;
@@ -302,7 +373,7 @@ u8 CheckMovementInputAcroBikeStandingWheelie(u8 *ptr, u16 unused1, u16 c)
return 5;
}
-u8 CheckMovementInputAcroBikeBunnyHop(u8 *ptr, u16 b, u16 c)
+static u8 CheckMovementInputAcroBikeBunnyHop(u8 *ptr, u16 b, u16 c)
{
u8 direction;
struct MapObject *playerMapObj;
@@ -337,7 +408,7 @@ u8 CheckMovementInputAcroBikeBunnyHop(u8 *ptr, u16 b, u16 c)
return 7;
}
-u8 CheckMovementInputAcroBikeMovingWheelie(u8 *ptr, u16 b, u16 c)
+static u8 CheckMovementInputAcroBikeMovingWheelie(u8 *ptr, u16 b, u16 c)
{
u8 direction;
struct MapObject *playerMapObj;
@@ -384,7 +455,7 @@ u8 CheckMovementInputAcroBikeMovingWheelie(u8 *ptr, u16 b, u16 c)
return 10;
}
-u8 CheckMovementInputAcroBikeUnknownMode5(u8 *ptr, u16 b, u16 c)
+static u8 CheckMovementInputAcroBikeUnknownMode5(u8 *ptr, u16 b, u16 c)
{
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
@@ -394,18 +465,18 @@ u8 CheckMovementInputAcroBikeUnknownMode5(u8 *ptr, u16 b, u16 c)
return CheckMovementInputAcroBike(ptr, b, c);
}
-u8 CheckMovementInputAcroBikeUnknownMode6(u8 *ptr, u16 b, u16 c)
+static u8 CheckMovementInputAcroBikeUnknownMode6(u8 *ptr, u16 b, u16 c)
{
gPlayerAvatar.unk8 = 0;
return CheckMovementInputAcroBike(ptr, b, c);
}
-void sub_80E56F8(u8 direction)
+static void sub_80E56F8(u8 direction)
{
PlayerFaceDirection(direction);
}
-void sub_80E5708(u8 direction)
+static void sub_80E5708(u8 direction)
{
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
@@ -414,7 +485,7 @@ void sub_80E5708(u8 direction)
PlayerFaceDirection(direction);
}
-void sub_80E5744(u8 direction)
+static void sub_80E5744(u8 direction)
{
u8 var;
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
@@ -438,7 +509,7 @@ void sub_80E5744(u8 direction)
}
}
-void sub_80E57BC(u8 direction)
+static void sub_80E57BC(u8 direction)
{
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
@@ -447,7 +518,7 @@ void sub_80E57BC(u8 direction)
sub_805951C(direction);
}
-void sub_80E57F8(u8 direction)
+static void sub_80E57F8(u8 direction)
{
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
@@ -456,7 +527,7 @@ void sub_80E57F8(u8 direction)
sub_8059534(direction);
}
-void sub_80E5834(u8 direction)
+static void sub_80E5834(u8 direction)
{
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
@@ -465,7 +536,7 @@ void sub_80E5834(u8 direction)
sub_8059504(direction);
}
-void sub_80E5870(u8 direction)
+static void sub_80E5870(u8 direction)
{
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
@@ -474,7 +545,7 @@ void sub_80E5870(u8 direction)
sub_805954C(direction);
}
-void sub_80E58AC(u8 direction)
+static void sub_80E58AC(u8 direction)
{
u8 var;
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
@@ -502,7 +573,7 @@ void sub_80E58AC(u8 direction)
}
}
-void sub_80E5920(u8 direction)
+static void sub_80E5920(u8 direction)
{
u8 var;
struct MapObject *playerMapObj;
@@ -529,12 +600,12 @@ void sub_80E5920(u8 direction)
player_npc_set_state_and_x22_etc(sub_80608A4(direction), 2);
}
-void sub_80E5990(u8 direction)
+static void sub_80E5990(u8 direction)
{
sub_80595B8(direction);
}
-void sub_80E59A0(u8 direction)
+static void sub_80E59A0(u8 direction)
{
u8 var;
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
@@ -564,7 +635,7 @@ void sub_80E59A0(u8 direction)
gPlayerAvatar.running2 = 2;
}
-void sub_80E5A30(u8 direction)
+static void sub_80E5A30(u8 direction)
{
u8 var;
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
@@ -594,7 +665,7 @@ void sub_80E5A30(u8 direction)
gPlayerAvatar.running2 = 2;
}
-void sub_80E5AC0(u8 direction)
+static void sub_80E5AC0(u8 direction)
{
u8 var;
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
@@ -622,7 +693,7 @@ void sub_80E5B38(u16 a, u16 b)
sub_80E5B60(a, b);
}
-void sub_80E5B60(u16 unused, u16 b)
+static void sub_80E5B60(u16 unused, u16 b)
{
u8 var;
@@ -651,7 +722,7 @@ void sub_80E5B60(u16 unused, u16 b)
}
}
-bool8 sub_80E5BC8(u8 *a, u8 *b)
+static bool8 sub_80E5BC8(const u8 *a, const u8 *b)
{
u8 i;
@@ -668,7 +739,7 @@ bool8 sub_80E5BC8(u8 *a, u8 *b)
return TRUE;
}
-u8 sub_80E5C2C(void)
+static u8 sub_80E5C2C(void)
{
u32 i;
@@ -709,7 +780,7 @@ static void sub_80E5CB8(u8 a)
gPlayerAvatar.unk1C[0] = 1;
}
-u8 sub_80E5CF4(u16 a)
+static u8 sub_80E5CF4(u16 a)
{
if (a & 0x40)
return 2;
@@ -722,7 +793,7 @@ u8 sub_80E5CF4(u16 a)
return 0;
}
-u8 sub_80E5D34(u8 direction)
+static u8 sub_80E5D34(u8 direction)
{
s16 x;
s16 y;