mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-12 21:14:38 -04:00
Merge origin/wip/linkfix2 into msvc-linkfix-dev (local dev branch)
This commit is contained in:
@@ -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})
|
||||
|
||||
@@ -1,17 +1,15 @@
|
||||
#ifndef _DOLPHIN_OS_H_
|
||||
#define _DOLPHIN_OS_H_
|
||||
|
||||
#ifdef __MWERKS__
|
||||
#include <cstdio>
|
||||
#else
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
|
||||
#ifdef __REVOLUTION_SDK__
|
||||
#include <revolution/os.h>
|
||||
#else
|
||||
|
||||
#include <dolphin/types.h>
|
||||
#include <dolphin/gx/GXStruct.h>
|
||||
|
||||
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<void*>(static_cast<uintptr_t>(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))
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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},
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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},
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 */
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 <dolphin/gf/GFPixel.h>
|
||||
#include <dolphin/gx.h>
|
||||
#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 <cstdio>
|
||||
|
||||
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);
|
||||
}
|
||||
+78
-30
@@ -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 <dolphin/dsp.h>
|
||||
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 <Z2AudioLib/Z2AudioCS.h>
|
||||
void Z2AudioCS::extensionProcess(s32, s32) {
|
||||
puts("Z2AudioMgr::play is a stub");
|
||||
}
|
||||
|
||||
# pragma mark JORServer
|
||||
#include <JSystem/JHostIO/JORServer.h>
|
||||
|
||||
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 <d/d_kankyo.h>
|
||||
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 <d/d_msg_object.h>
|
||||
// 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");
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user