summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorinspectredc <78732756+inspectredc@users.noreply.github.com>2024-04-16 00:19:43 +0100
committerGitHub <noreply@github.com>2024-04-15 16:19:43 -0700
commit7f426967efd07046bfbe791ed4e64808ae5a26e2 (patch)
tree51014dee003a4e30ac6db96c640c66db13dc6d3f /include
parent4ab3a1d9dcb76d80fe745dcbe79f3e925b8fac7e (diff)
ac_ball OK and documented (#173)
* ac_ball OK * hopefully format * address warnings * Apply suggestions from code review Co-authored-by: emilybrooks <emilybrooksemilybrooks@gmail.com> * suggestions pt2 --------- Co-authored-by: emilybrooks <emilybrooksemilybrooks@gmail.com>
Diffstat (limited to 'include')
-rw-r--r--include/6F2150.h20
-rw-r--r--include/m_actor.h6
-rw-r--r--include/m_clip.h10
-rw-r--r--include/m_collision_bg.h26
-rw-r--r--include/m_common_data.h4
-rw-r--r--include/m_field_info.h10
-rw-r--r--include/m_quest.h5
-rw-r--r--include/macros.h1
-rw-r--r--include/segment_symbols.h4
-rw-r--r--include/sys_math3d.h2
-rw-r--r--include/tables/dmatables/dmadata_table_jp.h6
11 files changed, 64 insertions, 30 deletions
diff --git a/include/6F2150.h b/include/6F2150.h
index 3faf751..4b2c0a1 100644
--- a/include/6F2150.h
+++ b/include/6F2150.h
@@ -3,17 +3,17 @@
#include "ultra64.h"
-// void func_800CE4B0_jp();
-// void func_800CE4F4_jp();
-// void func_800CE554_jp();
-// void func_800CE694_jp();
-// void func_800CE7E4_jp();
-// void func_800CE874_jp();
-// void func_800CE8F0_jp();
-// void func_800CE9C4_jp();
-// void func_800CEB1C_jp();
+void mRlib_spdXZ_to_spdF_Angle(xyz_t*, f32*, s16*);
+void mRlib_spdF_Angle_to_spdXZ(xyz_t*, f32*, s16*);
+void mRlib_position_move_for_sloop(struct Actor*, s_xyz*);
+void mRlib_Get_norm_Clif(struct Actor*, xyz_t*);
+void mRlib_Roll_Matrix_to_s_xyz(struct Actor*, void*, s16);
+s16 mRlib_Get_HitWallAngleY(struct Actor*);
+void mRlib_Station_step_modify_to_wall(struct Actor*);
+s32 mRlib_Set_Position_Check(struct Actor*);
+s32 mRlib_HeightGapCheck_And_ReversePos(void);
// void func_800CEC30_jp();
-// void func_800CEC98_jp();
+s32 mRlib_Get_ground_norm_inHole(struct Actor*, xyz_t*, f32*, s16*, s16*, f32);
// void func_800CEE24_jp();
// void func_800CEED4_jp();
// void func_800CF05C_jp();
diff --git a/include/m_actor.h b/include/m_actor.h
index 5a1c59e..bb52865 100644
--- a/include/m_actor.h
+++ b/include/m_actor.h
@@ -3,6 +3,7 @@
#include "ultra64.h"
#include "m_collision_obj.h"
+#include "m_collision_bg.h"
#include "z64math.h"
#include "unk.h"
@@ -110,8 +111,9 @@ typedef struct Actor {
/* 0x074 */ f32 speed;
/* 0x078 */ f32 gravity;
/* 0x07C */ f32 terminalVelocity;
- /* 0x080 */ UNK_TYPE1 unk_080[0x34];
- /* 0x0B4 */ UNK_TYPE1 unk_0B4[0x1];
+ /* 0x080 */ UNK_TYPE1 unk_080[0x18];
+ /* 0x098 */ mCoBG_CheckResult colResult;
+ /* 0x09C */ UNK_TYPE1 unk_09C[0x19];
/* 0x0B5 */ u8 isDrawn;
/* 0x0B6 */ s16 yawTowardsPlayer;
/* 0x0B8 */ f32 xyzDistToPlayerSq;
diff --git a/include/m_clip.h b/include/m_clip.h
index 3f58ad1..844ee70 100644
--- a/include/m_clip.h
+++ b/include/m_clip.h
@@ -16,6 +16,7 @@ struct ShadowData;
struct FurnitureActor;
struct WeatherClip;
struct ObjectExchangeBank;
+struct xyz_t;
typedef UNK_RET (*Clip_unk_040_unk_04)(struct ActorOverlay*, const u8*, size_t, s32);
typedef UNK_RET (*Clip_unk_040_unk_08)(void);
@@ -133,9 +134,11 @@ typedef struct Clip_unk_08C {
/* 0x86C */ UNK_TYPE unk_86C;
} Clip_unk_08C; // size >= 0x870
+typedef void (*Clip_unk_090_unk_00)(s8, struct xyz_t, s32, s32, struct Game_Play*, s32, s32, s32);
typedef void (*Clip_unk_090_unk_30)(Color_RGBA8, s16,s16,s32);
typedef struct Clip_unk_090 {
- /* 0x00 */ UNK_TYPE1 unk_00[0x30];
+ /* 0x00 */ Clip_unk_090_unk_00 unk_00;
+ /* 0x04 */ UNK_TYPE1 unk_04[0x2C];
/* 0x30 */ Clip_unk_090_unk_30 unk_30;
} Clip_unk_090; // size >= 0x34
@@ -153,9 +156,12 @@ typedef struct Clip_unk_0A4 {
} Clip_unk_0A4;
typedef UNK_RET (*Clip_unk_0A8_unk_4)(void*);
+typedef void (*Clip_unk_0A8_unk_C)(struct xyz_t*, f32, UNK_TYPE);
typedef struct Clip_unk_0A8 {
/* 0x00 */ UNK_TYPE1 unk_00[0x04];
- /* 0x04 */ Clip_unk_0A8_unk_4 unk_4;
+ /* 0x04 */ Clip_unk_0A8_unk_4 unk_04;
+ /* 0x08 */ UNK_TYPE1 unk_08[0x04];
+ /* 0x0C */ Clip_unk_0A8_unk_C unk_0C;
} Clip_unk_0A8; // size >= 0x8
typedef void (*Clip_unk_0B4_unk_4)(void);
diff --git a/include/m_collision_bg.h b/include/m_collision_bg.h
index b231c38..c3463b6 100644
--- a/include/m_collision_bg.h
+++ b/include/m_collision_bg.h
@@ -35,6 +35,24 @@ typedef union mCoBG_unkStructUnion {
u32 raw;
} mCoBG_unkStructUnion;
+// collision bg result data
+typedef struct mCoBG_CheckResult {
+ u32 onGround:1; // [31] on_ground
+ u32 unk1:5; // [30:25] hit_attribute_wall
+ u32 hitWall:5; // [25:20] hit_wall
+ u32 unk3:3; // [20:17] hit_wall_count
+ u32 unk4:1; // [17:16] unk_flag0
+ u32 unk5:6; // [16:10] unit_attribute
+ u32 unk6:1; // [10] is_on_move_bg_obj
+ u32 inWater:1; // [9] is_in_water
+ u32 unk8:1; // [8] unk_flag1
+ u32 unk9:1; // [7] unk_flag2
+ u32 unk10:1; // [6] unk_flag3
+ u32 unk11:1; // [5] unk_flag4
+ u32 unk12:1; // [4] unk_flag5
+ u32 unk13:4; // [3:0] unk_flag6
+} mCoBG_CheckResult;
+
// void func_80067430_jp();
// void func_800674B0_jp();
// void func_800674D8_jp();
@@ -202,7 +220,7 @@ f32 mCoBG_GetBgY_AngleS_FromWpos(s_xyz* angleToGround, xyz_t wpos, f32 offsetY);
// void func_80071A08_jp();
// void func_80071AB8_jp();
f32 mCoBG_GetBgY_OnlyCenter_FromWpos2(xyz_t arg0, f32 arg1);
-// void func_80071C1C_jp();
+void mCoBG_GetBgNorm_FromWpos(xyz_t*, xyz_t);
// void func_80071DB4_jp();
// void func_800721C8_jp();
// void func_800721E4_jp();
@@ -269,19 +287,19 @@ void mCoBG_SetPluss5PointOffset_file(xyz_t pos, mCoBG_unkStruct2 arg1, char* fil
// void func_80075A10_jp();
// void func_80075AB4_jp();
// void func_80075B28_jp();
-// void func_80075EA0_jp();
+f32 mCoBG_GetWaterHeight_File(xyz_t, char*, s32);
// void func_8007620C_jp();
// void func_80076248_jp();
// void func_80076270_jp();
// void func_80076280_jp();
-// void func_80076290_jp();
+void mCoBG_GetWaterFlow(xyz_t*, u32);
s32 func_80076358_jp(u32 attribute);
// void func_8007638C_jp();
// void func_800763F0_jp();
// void func_800763FC_jp();
// void func_8007648C_jp();
// void func_800764CC_jp();
-// void func_800765AC_jp();
+void mCoBG_BgCheckControll(xyz_t*, struct Actor*, f32, f32, s32, s32, s32);
// void func_80076778_jp();
// void func_800768C8_jp();
// void func_80076A04_jp();
diff --git a/include/m_common_data.h b/include/m_common_data.h
index affa1b0..b872666 100644
--- a/include/m_common_data.h
+++ b/include/m_common_data.h
@@ -171,7 +171,9 @@ typedef struct CommonData {
/* 0x10A3C */ UNK_TYPE1 unk_10A3C[0x2C];
/* 0x10A68 */ u8 unk_10A68;
/* 0x10A69 */ UNK_TYPE1 unk_10A69[0x3];
- /* 0x10A6C */ UNK_TYPE1 unk_10A6C[0x14];
+ /* 0x10A6C */ xyz_t unk_10A6C;
+ /* 0x10A78 */ u8 unk_10A78;
+ /* 0x10A79 */ UNK_TYPE1 unk_10A79[0x7];
/* 0x10A80 */ UNK_TYPE1 unk_10A80[0x2];
/* 0x10A82 */ s16 unk_10A82;
/* 0x10A84 */ UNK_TYPE1 unk_10A84[0x2C];
diff --git a/include/m_field_info.h b/include/m_field_info.h
index 8f74895..e2b4e5e 100644
--- a/include/m_field_info.h
+++ b/include/m_field_info.h
@@ -46,8 +46,8 @@ u16 mFI_GetFieldId(void);
// void func_80087D30_jp();
// void func_80087DC8_jp();
// void func_80087E14_jp();
-// void func_80087E58_jp();
-// void func_80087E94_jp();
+s32 mFI_GetBlockXMax(void);
+s32 mFI_GetBlockZMax(void);
// void func_80087ED0_jp();
// void func_80088018_jp();
// void func_80088160_jp();
@@ -71,7 +71,7 @@ s32 mFI_Wpos2BkandUtNuminBlock(s32*,s32*, s32* ,s32* ,xyz_t);
// void func_80088B3C_jp();
void mFI_UtNum2PosXZInBk(f32*, f32*, s32,s32);
// void func_80088BFC_jp();
-// void func_80088C74_jp();
+void mFI_BkandUtNum2CenterWpos(xyz_t*, s32, s32, s32, s32);
// void func_80088CBC_jp();
// void func_80088CD0_jp();
// void func_80088CE4_jp();
@@ -93,7 +93,7 @@ u8 mFI_BkNum2BlockType(s32,s32);
// void func_8008930C_jp();
// void func_80089348_jp();
// void func_800893C8_jp();
-// void func_80089404_jp();
+s32 mFI_CheckBlockKind_OR(s32, s32, s32);
void mFI_BlockKind2BkNum(s32*,s32*,s32);
// void func_800894D0_jp();
mCoBG_unkStructUnion* mFI_GetBkNum2ColTop(s32 arg0, s32 arg1);
@@ -165,7 +165,7 @@ s32 func_8008BE00_jp(struct FieldMakeMoveActor*, s32);
// void func_8008BFC4_jp();
// void func_8008C058_jp();
s32 mFI_CheckPlayerWade(s32);
-// void func_8008C120_jp();
+s32 mFI_GetPlayerWade(void);
// void func_8008C130_jp();
u16* mFI_GetDepositP(s32,s32);
// void func_8008C344_jp();
diff --git a/include/m_quest.h b/include/m_quest.h
index 84732b2..352eba6 100644
--- a/include/m_quest.h
+++ b/include/m_quest.h
@@ -5,6 +5,7 @@
#include "lb_rtc.h"
#include "m_private_internals.h"
#include "m_npc_base.h"
+#include "m_actor.h"
typedef struct QuestBase {
/* 0x00 */ u32 questType:2; /* type, 0 = delivery, 1 = errand, 2 = contest, 3 = none */
@@ -114,8 +115,8 @@ QuestErrand* mQst_GetFirstJobData(void);
// void func_800BC394_jp();
s32 mQst_GetRandom(s32);
// void func_800BC454_jp();
-// void func_800BC528_jp();
-// void func_800BC5D4_jp();
+s32 mQst_CheckSoccerTarget(Actor*);
+void mQst_NextSoccer(Actor*);
// void func_800BC6B0_jp();
// void func_800BC724_jp();
// void func_800BC830_jp();
diff --git a/include/macros.h b/include/macros.h
index b855eb3..05c5990 100644
--- a/include/macros.h
+++ b/include/macros.h
@@ -22,6 +22,7 @@
#define SEGMENTED_TO_K0(addr) (void*)((gSegments[SEGMENT_NUMBER(addr)] + K0BASE) + SEGMENT_OFFSET(addr))
#define ABS(x) (((x) >= 0) ? (x): -(x))
+#define ABS_F(x) ((x) >= 0.0f) ? (x) : -(x)
#define CLAMP(x, min, max) ((x) < (min) ? (min) : (x) > (max) ? (max) : (x))
#define CLAMP_MAX(x, max) ((x) > (max) ? (max) : (x))
diff --git a/include/segment_symbols.h b/include/segment_symbols.h
index 26d7801..68d00d4 100644
--- a/include/segment_symbols.h
+++ b/include/segment_symbols.h
@@ -112,6 +112,10 @@ DECLARE_SEGMENT(segment_00E02000);
DECLARE_SEGMENT(segment_00E03000);
DECLARE_SEGMENT(segment_00E04000);
DECLARE_SEGMENT(segment_00E0D000);
+
+DECLARE_SEGMENT(act_ball_b);
+DECLARE_SEGMENT(act_ball_d);
+DECLARE_SEGMENT(act_ball_s);
DECLARE_SEGMENT(segment_01408000);
DECLARE_SEGMENT(segment_01409000);
diff --git a/include/sys_math3d.h b/include/sys_math3d.h
index 58e1405..b80c42d 100644
--- a/include/sys_math3d.h
+++ b/include/sys_math3d.h
@@ -27,7 +27,7 @@ typedef struct Pipe {
/* 0x6 */ s_xyz pos;
} Pipe; // size = 0xC
-// void Math3d_normalizeXyz_t();
+f32 Math3d_normalizeXyz_t(xyz_t*);
// void func_800DA028_jp();
// void func_800DA148_jp();
// void Math3D_lineVsPosSuisenCross();
diff --git a/include/tables/dmatables/dmadata_table_jp.h b/include/tables/dmatables/dmadata_table_jp.h
index cbe1dcd..dc07943 100644
--- a/include/tables/dmatables/dmadata_table_jp.h
+++ b/include/tables/dmatables/dmadata_table_jp.h
@@ -2231,9 +2231,9 @@ DEFINE_DMA_ENTRY(object_010EE000, "object_010EE000")
DEFINE_DMA_ENTRY(object_010F0000, "object_010F0000")
DEFINE_DMA_ENTRY(object_010F2000, "object_010F2000")
DEFINE_DMA_ENTRY(segment_010F4000, "segment_010F4000")
-DEFINE_DMA_ENTRY(segment_01100000, "segment_01100000")
-DEFINE_DMA_ENTRY(segment_01101000, "segment_01101000")
-DEFINE_DMA_ENTRY(segment_01102000, "segment_01102000")
+DEFINE_DMA_ENTRY(act_ball_b, "act_ball_b")
+DEFINE_DMA_ENTRY(act_ball_d, "act_ball_d")
+DEFINE_DMA_ENTRY(act_ball_s, "act_ball_s")
DEFINE_DMA_ENTRY(object_01103000, "object_01103000")
DEFINE_DMA_ENTRY(object_01106000, "object_01106000")
DEFINE_DMA_ENTRY(tol_umb_01, "tol_umb_01")