tp/libs/JSystem/J3DGraphLoader/J3DJointFactory.cpp

43 lines
1.3 KiB
C++

//
// Generated By: dol2asm
// Translation Unit: J3DJointFactory
//
#include "JSystem/J3DGraphLoader/J3DJointFactory.h"
#include "JSystem/J3DGraphAnimator/J3DJoint.h"
#include "JSystem/JSupport/JSupport.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
extern "C" u16* func_8033677C(const void*, const void*); // JSUConvertOffsetToPtr<u16>
/* 80337178-803371D0 331AB8 0058+00 0/0 1/1 0/0 .text __ct__15J3DJointFactoryFRC13J3DJointBlock */
J3DJointFactory::J3DJointFactory(J3DJointBlock const& block) {
mJointInitData = JSUConvertOffsetToPtr<J3DJointInitData>(&block, block.mJointInitData);
// Fix when we have our ODR working.
// mIndexTable = JSUConvertOffsetToPtr<u16>(&block, block.mIndexTable);
mIndexTable = func_8033677C(&block, block.mIndexTable);
}
/* 803371D0-80337338 331B10 0168+00 0/0 1/1 0/0 .text create__15J3DJointFactoryFi */
J3DJoint* J3DJointFactory::create(int no) {
J3DJoint* joint = new J3DJoint();
joint->mJntNo = no;
joint->mKind = getKind(no);
joint->mScaleCompensate = getScaleCompensate(no);
joint->mTransformInfo = getTransformInfo(no);
joint->mBoundingSphereRadius = getRadius(no);
joint->mMin = getMin(no);
joint->mMax = getMax(no);
joint->mMtxCalc = NULL;
if (joint->mScaleCompensate == 0xFF)
joint->mScaleCompensate = 0;
return joint;
}