From bfa0cd194459a256b68d00967fb94e52deef7615 Mon Sep 17 00:00:00 2001 From: Treeki Date: Sat, 13 Apr 2013 09:12:48 +0200 Subject: API updates --- include/common.h | 8 ++++++++ include/game.h | 17 +++++++++++++++-- kamek_pal.x | 3 ++- 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; -- cgit v1.2.3