mirror of
https://github.com/zeldaret/tp
synced 2026-07-08 14:36:36 -04:00
d_a_kytag06 fully done / d_msg_class/object work (#300)
* d_a_kytag06 OK and d_msg_class/object wip * add some GXDraw functions * cleanup kytag6 * remove asm
This commit is contained in:
@@ -1857,7 +1857,7 @@ JKRExpHeap* dComIfGp_getSubHeap2D(int flag) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int dComIfGs_checkGetInsectNum() {
|
||||
u8 dComIfGs_checkGetInsectNum() {
|
||||
static u8 l_itemno[24] = {
|
||||
M_BEETLE, F_BEETLE, M_BUTTERFLY, F_BUTTERFLY, M_STAG_BEETLE, F_STAG_BEETLE,
|
||||
M_GRASSHOPPER, F_GRASSHOPPER, M_NANAFUSHI, F_NANAFUSHI, M_DANGOMUSHI, F_DANGOMUSHI,
|
||||
@@ -1865,7 +1865,7 @@ int dComIfGs_checkGetInsectNum() {
|
||||
M_DRAGONFLY, F_DRAGONFLY, M_ANT, F_ANT, M_MAYFLY, F_MAYFLY,
|
||||
};
|
||||
|
||||
int insectCount = 0;
|
||||
u8 insectCount = 0;
|
||||
u8* insectList = l_itemno;
|
||||
|
||||
for (int i = 0; i < ARRAY_SIZE(l_itemno); i++) {
|
||||
|
||||
@@ -116,7 +116,6 @@ extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_24();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* g_fopMsg_Method[5 + 1 /* padding */];
|
||||
extern "C" extern void* __vt__12dDlst_base_c[3];
|
||||
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
|
||||
extern "C" extern void* __vt__14mDoHIO_entry_c[3];
|
||||
|
||||
@@ -11,10 +11,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct kankyo_class {};
|
||||
|
||||
|
||||
|
||||
@@ -14,10 +14,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct dEvt_control_c {
|
||||
/* 800434D8 */ void searchMapEventData(u8);
|
||||
};
|
||||
|
||||
@@ -141,7 +141,6 @@ extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" void __div2i();
|
||||
extern "C" extern void* g_fopMsg_Method[5 + 1 /* padding */];
|
||||
extern "C" extern void* __vt__12dDlst_base_c[3];
|
||||
extern "C" extern u8 g_drawHIO[3880];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
|
||||
@@ -11,10 +11,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct mDoGph_gInf_c {
|
||||
static u8 mFader[4];
|
||||
};
|
||||
|
||||
@@ -257,7 +257,6 @@ extern "C" void _savegpr_28();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* g_fopMsg_Method[5 + 1 /* padding */];
|
||||
extern "C" extern void* __vt__12dDlst_base_c[3];
|
||||
extern "C" extern void* __vt__10CSTControl[4];
|
||||
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
|
||||
|
||||
+2799
-1958
File diff suppressed because it is too large
Load Diff
+24
-25
@@ -350,7 +350,6 @@ extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" u8 const tempBitLabels__20dSv_event_tmp_flag_c[370 + 2 /* padding */];
|
||||
extern "C" extern void* g_fopMsg_Method[5 + 1 /* padding */];
|
||||
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
|
||||
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
|
||||
extern "C" u8 m_control__7dDemo_c[4];
|
||||
@@ -678,7 +677,7 @@ asm void dMsgObject_c::setMessageIndexDemo(u32 param_0, bool param_1) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::getMessageIndex(u32 param_0) {
|
||||
asm int dMsgObject_c::getMessageIndex(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/getMessageIndex__12dMsgObject_cFUl.s"
|
||||
}
|
||||
@@ -992,13 +991,13 @@ asm void dMsgObject_c::getStringLocal(u32 param_0, J2DTextBox* param_1, J2DTextB
|
||||
|
||||
/* 802370A8-802370BC 2319E8 0014+00 0/0 1/1 0/0 .text isGetItemMessage__12dMsgObject_cFv
|
||||
*/
|
||||
BOOL dMsgObject_c::isGetItemMessage() {
|
||||
u8 dMsgObject_c::isGetItemMessage() {
|
||||
return mFukiKind == 9;
|
||||
}
|
||||
|
||||
/* 802370BC-802370E8 2319FC 002C+00 4/4 2/2 0/0 .text isKanbanMessage__12dMsgObject_cFv
|
||||
*/
|
||||
BOOL dMsgObject_c::isKanbanMessage() {
|
||||
bool dMsgObject_c::isKanbanMessage() {
|
||||
if (mFukiKind == 2 || mFukiKind == 6 || mFukiKind == 15) {
|
||||
return true;
|
||||
}
|
||||
@@ -1006,7 +1005,7 @@ BOOL dMsgObject_c::isKanbanMessage() {
|
||||
}
|
||||
|
||||
/* 802370E8-802370FC 231A28 0014+00 6/6 3/3 0/0 .text isHowlMessage__12dMsgObject_cFv */
|
||||
BOOL dMsgObject_c::isHowlMessage() {
|
||||
u8 dMsgObject_c::isHowlMessage() {
|
||||
return mFukiKind == 17;
|
||||
}
|
||||
|
||||
@@ -1025,7 +1024,7 @@ asm bool dMsgObject_c::isMidonaMessage() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::isMidonaNormalTalkWait() {
|
||||
asm bool dMsgObject_c::isMidonaNormalTalkWait() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/isMidonaNormalTalkWait__12dMsgObject_cFv.s"
|
||||
}
|
||||
@@ -1036,7 +1035,7 @@ asm void dMsgObject_c::isMidonaNormalTalkWait() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::isMidonaTalkWait() {
|
||||
asm bool dMsgObject_c::isMidonaTalkWait() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/isMidonaTalkWait__12dMsgObject_cFv.s"
|
||||
}
|
||||
@@ -1046,7 +1045,7 @@ asm void dMsgObject_c::isMidonaTalkWait() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::isPlaceMessage() {
|
||||
asm bool dMsgObject_c::isPlaceMessage() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/isPlaceMessage__12dMsgObject_cFv.s"
|
||||
}
|
||||
@@ -1056,7 +1055,7 @@ asm void dMsgObject_c::isPlaceMessage() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::isBossMessage() {
|
||||
asm bool dMsgObject_c::isBossMessage() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/isBossMessage__12dMsgObject_cFv.s"
|
||||
}
|
||||
@@ -1071,7 +1070,7 @@ bool dMsgObject_c::isBookMessage() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::isStaffMessage() {
|
||||
asm bool dMsgObject_c::isStaffMessage() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/isStaffMessage__12dMsgObject_cFv.s"
|
||||
}
|
||||
@@ -1081,7 +1080,7 @@ asm void dMsgObject_c::isStaffMessage() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::isSaveMessage() {
|
||||
asm bool dMsgObject_c::isSaveMessage() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/isSaveMessage__12dMsgObject_cFv.s"
|
||||
}
|
||||
@@ -1091,7 +1090,7 @@ asm void dMsgObject_c::isSaveMessage() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::isTalkMessage() {
|
||||
asm bool dMsgObject_c::isTalkMessage() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/isTalkMessage__12dMsgObject_cFv.s"
|
||||
}
|
||||
@@ -1101,27 +1100,27 @@ asm void dMsgObject_c::isTalkMessage() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::getSmellName() {
|
||||
asm const char* dMsgObject_c::getSmellName() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/getSmellName__12dMsgObject_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80237334-8023738C 231C74 0058+00 0/0 5/5 0/0 .text getPortalName__12dMsgObject_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::getPortalName() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/getPortalName__12dMsgObject_cFv.s"
|
||||
const char* dMsgObject_c::getPortalName() {
|
||||
JMSMesgHeader_c* info_header_p = (JMSMesgHeader_c*)((char*)mpMsgRes + 0x20);
|
||||
char* data_ptr = (char*)info_header_p + info_header_p->sectionSize;
|
||||
JMSMesgEntry_c* info_entries = (JMSMesgEntry_c*)((char*)info_header_p + 0x10);
|
||||
|
||||
JMSMesgEntry_c* msg_entry = &info_entries[getMessageIndex(getPortalMessageID())];
|
||||
return data_ptr + msg_entry->mStringOffset + 8;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8023738C-8023741C 231CCC 0090+00 0/0 5/5 0/0 .text getBombName__12dMsgObject_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::getBombName() {
|
||||
asm const char* dMsgObject_c::getBombName() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/getBombName__12dMsgObject_cFv.s"
|
||||
}
|
||||
@@ -1131,7 +1130,7 @@ asm void dMsgObject_c::getBombName() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::getInsectName() {
|
||||
asm const char* dMsgObject_c::getInsectName() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/getInsectName__12dMsgObject_cFv.s"
|
||||
}
|
||||
@@ -1141,7 +1140,7 @@ asm void dMsgObject_c::getInsectName() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::getLetterName() {
|
||||
asm const char* dMsgObject_c::getLetterName() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/getLetterName__12dMsgObject_cFv.s"
|
||||
}
|
||||
@@ -1152,7 +1151,7 @@ asm void dMsgObject_c::getLetterName() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::getSelectBombNum() {
|
||||
asm u8 dMsgObject_c::getSelectBombNum() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/getSelectBombNum__12dMsgObject_cFv.s"
|
||||
}
|
||||
@@ -1959,7 +1958,7 @@ asm void dMsgObject_c::getMsgOutputType() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::getWord() {
|
||||
asm const char* dMsgObject_c::getWord() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/getWord__12dMsgObject_cFv.s"
|
||||
}
|
||||
|
||||
@@ -8,31 +8,6 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct jmessage_string_tControl {
|
||||
/* 8022FB5C */ jmessage_string_tControl();
|
||||
};
|
||||
|
||||
struct COutFont_c {};
|
||||
|
||||
struct jmessage_string_tReference {
|
||||
/* 8022F8C0 */ jmessage_string_tReference();
|
||||
/* 8022F9AC */ void init(J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, u8);
|
||||
/* 8022FA38 */ void getLineLength(int);
|
||||
};
|
||||
|
||||
struct jmessage_string_tSequenceProcessor {
|
||||
/* 80230A08 */ jmessage_string_tSequenceProcessor(jmessage_string_tReference const*,
|
||||
jmessage_string_tControl*);
|
||||
};
|
||||
|
||||
struct jmessage_string_tRenderingProcessor {
|
||||
/* 80230BC8 */ jmessage_string_tRenderingProcessor(jmessage_string_tReference const*);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
@@ -5,21 +5,8 @@
|
||||
|
||||
#include "d/msg/d_msg_unit.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct dScnKy_env_light_c {
|
||||
/* 8019FA08 */ void getDaytime();
|
||||
};
|
||||
|
||||
struct dMsgUnit_c {
|
||||
/* 80238C94 */ dMsgUnit_c();
|
||||
/* 80238CA4 */ ~dMsgUnit_c();
|
||||
/* 80238CEC */ void setTag(int, int, char*, bool);
|
||||
};
|
||||
#include "d/kankyo/d_kankyo.h"
|
||||
#include "d/meter/d_meter2_info.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
@@ -41,45 +28,16 @@ extern "C" void __dl__FPv();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void sprintf();
|
||||
extern "C" void strcmp();
|
||||
extern "C" void strcat();
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
extern "C" extern u8 g_meter2_info[248];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C0BF0-803C0C00 01DD10 000C+04 2/2 0/0 0/0 .data __vt__10dMsgUnit_c */
|
||||
SECTION_DATA extern void* __vt__10dMsgUnit_c[3 + 1 /* padding */] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__10dMsgUnit_cFv,
|
||||
/* padding */
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 80238C94-80238CA4 2335D4 0010+00 1/1 0/0 0/0 .text __ct__10dMsgUnit_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dMsgUnit_c::dMsgUnit_c() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_unit/__ct__10dMsgUnit_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
dMsgUnit_c::dMsgUnit_c() {}
|
||||
|
||||
/* 80238CA4-80238CEC 2335E4 0048+00 2/1 0/0 0/0 .text __dt__10dMsgUnit_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dMsgUnit_c::~dMsgUnit_c() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_unit/__dt__10dMsgUnit_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
dMsgUnit_c::~dMsgUnit_c() {}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803996E8-803996E8 025D48 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -121,32 +79,12 @@ asm void dMsgUnit_c::setTag(int param_0, int param_1, char* param_2, bool param_
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804306B8-804306C8 05D3D8 000C+04 1/1 0/0 0/0 .bss @3640 */
|
||||
static u8 lit_3640[12 + 4 /* padding */];
|
||||
|
||||
/* 804510D0-804510D8 0005D0 0004+04 1/1 5/5 0/0 .sbss g_msg_unit */
|
||||
extern u8 g_msg_unit[4 + 4 /* padding */];
|
||||
u8 g_msg_unit[4 + 4 /* padding */];
|
||||
|
||||
/* 8023907C-802390B4 2339BC 0038+00 0/0 1/0 0/0 .text __sinit_d_msg_unit_cpp */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __sinit_d_msg_unit_cpp() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_unit/__sinit_d_msg_unit_cpp.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
REGISTER_CTORS(0x8023907C, __sinit_d_msg_unit_cpp);
|
||||
#pragma pop
|
||||
dMsgUnit_c g_msg_unit;
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804510D8-804510E0 0005D8 0008+00 0/0 2/2 0/0 .sbss None */
|
||||
extern u8 data_804510D8[8];
|
||||
u8 data_804510D8[8];
|
||||
u8 data_804510D8[8] ALIGN_DECL(8);
|
||||
|
||||
/* 803996E8-803996E8 025D48 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
*/
|
||||
|
||||
#include "f_op/f_op_msg.h"
|
||||
#include "d/msg/d_msg_class.h"
|
||||
#include "d/s/d_s_play.h"
|
||||
#include "f_op/f_op_msg_mng.h"
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/mtx/mtx.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "dolphin/gx/GXDraw.h"
|
||||
#include "d/kankyo/d_kankyo.h"
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
|
||||
@@ -3278,6 +3279,102 @@ extern "C" asm void draw__26mDoExt_3DlineMatSortPacketFv() {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
void drawCube(MtxP mtx, cXyz* pos, const GXColor& color) {
|
||||
GXSetArray(GX_VA_POS, pos, sizeof(cXyz));
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_INDEX8);
|
||||
GXSetNumChans(1);
|
||||
GXSetChanCtrl(GX_COLOR0, GX_DISABLE, GX_SRC_REG, GX_SRC_REG, GX_LIGHT_NULL, GX_DF_CLAMP, GX_AF_NONE);
|
||||
GXSetNumTexGens(0);
|
||||
GXSetNumTevStages(1);
|
||||
GXSetTevColor(GX_TEVREG0, color);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_ENABLE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_ENABLE, GX_TEVPREV);
|
||||
GXSetZMode(GX_ENABLE, GX_LEQUAL, GX_ENABLE);
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR);
|
||||
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0);
|
||||
GXSetCullMode(GX_CULL_BACK);
|
||||
GXSetClipMode(GX_CLIP_ENABLE);
|
||||
GXLoadPosMtxImm(mtx, 0);
|
||||
GXSetCurrentMtx(0);
|
||||
|
||||
GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 14);
|
||||
GXPosition1x8(4);
|
||||
GXPosition1x8(6);
|
||||
GXPosition1x8(5);
|
||||
GXPosition1x8(7);
|
||||
GXPosition1x8(3);
|
||||
GXPosition1x8(6);
|
||||
GXPosition1x8(2);
|
||||
GXPosition1x8(4);
|
||||
GXPosition1x8(0);
|
||||
GXPosition1x8(5);
|
||||
GXPosition1x8(1);
|
||||
GXPosition1x8(3);
|
||||
GXPosition1x8(0);
|
||||
GXPosition1x8(2);
|
||||
i_GXEnd();
|
||||
}
|
||||
|
||||
void mDoExt_cubePacket::draw() {
|
||||
static cXyz l_pos[8] = {
|
||||
cXyz(-1.0f, 1.0f, -1.0f),
|
||||
cXyz(1.0f, 1.0f, -1.0f),
|
||||
cXyz(-1.0f, 1.0f, 1.0f),
|
||||
cXyz(1.0f, 1.0f, 1.0f),
|
||||
cXyz(-1.0f, -1.0f, -1.0f),
|
||||
cXyz(1.0f, -1.0f, -1.0f),
|
||||
cXyz(-1.0f, -1.0f, 1.0f),
|
||||
cXyz(1.0f, -1.0f, 1.0f),
|
||||
};
|
||||
|
||||
mDoMtx_stack_c::transS(mPosition.x, mPosition.y, mPosition.z);
|
||||
mDoMtx_stack_c::XYZrotM(mAngle.x, mAngle.y, mAngle.z);
|
||||
mDoMtx_stack_c::scaleM(mSize.x, mSize.y, mSize.z);
|
||||
mDoMtx_stack_c::revConcat(j3dSys.getViewMtx());
|
||||
drawCube(mDoMtx_stack_c::get(), l_pos, mColor);
|
||||
}
|
||||
|
||||
void mDoExt_cylinderPacket::draw() {
|
||||
GXSetNumChans(1);
|
||||
GXSetChanCtrl(GX_COLOR0, GX_ENABLE, GX_SRC_REG, GX_SRC_REG, 1, GX_DF_CLAMP, GX_AF_NONE);
|
||||
GXSetNumTexGens(0);
|
||||
GXSetNumTevStages(1);
|
||||
GXSetTevColor(GX_TEVREG0, mColor);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_RASC, GX_CC_C0, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
|
||||
if (field_0x28) {
|
||||
GXSetZMode(GX_ENABLE, GX_LEQUAL, GX_ENABLE);
|
||||
} else {
|
||||
GXSetZMode(GX_DISABLE, GX_LEQUAL, GX_DISABLE);
|
||||
}
|
||||
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR);
|
||||
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0);
|
||||
GXSetCullMode(GX_CULL_BACK);
|
||||
GXSetClipMode(GX_CLIP_ENABLE);
|
||||
|
||||
mDoMtx_stack_c::copy(j3dSys.getViewMtx());
|
||||
mDoMtx_stack_c::transM(mPosition.x, mPosition.y + mHeight * 0.5f, mPosition.z);
|
||||
mDoMtx_stack_c::scaleM(mRadius, mRadius * 0.5f, mRadius);
|
||||
mDoMtx_stack_c::XrotM(0x4000);
|
||||
|
||||
GXLoadPosMtxImm(mDoMtx_stack_c::get(), 0);
|
||||
mDoMtx_stack_c::inverseTranspose();
|
||||
|
||||
GXLoadNrmMtxImm(mDoMtx_stack_c::get(), 0);
|
||||
GXSetCurrentMtx(0);
|
||||
GXDrawCylinder(8);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803740FC-803740FC 00075C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
|
||||
Reference in New Issue
Block a user