summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/common.h8
-rwxr-xr-xinclude/game.h17
-rw-r--r--kamek_pal.x3
3 files changed, 25 insertions, 3 deletions
diff --git a/include/common.h b/include/common.h
index 82d3fca..e45f733 100644
--- a/include/common.h
+++ b/include/common.h
@@ -54,6 +54,13 @@ extern "C" int strcmp ( const char * str1, const char * str2 );
#include "rvl/mtx.h"
+// Stop the auto completion from whining
+#ifdef __CLANG
+inline void *operator new(unsigned int size, void *ptr) { return ptr; }
+float abs(float value);
+double abs(double value);
+#endif
+#ifndef __CLANG
inline void *operator new(size_t size, void *ptr) { return ptr; }
inline float abs(float value) {
@@ -62,6 +69,7 @@ inline float abs(float value) {
inline double abs(double value) {
return __fabs(value);
}
+#endif
struct tree_node {
diff --git a/include/game.h b/include/game.h
index 42304a5..2184920 100755
--- a/include/game.h
+++ b/include/game.h
@@ -604,7 +604,9 @@ class mMtx {
float FastS16toFloat(s16 value) {
register s16 *pValue = &value;
register float output;
+ #ifndef __CLANG
asm { psq_l output, 0(pValue), 1, 3 }
+ #endif
return output;
}
@@ -2000,7 +2002,7 @@ public:
void doSomethingCool1();
void doSomethingCool2();
void setSomething(u32,u32,u32);
- void Create_ICEACTORs(void*,int);
+ bool Create_ICEACTORs(void*,int);
void Delete_ICEACTORs();
void SetIceTimer_pt1();
void SetIceTimer_pt2();
@@ -2550,7 +2552,7 @@ public:
virtual void powBlockActivated(bool isMPGP);
virtual void _vf148(); // deletes actors held by Class484 and other stuff
virtual void _vf14C(); // deletes actors held by Class484 and makes an En Coin Jump
- virtual u32 _vf150(); // reads some bits from a value in Class1EC
+ virtual u32 canBePowed(); // reads some bits from a value in Class1EC
virtual void eatenByYoshiProbably(); // nullsub, params unknown
virtual void playHpdpSound1(); // plays PLAYER_SE_EMY/GROUP_BOOT/SE_EMY_DOWN_HPDP_S or _H
virtual void playEnemyDownSound1();
@@ -3768,6 +3770,15 @@ struct DoSomethingCool {
f32 unk_08; //0034
f32 unk_09; //0038
};
+
+struct IceActorSpawnInfo {
+ // fuck that, we don't actually need it
+ //~IceActorSpawnInfo();
+ u32 flags;
+ Vec3 pos, scale;
+ f32 what[8];
+};
+
extern "C" u8 dSprite_c__getXDirectionOfFurthestPlayerRelativeToVEC3(dEn_c *, Vec pos);
extern "C" void *ShakeScreen(void *, unsigned int, unsigned int, unsigned int, unsigned int);
extern "C" void *PlaySound(dStageActor_c *, int soundID);
@@ -3952,6 +3963,7 @@ inline int Player_VF3D4(void *self) {
}
extern "C" void PlaySoundWithFunctionB4(void *spc, nw4r::snd::SoundHandle *handle, int id, int unk);
+extern void *SoundRelatedClass;
void GetPosForLayoutEffect(VEC3 *pos, bool quack);
@@ -4120,6 +4132,7 @@ inline dTheEnd_c *GetTheEnd() {
extern void *_8042A788;
extern "C" void sub_8019C390(void *, int);
+extern "C" bool SpawnEffect(const char*, int, Vec*, S16Vec*, Vec*);
#endif
diff --git a/kamek_pal.x b/kamek_pal.x
index fa2f045..9e55779 100644
--- a/kamek_pal.x
+++ b/kamek_pal.x
@@ -463,6 +463,7 @@ SECTIONS {
clear2__14collisionMgr_cFv = 0x8006d000;
init__14collisionMgr_cFP13dStageActor_cPC12sensorBase_sPC12sensorBase_sPC12sensorBase_s = 0x8006d090;
Clear3__14collisionMgr_cFv = 0x8006d440;
+ calculateBelowCollision__14collisionMgr_cFv = 0x8006db30;
isOnTopOfTile__14collisionMgr_cCFv = 0x80070cb0;
calculateAboveCollision__14collisionMgr_cFUi = 0x8006ef40;
calculateBelowCollisionWithSmokeEffect__14collisionMgr_cFv = 0x80072bc0;
@@ -600,7 +601,7 @@ SECTIONS {
powBlockActivated__5dEn_cFb = 0x800A0C70;
_vf148__5dEn_cFv = 0x800A12A0;
_vf14C__5dEn_cFv = 0x800A1370;
- _vf150__5dEn_cFv = 0x800206D0;
+ canBePowed__5dEn_cFv = 0x800206D0;
eatenByYoshiProbably__5dEn_cFv = 0x80096230;
killByDieFall__5dEn_cFP13dStageActor_c = 0x800A1190;
playHpdpSound1__5dEn_cFv = 0x800A1C00;