mirror of
https://github.com/SwareJonge/mkdd.git
synced 2024-11-26 23:00:25 +00:00
ItemObjMgr 60%
This commit is contained in:
parent
ec6b03dfd8
commit
f8774a9d25
@ -1637,6 +1637,32 @@ src/Sato/stMath.cpp:
|
||||
.sbss: [0x80416ac8, 0x80416ad0]
|
||||
.sdata2: [0x8041bb60, 0x8041bbb8]
|
||||
|
||||
#src/Sato/ItemObjMgr.cpp:
|
||||
#.text: [0x8023cc44, 0x80243f84]
|
||||
#.ctors: [0x80316408, 0x8031640c]
|
||||
#.rodata: [0x8037fcd0, 0x803800e0]
|
||||
#.data: [0x8039fa58, 0x8039fc38]
|
||||
#.bss: [0x803ed680, 0x803ed6e8]
|
||||
#.sdata: [0x80414990, 0x804149b8]
|
||||
#.sbss: [0x80416b50, 0x80416b88]
|
||||
#.sdata2: [0x8041be08, 0x8041be58]
|
||||
#.sbss2: [0x8041e208, 0x8041e210]
|
||||
|
||||
src/Sato/stEfctWeed.cpp:
|
||||
.text: [0x80254ba8, 0x80254ec4]
|
||||
.ctors: [0x80316418, 0x8031641c]
|
||||
.data: [0x803a08d0, 0x803a0900]
|
||||
.bss: [0x803ed778, 0x803ed7a8]
|
||||
.sdata: [0x80414bb0, 0x80414bc0]
|
||||
.sbss: [0x80416bc8, 0x80416bd0]
|
||||
.sdata2: [0x8041bf90, 0x8041bf98]
|
||||
|
||||
src/Sato/RivalKart.cpp:
|
||||
.text: [0x80270f9c, 0x802714b0]
|
||||
.ctors: [0x80316458, 0x8031645c]
|
||||
.data: [0x803a1ca0, 0x803a1cb8]
|
||||
.bss: [0x803edc40, 0x803edc70]
|
||||
|
||||
src/Shiraiwa/WipeSlide.cpp:
|
||||
.text: [0x802b7d5c, 0x802b8760]
|
||||
.ctors: [0x80316544, 0x80316548]
|
||||
@ -1710,21 +1736,6 @@ src/Shiraiwa/WipeCurtain.cpp:
|
||||
.sdata2: [0x8041d5a0, 0x8041d5c0]
|
||||
.sbss2: [0x8041e250, 0x8041e254]
|
||||
|
||||
src/Sato/stEfctWeed.cpp:
|
||||
.text: [0x80254ba8, 0x80254ec4]
|
||||
.ctors: [0x80316418, 0x8031641c]
|
||||
.data: [0x803a08d0, 0x803a0900]
|
||||
.bss: [0x803ed778, 0x803ed7a8]
|
||||
.sdata: [0x80414bb0, 0x80414bc0]
|
||||
.sbss: [0x80416bc8, 0x80416bd0]
|
||||
.sdata2: [0x8041bf90, 0x8041bf98]
|
||||
|
||||
src/Sato/RivalKart.cpp:
|
||||
.text: [0x80270f9c, 0x802714b0]
|
||||
.ctors: [0x80316458, 0x8031645c]
|
||||
.data: [0x803a1ca0, 0x803a1cb8]
|
||||
.bss: [0x803edc40, 0x803edc70]
|
||||
|
||||
src/Yamamoto/kartCamera.cpp:
|
||||
.text: [0x802e0248, 0x802e17b8]
|
||||
.ctors: [0x803165d8, 0x803165dc]
|
||||
|
@ -113,7 +113,7 @@ struct J3DModelData
|
||||
mat->mTevBlock->setTevColor(0, J3DGXColorS10(r, g, b, a));
|
||||
}
|
||||
|
||||
void simpleCalcMaterial( Mtx m) {simpleCalcMaterial(0, m); }
|
||||
void simpleCalcMaterial(Mtx m) { simpleCalcMaterial(0, m); }
|
||||
|
||||
J3DVertexData *getVertexData() { return &mVertexData; }
|
||||
J3DJoint *getJointNodePointer(u16 idx) const { return mJointTree.getJointNodePointer(idx); }
|
||||
|
@ -34,7 +34,7 @@ struct J3DSys
|
||||
void setDrawModeOpaTexEdge() { mDrawMode = 3; }
|
||||
void setDrawModeXlu() { mDrawMode = 4; }
|
||||
void setViewMtx(const Mtx mtx) { PSMTXCopy(mtx, mViewMtx); }
|
||||
const Mtx &getViewMtx() { return mViewMtx; }
|
||||
Mtx &getViewMtx() { return mViewMtx; }
|
||||
|
||||
Mtx mViewMtx; // _000
|
||||
J3DMtxCalc *mMtxCalc; // _030
|
||||
|
@ -12,13 +12,18 @@ namespace JGeometry {
|
||||
{
|
||||
public:
|
||||
SMatrix34C() {}
|
||||
void set(const MtxPtr);
|
||||
void set(const SMatrix34C<T> &rSrc);
|
||||
void set(T rxx, T ryx, T rzx, T tx, T rxy, T ryy, T rzy, T ty, T rxz, T ryz, T rzz, T tz);
|
||||
|
||||
void scale(T);
|
||||
|
||||
inline void setInline(const SMatrix34C<T> &rSrc)
|
||||
inline void set(const Mtx pSrc)
|
||||
{
|
||||
JMath::gekko_ps_copy12(this, pSrc);
|
||||
}
|
||||
|
||||
// I guess these could be removed
|
||||
/*inline void setInline(const SMatrix34C<T> &rSrc)
|
||||
{
|
||||
register const SMatrix34C<T> *pSrc = &rSrc;
|
||||
register SMatrix34C<T> *pDest = this;
|
||||
@ -106,7 +111,7 @@ namespace JGeometry {
|
||||
// clang-format on
|
||||
}
|
||||
;
|
||||
}
|
||||
}*/
|
||||
|
||||
T &ref(u32 i, u32 j) { return mMtx[i][j]; }
|
||||
|
||||
|
@ -12,6 +12,33 @@
|
||||
|
||||
namespace JMath
|
||||
{
|
||||
inline void gekko_ps_copy12(register void *pDest, register const void *pSrc)
|
||||
{
|
||||
register f32 rxxyx;
|
||||
register f32 rzxtx;
|
||||
register f32 rxyyy;
|
||||
register f32 rzyty;
|
||||
register f32 rxzyz;
|
||||
register f32 rzztz;
|
||||
|
||||
__asm {
|
||||
// clang-format off
|
||||
psq_l rxxyx, 0(pSrc), 0, 0
|
||||
psq_l rzxtx, 8(pSrc), 0, 0
|
||||
psq_l rxyyy, 0x10(pSrc), 0, 0
|
||||
psq_l rzyty, 0x18(pSrc), 0, 0
|
||||
psq_l rxzyz, 0x20(pSrc), 0, 0
|
||||
psq_l rzztz, 0x28(pSrc), 0, 0
|
||||
psq_st rxxyx, 0(pDest), 0, 0
|
||||
psq_st rzxtx, 8(pDest), 0, 0
|
||||
psq_st rxyyy, 0x10(pDest), 0, 0
|
||||
psq_st rzyty, 0x18(pDest), 0, 0
|
||||
psq_st rxzyz, 0x20(pDest), 0, 0
|
||||
psq_st rzztz, 0x28(pDest), 0, 0
|
||||
// clang-format on
|
||||
}
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
struct TAngleConstant_
|
||||
{
|
||||
|
@ -5,9 +5,11 @@
|
||||
|
||||
class JSUPtrLink;
|
||||
|
||||
class JSUPtrList {
|
||||
class JSUPtrList
|
||||
{
|
||||
public:
|
||||
JSUPtrList() {
|
||||
JSUPtrList()
|
||||
{
|
||||
initiate();
|
||||
}
|
||||
|
||||
@ -26,12 +28,13 @@ public:
|
||||
JSUPtrLink *getLastLink() const { return mTail; }
|
||||
u32 getNumLinks() const { return mLinkCount; }
|
||||
|
||||
JSUPtrLink *mHead; // _0
|
||||
JSUPtrLink *mTail; // _4
|
||||
u32 mLinkCount; // _8
|
||||
JSUPtrLink *mHead; // _0
|
||||
JSUPtrLink *mTail; // _4
|
||||
u32 mLinkCount; // _8
|
||||
};
|
||||
|
||||
class JSUPtrLink {
|
||||
class JSUPtrLink
|
||||
{
|
||||
public:
|
||||
JSUPtrLink(void *);
|
||||
~JSUPtrLink();
|
||||
@ -41,23 +44,24 @@ public:
|
||||
JSUPtrLink *getNext() const { return mNext; }
|
||||
JSUPtrLink *getPrev() const { return mPrev; }
|
||||
|
||||
void *mData; // _0
|
||||
JSUPtrList *mPtrList; // _4
|
||||
JSUPtrLink *mPrev; // _8
|
||||
JSUPtrLink *mNext; // _C
|
||||
void *mData; // _0
|
||||
JSUPtrList *mPtrList; // _4
|
||||
JSUPtrLink *mPrev; // _8
|
||||
JSUPtrLink *mNext; // _C
|
||||
};
|
||||
|
||||
template <class T>
|
||||
class JSULink; // friend class? i'm C++ noob
|
||||
|
||||
template<class T>
|
||||
class JSUList : public JSUPtrList {
|
||||
template <class T>
|
||||
class JSUList : public JSUPtrList
|
||||
{
|
||||
public:
|
||||
JSUList(bool thing) : JSUPtrList(thing) {
|
||||
|
||||
JSUList(bool thing) : JSUPtrList(thing)
|
||||
{
|
||||
}
|
||||
JSUList() : JSUPtrList() {
|
||||
|
||||
JSUList() : JSUPtrList()
|
||||
{
|
||||
}
|
||||
|
||||
bool append(JSULink<T> *link) { return JSUPtrList::append((JSUPtrLink *)link); }
|
||||
@ -97,10 +101,11 @@ public:
|
||||
|
||||
T *getObject() const { return mLink->getObject(); }
|
||||
|
||||
bool operator==(JSULink<T> const *other) const { return mLink == other; }
|
||||
bool operator!=(JSULink<T> const *other) const { return mLink != other; }
|
||||
bool operator==(JSUListIterator<T> const &other) const { return mLink == other.mLink; }
|
||||
bool operator!=(JSUListIterator<T> const &other) const { return mLink != other.mLink; }
|
||||
bool isAvailable() { return mLink != nullptr; }
|
||||
bool operator==(const JSULink<T> *other) const { return mLink == other; }
|
||||
bool operator!=(const JSULink<T> *other) const { return mLink != other; }
|
||||
bool operator==(const JSUListIterator<T> &other) const { return mLink == other.mLink; }
|
||||
bool operator!=(const JSUListIterator<T> &other) const { return mLink != other.mLink; }
|
||||
|
||||
JSUListIterator<T> operator++(int)
|
||||
{
|
||||
@ -129,7 +134,7 @@ public:
|
||||
}
|
||||
|
||||
// Investigate where and if this actually exists
|
||||
//T &operator*() { return *getObject(); }
|
||||
// T &operator*() { return *getObject(); }
|
||||
|
||||
T *operator->() const { return mLink->getObject(); }
|
||||
|
||||
@ -141,18 +146,14 @@ template <class T>
|
||||
class JSULink : public JSUPtrLink
|
||||
{
|
||||
public:
|
||||
JSULink(T *pData) : JSUPtrLink(pData)
|
||||
{
|
||||
}
|
||||
JSULink(T *pData) : JSUPtrLink(pData) {}
|
||||
|
||||
T *getObject() const { return (T *)mData; }
|
||||
JSUList<T> *getList() const { return (JSUList<T> *)JSUPtrLink::getList(); } // fabricated, offcial name: getSupervisor
|
||||
JSUList<T> *getSupervisor() const { return (JSUList<T> *)mPtrList; }
|
||||
JSULink<T> *getNext() const { return (JSULink<T> *)mNext; }
|
||||
JSULink<T> *getPrev() const { return (JSULink<T> *)JSUPtrLink::getPrev(); }
|
||||
JSULink<T> *getPrev() const { return (JSULink<T> *)mPrev; }
|
||||
|
||||
~JSULink() {
|
||||
|
||||
}
|
||||
~JSULink() {}
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
|
@ -62,6 +62,7 @@ public:
|
||||
static bool isMtxCombinationOn() { return sMtxCombinationOn; };
|
||||
static f32 getInvalidLODBias() { return sExModelInvalidLODBias; }
|
||||
J3DModelData *getModelData() const { return mModelData[0]; }
|
||||
J3DModel *getModel() const { return mModel[0]; }
|
||||
void setSimpleTevReg(u32 id) { mSimpleTevReg |= (1 << id); }
|
||||
void simpleDraw(u32 viewNo) { simpleDraw(viewNo, nullptr, 1); }
|
||||
|
||||
|
@ -85,39 +85,37 @@ public:
|
||||
}
|
||||
|
||||
//private:
|
||||
bool mIsTinyProcess;
|
||||
bool mIsLanMode;
|
||||
bool mIsTrueEnding;
|
||||
u32 mRandomSeed;
|
||||
ERaceMode mRaceMode;
|
||||
ERaceGpCup mGpCup;
|
||||
ERaceLevel mRaceLevel;
|
||||
int mItemSlotType; // perhaps this is an enum too
|
||||
s16 mVsLapNum;
|
||||
s16 mLapNumLAN;
|
||||
s16 mKartNum;
|
||||
s16 mPlayerNum;
|
||||
s16 mConsoleNum;
|
||||
s16 mStatusNum;
|
||||
u16 mLOD;
|
||||
s16 mGpStageNo;
|
||||
int mDemoType;
|
||||
bool mIsMirror;
|
||||
// padding bytes
|
||||
KartInfo mKartInfo[8];
|
||||
s16 mStartPosIndex[8];
|
||||
s16 mPointTable[8];
|
||||
s16 mRivalKarts[2];
|
||||
s16 mTargetKarts[4];
|
||||
bool mIsDemoKart[4];
|
||||
s16 mAwardKartNo;
|
||||
// padding bytes
|
||||
int mDemoNextPhase;
|
||||
s16 mRank[8]; // stores what rank you finished at previous race, basically the same as startPosIndex
|
||||
RaceTime mFinishTime[8];
|
||||
RaceTime mLapTimes[8][10];
|
||||
int mWaitDemoResult;
|
||||
u16 mHidingConsoles;
|
||||
bool mIsTinyProcess; // 000
|
||||
bool mIsLanMode; // 001
|
||||
bool mIsTrueEnding; // 002
|
||||
u32 mRandomSeed; // 004
|
||||
ERaceMode mRaceMode; // 008
|
||||
ERaceGpCup mGpCup; // 00C
|
||||
ERaceLevel mRaceLevel; // 010
|
||||
int mItemSlotType; // 014 perhaps this is an enum too
|
||||
s16 mVsLapNum; // 018
|
||||
s16 mLapNumLAN; // 01A
|
||||
s16 mKartNum; // 01C
|
||||
s16 mPlayerNum; // 01E
|
||||
s16 mConsoleNum; // 020
|
||||
s16 mStatusNum; // 022
|
||||
u16 mLOD; // 024
|
||||
s16 mGpStageNo; // 026
|
||||
int mDemoType; // 028
|
||||
bool mIsMirror; // 02C
|
||||
KartInfo mKartInfo[8]; // 030
|
||||
s16 mStartPosIndex[8]; // 0F0
|
||||
s16 mPointTable[8]; // 100
|
||||
s16 mRivalKarts[2]; // 110
|
||||
s16 mTargetKarts[4]; // 114
|
||||
bool mIsDemoKart[4]; // 11C
|
||||
s16 mAwardKartNo; // 120
|
||||
int mDemoNextPhase; // 124
|
||||
s16 mRank[8]; // 128, stores what rank you finished at previous race, basically the same as startPosIndex
|
||||
RaceTime mFinishTime[8]; // 138
|
||||
RaceTime mLapTimes[8][10]; // 158
|
||||
int mWaitDemoResult; // 298
|
||||
u16 mHidingConsoles; // 29c
|
||||
};
|
||||
|
||||
extern RaceInfo gRaceInfo;
|
||||
|
@ -135,7 +135,9 @@ public:
|
||||
int getKartNumber() const { return mRaceInfo->getKartNumber(); }
|
||||
int getAwardKartNo() const { return mRaceInfo->getAwardKartNo(); }
|
||||
int getConsoleNumber() const { return mRaceInfo->getConsoleNumber(); }
|
||||
int getItemSlotType() const { return mRaceInfo->getItemSlotType(); }
|
||||
int getStatusNumber() const { return mRaceInfo->getStatusNumber(); }
|
||||
ERaceLevel getRaceLevel() const { return mRaceInfo->getRaceLevel(); }
|
||||
// why did this not use a getter?
|
||||
ERaceMode getRaceMode() const { return mRaceInfo->mRaceMode; }
|
||||
|
||||
@ -166,6 +168,7 @@ public:
|
||||
|
||||
bool isCrsDemoMode() { return getRacePhase() == PHASE_CRS_DEMO; }
|
||||
// RaceMgr get/sets
|
||||
u32 getRaceFrame() const { return mFrame; }
|
||||
int getTotalLapNumber() const { return mTotalLapNumber; }
|
||||
Course *getCourse() const { return mCourse; }
|
||||
const RaceTime &getBestLapTime() { return mBestLapTime; }
|
||||
|
@ -76,8 +76,10 @@ private:
|
||||
static JUtility::TColor cUserBarColorTable[4]; // 0x803780c0
|
||||
static SysDebug *sManager;
|
||||
|
||||
u8 _0[0xb8];
|
||||
JKRHeap *mDebugHeap;
|
||||
u8 _0[0xb4];
|
||||
JKRHeap *mDebugHeap; // b4
|
||||
JKRHeap *mBackupHeap; // b8, a backup of the previous current heap
|
||||
JKRHeap *mSelectedHeap; // bc, the heap the user is currently looking at
|
||||
};
|
||||
|
||||
// Make macro for every function? or is that too ridiculous
|
||||
|
@ -22,13 +22,24 @@ public:
|
||||
static void createMgr(const CrsData &crsData) { gMgr = new GeographyObjManager(crsData); }
|
||||
static GeographyObjManager *getGeographyObjManager() { return gMgr; }
|
||||
|
||||
bool isMiniGame() const { return mIsBalloonBattle || mIsBombBattle || mIsRobberyBattle || mIsEscapeBattle; }
|
||||
bool isRobberBattle() const { return mIsRobberyBattle; }
|
||||
bool isBalloonBattle() const { return mIsBalloonBattle; }
|
||||
bool isEscapeBattle() const { return mIsEscapeBattle; }
|
||||
bool isBombBattle() const { return mIsBombBattle; }
|
||||
|
||||
static GeographyObjManager *gMgr;
|
||||
|
||||
u8 _18[0x2A8 - 0x18]; //
|
||||
f32 mHitDepth[8]; // 2A8
|
||||
u8 _328[0x3FC - 0x2C8]; //
|
||||
TJugem *mJugem[4]; // 3FC
|
||||
u8 _40C[0x4A4 - 0x40C]; //
|
||||
u8 _40C[0x491 - 0x40C]; //
|
||||
bool mIsBalloonBattle; // 491
|
||||
bool mIsBombBattle; // 492
|
||||
bool mIsRobberyBattle; // 493
|
||||
bool mIsEscapeBattle; // 494
|
||||
u8 _495[0x4A4 - 0x495]; //
|
||||
|
||||
}; // size 0x4A4
|
||||
|
||||
|
109
include/Sato/ItemBanana.h
Normal file
109
include/Sato/ItemBanana.h
Normal file
@ -0,0 +1,109 @@
|
||||
#ifndef ITEMBANANA_H
|
||||
#define ITEMBANANA_H
|
||||
|
||||
#include "Sato/ItemObj.h"
|
||||
|
||||
// TODO: virtual functions
|
||||
|
||||
class ItemBanana : public ItemObj
|
||||
{ // Autogenerated
|
||||
public:
|
||||
ItemBanana(u32); // 0x8025186c
|
||||
void reset(); // 0x8025190c
|
||||
const char *getBmdFileName(); // 0x802519e8
|
||||
static void loadAnmData(J3DModelData *); // 0x80251a10
|
||||
void createModel(JKRSolidHeap *, u32, u32); // 0x80251a88
|
||||
void getBckName(int); // 0x80251bf4
|
||||
void update(); // 0x80251c40
|
||||
void doUniv(); // 0x80251c88
|
||||
void checkAnmState(); // 0x80251d98
|
||||
void initEquip(); // 0x80252110
|
||||
void doEquip(); // 0x802521ac
|
||||
void initRelease(); // 0x802521d4
|
||||
void doRelease(); // 0x802523dc
|
||||
void initSpRelease(); // 0x80252478
|
||||
void doSpRelease(); // 0x80252590
|
||||
void initDisappear(); // 0x80252768
|
||||
void doDisappear(); // 0x802528dc
|
||||
void doFall(); // 0x802529b4
|
||||
void moveNormal(CrsGround &); // 0x80252a10
|
||||
void getItemBoundRatio() const; // 0x80252b6c
|
||||
void setAllUseBoundsScale(); // 0x80252b74
|
||||
void setAllUseInitReleaseVelMag(); // 0x80252ba4
|
||||
void checkKartColDisappear(int); // 0x80252bbc
|
||||
void initOccur(const JGeometry::TVec3f &, const JGeometry::TVec3f &); // 0x80252bec
|
||||
void doSound(u32); // 0x80252c24
|
||||
|
||||
static J3DAnmObjTrans *mAnmTrans[3]; // 0x803a05d8
|
||||
static J3DAnmTransform *mAnmCalc[3]; // 0x803a05e4
|
||||
static Vec sHandOffsetPos; // 0x804118ec
|
||||
// Inline/Unused
|
||||
// void setInitReleaseParam();
|
||||
// void getBckName(int);
|
||||
// void getBtkName();
|
||||
// Inline
|
||||
void calcBaseRotQt(); // 0x80252470
|
||||
virtual ~ItemBanana(); // 0x80252cf0
|
||||
u32 getModelDataAppendLoadFlg(); // 0x80254938
|
||||
void createColModel(J3DModelData *); // 0x80254a60
|
||||
|
||||
u8 _[0x2cc - 0x2b0];
|
||||
}; // class ItemBanana
|
||||
|
||||
class ItemBananaBig : public ItemBanana
|
||||
{
|
||||
public:
|
||||
ItemBananaBig(u32);
|
||||
void reset();
|
||||
const char *getBmdFileName();
|
||||
static void loadAnmData(J3DModelData *);
|
||||
void createModel(JKRSolidHeap *, u32, u32);
|
||||
void doUniv();
|
||||
void initEquip();
|
||||
void callHitItemSound(ItemObj *);
|
||||
void calcColReaction(ItemObj *);
|
||||
void initDisappear();
|
||||
|
||||
// static J3DAnmObjTrans *mAnmTrans[3];
|
||||
// static J3DAnmTransform *mAnmCalc[3];
|
||||
|
||||
virtual ~ItemBananaBig() {} // 0x80254940
|
||||
};
|
||||
|
||||
class ItemFakeItemBox : public ItemBanana
|
||||
{
|
||||
public:
|
||||
ItemFakeItemBox(u32);
|
||||
void reset();
|
||||
const char *getBmdFileName();
|
||||
static void loadAnmData(J3DModelData *);
|
||||
void createModel(JKRSolidHeap *, u32, u32);
|
||||
void doUniv();
|
||||
void initEquip();
|
||||
void callHitItemSound(ItemObj *);
|
||||
void moveNormal(CrsGround &);
|
||||
void calcColReaction(ItemObj *);
|
||||
void initDisappear();
|
||||
void doDisappear();
|
||||
void calcBaseRotQt();
|
||||
void checkKartColDisappear(int);
|
||||
void createEfct(const JGeometry::TVec3f &);
|
||||
f32 getForceEfctOffsetScale() const;
|
||||
void initFall();
|
||||
|
||||
static J3DAnmTextureSRTKey *mAnmTex;
|
||||
static J3DAnmTexPattern *sTexPattern;
|
||||
|
||||
virtual ~ItemFakeItemBox() {} // 0x802547f8
|
||||
void createColModel(J3DModelData *) {} // 0x80254918
|
||||
|
||||
u8 _2b0[0x330 - 0x2cc];
|
||||
};
|
||||
|
||||
// Inline Functions referenced in TU:
|
||||
|
||||
// virtual AnmController::~AnmController() // AnmController.h; // 0x802518c4
|
||||
// void AnmControlTrans::changeAnm(u8, bool) // AnmControlTrans.h; // 0x8025202c
|
||||
// void TAnmControlBase<J3DAnmObjMatTexSRT>::frameProc() // TAnmControlBase.h; // 0x8025409c
|
||||
|
||||
#endif // ITEMBANANA_H
|
103
include/Sato/ItemBomb.h
Normal file
103
include/Sato/ItemBomb.h
Normal file
@ -0,0 +1,103 @@
|
||||
#ifndef ITEMBOMB_H
|
||||
#define ITEMBOMB_H
|
||||
#include "Sato/ItemSuccession.h"
|
||||
|
||||
// TODO: virtual and static functions
|
||||
|
||||
class ItemBombBase // probably inherits ItemObj, and other classes inherit this
|
||||
{
|
||||
// Inline/Unused
|
||||
|
||||
ItemBombBase();
|
||||
void executeReset();
|
||||
void startBombEfct(const JGeometry::TPos3f &, u8);
|
||||
void execute_doDisappear(int);
|
||||
void executeKartColDisappear();
|
||||
};
|
||||
|
||||
class ItemBomb : public ItemObj
|
||||
{ // Autogenerated
|
||||
public:
|
||||
enum BombBck
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
ItemBomb(u32); // 0x8025b7b4
|
||||
void reset(); // 0x8025b9f0
|
||||
const char *getBmdFileName(); // 0x8025bbc0
|
||||
void createModel(JKRSolidHeap *, u32, u32); // 0x8025bbcc
|
||||
static void loadAnmData(J3DModelData *); // 0x8025bc90
|
||||
void getBckName(int); // 0x8025bd64
|
||||
void update(); // 0x8025bdb0
|
||||
void setAnimation(BombBck, int); // 0x8025bf68
|
||||
void deleteEffect(); // 0x8025bf7c
|
||||
void IsHitKart(int, const JGeometry::TVec3f &, f32); // 0x8025bfc0
|
||||
void doUniv(); // 0x8025c034
|
||||
void doScale(); // 0x8025c2d8
|
||||
void setSparkTranslation(); // 0x8025c3a8
|
||||
void calcColReaction(ItemObj *); // 0x8025c464
|
||||
void initEquip(); // 0x8025c46c
|
||||
void setMiniGameBombColor(); // 0x8025c4f4
|
||||
void doEquip(); // 0x8025c618
|
||||
void initRelease(); // 0x8025c668
|
||||
void doRelease(); // 0x8025c804
|
||||
void initSpRelease(); // 0x8025cb44
|
||||
void doSpRelease(); // 0x8025cd24
|
||||
void initDisappear(); // 0x8025cd50
|
||||
void doDisappear(); // 0x8025cf38
|
||||
void initFall(); // 0x8025d07c
|
||||
void initDivested(); // 0x8025d190
|
||||
void doFall(); // 0x8025d2b8
|
||||
void initOccur(const JGeometry::TVec3f &, const JGeometry::TVec3f &); // 0x8025d32c
|
||||
void initForceDisappear(); // 0x8025d39c
|
||||
void moveNormal(CrsGround &); // 0x8025d3dc
|
||||
void moveCannon(CrsGround &); // 0x8025d620
|
||||
void checkKartColDisappear(int); // 0x8025d670
|
||||
void setCurrentViewNo(u32); // 0x8025d690
|
||||
void createEffect(); // 0x8025d6f0
|
||||
void findAnyKart(); // 0x8025d760
|
||||
void getMaxBombReactFrame(); // 0x8025d7b8
|
||||
|
||||
static J3DAnmObjTrans *mAnmTrans[3]; // 0x803a0dfc
|
||||
static J3DAnmTransform *mAnmCalc[3]; // 0x803a0e08
|
||||
static J3DAnmColor *sColorAnm; // 0x803a0e14
|
||||
static Vec sHandOffsetPos; // 0x80411984
|
||||
static J3DAnmColor *sNowColorAnm; // 0x80416c18
|
||||
static int sLocatorJointNo; // 0x80416c1c
|
||||
// Inline/Unused
|
||||
|
||||
void doAnimation();
|
||||
void checkChangeAnimation();
|
||||
void initBlast();
|
||||
void checkBlast();
|
||||
void calcScale(f32, f32);
|
||||
void setInitReleaseParam(u8);
|
||||
void doCommonInitRelease(f32, f32, f32);
|
||||
// Inline
|
||||
virtual ~ItemBomb() {} // 0x8025d960
|
||||
void createColModel(J3DModelData *) {} // 0x8025daac
|
||||
|
||||
private:
|
||||
u8 _[0x318 - 0x2b0];
|
||||
|
||||
}; // class ItemBomb
|
||||
|
||||
// TODO
|
||||
class ItemBombSuc : public ItemObjSuc
|
||||
{
|
||||
public:
|
||||
ItemBombSuc(u32);
|
||||
void reset();
|
||||
virtual ~ItemBombSuc() {} // 0x8025d858
|
||||
|
||||
u8 _[0x300 - 0x2b0];
|
||||
};
|
||||
|
||||
// Inline Functions referenced in TU:
|
||||
|
||||
// virtual J3DAnmObjMatColor::~J3DAnmObjMatColor() // J3DAnmObjMatColor.h; // 0x8025b900
|
||||
// virtual J3DAnmObjMaterialBase<J3DAnmColor>::~J3DAnmObjMaterialBase() // J3DAnmObjMaterialBase.h; // 0x8025b980
|
||||
// void J3DAnmObjMaterialBase<J3DAnmColor>::anmFrameProc() // J3DAnmObjMaterialBase.h; // 0x8025bf58
|
||||
|
||||
#endif // ITEMBOMB_H
|
64
include/Sato/ItemFlyTurtle.h
Normal file
64
include/Sato/ItemFlyTurtle.h
Normal file
@ -0,0 +1,64 @@
|
||||
#ifndef ITEMFLYTURTLE_H
|
||||
#define ITEMFLYTURTLE_H
|
||||
|
||||
#include "Sato/ItemObj.h"
|
||||
|
||||
// TODO: virtual and static functions
|
||||
|
||||
class ItemFlyTurtle : public ItemObj
|
||||
{ // Autogenerated
|
||||
public:
|
||||
ItemFlyTurtle(u32); // 0x80279054
|
||||
void reset(); // 0x80279108
|
||||
const char *getBmdFileName(); // 0x80279264
|
||||
static void loadAnmData(J3DModelData *); // 0x8027928c
|
||||
void createModel(JKRSolidHeap *, u32, u32); // 0x80279328
|
||||
void createColModel(J3DModelData *); // 0x80279490
|
||||
void update(); // 0x802794b8
|
||||
void setCurrentViewNo(u32); // 0x80279500
|
||||
void doUniv(); // 0x80279564
|
||||
void initEquip(); // 0x802795e4
|
||||
void doEquip(); // 0x80279638
|
||||
void initRelease(); // 0x80279660
|
||||
void setInitReleaseParam(); // 0x80279944
|
||||
void doRelease(); // 0x802799a8
|
||||
void initForceDisappear(); // 0x80279a8c
|
||||
void deleteEffect(); // 0x80279acc
|
||||
void moveWait(); // 0x80279b10
|
||||
void moveFlying(); // 0x80279bec
|
||||
void moveSearchBack(); // 0x80279d38
|
||||
void moveSearch(); // 0x80279f4c
|
||||
void moveAttack(); // 0x8027a1a4
|
||||
void moveCommon(); // 0x8027a330
|
||||
void moveRescue(CrsGround &); // 0x8027a44c
|
||||
void find1StKartNo(); // 0x8027a4d0
|
||||
void chkSearchTargetKartRadius(); // 0x8027a808
|
||||
void chkIsBackTargetKartOffsetPos(); // 0x8027a8ec
|
||||
void moveNormal(CrsGround &); // 0x8027aa10
|
||||
void moveColWall(CrsGround &); // 0x8027ac4c
|
||||
void moveCannon(CrsGround &); // 0x8027adfc
|
||||
void initDisappear(); // 0x8027ae28
|
||||
void doDisappear(); // 0x8027af08
|
||||
void initFall(); // 0x8027afdc
|
||||
void calcNowHeight(); // 0x8027affc
|
||||
|
||||
static Vec sHandOffsetPos; // 0x8041383c
|
||||
static J3DAnmObjTrans *mAnmTrans[3]; // 0x80414f64
|
||||
static J3DAnmTransform *mAnmCalc[3]; // 0x80414f6c
|
||||
// Inline/Unused
|
||||
// void getBckName(int);
|
||||
// Inline
|
||||
virtual ~ItemFlyTurtle() {} // 0x8027b820
|
||||
int getLockOnKartNo() const; // 0x8027b930
|
||||
void initSpRelease(); // 0x8027b938
|
||||
void doSpRelease(); // 0x8027b964
|
||||
|
||||
u8 _[0x354 - 0x2b0];
|
||||
}; // class ItemFlyTurtle
|
||||
|
||||
// Inline Functions referenced in TU:
|
||||
|
||||
// void CLPointControllerFlyTurtle::CLPointControllerFlyTurtle();
|
||||
// void CLPointControllerFlyTurtle::findNextPointNo(CLPoint *);
|
||||
// void CLPointControllerFlyTurtle::recursiveTargetCalcBack(CLPoint *, int, int *, unsigned char *, bool *);
|
||||
#endif // ITEMFLYTURTLE_H
|
33
include/Sato/ItemHeart.h
Normal file
33
include/Sato/ItemHeart.h
Normal file
@ -0,0 +1,33 @@
|
||||
#ifndef ITEMHEART_H
|
||||
#define ITEMHEART_H
|
||||
|
||||
#include "Sato/ItemObj.h"
|
||||
|
||||
class ItemHeart : public ItemObj
|
||||
{
|
||||
public:
|
||||
ItemHeart(u32); // 0x8028717c
|
||||
void reset(); // 0x802871cc
|
||||
const char *getBmdFileName(); // 0x80287288
|
||||
void createModel(JKRSolidHeap *, u32, u32); // 0x80287294
|
||||
void doUniv(); // 0x80287298
|
||||
void setHitItem(const ItemObj &); // 0x80287344
|
||||
void initMoveEffect(ItemObj *); // 0x802874f0
|
||||
void initEquip(); // 0x802875bc
|
||||
void doEquip(); // 0x80287640
|
||||
void initRelease(); // 0x8028770c
|
||||
void initSpRelease(); // 0x802877c4
|
||||
void doRelease(); // 0x802877e8
|
||||
void initDisappear(); // 0x80287818
|
||||
void doDisappear(); // 0x802878b0
|
||||
void initFall(); // 0x802878b4
|
||||
// Inline
|
||||
virtual ~ItemHeart() {} // 0x802878d4
|
||||
|
||||
bool hasHeartsRemaining() const { return !mNoHeartsRemaining; }
|
||||
|
||||
u8 _2b4[0x2f4 - 0x2b0];
|
||||
bool mNoHeartsRemaining;
|
||||
|
||||
}; // 2f8
|
||||
#endif // ITEMHEART_H
|
57
include/Sato/ItemKinoko.h
Normal file
57
include/Sato/ItemKinoko.h
Normal file
@ -0,0 +1,57 @@
|
||||
#ifndef ITEMKINOKO_H
|
||||
#define ITEMKINOKO_H
|
||||
|
||||
#include "Sato/ItemSuccession.h"
|
||||
|
||||
class ItemKinokoSuc : public ItemObjSuc
|
||||
{
|
||||
public:
|
||||
ItemKinokoSuc(u32);
|
||||
void reset();
|
||||
virtual ~ItemKinokoSuc() {} // 0x80255744
|
||||
|
||||
u8 _2b0[0x300 - 0x2b0];
|
||||
};
|
||||
|
||||
class ItemKinoko : public ItemObj
|
||||
{ // Autogenerated
|
||||
public:
|
||||
ItemKinoko(u32); // 0x80254ec4
|
||||
void reset(); // 0x80254f74
|
||||
const char *getBmdFileName(); // 0x80254fd8
|
||||
void createModel(JKRSolidHeap *, u32, u32); // 0x80255000
|
||||
void doUniv(); // 0x80255004
|
||||
void initEquip(); // 0x802550b0
|
||||
void doEquip(); // 0x802551ac
|
||||
void initRelease(); // 0x802551d8
|
||||
void doRelease(); // 0x802551fc
|
||||
void initDisappear(); // 0x80255200
|
||||
void doDisappear(); // 0x80255218
|
||||
void initFall(); // 0x8025521c
|
||||
void executeEquipHandFunc(); // 0x80255258
|
||||
// Inline
|
||||
virtual ~ItemKinoko() {} // 0x8025538c
|
||||
|
||||
u8 _[0x2b4 - 0x2b0];
|
||||
}; // class ItemKinoko
|
||||
|
||||
class ItemGoldenKinoko : public ItemKinoko
|
||||
{
|
||||
public:
|
||||
ItemGoldenKinoko(u32);
|
||||
|
||||
void reset();
|
||||
const char *getBmdFileName();
|
||||
static void loadAnmData(J3DModelData *);
|
||||
void createModel(JKRSolidHeap *, u32, u32);
|
||||
void doUniv();
|
||||
void initRelease();
|
||||
void doRelease();
|
||||
void initDisappear();
|
||||
void update();
|
||||
|
||||
virtual ~ItemGoldenKinoko() {} // 0x8025584c
|
||||
void executeEquipHandFunc() {} // 0x80255954
|
||||
};
|
||||
|
||||
#endif // ITEMKINOKO_H
|
@ -1,31 +1,301 @@
|
||||
#ifndef ITEMOBJ_H
|
||||
#define ITEMOBJ_H
|
||||
|
||||
#include <JSystem/JGeometry.h>
|
||||
#include "Kaneshige/Course/CrsGround.h"
|
||||
#include "Osako/shadowModel.h"
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class ItemObj {
|
||||
// TODO: inlines getters, setters
|
||||
|
||||
class ObjColBase;
|
||||
|
||||
class ItemObj
|
||||
{
|
||||
public:
|
||||
enum ItemState
|
||||
{
|
||||
State0,
|
||||
StateEquip, // 1
|
||||
State2,
|
||||
State3,
|
||||
State4,
|
||||
StateDivested, // 5
|
||||
|
||||
int getOwnerNum() const {
|
||||
return mOwnerNum;
|
||||
}
|
||||
};
|
||||
|
||||
int getKartReaction() const {
|
||||
return mKartReaction;
|
||||
}
|
||||
enum ItemColFlag
|
||||
{
|
||||
|
||||
int getDirectHitKartNo() const {
|
||||
return mDirectHitKartNo;
|
||||
}
|
||||
};
|
||||
|
||||
private:
|
||||
u8 _0[0x120];
|
||||
int mOwnerNum;
|
||||
u8 _0x124[0x140 - 0x124];
|
||||
int mKartReaction; // probably an enum
|
||||
u8 _0x144[0x28c - 0x144];
|
||||
int mDirectHitKartNo;
|
||||
enum cMultiType
|
||||
{
|
||||
cMultiType_0,
|
||||
cMultiType_1,
|
||||
};
|
||||
|
||||
};
|
||||
struct ItemHandOffsetData
|
||||
{
|
||||
f32 _0;
|
||||
f32 _4;
|
||||
f32 _8;
|
||||
u16 _c[0x4];
|
||||
};
|
||||
|
||||
ItemObj(u32); // 0x8024a2b0
|
||||
|
||||
// Vtable 0x0
|
||||
virtual ~ItemObj() {} // 08
|
||||
virtual void calc(); // 0C
|
||||
virtual void reset(); // 10
|
||||
virtual void update(); // 14
|
||||
virtual void viewCalc(u32); // 18
|
||||
virtual void setCurrentViewNo(u32); // 1C
|
||||
virtual void drawSimpleModel(u32, f32 (*)[4], J3DUClipper *, f32 (*)[4]); // 20
|
||||
virtual void calcColReaction(ItemObj *); // 24
|
||||
virtual const char *getBmdFileName(); // 28
|
||||
virtual u32 getModelDataAppendLoadFlg() { return 0; } // 2C
|
||||
virtual void callHitItemSound(ItemObj *); // 30
|
||||
virtual int getLockOnKartNo() const { return -1; } // 34
|
||||
virtual void IsJuggleItem() const; // 38
|
||||
virtual f32 getForceEfctOffsetScale() const { return 1.0f; } // 3C
|
||||
virtual void createModel(JKRSolidHeap *, u32, u32); // 40
|
||||
virtual void createColModel(J3DModelData *); // 44
|
||||
virtual void setCollideAddVel(const JGeometry::TVec3f &, const f32 &); // 48
|
||||
virtual void getItemBoundRatio() const; // 4C
|
||||
virtual void doUniv(); // 50
|
||||
virtual void initEquip() {} // 54
|
||||
virtual void initRelease() {} // 58
|
||||
virtual void initSpRelease() {} // 5C
|
||||
virtual void initDisappear() {} // 60
|
||||
virtual void initFall(); // 64
|
||||
virtual void initDivested() { initmoveDivested(); } // 68
|
||||
virtual void initOccur(const JGeometry::TVec3f &, const JGeometry::TVec3f &); // 6C
|
||||
virtual void initForceDisappear(); // 70
|
||||
virtual void initEnd() {} // 74
|
||||
virtual void doEquip() { doHandOneEquip(false, 0.0f); } // 78
|
||||
virtual void doRelease() {} // 7C
|
||||
virtual void doSpRelease() {} // 80
|
||||
virtual void doDisappear() {} // 84
|
||||
virtual void doFall(); // 88
|
||||
virtual void doDivested() { moveDivested(); } // 8C
|
||||
virtual void doForceDisappear(); // 90
|
||||
virtual void initCommonMoveFallMtx(); // 94
|
||||
virtual void moveColWall(CrsGround &); // 98
|
||||
virtual void moveNormal(CrsGround &) {} // 9C
|
||||
virtual void moveRescue(CrsGround &); // A0
|
||||
virtual void moveCannon(CrsGround &); // A4
|
||||
virtual void deleteEffect(); // A8
|
||||
virtual void executeEquipHandFunc() { doHandOneEquip(false, 0.0f); } // AC
|
||||
virtual void checkKartColDisappear(int); // B0
|
||||
virtual void selectSucChild(); // B4
|
||||
virtual void doSucReleaseFunc(ItemObj *); // B8
|
||||
virtual void doSucSpReleaseFunc(ItemObj *); // BC
|
||||
virtual void IsHitKart(int, const JGeometry::TVec3f &, f32); // C0
|
||||
virtual void IsHitObject(ObjColBase *, const JGeometry::TVec3f &, ObjColBase *); // C4
|
||||
virtual void executeGeoObjHitCallBack(GeographyObj *); // C8
|
||||
|
||||
void loadmodel(J3DModelData *); // 0x8024a4a4
|
||||
void initHeartDisappear(); // 0x8024a7c8
|
||||
static const char *getShadowBmdFileName(u8); // 0x8024a868
|
||||
void loadshadowmodel(J3DModelData *); // 0x8024a8a4
|
||||
void doStateUniv(); // 0x8024a930
|
||||
void doDeleteList(); // 0x8024a958
|
||||
void setStateEquip(bool, bool); // 0x8024a9a4
|
||||
void setStateHeartWaiting(u8); // 0x8024ab6c
|
||||
void setStateRelease(bool); // 0x8024ac04
|
||||
void setStateSpRelease(bool); // 0x8024ace4
|
||||
void setStateFall(bool); // 0x8024ada4
|
||||
void setStateOccur(const JGeometry::TVec3f &, const JGeometry::TVec3f &); // 0x8024aed0
|
||||
void setStateDivested(bool); // 0x8024af94
|
||||
void setStateDisappear(bool); // 0x8024b33c
|
||||
void setStateForceDisappear(); // 0x8024b428
|
||||
void tstAnyObjectHitting(); // 0x8024b4ec
|
||||
void doSucStateFunc(ItemState); // 0x8024b52c
|
||||
void disappearAllChild(bool); // 0x8024bd50
|
||||
int getSuccessionItemNum(); // 0x8024bebc
|
||||
void setChildStateRelease(); // 0x8024bed8
|
||||
void setChildStateSpRelease(); // 0x8024befc
|
||||
void setChildStateFall(); // 0x8024bf20
|
||||
void setChildStateForceDisappear(); // 0x8024bf44
|
||||
void calcDarkRatio(); // 0x8024c194
|
||||
void checkPriorityNormal(); // 0x8024c2bc
|
||||
void checkPrioritySpecial(); // 0x8024c348
|
||||
void createSoundMgr(); // 0x8024c458
|
||||
void createBoundSphere(J3DModelData *); // 0x8024c4b0
|
||||
void createBoundSphere(f32, f32); // 0x8024c52c
|
||||
void createBoundCylinder(J3DModelData *); // 0x8024c59c
|
||||
void getVelStickXThrow(JGeometry::TVec3f *, f32, f32); // 0x8024c624
|
||||
void createShadowModel(JKRSolidHeap *, u32, u32); // 0x8024c708
|
||||
void setModelMatrixAndScale(Quaternion); // 0x8024c7c0
|
||||
void setModelMatrixAndScale(f32 (*)[4]); // 0x8024c868
|
||||
void setScaleCol(f32); // 0x8024c914
|
||||
void resetObject(); // 0x8024c934
|
||||
void resetNoColParam(); // 0x8024cbe0
|
||||
void clearAllFlg(); // 0x8024cbf8
|
||||
void chkSetFlgByKind(); // 0x8024cc2c
|
||||
void getModelLfDir(JGeometry::TVec3f *); // 0x8024cc9c
|
||||
void getModelUpDir(JGeometry::TVec3f *); // 0x8024ccb8
|
||||
void getModelFrDir(JGeometry::TVec3f *); // 0x8024ccd4
|
||||
void rotationRad(f32 &, f32); // 0x8024ccf0
|
||||
void QuatRotX(f32, Quaternion *); // 0x8024cd40
|
||||
void QuatRotY(f32, Quaternion *); // 0x8024cd84
|
||||
void IsSpecialItem(int); // 0x8024cdc8
|
||||
void getCompVecLength(JGeometry::TVec3f &, f32 &); // 0x8024cdf8
|
||||
void setFrameNoColKart(u8, bool); // 0x8024ced0
|
||||
void doFrameNoColKart(); // 0x8024cfa0
|
||||
void calcColPos(); // 0x8024d12c
|
||||
void checkStartColItemFrame(u32); // 0x8024d34c
|
||||
void doHandOneEquip(bool, f32); // 0x8024d368
|
||||
void doPosLerp(JGeometry::TVec3f *, const JGeometry::TVec3f &, f32); // 0x8024d5c4
|
||||
void doRotationLerp(JGeometry::TPos3f *, f32 (*)[4], f32); // 0x8024d6a4
|
||||
void doEquipScaleUp(f32); // 0x8024d72c
|
||||
void executeEquipScaleUp(u32, f32); // 0x8024d7ec
|
||||
void doForceDisappearScaleDown(); // 0x8024d870
|
||||
void calcEquipAnmScaleUp(JGeometry::TVec3f &, u32); // 0x8024d8d0
|
||||
void calcForceDisappearScaleDown(JGeometry::TVec3f &, u32); // 0x8024d948
|
||||
void doReflectGeoObj(GeographyObj *, f32); // 0x8024d9b4
|
||||
void doMovePos(); // 0x8024dd7c
|
||||
void doGeoObjectCol(GeographyObj *); // 0x8024ddb4
|
||||
void initmoveDivested(); // 0x8024df9c
|
||||
void moveDivested(); // 0x8024e040
|
||||
void initmoveFall(); // 0x8024e228
|
||||
void initCommonMoveFall(const JGeometry::TVec3f &); // 0x8024e3c4
|
||||
void moveFall(); // 0x8024e558
|
||||
void doHeartWaiting(); // 0x8024e880
|
||||
void doFallScaling(); // 0x8024e8dc
|
||||
void colItemReflect(ItemObj *, ItemObj *, ItemColFlag, ItemColFlag); // 0x8024e93c
|
||||
void doColMoveReflect(JGeometry::TVec3f, f32); // 0x8024eba8
|
||||
void doColMoveReflectAndStopDisappear(JGeometry::TVec3f, f32); // 0x8024ecdc
|
||||
void doColMoveJumpDown(JGeometry::TVec3f, f32); // 0x8024ef28
|
||||
void doColMoveReflectJumpDownAndDisappear(JGeometry::TVec3f, f32); // 0x8024ef64
|
||||
void doColMoveCommonJumpAndReflect(JGeometry::TVec3f, f32, bool); // 0x8024f0d4
|
||||
void getHandAnmMtx(); // 0x8024f3f8
|
||||
void getJuggleHandAnmMtx(); // 0x8024f4fc
|
||||
void IsAlwaysColItemToKart(); // 0x8024f600
|
||||
void initMoveColGround(); // 0x8024f628
|
||||
void doMoveColGround(Quaternion *, bool); // 0x8024f654
|
||||
void moveCommonAttr(CrsGround &, bool); // 0x8024fa7c
|
||||
void simpleDraw(u32, f32 (*)[4], u32); // 0x8025019c
|
||||
void setMultiType(cMultiType); // 0x802501f8
|
||||
static cMultiType getCharaMultiType(int, u8); // 0x80250224
|
||||
void doMoveGndParallel(const JGeometry::TVec3f &, f32); // 0x80250364
|
||||
void initThrowVel(f32, f32, f32); // 0x802505f4
|
||||
void setInitThrowDir(JGeometry::TVec3f *, f32, bool); // 0x8025098c
|
||||
void setVelUpDown(f32, f32); // 0x80250a50
|
||||
void setVelMax(); // 0x80250b1c
|
||||
void calcVelUpDown(f32); // 0x80250b78
|
||||
void calcGndNormal(JGeometry::TVec3f *, CrsGround &, f32, f32); // 0x80250c44
|
||||
void calcBananaFirstQuat(const JGeometry::TVec3f &); // 0x80250d48
|
||||
void calcScale(f32, f32, f32); // 0x80250e98
|
||||
void calcAllUseInitVel(u8, f32); // 0x8025117c
|
||||
void callHitKartSound(int); // 0x80251260
|
||||
void getSpecialKind(const int &, const u8 &); // 0x802512dc
|
||||
void getItemRnd(); // 0x8025146c
|
||||
void setHandOffsetData(); // 0x80251490
|
||||
void setHandOffsetPos(ItemHandOffsetData *); // 0x80251588
|
||||
void getHandOffsetPos(); // 0x802515ac
|
||||
void getThunderScale(); // 0x802515e4
|
||||
void initMaxDivestedFrame(); // 0x802516bc
|
||||
|
||||
static f32 sDivestedGravity; // 0x80414af8
|
||||
static u8 sDivestedFrame; // 0x80414afc
|
||||
static u8 sTransferFrame; // 0x80414afd
|
||||
static f32 sFrontEquipScaleRatio; // 0x80414b00
|
||||
|
||||
void setOwnerNum(int newOwnerNum) { mOwnerNum = newOwnerNum; }
|
||||
int getOwnerNum() const { return mOwnerNum; }
|
||||
void setOrigOwnerNum(int newOwnerNum) { mOrigOwnerNum = newOwnerNum; }
|
||||
int getState() const { return mState; }
|
||||
int getKartReaction() const { return mKartReaction; }
|
||||
int getDirectHitKartNo() const { return mDirectHitKartNo; }
|
||||
u8 getDriverNum() const { return mDriverNum; }
|
||||
void setDriverNum(u8 newDriverNum) { mDriverNum = newDriverNum; }
|
||||
void setOrigDriverNum(u8 newDriverNum) { mOrigDriverNum = newDriverNum; }
|
||||
u32 getKind() const { return mItemKind; }
|
||||
u32 getItemID() const
|
||||
{
|
||||
if (mItemKind == 21)
|
||||
return 9;
|
||||
return mItemKind;
|
||||
}
|
||||
|
||||
void clrTransferPartner() { mTransferFlags &= ~0x200; }
|
||||
void setTransferPartner() { mTransferFlags |= 0x200; }
|
||||
|
||||
// Inline/Unused
|
||||
void combMtxOn();
|
||||
void combMtxOff();
|
||||
void getVelStickYThrow(JGeometry::TVec3f *, f32, f32);
|
||||
void getVelStickXYThrow(JGeometry::TVec3f *, f32, f32);
|
||||
void setModelMatrixAndScale();
|
||||
void setAnmScaleCol(f32, JGeometry::TVec3f);
|
||||
void QuatRotZ(f32, Quaternion *);
|
||||
void getReflectVec(JGeometry::TVec3f, JGeometry::TVec3f, JGeometry::TVec3f *);
|
||||
void doReflectItemObj(ItemObj *);
|
||||
void setInitFallCommonFlg(const JGeometry::TVec3f &);
|
||||
void chkIsAvailableColDisappear();
|
||||
void checkIsHitBack(JGeometry::TVec3f, int);
|
||||
void checkVelYMax(f32);
|
||||
void moveOnNormalFall(CrsGround &);
|
||||
// static f32 sDivPosLerpValue;
|
||||
|
||||
// Inline
|
||||
bool IsSuccessionItem() { return mItemKind > 0x10; } // 0x8024b30c
|
||||
bool IsSuccessionChildItem() { return mSuccessionItemLink.getList() != 0; } // 0x8024b324
|
||||
void doOccur() { doFall(); } // 0x8024af68, ptmf shit
|
||||
|
||||
// private:
|
||||
|
||||
JGeometry::TVec3f mPos; // 04
|
||||
JGeometry::TVec3f _10; //
|
||||
JGeometry::TVec3f _1c; //
|
||||
f32 _28; //
|
||||
f32 _2c; //
|
||||
f32 _30; //
|
||||
Quaternion _34; //
|
||||
Quaternion _44; //
|
||||
f32 _54; //
|
||||
JGeometry::TVec3f mDisScaleAnm; // 58
|
||||
f32 mEquipScale; // 64
|
||||
u8 _68[0x70 - 0x68]; //
|
||||
JGeometry::TVec3f mVel; // 70
|
||||
u32 mItemKind; // 7c
|
||||
ExModel mModel; // 80
|
||||
ShadowModel *mShadow; // 10c
|
||||
int mBounds; // 110, unsure of type
|
||||
u8 _114[0x118 - 0x114]; //
|
||||
int mState; // 118
|
||||
u8 _11c[0x120 - 0x11c]; //
|
||||
int mOwnerNum; // 120
|
||||
u8 mDriverNum; // 124
|
||||
u8 _125[0x12c - 0x125]; //
|
||||
u32 _12c; //
|
||||
u16 mTransferFlags; // 130
|
||||
u8 _132[0x140 - 0x132]; //
|
||||
int mKartReaction; // 140 probably an enum
|
||||
u8 _144[0x150 - 0x144]; //
|
||||
JSULink<ItemObj> _150; // 150
|
||||
JSULink<ItemObj> _160; // 160
|
||||
JSULink<ItemObj> _170; // 170
|
||||
JSULink<ItemObj> _180; // 180
|
||||
JSULink<ItemObj> mMiniGameLink; // 190
|
||||
u32 mSucKind; // 1a0
|
||||
JSUList<ItemObj> _1a4; // 1a4
|
||||
JSULink<ItemObj> mSuccessionItemLink; // 1b0
|
||||
ItemObj *_1c0; // 1c0, probably ItemObjSuc
|
||||
int mOrigOwnerNum; // 1c4
|
||||
u8 mOrigDriverNum; // 1c8
|
||||
u8 _1c9[0x1fc - 0x1c9]; //
|
||||
u8 _1fc; //
|
||||
u8 _1fd[0x24c - 0x1fd]; //
|
||||
u8 _24c; //
|
||||
u8 _24d[0x28c - 0x24d]; //
|
||||
int mDirectHitKartNo; // 28c
|
||||
u8 _290[0x2b0 - 0x290]; //
|
||||
|
||||
}; // 2b0
|
||||
|
||||
#endif
|
@ -1,47 +1,16 @@
|
||||
#ifndef ITEMOBJMGR_H
|
||||
#define ITEMOBJMGR_H
|
||||
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "Kaneshige/SysDebug.h"
|
||||
#include "Sato/GeographyObjMgr.h"
|
||||
#include "Sato/ItemSuccession.h"
|
||||
#include "Sato/ItemHeart.h"
|
||||
#include "types.h"
|
||||
|
||||
class ItemObjMgr
|
||||
{
|
||||
public:
|
||||
ItemObjMgr();
|
||||
virtual ~ItemObjMgr();
|
||||
virtual void draw();
|
||||
virtual void callbackColGeoObj();
|
||||
|
||||
static void createMgr() { gItemMgr = new ItemObjMgr(); }
|
||||
|
||||
void calc();
|
||||
void createModel(JKRSolidHeap *, u32);
|
||||
void reset();
|
||||
|
||||
void clrKartItemUseTriggerList();
|
||||
|
||||
int getRobberyItemNum(int, u8);
|
||||
|
||||
static ItemObjMgr *getItemObjMgr() { return gItemMgr; }
|
||||
|
||||
static ItemObjMgr *gItemMgr;
|
||||
|
||||
static bool sTempSlotUseItem[18];
|
||||
static int sTempSpecialRatio[9];
|
||||
|
||||
private:
|
||||
unsigned char _0x4[0x828 - 0x4];
|
||||
};
|
||||
|
||||
inline ItemObjMgr *GetItemObjMgr()
|
||||
{
|
||||
return ItemObjMgr::getItemObjMgr();
|
||||
}
|
||||
|
||||
class ItemShuffleMgr
|
||||
{
|
||||
public:
|
||||
struct SlotTable
|
||||
struct SlotTable // fabricated struct, unknown if used currently
|
||||
{
|
||||
u8 chance[27];
|
||||
u8 total; // i don't know wheter or not this is used but 1 byte is not always enough to store this
|
||||
@ -50,64 +19,369 @@ public:
|
||||
class KartSlotList
|
||||
{
|
||||
public:
|
||||
KartSlotList();
|
||||
SlotTable *slotTable[2];
|
||||
KartSlotList()
|
||||
{
|
||||
slotTable[0] = nullptr;
|
||||
slotTable[1] = nullptr;
|
||||
}
|
||||
u8 *slotTable[2];
|
||||
};
|
||||
|
||||
struct KartSlotData
|
||||
{
|
||||
u8 kartCount;
|
||||
u8 useableSlots;
|
||||
u8 totalSlots;
|
||||
KartSlotList *mList;
|
||||
u8 kartCount; // 0
|
||||
u8 useableSlots; // 1
|
||||
u8 totalSlots; // 2
|
||||
KartSlotList *mList; // 4
|
||||
};
|
||||
|
||||
struct KartSlotRankDataSet
|
||||
{
|
||||
KartSlotData *data;
|
||||
u32 specialItemIndex;
|
||||
u32 specialItemChance;
|
||||
int kart_rank;
|
||||
int total;
|
||||
int _0x14;
|
||||
KartSlotData *data; // 0
|
||||
u32 specialItemIndex; // 4
|
||||
u32 specialItemChance; // 8
|
||||
int kart_rank; // C
|
||||
int total; // 10
|
||||
int kart_index; // 14
|
||||
};
|
||||
static KartSlotData mSlotList;
|
||||
static KartSlotData mSlotListEnemy;
|
||||
|
||||
static int SLOT_MAX_COUNT;
|
||||
static int SLOT_INVALID_BUTTON_COUNT;
|
||||
static int SLOT_WAIT_COUNT;
|
||||
|
||||
static u8 sSlotNormalItemNum; // 9
|
||||
static u8 sSlotSpecialItemNum; // 9
|
||||
static u32 *sSlotKindIndexArray;
|
||||
static int *sSlotKindIndexArray;
|
||||
|
||||
ItemShuffleMgr()
|
||||
{
|
||||
_0x4 = 0;
|
||||
_0x5 = 0;
|
||||
reset();
|
||||
}
|
||||
|
||||
void reset()
|
||||
{
|
||||
mSlotCount = 0;
|
||||
mRollFlags = 0;
|
||||
}
|
||||
|
||||
void startShuffle()
|
||||
{
|
||||
mRollFlags |= 1;
|
||||
_7 = false;
|
||||
}
|
||||
|
||||
static const char *getSlotList(int slotType)
|
||||
{
|
||||
const char *ret = "/Item/ItemSlotList.dat";
|
||||
switch (slotType)
|
||||
{
|
||||
case 2:
|
||||
ret = "/Item/ItemSlotList1.dat";
|
||||
break;
|
||||
case 3:
|
||||
ret = "/Item/ItemSlotList2.dat";
|
||||
break;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
static u32 getRndItemKindPossibilityGetting(stRandom *, int, u8);
|
||||
static void loadSlotData();
|
||||
static u32 calcBufOffset(u8 *pData, int n);
|
||||
static void setToList(u8 *, ItemShuffleMgr::KartSlotData *);
|
||||
static void setToListLAN(ItemShuffleMgr::KartSlotData *, const u8 &, const int *);
|
||||
static void setAllDynamicRate();
|
||||
static void setDynamicRate(ItemShuffleMgr::KartSlotData *, bool);
|
||||
int SlotItem(int, u8);
|
||||
bool doShuffle();
|
||||
void resetRolling();
|
||||
|
||||
int calcRndSpecialSlot(int, const ItemShuffleMgr::KartSlotData &, bool);
|
||||
int calcRndSpecialRank(ItemShuffleMgr::KartSlotRankDataSet);
|
||||
|
||||
virtual ~ItemShuffleMgr(); // 08
|
||||
virtual void calcRaceUseNormalItem(u32 *, KartSlotRankDataSet *, int); // 0C
|
||||
virtual void calcSpecialItemNum(u32 *, KartSlotRankDataSet *, int, int, bool); // 10
|
||||
virtual int calcRank(KartSlotRankDataSet); // 14
|
||||
|
||||
int calcSlot(KartSlotRankDataSet &slotRankData, int p2, int p3, bool p4);
|
||||
|
||||
virtual ~ItemShuffleMgr();
|
||||
virtual void calcRaceUseNormalItem(u32 *, KartSlotRankDataSet *, int);
|
||||
virtual void calcSpecialItemNum(u32 *, KartSlotRankDataSet *, int, int, bool);
|
||||
virtual int calcRank(KartSlotRankDataSet);
|
||||
// Inline/Unused
|
||||
void calcRndSpecialRatio(u32 *, ItemShuffleMgr::KartSlotRankDataSet *, bool);
|
||||
void setKartNumber(int no) { mKartNumber = no; }
|
||||
bool isNotRolling() const { return !(mRollFlags & 1) && !(mRollFlags & 2); }
|
||||
|
||||
private:
|
||||
u16 _0x4; // might be the amount of button presses to speed up the shuffle
|
||||
u8 _0x5; //
|
||||
u8 _0x6;
|
||||
u8 _0x7;
|
||||
int idx;
|
||||
u16 mSlotCount; // 4
|
||||
u8 mRollFlags; // 6
|
||||
bool _7; //
|
||||
int mKartNumber; // 8
|
||||
};
|
||||
|
||||
class ItemRndSpecialShuffleMgr : public ItemShuffleMgr
|
||||
{
|
||||
public:
|
||||
virtual ~ItemRndSpecialShuffleMgr();
|
||||
ItemRndSpecialShuffleMgr() {}
|
||||
|
||||
virtual ~ItemRndSpecialShuffleMgr() {}
|
||||
virtual void calcRaceUseNormalItem(u32 *, KartSlotRankDataSet *, int);
|
||||
virtual void calcSpecialItemNum(u32 *, KartSlotRankDataSet *, int, int, bool);
|
||||
virtual int calcRank(KartSlotRankDataSet);
|
||||
};
|
||||
|
||||
class ItemObjMgr : public SysDbUsrPage
|
||||
{
|
||||
public:
|
||||
ItemObjMgr();
|
||||
virtual ~ItemObjMgr();
|
||||
virtual void draw();
|
||||
virtual void callbackColGeoObj() {}
|
||||
|
||||
enum eDrawSimplModelItemType
|
||||
{
|
||||
};
|
||||
|
||||
struct SLAN_DebugKartPadData
|
||||
{
|
||||
void reset()
|
||||
{
|
||||
mButtons.clear();
|
||||
mMainStick.clear();
|
||||
}
|
||||
|
||||
JUTGamePad::CButton mButtons; // _00
|
||||
JUTGamePad::CStick mMainStick; // _30
|
||||
};
|
||||
struct SLAN_DebugKartPadDataArray
|
||||
{
|
||||
SLAN_DebugKartPadDataArray() {}
|
||||
|
||||
SLAN_DebugKartPadData padData[16];
|
||||
};
|
||||
struct SLAN_DebugItemData
|
||||
{
|
||||
void init(ItemObj *obj) // fabricated
|
||||
{
|
||||
_0 = obj->getKind();
|
||||
_4 = (obj->mPos);
|
||||
_10 = (obj->mVel);
|
||||
m.set(obj->mModel.getBaseTRMtx());
|
||||
_4c = obj->getState();
|
||||
_50 = obj->_24c;
|
||||
}
|
||||
|
||||
void reset() // fabricated
|
||||
{
|
||||
_0 = 22;
|
||||
_4.zero();
|
||||
_10.zero();
|
||||
PSMTXIdentity(m);
|
||||
_4c = 0;
|
||||
_50 = 0;
|
||||
}
|
||||
|
||||
u32 _0; //
|
||||
JGeometry::TVec3f _4; //
|
||||
JGeometry::TVec3f _10; //
|
||||
JGeometry::TSMtxf m; // 1c
|
||||
u32 _4c; //
|
||||
u8 _50; //
|
||||
};
|
||||
struct SLAN_DebugItemDataArray
|
||||
{
|
||||
SLAN_DebugItemDataArray() {}
|
||||
|
||||
SLAN_DebugItemData itemData[0x40];
|
||||
};
|
||||
|
||||
struct StockItem
|
||||
{
|
||||
void clear()
|
||||
{
|
||||
mKind = 16;
|
||||
_4 = false;
|
||||
mColorID = 0;
|
||||
}
|
||||
|
||||
int mKind; // 0
|
||||
bool _4; // 4
|
||||
u8 mColorID; // 5
|
||||
};
|
||||
|
||||
struct KartHitList
|
||||
{
|
||||
ItemObj *mObjects[17]; // 0
|
||||
}; // Size: 0x44
|
||||
|
||||
void initItemMaxNums(); // 0x8023d24c
|
||||
void createShuffleMgr(); // 0x8023d29c
|
||||
void reset(); // 0x8023d518
|
||||
void resetLists(); // 0x8023d55c
|
||||
void clrKartHittingList(); // 0x8023d734
|
||||
void clrKartItemEquipTriggerList(); // 0x8023d7b0
|
||||
void clrKartItemUseTriggerList(); // 0x8023d808
|
||||
void clrKartStockingEquipItemList(); // 0x8023d860
|
||||
void createAllObj(); // 0x8023d908
|
||||
ItemObj *equipItemSuccession(u32, int, u8); // 0x8023dfa0
|
||||
bool robRivalOfItem(int, int, u8); // 0x8023e140
|
||||
bool transferPartnerOfItem(int, bool); // 0x8023e28c
|
||||
bool stockItemToKart(int, int, u8, bool, u8); // 0x8023e39c
|
||||
bool equipItemToKart(int, int, u8, bool, u8); // 0x8023e3d0
|
||||
ItemObj *occurItem(u32, const JGeometry::TVec3f &, const JGeometry::TVec3f &); // 0x8023e5c4
|
||||
void delete_stockItemToKart(int, u8); // 0x8023e658
|
||||
void removeItem(ItemObj *); // 0x8023e680
|
||||
void removeItem(JSUListIterator<ItemObj> &); // 0x8023e938
|
||||
void deleteItemByMoveList(ItemObj *); // 0x8023ea14
|
||||
void deleteItemByKartEquipItemList(ItemObj *); // 0x8023ea70
|
||||
void deleteItemByKartEquipItemListSuc(ItemObj *); // 0x8023eabc
|
||||
void deleteItemKeepMax(ItemObj *); // 0x8023eadc
|
||||
void deleteMaxOverItem(const JSUList<ItemObj> &); // 0x8023ebd8
|
||||
ItemObj *getDeleteObjByPriorityList(JSUList<ItemObj> *); // 0x8023ec48
|
||||
void releaseItemByKartEquipItemList(ItemObj *); // 0x8023ed54
|
||||
ItemObj *getKartEquipItem(int, u8); // 0x8023ed84
|
||||
ItemObj *getKartEquipItem(int); // 0x8023ed9c
|
||||
int getStockItem(int, u8); // 0x8023ede4
|
||||
bool tstColReactionKart(int, ItemObj *); // 0x8023ee1c
|
||||
void loadOtherModelData(); // 0x8023ee48
|
||||
const char *getOtherBmdFileName(u32); // 0x8023eef4
|
||||
void load(); // 0x8023ef14
|
||||
void createModel(JKRSolidHeap *, u32); // 0x8023f1dc
|
||||
void initCharShadowModelData(); // 0x8023f39c
|
||||
void createCharShadowModel(JKRSolidHeap *, u32); // 0x8023f540
|
||||
void calcCharShadowModel(); // 0x8023f5f8
|
||||
void calc(); // 0x8023fc00
|
||||
void calcIsHitItem(JSUListIterator<ItemObj> &, JSUListIterator<ItemObj> &); // 0x8024048c
|
||||
void setKartHittingList(JSUListIterator<ItemObj> &, int); // 0x802405d8
|
||||
void checkItemByShuffle(); // 0x8024087c
|
||||
void abortItemShuffle(int); // 0x80240c00
|
||||
static ItemObj *getItemWanWanObj(ItemObj *); // 0x80240c3c
|
||||
static ItemObj *getItemFireBall(ItemObj *); // 0x80240c58
|
||||
static ItemObj *getItemFireBallSuc(ItemObj *); // 0x80240c74
|
||||
static ItemObj *getItemYoshiEgg(ItemObj *); // 0x80240c90
|
||||
void setHeartItem(int, ItemHeart *); // 0x80240cac
|
||||
void deleteHeartItem(int); // 0x80240d48
|
||||
bool tstHaveItemHeart(int); // 0x80240e28
|
||||
void executeColHitHeart(ItemObj *, int); // 0x80240edc
|
||||
ItemHeart *getHeartItem(int); // 0x80240f80
|
||||
void setItemUseTrigger(int, u8); // 0x80241018
|
||||
int tstItemUseTrigger(int, u8) const; // 0x80241100
|
||||
void setThunderDisableUseCounter(); // 0x802411e4
|
||||
static u8 getNowTandemDriverNum(int); // 0x8024123c
|
||||
static bool IsSpecialCharacter(long); // 0x80241294
|
||||
bool IsRollingSlot(int); // 0x802412b8
|
||||
bool IsRollingSlot(int, u8); // 0x8024131c
|
||||
bool IsAvailableRollingSlot(int, u32); // 0x80241360
|
||||
void startItemShuffleSingle(int, bool); // 0x80241534
|
||||
void startItemShuffleDouble(int); // 0x80241608
|
||||
ItemObj::ItemHandOffsetData &getHandOffsetData(ItemObj *); // 0x802416d0
|
||||
int getRobberyItemNum(int, u8); // 0x80241928
|
||||
void removeMiniGameList(ItemObj *); // 0x80241970
|
||||
void update(eDrawSimplModelItemType, int); // 0x80241998
|
||||
void viewCalc(u32); // 0x80241adc
|
||||
void setCurrentViewNo(u32); // 0x80241bf0
|
||||
void drawSimpleModel(u32, eDrawSimplModelItemType, int, LightObj *); // 0x80241cf4
|
||||
void drawColModel(u32); // 0x80241f64
|
||||
static void setLANDebugInfo(); // 0x80241f68
|
||||
|
||||
ItemObj *equipItem2(int kind, int kart_index, u8 driver_index) { // fabricated
|
||||
|
||||
if (GetGeoObjMgr()->isBombBattle())
|
||||
{
|
||||
ItemObj *obj = equipItemSuccession(kind, kart_index, driver_index);
|
||||
removeMiniGameList(obj);
|
||||
return obj;
|
||||
}
|
||||
else if (kind > 0x10)
|
||||
{
|
||||
return equipItemSuccession(kind, kart_index, driver_index);
|
||||
}
|
||||
else
|
||||
{
|
||||
return equipItem(kind);
|
||||
}
|
||||
}
|
||||
|
||||
// Inline/Unused
|
||||
ItemObj *equipItem(u32);
|
||||
void appendItemSuccession(ItemObj *, u32, u8);
|
||||
void createItemByKartStockingItemList();
|
||||
void isEnableDeleteItem(ItemObj *);
|
||||
void IsItemAvailable(int);
|
||||
bool tstKartEquipItemTrigger(int, u8);
|
||||
void getStockItem(int);
|
||||
void loadModelData(ItemObj *);
|
||||
void loadShadowModelData();
|
||||
void changeItemHoldCharacter();
|
||||
void IsAbleToCreateItem(int);
|
||||
void getNowStockingKindNum(int, u32);
|
||||
void cancelRollingSlot(int);
|
||||
bool IsAvailableRollingSlotDriver(int, u8);
|
||||
void getMaxHoldMiniBombNum();
|
||||
void getNowEnableSlotDriver(u8 *, int);
|
||||
void getConvertSucItemKind(u32);
|
||||
void getMaxItemMoveNum();
|
||||
void setMaxItemMoveNum(const u8 &);
|
||||
void entryMiniGameList(ItemObj *);
|
||||
void tstEnableDrawGhost(bool, const JSUListIterator<ItemObj> &);
|
||||
|
||||
static void createMgr() { gItemMgr = new ItemObjMgr(); }
|
||||
static ItemObjMgr *getItemObjMgr() { return gItemMgr; }
|
||||
|
||||
static int sTopBalloonNum;
|
||||
static SLAN_DebugItemDataArray *sLANDbgDataPtr;
|
||||
static SLAN_DebugKartPadDataArray *sLANDbgKartPadBuffer;
|
||||
static ItemObjMgr *gItemMgr;
|
||||
|
||||
void swapOwner(ItemObj *obj, bool fromRival, int kart_index1, int kart_index2, u8 driver_index1, u8 driver_index2)
|
||||
{
|
||||
this->mEquipItem[kart_index1][driver_index1] = obj; // here
|
||||
obj->setOrigOwnerNum(kart_index2);
|
||||
obj->setOrigDriverNum(driver_index2);
|
||||
obj->setOwnerNum(kart_index1);
|
||||
obj->setDriverNum(driver_index1);
|
||||
if (!fromRival)
|
||||
obj->mTransferFlags |= 0x200;
|
||||
obj->setStateDivested(true);
|
||||
delete_stockItemToKart(kart_index2, driver_index2);
|
||||
this->mEquipItem[kart_index2][driver_index2] = nullptr;
|
||||
}
|
||||
|
||||
// private:
|
||||
u8 _28[0x2c - 0x28]; //
|
||||
KartHitList mHitList[8]; // 2c
|
||||
StockItem mStockItem[8][2]; // 24c
|
||||
ItemObj *mEquipItem[8][2]; // 2cc, items that are being held
|
||||
bool mIsHitting[8][2]; // 30c
|
||||
bool mIsEquiped[8][2]; // 31c
|
||||
bool mItemUse[8][2]; // 32c
|
||||
ItemHeart *mHeartItem[8]; // 33c
|
||||
ItemShuffleMgr *mShuffMgr[8][2]; // 35c
|
||||
J3DModelData *mModel[16]; // 39c
|
||||
J3DModelData *mOtherModel[1]; // 3dc
|
||||
J3DModelData *mShadowModel[2]; // 3e0
|
||||
JSUList<ItemObj> _3e8[22]; //
|
||||
JSUList<ItemObj> _4f0[22]; //
|
||||
JSUList<ItemObj> _5f8[22]; //
|
||||
JSUList<ItemObj> _700[4]; //
|
||||
JSUList<ItemObj> mMiniGameList; // 730
|
||||
JSUList<ItemObj> _73c[16]; //
|
||||
JSUList<ItemObj> _7fc; //
|
||||
bool mObjectsCreated; // 808
|
||||
int mThunderDisableTimer; // 80c
|
||||
ItemObj::ItemHandOffsetData *mpHandOffsetData; // 810
|
||||
J3DModelData *mpMdlData; // 814
|
||||
ShadowModel *mpShadowMdl[2]; // 818, 81c
|
||||
bool _820; //
|
||||
u32 _824; //
|
||||
};
|
||||
|
||||
inline ItemObjMgr *GetItemObjMgr()
|
||||
{
|
||||
return ItemObjMgr::getItemObjMgr();
|
||||
}
|
||||
|
||||
inline void CreateItemObjMgr() { ItemObjMgr::createMgr(); }
|
||||
|
||||
#endif // ITEMOBJMGR_H
|
||||
|
@ -1,8 +0,0 @@
|
||||
#ifndef ITEMSHUFFLEMGR_H
|
||||
#define ITEMSHUFFLEMGR_H
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // !ITEMSHUFFLEMGR_H
|
29
include/Sato/ItemStar.h
Normal file
29
include/Sato/ItemStar.h
Normal file
@ -0,0 +1,29 @@
|
||||
#ifndef ITEMSTAR_H
|
||||
#define ITEMSTAR_H
|
||||
|
||||
#include "Sato/ItemObj.h"
|
||||
|
||||
// TODO
|
||||
|
||||
class ItemStar : public ItemObj
|
||||
{ // Autogenerated
|
||||
public:
|
||||
ItemStar(u32); // 0x80255aa0
|
||||
void reset(); // 0x80255af0
|
||||
const char *getBmdFileName(); // 0x80255b7c
|
||||
void createModel(JKRSolidHeap *, u32, u32); // 0x80255ba4
|
||||
void doUniv(); // 0x80255bdc
|
||||
void initEquip(); // 0x80255c88
|
||||
void doEquip(); // 0x80255d0c
|
||||
void initRelease(); // 0x80255dd8
|
||||
void doRelease(); // 0x80255dfc
|
||||
void initDisappear(); // 0x80255e00
|
||||
void doDisappear(); // 0x80255e18
|
||||
void initFall(); // 0x80255e1c
|
||||
void doFall(); // 0x80255e44
|
||||
// Inline
|
||||
virtual ~ItemStar() {} // 0x80255ec8
|
||||
|
||||
u8 _[0x2e4 - 0x2b0];
|
||||
};
|
||||
#endif // ITEMSTAR_H
|
86
include/Sato/ItemSuccession.h
Normal file
86
include/Sato/ItemSuccession.h
Normal file
@ -0,0 +1,86 @@
|
||||
#ifndef ITEMSUCCESSION_H
|
||||
#define ITEMSUCCESSION_H
|
||||
|
||||
#include "Sato/ItemObj.h"
|
||||
|
||||
// TODO: virtual and static functions
|
||||
|
||||
class ItemMultiBase
|
||||
{
|
||||
public:
|
||||
// Inline/Unused
|
||||
void getOffsetScale();
|
||||
void setDivestedStartPos(const JGeometry::TVec3f &);
|
||||
|
||||
virtual void ParamInit(const JGeometry::TVec3<s16> &) = 0;
|
||||
virtual void DoEquipScaleUp(f32) = 0;
|
||||
virtual void MoveEquip() = 0;
|
||||
virtual void InitMoveDivested() = 0;
|
||||
virtual void MoveDivested() = 0;
|
||||
};
|
||||
|
||||
class ItemJuggle : public ItemMultiBase
|
||||
{
|
||||
public:
|
||||
void DoEquipScaleUp(f32);
|
||||
void ParamInit(const JGeometry::TVec3<s16> &);
|
||||
void InitMoveDivested();
|
||||
void MoveDivested();
|
||||
void MoveEquip();
|
||||
void doHandJuggleEquip(const JGeometry::TVec3f &, Mtx);
|
||||
void doMoveJuggleEquip(const JGeometry::TVec3f &, Mtx, JGeometry::TVec3f, f32);
|
||||
|
||||
static f32 sJuggleRotStartOffset;
|
||||
static f32 sJuggleRotRatio;
|
||||
static f32 sJuggleRotRatioSub;
|
||||
};
|
||||
|
||||
class ItemBuild : public ItemMultiBase
|
||||
{
|
||||
public:
|
||||
void ParamInit(const JGeometry::TVec3<s16> &);
|
||||
void DoEquipScaleUp(f32);
|
||||
void MoveEquip();
|
||||
void setFirstPos(JGeometry::TVec3f *, f32);
|
||||
void setVel(f32);
|
||||
void setPos(JGeometry::TVec3f *, f32);
|
||||
void setHeight(f32);
|
||||
void setRotate(Mtx);
|
||||
void setFirstRotate(Mtx);
|
||||
void InitMoveDivested();
|
||||
void MoveDivested();
|
||||
};
|
||||
|
||||
class ItemObjSuc : public ItemObj
|
||||
{
|
||||
public:
|
||||
ItemObjSuc(u32 p1) : ItemObj(p1) {
|
||||
setSucMultiType(cMultiType_0);
|
||||
}
|
||||
|
||||
void reset();
|
||||
void initEquip();
|
||||
void doEquip();
|
||||
void initJuggleEquip();
|
||||
void doJuggleEquip();
|
||||
void setInitBuildAppend();
|
||||
void initBuildEquip();
|
||||
void doBuildEquip();
|
||||
void selectSucChild();
|
||||
void selectJuggleSucChild();
|
||||
void initDivested();
|
||||
void doDivested();
|
||||
void setSucMultiType(cMultiType);
|
||||
void initForceDisappear();
|
||||
void doForceDisappear();
|
||||
|
||||
static f32 sJuggleXLength;
|
||||
static f32 sJuggleRndAngle;
|
||||
static f32 sJuggleRndAngle2;
|
||||
static f32 sJuggleRotAxisRatio;
|
||||
static f32 sJuggleGravity;
|
||||
static f32 sJuggleGravityUpRatio;
|
||||
static f32 sJuggleAnmOverFrame;
|
||||
};
|
||||
|
||||
#endif // ITEMSUCCESSION_H
|
39
include/Sato/ItemThunder.h
Normal file
39
include/Sato/ItemThunder.h
Normal file
@ -0,0 +1,39 @@
|
||||
#ifndef ITEMTHUNDER_H
|
||||
#define ITEMTHUNDER_H
|
||||
|
||||
#include "Sato/GeographyObj.h"
|
||||
#include "Sato/ItemObj.h"
|
||||
|
||||
// TODO
|
||||
|
||||
class ItemThunder : public ItemObj
|
||||
{ // Autogenerated
|
||||
public:
|
||||
ItemThunder(unsigned long); // 0x80278588
|
||||
void entrySuperVisor(GeoObjSupervisor *); // 0x80278744
|
||||
void reset(); // 0x80278774
|
||||
const char *getBmdFileName(); // 0x80278840
|
||||
void createModel(JKRSolidHeap *, unsigned long, unsigned long); // 0x80278868
|
||||
void doUniv(); // 0x8027889c
|
||||
void initEquip(); // 0x8027896c
|
||||
void doEquip(); // 0x802789c0
|
||||
void initRelease(); // 0x802789e8
|
||||
void doRelease(); // 0x80278a1c
|
||||
void initDisappear(); // 0x80278a20
|
||||
void doDisappear(); // 0x80278b0c
|
||||
void initFall(); // 0x80278b5c
|
||||
void doFall(); // 0x80278b84
|
||||
void initForceDisappear(); // 0x80278c08
|
||||
void checkKartColDisappear(int); // 0x80278c3c
|
||||
void setEffectThunder(int); // 0x80278c50
|
||||
void deleteEffectThunder(); // 0x80278d14
|
||||
void doEffectThunder(); // 0x80278da4
|
||||
|
||||
static Vec sHandOffsetPos; // 0x804137d8
|
||||
static GeoObjSupervisor *sSuperVisorList; // 0x80413830
|
||||
// Inline
|
||||
virtual ~ItemThunder(); // 0x80278628
|
||||
|
||||
u8 _[0x350 - 0x2b0];
|
||||
}; // class ItemThunder
|
||||
#endif // ITEMTHUNDER_H
|
211
include/Sato/ItemTurtle.h
Normal file
211
include/Sato/ItemTurtle.h
Normal file
@ -0,0 +1,211 @@
|
||||
#ifndef ITEMGTURTLE_H
|
||||
#define ITEMGTURTLE_H
|
||||
|
||||
#include "Sato/ItemObj.h"
|
||||
#include "Sato/ItemSuccession.h"
|
||||
|
||||
// TODO
|
||||
|
||||
class ItemGTurtle : public ItemObj
|
||||
{ // Autogenerated
|
||||
public:
|
||||
ItemGTurtle(u32); // 0x80243f84
|
||||
void reset(); // 0x8024411c
|
||||
const char *getBmdFileName(); // 0x8024424c
|
||||
void createModel(JKRSolidHeap *, u32, u32); // 0x80244274
|
||||
void doUniv(); // 0x80244278
|
||||
void calcColReaction(ItemObj *); // 0x80244370
|
||||
void callHitItemSound(ItemObj *); // 0x80244378
|
||||
void initEquip(); // 0x802443c4
|
||||
void doEquip(); // 0x802444c0
|
||||
void initRelease(); // 0x802444ec
|
||||
void doUnivInitRelease(float, bool); // 0x80244518
|
||||
void setInitReleaseParam(); // 0x80244680
|
||||
void initBlurEmt(); // 0x8024479c
|
||||
void doUnivRelease(); // 0x80244820
|
||||
void calcRotQuat(Quaternion *); // 0x80244998
|
||||
void calcGndUpdateQuat(); // 0x802449e0
|
||||
void calcFlyingUpdateQuat(); // 0x80244a78
|
||||
void chkColWallDisappear(); // 0x80244acc
|
||||
void moveNormal(CrsGround &); // 0x80244bdc
|
||||
void calcMoveGndNormalVec(JGeometry::TVec3f *, CrsGround &); // 0x80244f28
|
||||
void doRelease(); // 0x80244f50
|
||||
void initSpRelease(); // 0x80244f7c
|
||||
void doSpRelease(); // 0x802451e8
|
||||
void initDisappear(); // 0x80245214
|
||||
void initForceDisappear(); // 0x802452c8
|
||||
void doDisappear(); // 0x80245308
|
||||
void initCommonMoveFallMtx(); // 0x8024538c
|
||||
void doFall(); // 0x802453c0
|
||||
void doDivested(); // 0x802453e0
|
||||
void calcBalanceFlying(); // 0x80245400
|
||||
void getMaxColWallNum(); // 0x80245454
|
||||
void initFirstRotate(); // 0x802454a4
|
||||
void doFirstRotate(); // 0x80245510
|
||||
void doSound(u32); // 0x8024559c
|
||||
void deleteEffect(); // 0x802455ec
|
||||
void executeEquipHandFunc(); // 0x80245630
|
||||
void executeGeoObjHitCallBack(GeographyObj *); // 0x80245660
|
||||
static Vec sHandOffsetPos; // 0x804118a0
|
||||
// Inline/Unused
|
||||
void setGeoHitSe(GeographyObj *);
|
||||
void countHitGeoReflectNum(GeographyObj *);
|
||||
// Inline
|
||||
void calcVel(); // 0x80244994
|
||||
virtual ~ItemGTurtle() {} // 0x802458ac
|
||||
|
||||
u8 _[0x2ec - 0x2b0];
|
||||
}; // class ItemGTurtle
|
||||
|
||||
class ItemRTurtle : public ItemGTurtle
|
||||
{
|
||||
public:
|
||||
ItemRTurtle(u32);
|
||||
void reset();
|
||||
const char *getBmdFileName();
|
||||
void doUniv();
|
||||
void calcColReaction(ItemObj *);
|
||||
void initRelease();
|
||||
void searchTarget(float, bool);
|
||||
void checkOver1stKart();
|
||||
void getKartCLDir(int, JGeometry::TVec3f *);
|
||||
void moveAttack();
|
||||
void moveCenterLine();
|
||||
void initCL();
|
||||
void calcVel();
|
||||
void getMiniGameSearchMaxLengthXZ();
|
||||
void moveColWall(CrsGround &);
|
||||
void calcMoveGndNormalVec(JGeometry::TVec3f *, CrsGround &);
|
||||
|
||||
void moveNoChase();
|
||||
|
||||
// Inline/Virtuals
|
||||
virtual ~ItemRTurtle() {} // 0x80249ee4
|
||||
virtual int getLockOnKartNo() const; // 0x80249fec
|
||||
|
||||
u8 _[0x304 - 0x2ec];
|
||||
};
|
||||
|
||||
class ItemGTurtleBig : public ItemGTurtle
|
||||
{
|
||||
public:
|
||||
ItemGTurtleBig(u32);
|
||||
void reset();
|
||||
const char *getBmdFileName();
|
||||
void doUniv();
|
||||
void initEquip();
|
||||
void initRelease();
|
||||
void initSpRelease();
|
||||
void initDisappear();
|
||||
void calcColReaction(ItemObj *);
|
||||
void getMaxColWallNum();
|
||||
void calcBalanceFlying();
|
||||
void checkKartColDisappear(int);
|
||||
f32 getForceEfctOffsetScale() const;
|
||||
void executeGeoObjHitCallBack(GeographyObj *);
|
||||
|
||||
virtual ~ItemGTurtleBig() {} // 0x80249ff4
|
||||
|
||||
u8 _[0x2f0 - 0x2ec];
|
||||
};
|
||||
|
||||
class ItemFireBall : public ItemGTurtle
|
||||
{
|
||||
public:
|
||||
ItemFireBall(u32);
|
||||
void reset();
|
||||
const char *getBmdFileName();
|
||||
void doUniv();
|
||||
void deleteEffect();
|
||||
void deleteHaveEffect();
|
||||
void initEquip();
|
||||
void doEquip();
|
||||
void moveBaseEfct();
|
||||
void initRelease();
|
||||
void initSpRelease();
|
||||
void initDisappear();
|
||||
void doDisappear();
|
||||
void initFall();
|
||||
void doFall();
|
||||
void initForceDisappear();
|
||||
void doDivested();
|
||||
void doUnivRelease();
|
||||
void moveNormal(CrsGround &);
|
||||
void calcColReaction(ItemObj *);
|
||||
void calcRotQuat(Quaternion *);
|
||||
void getMaxColWallNum();
|
||||
void executeGeoObjHitCallBack(GeographyObj *);
|
||||
|
||||
// Inline
|
||||
void initEffect();
|
||||
void initHaveEffect();
|
||||
virtual ~ItemFireBall() {} // 0x80249c9c
|
||||
|
||||
u8 _[0x304 - 0x2ec];
|
||||
};
|
||||
|
||||
class ItemGTurtleSuc : public ItemObjSuc
|
||||
{
|
||||
public:
|
||||
ItemGTurtleSuc(u32);
|
||||
void reset();
|
||||
void doSucReleaseFunc(ItemObj *);
|
||||
void doSucSpReleaseFunc(ItemObj *);
|
||||
virtual ~ItemGTurtleSuc() {} // 0x80247da4
|
||||
|
||||
u8 _2b0[0x300 - 0x2b0];
|
||||
};
|
||||
|
||||
class ItemRTurtleSuc : public ItemGTurtleSuc
|
||||
{
|
||||
public:
|
||||
ItemRTurtleSuc(u32);
|
||||
void reset();
|
||||
virtual ~ItemRTurtleSuc() {} // 0x80249dc4
|
||||
};
|
||||
|
||||
class ItemFireBallSuc : public ItemObjSuc
|
||||
{
|
||||
public:
|
||||
ItemFireBallSuc(u32);
|
||||
void reset();
|
||||
void doSucReleaseFunc(ItemObj *);
|
||||
void doSucSpReleaseFunc(ItemObj *);
|
||||
void initEquip();
|
||||
void doEquip();
|
||||
void doDivested();
|
||||
void initDisappear();
|
||||
void initFall();
|
||||
void doFall();
|
||||
void initForceDisappear();
|
||||
void doForceDisappear();
|
||||
void initEnd();
|
||||
void deleteEffect();
|
||||
void moveEffect(bool);
|
||||
void IsEfctTypeRed() const;
|
||||
virtual ~ItemFireBallSuc() {} // 0x80249b44
|
||||
|
||||
u8 _[0x310 - 0x2b0];
|
||||
};
|
||||
|
||||
// Inline/Unknown Functions Referenced in TU:
|
||||
// void ItemMultiBase::~ItemMultiBase();
|
||||
// virtual ItemObjSuc::~ItemObjSuc() // ItemObjSuc.h; // 0x8024632c
|
||||
// 0xvoid CLPointControllerRTurtle::CLPointControllerRTurtle(ItemObj *);
|
||||
// 0xvoid CLPointControllerRTurtle::findNextPointNo(CLPoint *);
|
||||
// 0x// virtual ItemObj::~ItemObj() // ItemObj.h; // 0x80244034
|
||||
// void ItemObj::initEnd() // ItemObj.h; // 0x80245388
|
||||
// void ItemObj::getLockOnKartNo() const // ItemObj.h; // 0x80249c4c
|
||||
// void ItemObj::getForceEfctOffsetScale() const // ItemObj.h; // 0x80249c54
|
||||
// void ItemObj::initRelease() // ItemObj.h; // 0x80249c5c
|
||||
// void ItemObj::initSpRelease() // ItemObj.h; // 0x80249c60
|
||||
// void ItemObj::doRelease() // ItemObj.h; // 0x80249c64
|
||||
// void ItemObj::doSpRelease() // ItemObj.h; // 0x80249c68
|
||||
// void ItemObj::doDisappear() // ItemObj.h; // 0x80249c6c
|
||||
// void ItemObj::moveNormal(CrsGround &) // ItemObj.h; // 0x80249c70
|
||||
// void ItemObj::executeEquipHandFunc() // ItemObj.h; // 0x80249c74
|
||||
// void ItemObj::initDivested() // ItemObj.h; // 0x80249da4
|
||||
// void ItemObj::initDisappear() // ItemObj.h; // 0x80249edc
|
||||
// void ItemObj::deleteEffect() // ItemObj.h; // 0x80249ee0
|
||||
|
||||
#endif // ITEMGTURTLE_H
|
65
include/Sato/ItemWanWan.h
Normal file
65
include/Sato/ItemWanWan.h
Normal file
@ -0,0 +1,65 @@
|
||||
#ifndef ITEMWANWAN_H
|
||||
#define ITEMWANWAN_H
|
||||
|
||||
#include "Sato/ItemObj.h"
|
||||
|
||||
// TODO: virtual and static functions(actually, probably everything)
|
||||
class J3DAnmCluster;
|
||||
|
||||
class ItemWanWanObj : public ItemObj
|
||||
{ // Autogenerated
|
||||
public:
|
||||
ItemWanWanObj(u32);
|
||||
void reset();
|
||||
const char *getBmdFileName();
|
||||
static void loadAnmData(J3DModelData *);
|
||||
void getBckName(int);
|
||||
void createModel(JKRSolidHeap *, u32, u32);
|
||||
void update();
|
||||
void drawSimpleModel(u32, Mtx, J3DUClipper *, Mtx);
|
||||
void viewCalc(u32);
|
||||
void setCurrentViewNo(u32);
|
||||
void doUniv();
|
||||
void calcColReaction(ItemObj *);
|
||||
void initEquip();
|
||||
void doEquip();
|
||||
void initRelease();
|
||||
void setInitReleaseParam();
|
||||
void doUnivRelease(bool);
|
||||
void doRelease();
|
||||
void calcGravity();
|
||||
void initDisappear();
|
||||
void doDisappear();
|
||||
void initFall();
|
||||
void doFall();
|
||||
void moveNormal(CrsGround &);
|
||||
void calcBalanceFlying();
|
||||
void initmoveCenterLine();
|
||||
void setCLPoint();
|
||||
void moveCenterLine();
|
||||
void moveStraight();
|
||||
void getChainLength();
|
||||
void getFirstNodePos(JGeometry::TVec3f *);
|
||||
void checkKartColDisappear(int);
|
||||
void separate();
|
||||
void getChainLocatorPos(JGeometry::TVec3f *, Mtx);
|
||||
f32 getForceEfctOffsetScale() const;
|
||||
void executeGeoObjHitCallBack(GeographyObj *);
|
||||
void doTraceEfct();
|
||||
|
||||
static Vec sHandOffsetPos;
|
||||
static J3DAnmObjTrans *mAnmTrans[3];
|
||||
static J3DAnmTransform *mAnmCalc[3];
|
||||
static int sChainJointNo;
|
||||
static J3DDeformData *mAnmDeform;
|
||||
static J3DAnmCluster *mAnmCluster;
|
||||
|
||||
// Inline/Unused
|
||||
void setHitSe();
|
||||
void getCenterNodePos(JGeometry::TVec3f *);
|
||||
void getLastNodePos(JGeometry::TVec3f *);
|
||||
|
||||
u8 _[0x35c - 0x2b0];
|
||||
};
|
||||
|
||||
#endif // ITEMWANWAN_H
|
42
include/Sato/ItemYoshiEgg.h
Normal file
42
include/Sato/ItemYoshiEgg.h
Normal file
@ -0,0 +1,42 @@
|
||||
#ifndef ITEMYOSHIEGG_H
|
||||
#define ITEMYOSHIEGG_H
|
||||
|
||||
#include "Sato/ItemObj.h"
|
||||
|
||||
// TODO: virtual and static functions
|
||||
|
||||
class ItemYoshiEgg : public ItemObj
|
||||
{ // Autogenerated
|
||||
public:
|
||||
ItemYoshiEgg(u32); // 0x8027d9c0
|
||||
void reset(); // 0x8027da54
|
||||
const char *getBmdFileName(); // 0x8027dadc
|
||||
static void loadAnmData(J3DModelData *); // 0x8027db04
|
||||
void createModel(JKRSolidHeap *, u32, u32); // 0x8027db48
|
||||
void update(); // 0x8027dba8
|
||||
void doUniv(); // 0x8027dbfc
|
||||
void initEquip(); // 0x8027dd9c
|
||||
void initRelease(); // 0x8027df6c
|
||||
void initSpRelease(); // 0x8027dfa0
|
||||
void initFall(); // 0x8027dfd0
|
||||
void initDisappear(); // 0x8027e004
|
||||
void doDisappear(); // 0x8027e3cc
|
||||
void calcRotQuat(Quaternion *); // 0x8027e3d0
|
||||
void calcCreateItem(u32 *); // 0x8027e4b4
|
||||
void calcRndItemKind(u32, u32 *, u32 *); // 0x8027e620
|
||||
void calcColReaction(ItemObj *); // 0x8027e6cc
|
||||
void moveColWall(CrsGround &); // 0x8027e728
|
||||
void checkKartColDisappear(int); // 0x8027e774
|
||||
|
||||
static Vec sHandOffsetPos; // 0x80413888
|
||||
static J3DAnmTexPattern *sTexPattern; // 0x80416d10
|
||||
// Inline
|
||||
virtual ~ItemYoshiEgg() {} // 0x8027e7c0
|
||||
void checkOver1stKart(); // 0x8027e918
|
||||
void calcGndUpdateQuat(); // 0x8027e920
|
||||
void calcFlyingUpdateQuat(); // 0x8027e924
|
||||
|
||||
u8 _[0x334 - 0x2b0];
|
||||
}; // class ItemYoshiEgg
|
||||
|
||||
#endif // ITEMYOSHIEGG_H
|
@ -7,7 +7,7 @@
|
||||
|
||||
namespace ObjUtility
|
||||
{
|
||||
void getPtrMainArc(char *); // 0x8025dc08
|
||||
void *getPtrMainArc(char *); // 0x8025dc08
|
||||
void *getPtrCourseArc(char *); // 0x8025dc30
|
||||
void getPtrMainLocaleArc(char *); // 0x8025dc58
|
||||
void setRMtx(Mtx, const JGeometry::TVec3f &, const JGeometry::TVec3f &); // 0x8025dc80
|
||||
|
@ -22,7 +22,7 @@ public:
|
||||
void getRandom();
|
||||
void getRankParamID();
|
||||
void tstEndRace();
|
||||
void isRival() const;
|
||||
bool isRival() const;
|
||||
void getMyRank();
|
||||
// Inline/Unused
|
||||
// void getSpeedCtrl();
|
||||
|
@ -71,7 +71,7 @@ public:
|
||||
void SetTireDispRound(KartBody *, KartSus *, f32);
|
||||
void SetKartRpm(KartBody *, f32, f32);
|
||||
void WhichDriver(int);
|
||||
void WhichNowDriver(int);
|
||||
u8 WhichNowDriver(int);
|
||||
bool CheckCamera(int);
|
||||
int GetCameraNum(int);
|
||||
void CheckItem(int);
|
||||
|
@ -10,8 +10,8 @@ JKRAramBlock::JKRAramBlock(u32 address, u32 size, u32 freeSize, u8 groupID, bool
|
||||
|
||||
JKRAramBlock::~JKRAramBlock()
|
||||
{
|
||||
JSUList<JKRAramBlock> *list = mLink.getSupervisor();
|
||||
JSULink<JKRAramBlock> *prev = mLink.getPrev();
|
||||
JSUList<JKRAramBlock> *list = mLink.getList();
|
||||
if (prev)
|
||||
{
|
||||
prev->getObject()->mFreeSize += mSize + mFreeSize;
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user