mirror of https://github.com/zeldaret/tp.git
a bit more J3DMtxBuffer
This commit is contained in:
parent
e66c902b30
commit
028652e97e
|
|
@ -1,39 +0,0 @@
|
|||
lbl_80326364:
|
||||
/* 80326364 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80326368 7C 08 02 A6 */ mflr r0
|
||||
/* 8032636C 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80326370 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 80326374 93 C1 00 08 */ stw r30, 8(r1)
|
||||
/* 80326378 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 8032637C 7C 9F 23 78 */ mr r31, r4
|
||||
/* 80326380 A0 04 00 2C */ lhz r0, 0x2c(r4)
|
||||
/* 80326384 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80326388 41 82 00 28 */ beq lbl_803263B0
|
||||
/* 8032638C 54 03 04 3E */ clrlwi r3, r0, 0x10
|
||||
/* 80326390 4B FA 89 35 */ bl __nwa__FUl
|
||||
/* 80326394 90 7E 00 04 */ stw r3, 4(r30)
|
||||
/* 80326398 A0 1F 00 2C */ lhz r0, 0x2c(r31)
|
||||
/* 8032639C 1C 60 00 30 */ mulli r3, r0, 0x30
|
||||
/* 803263A0 4B FA 89 25 */ bl __nwa__FUl
|
||||
/* 803263A4 90 7E 00 0C */ stw r3, 0xc(r30)
|
||||
/* 803263A8 80 1E 00 0C */ lwz r0, 0xc(r30)
|
||||
/* 803263AC 90 1E 00 34 */ stw r0, 0x34(r30)
|
||||
lbl_803263B0:
|
||||
/* 803263B0 80 1E 00 04 */ lwz r0, 4(r30)
|
||||
/* 803263B4 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 803263B8 40 82 00 0C */ bne lbl_803263C4
|
||||
/* 803263BC 38 60 00 04 */ li r3, 4
|
||||
/* 803263C0 48 00 00 18 */ b lbl_803263D8
|
||||
lbl_803263C4:
|
||||
/* 803263C4 80 1E 00 0C */ lwz r0, 0xc(r30)
|
||||
/* 803263C8 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 803263CC 38 60 00 00 */ li r3, 0
|
||||
/* 803263D0 40 82 00 08 */ bne lbl_803263D8
|
||||
/* 803263D4 38 60 00 04 */ li r3, 4
|
||||
lbl_803263D8:
|
||||
/* 803263D8 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 803263DC 83 C1 00 08 */ lwz r30, 8(r1)
|
||||
/* 803263E0 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 803263E4 7C 08 03 A6 */ mtlr r0
|
||||
/* 803263E8 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 803263EC 4E 80 00 20 */ blr
|
||||
|
|
@ -1,124 +0,0 @@
|
|||
lbl_803264B8:
|
||||
/* 803264B8 94 21 FF D0 */ stwu r1, -0x30(r1)
|
||||
/* 803264BC 7C 08 02 A6 */ mflr r0
|
||||
/* 803264C0 90 01 00 34 */ stw r0, 0x34(r1)
|
||||
/* 803264C4 39 61 00 30 */ addi r11, r1, 0x30
|
||||
/* 803264C8 48 03 BD 01 */ bl _savegpr_24
|
||||
/* 803264CC 7C 7D 1B 78 */ mr r29, r3
|
||||
/* 803264D0 7C 9E 23 78 */ mr r30, r4
|
||||
/* 803264D4 7C BF 2B 79 */ or. r31, r5, r5
|
||||
/* 803264D8 41 82 00 44 */ beq lbl_8032651C
|
||||
/* 803264DC 3B 00 00 00 */ li r24, 0
|
||||
/* 803264E0 3B 60 00 00 */ li r27, 0
|
||||
/* 803264E4 57 FA 10 3A */ slwi r26, r31, 2
|
||||
/* 803264E8 7F 7C DB 78 */ mr r28, r27
|
||||
lbl_803264EC:
|
||||
/* 803264EC 7F 43 D3 78 */ mr r3, r26
|
||||
/* 803264F0 4B FA 87 D5 */ bl __nwa__FUl
|
||||
/* 803264F4 7F 3D DA 14 */ add r25, r29, r27
|
||||
/* 803264F8 90 79 00 14 */ stw r3, 0x14(r25)
|
||||
/* 803264FC 7F 43 D3 78 */ mr r3, r26
|
||||
/* 80326500 4B FA 87 C5 */ bl __nwa__FUl
|
||||
/* 80326504 90 79 00 1C */ stw r3, 0x1c(r25)
|
||||
/* 80326508 93 99 00 24 */ stw r28, 0x24(r25)
|
||||
/* 8032650C 3B 18 00 01 */ addi r24, r24, 1
|
||||
/* 80326510 2C 18 00 02 */ cmpwi r24, 2
|
||||
/* 80326514 3B 7B 00 04 */ addi r27, r27, 4
|
||||
/* 80326518 41 80 FF D4 */ blt lbl_803264EC
|
||||
lbl_8032651C:
|
||||
/* 8032651C 28 1F 00 00 */ cmplwi r31, 0
|
||||
/* 80326520 41 82 00 44 */ beq lbl_80326564
|
||||
/* 80326524 38 60 00 00 */ li r3, 0
|
||||
/* 80326528 38 00 00 02 */ li r0, 2
|
||||
/* 8032652C 7C 09 03 A6 */ mtctr r0
|
||||
lbl_80326530:
|
||||
/* 80326530 7C 9D 1A 14 */ add r4, r29, r3
|
||||
/* 80326534 80 04 00 14 */ lwz r0, 0x14(r4)
|
||||
/* 80326538 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8032653C 40 82 00 0C */ bne lbl_80326548
|
||||
/* 80326540 38 60 00 04 */ li r3, 4
|
||||
/* 80326544 48 00 01 08 */ b lbl_8032664C
|
||||
lbl_80326548:
|
||||
/* 80326548 80 04 00 1C */ lwz r0, 0x1c(r4)
|
||||
/* 8032654C 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80326550 40 82 00 0C */ bne lbl_8032655C
|
||||
/* 80326554 38 60 00 04 */ li r3, 4
|
||||
/* 80326558 48 00 00 F4 */ b lbl_8032664C
|
||||
lbl_8032655C:
|
||||
/* 8032655C 38 63 00 04 */ addi r3, r3, 4
|
||||
/* 80326560 42 00 FF D0 */ bdnz lbl_80326530
|
||||
lbl_80326564:
|
||||
/* 80326564 3B 00 00 00 */ li r24, 0
|
||||
/* 80326568 3B 80 00 00 */ li r28, 0
|
||||
lbl_8032656C:
|
||||
/* 8032656C 3B 40 00 00 */ li r26, 0
|
||||
/* 80326570 3B 60 00 00 */ li r27, 0
|
||||
/* 80326574 7F 3D E2 14 */ add r25, r29, r28
|
||||
/* 80326578 48 00 00 48 */ b lbl_803265C0
|
||||
lbl_8032657C:
|
||||
/* 8032657C A0 1E 00 44 */ lhz r0, 0x44(r30)
|
||||
/* 80326580 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80326584 41 82 00 34 */ beq lbl_803265B8
|
||||
/* 80326588 54 00 04 3E */ clrlwi r0, r0, 0x10
|
||||
/* 8032658C 1C 60 00 30 */ mulli r3, r0, 0x30
|
||||
/* 80326590 38 80 00 20 */ li r4, 0x20
|
||||
/* 80326594 4B FA 87 59 */ bl __nwa__FUli
|
||||
/* 80326598 80 99 00 14 */ lwz r4, 0x14(r25)
|
||||
/* 8032659C 7C 64 D9 2E */ stwx r3, r4, r27
|
||||
/* 803265A0 A0 1E 00 44 */ lhz r0, 0x44(r30)
|
||||
/* 803265A4 1C 60 00 24 */ mulli r3, r0, 0x24
|
||||
/* 803265A8 38 80 00 20 */ li r4, 0x20
|
||||
/* 803265AC 4B FA 87 41 */ bl __nwa__FUli
|
||||
/* 803265B0 80 99 00 1C */ lwz r4, 0x1c(r25)
|
||||
/* 803265B4 7C 64 D9 2E */ stwx r3, r4, r27
|
||||
lbl_803265B8:
|
||||
/* 803265B8 3B 5A 00 01 */ addi r26, r26, 1
|
||||
/* 803265BC 3B 7B 00 04 */ addi r27, r27, 4
|
||||
lbl_803265C0:
|
||||
/* 803265C0 7C 1A F8 40 */ cmplw r26, r31
|
||||
/* 803265C4 41 80 FF B8 */ blt lbl_8032657C
|
||||
/* 803265C8 3B 18 00 01 */ addi r24, r24, 1
|
||||
/* 803265CC 2C 18 00 02 */ cmpwi r24, 2
|
||||
/* 803265D0 3B 9C 00 04 */ addi r28, r28, 4
|
||||
/* 803265D4 41 80 FF 98 */ blt lbl_8032656C
|
||||
/* 803265D8 38 E0 00 00 */ li r7, 0
|
||||
/* 803265DC 38 60 00 00 */ li r3, 0
|
||||
lbl_803265E0:
|
||||
/* 803265E0 38 80 00 00 */ li r4, 0
|
||||
/* 803265E4 7C DD 1A 14 */ add r6, r29, r3
|
||||
/* 803265E8 7F E9 03 A6 */ mtctr r31
|
||||
/* 803265EC 28 1F 00 00 */ cmplwi r31, 0
|
||||
/* 803265F0 40 81 00 48 */ ble lbl_80326638
|
||||
lbl_803265F4:
|
||||
/* 803265F4 A0 1E 00 44 */ lhz r0, 0x44(r30)
|
||||
/* 803265F8 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 803265FC 41 82 00 34 */ beq lbl_80326630
|
||||
/* 80326600 80 A6 00 14 */ lwz r5, 0x14(r6)
|
||||
/* 80326604 7C 05 20 2E */ lwzx r0, r5, r4
|
||||
/* 80326608 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8032660C 40 82 00 0C */ bne lbl_80326618
|
||||
/* 80326610 38 60 00 04 */ li r3, 4
|
||||
/* 80326614 48 00 00 38 */ b lbl_8032664C
|
||||
lbl_80326618:
|
||||
/* 80326618 80 A6 00 1C */ lwz r5, 0x1c(r6)
|
||||
/* 8032661C 7C 05 20 2E */ lwzx r0, r5, r4
|
||||
/* 80326620 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80326624 40 82 00 0C */ bne lbl_80326630
|
||||
/* 80326628 38 60 00 04 */ li r3, 4
|
||||
/* 8032662C 48 00 00 20 */ b lbl_8032664C
|
||||
lbl_80326630:
|
||||
/* 80326630 38 84 00 04 */ addi r4, r4, 4
|
||||
/* 80326634 42 00 FF C0 */ bdnz lbl_803265F4
|
||||
lbl_80326638:
|
||||
/* 80326638 38 E7 00 01 */ addi r7, r7, 1
|
||||
/* 8032663C 2C 07 00 02 */ cmpwi r7, 2
|
||||
/* 80326640 38 63 00 04 */ addi r3, r3, 4
|
||||
/* 80326644 41 80 FF 9C */ blt lbl_803265E0
|
||||
/* 80326648 38 60 00 00 */ li r3, 0
|
||||
lbl_8032664C:
|
||||
/* 8032664C 39 61 00 30 */ addi r11, r1, 0x30
|
||||
/* 80326650 48 03 BB C5 */ bl _restgpr_24
|
||||
/* 80326654 80 01 00 34 */ lwz r0, 0x34(r1)
|
||||
/* 80326658 7C 08 03 A6 */ mtlr r0
|
||||
/* 8032665C 38 21 00 30 */ addi r1, r1, 0x30
|
||||
/* 80326660 4E 80 00 20 */ blr
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
lbl_8032648C:
|
||||
/* 8032648C 38 0D 83 F0 */ la r0, sNoUseDrawMtxPtr__12J3DMtxBuffer(r13) /* 80450970-_SDA_BASE_ */
|
||||
/* 80326490 90 03 00 18 */ stw r0, 0x18(r3)
|
||||
/* 80326494 90 03 00 14 */ stw r0, 0x14(r3)
|
||||
/* 80326498 38 0D 83 F4 */ la r0, sNoUseNrmMtxPtr__12J3DMtxBuffer(r13) /* 80450974-_SDA_BASE_ */
|
||||
/* 8032649C 90 03 00 20 */ stw r0, 0x20(r3)
|
||||
/* 803264A0 90 03 00 1C */ stw r0, 0x1c(r3)
|
||||
/* 803264A4 38 00 00 00 */ li r0, 0
|
||||
/* 803264A8 90 03 00 28 */ stw r0, 0x28(r3)
|
||||
/* 803264AC 90 03 00 24 */ stw r0, 0x24(r3)
|
||||
/* 803264B0 38 60 00 00 */ li r3, 0
|
||||
/* 803264B4 4E 80 00 20 */ blr
|
||||
|
|
@ -43,6 +43,8 @@ public:
|
|||
u16 getDrawFullWgtMtxNum() const { return mDrawMtxData.mDrawFullWgtMtxNum; }
|
||||
u16 getJointNum() const { return mJointNum; }
|
||||
u16 getDrawMtxNum() const { return mDrawMtxData.mEntryNum; }
|
||||
u8 getDrawMtxFlag(u16 idx) const { return mDrawMtxData.mDrawMtxFlag[idx]; }
|
||||
u8 getDrawMtxIndex(u16 idx) const { return mDrawMtxData.mDrawMtxIndex[idx]; }
|
||||
JUTNameTab* getJointName() const { return mJointName; }
|
||||
J3DJoint* getRootNode() { return mRootNode; }
|
||||
J3DJoint* getJointNodePointer(u16 idx) const { return mJointNodePointer[idx]; }
|
||||
|
|
|
|||
|
|
@ -26,26 +26,29 @@ public:
|
|||
|
||||
MtxP getAnmMtx(int idx) const { return mpAnmMtx[idx]; }
|
||||
|
||||
void setScaleFlag(int idx, u8 flag) { mScaleFlagArray[idx] = flag; }
|
||||
void setScaleFlag(int idx, u8 flag) { mpScaleFlagArr[idx] = flag; }
|
||||
u32* getCurrentViewNoPtr() { return &mCurrentViewNo; }
|
||||
u8* getScaleFlagArray() const { return mScaleFlagArray; }
|
||||
Mtx** getDrawMtxPtrPtr() const { return mpDrawMtxArr; }
|
||||
Mtx* getDrawMtxPtr() const { return mpDrawMtxArr[mCurrentViewNo]; }
|
||||
Mtx33** getNrmMtxPtrPtr() const { return mpNrmMtxArr; }
|
||||
Mtx33* getNrmMtxPtr() const { return mpNrmMtxArr[mCurrentViewNo]; }
|
||||
Mtx33*** getBumpMtxPtrPtr() const { return mpBumpMtxArr; }
|
||||
Mtx33* getBumpMtxPtr(int idx) const { return mpBumpMtxArr[idx][mCurrentViewNo]; }
|
||||
u8* getScaleFlagArray() const { return mpScaleFlagArr; }
|
||||
u8 getScaleFlag(u16 idx) const { return mpScaleFlagArr[idx]; }
|
||||
Mtx** getDrawMtxPtrPtr() const { return mpDrawMtxArr[0]; }
|
||||
Mtx* getDrawMtxPtr() const { return mpDrawMtxArr[0][mCurrentViewNo]; }
|
||||
Mtx* getDrawMtx(u16 idx) const { return &mpDrawMtxArr[0][mCurrentViewNo][idx]; }
|
||||
Mtx33** getNrmMtxPtrPtr() const { return mpNrmMtxArr[0]; }
|
||||
Mtx33* getNrmMtxPtr() const { return mpNrmMtxArr[0][mCurrentViewNo]; }
|
||||
Mtx33* getNrmMtx(u16 idx) const { return &mpNrmMtxArr[0][mCurrentViewNo][idx]; }
|
||||
Mtx33*** getBumpMtxPtrPtr() const { return mpBumpMtxArr[0]; }
|
||||
Mtx33* getBumpMtxPtr(int idx) const { return mpBumpMtxArr[0][idx][mCurrentViewNo]; }
|
||||
|
||||
void swapDrawMtx() {
|
||||
Mtx* tmp = mpOldDrawMtxArr[mCurrentViewNo];
|
||||
mpOldDrawMtxArr[mCurrentViewNo] = mpDrawMtxArr[mCurrentViewNo];
|
||||
mpDrawMtxArr[mCurrentViewNo] = tmp;
|
||||
Mtx* tmp = mpDrawMtxArr[0][mCurrentViewNo];
|
||||
mpDrawMtxArr[0][mCurrentViewNo] = mpDrawMtxArr[1][mCurrentViewNo];
|
||||
mpDrawMtxArr[1][mCurrentViewNo] = tmp;
|
||||
}
|
||||
|
||||
void swapNrmMtx() {
|
||||
Mtx33* tmp = mpOldNrmMtxArr[mCurrentViewNo];
|
||||
mpOldNrmMtxArr[mCurrentViewNo] = mpNrmMtxArr[mCurrentViewNo];
|
||||
mpNrmMtxArr[mCurrentViewNo] = tmp;
|
||||
Mtx33* tmp = mpNrmMtxArr[0][mCurrentViewNo];
|
||||
mpNrmMtxArr[0][mCurrentViewNo] = mpNrmMtxArr[1][mCurrentViewNo];
|
||||
mpNrmMtxArr[1][mCurrentViewNo] = tmp;
|
||||
}
|
||||
|
||||
static Mtx sNoUseDrawMtx;
|
||||
|
|
@ -55,19 +58,16 @@ public:
|
|||
|
||||
private:
|
||||
/* 0x00 */ J3DJointTree* mJointTree;
|
||||
/* 0x04 */ u8* mScaleFlagArray;
|
||||
/* 0x08 */ u8* mEnvScaleFlag;
|
||||
/* 0x04 */ u8* mpScaleFlagArr;
|
||||
/* 0x08 */ u8* mpEvlpScaleFlagArr;
|
||||
/* 0x0C */ Mtx* mpAnmMtx;
|
||||
/* 0x10 */ Mtx* mpWeightEnvMtx;
|
||||
/* 0x14 */ Mtx** mpOldDrawMtxArr;
|
||||
/* 0x18 */ Mtx** mpDrawMtxArr;
|
||||
/* 0x1C */ Mtx33** mpOldNrmMtxArr;
|
||||
/* 0x20 */ Mtx33** mpNrmMtxArr;
|
||||
/* 0x24 */ u32 field_0x24;
|
||||
/* 0x28 */ Mtx33*** mpBumpMtxArr;
|
||||
/* 0x10 */ Mtx* mpWeightEvlpMtx;
|
||||
/* 0x14 */ Mtx** mpDrawMtxArr[2];
|
||||
/* 0x1C */ Mtx33** mpNrmMtxArr[2];
|
||||
/* 0x28 */ Mtx33*** mpBumpMtxArr[2];
|
||||
/* 0x2C */ u32 mFlags;
|
||||
/* 0x30 */ u32 mCurrentViewNo;
|
||||
/* 0x34 */ Mtx** mUserAnmMtx;
|
||||
/* 0x34 */ Mtx* mpUserAnmMtx;
|
||||
|
||||
public:
|
||||
/* 803283B4 */ virtual ~J3DMtxBuffer();
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
//
|
||||
|
||||
#include "JSystem/J3DGraphAnimator/J3DMtxBuffer.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "mtx/mtx.h"
|
||||
|
|
@ -58,19 +59,19 @@ extern "C" void _restgpr_29();
|
|||
/* 80326214-80326258 320B54 0044+00 0/0 1/1 0/0 .text initialize__12J3DMtxBufferFv */
|
||||
void J3DMtxBuffer::initialize() {
|
||||
mJointTree = NULL;
|
||||
mScaleFlagArray = NULL;
|
||||
mEnvScaleFlag = NULL;
|
||||
mpScaleFlagArr = NULL;
|
||||
mpEvlpScaleFlagArr = NULL;
|
||||
mpAnmMtx = NULL;
|
||||
mpWeightEnvMtx = NULL;
|
||||
mpOldDrawMtxArr = NULL;
|
||||
mpDrawMtxArr = NULL;
|
||||
mpOldNrmMtxArr = NULL;
|
||||
mpNrmMtxArr = NULL;
|
||||
field_0x24 = NULL; // mpOldBumpMtxArr?
|
||||
mpBumpMtxArr = NULL;
|
||||
mpWeightEvlpMtx = NULL;
|
||||
mpDrawMtxArr[0] = NULL;
|
||||
mpDrawMtxArr[1] = NULL;
|
||||
mpNrmMtxArr[0] = NULL;
|
||||
mpNrmMtxArr[1] = NULL;
|
||||
mpBumpMtxArr[0] = NULL;
|
||||
mpBumpMtxArr[1] = NULL;
|
||||
mFlags = 1;
|
||||
mCurrentViewNo = 0;
|
||||
mUserAnmMtx = NULL;
|
||||
mpUserAnmMtx = NULL;
|
||||
}
|
||||
|
||||
/* 80326258-80326364 320B98 010C+00 0/0 1/1 0/0 .text create__12J3DMtxBufferFP12J3DModelDataUl */
|
||||
|
|
@ -128,25 +129,34 @@ s32 J3DMtxBuffer::create(J3DModelData* p_modelData, u32 flag) {
|
|||
|
||||
/* 80326364-803263F0 320CA4 008C+00 1/1 0/0 0/0 .text createAnmMtx__12J3DMtxBufferFP12J3DModelData
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 J3DMtxBuffer::createAnmMtx(J3DModelData* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMtxBuffer/createAnmMtx__12J3DMtxBufferFP12J3DModelData.s"
|
||||
s32 J3DMtxBuffer::createAnmMtx(J3DModelData* p_modelData) {
|
||||
if (p_modelData->getJointNum() != 0) {
|
||||
mpScaleFlagArr = new u8[p_modelData->getJointNum()];
|
||||
mpAnmMtx = new Mtx[p_modelData->getJointNum()];
|
||||
mpUserAnmMtx = mpAnmMtx;
|
||||
}
|
||||
|
||||
if (mpScaleFlagArr == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
|
||||
return mpAnmMtx == NULL ? kJ3DError_Alloc : kJ3DError_Success;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803263F0-8032648C 320D30 009C+00 1/1 0/0 0/0 .text
|
||||
* createWeightEnvelopeMtx__12J3DMtxBufferFP12J3DModelData */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 J3DMtxBuffer::createWeightEnvelopeMtx(J3DModelData* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMtxBuffer/createWeightEnvelopeMtx__12J3DMtxBufferFP12J3DModelData.s"
|
||||
s32 J3DMtxBuffer::createWeightEnvelopeMtx(J3DModelData* p_modelData) {
|
||||
if (p_modelData->getWEvlpMtxNum() != 0) {
|
||||
mpEvlpScaleFlagArr = new u8[p_modelData->getWEvlpMtxNum()];
|
||||
mpWeightEvlpMtx = new Mtx[p_modelData->getWEvlpMtxNum()];
|
||||
}
|
||||
|
||||
if (p_modelData->getWEvlpMtxNum() != 0 && mpEvlpScaleFlagArr == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
if (p_modelData->getWEvlpMtxNum() != 0 && mpWeightEvlpMtx == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
|
||||
return kJ3DError_Success;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804371C0-804371F0 063EE0 0030+00 1/0 0/0 0/0 .bss sNoUseDrawMtx__12J3DMtxBuffer */
|
||||
|
|
@ -163,25 +173,58 @@ Mtx33* J3DMtxBuffer::sNoUseNrmMtxPtr = &J3DMtxBuffer::sNoUseNrmMtx;
|
|||
|
||||
/* 8032648C-803264B8 320DCC 002C+00 1/1 0/0 0/0 .text setNoUseDrawMtx__12J3DMtxBufferFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 J3DMtxBuffer::setNoUseDrawMtx() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMtxBuffer/setNoUseDrawMtx__12J3DMtxBufferFv.s"
|
||||
s32 J3DMtxBuffer::setNoUseDrawMtx() {
|
||||
mpDrawMtxArr[1] = &sNoUseDrawMtxPtr;
|
||||
mpDrawMtxArr[0] = &sNoUseDrawMtxPtr;
|
||||
mpNrmMtxArr[1] = &sNoUseNrmMtxPtr;
|
||||
mpNrmMtxArr[0] = &sNoUseNrmMtxPtr;
|
||||
mpBumpMtxArr[1] = NULL;
|
||||
mpBumpMtxArr[0] = NULL;
|
||||
return kJ3DError_Success;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803264B8-80326664 320DF8 01AC+00 1/1 0/0 0/0 .text
|
||||
* createDoubleDrawMtx__12J3DMtxBufferFP12J3DModelDataUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 J3DMtxBuffer::createDoubleDrawMtx(J3DModelData* param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMtxBuffer/createDoubleDrawMtx__12J3DMtxBufferFP12J3DModelDataUl.s"
|
||||
s32 J3DMtxBuffer::createDoubleDrawMtx(J3DModelData* p_modelData, u32 num) {
|
||||
if (num != 0) {
|
||||
for (s32 i = 0; i < 2; i++) {
|
||||
mpDrawMtxArr[i] = new Mtx*[num];
|
||||
mpNrmMtxArr[i] = new Mtx33*[num];
|
||||
mpBumpMtxArr[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (num != 0) {
|
||||
for (u32 i = 0; i < 2; i++) {
|
||||
if (mpDrawMtxArr[i] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
if (mpNrmMtxArr[i] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
}
|
||||
}
|
||||
|
||||
for (s32 i = 0; i < 2; i++) {
|
||||
for (u32 j = 0; j < num; j++) {
|
||||
if (p_modelData->getDrawMtxNum() != 0) {
|
||||
mpDrawMtxArr[i][j] = new (0x20) Mtx[p_modelData->getDrawMtxNum()];
|
||||
mpNrmMtxArr[i][j] = new (0x20) Mtx33[p_modelData->getDrawMtxNum()];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (s32 i = 0; i < 2; i++) {
|
||||
for (u32 j = 0; j < num; j++) {
|
||||
if (p_modelData->getDrawMtxNum() != 0) {
|
||||
if (mpDrawMtxArr[i][j] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
if (mpNrmMtxArr[i][j] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return kJ3DError_Success;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80326664-803268D4 320FA4 0270+00 1/1 0/0 0/0 .text
|
||||
* createBumpMtxArray__12J3DMtxBufferFP12J3DModelDataUl */
|
||||
|
|
@ -221,6 +264,8 @@ asm void J3DMtxBuffer::calcDrawMtx(u32 param_0, Vec const& param_1, f32 const (&
|
|||
}
|
||||
#pragma pop
|
||||
|
||||
extern void J3DPSCalcInverseTranspose(Mtx p1, Mtx33 p2);
|
||||
|
||||
/* 80326D3C-80326EF0 32167C 01B4+00 0/0 1/1 0/0 .text calcNrmMtx__12J3DMtxBufferFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
|
|
|
|||
Loading…
Reference in New Issue