diff options
| author | Trueffel <106771418+Trueffeloot@users.noreply.github.com> | 2024-12-29 16:56:25 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-29 17:56:25 +0200 |
| commit | 78d206c1a353bcb9b8bae5489549507c57eb4a96 (patch) | |
| tree | 3457b47c10435a2ad88bec1214ea49c2ae7d3240 /src/m_Do/m_Do_ext.cpp | |
| parent | 0e281cb97535523a3d1a4f668bc84321bc39fb46 (diff) | |
d_stage linked and one function in m_do_ext matched (#2272)
Diffstat (limited to 'src/m_Do/m_Do_ext.cpp')
| -rw-r--r-- | src/m_Do/m_Do_ext.cpp | 40 |
1 files changed, 37 insertions, 3 deletions
diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp index 228ece62dc..3c7767ee66 100644 --- a/src/m_Do/m_Do_ext.cpp +++ b/src/m_Do/m_Do_ext.cpp @@ -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 */ |
