mirror of https://github.com/zeldaret/tp.git
d_stage linked and one function in m_do_ext matched (#2272)
This commit is contained in:
parent
0e281cb975
commit
78d206c1a3
|
|
@ -442,7 +442,7 @@ config.libs = [
|
|||
"progress_category": "game",
|
||||
"host": True,
|
||||
"objects": [
|
||||
Object(NonMatching, "d/d_stage.cpp"),
|
||||
Object(Matching, "d/d_stage.cpp"),
|
||||
Object(Matching, "d/d_map.cpp"),
|
||||
Object(Matching, "d/d_com_inf_game.cpp", extra_cflags=['-pragma "nosyminline on"']),
|
||||
Object(Matching, "d/d_com_static.cpp"),
|
||||
|
|
|
|||
|
|
@ -99,6 +99,10 @@ volatile PPCWGPipe GXWGFifo AT_ADDRESS(GXFIFO_ADDR);
|
|||
GX_XF_LOAD_REG_HDR(cmd); \
|
||||
}
|
||||
|
||||
static inline void GXNormal1x16(const u16 x) {
|
||||
GXWGFifo.u16 = x;
|
||||
}
|
||||
|
||||
static inline void GXPosition3f32(const f32 x, const f32 y, const f32 z) {
|
||||
GXWGFifo.f32 = x;
|
||||
GXWGFifo.f32 = y;
|
||||
|
|
@ -145,6 +149,10 @@ static inline void GXTexCoord1x8(const u8 s) {
|
|||
GXWGFifo.u8 = s;
|
||||
}
|
||||
|
||||
static inline void GXTexCoord1x16(const u16 s) {
|
||||
GXWGFifo.u16 = s;
|
||||
}
|
||||
|
||||
static inline void GXPosition2u16(const u16 x, const u16 y) {
|
||||
GXWGFifo.u16 = x;
|
||||
GXWGFifo.u16 = y;
|
||||
|
|
|
|||
|
|
@ -526,18 +526,18 @@ public:
|
|||
/* 800134F8 */ void setMaterial();
|
||||
/* 800135D0 */ void draw();
|
||||
|
||||
cXyz* getPos(int i_idx) { return field_0x38[i_idx].field_0x0; }
|
||||
f32* getSize(int i_idx) { return field_0x38[i_idx].field_0x4; }
|
||||
cXyz* getPos(int i_idx) { return mpLines[i_idx].field_0x0; }
|
||||
f32* getSize(int i_idx) { return mpLines[i_idx].field_0x4; }
|
||||
|
||||
private:
|
||||
/* 0x08 */ GXTexObj field_0x8;
|
||||
/* 0x28 */ GXColor field_0x28;
|
||||
/* 0x2C */ dKy_tevstr_c* field_0x2c;
|
||||
/* 0x30 */ u16 field_0x30;
|
||||
/* 0x08 */ GXTexObj mTextureObject;
|
||||
/* 0x28 */ GXColor mColor;
|
||||
/* 0x2C */ dKy_tevstr_c* mpTevStr;
|
||||
/* 0x30 */ u16 mNumLines;
|
||||
/* 0x32 */ u16 field_0x32;
|
||||
/* 0x34 */ u16 field_0x34;
|
||||
/* 0x36 */ u8 field_0x36;
|
||||
/* 0x38 */ mDoExt_3Dline_c* field_0x38;
|
||||
/* 0x36 */ u8 mIsDrawn;
|
||||
/* 0x38 */ mDoExt_3Dline_c* mpLines;
|
||||
};
|
||||
|
||||
class mDoExt_3DlineMat0_c : public mDoExt_3DlineMat_c {
|
||||
|
|
|
|||
|
|
@ -2729,7 +2729,6 @@ stage_scls_info_dummy_class* dStage_stageDt_c::getSclsInfo() const {
|
|||
}
|
||||
|
||||
/* 800272F0-800274B0 021C30 01C0+00 0/0 1/1 0/0 .text dStage_changeScene4Event__FiScibfUlsi */
|
||||
// NONMATCHING regalloc
|
||||
int dStage_changeScene4Event(int i_exitId, s8 room_no, int i_wipe, bool param_3, f32 speed,
|
||||
u32 mode, s16 angle, int param_7) {
|
||||
stage_scls_info_dummy_class* scls;
|
||||
|
|
@ -2748,19 +2747,8 @@ int dStage_changeScene4Event(int i_exitId, s8 room_no, int i_wipe, bool param_3,
|
|||
|
||||
stage_scls_info_class* scls_info = &scls->mEntries[i_exitId];
|
||||
|
||||
s32 wipe;
|
||||
s32 wipe_time;
|
||||
if (i_wipe == -1) {
|
||||
wipe = dStage_sclsInfo_getWipe(scls_info);
|
||||
} else {
|
||||
wipe = i_wipe;
|
||||
}
|
||||
|
||||
if (i_wipe == -1) {
|
||||
wipe_time = dStage_sclsInfo_getWipeTime(scls_info);
|
||||
} else {
|
||||
wipe_time = 0;
|
||||
}
|
||||
s32 wipe = i_wipe == -1 ? dStage_sclsInfo_getWipe(scls_info) : i_wipe;
|
||||
s32 wipe_time = i_wipe == -1 ? dStage_sclsInfo_getWipeTime(scls_info) : 0;
|
||||
|
||||
s32 layer = dStage_sclsInfo_getSceneLayer(scls_info);
|
||||
int timeH = dStage_sclsInfo_getTimeH(scls_info);
|
||||
|
|
@ -3495,12 +3483,3 @@ int dStage_stageDt_c::getMapPath(void) {
|
|||
void dStage_stageDt_c::setElst(dStage_Elst_c* i_Elst) {
|
||||
mElst = i_Elst;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450D7C-80450D80 -00001 0004+00 0/0 0/0 0/0 .sbss None */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
static u8 pad_80450D7C[4];
|
||||
#pragma pop
|
||||
|
||||
/* 80378A50-80378A50 0050B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
*/
|
||||
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
|
||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||
#include "JSystem/JKernel/JKRAssertHeap.h"
|
||||
|
|
@ -2340,8 +2341,37 @@ void mDoExt_3DlineMat1_c::setMaterial() {
|
|||
}
|
||||
|
||||
/* 800135D0-8001373C 00DF10 016C+00 1/0 0/0 0/0 .text draw__19mDoExt_3DlineMat1_cFv */
|
||||
// NONMATCHING- some smaller issues
|
||||
void mDoExt_3DlineMat1_c::draw() {
|
||||
// NONMATCHING
|
||||
GXLoadTexObj(&mTextureObject, GX_TEXMAP0);
|
||||
GXSetTexCoordScaleManually(GX_TEXCOORD0, 1, GXGetTexObjWidth(&mTextureObject), GXGetTexObjHeight(&mTextureObject));
|
||||
GXSetTevColor(GX_TEVREG2, mColor);
|
||||
if (mpTevStr != NULL) {
|
||||
dKy_Global_amb_set(mpTevStr);
|
||||
}
|
||||
mDoExt_3Dline_c* lines = mpLines;
|
||||
s32 vert_num = (field_0x34 & 0x7fff) << 1;
|
||||
for (s32 i = 0; i < mNumLines; i++) {
|
||||
GXSetArray(GX_VA_POS, lines[mIsDrawn].field_0x8, 0xC);
|
||||
GXSetArray(GX_VA_NRM, lines[mIsDrawn].field_0x10, 0x3);
|
||||
GXSetArray(GX_VA_TEX0, lines[mIsDrawn].field_0x18, 0x8);
|
||||
GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, vert_num);
|
||||
|
||||
s16 tempJ;
|
||||
for (u32 j = 0; j < (u32)field_0x34; j += 1) {
|
||||
GXPosition1x16(j);
|
||||
GXNormal1x16(j);
|
||||
GXTexCoord1x16(j);
|
||||
tempJ = j + 1;
|
||||
GXPosition1x16(tempJ);
|
||||
GXNormal1x16(tempJ);
|
||||
GXTexCoord1x16(tempJ);
|
||||
}
|
||||
GXEnd();
|
||||
lines++;
|
||||
}
|
||||
GXSetTexCoordScaleManually(GX_TEXCOORD0, 0, 0, 0);
|
||||
mIsDrawn ^= 1;
|
||||
}
|
||||
|
||||
/* 8001373C-80013FB0 00E07C 0874+00 0/0 0/0 6/6 .text
|
||||
|
|
@ -2359,8 +2389,12 @@ void mDoExt_3DlineMat1_c::update(int param_0, _GXColor& param_1, dKy_tevstr_c* p
|
|||
|
||||
/* 80014738-8001479C 00F078 0064+00 0/0 0/0 29/29 .text
|
||||
* setMat__26mDoExt_3DlineMatSortPacketFP18mDoExt_3DlineMat_c */
|
||||
void mDoExt_3DlineMatSortPacket::setMat(mDoExt_3DlineMat_c* param_0) {
|
||||
// NONMATCHING
|
||||
void mDoExt_3DlineMatSortPacket::setMat(mDoExt_3DlineMat_c* i_3DlineMat) {
|
||||
if (mp3DlineMat == NULL) {
|
||||
dComIfGd_getListPacket()->entryImm(this, 0);
|
||||
}
|
||||
i_3DlineMat->field_0x4 = mp3DlineMat;
|
||||
mp3DlineMat = i_3DlineMat;
|
||||
}
|
||||
|
||||
/* 8001479C-80014804 00F0DC 0068+00 1/0 0/0 0/0 .text draw__26mDoExt_3DlineMatSortPacketFv */
|
||||
|
|
|
|||
Loading…
Reference in New Issue