diff --git a/CMakeLists.txt b/CMakeLists.txt index 23d663166a..2057fcdcb2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1355,6 +1355,7 @@ set(DUSK_FILES src/dusk/J3DTransforms_C.cpp src/dusk/m_Do_ext_dusk.cpp src/dusk/jsystem_stubs.cpp + src/m_Do/m_Do_main.cpp # TODO: move this to a more appropriate location, it's not really dusk-specific ) source_group("dolzel" FILES ${DOLZEL_FILES} ${Z2AUDIOLIB_FILES} ${SSYSTEM_FILES} ${JSYSTEM_FILES} ${REL_FILES}) diff --git a/include/dolphin/os.h b/include/dolphin/os.h index 5377eac2ad..16f1254104 100644 --- a/include/dolphin/os.h +++ b/include/dolphin/os.h @@ -1,17 +1,15 @@ #ifndef _DOLPHIN_OS_H_ #define _DOLPHIN_OS_H_ -#ifdef __MWERKS__ #include -#else -#include -#endif #ifdef __REVOLUTION_SDK__ #include #else + #include #include + void OSReportInit(void); void OSSwitchFiberEx(u32, u32, u32, u32, u32, u32); void OSVAttention(const char* fmt, va_list args); @@ -246,7 +244,7 @@ extern u8 __OSReport_enable; #define OSRoundUp32B(x) (((u32)(x) + 32 - 1) & ~(32 - 1)) #define OSRoundDown32B(x) (((u32)(x)) & ~(32 - 1)) -#ifndef __MWERKS__ +#ifdef TARGET_PC static inline void* OSPhysicalToCached(u32 paddr) { return reinterpret_cast(static_cast(paddr)); @@ -267,7 +265,7 @@ static inline void* OSUncachedToCached(void* ucaddr) { return ucaddr; } -#else +#else // non-TARGET_PC void* OSPhysicalToCached(u32 paddr); void* OSPhysicalToUncached(u32 paddr); @@ -276,9 +274,9 @@ u32 OSUncachedToPhysical(void* ucaddr); void* OSCachedToUncached(void* caddr); void* OSUncachedToCached(void* ucaddr); -#endif +#endif // TARGET_PC -#if !DEBUG && defined(__MWERKS__) +#if !DEBUG && !defined(TARGET_PC) #define OSPhysicalToCached(paddr) ((void*) ((u32)(OS_BASE_CACHED + (u32)(paddr)))) #define OSPhysicalToUncached(paddr) ((void*) ((u32)(OS_BASE_UNCACHED + (u32)(paddr)))) #define OSCachedToPhysical(caddr) ((u32) ((u32)(caddr) - OS_BASE_CACHED)) diff --git a/src/DynamicLink.cpp b/src/DynamicLink.cpp index 52cf257970..c05fa23458 100644 --- a/src/DynamicLink.cpp +++ b/src/DynamicLink.cpp @@ -453,14 +453,6 @@ const char* DynamicModuleControl::getModuleTypeString() const { return strings[mResourceType & 3]; } -extern "C" void ModuleProlog() { - /* empty function */ -} - -extern "C" void ModuleEpilog() { - /* empty function */ -} - extern "C" void ModuleUnresolved() { // "\nError: Unlinked function was called.\n" OSReport_Error("\nError: リンクされていない関数が呼び出されました.\n"); diff --git a/src/d/actor/d_a_b_ds.cpp b/src/d/actor/d_a_b_ds.cpp index 43f4af6cc3..530bf1f038 100644 --- a/src/d/actor/d_a_b_ds.cpp +++ b/src/d/actor/d_a_b_ds.cpp @@ -5703,7 +5703,9 @@ actor_process_profile_definition g_profile_B_DS = { fopAc_CULLBOX_CUSTOM_e, }; +#ifndef __MWERKS__ cXyz daB_DS_c::getHandPosR() { return mHandPos[1]; } cXyz daB_DS_c::getHandPosL() { return mHandPos[0]; } +#endif AUDIO_INSTANCES; diff --git a/src/d/actor/d_a_npc_ash.cpp b/src/d/actor/d_a_npc_ash.cpp index 5f285ace08..d4cd04573a 100644 --- a/src/d/actor/d_a_npc_ash.cpp +++ b/src/d/actor/d_a_npc_ash.cpp @@ -57,7 +57,7 @@ void daNpcAsh_HIO_c::genMessage(JORMContext* ctext) { } #endif -NPC_ASH_HIO_CLASS l_HIO; +static NPC_ASH_HIO_CLASS l_HIO; void daNpcAsh_c::setLookMode(int i_lookMode, fopAc_ac_c* i_talkPartner) { if (i_lookMode != mLookMode || i_talkPartner != mTalkPartner) { diff --git a/src/d/actor/d_a_npc_ashB.cpp b/src/d/actor/d_a_npc_ashB.cpp index 237c93aa58..ec241ac46a 100644 --- a/src/d/actor/d_a_npc_ashB.cpp +++ b/src/d/actor/d_a_npc_ashB.cpp @@ -46,7 +46,7 @@ const daNpcAshB_HIOParam daNpcAshB_Param_c::m = { 400.0f, // field_0x6c }; -NPC_ASHB_HIO_CLASS l_HIO; +static NPC_ASHB_HIO_CLASS l_HIO; static daNpc_GetParam2 l_bckGetParamList[21] = { {-1, 2, 0}, {13, 0, 0}, {14, 0, 0}, {11, 0, 0}, {10, 0, 0}, {9, 0, 0}, {12, 0, 0}, diff --git a/src/d/actor/d_a_npc_clerka.cpp b/src/d/actor/d_a_npc_clerka.cpp index 21b089eb67..e3175bb4cd 100644 --- a/src/d/actor/d_a_npc_clerka.cpp +++ b/src/d/actor/d_a_npc_clerka.cpp @@ -780,7 +780,7 @@ static int daNpc_clerkA_IsDelete(void* i_this) { return 1; } -NPC_CLERKA_HIO_CLASS l_HIO; +static NPC_CLERKA_HIO_CLASS l_HIO; static actor_method_class daNpc_clerkA_MethodTable = { (process_method_func)daNpc_clerkA_Create, (process_method_func)daNpc_clerkA_Delete, diff --git a/src/d/actor/d_a_npc_clerkb.cpp b/src/d/actor/d_a_npc_clerkb.cpp index c6400f90a0..41ec390d4a 100644 --- a/src/d/actor/d_a_npc_clerkb.cpp +++ b/src/d/actor/d_a_npc_clerkb.cpp @@ -932,7 +932,7 @@ static int daNpc_clerkB_IsDelete(void* i_this) { return 1; } -NPC_CLERKB_HIO_CLASS l_HIO; +static NPC_CLERKB_HIO_CLASS l_HIO; static actor_method_class daNpc_clerkB_MethodTable = { (process_method_func)daNpc_clerkB_Create, (process_method_func)daNpc_clerkB_Delete, diff --git a/src/d/actor/d_a_npc_clerkt.cpp b/src/d/actor/d_a_npc_clerkt.cpp index 21398595be..43544cd533 100644 --- a/src/d/actor/d_a_npc_clerkt.cpp +++ b/src/d/actor/d_a_npc_clerkt.cpp @@ -693,7 +693,7 @@ void daNpcClerkT_c::setCollision() { mCyl.ClrTgHit(); } -NPC_CLERKT_HIO_CLASS l_HIO; +static NPC_CLERKT_HIO_CLASS l_HIO; static actor_method_class daNpcClerkt_MethodTable = { (process_method_func)daNpcClerkt_Create, (process_method_func)daNpcClerkt_Delete, diff --git a/src/d/actor/d_a_npc_gnd.cpp b/src/d/actor/d_a_npc_gnd.cpp index 8856e476d0..bc34c405af 100644 --- a/src/d/actor/d_a_npc_gnd.cpp +++ b/src/d/actor/d_a_npc_gnd.cpp @@ -96,7 +96,7 @@ const daNpc_Gnd_HIOParam daNpc_Gnd_Param_c::m = { 0.0f, }; -NPC_GND_HIO_CLASS l_HIO; +static NPC_GND_HIO_CLASS l_HIO; daNpc_Gnd_c::~daNpc_Gnd_c() { OS_REPORT("|%06d:%x|daNpc_Gnd_c -> デストラクト\n", g_Counter.mCounter0, this); diff --git a/src/d/actor/d_a_npc_gra.cpp b/src/d/actor/d_a_npc_gra.cpp index d6978ec3cb..65c2e6baa2 100644 --- a/src/d/actor/d_a_npc_gra.cpp +++ b/src/d/actor/d_a_npc_gra.cpp @@ -129,7 +129,7 @@ daNpc_grA_HIO_c::daNpc_grA_HIO_c() { } #endif -NPC_GRA_HIO_CLASS l_HIO; +static NPC_GRA_HIO_CLASS l_HIO; static char* l_evtNames[11] = { NULL, diff --git a/src/d/actor/d_a_npc_impal.cpp b/src/d/actor/d_a_npc_impal.cpp index 00e9a02905..7241c9c87f 100644 --- a/src/d/actor/d_a_npc_impal.cpp +++ b/src/d/actor/d_a_npc_impal.cpp @@ -45,7 +45,7 @@ daNpcImpal_HIOParam const daNpcImpal_Param_c::m = { 300.0f, // demo_start_dist }; -NPC_IMPAL_HIO_CLASS l_HIO; +static NPC_IMPAL_HIO_CLASS l_HIO; static daNpc_GetParam2 l_bckGetParamList[18] = { {-1, 2, 0}, {14, 0, 0}, {8, 0, 0}, {7, 2, 0}, {11, 0, 0}, {13, 0, 0}, diff --git a/src/d/actor/d_a_npc_knj.cpp b/src/d/actor/d_a_npc_knj.cpp index 7a6993223f..51d8b5020b 100644 --- a/src/d/actor/d_a_npc_knj.cpp +++ b/src/d/actor/d_a_npc_knj.cpp @@ -130,7 +130,7 @@ daNpc_Knj_c::cutFunc daNpc_Knj_c::mCutList[1] = { NULL, }; -NPC_KNJ_HIO_CLASS l_HIO; +static NPC_KNJ_HIO_CLASS l_HIO; daNpc_Knj_c::~daNpc_Knj_c() { if (heap != NULL) { diff --git a/src/d/actor/d_a_npc_kyury.cpp b/src/d/actor/d_a_npc_kyury.cpp index fc17e0fa54..84c497373e 100644 --- a/src/d/actor/d_a_npc_kyury.cpp +++ b/src/d/actor/d_a_npc_kyury.cpp @@ -136,7 +136,7 @@ daNpc_Kyury_c::cutFunc daNpc_Kyury_c::mCutList[2] = { &daNpc_Kyury_c::cutConversation, }; -NPC_KYURY_HIO_CLASS l_HIO; +static NPC_KYURY_HIO_CLASS l_HIO; #if DEBUG daNpc_Kyury_HIO_c::daNpc_Kyury_HIO_c() { diff --git a/src/d/actor/d_a_npc_len.cpp b/src/d/actor/d_a_npc_len.cpp index 28963aac14..2ff8e76fda 100644 --- a/src/d/actor/d_a_npc_len.cpp +++ b/src/d/actor/d_a_npc_len.cpp @@ -652,7 +652,7 @@ void daNpc_Len_c::beforeMove() { } } -NPC_LEN_HIO_CLASS l_HIO; +static NPC_LEN_HIO_CLASS l_HIO; void daNpc_Len_c::setAttnPos() { cXyz acStack_40(-30.0f, 15.0f, 0.0f); diff --git a/src/d/actor/d_a_npc_lud.cpp b/src/d/actor/d_a_npc_lud.cpp index 2b7373446d..4958e6436f 100644 --- a/src/d/actor/d_a_npc_lud.cpp +++ b/src/d/actor/d_a_npc_lud.cpp @@ -693,7 +693,7 @@ void daNpc_Lud_c::beforeMove() { } } -NPC_LUD_HIO_CLASS l_HIO; +static NPC_LUD_HIO_CLASS l_HIO; void daNpc_Lud_c::setAttnPos() { cXyz cStack_70(5.0f, 30.0f, 0.0f); diff --git a/src/d/actor/d_a_npc_moi.cpp b/src/d/actor/d_a_npc_moi.cpp index f5513e0014..e3e5aee06b 100644 --- a/src/d/actor/d_a_npc_moi.cpp +++ b/src/d/actor/d_a_npc_moi.cpp @@ -244,7 +244,7 @@ enum Motion { /* 0x2F */ MOT_UNK_47 = 47, }; -NPC_MOI_HIO_CLASS l_HIO; +static NPC_MOI_HIO_CLASS l_HIO; daNpc_Moi_c::~daNpc_Moi_c() { if (mpMorf[0] != 0) { diff --git a/src/d/actor/d_a_npc_pouya.cpp b/src/d/actor/d_a_npc_pouya.cpp index 2129c5c52f..5d36a5992a 100644 --- a/src/d/actor/d_a_npc_pouya.cpp +++ b/src/d/actor/d_a_npc_pouya.cpp @@ -1189,7 +1189,7 @@ static bool daNpc_Pouya_IsDelete(void* i_this) { return 1; } -NPC_POUYA_HIO_CLASS l_HIO; +static NPC_POUYA_HIO_CLASS l_HIO; static actor_method_class daNpc_Pouya_MethodTable = { (process_method_func)daNpc_Pouya_Create, (process_method_func)daNpc_Pouya_Delete, diff --git a/src/d/actor/d_a_npc_shad.cpp b/src/d/actor/d_a_npc_shad.cpp index bffc93e883..ec87bf930f 100644 --- a/src/d/actor/d_a_npc_shad.cpp +++ b/src/d/actor/d_a_npc_shad.cpp @@ -307,7 +307,7 @@ static char* l_evtArcs[14] = { static char* l_myName = "Shad"; -NPC_SHAD_HIO_CLASS l_HIO; +static NPC_SHAD_HIO_CLASS l_HIO; daNpcShad_c::EventFn daNpcShad_c::mEvtSeqList[14] = { NULL, diff --git a/src/d/actor/d_a_npc_shoe.cpp b/src/d/actor/d_a_npc_shoe.cpp index 1639f2ee86..06b63797a7 100644 --- a/src/d/actor/d_a_npc_shoe.cpp +++ b/src/d/actor/d_a_npc_shoe.cpp @@ -54,7 +54,7 @@ void daNpcShoe_HIO_c::genMessage(JORMContext* ctext) { } #endif -NPC_SHOE_HIO_CLASS l_HIO; +static NPC_SHOE_HIO_CLASS l_HIO; void daNpcShoe_c::setLookMode(int i_lookMode) { if (mLookMode != i_lookMode) { diff --git a/src/d/actor/d_a_npc_the.cpp b/src/d/actor/d_a_npc_the.cpp index 79c169935d..7d63b43c42 100644 --- a/src/d/actor/d_a_npc_the.cpp +++ b/src/d/actor/d_a_npc_the.cpp @@ -61,7 +61,7 @@ void daNpcThe_HIO_c::genMessage(JORMContext* ctext) { } #endif -NPC_THE_HIO_CLASS l_HIO; +static NPC_THE_HIO_CLASS l_HIO; static daNpc_GetParam1 l_bmdGetParamList[2] = { {23, 0}, // the diff --git a/src/d/actor/d_a_npc_toby.cpp b/src/d/actor/d_a_npc_toby.cpp index 232d107471..1d934e3ada 100644 --- a/src/d/actor/d_a_npc_toby.cpp +++ b/src/d/actor/d_a_npc_toby.cpp @@ -265,7 +265,7 @@ daNpc_Toby_c::cutFunc daNpc_Toby_c::mCutList[7] = { &daNpc_Toby_c::cutConversationAboutZra, }; -NPC_TOBY_HIO_CLASS l_HIO; +static NPC_TOBY_HIO_CLASS l_HIO; daNpc_Toby_c::~daNpc_Toby_c() { OS_REPORT("|%06d:%x|daNpc_Toby_c -> デストラクト\n", g_Counter.mCounter0, this); diff --git a/src/d/actor/d_a_npc_uri.cpp b/src/d/actor/d_a_npc_uri.cpp index bedc05f3c6..c1c706d311 100644 --- a/src/d/actor/d_a_npc_uri.cpp +++ b/src/d/actor/d_a_npc_uri.cpp @@ -209,7 +209,7 @@ daNpc_Uri_c::cutFunc daNpc_Uri_c::mCutList[7] = { &daNpc_Uri_c::cutMeetingAgain, }; -NPC_URI_HIO_CLASS l_HIO; +static NPC_URI_HIO_CLASS l_HIO; daNpc_Uri_c::~daNpc_Uri_c() { if (mpMorf[0] != 0) { diff --git a/src/d/actor/d_a_obj_burnbox.cpp b/src/d/actor/d_a_obj_burnbox.cpp index b7b47b5357..b1c3f2a9c7 100644 --- a/src/d/actor/d_a_obj_burnbox.cpp +++ b/src/d/actor/d_a_obj_burnbox.cpp @@ -81,7 +81,7 @@ int daObjBurnBox_c::Create() { return 1; } -const char* l_arcName[3] = { +static const char* l_arcName[3] = { "Kkiba_00", // crate "Kkiba_00", "J_taru00", // barrel diff --git a/src/d/actor/d_a_obj_katatsumuri.cpp b/src/d/actor/d_a_obj_katatsumuri.cpp index 8f0242dabe..1cb47bd8c8 100644 --- a/src/d/actor/d_a_obj_katatsumuri.cpp +++ b/src/d/actor/d_a_obj_katatsumuri.cpp @@ -157,11 +157,11 @@ static f32 dummy1() { return 0.4f; } -f32 dummy2() { +static f32 dummy2() { return 10.0f; } -f32 dummy3() { +static f32 dummy3() { return 0.02f; } diff --git a/src/d/actor/d_a_obj_maki.cpp b/src/d/actor/d_a_obj_maki.cpp index 8bb3578dd5..8c36b8bd2c 100644 --- a/src/d/actor/d_a_obj_maki.cpp +++ b/src/d/actor/d_a_obj_maki.cpp @@ -176,7 +176,7 @@ static int useHeapInit(fopAc_ac_c* i_this) { return 1; } -daObj_Maki_HIO_c l_HIO; +static daObj_Maki_HIO_c l_HIO; cPhs_Step daObj_Maki_Create(fopAc_ac_c* i_this) { fopAcM_ct(i_this, obj_maki_class); diff --git a/src/d/actor/d_a_obj_ss_base.cpp b/src/d/actor/d_a_obj_ss_base.cpp index e4712d3813..92db022b60 100644 --- a/src/d/actor/d_a_obj_ss_base.cpp +++ b/src/d/actor/d_a_obj_ss_base.cpp @@ -15,7 +15,3 @@ daObj_SSBase_c::~daObj_SSBase_c() {} u32 daObj_SSBase_c::getProcessID() { return fopAcM_GetID(this); } - -void daObj_SSBase_c::setSoldOut() { - /* empty function */ -} diff --git a/src/d/actor/d_a_obj_thashi.cpp b/src/d/actor/d_a_obj_thashi.cpp index a702266dd4..0d0e8495a5 100644 --- a/src/d/actor/d_a_obj_thashi.cpp +++ b/src/d/actor/d_a_obj_thashi.cpp @@ -9,7 +9,7 @@ #include "d/d_cc_d.h" #include "d/d_s_play.h" -char* l_arcName = "S_thashi"; +static const char* l_arcName = "S_thashi"; static void dataStripping() { const static u32 ccCylSrc[] = {0, 0x100000, 0, 0x13, 0x100000, 0x1f, 0x75, 0, diff --git a/src/d/actor/d_a_obj_waterPillar.cpp b/src/d/actor/d_a_obj_waterPillar.cpp index 65abe22e5c..47e2aecf16 100644 --- a/src/d/actor/d_a_obj_waterPillar.cpp +++ b/src/d/actor/d_a_obj_waterPillar.cpp @@ -110,7 +110,7 @@ const dCcD_SrcGObjInf daWtPillar_c::mCcDObjCoInfo = { {}, // mGObjCo }; -daWtPillar_HIO_c l_HIO; +static daWtPillar_HIO_c l_HIO; dCcD_SrcCps daWtPillar_c::mCcDCps = { daWtPillar_c::mCcDObjInfo, diff --git a/src/d/actor/d_a_tag_CstaSw.cpp b/src/d/actor/d_a_tag_CstaSw.cpp index 6974c3d5d3..03a07e7a99 100644 --- a/src/d/actor/d_a_tag_CstaSw.cpp +++ b/src/d/actor/d_a_tag_CstaSw.cpp @@ -10,7 +10,7 @@ #include "d/d_debug_viewer.h" #include "d/d_procname.h" -daTagCstaSw_HIO_c l_HIO; + static daTagCstaSw_HIO_c l_HIO; daTagCstaSw_HIO_c::daTagCstaSw_HIO_c() { show_range = 0; diff --git a/src/dusk/m_Do_ext_dusk.cpp b/src/dusk/m_Do_ext_dusk.cpp deleted file mode 100644 index 7d16d08439..0000000000 --- a/src/dusk/m_Do_ext_dusk.cpp +++ /dev/null @@ -1,565 +0,0 @@ -// XXX Ripped these from a DEBUG block, rather than changing defines. -/** - * m_Do_ext.cpp - * Model, Animation, and Heap Functions - */ - -#include "d/dolzel.h" // IWYU pragma: keep - -#include -#include -#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h" -#include "JSystem/J3DGraphBase/J3DDrawBuffer.h" -#include "JSystem/J3DGraphBase/J3DMaterial.h" -#include "JSystem/J3DGraphLoader/J3DMaterialFactory.h" -#include "JSystem/JKernel/JKRAssertHeap.h" -#include "JSystem/JKernel/JKRExpHeap.h" -#include "JSystem/JKernel/JKRSolidHeap.h" -#include "JSystem/JUtility/JUTCacheFont.h" -#include "JSystem/JUtility/JUTResFont.h" -#include "Z2AudioLib/Z2Creature.h" -#include "d/d_com_inf_game.h" -#include "global.h" -#include "m_Do/m_Do_ext.h" -#include "m_Do/m_Do_main.h" -#include "m_Do/m_Do_mtx.h" -#include - -mDoExt_cube8pPacket::mDoExt_cube8pPacket(cXyz* i_points, const GXColor& i_color) { - cXyz* pnt_array = mPoints; - - for (int i = 0; i < 8; i++) { - *(pnt_array)++ = *(i_points)++; - } - - DCStoreRangeNoSync(mPoints, sizeof(cXyz) * 8); - mColor = i_color; -} - -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_SRCALPHA, GX_BL_INVSRCALPHA, 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); - GXEnd(); -} - -void mDoExt_cube8pPacket::draw() { - drawCube(j3dSys.getViewMtx(), mPoints, mColor); -} - -mDoExt_cubePacket::mDoExt_cubePacket(cXyz& i_position, cXyz& i_size, csXyz& i_angle, const GXColor& i_color) { - mPosition = i_position; - mSize = i_size; - mAngle = i_angle; - mColor = i_color; -} - -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); -} - -mDoExt_quadPacket::mDoExt_quadPacket(cXyz* i_points, const GXColor& i_color, u8 i_clipZ) { - cXyz* pnt_array = mPoints; - - for (int i = 0; i < 4; i++) { - *(pnt_array)++ = *(i_points)++; - } - - DCStoreRangeNoSync(mPoints, sizeof(cXyz) * 4); - mColor = i_color; - mClipZ = i_clipZ; -} - -void mDoExt_quadPacket::draw() { - GXSetArray(GX_VA_POS, mPoints, 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, mColor); - 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); - - if (mClipZ) { - GXSetZMode(GX_ENABLE, GX_LEQUAL, GX_ENABLE); - } else { - GXSetZMode(GX_DISABLE, GX_LEQUAL, GX_DISABLE); - } - - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_CLEAR); - GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0); - GXSetCullMode(GX_CULL_BACK); - GXSetClipMode(GX_CLIP_ENABLE); - GXLoadPosMtxImm(j3dSys.getViewMtx(), 0); - GXSetCurrentMtx(0); - - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition1x8(0); - GXPosition1x8(1); - GXPosition1x8(2); - GXPosition1x8(3); - GXEnd(); -} - -mDoExt_trianglePacket::mDoExt_trianglePacket(cXyz* i_points, const GXColor& i_color, u8 i_clipZ) { - cXyz* pnt_array = mPoints; - - for (int i = 0; i < 3; i++) { - *(pnt_array)++ = *(i_points)++; - } - - DCStoreRangeNoSync(mPoints, sizeof(cXyz) * 3); - mColor = i_color; - mClipZ = i_clipZ; -} - -void mDoExt_trianglePacket::draw() { - j3dSys.reinitGX(); - - GXSetArray(GX_VA_POS, mPoints, sizeof(cXyz)); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_INDEX8); - GXLoadPosMtxImm(j3dSys.getViewMtx(), 0); - GXSetCurrentMtx(0); - 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, mColor); - 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); - GXSetZCompLoc(GX_ENABLE); - - if (mClipZ) { - GXSetZMode(GX_ENABLE, GX_LEQUAL, GX_ENABLE); - } else { - GXSetZMode(GX_DISABLE, GX_LEQUAL, GX_DISABLE); - } - - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_CLEAR); - GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0); - GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor); - GXSetFogRangeAdj(GX_DISABLE, 0, NULL); - GXSetCullMode(GX_CULL_NONE); - GXSetDither(GX_ENABLE); - GXSetClipMode(GX_CLIP_ENABLE); - GXSetNumIndStages(0); - - GXBegin(GX_TRIANGLES, GX_VTXFMT0, 3); - GXPosition1x8(0); - GXPosition1x8(1); - GXPosition1x8(2); - GXEnd(); - - J3DShape::resetVcdVatCache(); -} - -mDoExt_linePacket::mDoExt_linePacket(cXyz& i_start, cXyz& i_end, const GXColor& i_color, u8 i_clipZ, u8 i_width) { - mStart = i_start; - mEnd = i_end; - mColor = i_color; - mClipZ = i_clipZ; - mWidth = i_width; -} - -void mDoExt_linePacket::draw() { - j3dSys.reinitGX(); - - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXLoadPosMtxImm(j3dSys.getViewMtx(), 0); - GXSetCurrentMtx(0); - 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, mColor); - 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); - GXSetZCompLoc(GX_ENABLE); - - if (mClipZ) { - GXSetZMode(GX_ENABLE, GX_LEQUAL, GX_ENABLE); - } else { - GXSetZMode(GX_DISABLE, GX_LEQUAL, GX_DISABLE); - } - - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_CLEAR); - GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0); - GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor); - GXSetFogRangeAdj(GX_DISABLE, 0, NULL); - GXSetCullMode(GX_CULL_NONE); - GXSetDither(GX_ENABLE); - GXSetClipMode(GX_CLIP_ENABLE); - GXSetNumIndStages(0); - GXSetLineWidth(mWidth, GX_TO_ZERO); - - GXBegin(GX_LINES, GX_VTXFMT0, 2); - GXPosition3f32(mStart.x, mStart.y, mStart.z); - GXPosition3f32(mEnd.x, mEnd.y, mEnd.z); - GXEnd(); - - J3DShape::resetVcdVatCache(); -} - -mDoExt_ArrowPacket::mDoExt_ArrowPacket(cXyz& i_position, cXyz& param_1, const GXColor& i_color, u8 i_clipZ, u8 i_lineWidth) { - mStart = i_position; - mEnd = param_1; - mColor = i_color; - mClipZ = i_clipZ; - mLineWidth = i_lineWidth; -} - -void mDoExt_ArrowPacket::draw() { - Mtx sp28; - cXyz sp18; - - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - 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, mColor); - 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); - - if (mClipZ) { - GXSetZMode(GX_ENABLE, GX_LEQUAL, GX_ENABLE); - } else { - GXSetZMode(GX_DISABLE, GX_LEQUAL, GX_DISABLE); - } - - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_CLEAR); - GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0); - GXSetCullMode(GX_CULL_NONE); - GXSetClipMode(GX_CLIP_ENABLE); - GXSetLineWidth(mLineWidth, GX_TO_ZERO); - - sp18 = mEnd - mStart; - MtxTrans(mStart.x, mStart.y, mStart.z, 0); - cMtx_YrotM(*calc_mtx, sp18.atan2sX_Z()); - cMtx_XrotM(*calc_mtx, cM_atan2s(JMAFastSqrt(SQUARE(sp18.x) + SQUARE(sp18.z)), sp18.y)); - cMtx_concat(j3dSys.getViewMtx(), *calc_mtx, sp28); - - GXLoadPosMtxImm(sp28, 0); - GXSetCurrentMtx(0); - - GXBegin(GX_LINES, GX_VTXFMT0, 2); - GXPosition3f32(0.0f, 0.0f, 0.0f); - GXPosition3f32(0.0f, sp18.abs(), 0.0f); - GXEnd(); - - f32 var_f29 = sp18.abs(); - f32 var_f31 = var_f29 * 0.1f; - f32 var_f30 = var_f29 * 0.8f; - - GXBegin(GX_TRIANGLEFAN, GX_VTXFMT0, 6); - GXPosition3f32(0.0f, var_f29, 0.0f); - GXPosition3f32(0.0f, var_f30, var_f31); - GXPosition3f32(var_f31, var_f30, 0.0f); - GXPosition3f32(0.0f, var_f30, -var_f31); - GXPosition3f32(-var_f31, var_f30, 0.0f); - GXPosition3f32(0.0f, var_f30, var_f31); - GXEnd(); -} - -mDoExt_pointPacket::mDoExt_pointPacket(cXyz& i_position, const GXColor& i_color, u8 i_clipZ, u8 i_lineWidth) { - mPosition = i_position; - mColor = i_color; - mClipZ = i_clipZ; - mLineWidth = i_lineWidth; -} - -void mDoExt_pointPacket::draw() { - j3dSys.reinitGX(); - - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - 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, mColor); - 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); - - if (mClipZ) { - GXSetZMode(GX_ENABLE, GX_LEQUAL, GX_ENABLE); - } else { - GXSetZMode(GX_DISABLE, GX_LEQUAL, GX_DISABLE); - } - - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_CLEAR); - GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0); - GXSetCullMode(GX_CULL_NONE); - GXSetClipMode(GX_CLIP_ENABLE); - GXSetPointSize(mLineWidth, GX_TO_ZERO); - - GXLoadPosMtxImm(j3dSys.getViewMtx(), 0); - GXSetCurrentMtx(0); - - GXBegin(GX_POINTS, GX_VTXFMT0, 1); - GXPosition3f32(mPosition.x, mPosition.y, mPosition.z); - GXEnd(); - - j3dSys.reinitGX(); - J3DShape::resetVcdVatCache(); -} - -mDoExt_circlePacket::mDoExt_circlePacket(cXyz& i_position, f32 i_radius, const GXColor& i_color, u8 i_clipZ, u8 i_lineWidth) { - mPosition = i_position; - mRadius = i_radius; - mColor = i_color; - mClipZ = i_clipZ; - mLineWidth = i_lineWidth; -} - -void mDoExt_circlePacket::draw() { - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - 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, mColor); - 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); - - if (mClipZ) { - GXSetZMode(GX_ENABLE, GX_LEQUAL, GX_ENABLE); - } else { - GXSetZMode(GX_DISABLE, GX_LEQUAL, GX_DISABLE); - } - - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_CLEAR); - GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0); - GXSetCullMode(GX_CULL_NONE); - GXSetClipMode(GX_CLIP_ENABLE); - GXSetLineWidth(mLineWidth, GX_TO_ZERO); - GXLoadPosMtxImm(j3dSys.getViewMtx(), 0); - GXSetCurrentMtx(0); - - cXyz sp38; - cXyz sp44; - int numEdges = 36; - sp38.y = sp44.y = mPosition.y; - - GXBegin(GX_LINES, GX_VTXFMT0, numEdges * 2); - for (int i = 0; i < numEdges; i++) { - sp38.x = cM_fcos((i * 6.2831855f) / numEdges) * mRadius; - sp38.z = cM_fsin((i * 6.2831855f) / numEdges) * mRadius; - - sp44.x = cM_fcos(((i + 1) * 6.2831855f) / numEdges) * mRadius; - sp44.z = cM_fsin(((i + 1) * 6.2831855f) / numEdges) * mRadius; - - sp38.x += mPosition.x; - sp38.z += mPosition.z; - sp44.x += mPosition.x; - sp44.z += mPosition.z; - GXPosition3f32(sp38.x, sp38.y, sp38.z); - GXPosition3f32(sp44.x, sp44.y, sp44.z); - } - GXEnd(); -} - -mDoExt_spherePacket::mDoExt_spherePacket(cXyz& i_position, f32 i_size, const GXColor& i_color, u8 i_clipZ) { - mPosition = i_position; - mSize = i_size; - mColor = i_color; - mClipZ = i_clipZ; -} - -void mDoExt_spherePacket::draw() { - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0, GX_ENABLE, GX_SRC_REG, GX_SRC_REG, GX_LIGHT0, 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_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); - - if (mClipZ) { - GXSetZMode(GX_ENABLE, GX_LEQUAL, GX_ENABLE); - } else { - GXSetZMode(GX_DISABLE, GX_LEQUAL, GX_DISABLE); - } - - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, 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, mPosition.z); - mDoMtx_stack_c::scaleM(mSize, mSize, mSize); - - GXLoadPosMtxImm(mDoMtx_stack_c::get(), 0); - mDoMtx_stack_c::inverseTranspose(); - - GXLoadNrmMtxImm(mDoMtx_stack_c::get(), 0); - GXSetCurrentMtx(0); - - GXDrawSphere(8, 8); -} - -mDoExt_cylinderPacket::mDoExt_cylinderPacket(cXyz& i_position, f32 i_radius, f32 i_height, const GXColor& i_color, u8 i_clipZ) { - mPosition = i_position; - mRadius = i_radius; - mHeight = i_height; - mColor = i_color; - mClipZ = i_clipZ; -} - -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 (mClipZ) { - GXSetZMode(GX_ENABLE, GX_LEQUAL, GX_ENABLE); - } else { - GXSetZMode(GX_DISABLE, GX_LEQUAL, GX_DISABLE); - } - - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_CLEAR); - GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0); - GXSetCullMode(GX_CULL_BACK); - GXSetClipMode(GX_CLIP_ENABLE); - - f32 var_f31 = mHeight * 0.5f; - - mDoMtx_stack_c::copy(j3dSys.getViewMtx()); - mDoMtx_stack_c::transM(mPosition.x, mPosition.y + var_f31, mPosition.z); - mDoMtx_stack_c::scaleM(mRadius, var_f31, 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); -} - -mDoExt_cylinderMPacket::mDoExt_cylinderMPacket(Mtx i_mtx, const GXColor& i_color, u8 i_clipZ) { - cMtx_copy(i_mtx, mMatrix); - mColor = i_color; - mClipZ = i_clipZ; -} - -void mDoExt_cylinderMPacket::draw() { - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0, GX_ENABLE, GX_SRC_REG, GX_SRC_REG, GX_LIGHT0, 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_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); - - if (mClipZ) { - GXSetZMode(GX_ENABLE, GX_LEQUAL, GX_ENABLE); - } else { - GXSetZMode(GX_DISABLE, GX_LEQUAL, GX_DISABLE); - } - - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_CLEAR); - GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0); - GXSetCullMode(GX_CULL_BACK); - GXSetClipMode(GX_CLIP_ENABLE); - - cMtx_concat(j3dSys.getViewMtx(), mMatrix, mMatrix); - - GXLoadPosMtxImm(mMatrix, 0); - cMtx_inverseTranspose(mMatrix, mMatrix); - - GXLoadNrmMtxImm(mMatrix, 0); - GXSetCurrentMtx(0); - - GXDrawCylinder(8); -} diff --git a/src/dusk/stubs.cpp b/src/dusk/stubs.cpp index b39aa3ddb6..329f5c2c57 100644 --- a/src/dusk/stubs.cpp +++ b/src/dusk/stubs.cpp @@ -631,42 +631,100 @@ u32 VIGetRetraceCount() { } u32 VIGetNextField() { - puts("VIGetNextField is a stub"); - return 0; + puts("VIGetNextField is a stub"); + return 0; } -void VISetBlack(BOOL black) { - puts("VISetBlack is a stub"); -} +void VISetBlack(BOOL black) { puts("VISetBlack is a stub"); } -void VISetNextFrameBuffer(void* fb) { - // puts("VISetNextFrameBuffer is a stub"); +void VISetNextFrameBuffer(void *fb) { + // puts("VISetNextFrameBuffer is a stub"); } void VIWaitForRetrace() { - if (sVIRetraceCallback) { - sVIRetraceCallback(0); - } + if (sVIRetraceCallback) { + sVIRetraceCallback(0); + } } void* VIGetCurrentFrameBuffer(void) { - puts("VIGetCurrentFrameBuffer is a stub"); - return NULL; + puts("VIGetCurrentFrameBuffer is a stub"); + return NULL; } u32 VIGetDTVStatus(void) { - puts("VIGetDTVStatus is a stub"); - return 0; + puts("VIGetDTVStatus is a stub"); + return 0; } void* VIGetNextFrameBuffer(void) { - puts("VIGetNextFrameBuffer is a stub"); - return NULL; + puts("VIGetNextFrameBuffer is a stub"); + return NULL; } VIRetraceCallback VISetPostRetraceCallback(VIRetraceCallback callback) { - sVIRetraceCallback = callback; - return callback; + sVIRetraceCallback = callback; + return callback; +} + +VIRetraceCallback VISetPreRetraceCallback(VIRetraceCallback cb) { + puts("VISetPreRetraceCallback is a stub"); + return cb; +} + +} // extern "C" + +# pragma mark DSP +#include +extern "C" void __DSP_insert_task(DSPTaskInfo* task) { + puts("__DSP_insert_task is a stub"); +} + +extern "C" void __DSP_boot_task(DSPTaskInfo*) { + puts("__DSP_boot_task is a stub"); +} + +extern "C" void __DSP_exec_task(DSPTaskInfo*, DSPTaskInfo*) { + puts("__DSP_exec_task is a stub"); +} + +extern "C" void __DSP_remove_task(DSPTaskInfo* task) { + puts("__DSP_remove_task is a stub"); +} + +void DSPAssertInt(void) { + puts("DSPAssertInt is a stub"); +} +u32 DSPCheckMailFromDSP(void) { + puts("DSPCheckMailFromDSP is a stub"); + return 0; +} +u32 DSPCheckMailToDSP(void) { + puts("DSPCheckMailToDSP is a stub"); + return 0; +} +void DSPInit(void) { + puts("DSPInit is a stub"); +} +u32 DSPReadMailFromDSP(void) { + puts("DSPReadMailFromDSP is a stub"); + return 0; +} +void DSPSendMailToDSP(u32 mail) { + puts("DSPSendMailToDSP is a stub"); +} + +# pragma mark Z2Audio +#include +void Z2AudioCS::extensionProcess(s32, s32) { + puts("Z2AudioMgr::play is a stub"); +} + +# pragma mark JORServer +#include + +int JOREventCallbackListNode::JORAct(u32, const char*) { + return 0; } VIRetraceCallback VISetPreRetraceCallback(VIRetraceCallback cb) { @@ -776,14 +834,7 @@ mDoExt_onCupOffAupPacket::~mDoExt_onCupOffAupPacket() { puts("mDoExt_onCupOffAupPacket_c destructor is a stub"); } -// #pragma mark mDoExt -// namespace mDoExt { -// u8 CurrentHeapAdjustVerbose; -// u8 HeapAdjustVerbose; -// u8 HeapAdjustQuiet; -// }; // namespace mDoExt - -#pragma mark dKankyo_vrboxHIO_c +# pragma mark dKankyo_vrboxHIO_c #include void dKankyo_vrboxHIO_c::dKankyo_vrboxHIOInfoUpDateF() { puts("dKankyo_vrboxHIO_c::dKankyo_vrboxHIOInfoUpDateF is a stub"); @@ -1567,7 +1618,7 @@ void GXInitTexCacheRegion(GXTexRegion* region, u8 is_32b_mipmap, u32 tmem_even, puts("GXInitTexCacheRegion is a stub"); } // XXX, this should be some struct? -//GXRenderModeObj GXNtsc480IntDf; +// GXRenderModeObj GXNtsc480IntDf; GXRenderModeObj GXNtsc480Int; void GXPeekZ(u16 x, u16 y, u32* z) { puts("GXPeekZ is a stub"); @@ -1697,9 +1748,6 @@ u8 fapGm_HIO_c::mCaptureScreenDivH = 1; #pragma mark dMsgObject #include -// void dMsgObject_c::setSelectWordFlag(u8 flag) { -// puts("dMsgObject_c::setSelectWordFlag is a stub"); -// } void dMsgObject_c::setWord(const char* i_word) { puts("dMsgObject_c::setWord is a stub"); } diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp index 7f4bf6f8f9..c8465b60a2 100644 --- a/src/m_Do/m_Do_ext.cpp +++ b/src/m_Do/m_Do_ext.cpp @@ -3006,7 +3006,7 @@ void mDoExt_3DlineMatSortPacket::draw() { J3DShape::resetVcdVatCache(); } -#if DEBUG +#if DEBUG || !__MWERKS__ mDoExt_cube8pPacket::mDoExt_cube8pPacket(cXyz* i_points, const GXColor& i_color) { cXyz* pnt_array = mPoints; diff --git a/src/m_Do/m_Do_main.cpp b/src/m_Do/m_Do_main.cpp index 9f753ef4a9..2f337e254b 100644 --- a/src/m_Do/m_Do_main.cpp +++ b/src/m_Do/m_Do_main.cpp @@ -872,7 +872,7 @@ static u8 mainThreadStack[32768]; OSThread mainThread; -void game_main(int argc, const char* argv[]) { +extern "C" void game_main(int argc, const char* argv[]) { OSThread* current_thread = OSGetCurrentThread(); u8* stack = mainThreadStack; mDoMain::sPowerOnTime = OSGetTime();