summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/6F2150.h22
-rw-r--r--include/m_actor.h6
-rw-r--r--include/m_collision_bg.h20
-rw-r--r--include/m_field_info.h7
-rw-r--r--include/m_roll_lib.h28
-rw-r--r--include/z64math.h2
6 files changed, 57 insertions, 28 deletions
diff --git a/include/6F2150.h b/include/6F2150.h
deleted file mode 100644
index 4b2c0a1..0000000
--- a/include/6F2150.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef C_6F2150_H
-#define C_6F2150_H
-
-#include "ultra64.h"
-
-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();
-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();
-// void func_800CF16C_jp();
-
-#endif
diff --git a/include/m_actor.h b/include/m_actor.h
index 955be5d..819d7dc 100644
--- a/include/m_actor.h
+++ b/include/m_actor.h
@@ -111,9 +111,9 @@ typedef struct Actor {
/* 0x074 */ f32 speed;
/* 0x078 */ f32 gravity;
/* 0x07C */ f32 terminalVelocity;
- /* 0x080 */ UNK_TYPE1 unk_080[0x18];
- /* 0x098 */ mCoBG_CheckResult colResult;
- /* 0x09C */ UNK_TYPE1 unk_09C[0x19];
+ /* 0x080 */ UNK_TYPE1 unk_080[0x4];
+ /* 0x084 */ mCoBG_Check colCheck;
+ /* 0x0B4 */ UNK_TYPE1 unk_0B4[0x1];
/* 0x0B5 */ u8 isDrawn;
/* 0x0B6 */ s16 yawTowardsPlayer;
/* 0x0B8 */ f32 xyzDistToPlayerSq;
diff --git a/include/m_collision_bg.h b/include/m_collision_bg.h
index 3294cd1..f02ba47 100644
--- a/include/m_collision_bg.h
+++ b/include/m_collision_bg.h
@@ -35,6 +35,12 @@ typedef union mCoBG_unkStructUnion {
u32 raw;
} mCoBG_unkStructUnion;
+// collision bg wall info
+typedef struct mCoBG_WallInfo {
+ /* 0x0 */ s16 angleY;
+ /* 0x2 */ s16 type;
+} mCoBG_WallInfo; // size = 0x4
+
// collision bg result data
typedef struct mCoBG_CheckResult {
u32 onGround:1; // [31] on_ground
@@ -53,6 +59,14 @@ typedef struct mCoBG_CheckResult {
u32 unk13:4; // [3:0] unk_flag6
} mCoBG_CheckResult;
+typedef struct mCoBG_Check{
+ /* 0x00 */ u8 unk0[0x11];
+ /* 0x11 */ mCoBG_CheckResult colResult;
+ /* 0x14 */ u8 unk14[0xC];
+ /* 0x20 */ mCoBG_WallInfo wallInfo[2];
+ /* 0x2C */ s16 unk20;
+}mCoBG_Check; // size = 0x30
+
// void func_80067430_jp();
// void func_800674B0_jp();
// void func_800674D8_jp();
@@ -249,11 +263,11 @@ s32 func_8007244C_jp(u32);
s32 mCoBG_SearchWaterLimitDistN(UNK_TYPE* arg0, xyz_t arg1, s16 arg4, f32 arg5, s32 arg6);
// void func_80072E70_jp();
f32 mCoBG_GetBalloonGroundY(xyz_t*);
-// void func_800730C8_jp();
+s32 mCoBG_CheckAttribute_BallRolling(s16*, xyz_t*);
// void func_800731A8_jp();
-// void func_800732DC_jp();
+f32 mCoBG_CheckBallRollingArea(s16, xyz_t*);
// void func_800734BC_jp();
-// void func_8007352C_jp();
+s32 mCoBG_ExistHeightGap_KeepAndNow_Detail(xyz_t);
// void func_80073680_jp();
// void func_80073718_jp();
// void func_80073784_jp();
diff --git a/include/m_field_info.h b/include/m_field_info.h
index 352fdf2..6d6457c 100644
--- a/include/m_field_info.h
+++ b/include/m_field_info.h
@@ -11,6 +11,13 @@ struct Game_Play;
struct FieldMakeBlockInfo;
struct FieldMakeMoveActor;
+#define FI_UT_WORLDSIZE_Z 40
+#define FI_UT_WORLDSIZE_Z_F (f32)FI_UT_WORLDSIZE_Z
+#define FI_UT_WORLDSIZE_X 40
+#define FI_UT_WORLDSIZE_X_F (f32)FI_UT_WORLDSIZE_Z
+#define FI_UT_BASE_SIZE 40
+#define FI_UT_BASE_SIZE_F ((f32)FI_UT_BASE_SIZE)
+
typedef enum FieldType {
/* 0 */ FI_FIELDTYPE_FG,
/* 1 */ FI_FIELDTYPE_1,
diff --git a/include/m_roll_lib.h b/include/m_roll_lib.h
new file mode 100644
index 0000000..9cfa25d
--- /dev/null
+++ b/include/m_roll_lib.h
@@ -0,0 +1,28 @@
+#ifndef M_ROLL_LIB_H
+#define M_ROLL_LIB_H
+
+#include "ultra64.h"
+
+struct xyz_t;
+struct Actor;
+struct s_xyz;
+struct Game_Play;
+
+void mRlib_spdXZ_to_spdF_Angle(struct xyz_t* speed, f32* speedf, s16* angle);
+void mRlib_spdF_Angle_to_spdXZ(struct xyz_t* speed, f32* speedf, s16* angle);
+s32 mRlib_position_move_for_sloop(struct Actor* actor, struct s_xyz* slopeAngle);
+s32 mRlib_Get_norm_Clif(struct Actor* actor, struct xyz_t* norm);
+void mRlib_Roll_Matrix_to_s_xyz(struct Actor* actor, struct s_xyz* rot, s16 angle);
+s16 mRlib_Get_HitWallAngleY(struct Actor* actor);
+void mRlib_Station_step_modify_to_wall(struct Actor* actor);
+s32 mRlib_Set_Position_Check(struct Actor* actor);
+s32 mRlib_HeightGapCheck_And_ReversePos(struct Actor* actor);
+s32 mRlib_Hole_check(struct Actor* actor);
+s32 mRlib_Get_ground_norm_inHole(struct Actor* actor, struct xyz_t* norm, f32* dist, s16* angleY, s16* angleRate, f32 rate);
+s32 mRlib_PSnowmanTouchCheck(const struct xyz_t* wpos);
+s32 mRlib_PSnowmanBreakCheck(struct Actor* actor, struct Game_Play* play, f32* speed);
+s32 mRlib_PSnowmanBreakNeckSwing(f32 f0, f32 scale, s16* angleY);
+s32 mRlib_PSnowman_NormalTalk(struct Actor* actor, struct Game_Play* play, f32* speed, void* proc);
+
+
+#endif
diff --git a/include/z64math.h b/include/z64math.h
index b533ba2..f7aac28 100644
--- a/include/z64math.h
+++ b/include/z64math.h
@@ -84,6 +84,8 @@ typedef union {
#define DEG_TO_BINANG_ALT(degrees) TRUNCF_BINANG(((degrees) / 180.0f) * 0x8000)
#define DEG_TO_BINANG_ALT2(degrees) TRUNCF_BINANG(((degrees) * 0x10000) / 360.0f)
#define DEG_TO_BINANG_ALT3(degrees) ((degrees) * (0x8000 / 180.0f))
+#define DEG_TO_BINANG_ALT4(degrees) (TRUNCF_BINANG((degrees) * (0x10000 / 360.0f)))
+
#define RAD_TO_DEG(radians) ((radians) * (180.0f / (f32)M_PI))
#define RAD_TO_BINANG(radians) TRUNCF_BINANG((radians) * (0x8000 / (f32)M_PI))