summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/common.h4
-rwxr-xr-xinclude/game.h17
-rw-r--r--kamek_pal.x3
3 files changed, 16 insertions, 8 deletions
diff --git a/include/common.h b/include/common.h
index 38e9c86..44c3652 100644
--- a/include/common.h
+++ b/include/common.h
@@ -113,6 +113,10 @@ char *RetrieveFileFromArcAlt(void *table, char *name, char *path);*/
extern void *ArchiveHeap; // PAL 0x8042A72C, NTSC 0x8042A44C
+namespace nw4r { namespace math { float FrSqrt(float); }}
+float sqrtf(float x) {
+ return (x <= 0) ? 0.0f : x * nw4r::math::FrSqrt(x);
+}
#ifdef __MWERKS__
#define InfiniteLoop for (;;) { asm { nop } }
diff --git a/include/game.h b/include/game.h
index d90ce0f..5fcd2e8 100755
--- a/include/game.h
+++ b/include/game.h
@@ -3526,15 +3526,15 @@ namespace mEf {
void clear();
virtual bool probablyCreateWithName(const char *name, u32 unk);
- virtual bool spawn(const char *name, u32 unk, Vec *pos=0, S16Vec *rot=0, Vec *scale=0);
- virtual bool spawnWithMatrix(const char *name, u32 unk, Mtx *mtx);
+ virtual bool spawn(const char *name, u32 unk, const Vec *pos=0, const S16Vec *rot=0, const Vec *scale=0);
+ virtual bool spawnWithMatrix(const char *name, u32 unk, const Mtx *mtx);
// these two deal with mEf::effectCB_c and crap. absolutely no idea.
virtual bool _vfA8(/* tons and tons of params */);
virtual bool _vfAC(/* a slightly smaller amount of params */);
- virtual bool _vfB0(Vec *pos=0, S16Vec *rot=0, Vec *scale=0);
- virtual bool _vfB4(Mtx *mtx);
+ virtual bool _vfB0(const Vec *pos=0, const S16Vec *rot=0, const Vec *scale=0);
+ virtual bool _vfB4(const Mtx *mtx);
};
class es2 : public effect_c {
@@ -3547,10 +3547,10 @@ namespace mEf {
void makeItHappen();
bool probablyCreateWithName(const char *name, u32 unk);
- bool spawn(const char *name, u32 unk, Vec *pos=0, S16Vec *rot=0, Vec *scale=0);
- bool spawnWithMatrix(const char *name, u32 unk, Mtx *mtx);
- bool _vfB0(Vec *pos=0, S16Vec *rot=0, Vec *scale=0);
- bool _vfB4(Mtx *mtx);
+ bool spawn(const char *name, u32 unk, const Vec *pos=0, const S16Vec *rot=0, const Vec *scale=0);
+ bool spawnWithMatrix(const char *name, u32 unk, const Mtx *mtx);
+ bool _vfB0(const Vec *pos=0, const S16Vec *rot=0, const Vec *scale=0);
+ bool _vfB4(const Mtx *mtx);
virtual u8 returnField11D(); // does exactly what it says on the tin
@@ -3876,6 +3876,7 @@ inline int Player_VF3D4(void *self) {
extern "C" void PlaySoundWithFunctionB4(void *spc, nw4r::snd::SoundHandle *handle, int id, int unk);
+void GetPosForLayoutEffect(VEC3 *pos, bool quack);
bool SmoothRotation(s16 *pValue, s16 target, s16 stepSize);
diff --git a/kamek_pal.x b/kamek_pal.x
index 66df3c9..c4bb1d6 100644
--- a/kamek_pal.x
+++ b/kamek_pal.x
@@ -1,4 +1,6 @@
SECTIONS {
+ GetPosForLayoutEffect__FP7Point3db = 0x800B37E0;
+
SmoothRotation__FPsss = 0x8015F630;
KazanRock_OriginalCollisionCallback = 0x8081F420;
@@ -161,6 +163,7 @@ SECTIONS {
DoSceneChange__FUsUiUi = 0x800E1F50;
+ FrSqrt__Q24nw4r4mathFf = 0x80237CE0;
SinFIdx__Q24nw4r4mathFf = 0x80237D10;
CosFIdx__Q24nw4r4mathFf = 0x80237D80;
SinCosFIdx__Q24nw4r4mathFPfPff = 0x80237DE0;