mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-04 09:08:39 -04:00
Some npc/ship inline fixes from debug map
This commit is contained in:
+2
-2
@@ -1668,7 +1668,7 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_npc_gk1"),
|
||||
ActorRel(NonMatching, "d_a_npc_gp1"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_npc_hi1"),
|
||||
ActorRel(Matching, "d_a_npc_ho"),
|
||||
ActorRel(Matching, "d_a_npc_ho"),
|
||||
ActorRel(Matching, "d_a_npc_hr"),
|
||||
ActorRel(Matching, "d_a_npc_jb1"),
|
||||
ActorRel(NonMatching, "d_a_npc_ji1"),
|
||||
@@ -1681,7 +1681,7 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_npc_ko1"),
|
||||
ActorRel(NonMatching, "d_a_npc_kp1"),
|
||||
ActorRel(Matching, "d_a_npc_ls1"),
|
||||
ActorRel(Matching, "d_a_npc_mk"),
|
||||
ActorRel(Matching, "d_a_npc_mk"),
|
||||
ActorRel(NonMatching, "d_a_npc_mn"),
|
||||
ActorRel(Matching, "d_a_npc_mt"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_npc_nz"),
|
||||
|
||||
@@ -68,15 +68,13 @@ public:
|
||||
void calc();
|
||||
|
||||
J3DTexMtxInfo& getTexMtxInfo() { return mTexMtxInfo; }
|
||||
J3DTextureSRTInfo& getTextureSRT() { return mTexMtxInfo.mSRT;}
|
||||
Mtx& getMtx() { return mMtx; }
|
||||
void setEffectMtx(Mtx effectMtx) { mTexMtxInfo.setEffectMtx(effectMtx); }
|
||||
Mtx& getViewMtx() { return mViewMtx; }
|
||||
void setViewMtx(const Mtx viewMtx) { MTXCopy(viewMtx, mViewMtx); }
|
||||
void setTranslationX(f32 translationX){ mTexMtxInfo.mSRT.mTranslationX = translationX; } // Fakematch
|
||||
|
||||
J3DTextureSRTInfo& getTextureSRT() { return mTexMtxInfo.mSRT;}
|
||||
|
||||
private:
|
||||
public:
|
||||
/* 0x00 */ J3DTexMtxInfo mTexMtxInfo;
|
||||
/* 0x64 */ Mtx mMtx;
|
||||
/* 0x94 */ Mtx mViewMtx;
|
||||
|
||||
@@ -44,16 +44,15 @@ public:
|
||||
|
||||
typedef int (daNpc_Ho_c::*ActionFunc)(void*);
|
||||
|
||||
|
||||
bool ChkOrder(u8 temp) { return mOrderFlags & temp; }
|
||||
BOOL ChkOrder(u8 flag) { return mOrderFlags & flag; }
|
||||
void ClrOrder() { mOrderFlags = 0; }
|
||||
void SetOrder(u8 temp) { mOrderFlags |= temp; }
|
||||
bool chkFlag(u16 flag) { return (mFlags & flag) == flag; }
|
||||
void clrFlag(u16 flag) { mFlags &= ~flag; }
|
||||
|
||||
s8 getBackboneJntNum() { return m_jnt.getBackboneJntNum(); }
|
||||
s16 getBackbone_y() { return m_jnt.getBackbone_y(); }
|
||||
s8 getHeadJntNum() { return m_jnt.getHeadJntNum(); }
|
||||
s16 getBackbone_y() { return m_jnt.getBackbone_y(); }
|
||||
s16 getHead_x() { return m_jnt.getHead_x(); }
|
||||
s16 getHead_y() { return m_jnt.getHead_y(); }
|
||||
|
||||
|
||||
@@ -59,17 +59,17 @@ public:
|
||||
|
||||
typedef BOOL (daNpc_Mk_c::*ActionFunc)(void*);
|
||||
|
||||
bool ChkOrder(u8 temp) { return mOrderFlags & temp; }
|
||||
void ClrOrder() { mOrderFlags &= ~0xFF; }
|
||||
void SetOrder(u8 temp) { mOrderFlags |= temp; }
|
||||
BOOL ChkOrder(u8 flag) { return mOrderFlags & flag; }
|
||||
void ClrOrder(u8 flag) { mOrderFlags &= ~flag; }
|
||||
void SetOrder(u8 flag) { mOrderFlags |= flag; }
|
||||
|
||||
void chkAngry() {}
|
||||
bool chkFlag(u16 flag) { return (mFlags & flag) == flag; }
|
||||
void clrFlag(u16 flag) { mFlags &= ~flag; }
|
||||
s8 getBackboneJntNum() { return m_jnt.getBackboneJntNum(); }
|
||||
s8 getHeadJntNum() { return m_jnt.getHeadJntNum(); }
|
||||
s16 getBackbone_x() { return m_jnt.getBackbone_x(); }
|
||||
s16 getBackbone_y() { return m_jnt.getBackbone_y(); }
|
||||
s8 getHeadJntNum() { return m_jnt.getHeadJntNum(); }
|
||||
s16 getHead_x() { return m_jnt.getHead_x(); }
|
||||
s16 getHead_y() { return m_jnt.getHead_y(); }
|
||||
void getVisitMode() {}
|
||||
|
||||
@@ -14,27 +14,27 @@ class daTornado_HIO_c0 {
|
||||
|
||||
class daTornado_c : public fopAc_ac_c {
|
||||
public:
|
||||
float getJointXPos(int jno) const {
|
||||
f32 getJointXPos(int jno) const {
|
||||
if (mpModel)
|
||||
return mpModel->getAnmMtx(jno)[0][3];
|
||||
else
|
||||
return current.pos.x;
|
||||
}
|
||||
float getJointYPos(int jno) const {
|
||||
f32 getJointYPos(int jno) const {
|
||||
if (mpModel)
|
||||
return mpModel->getAnmMtx(jno)[1][3];
|
||||
else
|
||||
return current.pos.y;
|
||||
}
|
||||
float getJointZPos(int jno) const {
|
||||
f32 getJointZPos(int jno) const {
|
||||
if (mpModel)
|
||||
return mpModel->getAnmMtx(jno)[2][3];
|
||||
else
|
||||
return current.pos.z;
|
||||
}
|
||||
void getScaleEnd() {}
|
||||
void getSmallScaleEnd() {}
|
||||
void setScaleOn() {}
|
||||
f32 getScaleEnd() { return mJointScale[10]; }
|
||||
f32 getSmallScaleEnd() { return mJointScale[10]; }
|
||||
void setScaleOn() { m31c = 1; }
|
||||
|
||||
BOOL jointCallBack(int);
|
||||
BOOL draw();
|
||||
@@ -43,7 +43,7 @@ public:
|
||||
BOOL createHeap();
|
||||
cPhs_State create();
|
||||
|
||||
public:
|
||||
private:
|
||||
/* 0x290 */ request_of_phase_process_class mPhs;
|
||||
/* 0x298 */ J3DModel* mpModel;
|
||||
/* 0x29c */ mDoExt_bckAnm mBck;
|
||||
@@ -53,17 +53,17 @@ public:
|
||||
/* 0x2dc */ mDoExt_bckAnm mBckUnder;
|
||||
/* 0x2ec */ mDoExt_btkAnm mBtkUnder;
|
||||
/* 0x300 */ mDoExt_brkAnm mBrkUnder;
|
||||
/* 0x318 */ short mAngle1;
|
||||
/* 0x31a */ short mAngle2;
|
||||
/* 0x31c */ short m31c;
|
||||
/* 0x31e */ short mPtclTimer;
|
||||
/* 0x320 */ float mBtkFrame;
|
||||
/* 0x324 */ float mBtkUnderFrame;
|
||||
/* 0x328 */ float mBrkFrame;
|
||||
/* 0x32c */ float m32c;
|
||||
/* 0x330 */ float mJointX[11];
|
||||
/* 0x35c */ float mJointZ[11];
|
||||
/* 0x388 */ float mJointScale[11];
|
||||
/* 0x318 */ s16 mAngle1;
|
||||
/* 0x31a */ s16 mAngle2;
|
||||
/* 0x31c */ s16 m31c;
|
||||
/* 0x31e */ s16 mPtclTimer;
|
||||
/* 0x320 */ f32 mBtkFrame;
|
||||
/* 0x324 */ f32 mBtkUnderFrame;
|
||||
/* 0x328 */ f32 mBrkFrame;
|
||||
/* 0x32c */ f32 m32c;
|
||||
/* 0x330 */ f32 mJointX[11];
|
||||
/* 0x35c */ f32 mJointZ[11];
|
||||
/* 0x388 */ f32 mJointScale[11];
|
||||
/* 0x3b4 */ cXyz mCenter;
|
||||
/* 0x3c0 */ dPa_followEcallBack mPtclCb;
|
||||
};
|
||||
|
||||
@@ -26,8 +26,6 @@ static const int l_btp_ix_tbl[] = {
|
||||
|
||||
/* 00000078-0000022C .text nodeCallBack_Ho__FP7J3DNodei */
|
||||
static BOOL nodeCallBack_Ho(J3DNode* node, int calcTiming) {
|
||||
cXyz temp;
|
||||
cXyz temp2;
|
||||
if (calcTiming == J3DNodeCBCalcTiming_In) {
|
||||
J3DModel* model = j3dSys.getModel();
|
||||
daNpc_Ho_c* i_this = (daNpc_Ho_c*)model->getUserArea();
|
||||
@@ -37,9 +35,10 @@ static BOOL nodeCallBack_Ho(J3DNode* node, int calcTiming) {
|
||||
if(i_this != NULL) {
|
||||
MTXCopy(model->getAnmMtx(jntNo), *calc_mtx);
|
||||
if (jntNo == i_this->getHeadJntNum()) {
|
||||
temp.setall(0.0f);
|
||||
cXyz temp(0.0f, 0.0f, 0.0f);
|
||||
cMtx_YrotM(*calc_mtx, -i_this->getHead_y());
|
||||
cMtx_ZrotM(*calc_mtx, -i_this->getHead_x());
|
||||
cXyz temp2;
|
||||
MtxPosition(&temp, &temp2);
|
||||
i_this->setAttentionBasePos(temp2);
|
||||
temp.set(20.0f, -20.0f, 0.0f);
|
||||
@@ -49,9 +48,9 @@ static BOOL nodeCallBack_Ho(J3DNode* node, int calcTiming) {
|
||||
i_this->incAttnSetCount();
|
||||
|
||||
} else if (jntNo == i_this->getBackboneJntNum()) {
|
||||
mDoMtx_XrotM(*calc_mtx, i_this->getBackbone_y());
|
||||
cMtx_XrotM(*calc_mtx, (s16)i_this->getBackbone_y());
|
||||
}
|
||||
cMtx_copy(*calc_mtx, J3DSys::mCurrentMtx);
|
||||
MTXCopy(*calc_mtx, J3DSys::mCurrentMtx);
|
||||
model->setAnmMtx(jntNo, *calc_mtx);
|
||||
}
|
||||
}
|
||||
@@ -177,7 +176,7 @@ void daNpc_Ho_c::eventOrder() {
|
||||
|
||||
/* 00000708-000007A8 .text checkOrder__10daNpc_Ho_cFv */
|
||||
void daNpc_Ho_c::checkOrder() {
|
||||
if (eventInfo.mCommand == dEvtCmd_INTALK_e && ChkOrder(7)) {
|
||||
if (eventInfo.checkCommandTalk() && ChkOrder(7)) {
|
||||
if (dComIfGp_event_chkTalkXY()) {
|
||||
setFlag(HO_FLAG_00000010);
|
||||
} else {
|
||||
@@ -842,7 +841,7 @@ BOOL daNpc_Ho_c::_execute() {
|
||||
tevStr.mEnvrIdxOverride = dComIfG_Bgsp()->GetPolyColor(mObjAcch.m_gnd);
|
||||
|
||||
J3DModel* pModel = mpMorf->getModel();
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(current.angle.y);
|
||||
pModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
mpMorf->calc();
|
||||
@@ -922,7 +921,7 @@ BOOL daNpc_Ho_c::CreateHeap() {
|
||||
}
|
||||
|
||||
J3DModel* pModel = mpMorf->getModel();
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(current.angle.y);
|
||||
pModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
mpMorf->calc();
|
||||
|
||||
+11
-11
@@ -1418,19 +1418,19 @@ void daNpc_Hr_c::getTornadoPos(int jointY, cXyz* tornadoPos) {
|
||||
f32 temp = current.pos.y + speed.y;
|
||||
tornadoPos->y = temp;
|
||||
if (jointY == 10) {
|
||||
tornadoPos->x = tornadoActor->mpModel != NULL ? tornadoActor->mpModel->getAnmMtx(10)[0][3] : tornadoActor->current.pos.x;
|
||||
tornadoPos->z = tornadoActor->mpModel != NULL ? tornadoActor->mpModel->getAnmMtx(10)[2][3] : tornadoActor->current.pos.z;
|
||||
tornadoPos->x = tornadoActor->getJointXPos(10);
|
||||
tornadoPos->z = tornadoActor->getJointZPos(10);
|
||||
} else {
|
||||
pos1.set(
|
||||
tornadoActor->mpModel != NULL ? tornadoActor->mpModel->getAnmMtx(jointY -1)[0][3] : tornadoActor->current.pos.x,
|
||||
tornadoActor->mpModel != NULL ? tornadoActor->mpModel->getAnmMtx(jointY -1)[1][3] : tornadoActor->current.pos.y,
|
||||
tornadoActor->mpModel != NULL ? tornadoActor->mpModel->getAnmMtx(jointY -1)[2][3] : tornadoActor->current.pos.z
|
||||
tornadoActor->getJointXPos(jointY -1),
|
||||
tornadoActor->getJointYPos(jointY -1),
|
||||
tornadoActor->getJointZPos(jointY -1)
|
||||
);
|
||||
|
||||
pos2.set(
|
||||
tornadoActor->mpModel != NULL ? tornadoActor->mpModel->getAnmMtx(jointY)[0][3] : tornadoActor->current.pos.x,
|
||||
tornadoActor->mpModel != NULL ? tornadoActor->mpModel->getAnmMtx(jointY)[1][3] : tornadoActor->current.pos.y,
|
||||
tornadoActor->mpModel != NULL ? tornadoActor->mpModel->getAnmMtx(jointY)[2][3] : tornadoActor->current.pos.z
|
||||
tornadoActor->getJointXPos(jointY),
|
||||
tornadoActor->getJointYPos(jointY),
|
||||
tornadoActor->getJointZPos(jointY)
|
||||
);
|
||||
|
||||
f32 ratio = (temp - pos1.y) / (pos2.y - pos1.y);
|
||||
@@ -1571,7 +1571,7 @@ bool daNpc_Hr_c::rt_hide() {
|
||||
|
||||
/* 00003CEC-00003D0C .text rt_intro__10daNpc_Hr_cFv */
|
||||
bool daNpc_Hr_c::rt_intro() {
|
||||
rt_hit1();
|
||||
return rt_hit1();
|
||||
}
|
||||
|
||||
/* 00003D0C-00003DD8 .text to_rt_hit__10daNpc_Hr_cFv */
|
||||
@@ -1645,7 +1645,7 @@ bool daNpc_Hr_c::rt_angry() {
|
||||
setTexPtn(2);
|
||||
}
|
||||
|
||||
if (hitObj != NULL && ((hitObj->GetAtType() & AT_TYPE_NORMAL_ARROW) != 0 || (hitObj->GetAtType() & AT_TYPE_FIRE_ARROW) != 0 || (hitObj->GetAtType() & AT_TYPE_ICE_ARROW) != 0 || (hitObj->GetAtType() & AT_TYPE_LIGHT_ARROW) != 0)) {
|
||||
if (hitObj != NULL && ((hitObj->ChkAtType(AT_TYPE_NORMAL_ARROW)) || (hitObj->ChkAtType(AT_TYPE_FIRE_ARROW)) || (hitObj->ChkAtType(AT_TYPE_ICE_ARROW)) || (hitObj->ChkAtType(AT_TYPE_LIGHT_ARROW)))) {
|
||||
cXyz scale(11.0f, 11.0f, 11.0f);
|
||||
cXyz temp = *hitPos - pLink->eyePos;
|
||||
if(!temp.isZero()) {
|
||||
@@ -2046,7 +2046,7 @@ BOOL daNpc_Hr_c::_execute() {
|
||||
hrModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
mpHrMorf->calc();
|
||||
if(chkFlag(HR_FLAG_00000010)) {
|
||||
mCyl.ClrCoSet();
|
||||
mCyl.OffCoSetBit();
|
||||
} else {
|
||||
if(mType != 1) {
|
||||
mCyl.OnCoSetBit();
|
||||
|
||||
@@ -60,7 +60,7 @@ static BOOL nodeCallBack_Mk(J3DNode* node, int calcTiming) {
|
||||
|
||||
} else if (jntNo == i_this->getBackboneJntNum()) {
|
||||
mDoMtx_XrotM(*calc_mtx, i_this->getBackbone_y());
|
||||
mDoMtx_ZrotM(*calc_mtx, i_this->m_jnt.getBackbone_x());
|
||||
mDoMtx_ZrotM(*calc_mtx, i_this->getBackbone_x());
|
||||
}
|
||||
cMtx_copy(*calc_mtx, J3DSys::mCurrentMtx);
|
||||
model->setAnmMtx(jntNo, *calc_mtx);
|
||||
@@ -183,7 +183,7 @@ void daNpc_Mk_c::checkOrder() {
|
||||
setFlag(1);
|
||||
talkInit();
|
||||
}
|
||||
ClrOrder();
|
||||
ClrOrder(0xFF);
|
||||
}
|
||||
|
||||
/* 000006D4-00000750 .text next_msgStatus__10daNpc_Mk_cFPUl */
|
||||
@@ -746,7 +746,7 @@ bool daNpc_Mk_c::demoProc() {
|
||||
current.angle.y = home.angle.y;
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
case 4: {
|
||||
if (mAnmIdx == 5) {
|
||||
speedF = 12.0f;
|
||||
} else if (mAnmIdx == 11) {
|
||||
@@ -768,6 +768,7 @@ bool daNpc_Mk_c::demoProc() {
|
||||
field_0x6E8 = -1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
talkInit();
|
||||
dComIfGp_event_setTalkPartner(this);
|
||||
@@ -815,7 +816,7 @@ bool daNpc_Mk_c::demoProc() {
|
||||
clrFlag(0x10);
|
||||
fopAcM_OnStatus(this, fopAcStts_SHOWMAP_e);
|
||||
break;
|
||||
case 13:
|
||||
case 13: {
|
||||
fpc_ProcID itemID = fopAcM_createItemForPresentDemo(¤t.pos, dItemNo_HEART_PIECE_e);
|
||||
|
||||
if (itemID != fpcM_ERROR_PROCESS_ID_e) {
|
||||
@@ -823,6 +824,7 @@ bool daNpc_Mk_c::demoProc() {
|
||||
}
|
||||
dComIfGs_onEventBit(dSv_event_flag_c::UNK_1340);
|
||||
break;
|
||||
}
|
||||
case 14:
|
||||
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::UNK_0040);
|
||||
dComIfGs_onTmpBit(dSv_event_tmp_flag_c::UNK_0120);
|
||||
@@ -874,14 +876,14 @@ bool daNpc_Mk_c::demoProc() {
|
||||
}
|
||||
return true;
|
||||
|
||||
case 5:
|
||||
case 5: {
|
||||
u16 temp4 = talk();
|
||||
if (temp4 == fopMsgStts_BOX_CLOSED_e || temp4 == 0xFE) {
|
||||
dComIfGp_evmng_cutEnd(mStaffIdx);
|
||||
}
|
||||
setFlag(0x20);
|
||||
break;
|
||||
|
||||
}
|
||||
case 2:
|
||||
case 6:
|
||||
case 15:
|
||||
@@ -1233,7 +1235,7 @@ bool daNpc_Mk_c::drop01() {
|
||||
bool daNpc_Mk_c::runaway() {
|
||||
u8 temp = mMkStatic.runAwayProc(this, &field_0x688, &mCyl, &field_0x6F0);
|
||||
if (temp != mMkStatic.m0) {
|
||||
if (temp == 1 && mMkStatic.m0 == 2 || temp == 2 && mMkStatic.m0 == 1) {
|
||||
if ((temp == 1 && mMkStatic.m0 == 2) || (temp == 2 && mMkStatic.m0 == 1)) {
|
||||
if (cM_rndF(1.0f) < 0.5f) {
|
||||
fopAcM_seStart(this, JA_SE_CV_TR_KO_A_TURN, 0);
|
||||
}
|
||||
@@ -1600,7 +1602,7 @@ BOOL daNpc_Mk_c::_execute() {
|
||||
mpMorf->calc();
|
||||
|
||||
if(chkFlag(0x10)) {
|
||||
mCyl.ClrCoSet();
|
||||
mCyl.OffCoSetBit();
|
||||
} else {
|
||||
mCyl.OnCoSetBit();
|
||||
setCollision();
|
||||
|
||||
@@ -13091,7 +13091,7 @@ void daPy_lk_c::endDemoMode() {
|
||||
resetDemoTextureAnime();
|
||||
if (mEquipItem == daPyItem_UNK104_e || mEquipItem == daPyItem_UNK10A_e) {
|
||||
deleteEquipItem(FALSE);
|
||||
offNoResetFlg1(daPyFlg1_SHIP_TACT);
|
||||
offShipTact();
|
||||
}
|
||||
mDoAud_taktModeMuteOff();
|
||||
if (mAcch.ChkGroundHit() &&
|
||||
|
||||
+36
-40
@@ -22,6 +22,7 @@
|
||||
#include "d/actor/d_a_bomb.h"
|
||||
#include "d/actor/d_a_grid.h"
|
||||
#include "res/Object/Ship.h"
|
||||
#include "cstdint.h"
|
||||
|
||||
static char l_arcName[] = "Ship";
|
||||
static Vec l_cannon_top = {85.0f, 0.0f, 10.0f};
|
||||
@@ -278,7 +279,7 @@ BOOL daShip_c::draw() {
|
||||
mDoMtx_stack_c::concat(MStack_50);
|
||||
mDoMtx_stack_c::revConcat(m02A8);
|
||||
m02A0->setEffectMtx(mDoMtx_stack_c::get());
|
||||
m02A4->setTranslationX(m03D4);
|
||||
m02A4->mTexMtxInfo.mSRT.mTranslationX = m03D4;
|
||||
}
|
||||
|
||||
if (
|
||||
@@ -2153,10 +2154,10 @@ BOOL daShip_c::procZevDemo() {
|
||||
}
|
||||
|
||||
if (dComIfGp_evmng_getMyIntegerP(mEvtStaffId, "tact")) {
|
||||
daPy_getPlayerLinkActorClass()->onNoResetFlg1(daPy_py_c::daPyFlg1_SHIP_TACT);
|
||||
daPy_getPlayerLinkActorClass()->onShipTact();
|
||||
}
|
||||
else {
|
||||
daPy_getPlayerLinkActorClass()->offNoResetFlg1(daPy_py_c::daPyFlg1_SHIP_TACT);
|
||||
daPy_getPlayerLinkActorClass()->offShipTact();
|
||||
}
|
||||
|
||||
if (m0351 == DEMO_INIT_e || m0351 == DEMO_OPEN_e) {
|
||||
@@ -2640,11 +2641,11 @@ BOOL daShip_c::procTornadoUp_init() {
|
||||
|
||||
/* 00006DE0-00006FDC .text procTornadoUp__8daShip_cFv */
|
||||
BOOL daShip_c::procTornadoUp() {
|
||||
daTornado_c* tornadoActor = mTornadoActor;
|
||||
daTornado_c* tornado = mTornadoActor;
|
||||
|
||||
cLib_addCalc(¤t.pos.x, tornadoActor->getJointXPos(m037A), 0.5f, 80.0f, 20.0f);
|
||||
cLib_addCalc(¤t.pos.x, tornado->getJointXPos(m037A), 0.5f, 80.0f, 20.0f);
|
||||
|
||||
cLib_addCalc(¤t.pos.z, tornadoActor->getJointZPos(m037A), 0.5f, 80.0f, 20.0f);
|
||||
cLib_addCalc(¤t.pos.z, tornado->getJointZPos(m037A), 0.5f, 80.0f, 20.0f);
|
||||
|
||||
current.pos.y += speed.y;
|
||||
speed.y += 2.0f;
|
||||
@@ -2653,17 +2654,17 @@ BOOL daShip_c::procTornadoUp() {
|
||||
speed.y = 50.0f;
|
||||
}
|
||||
|
||||
if (tornadoActor->getJointYPos(m037A) < current.pos.y && m037A < 11) {
|
||||
if (tornado->getJointYPos(m037A) < current.pos.y && m037A < 11) {
|
||||
m037A++;
|
||||
}
|
||||
|
||||
shape_angle.y += 0x1C25;
|
||||
|
||||
camera_class* camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0));
|
||||
cXyz local_3c(tornadoActor->current.pos.x, current.pos.y, tornadoActor->current.pos.z);
|
||||
cXyz local_3c(tornado->current.pos.x, current.pos.y, tornado->current.pos.z);
|
||||
camera->mCamera.Set(local_3c, camera->mCamera.Eye());
|
||||
|
||||
if (m03A6 == 0 && current.pos.y > tornadoActor->current.pos.y + 5000.0f) {
|
||||
if (m03A6 == 0 && current.pos.y > tornado->current.pos.y + 5000.0f) {
|
||||
m03A6 = 1;
|
||||
int exitId = (s32)cM_rndF(8.0f) + 0xC6;
|
||||
if (exitId >= 0xCE) {
|
||||
@@ -2704,29 +2705,29 @@ BOOL daShip_c::procStartModeWarp() {
|
||||
GXColor amb;
|
||||
cXyz local_30;
|
||||
|
||||
daTornado_c* pfVar2 = (daTornado_c*)fopAcM_SearchByID(mTactWarpID);
|
||||
daTornado_c* tornado = (daTornado_c*)fopAcM_SearchByID(mTactWarpID);
|
||||
camera_class* camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0));
|
||||
shape_angle.y += m03A6;
|
||||
current.angle.y = shape_angle.y;
|
||||
if (pfVar2) {
|
||||
if (tornado) {
|
||||
#if VERSION > VERSION_DEMO
|
||||
if (!checkStateFlg(daSFLG_UNK8_e)) {
|
||||
onStateFlg(daSFLG_UNK8_e);
|
||||
pfVar2->current.pos.x = current.pos.x;
|
||||
pfVar2->current.pos.z = current.pos.z;
|
||||
tornado->current.pos.x = current.pos.x;
|
||||
tornado->current.pos.z = current.pos.z;
|
||||
}
|
||||
#endif
|
||||
iVar5 = 0;
|
||||
for (int i = 0; i < 11; iVar5++, i++) {
|
||||
if (current.pos.y < pfVar2->getJointYPos(i)) break;
|
||||
if (current.pos.y < tornado->getJointYPos(i)) break;
|
||||
}
|
||||
if (iVar5 == 11) {
|
||||
iVar5 = 10;
|
||||
}
|
||||
cLib_chaseF(¤t.pos.x, pfVar2->getJointXPos(iVar5), 50.0f);
|
||||
cLib_chaseF(¤t.pos.z, pfVar2->getJointZPos(iVar5), 50.0f);
|
||||
local_30.x = pfVar2->current.pos.x;
|
||||
local_30.z = pfVar2->current.pos.z;
|
||||
cLib_chaseF(¤t.pos.x, tornado->getJointXPos(iVar5), 50.0f);
|
||||
cLib_chaseF(¤t.pos.z, tornado->getJointZPos(iVar5), 50.0f);
|
||||
local_30.x = tornado->current.pos.x;
|
||||
local_30.z = tornado->current.pos.z;
|
||||
}
|
||||
else {
|
||||
local_30.x = current.pos.x;
|
||||
@@ -2740,8 +2741,8 @@ BOOL daShip_c::procStartModeWarp() {
|
||||
speed.y = 0.0f;
|
||||
offStateFlg(daSFLG_FLY_e);
|
||||
m037A = 1;
|
||||
if (pfVar2 != NULL) {
|
||||
pfVar2->m31c = 1;
|
||||
if (tornado != NULL) {
|
||||
tornado->setScaleOn();
|
||||
}
|
||||
dKy_get_seacolor(&diff, &amb);
|
||||
m03BC.x = 0;
|
||||
@@ -2750,13 +2751,13 @@ BOOL daShip_c::procStartModeWarp() {
|
||||
dComIfGp_particle_set(dPa_name::ID_AK_JN_SHIPWARPSPLASH00, ¤t.pos, &shape_angle, NULL, 0xFF, &m1984, -1, &diff);
|
||||
dComIfGp_particle_set(dPa_name::ID_AK_JN_SHIPWARPSPLASH00, ¤t.pos, &m03BC, NULL, 0xFF, &m1998, -1, &diff);
|
||||
}
|
||||
if (pfVar2 != NULL) {
|
||||
pfVar2->current.pos.y = current.pos.y - 700.0f;
|
||||
if (tornado != NULL) {
|
||||
tornado->current.pos.y = current.pos.y - 700.0f;
|
||||
}
|
||||
}
|
||||
else if (pfVar2 == NULL || pfVar2->mJointScale[10] < 0.8f) {
|
||||
if (pfVar2 != NULL) {
|
||||
pfVar2->current.pos.y -= 12.0f;
|
||||
else if (tornado == NULL || tornado->getSmallScaleEnd() < 0.8f) {
|
||||
if (tornado != NULL) {
|
||||
tornado->current.pos.y -= 12.0f;
|
||||
}
|
||||
m03BC.y = shape_angle.y + 0x8000;
|
||||
cLib_chaseS(&m03A6, 0, 0x40);
|
||||
@@ -2818,7 +2819,7 @@ BOOL daShip_c::procTactWarp() {
|
||||
res = FALSE;
|
||||
}
|
||||
else {
|
||||
if (cLib_chaseS(&m03A6, 0x1C25, 0x40) && (tornado->mJointScale[10] > 0.8f)) {
|
||||
if (cLib_chaseS(&m03A6, 0x1C25, 0x40) && (tornado->getScaleEnd() > 0.8f)) {
|
||||
speed.y += 1.0f;
|
||||
if (speed.y > 50.0f) {
|
||||
speed.y = 50.0f;
|
||||
@@ -2831,7 +2832,7 @@ BOOL daShip_c::procTactWarp() {
|
||||
else {
|
||||
if ((!m037A) && (m03A6 > 0x1000)) {
|
||||
m037A = 1;
|
||||
tornado->m31c = 1;
|
||||
tornado->setScaleOn();
|
||||
}
|
||||
}
|
||||
if (m037A == 1) {
|
||||
@@ -3423,10 +3424,10 @@ void daShip_c::setTornadoActor() {
|
||||
if (m0404 < 0.0f) {
|
||||
m0404 = 0.0f;
|
||||
}
|
||||
daTornado_c* pfVar2 = mTornadoActor;
|
||||
float dx = pfVar2->getJointXPos(0) - current.pos.x;
|
||||
float dz = pfVar2->getJointZPos(0) - current.pos.z;
|
||||
float distXZ = std::sqrtf(dx * dx + dz * dz);
|
||||
daTornado_c* tornado = mTornadoActor;
|
||||
f32 dx = tornado->getJointXPos(0) - current.pos.x;
|
||||
f32 dz = tornado->getJointZPos(0) - current.pos.z;
|
||||
f32 distXZ = std::sqrtf(dx * dx + dz * dz);
|
||||
if (!checkStateFlg(daSFLG_UNK1000_e) && distXZ < 3500.0f) {
|
||||
if(daPy_getPlayerLinkActorClass()->shipSpecialDemoStart()) {
|
||||
procTornadoUp_init();
|
||||
@@ -4594,8 +4595,7 @@ cPhs_State daShip_c::create() {
|
||||
for (u16 mno = 0; mno < pModelData->getMaterialNum(); mno++) {
|
||||
pMaterial = pModelData->getMaterialNodePointer(mno);
|
||||
for(u32 i = 0; i < 8; i++) {
|
||||
J3DTexGenBlock* pTexGenBlock = pMaterial->getTexGenBlock();
|
||||
J3DTexMtx* pTexMtx = pTexGenBlock->getTexMtx(i);
|
||||
J3DTexMtx* pTexMtx = pMaterial->getTexMtx(i);
|
||||
if (pTexMtx && pTexMtx->getTexMtxInfo().mInfo == 8) {
|
||||
m02A0 = pTexMtx;
|
||||
m02A4 = pTexMtx;
|
||||
@@ -4720,14 +4720,10 @@ cPhs_State daShip_c::create() {
|
||||
mSph.Set(sph_src);
|
||||
mSph.SetStts(&mStts);
|
||||
|
||||
cull.box.min.x = -325.0f;
|
||||
cull.box.min.y = -50.0f;
|
||||
cull.box.min.z = -325.0f;
|
||||
cull.box.max.x = 325.0f;
|
||||
cull.box.max.y = 570.0f;
|
||||
cull.box.max.z = 240.0f;
|
||||
fopAcM_SetMin(this, -325.0f, -50.0f, -325.0f);
|
||||
fopAcM_SetMax(this, 325.0f, 570.0f, 240.0f);
|
||||
|
||||
fopKyM_create(fpcNm_WIND_ARROW_e, (s32)this, 0, 0, 0);
|
||||
fopKyM_create(fpcNm_WIND_ARROW_e, (std::intptr_t)this, 0, 0, 0);
|
||||
|
||||
offStateFlg(daSFLG_UNK2_e);
|
||||
mAcch.CrrPos(*dComIfG_Bgsp());
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/actor/d_a_ship.h"
|
||||
#include "d/d_kankyo_wether.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "cstdint.h"
|
||||
|
||||
static char l_arcName[] = "Trnd";
|
||||
|
||||
@@ -208,7 +210,7 @@ BOOL daTornado_c::execute() {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
||||
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
attention_info.position = current.pos;
|
||||
eyePos = current.pos;
|
||||
@@ -218,7 +220,7 @@ BOOL daTornado_c::execute() {
|
||||
dKy_get_seacolor(&colorAmb, &colorDif);
|
||||
mPtclCb.getEmitter()->setGlobalPrmColor(colorAmb.r, colorAmb.g, colorAmb.b);
|
||||
}
|
||||
mDoMtx_stack_c::transS(mCenter);
|
||||
mDoMtx_stack_c::transS(mCenter.x, mCenter.y, mCenter.z);
|
||||
mpModelUnder->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
|
||||
return TRUE;
|
||||
@@ -320,14 +322,14 @@ cPhs_State daTornado_c::create() {
|
||||
dComIfGp_particle_set(dPa_name::ID_AK_SN_WINDUPWATER00, &mCenter, NULL, NULL, 0xFF, &mPtclCb);
|
||||
fopAcM_OnStatus(this, fopAcStts_SHOWMAP_e);
|
||||
}
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
||||
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
mpModelUnder->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
J3DModelData* modelData = mpModel->getModelData();
|
||||
for (u16 i = 1; i < modelData->getJointNum(); i++) {
|
||||
modelData->getJointNodePointer(i)->setCallBack(daTornado_jointCallBack);
|
||||
}
|
||||
mpModel->setUserArea((u32) this);
|
||||
mpModel->setUserArea((std::uintptr_t)this);
|
||||
}
|
||||
return rt;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user