link m_olib

This commit is contained in:
Prakxo
2023-04-20 06:34:17 +00:00
parent eb89948eb6
commit 7a27cda3a1
6 changed files with 43 additions and 5 deletions
+3
View File
@@ -12,6 +12,9 @@ m_room_type/mRmTp_FtrItemNo2FtrIdx.c:
# .rodata: [0x80643310, 0x80643318]
sys_stacks.c:
.bss: [0x812F5670, 0x812F9670]
m_olib.c:
.text: [0x803D88E8, 0x803D8A34]
.rodata: [0x80642A00, 0x80642A10]
THA_GA.c:
.text: [0x80404AE0, 0x80404B40]
TwoHeadArena.c:
+2
View File
@@ -5,6 +5,8 @@
#define SQRT_OF_2_F 1.41421356237309504880f
#define M_PI 3.14159265358979323846f
s16 sins(u16);
f32 fatan2(f32, f32);
-4
View File
@@ -3,10 +3,6 @@
#include "types.h"
typedef struct xyz_s {
f32 x, y, z;
} xyz_t;
typedef struct {
u32 r:8;
u32 g:8;
+10
View File
@@ -3,10 +3,20 @@
#include "types.h"
#include "libu64/u64types.h"
#include "m_lib.h"
#include "libc/math.h"
//gotta put these somewhere else
#define TRUNCF_BINANG(f) (s16)(s32)(f)
#define CAM_DEG_TO_BINANG(degrees) (s16)TRUNCF_BINANG((degrees) * 182.04167f + .5f)
#define RAD_TO_DEG(radians) ((radians) * (180.0f / M_PI))
typedef struct rect_s {
int top, bottom;
int l, r;
} rect;
void radianxy_by_2pos(xyz_t* dest, xyz_t* sub, xyz_t* min);
s_xyz sanglexy_by_2pos(xyz_t* sub, xyz_t* min);
#endif
+27
View File
@@ -0,0 +1,27 @@
#include "m_olib.h"
void radianxy_by_2pos(xyz_t* dest, xyz_t* sub, xyz_t* min){
xyz_t ret;
ret.x = fatan2(min->z - sub->z, min->y - sub->y);
ret.y = fatan2(min->x - sub->x, min->z - sub->z);
ret.z = 0.0f;
*dest = ret;
}
s_xyz sanglexy_by_2pos(xyz_t* sub, xyz_t* min) {
s_xyz sangle;
xyz_t conv;
xyz_t angle;
radianxy_by_2pos(&angle, sub,min);
conv = angle;
sangle.x = CAM_DEG_TO_BINANG(RAD_TO_DEG(conv.x));
sangle.y = CAM_DEG_TO_BINANG(RAD_TO_DEG(conv.y));
sangle.z = 0;
return sangle;
}