mirror of
https://github.com/zeldaret/ss
synced 2026-05-31 17:32:02 -04:00
Merge pull request #272 from elijah-thomas774/mAng
change mAng to template operators
This commit is contained in:
+2
-2
@@ -539,7 +539,7 @@ config.libs = [
|
||||
Object(Matching, "d/lyt/d_lyt_common_icon_item.cpp"),
|
||||
Object(NonMatching, "d/lyt/d_lyt_target_bird.cpp"),
|
||||
Object(NonMatching, "d/lyt/msg_window/d_lyt_msg_window.cpp"),
|
||||
Object(NonMatching, "d/lyt/msg_window/d_lyt_msg_window_select_btn.cpp"),
|
||||
Object(Matching, "d/lyt/msg_window/d_lyt_msg_window_select_btn.cpp"),
|
||||
Object(Matching, "d/lyt/msg_window/d_lyt_msg_window_common.cpp"),
|
||||
Object(Matching, "d/lyt/msg_window/d_lyt_msg_window_talk.cpp"),
|
||||
Object(Matching, "d/lyt/msg_window/d_lyt_msg_window_link.cpp"),
|
||||
@@ -2437,7 +2437,7 @@ config.libs = [
|
||||
Rel(NonMatching, "d_a_obj_D3_dummy", "REL/d/a/obj/d_a_obj_D3_dummy.cpp"),
|
||||
Rel(NonMatching, "d_a_obj_daynight", "REL/d/a/obj/d_a_obj_daynight.cpp"),
|
||||
Rel(NonMatching, "d_a_obj_decoA", "REL/d/a/obj/d_a_obj_decoA.cpp"),
|
||||
Rel(NonMatching, "d_a_obj_decoB", "REL/d/a/obj/d_a_obj_decoB.cpp"),
|
||||
Rel(Matching, "d_a_obj_decoB", "REL/d/a/obj/d_a_obj_decoB.cpp"),
|
||||
Rel(NonMatching, "d_a_obj_desert", "REL/d/a/obj/d_a_obj_desert.cpp"),
|
||||
Rel(NonMatching, "d_a_obj_desert_ago", "REL/d/a/obj/d_a_obj_desert_ago.cpp"),
|
||||
Rel(Matching, "d_a_obj_desert_debris", "REL/d/a/obj/d_a_obj_desert_debris.cpp"),
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
#include "m/m_angle.h"
|
||||
#include "nw4r/g3d/res/g3d_resfile.h"
|
||||
#include "s/s_State.hpp"
|
||||
#include "s/s_StateMgr.hpp"
|
||||
|
||||
class dAcODecoB_c : public dAcObjBase_c {
|
||||
public:
|
||||
@@ -28,7 +27,6 @@ private:
|
||||
/* 0x38C */ u16 padding_0x38C;
|
||||
/* 0x38E */ mAng field_0x38E;
|
||||
|
||||
static f32 lbl_611_data_34;
|
||||
static const f32 lbl_611_rodata_30;
|
||||
};
|
||||
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
#include "m/m_vec.h"
|
||||
#include "nw4r/g3d/res/g3d_resfile.h"
|
||||
#include "s/s_State.hpp"
|
||||
#include "s/s_StateMgr.hpp"
|
||||
#include "toBeSorted/stage_render_stuff.h"
|
||||
|
||||
class dAcOwindmill_c : public dAcObjBase_c {
|
||||
|
||||
+80
-86
@@ -8,141 +8,145 @@
|
||||
#include "nw4r/math/math_triangular.h"
|
||||
#include "s/s_Math.h"
|
||||
|
||||
struct mAng {
|
||||
class mAng {
|
||||
public:
|
||||
mAng() {}
|
||||
mAng(s16 s) : mVal(s) {}
|
||||
mAng(const mAng &other) : mVal(other.mVal) {}
|
||||
|
||||
mAng &operator=(const s32 &val) {
|
||||
public:
|
||||
void set(s16 val) {
|
||||
mVal = val;
|
||||
return *this;
|
||||
}
|
||||
|
||||
void setF(const f32 &f) {
|
||||
mVal = f;
|
||||
}
|
||||
|
||||
static mAng atan2s(f32 a, f32 b) {
|
||||
return mAng(cM::atan2s(a, b));
|
||||
}
|
||||
static mAng fromVec(const mVec3_c &other) {
|
||||
return mAng(cM::atan2s(other.x, other.z));
|
||||
public:
|
||||
s16 *ref() {
|
||||
return &mVal;
|
||||
}
|
||||
|
||||
operator s16() const {
|
||||
return mVal;
|
||||
}
|
||||
|
||||
void set(s16 val) {
|
||||
mVal = val;
|
||||
}
|
||||
|
||||
s16 *ref() {
|
||||
return &mVal;
|
||||
}
|
||||
|
||||
mAng operator-() {
|
||||
return mAng(-mVal);
|
||||
}
|
||||
|
||||
mAng &operator+=(const mAng &other) {
|
||||
mVal += other.mVal;
|
||||
template <typename T>
|
||||
mAng &operator+=(const T &other) {
|
||||
mVal += s16(other);
|
||||
return *this;
|
||||
}
|
||||
mAng &operator-=(const mAng &other) {
|
||||
mVal -= other.mVal;
|
||||
template <typename T>
|
||||
mAng &operator-=(const T &other) {
|
||||
mVal -= s16(other);
|
||||
return *this;
|
||||
}
|
||||
mAng &operator*=(const s32 &other) {
|
||||
template <typename T>
|
||||
mAng &operator*=(const T &other) {
|
||||
mVal *= other;
|
||||
return *this;
|
||||
}
|
||||
mAng &operator*=(const f32 &other) {
|
||||
mVal *= other;
|
||||
template <typename T>
|
||||
mAng &operator=(const T &other) {
|
||||
mVal = other;
|
||||
return *this;
|
||||
}
|
||||
|
||||
s32 absDiff(const mAng &other) const {
|
||||
return sLib::absDiff(mVal, other.mVal);
|
||||
}
|
||||
|
||||
public:
|
||||
static s32 abs(const mAng b) {
|
||||
return labs(b);
|
||||
}
|
||||
|
||||
s32 step(s16 target, s32 steps, s16 max, s16 min);
|
||||
|
||||
s32 abs() const {
|
||||
return abs(*this);
|
||||
}
|
||||
s32 absDiff(const mAng &other) const {
|
||||
return sLib::absDiff(mVal, other.mVal);
|
||||
}
|
||||
f32 sin() const {
|
||||
return nw4r::math::SinIdx(*this);
|
||||
}
|
||||
|
||||
f32 cos() const {
|
||||
return nw4r::math::CosIdx(*this);
|
||||
}
|
||||
static mAng atan2s(f32 a, f32 b) {
|
||||
return mAng(cM::atan2s(a, b));
|
||||
}
|
||||
|
||||
public:
|
||||
s32 step(s16 target, s32 steps, s16 max, s16 min);
|
||||
|
||||
public:
|
||||
static mAng fromVec(const mVec3_c &other) {
|
||||
return mAng(cM::atan2s(other.x, other.z));
|
||||
}
|
||||
static s16 fromDeg(f32 deg) {
|
||||
return deg * sDegToAng;
|
||||
}
|
||||
static mAng fromRad(f32 rad) {
|
||||
return rad * sRadToAng;
|
||||
}
|
||||
|
||||
f32 degree() const {
|
||||
return (360.0f / 65536.0f) * mVal;
|
||||
}
|
||||
|
||||
static s16 fromDeg(f32 deg) {
|
||||
return deg * sDegToAng;
|
||||
}
|
||||
f32 degree2() const {
|
||||
return mVal * sAngToDeg;
|
||||
}
|
||||
|
||||
f32 radian() const {
|
||||
return ((2.f * M_PI) / 65536.0f) * mVal;
|
||||
}
|
||||
|
||||
f32 radian2() const {
|
||||
f32 degree_c() const {
|
||||
return mVal * sAngToDeg;
|
||||
}
|
||||
f32 radian_c() const {
|
||||
return mVal * sAngToRad;
|
||||
}
|
||||
|
||||
static mAng fromRad(f32 rad) {
|
||||
return rad * sRadToAng;
|
||||
public:
|
||||
static s16 d2s(f32 deg) {
|
||||
return deg * (65536.0f / 360.0f);
|
||||
}
|
||||
|
||||
static f32 ang2deg_c(f32 ang) {
|
||||
static f32 s2d(s16 angle) {
|
||||
return (360.0f / 65536.0f) * angle;
|
||||
}
|
||||
static f32 s2d_c(f32 ang) {
|
||||
return ang * sAngToDeg;
|
||||
}
|
||||
static f32 d2s_c(f32 ang) {
|
||||
return ang * sDegToAng;
|
||||
}
|
||||
|
||||
static f32 rad2deg_c(f32 rad) {
|
||||
static f32 s2r(s16 angle) {
|
||||
return ((2.f * M_PI) / 65536.0f) * angle;
|
||||
}
|
||||
static s16 r2s(f32 rad) {
|
||||
return rad * (65536.0f / (2.f * M_PI));
|
||||
}
|
||||
static f32 s2r_c(f32 ang) {
|
||||
return ang * sAngToRad;
|
||||
}
|
||||
static f32 r2s_c(f32 ang) {
|
||||
return ang * sRadToAng;
|
||||
}
|
||||
|
||||
static f32 d2r(f32 deg) {
|
||||
return deg * ((2.f * M_PI) / 360.f);
|
||||
}
|
||||
static f32 r2d(f32 rad) {
|
||||
return rad * (360.f / (2.f * M_PI));
|
||||
}
|
||||
static f32 d2r_c(f32 deg) {
|
||||
return deg * sDegToRad;
|
||||
}
|
||||
static f32 r2d_c(f32 rad) {
|
||||
return rad * sRadToDeg;
|
||||
}
|
||||
|
||||
static f32 rad2deg(f32 rad) {
|
||||
return rad * (360.f / (2.f * M_PI));
|
||||
}
|
||||
static f32 deg2rad(f32 deg) {
|
||||
return deg * ((2.f * M_PI) / 360.f);
|
||||
}
|
||||
static s16 deg2short(f32 deg) {
|
||||
return deg * (65536.0f / 360.0f);
|
||||
}
|
||||
static f32 short2deg(s16 angle) {
|
||||
return (360.0f / 65536.0f) * angle;
|
||||
}
|
||||
static f32 short2rad(s16 angle) {
|
||||
return ((2.f * M_PI) / 65536.0f) * angle;
|
||||
}
|
||||
static f32 short2norm(s16 angle) {
|
||||
static f32 s2n(s16 angle) {
|
||||
return 3.0517578E-5f * angle;
|
||||
}
|
||||
static s16 rad2short(f32 rad) {
|
||||
return rad * (65536.0f / (2.f * M_PI));
|
||||
}
|
||||
|
||||
static f32 deg2rad_c(f32 deg) {
|
||||
return deg * sDegToRad;
|
||||
}
|
||||
|
||||
s16 mVal;
|
||||
|
||||
static const mAng Zero() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
private:
|
||||
static const f32 sHalfCircleDeg;
|
||||
static const f32 sAngToDeg;
|
||||
@@ -197,16 +201,6 @@ public:
|
||||
set(0, 0, 0);
|
||||
}
|
||||
|
||||
// TODO - This is the only way I could get the regswap to be fixed..
|
||||
// Found with the pattern mAng3_c.y += cM::rndFX()
|
||||
void addY(f32 val) {
|
||||
y.mVal += (s16)val;
|
||||
}
|
||||
|
||||
void addX(const s32 &fx) {
|
||||
x += fx;
|
||||
}
|
||||
|
||||
mAng x, y, z;
|
||||
|
||||
static mAng3_c Zero;
|
||||
|
||||
+1
-1
@@ -44,7 +44,7 @@ inline int getCurrentCoreID() {
|
||||
}
|
||||
|
||||
inline bool isMpls(const int i) {
|
||||
return g_padMg->getDevType(i) == EGG::cDEV_MPLS;
|
||||
return g_padMg->getDevType(i) == EGG::cDEV_MPLS ? true : false;
|
||||
}
|
||||
inline bool isMplsPtFS(const int i) {
|
||||
return g_padMg->getDevType(i) == EGG::cDEV_MPLS_PT_FS;
|
||||
|
||||
@@ -1019,8 +1019,7 @@ void dAcEsm_c::fn_187_4540(int param0) {
|
||||
pChild->mStateMgr.changeState(StateID_BirthJump);
|
||||
|
||||
if (field_0xB98 == 0) {
|
||||
mAng ang = (f + cM::rndFX(4096.f));
|
||||
rot.y -= mAng(ang);
|
||||
rot.y -= mAng(f + cM::rndFX(4096.f));
|
||||
} else {
|
||||
rot.y = fn_187_51F0(true);
|
||||
const f32 y = sSmDataArr[field_0xB98].field_0x04.y;
|
||||
@@ -1438,7 +1437,7 @@ void dAcEsm_c::fn_187_6C20(bool param0) {
|
||||
if (!param0) {
|
||||
dCamera_c *cam = dScGame_c::getCamera(0);
|
||||
mAngle.y = cLib::targetAngleY(cam->getPositionMaybe(), cam->getField_0x78());
|
||||
mAngle.addY(cM::rndFX(16384.f));
|
||||
mAngle.y += cM::rndFX(16384.f);
|
||||
}
|
||||
|
||||
field_0xBCE = 1;
|
||||
|
||||
@@ -192,7 +192,7 @@ int dAcOBarrel_c::actorCreate() {
|
||||
mMaxSpeed = -40.f;
|
||||
|
||||
field_0xDDC = 0.f;
|
||||
field_0xDEC = mAng::Zero();
|
||||
field_0xDEC = mAng(0);
|
||||
quat_0xD50.set(1.f, 0.f, 0.f, 0.f);
|
||||
mScale.set(1.f, 1.f, 1.f);
|
||||
quat_0xD90.set(1.f, 0.f, 0.f, 0.f);
|
||||
@@ -201,7 +201,7 @@ int dAcOBarrel_c::actorCreate() {
|
||||
quat_0xDA0.set(1.f, 0.f, 0.f, 0.f);
|
||||
|
||||
if (isType_0()) {
|
||||
mRotation.z += 0x4000;
|
||||
mRotation.z += mAng(0x4000);
|
||||
unsetActorProperty(AC_PROP_0x1);
|
||||
mCyl.SetAtGrp(0x10);
|
||||
}
|
||||
@@ -216,8 +216,8 @@ int dAcOBarrel_c::actorCreate() {
|
||||
qz.setAxisRotation(mVec3_c::Ez, mRotation.z.radian());
|
||||
quat_0xD80 = qx * qz;
|
||||
|
||||
mRotation.x = mAng::Zero();
|
||||
mRotation.z = mAng::Zero();
|
||||
mRotation.x = mAng(0);
|
||||
mRotation.z = mAng(0);
|
||||
}
|
||||
|
||||
mMdl.setPriorityDraw(0x7F, 0x7F);
|
||||
@@ -429,7 +429,7 @@ void dAcOBarrel_c::executeState_Wait() {
|
||||
quat_0xD70.Set(mVec3_c::Ey, v);
|
||||
}
|
||||
|
||||
if (fn_293_4A90(mAng::deg2short(1.f))) {
|
||||
if (fn_293_4A90(mAng::d2s(1.f))) {
|
||||
mStateMgr.changeState(StateID_Slope);
|
||||
return;
|
||||
}
|
||||
@@ -514,8 +514,8 @@ void dAcOBarrel_c::initializeState_GrabUp() {
|
||||
bool y = mAng(ry).absDiff(0) > 0x4000;
|
||||
|
||||
// Fakematch?
|
||||
qy.setAxisRotation(mVec3_c::Ey, mAng::short2rad(y ? mAng(ry) - 0x8000 : ry));
|
||||
qz.setAxisRotation(mVec3_c::Ez, mAng::short2rad(z ? 0x4000 : -0x4000));
|
||||
qy.setAxisRotation(mVec3_c::Ey, mAng::s2r(y ? mAng(ry) - 0x8000 : ry));
|
||||
qz.setAxisRotation(mVec3_c::Ez, mAng::s2r(z ? 0x4000 : -0x4000));
|
||||
|
||||
quat_0xD60 = qy * qz;
|
||||
if (!field_0xE02) {
|
||||
@@ -612,7 +612,7 @@ void dAcOBarrel_c::initializeState_Slope() {
|
||||
field_0xDEE -= mAngle.y;
|
||||
|
||||
mAng ang(mAng::abs(mAngle.y - field_0xDEE));
|
||||
field_0xDF0 = nw4r::math::FSqrt(ang.degree2() / 180.f) * 910.f;
|
||||
field_0xDF0 = nw4r::math::FSqrt(ang.degree_c() / 180.f) * 910.f;
|
||||
|
||||
mVec3_c v = mWorldMtx.multVecSR(-mVec3_c::Ez);
|
||||
field_0xDEA = mAng::fromVec(v);
|
||||
@@ -679,7 +679,7 @@ void dAcOBarrel_c::executeState_Slope() {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!fn_293_4A90(mAng::deg2short(1))) {
|
||||
if (!fn_293_4A90(mAng::d2s(1))) {
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
return;
|
||||
}
|
||||
@@ -732,7 +732,7 @@ void dAcOBarrel_c::executeState_Water() {
|
||||
}
|
||||
}
|
||||
void dAcOBarrel_c::finalizeState_Water() {
|
||||
field_0xDF2 = mAng::Zero();
|
||||
field_0xDF2 = mAng(0);
|
||||
}
|
||||
|
||||
void dAcOBarrel_c::initializeState_Water2() {
|
||||
@@ -751,7 +751,7 @@ void dAcOBarrel_c::executeState_Water2() {
|
||||
}
|
||||
}
|
||||
void dAcOBarrel_c::finalizeState_Water2() {
|
||||
field_0xDF2 = mAng::Zero();
|
||||
field_0xDF2 = mAng(0);
|
||||
}
|
||||
|
||||
void dAcOBarrel_c::initializeState_Explode() {
|
||||
@@ -894,7 +894,7 @@ void dAcOBarrel_c::fn_293_31B0() {
|
||||
dBgS::GetInstance()->GetTriPla(mObjAcch.GetGnd(), &pla);
|
||||
|
||||
mAng nrmAngle = mAng::fromRad(field_0xDBC.angle(pla.GetN()));
|
||||
if (nrmAngle > mAng::deg2short(75)) {
|
||||
if (nrmAngle > mAng::d2s(75)) {
|
||||
field_0xE06 = true;
|
||||
}
|
||||
|
||||
@@ -911,7 +911,7 @@ void dAcOBarrel_c::fn_293_31B0() {
|
||||
mSpeed = cM::minMaxLimit(mSpeed, -20.f, 20.f);
|
||||
|
||||
if (mAng::fromVec(pla.GetN()).absDiff(mAngle.y) < 0x2000) {
|
||||
sLib::addCalcAngle(mAngle.y.ref(), pla.GetAngleY(), 5, mAng::deg2short(10), 0x100);
|
||||
sLib::addCalcAngle(mAngle.y.ref(), pla.GetAngleY(), 5, mAng::d2s(10), 0x100);
|
||||
} else {
|
||||
mAngle.y = mAng::fromVec(mVelocity);
|
||||
}
|
||||
@@ -927,7 +927,7 @@ void dAcOBarrel_c::fn_293_31B0() {
|
||||
|
||||
if (field_0xE00 && field_0xE02) {
|
||||
field_0xE01 = fn_293_4ED0();
|
||||
sLib::addCalcAngle(field_0xDEC.ref(), mAng(target) - field_0xDEA, 10, mAng::deg2short(5), 0x100);
|
||||
sLib::addCalcAngle(field_0xDEC.ref(), mAng(target) - field_0xDEA, 10, mAng::d2s(5), 0x100);
|
||||
|
||||
mQuat_c q;
|
||||
q.setAxisRotation(mVec3_c::Ey, field_0xDEC.radian());
|
||||
@@ -954,7 +954,7 @@ void dAcOBarrel_c::fn_293_3560() {
|
||||
mAng nrmAngle = mAng::fromRad(mVec3_c::Ey.angle(pla.GetN()));
|
||||
|
||||
f *= nrmAngle.cos();
|
||||
if (nrmAngle < mAng::deg2short(5) || mAng::fromVec(pla.GetN()).absDiff(mAngle.y) > 0x4000) {
|
||||
if (nrmAngle < mAng::d2s(5) || mAng::fromVec(pla.GetN()).absDiff(mAngle.y) > 0x4000) {
|
||||
if (!field_0xE00) {
|
||||
f *= 8.f;
|
||||
}
|
||||
@@ -987,7 +987,7 @@ void dAcOBarrel_c::fn_293_37B0() {
|
||||
|
||||
if (someState) {
|
||||
mVelocity.y = 0.f;
|
||||
field_0xDE4.x = mAng::Zero();
|
||||
field_0xDE4.x = mAng(0);
|
||||
field_0xDDC = 0.f;
|
||||
field_0xE0E = true;
|
||||
} else {
|
||||
@@ -1013,7 +1013,7 @@ void dAcOBarrel_c::fn_293_37B0() {
|
||||
}
|
||||
|
||||
if (fn_293_4BC0()) {
|
||||
field_0xDE4.x = mAng::Zero();
|
||||
field_0xDE4.x = mAng(0);
|
||||
mSpeed = 0.f;
|
||||
mVelocity.y = 0.f;
|
||||
field_0xE00 = false;
|
||||
@@ -1163,7 +1163,7 @@ bool dAcOBarrel_c::fn_293_45A0() {
|
||||
}
|
||||
|
||||
if (mObjAcch.ChkWallHit(nullptr)) {
|
||||
if (mAng(mAcchCir.GetWallAngleY()).absDiff(mAngle.y) > mAng::deg2short(70) && mSpeed > 5.f) {
|
||||
if (mAng(mAcchCir.GetWallAngleY()).absDiff(mAngle.y) > mAng::d2s(70) && mSpeed > 5.f) {
|
||||
return true;
|
||||
}
|
||||
if (mStateMgr.isState(StateID_GrabPut) && dAcPy_c::GetLink()->checkCurrentAction(/* PUT_DOWN_MEDIUM */ 0x42)) {
|
||||
@@ -1263,7 +1263,7 @@ bool dAcOBarrel_c::fn_293_4D00() {
|
||||
&& mYOffset >= 0.f //
|
||||
&& mObjAcch.ChkGndHit() && dBgS::GetInstance()->ChkMoveBG(mObjAcch.GetGnd(), true) //
|
||||
&& isSpeedStopped() && isVerticalSpeedStopped() // No Movement XZ or Y
|
||||
&& !fn_293_4A90(mAng::deg2short(0.09f)) // Perfectly Flat Ground
|
||||
&& !fn_293_4A90(mAng::d2s(0.09f)) // Perfectly Flat Ground
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1272,7 +1272,7 @@ bool dAcOBarrel_c::fn_293_4ED0() const {
|
||||
mWorldMtx.multVecSR(up);
|
||||
|
||||
mQuat_c q;
|
||||
q.setAxisRotation(up, mAng::short2rad(mAng::deg2short(1)));
|
||||
q.setAxisRotation(up, mAng::s2r(mAng::d2s(1)));
|
||||
|
||||
mMtx_c m;
|
||||
m.fromQuat(q);
|
||||
@@ -1287,13 +1287,11 @@ bool dAcOBarrel_c::fn_293_4F80() {
|
||||
|
||||
f32 rad = up.angle(mVelocity);
|
||||
mAng ang = mAng::fromRad(rad);
|
||||
return mAng::deg2short(75.f) < ang && ang < (mAng::deg2short(105.005f));
|
||||
return mAng::d2s(75.f) < ang && ang < (mAng::d2s(105.005f));
|
||||
}
|
||||
|
||||
bool dAcOBarrel_c::fn_293_50B0() {
|
||||
return (
|
||||
field_0xE00 && field_0xE02 && mSpeed > 15.f && getXZAngleToPlayer().absDiff(mAngle.y) < mAng::deg2short(60.005)
|
||||
);
|
||||
return (field_0xE00 && field_0xE02 && mSpeed > 15.f && getXZAngleToPlayer().absDiff(mAngle.y) < mAng::d2s(60.005));
|
||||
}
|
||||
|
||||
void dAcOBarrel_c::fn_293_5150() {
|
||||
@@ -1366,8 +1364,8 @@ void dAcOBarrel_c::fn_293_5440() {
|
||||
field_0xDB0 = dAcPy_c::GetLink()->mVelocity;
|
||||
field_0xDB0.y = 0.f;
|
||||
field_0xDB0.normalize();
|
||||
field_0xDF8.setF(1820.f);
|
||||
field_0xDFA.setF(2730.f);
|
||||
field_0xDF8 = 1820.f;
|
||||
field_0xDFA = 2730.f;
|
||||
field_0xDFC = 90;
|
||||
}
|
||||
|
||||
@@ -1379,8 +1377,8 @@ void dAcOBarrel_c::fn_293_54D0() {
|
||||
mQuat_c qplayer1, qplayer0;
|
||||
|
||||
qplayer0.setAxisRotation(field_0xDB0, mAng(field_0xDF4.sin() * field_0xDF8).radian());
|
||||
field_0xDF4 += mAng::deg2short(12);
|
||||
if (mAng::abs(field_0xDF4) < mAng::deg2short(12)) {
|
||||
field_0xDF4 += mAng::d2s(12);
|
||||
if (mAng::abs(field_0xDF4) < mAng::d2s(12)) {
|
||||
field_0xDF8 *= dAcOBarrel_c_Param_c::_12;
|
||||
}
|
||||
|
||||
@@ -1388,8 +1386,8 @@ void dAcOBarrel_c::fn_293_54D0() {
|
||||
m.multVecSR(vx);
|
||||
|
||||
qplayer1.setAxisRotation(vx, mAng(field_0xDF6.sin() * field_0xDFA).radian());
|
||||
field_0xDF6 += mAng::deg2short(20);
|
||||
if (mAng::abs(field_0xDF6) < mAng::deg2short(20)) {
|
||||
field_0xDF6 += mAng::d2s(20);
|
||||
if (mAng::abs(field_0xDF6) < mAng::d2s(20)) {
|
||||
field_0xDFA *= dAcOBarrel_c_Param_c::_9;
|
||||
}
|
||||
|
||||
|
||||
@@ -161,7 +161,7 @@ int dAcOChair_c::actorExecute() {
|
||||
|
||||
if (!isBench()) {
|
||||
if (isChairTypeIdk0() && !checkObjectProperty(OBJ_PROP_0x8000)) {
|
||||
if (mRotation.y.absDiff(getXZAngleToPlayer()) > mAng::deg2short(5)) {
|
||||
if (mRotation.y.absDiff(getXZAngleToPlayer()) > mAng::d2s(5)) {
|
||||
getRotation().y = getXZAngleToPlayer();
|
||||
}
|
||||
}
|
||||
@@ -175,7 +175,7 @@ int dAcOChair_c::actorExecute() {
|
||||
mMdl.calc(false);
|
||||
} else {
|
||||
if (isChairTypeIdk0() && !checkObjectProperty(OBJ_PROP_0x8000)) {
|
||||
if (mRotation.y.absDiff(getXZAngleToPlayer()) > mAng::deg2short(5)) {
|
||||
if (mRotation.y.absDiff(getXZAngleToPlayer()) > mAng::d2s(5)) {
|
||||
getRotation().y = getXZAngleToPlayer();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,8 +49,6 @@ int dAcODecoB_c::draw() {
|
||||
|
||||
void dAcODecoB_c::initializeState_Wait() {}
|
||||
|
||||
f32 dAcODecoB_c::lbl_611_data_34 = 0.95f;
|
||||
|
||||
void dAcODecoB_c::executeState_Wait() {
|
||||
if (dAcPy_c::GetLink() != nullptr && dAcPy_c::GetLink()->checkFlags0x350(0x2000)) {
|
||||
mVec3_c deltaPosition = dAcPy_c::GetLink()->mPosition - mPosition;
|
||||
@@ -61,9 +59,9 @@ void dAcODecoB_c::executeState_Wait() {
|
||||
}
|
||||
field_0x38E = distance * 2048.0f;
|
||||
}
|
||||
field_0x38E -= mRotation.x * 0.05f;
|
||||
field_0x38E = field_0x38E * lbl_611_data_34;
|
||||
mRotation.x += field_0x38E;
|
||||
field_0x38E -= mAng(mRotation.x * 0.05f);
|
||||
field_0x38E *= 0.95f;
|
||||
mRotation.x = mRotation.x + field_0x38E;
|
||||
}
|
||||
|
||||
const f32 dAcODecoB_c::lbl_611_rodata_30 = 2000.0f;
|
||||
|
||||
@@ -57,7 +57,7 @@ void dAcOring_c::executeState_Move() {
|
||||
if (getLinkage().checkConnection(dLinkage_c::CONNECTION_7)) {
|
||||
return;
|
||||
}
|
||||
mRotation.addX(0x1000);
|
||||
mRotation.x += 0x1000;
|
||||
if (field_0x38C >= mPosition.y) {
|
||||
deleteRequest();
|
||||
}
|
||||
|
||||
@@ -353,7 +353,7 @@ void dAcOtubo_c::initializeState_Slope() {
|
||||
mAng plaAng = pla.GetAngleY();
|
||||
field_0x9C4 = (plaAng - mAngle.y);
|
||||
mAng other = labs((s16)(mAngle.y - field_0x9C4));
|
||||
field_0x9C6 = nw4r::math::FSqrt(other.degree2() / 180.f) * 910.f;
|
||||
field_0x9C6 = nw4r::math::FSqrt(other.degree_c() / 180.f) * 910.f;
|
||||
}
|
||||
void dAcOtubo_c::executeState_Slope() {
|
||||
if (mObjAcch.ChkGroundLanding()) {
|
||||
@@ -567,8 +567,8 @@ void dAcOtubo_c::fn_272_2670() {
|
||||
mbField_0x9F1 = false;
|
||||
}
|
||||
static const s16 unk = {0}; // needed for rodata ordering
|
||||
if (!cM::isZero(field_0x9CA)) {
|
||||
mAngle.y = (*(s16 *)((u8 *)this + 0x9CA)); // HACK to force load again
|
||||
if (!cM::isZero(field_0x9CA.mVal)) {
|
||||
mAngle.y = field_0x9CA.mVal; // HACK to force load again
|
||||
field_0x9CA.set(0);
|
||||
} else {
|
||||
mQuat_c q;
|
||||
@@ -626,7 +626,7 @@ void dAcOtubo_c::attemptDestroy() {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mObjAcch.ChkWallHit(nullptr) && mAng(mAcchCir.GetWallAngleY()).absDiff(mAngle.y) > mAng::deg2short(70.f)) {
|
||||
if (mObjAcch.ChkWallHit(nullptr) && mAng(mAcchCir.GetWallAngleY()).absDiff(mAngle.y) > mAng::d2s(70.f)) {
|
||||
attemptDestroyOnWall();
|
||||
mAngle.y = mAcchCir.GetWallAngleY();
|
||||
mSpeed *= 0.5f;
|
||||
@@ -672,7 +672,7 @@ void dAcOtubo_c::attemptDestroy() {
|
||||
}
|
||||
|
||||
void dAcOtubo_c::attemptDestroyOnWall(const u32 ¶m0, const bool ¶m1) {
|
||||
if (param1 && mAng(mAcchCir.GetWallAngleY()).absDiff(mAngle.y) > mAng::deg2short(70.f) && 15.f < mSpeed) {
|
||||
if (param1 && mAng(mAcchCir.GetWallAngleY()).absDiff(mAngle.y) > mAng::d2s(70.f) && 15.f < mSpeed) {
|
||||
destroy();
|
||||
}
|
||||
}
|
||||
@@ -718,7 +718,7 @@ void dAcOtubo_c::fn_272_3020() {
|
||||
|
||||
rot.normalize();
|
||||
rot.rotY(field_0x9CC);
|
||||
field_0x9CC += 0x2000;
|
||||
field_0x9CC += mAng(ang_inc);
|
||||
|
||||
quat.makeVectorRotation(sRot, rot);
|
||||
sLib::chase(&field_0x9E0, 0.f, 0.005f);
|
||||
@@ -746,7 +746,7 @@ void dAcOtubo_c::adjustAngle() {
|
||||
mSpeed = nw4r::math::FSqrt(mVelocity.x * mVelocity.x + mVelocity.z * mVelocity.z);
|
||||
mSpeed = cM::minMaxLimit(mSpeed, -30.f, 30.f);
|
||||
|
||||
if (mAng::fromVec(pla.GetN()).absDiff(mAngle.y) < mAng::deg2short(90.f)) {
|
||||
if (mAng::fromVec(pla.GetN()).absDiff(mAngle.y) < mAng::d2s(90.f)) {
|
||||
sLib::addCalcAngle(mAngle.y.ref(), pla.GetAngleY(), 5, 0x71C, 0x100);
|
||||
} else {
|
||||
mAngle.y = mAng::fromVec(mVelocity);
|
||||
@@ -760,7 +760,7 @@ void dAcOtubo_c::adjustSpeed() {
|
||||
mAng gndAngle = mAng::fromRad(mVec3_c::Ey.angle(pla.GetN()));
|
||||
step *= gndAngle.cos();
|
||||
|
||||
if (gndAngle < mAng::deg2short(5) || mAng::fromVec(pla.GetN()).absDiff(mAngle.y) > mAng::deg2short(90)) {
|
||||
if (gndAngle < mAng::d2s(5) || mAng::fromVec(pla.GetN()).absDiff(mAngle.y) > mAng::d2s(90)) {
|
||||
f32 stepSize = mYOffset;
|
||||
sLib::chase(&mSpeed, 0.f, step + stepSize * -0.05f);
|
||||
} else {
|
||||
@@ -778,7 +778,7 @@ bool dAcOtubo_c::checkSlope() {
|
||||
dBgS::GetInstance()->GetTriPla(mObjAcch.GetGnd(), &pla);
|
||||
mAng gndAngle = mAng::fromRad(mVec3_c::Ey.angle(pla.GetN()));
|
||||
|
||||
return gndAngle.absDiff(0) > mAng::deg2short(5);
|
||||
return gndAngle.absDiff(0) > mAng::d2s(5);
|
||||
}
|
||||
|
||||
bool dAcOtubo_c::fn_272_3660() {
|
||||
|
||||
@@ -246,7 +246,7 @@ bool dAcOTumbleWeed_c::checkSlope() {
|
||||
dBgS::GetInstance()->GetTriPla(mObjAcch.mGnd, &pla);
|
||||
|
||||
mAng ang = mAng::fromRad(mVec3_c::Ey.angle(pla.GetN()));
|
||||
return ang.absDiff(0) > mAng::deg2short(1);
|
||||
return ang.absDiff(0) > mAng::d2s(1);
|
||||
}
|
||||
|
||||
bool dAcOTumbleWeed_c::checkCollect() {
|
||||
@@ -318,7 +318,7 @@ void dAcOTumbleWeed_c::adjustSpeed() {
|
||||
|
||||
// Flat Ground or not in the direction of the slope
|
||||
// Slows down
|
||||
if (gndAngle < mAng::deg2short(1) || mAng::fromVec(pla.GetN()).absDiff(mAngle.y) > mAng::deg2short(90)) {
|
||||
if (gndAngle < mAng::d2s(1) || mAng::fromVec(pla.GetN()).absDiff(mAngle.y) > mAng::d2s(90)) {
|
||||
sLib::chase(&mSpeed, mSpeedTarget, step);
|
||||
}
|
||||
// Sloped Ground and in the direction of the slope
|
||||
|
||||
@@ -66,11 +66,11 @@ int dAcOwindmill_c::create() {
|
||||
mSetRotation = getFromParams(0, 0xF);
|
||||
mSceneFlagInPlace = getFromParams(4, 0xFF);
|
||||
mSceneFlagBeingBlown = getFromParams(0xC, 0xFF);
|
||||
mWindmillRotation = mRotation.y.mVal;
|
||||
mWindmillRotation.set(mRotation.y.mVal);
|
||||
mWindmillPosition = mPosition;
|
||||
|
||||
mWindmillPosition.x += -95.22334f * mAng(mRotation.y + 0xc17).sin();
|
||||
mWindmillPosition.z += -95.22334f * mAng(mRotation.y + 0xc17).cos();
|
||||
mWindmillPosition.x += -95.22334f * mAng(mRotation.y + mAng::d2s(17.005f)).sin();
|
||||
mWindmillPosition.z += -95.22334f * mAng(mRotation.y + mAng::d2s(17.005f)).cos();
|
||||
mWindmillPosition.y += -86.11143f;
|
||||
|
||||
if (mHasPropellor || isWindmillRepaired()) {
|
||||
@@ -86,7 +86,7 @@ int dAcOwindmill_c::create() {
|
||||
if (delta < 0) {
|
||||
delta += 0xC;
|
||||
}
|
||||
mRotation.y += 0x1555 * delta;
|
||||
mRotation.y += mAng::d2s(30) * delta;
|
||||
mCurrentStuckPos = mSetRotation;
|
||||
mStateMgr.changeState(StateID_CollectStick);
|
||||
mTimer1 = 0;
|
||||
@@ -243,8 +243,7 @@ void dAcOwindmill_c::finalizeState_Move() {
|
||||
field_0x63A = false;
|
||||
mAnmClr.setRate(-1.f, 0);
|
||||
|
||||
mRotation.y = mWindmillRotation;
|
||||
mRotation.y += mAng::fromDeg(mCurrentStuckPos * 30);
|
||||
mRotation.y = mWindmillRotation + mAng::fromDeg(mCurrentStuckPos * 30);
|
||||
}
|
||||
|
||||
void dAcOwindmill_c::initializeState_Collect() {}
|
||||
|
||||
@@ -219,7 +219,7 @@ bool dAcOInsect_c::fn_8018FAD0() {
|
||||
void dAcOInsect_c::fn_8018FDF0(const mVec3_c &point) {
|
||||
mMtx_c mtx;
|
||||
field_0x360 = point;
|
||||
mtx.setAxisRotation(field_0x360, mRotation.y.radian2());
|
||||
mtx.setAxisRotation(field_0x360, mRotation.y.radian_c());
|
||||
// TODO
|
||||
f32 a_comparision = 0.99f;
|
||||
}
|
||||
|
||||
@@ -130,7 +130,7 @@ int dAcOFairy_c::create() {
|
||||
|
||||
if (isWithinPlayerRadius(200.0f) && getXZAngleToPlayer().absDiff(mAng::fromVec(mVelocity)) < 0x2000) {
|
||||
mVelocity.rotY(0x8000);
|
||||
mAngle.y += 0x8000;
|
||||
mAngle.y += mAng(0x8000);
|
||||
}
|
||||
|
||||
mModel.setAnm("PutFairy_fly", m3d::PLAY_MODE_4, 0.0f);
|
||||
@@ -210,9 +210,7 @@ int dAcOFairy_c::actorExecute() {
|
||||
}
|
||||
|
||||
if (!field_0xB89) {
|
||||
mEffects[0].holdEffect(
|
||||
PARTICLE_RESOURCE_ID_MAPPING_331_, mPosition, nullptr, nullptr, nullptr, nullptr
|
||||
);
|
||||
mEffects[0].holdEffect(PARTICLE_RESOURCE_ID_MAPPING_331_, mPosition, nullptr, nullptr, nullptr, nullptr);
|
||||
if (!isCuring() && !dAcPy_c::GetLink()->checkActionFlagsCont(0x400000)) {
|
||||
holdSound(SE_O_FAIRY_FLY_LEV);
|
||||
}
|
||||
@@ -237,9 +235,7 @@ int dAcOFairy_c::actorExecute() {
|
||||
}
|
||||
|
||||
if (isCuring() && !field_0xB89) {
|
||||
mEffects[1].holdEffect(
|
||||
PARTICLE_RESOURCE_ID_MAPPING_327_, mPosition, nullptr, nullptr, nullptr, nullptr
|
||||
);
|
||||
mEffects[1].holdEffect(PARTICLE_RESOURCE_ID_MAPPING_327_, mPosition, nullptr, nullptr, nullptr, nullptr);
|
||||
}
|
||||
|
||||
if (!mStateMgr.isState(StateID_CatchDemo) && !isCuring()) {
|
||||
|
||||
+2
-4
@@ -770,9 +770,7 @@ void dCsGame_c::lytItemCursor_c::lytDowsingCsr_c::updateEffects() {
|
||||
mVec2_c csPos = dPad::getDpdPosScreen();
|
||||
mVec3_c effectPos(csPos.x, csPos.y, 0.0f);
|
||||
mVec3_c effectScale(sHio.field_0x3C, sHio.field_0x3C, 1.0f);
|
||||
mEffects1.holdUIEffect(
|
||||
PARTICLE_RESOURCE_ID_MAPPING_725_, mVec3_c::Zero, nullptr, nullptr, nullptr, nullptr
|
||||
);
|
||||
mEffects1.holdUIEffect(PARTICLE_RESOURCE_ID_MAPPING_725_, mVec3_c::Zero, nullptr, nullptr, nullptr, nullptr);
|
||||
mEffects2.holdUIEffect(
|
||||
PARTICLE_RESOURCE_ID_MAPPING_726_, effectPos, &mAng3_c::Zero, &effectScale, nullptr, nullptr
|
||||
);
|
||||
@@ -813,7 +811,7 @@ void dCsGame_c::lytItemCursor_c::lytDowsingCsr_c::execute() {
|
||||
mpDowsingPane->SetScale(mVec2_c(scale, scale));
|
||||
|
||||
mVec3_c rot = mpRingAllPane->GetRotate();
|
||||
rot.z = -mRotZ.degree2();
|
||||
rot.z = -mRotZ.degree_c();
|
||||
mpRingAllPane->SetRotate(rot);
|
||||
|
||||
mStateMgr.executeState();
|
||||
|
||||
+12
-4
@@ -179,7 +179,7 @@ void beginPad_BR() {
|
||||
mVec3_c baseY;
|
||||
mVec3_c baseZ;
|
||||
KPADVec kpadvec;
|
||||
m.XrotS(mAng::deg2short(-30.f));
|
||||
m.XrotS(mAng::d2s(-30.f));
|
||||
baseZ.z = m.m[2][2];
|
||||
baseZ.y = m.m[1][2];
|
||||
baseZ.x = m.m[0][2];
|
||||
@@ -247,11 +247,19 @@ void beginPad_BR() {
|
||||
ex.mFSStick.x = mPad::getCore(0)->getFreeStickX();
|
||||
ex.mFSStick.y = mPad::getCore(0)->getFreeStickY();
|
||||
ex.mFSStickDistance = ex.mFSStick.length();
|
||||
ex.mFSStickAngle = -ex.mFSStick.ang();
|
||||
ex.mFSStickAngle = (s32)-ex.mFSStick.ang();
|
||||
|
||||
ex.calcFSStickDirMask();
|
||||
|
||||
bool isMpls = mPad::isMpls(0) || mPad::isMplsPtFS(0);
|
||||
// I think compiler flags or some inlining optimization ruins this.
|
||||
// This needs to be done separate from EGG as it will break other code
|
||||
// Changing TBuffer::checkRange() as below fixes it.
|
||||
// From:
|
||||
// return 0 <= i && i < mSize;
|
||||
// To:
|
||||
// bool low = 0 <= i;
|
||||
// bool high = i < mSize;
|
||||
// return low && high;
|
||||
bool isMpls = mPad::isMpls(0) || mPad::isMplsPtFS(0) ? true : false;
|
||||
if (isMpls) {
|
||||
ex.mMPLSVelocity.copyFrom(&mPad::getCore(0)->getCoreStatus()->mpls_rot);
|
||||
ex.mMPLS.mX.copyFrom(&mPad::getCore(0)->getCoreStatus()->mpls_basis_x);
|
||||
|
||||
@@ -1177,7 +1177,7 @@ void daPlayerModelBase_c::adjustMainModelChrAnm(PlayerMainModelNode_e nodeId, nw
|
||||
if (nodeId == PLAYER_MAIN_NODE_HAND_R) {
|
||||
static const mVec3_c v1(1.0f, 1.0f, 0.0f);
|
||||
mMtx_c rotMtx;
|
||||
rotMtx.setAxisRotation(v1, mRightHandRotation.radian2());
|
||||
rotMtx.setAxisRotation(v1, mRightHandRotation.radian_c());
|
||||
mtx += rotMtx;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -897,9 +897,9 @@ void dLytMapIcon01_c::draw() {
|
||||
mVec3_c rotate(0.0f, 0.0f, 0.0f);
|
||||
if (dLytMapGlobal_c::GetInstance()->getField_0x55() != 0) {
|
||||
dAcPy_c *link = getLinkPtr();
|
||||
rotate.z = mAng(link->mRotation.y + link->vt_0x19C() + -mapRot).degree2();
|
||||
rotate.z = mAng(link->mRotation.y + link->vt_0x19C() + -mapRot).degree_c();
|
||||
} else {
|
||||
rotate.z = mAng(field_0x0D3A + -mapRot).degree2();
|
||||
rotate.z = mAng(field_0x0D3A + -mapRot).degree_c();
|
||||
}
|
||||
pane->SetRotate(rotate);
|
||||
pane = pane->GetParent();
|
||||
@@ -907,7 +907,7 @@ void dLytMapIcon01_c::draw() {
|
||||
}
|
||||
case MAP_ICON_01_PANE_DOOR_000:
|
||||
case MAP_ICON_01_PANE_START_000: {
|
||||
mVec3_c rotate(0.0f, 0.0f, mAng(-mapRot + commandRot).degree2());
|
||||
mVec3_c rotate(0.0f, 0.0f, mAng(-mapRot + commandRot).degree_c());
|
||||
pane->SetRotate(rotate);
|
||||
pane = mpPanes[paneIdx]->GetParent();
|
||||
break;
|
||||
@@ -920,7 +920,7 @@ void dLytMapIcon01_c::draw() {
|
||||
case MAP_ICON_01_PANE_UTA_000:
|
||||
case MAP_ICON_01_PANE_MUSI_000:
|
||||
case MAP_ICON_01_PANE_SKYLOFT_000: {
|
||||
mVec3_c rotate(0.0f, 0.0f, (-mapRot).degree2());
|
||||
mVec3_c rotate(0.0f, 0.0f, (-mapRot).degree_c());
|
||||
pane->SetRotate(rotate);
|
||||
pane = mpPanes[paneIdx]->GetParent();
|
||||
break;
|
||||
@@ -953,7 +953,7 @@ void dLytMapIcon01_c::draw() {
|
||||
} else if (dScGame_c::isCurrentStage("F023")) {
|
||||
setCloud(2, pane);
|
||||
}
|
||||
mVec3_c rotate(0.0f, 0.0f, (-mapRot).degree2());
|
||||
mVec3_c rotate(0.0f, 0.0f, (-mapRot).degree_c());
|
||||
pane->SetRotate(rotate);
|
||||
pane = mpPanes[paneIdx]->GetParent();
|
||||
}
|
||||
@@ -1054,7 +1054,7 @@ static const char *sMapPrefix = "MAP_";
|
||||
void dLytMapIcon01_c::resetDrawCommands() {
|
||||
for (int i = 0; i < (int)ARRAY_LENGTH(mCommands); i++) {
|
||||
mCommands[i].position.set(0.0f, 0.0f);
|
||||
mCommands[i].rotation.setF(0.0f);
|
||||
mCommands[i].rotation = 0.0f;
|
||||
mCommands[i].paneIdx = MAP_ICON_01_NUM_PANES;
|
||||
mCommands[i].passIdx = 35;
|
||||
field_0x0D4B[i] = ARRAY_LENGTH(mCommands);
|
||||
@@ -1732,7 +1732,7 @@ void dLytMapIcon00_c::draw() {
|
||||
void dLytMapIcon00_c::resetDrawCommands() {
|
||||
for (int i = 0; i < (int)ARRAY_LENGTH(mCommands); i++) {
|
||||
mCommands[i].position.set(0.0f, 0.0f);
|
||||
mCommands[i].rotation.setF(0.0f);
|
||||
mCommands[i].rotation = 0.0f;
|
||||
mCommands[i].paneIdx = 39;
|
||||
mCommands[i].passIdx = 35;
|
||||
field_0x0F20[i] = ARRAY_LENGTH(mCommands);
|
||||
|
||||
@@ -64,8 +64,8 @@ void SelectBtnHelper::remove() {
|
||||
}
|
||||
|
||||
void SelectBtnHelper::resetCursor() {
|
||||
mAngX = mAngXCenter = mAng::ang2deg_c(dPad::ex_c::getInstance()->mMPLS.getHorizontalAngle());
|
||||
mAngY = mAngYCenter = mAng::ang2deg_c(dPad::ex_c::getInstance()->mMPLS.getVerticalAngle());
|
||||
mAngX = mAngXCenter = mAng::s2d_c(dPad::ex_c::getInstance()->mMPLS.getHorizontalAngle());
|
||||
mAngY = mAngYCenter = mAng::s2d_c(dPad::ex_c::getInstance()->mMPLS.getVerticalAngle());
|
||||
}
|
||||
|
||||
u8 SelectBtnHelper::execute() {
|
||||
@@ -111,8 +111,8 @@ bool SelectBtnHelper::handleCursorInput() {
|
||||
return true;
|
||||
}
|
||||
|
||||
mAngX = mAng::ang2deg_c(dPad::ex_c::getInstance()->mMPLS.getHorizontalAngle());
|
||||
mAngY = mAng::ang2deg_c(dPad::ex_c::getInstance()->mMPLS.getVerticalAngle());
|
||||
mAngX = mAng::s2d_c(dPad::ex_c::getInstance()->mMPLS.getHorizontalAngle());
|
||||
mAngY = mAng::s2d_c(dPad::ex_c::getInstance()->mMPLS.getVerticalAngle());
|
||||
|
||||
mVec2_c screenPos = dPad::getDpdPosScreen();
|
||||
if (mCursorSelectTimer > 0) {
|
||||
@@ -133,8 +133,8 @@ bool SelectBtnHelper::handleCursorInput() {
|
||||
mPad::getCore()->startPatternRumble("**-*----", 0, false);
|
||||
}
|
||||
fn_8011E110(screenPos);
|
||||
// TODO additional stack stores
|
||||
field_0x2C = dPad::getDpdPosScreen();
|
||||
screenPos = field_0x2C;
|
||||
mAngXCenter = mAngX;
|
||||
mAngYCenter = mAngY;
|
||||
}
|
||||
@@ -162,19 +162,22 @@ bool SelectBtnHelper::handleCursorInput() {
|
||||
|
||||
if (selected != -1) {
|
||||
nw4r::math::MTX34 mtx0 = getRootPane()->GetGlobalMtx();
|
||||
mVec2_c pos0 = mVec2_c(mtx0._03, mtx0._13);
|
||||
mVec2_c pos0(mtx0._03, mtx0._13);
|
||||
|
||||
nw4r::math::MTX34 mtxi = getPosPane(selected)->GetGlobalMtx();
|
||||
mVec2_c posi = mVec2_c(mtxi._03, mtxi._13);
|
||||
mVec2_c posi(mtxi._03, mtxi._13);
|
||||
|
||||
mVec2_c d1 = posi - pos0;
|
||||
s16 ang = d1.ang();
|
||||
mAng ang = cM::atan2s(d1.y, d1.x);
|
||||
|
||||
mVec2_c adj;
|
||||
adj.x = v.x * dLyt_HIO_c::getInstance()->getField0x770();
|
||||
adj.y = v.y * dLyt_HIO_c::getInstance()->getField0x774();
|
||||
mVec2_c d2 = posi + adj - pos0;
|
||||
s16 ang2 = d2.ang();
|
||||
v.x *= dLyt_HIO_c::getInstance()->getField0x770();
|
||||
v.y *= dLyt_HIO_c::getInstance()->getField0x774();
|
||||
|
||||
angle = mAng::ang2deg_c(ang2) - mAng::ang2deg_c(ang);
|
||||
mVec2_c d2 = posi + v - pos0;
|
||||
|
||||
mAng ang2 = cM::atan2s(d2.y, d2.x);
|
||||
|
||||
angle = ang2.degree_c() - ang.degree_c();
|
||||
length = d2.length() / d1.length();
|
||||
}
|
||||
if (length > 1.0f) {
|
||||
@@ -338,8 +341,7 @@ bool SelectBtnHelper::handleButtonInput() {
|
||||
#undef IS
|
||||
|
||||
if (btn == -1) {
|
||||
// TODO
|
||||
btn = field_0x4C != -1 ? field_0x4C : 0;
|
||||
btn = field_0x4C != -1 ? (s8)field_0x4C : (s8)0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -417,8 +419,8 @@ bool SelectBtnHelper::hasNewFSStickButtonSelect() const {
|
||||
break;
|
||||
case MODE_3_UP:
|
||||
if (((TRIG(UP) || TRIG(UP_RIGHT) || TRIG(UP_LEFT)) && mSelectedBtnIdx == 0) ||
|
||||
((TRIG(DOWN) || TRIG(DOWN_RIGHT) || TRIG(DOWN_LEFT)) && (mSelectedBtnIdx == 1 || mSelectedBtnIdx == 2)
|
||||
) ||
|
||||
((TRIG(DOWN) || TRIG(DOWN_RIGHT) || TRIG(DOWN_LEFT)) &&
|
||||
(mSelectedBtnIdx == 1 || mSelectedBtnIdx == 2)) ||
|
||||
((TRIG(RIGHT) || TRIG(UP_RIGHT) || TRIG(DOWN_RIGHT)) && mSelectedBtnIdx == 1) ||
|
||||
((TRIG(LEFT) || TRIG(UP_LEFT) || TRIG(DOWN_LEFT)) && mSelectedBtnIdx == 2)) {
|
||||
return false;
|
||||
|
||||
@@ -668,7 +668,7 @@ void dShpEmitter_c::draw(JPABaseEmitter *emitter, JPABaseParticle *particle) {
|
||||
v.normalize();
|
||||
}
|
||||
mMtx_c m;
|
||||
m.setAxisRotation(v, mAng((u16)particle->mRotateAngle).radian2());
|
||||
m.setAxisRotation(v, mAng((u16)particle->mRotateAngle).radian_c());
|
||||
m.setBase(3, pos);
|
||||
mMtx_c mtx2;
|
||||
mVec3_c scale(
|
||||
@@ -1003,9 +1003,7 @@ bool dEmitter_c::holdUIEffect(
|
||||
return setupEffect(false, resourceId, adjustedPosition, rot, scale, c1, c2);
|
||||
}
|
||||
|
||||
bool dEmitter_c::holdEffect(
|
||||
u16 resourceId, const mMtx_c &transform, const GXColor *c1, const GXColor *c2
|
||||
) {
|
||||
bool dEmitter_c::holdEffect(u16 resourceId, const mMtx_c &transform, const GXColor *c1, const GXColor *c2) {
|
||||
return setupEffect(false, resourceId, transform, c1, c2);
|
||||
}
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ f32 dDegree::tan2() const {
|
||||
}
|
||||
|
||||
f32 dDegree::toRad() const {
|
||||
return mAng::deg2rad_c(value);
|
||||
return mAng::d2r_c(value);
|
||||
}
|
||||
|
||||
s16 dDegree::toIdx() {
|
||||
@@ -121,8 +121,8 @@ void dPolar::setCartesian(const mVec3_c &v) {
|
||||
|
||||
f32 magXZ = (magXZSq > 0.0) ? (f32)sqrt(magXZSq) : 0.f;
|
||||
R = (magSq > 0.0) ? (f32)sqrt(magSq) : 0.f;
|
||||
U.Set(mAng::rad2deg_c(M_PI / 2 - cM::atan2f(magXZ, y)));
|
||||
V.Set(mAng::rad2deg_c(cM::atan2f(x, z)));
|
||||
U.Set(mAng::r2d_c(M_PI / 2 - cM::atan2f(magXZ, y)));
|
||||
V.Set(mAng::r2d_c(cM::atan2f(x, z)));
|
||||
canonicalize();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user