diff options
author | Colin Noga <Tempus@Spectrum-Song.local> | 2011-10-10 22:46:16 -0500 |
---|---|---|
committer | Colin Noga <Tempus@Spectrum-Song.local> | 2011-10-10 22:46:16 -0500 |
commit | faa753075c7751b106dfdb60b6a56dd7bbd6a6b7 (patch) | |
tree | 28d35e1d3e7eef6550385b6b751a74bb432b9674 /include | |
parent | 5ba33f06b89159191cdcbbefd9196ca6f2bab89e (diff) | |
parent | 5f3eca3f6074605272b7bdde4a685d2f0934d6a7 (diff) | |
download | kamek-faa753075c7751b106dfdb60b6a56dd7bbd6a6b7.tar.gz kamek-faa753075c7751b106dfdb60b6a56dd7bbd6a6b7.zip |
Merge branch 'level-select' of ssh://treeki.shacknet.nu:30000/Kamek into level-select
Diffstat (limited to '')
-rw-r--r-- | include/common.h | 4 | ||||
-rwxr-xr-x | include/game.h | 25 |
2 files changed, 29 insertions, 0 deletions
diff --git a/include/common.h b/include/common.h index 2e7dc80..e212eb4 100644 --- a/include/common.h +++ b/include/common.h @@ -44,6 +44,8 @@ typedef struct { f32 x, y, z; } VEC3, Vec, *VecPtr, Point3d, *Point3dPtr; typedef struct { s16 x; s16 y; s16 z; }S16Vec, *S16VecPtr;
typedef struct { f32 x, y, z, w; } Quaternion, *QuaternionPtr, Qtrn, *QtrnPtr;
+typedef struct { f32 frame, value, slope; } HermiteKey;
+
extern "C" const char * strrchr ( const char * str, int character );
extern "C" int strcmp ( const char * str1, const char * str2 );
@@ -84,6 +86,8 @@ int memcmp(const void *ptr1, const void *ptr2, unsigned int num); void *AllocFromGameHeap1(u32 size);
void FreeFromGameHeap1(void *block);
+float GetHermiteCurveValue(float current_frame, HermiteKey* keys, unsigned int key_count);
+
/* Archive */
/*#ifdef REGION_PAL
#define ARC_TABLE ((*((void**)0x8042A318))+4)
diff --git a/include/game.h b/include/game.h index c57a93d..b6b07dd 100755 --- a/include/game.h +++ b/include/game.h @@ -2199,5 +2199,30 @@ inline u8 *getResource(const char *arcName, const char *fileName) { return GetRes((void*)(((u8*)DVDClass)+4), arcName, fileName);
}
+inline void scaleDown(Vec* scale, float amt) { scale->x -= amt; scale->y -= amt; scale->z -= amt; }
+inline void scaleUp(Vec* scale, float amt) { scale->x -= amt; scale->y -= amt; scale->z -= amt; }
+inline void setNewActivePhysicsRect(dStageActor_c* actor, Vec* scale) {
+ float amtX = scale->x;
+ float amtY = scale->y;
+
+ ActivePhysics::Info info;
+ info.xDistToCenter = 0.0;
+ info.yDistToCenter = 3.0 * amtY;
+ info.xDistToEdge = 4.0 * amtX;
+ info.yDistToEdge = 4.0 * amtY;
+
+ info.category1 = actor->aPhysics.info.category1;
+ info.category2 = actor->aPhysics.info.category2;
+ info.bitfield1 = actor->aPhysics.info.bitfield1;
+ info.bitfield2 = actor->aPhysics.info.bitfield2;
+ info.unkShort1C = actor->aPhysics.info.unkShort1C;
+ info.callback = actor->aPhysics.info.callback;
+
+ OSReport("Making new Physics Class and adding to the list\n");
+ actor->aPhysics.removeFromList();
+ actor->aPhysics.initWithStruct(actor, &info);
+ actor->aPhysics.addToList();
+}
+
#endif
|