mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-08-16 12:24:45 -04:00
d_camera / m_Do_ext / d_particle + minor various wip (#210)
This commit is contained in:
+195
-160
@@ -99,17 +99,6 @@ struct dDemo_c {
|
||||
static u8 m_object[4];
|
||||
};
|
||||
|
||||
struct dCamera_c {
|
||||
/* 80088A7C */ void StartEventCamera(int, int, ...);
|
||||
/* 80088BBC */ void EndEventCamera(int);
|
||||
/* 801614AC */ void Start();
|
||||
/* 801614D0 */ void Stop();
|
||||
/* 801614F4 */ void ChangeModeOK(s32);
|
||||
/* 80163028 */ void SetTrimTypeForce(s32);
|
||||
/* 80164B64 */ void GetCameraTypeFromCameraName(char const*);
|
||||
/* 80181500 */ void GetForceLockOnActor();
|
||||
};
|
||||
|
||||
struct JASKernel {
|
||||
/* 80290B08 */ void getAramHeap();
|
||||
};
|
||||
@@ -3296,7 +3285,7 @@ void daAlink_c::tgHitCallback(fopAc_ac_c* param_0, dCcD_GObjInf* param_1, dCcD_G
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (param_1 == &field_0x850[i]) {
|
||||
field_0x2fb8 |= (1 << i);
|
||||
field_0x36b4 = param_0->mCurrent.mPosition;
|
||||
field_0x36b4 = param_0->current.pos;
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -3417,14 +3406,18 @@ asm bool daAlink_c::modelCallBack(int param_0) {
|
||||
|
||||
/* 8009EC28-8009ECA0 099568 0078+00 1/1 0/0 0/0 .text daAlink_modelCallBack__FP8J3DJointi
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daAlink_modelCallBack(J3DJoint* param_0, int param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/daAlink_modelCallBack__FP8J3DJointi.s"
|
||||
static int daAlink_modelCallBack(J3DJoint* p_joint, int param_1) {
|
||||
int jntNo = p_joint->getJntNo();
|
||||
daAlink_c* alink = (daAlink_c*)j3dSys.getModel()->getUserArea();
|
||||
|
||||
if (param_1 == 0) {
|
||||
alink->modelCallBack(jntNo);
|
||||
} else if (param_1 == 1 && alink->checkResetRootMtx(jntNo)) {
|
||||
alink->resetRootMtx();
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80452CC4-80452CC8 0012C4 0004+00 137/137 0/0 0/0 .sdata2 @6109 */
|
||||
@@ -4111,11 +4104,9 @@ SECTION_SDATA2 static f32 lit_32832 = -1.0f / 100.0f;
|
||||
SECTION_SDATA2 static f32 lit_32833 = 16777215.0f;
|
||||
|
||||
/* 80453020-80453024 001620 0004+00 1/1 0/0 0/0 .sdata2 grassWhistleIdx$33097 */
|
||||
SECTION_SDATA2 static u8 grassWhistleIdx[4] = {
|
||||
0x00,
|
||||
0x03,
|
||||
0x00,
|
||||
0x03,
|
||||
SECTION_SDATA2 static u16 grassWhistleIdx[2] = {
|
||||
3,
|
||||
3,
|
||||
};
|
||||
|
||||
/* 80453024-80453028 001624 0004+00 1/1 0/0 0/0 .sdata2 @33587 */
|
||||
@@ -4607,14 +4598,16 @@ asm void daAlink_c::setHairAngle(cXyz* param_0, f32 param_1, f32 param_2) {
|
||||
#pragma pop
|
||||
|
||||
/* 800A0744-800A07D8 09B084 0094+00 0/0 1/1 0/0 .text setLookPosFromOut__9daAlink_cFP4cXyz */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::setLookPosFromOut(cXyz* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/setLookPosFromOut__9daAlink_cFP4cXyz.s"
|
||||
void daAlink_c::setLookPosFromOut(cXyz* p_pos) {
|
||||
if (i_checkEndResetFlg0(ERFLG0_UNK_4)) {
|
||||
if (current.pos.abs2(mLookPosFromOut) < current.pos.abs2(*p_pos)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
i_onEndResetFlg0(ERFLG0_UNK_4);
|
||||
mLookPosFromOut = *p_pos;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8038D658-8038D664 019CB8 000C+00 69/69 0/0 0/0 .rodata @3757 */
|
||||
@@ -4626,14 +4619,21 @@ COMPILER_STRIP_GATE(0x8038D658, &lit_3757);
|
||||
#include "d/a/d_a_alink_HIO_data.inc"
|
||||
|
||||
/* 800A07D8-800A0868 09B118 0090+00 2/2 0/0 0/0 .text checkAttentionPosAngle__9daAlink_cFP4cXyz */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::checkAttentionPosAngle(cXyz* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/checkAttentionPosAngle__9daAlink_cFP4cXyz.s"
|
||||
bool daAlink_c::checkAttentionPosAngle(cXyz* param_0) {
|
||||
if (i_checkNoResetFlg1(FLG1_UNK_4)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
int tmp;
|
||||
if (i_checkModeFlg(MODE_RIDING) || i_checkEndResetFlg0(ERFLG0_UNK_400)) {
|
||||
tmp = daAlinkHIO_horse_c0::m.field_0x52;
|
||||
} else {
|
||||
tmp = 0x6000;
|
||||
}
|
||||
|
||||
s16 targetY = cLib_targetAngleY(&field_0x34e0, param_0);
|
||||
return cLib_distanceAngleS(targetY, field_0x2fe6) <= tmp;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800A0868-800A093C 09B1A8 00D4+00 1/1 0/0 0/0 .text
|
||||
* checkActorPosAngle__9daAlink_cFP10fopAc_ac_cPP4cXyz */
|
||||
@@ -4729,7 +4729,7 @@ s16 daAlink_c::getMoveBGActorName(cBgS_PolyInfo& param_0, int param_1) {
|
||||
dComIfG_Bgsp().ChkMoveBG_NoDABg(param_0) && dComIfG_Bgsp().GetActorPointer(param_0)) {
|
||||
return fopAcM_GetName(dComIfG_Bgsp().GetActorPointer(param_0));
|
||||
}
|
||||
return 0xFD;
|
||||
return PROC_ALINK;
|
||||
}
|
||||
|
||||
/* 800A2280-800A22E8 09CBC0 0068+00 2/2 0/0 0/0 .text checkGoronRide__9daAlink_cFv */
|
||||
@@ -6491,56 +6491,91 @@ asm void* daAlink_c::getAnimeResource(daPy_anmHeap_c* param_0, u16 param_1, u32
|
||||
|
||||
/* 800A3D7C-800A3E30 09E6BC 00B4+00 16/16 0/0 0/0 .text initModel__9daAlink_cFP12J3DModelDataUlUl
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DModel* daAlink_c::initModel(J3DModelData* param_0, u32 param_1, u32 param_2) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/initModel__9daAlink_cFP12J3DModelDataUlUl.s"
|
||||
J3DModel* daAlink_c::initModel(J3DModelData* i_modelData, u32 mdlFlags, u32 diffFlags) {
|
||||
J3DTexture* tex = i_modelData->getTexture();
|
||||
int texNo = tex->getNum() - 1;
|
||||
|
||||
int warpMaterial = false;
|
||||
if (texNo >= 0) {
|
||||
ResTIMG* timg = tex->getResTIMG(texNo);
|
||||
|
||||
if (mpWarpTexData == (u32)timg + timg->imageOffset) {
|
||||
warpMaterial = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (warpMaterial) {
|
||||
dRes_info_c::onWarpMaterial(i_modelData);
|
||||
diffFlags |= 0x2000400;
|
||||
}
|
||||
|
||||
J3DModel* model = mDoExt_J3DModel__create(i_modelData, mdlFlags, diffFlags | 0x11000084);
|
||||
|
||||
if (warpMaterial) {
|
||||
dRes_info_c::offWarpMaterial(i_modelData);
|
||||
}
|
||||
|
||||
return model;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800A3E30-800A3E98 09E770 0068+00 1/1 0/0 0/0 .text initModel__9daAlink_cFUsUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::initModel(u16 param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/initModel__9daAlink_cFUsUl.s"
|
||||
J3DModel* daAlink_c::initModel(u16 param_0, u32 param_1) {
|
||||
return initModel((J3DModelData*)dComIfG_getObjectRes(l_arcName, param_0), param_1);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800A3E98-800A3F00 09E7D8 0068+00 1/1 0/0 0/0 .text initModelEnv__9daAlink_cFUsUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::initModelEnv(u16 param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/initModelEnv__9daAlink_cFUsUl.s"
|
||||
J3DModel* daAlink_c::initModelEnv(u16 param_0, u32 param_1) {
|
||||
return initModelEnv((J3DModelData*)dComIfG_getObjectRes(l_arcName, param_0), param_1);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800A3F00-800A3F98 09E840 0098+00 1/1 0/0 0/0 .text initDemoModel__9daAlink_cFPP8J3DModelPCcUl
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::initDemoModel(J3DModel** param_0, char const* param_1, u32 param_2) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/initDemoModel__9daAlink_cFPP8J3DModelPCcUl.s"
|
||||
int daAlink_c::initDemoModel(J3DModel** p_model, char const* resName, u32 param_2) {
|
||||
*p_model = NULL;
|
||||
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(dStage_roomControl_c::getDemoArcName(), resName);
|
||||
if (modelData != NULL) {
|
||||
*p_model = initModel(modelData, param_2);
|
||||
|
||||
if (*p_model == NULL) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800A3F98-800A4068 09E8D8 00D0+00 1/1 0/0 1/1 .text initDemoBck__9daAlink_cFPP13mDoExt_bckAnmPCc
|
||||
*/
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::initDemoBck(mDoExt_bckAnm** p_bck, char const* resName) {
|
||||
J3DAnmTransform* res = (J3DAnmTransform*)dComIfG_getObjectRes(dStage_roomControl_c::getDemoArcName(), resName);
|
||||
|
||||
if (res != NULL) {
|
||||
*p_bck = new mDoExt_bckAnm();
|
||||
|
||||
if (*p_bck == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((*p_bck)->init(res, 1, 2, 1.0f, 0, -1, false)) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::initDemoBck(mDoExt_bckAnm** param_0, char const* param_1) {
|
||||
asm int daAlink_c::initDemoBck(mDoExt_bckAnm** param_0, char const* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/initDemoBck__9daAlink_cFPP13mDoExt_bckAnmPCc.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80392094-80392094 01E6F4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -12170,17 +12205,17 @@ void daAlink_c::setSelectEquipItem(int param_0) {
|
||||
J3DModel* temp = mSwordModel;
|
||||
|
||||
if (checkWoodSwordEquip()) {
|
||||
mSwordModel = field_0x0670;
|
||||
field_0x06bc = field_0x066c;
|
||||
mSwordModel = mWoodSwordModel;
|
||||
mSheathModel = mpSwMSheathModel;
|
||||
} else if (checkMasterSwordEquip()) {
|
||||
mSwordModel = field_0x0668;
|
||||
field_0x06bc = field_0x066c;
|
||||
mSwordModel = mpSwMModel;
|
||||
mSheathModel = mpSwMSheathModel;
|
||||
} else {
|
||||
if (!i_checkSwordGet()) {
|
||||
mSwordChangeWaitTimer = 100;
|
||||
}
|
||||
mSwordModel = field_0x0660;
|
||||
field_0x06bc = field_0x0664;
|
||||
mSwordModel = mpSwAModel;
|
||||
mSheathModel = mpSwASheathModel;
|
||||
}
|
||||
|
||||
if (!i_checkSwordGet() || checkWoodSwordEquip() || i_checkNoResetFlg3(FLG3_UNK_1000000)) {
|
||||
@@ -12212,11 +12247,11 @@ void daAlink_c::setSelectEquipItem(int param_0) {
|
||||
}
|
||||
}
|
||||
} else if (checkMasterSwordEquip()) {
|
||||
mSwordModel = field_0x0668;
|
||||
field_0x06bc = field_0x066c;
|
||||
mSwordModel = mpSwMModel;
|
||||
mSheathModel = mpSwMSheathModel;
|
||||
} else {
|
||||
mSwordModel = field_0x0660;
|
||||
field_0x06bc = field_0x0664;
|
||||
mSwordModel = mpSwAModel;
|
||||
mSheathModel = mpSwASheathModel;
|
||||
}
|
||||
|
||||
if (mClothesChangeWaitTimer == 0) {
|
||||
@@ -12284,7 +12319,7 @@ void daAlink_c::playerInit() {
|
||||
field_0x850[1].SetH(lit_14955);
|
||||
field_0xFB8.Set(*(dCcD_SrcSph*)l_sphSrc);
|
||||
field_0xFB8.SetStts(&field_0x814);
|
||||
field_0xFB8.StartCAt(mCurrent.mPosition);
|
||||
field_0xFB8.StartCAt(current.pos);
|
||||
|
||||
mAnmHeap3.setBufferSize(0x20000);
|
||||
mAnmHeap3.createHeap(daPy_anmHeap_c::HEAP_TYPE_4);
|
||||
@@ -12299,8 +12334,8 @@ void daAlink_c::playerInit() {
|
||||
mAnmHeap4.createHeap(daPy_anmHeap_c::HEAP_TYPE_4);
|
||||
setShieldModel();
|
||||
|
||||
mSwordModel = field_0x0660;
|
||||
field_0x06bc = field_0x0664;
|
||||
mSwordModel = mpSwAModel;
|
||||
mSheathModel = mpSwASheathModel;
|
||||
|
||||
field_0x814.Init(120, 0xFF, this);
|
||||
field_0x306c = mCollisionRot.y + field_0x59e;
|
||||
@@ -12309,12 +12344,12 @@ void daAlink_c::playerInit() {
|
||||
field_0x122C[i].Set(*(dCcD_SrcCps*)l_atCpsSrc);
|
||||
field_0x122C[i].SetStts(&field_0x814);
|
||||
}
|
||||
field_0x15F8.Set(*(dCcD_SrcCps*)l_atCpsSrc);
|
||||
field_0x15F8.SetStts(&field_0x814);
|
||||
field_0x15F8.SetAtType(0x10);
|
||||
field_0x15F8.OnAtNoHitMark();
|
||||
field_0x15F8.SetAtHitMark(0);
|
||||
field_0x15F8.SetAtAtp(0);
|
||||
mGuardAttackAtCps.Set(*(dCcD_SrcCps*)l_atCpsSrc);
|
||||
mGuardAttackAtCps.SetStts(&field_0x814);
|
||||
mGuardAttackAtCps.SetAtType(AT_TYPE_SHIELD_ATTACK);
|
||||
mGuardAttackAtCps.OnAtNoHitMark();
|
||||
mGuardAttackAtCps.SetAtHitMark(0);
|
||||
mGuardAttackAtCps.SetAtAtp(0);
|
||||
field_0x10F0.Set(*(dCcD_SrcCyl*)l_atCylSrc);
|
||||
field_0x10F0.SetStts(&field_0x814);
|
||||
|
||||
@@ -12356,19 +12391,19 @@ void daAlink_c::playerInit() {
|
||||
mAnmHeap9.createHeap(daPy_anmHeap_c::HEAP_TYPE_3);
|
||||
resetBasAnime();
|
||||
|
||||
mZ2Link.init(&mCurrent.mPosition, &mEyePos, &field_0x3720);
|
||||
mZ2Link.init(¤t.pos, &mEyePos, &field_0x3720);
|
||||
mZ2Link.initKantera(&field_0x360c);
|
||||
mZ2Link.setKanteraState(0);
|
||||
mProcID = 0x160;
|
||||
|
||||
m_swordBlur.m_blurTex = (void*)dComIfG_getObjectRes(l_arcName, 0x59); // blur.bti
|
||||
|
||||
J3DModelData* modelData = field_0x0660->getModelData();
|
||||
J3DModelData* modelData = mpSwAModel->getModelData();
|
||||
m_nSwordBtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, 0x44); // al_swa.btk
|
||||
m_nSwordBtk->searchUpdateMaterialID(modelData);
|
||||
modelData->entryTexMtxAnimator(m_nSwordBtk);
|
||||
|
||||
J3DModelData* modelData2 = field_0x0668->getModelData();
|
||||
J3DModelData* modelData2 = mpSwMModel->getModelData();
|
||||
m_mSwordBtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, 0x45); // al_swm.btk
|
||||
m_mSwordBtk->searchUpdateMaterialID(modelData2);
|
||||
modelData2->entryTexMtxAnimator(m_mSwordBtk);
|
||||
@@ -12453,7 +12488,7 @@ void daAlink_c::playerInit() {
|
||||
field_0x2f20.setOldPosP(&field_0x3624, &field_0x3630);
|
||||
field_0x2fc3 = 10;
|
||||
|
||||
field_0x2f5c.mPosition = mCurrent.mPosition;
|
||||
field_0x2f5c.mPosition = current.pos;
|
||||
field_0x2f5c.mColor.r = 80;
|
||||
field_0x2f5c.mColor.g = 80;
|
||||
field_0x2f5c.mColor.b = 200;
|
||||
@@ -12538,7 +12573,7 @@ int daAlink_c::create() {
|
||||
BOOL enteringCity = false;
|
||||
// Stage: City Room: Entrance Layer: 0
|
||||
if (checkStageName("D_MN07") && dComIfGp_roomControl_getStayNo() == 0 &&
|
||||
dComIfG_play_c::getLayerNo(0) == 0 && mCurrent.mPosition.y > 7500.0f) {
|
||||
dComIfG_play_c::getLayerNo(0) == 0 && current.pos.y > 7500.0f) {
|
||||
enteringCity = true;
|
||||
}
|
||||
|
||||
@@ -12557,42 +12592,42 @@ int daAlink_c::create() {
|
||||
fopAcM_setStageLayer(this);
|
||||
|
||||
if (sceneMode == 7) {
|
||||
mCurrent.mPosition = dComIfGs_getTurnRestartPos();
|
||||
current.pos = dComIfGs_getTurnRestartPos();
|
||||
mCollisionRot.y = dComIfGs_getTurnRestartAngleY();
|
||||
mCurrent.mAngle.y = mCollisionRot.y;
|
||||
current.angle.y = mCollisionRot.y;
|
||||
}
|
||||
|
||||
if ((!checkBossOctaIealRoom() && dComIfGs_Wolf_Change_Check() == 1) || startPoint == -4 ||
|
||||
sceneMode == 9) {
|
||||
mAttentionInfo.mPosition.set(mCurrent.mPosition.x + cM_ssin(mCollisionRot.y) * 70.0f,
|
||||
mCurrent.mPosition.y + 80.0f,
|
||||
mCurrent.mPosition.z + cM_scos(mCollisionRot.y) * 70.0f);
|
||||
mAttentionInfo.mPosition.set(current.pos.x + cM_ssin(mCollisionRot.y) * 70.0f,
|
||||
current.pos.y + 80.0f,
|
||||
current.pos.z + cM_scos(mCollisionRot.y) * 70.0f);
|
||||
i_onNoResetFlg1(0x2000000);
|
||||
} else if (horseStart) {
|
||||
mAttentionInfo.mPosition.y = mCurrent.mPosition.y + 150.0f;
|
||||
mAttentionInfo.mPosition.y = current.pos.y + 150.0f;
|
||||
} else {
|
||||
mAttentionInfo.mPosition.y = mCurrent.mPosition.y + 275.0f;
|
||||
mAttentionInfo.mPosition.y = current.pos.y + 275.0f;
|
||||
}
|
||||
mAttentionInfo.mFlags = -1;
|
||||
|
||||
if (!i_dComIfGp_getEventManager().dataLoaded()) {
|
||||
return 0;
|
||||
return cPhs_ZERO_e;
|
||||
}
|
||||
|
||||
setArcName(i_checkWolf());
|
||||
setOriginalHeap(&field_0x0638, 0xA2800);
|
||||
if (dComIfG_resLoad(&mPhaseReq, mArcName, field_0x0638) != 4) {
|
||||
return 0;
|
||||
if (dComIfG_resLoad(&mPhaseReq, mArcName, field_0x0638) != cPhs_COMPLEATE_e) {
|
||||
return cPhs_ZERO_e;
|
||||
}
|
||||
|
||||
setShieldArcName();
|
||||
setOriginalHeap(&field_0x0648, 0x7000);
|
||||
if (dComIfG_resLoad(&mShieldPhaseReq, mShieldArcName, field_0x0648) != 4) {
|
||||
return 0;
|
||||
if (dComIfG_resLoad(&mShieldPhaseReq, mShieldArcName, field_0x0648) != cPhs_COMPLEATE_e) {
|
||||
return cPhs_ZERO_e;
|
||||
}
|
||||
|
||||
if (!fopAcM_entrySolidHeap(this, daAlink_createHeap, 0xC003E930)) {
|
||||
return 5;
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
mAttention = &dComIfGp_getAttention();
|
||||
@@ -12602,10 +12637,10 @@ int daAlink_c::create() {
|
||||
bgWaitFlg = 1;
|
||||
|
||||
if (checkCanoeStart()) {
|
||||
field_0x2900 = fopAcM_create(PROC_CANOE, 0, &mCurrent.mPosition, fopAcM_GetRoomNo(this),
|
||||
field_0x2900 = fopAcM_create(PROC_CANOE, 0, ¤t.pos, fopAcM_GetRoomNo(this),
|
||||
&mCollisionRot, NULL, -1);
|
||||
} else if (sceneMode == 11) {
|
||||
field_0x2900 = fopAcM_create(PROC_Obj_IceLeaf, 0x1FFFF, &mCurrent.mPosition,
|
||||
field_0x2900 = fopAcM_create(PROC_Obj_IceLeaf, 0x1FFFF, ¤t.pos,
|
||||
fopAcM_GetRoomNo(this), &mCollisionRot, NULL, -1);
|
||||
} else {
|
||||
field_0x2900 = -1;
|
||||
@@ -12618,16 +12653,16 @@ int daAlink_c::create() {
|
||||
if (mLinkAcch.GetGroundH() == lit_9138 ||
|
||||
(startMode == 14 && !dComIfG_Bgsp().ChkMoveBG(mLinkAcch.m_gnd)) ||
|
||||
(startPoint == -4 &&
|
||||
fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchPortal, &mCurrent.mPosition) == NULL) ||
|
||||
fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchPortal, ¤t.pos) == NULL) ||
|
||||
(field_0x2900 != -1 && !fopAcM_SearchByID(field_0x2900)) ||
|
||||
(checkCanoeStart() && !fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchCanoe, NULL)) ||
|
||||
(checkBoarStart() && !fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchBoar, NULL)) ||
|
||||
(startMode == 13 &&
|
||||
(!mLinkAcch.ChkWaterHit() || mLinkAcch.m_wtr.GetHeight() < mCurrent.mPosition.y)) ||
|
||||
(!mLinkAcch.ChkWaterHit() || mLinkAcch.m_wtr.GetHeight() < current.pos.y)) ||
|
||||
((checkCarryStartLightBallA() || checkCarryStartLightBallB()) &&
|
||||
!fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchLightBall, NULL)) ||
|
||||
(horseStart && i_dComIfGp_getHorseActor() == NULL)) {
|
||||
return 0;
|
||||
return cPhs_ZERO_e;
|
||||
}
|
||||
|
||||
if (var_r24) {
|
||||
@@ -12636,8 +12671,8 @@ int daAlink_c::create() {
|
||||
|
||||
bgWaitFlg = 0;
|
||||
|
||||
dComIfGs_setRestartRoom(mCurrent.mPosition, mCollisionRot.y, getStartRoomNo());
|
||||
field_0x3780 = mCurrent.mPosition;
|
||||
dComIfGs_setRestartRoom(current.pos, mCollisionRot.y, getStartRoomNo());
|
||||
field_0x3780 = current.pos;
|
||||
mLinkAcch.ClrGndThinCellingOff();
|
||||
fopAcM_SetRoomNo(this, dComIfG_Bgsp().GetRoomId(mLinkAcch.m_gnd) + 1);
|
||||
setRoomInfo();
|
||||
@@ -12666,7 +12701,7 @@ int daAlink_c::create() {
|
||||
setSelectEquipItem(0);
|
||||
setMatrix();
|
||||
allAnimePlay();
|
||||
field_0x0650->calc();
|
||||
mpLinkModel->calc();
|
||||
playFaceTextureAnime();
|
||||
|
||||
if (!i_checkWolf()) {
|
||||
@@ -12678,7 +12713,7 @@ int daAlink_c::create() {
|
||||
setBodyPartPos();
|
||||
setHangWaterY();
|
||||
|
||||
field_0x850[0].SetC(mCurrent.mPosition);
|
||||
field_0x850[0].SetC(current.pos);
|
||||
field_0x3454 = field_0x3834.y;
|
||||
setAttentionPos();
|
||||
setItemActor();
|
||||
@@ -12698,9 +12733,9 @@ int daAlink_c::create() {
|
||||
1, 1);
|
||||
}
|
||||
|
||||
fopAcM_create(PROC_MIDNA, prm, &mCurrent.mPosition, fopAcM_GetRoomNo(this), &mCollisionRot,
|
||||
fopAcM_create(PROC_MIDNA, prm, ¤t.pos, fopAcM_GetRoomNo(this), &mCollisionRot,
|
||||
NULL, -1);
|
||||
checkSetNpcTks(&mCurrent.mPosition, fopAcM_GetRoomNo(this), 1);
|
||||
checkSetNpcTks(¤t.pos, fopAcM_GetRoomNo(this), 1);
|
||||
|
||||
if (startPoint == -4 && dComIfGp_TargetWarpPt_get() != -1 && !dComIfGp_TransportWarp_check()) {
|
||||
daTagMhint_c::createPortalWarpMissTag(fopAcM_GetID(this), fopAcM_GetRoomNo(this));
|
||||
@@ -12715,7 +12750,7 @@ int daAlink_c::create() {
|
||||
}
|
||||
}
|
||||
|
||||
return 4;
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
@@ -13977,7 +14012,7 @@ void dBgS_RoofChk::SetPos(cXyz const& pos) {
|
||||
|
||||
/* 800B1488-800B14B4 0ABDC8 002C+00 4/4 0/0 0/0 .text checkWaterPolygonUnder__9daAlink_cFv */
|
||||
BOOL daAlink_c::checkWaterPolygonUnder() {
|
||||
return i_checkModeFlg(MODE_SWIMMING) || mCurrent.mPosition.y < mWaterY;
|
||||
return i_checkModeFlg(MODE_SWIMMING) || current.pos.y < mWaterY;
|
||||
}
|
||||
|
||||
/* 800B14B4-800B154C 0ABDF4 0098+00 2/2 0/0 0/0 .text setWaterY__9daAlink_cFv */
|
||||
@@ -14100,9 +14135,9 @@ BOOL daAlink_c::checkSlope() const {
|
||||
void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, s16 param_1, int param_2) {
|
||||
if (checkEventRun() || param_2 != 0 || mSpecialMode != 0) {
|
||||
if (p_pos != NULL) {
|
||||
mCurrent.mPosition = *p_pos;
|
||||
mNext.mPosition = mCurrent.mPosition;
|
||||
field_0x3798 = mCurrent.mPosition;
|
||||
current.pos = *p_pos;
|
||||
next.pos = current.pos;
|
||||
field_0x3798 = current.pos;
|
||||
i_onEndResetFlg0(ERFLG0_UNK_800000);
|
||||
i_onEndResetFlg2(ERFLG2_UNK_100);
|
||||
if (mDemo.getDemoMode() != 0x59) {
|
||||
@@ -14111,12 +14146,12 @@ void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, s16 param_1, int param_2
|
||||
}
|
||||
|
||||
mCollisionRot.y = param_1;
|
||||
mCurrent.mAngle.y = param_1;
|
||||
current.angle.y = param_1;
|
||||
field_0x2fe6 = mCollisionRot.y;
|
||||
if ((mProcID == PROC_TALK || mProcID == PROC_TRADE_ITEM_OUT) && !i_checkWolf()) {
|
||||
if (field_0x3198 != 0) {
|
||||
field_0x37c8.x = mCurrent.mPosition.x;
|
||||
field_0x37c8.z = mCurrent.mPosition.z;
|
||||
field_0x37c8.x = current.pos.x;
|
||||
field_0x37c8.z = current.pos.z;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14126,12 +14161,12 @@ void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, s16 param_1, int param_2
|
||||
|
||||
if (checkHorseRide() || checkSpinnerRide()) {
|
||||
fopAc_ac_c* rideAc = mRideAcKeep.getActor();
|
||||
rideAc->mCurrent.mPosition = mCurrent.mPosition;
|
||||
rideAc->current.pos = current.pos;
|
||||
rideAc->mCollisionRot.y = mCollisionRot.y;
|
||||
rideAc->mCurrent.mAngle.y = mCollisionRot.y;
|
||||
rideAc->current.angle.y = mCollisionRot.y;
|
||||
rideAc->mSpeed.y = FLOAT_LABEL(lit_6108);
|
||||
} else {
|
||||
i_dComIfGp_getHorseActor()->setHorsePosAndAngle(&mCurrent.mPosition, mCollisionRot.y);
|
||||
i_dComIfGp_getHorseActor()->setHorsePosAndAngle(¤t.pos, mCollisionRot.y);
|
||||
}
|
||||
|
||||
field_0x814.ClrCcMove();
|
||||
@@ -14153,9 +14188,9 @@ asm void daAlink_c::setPlayerPosAndAngle(cXyz const* param_0, s16 param_1, int p
|
||||
void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, csXyz const* p_angle) {
|
||||
if (checkEventRun() || mSpecialMode != 0) {
|
||||
if (p_pos != NULL) {
|
||||
mCurrent.mPosition = *p_pos;
|
||||
mNext.mPosition = mCurrent.mPosition;
|
||||
field_0x3798 = mCurrent.mPosition;
|
||||
current.pos = *p_pos;
|
||||
next.pos = current.pos;
|
||||
field_0x3798 = current.pos;
|
||||
i_onEndResetFlg0(ERFLG0_UNK_800000);
|
||||
i_onEndResetFlg2(ERFLG2_UNK_100);
|
||||
mSpeed.y = FLOAT_LABEL(lit_6108);
|
||||
@@ -14163,7 +14198,7 @@ void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, csXyz const* p_angle) {
|
||||
|
||||
if (p_angle != NULL) {
|
||||
mCollisionRot = *p_angle;
|
||||
mCurrent.mAngle.y = mCollisionRot.y;
|
||||
current.angle.y = mCollisionRot.y;
|
||||
field_0x2fe6 = mCollisionRot.y;
|
||||
}
|
||||
|
||||
@@ -14174,15 +14209,15 @@ void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, csXyz const* p_angle) {
|
||||
/* 800B24F4-800B25CC 0ACE34 00D8+00 1/0 0/0 0/0 .text setPlayerPosAndAngle__9daAlink_cFPA4_f */
|
||||
void daAlink_c::setPlayerPosAndAngle(Mtx param_0) {
|
||||
if (checkEventRun() || mSpecialMode != 0) {
|
||||
mCurrent.mPosition.x = param_0[0][3];
|
||||
mCurrent.mPosition.y = param_0[1][3];
|
||||
mCurrent.mPosition.z = param_0[2][3];
|
||||
mNext.mPosition = mCurrent.mPosition;
|
||||
field_0x3798 = mCurrent.mPosition;
|
||||
current.pos.x = param_0[0][3];
|
||||
current.pos.y = param_0[1][3];
|
||||
current.pos.z = param_0[2][3];
|
||||
next.pos = current.pos;
|
||||
field_0x3798 = current.pos;
|
||||
i_onEndResetFlg0(ERFLG0_UNK_800000);
|
||||
i_onEndResetFlg2(ERFLG2_UNK_100);
|
||||
mDoMtx_MtxToRot(param_0, &mCollisionRot);
|
||||
mCurrent.mAngle.y = mCollisionRot.y;
|
||||
current.angle.y = mCollisionRot.y;
|
||||
field_0x2fe6 = mCollisionRot.y;
|
||||
mSpeed.y = FLOAT_LABEL(lit_6108);
|
||||
field_0x814.ClrCcMove();
|
||||
@@ -14634,7 +14669,7 @@ asm void daAlink_c::checkServiceWaitMode() {
|
||||
/* 800B48D0-800B4908 0AF210 0038+00 18/18 0/0 0/0 .text setJumpMode__9daAlink_cFv */
|
||||
void daAlink_c::setJumpMode() {
|
||||
onModeFlg(MODE_JUMP);
|
||||
mLastJumpPos = mCurrent.mPosition;
|
||||
mLastJumpPos = current.pos;
|
||||
mFallHeight = mLastJumpPos.y;
|
||||
field_0x33c8 = mLastJumpPos.y;
|
||||
}
|
||||
@@ -14732,7 +14767,7 @@ asm BOOL daAlink_c::checkWaitAction() {
|
||||
|
||||
/* 800B5BC0-800B5C34 0B0500 0074+00 3/3 0/0 0/0 .text setFallVoice__9daAlink_cFv */
|
||||
void daAlink_c::setFallVoice() {
|
||||
if (mFallVoiceInit == 0 && lit_8782 * (mFallHeight - mCurrent.mPosition.y) > lit_8676) {
|
||||
if (mFallVoiceInit == 0 && lit_8782 * (mFallHeight - current.pos.y) > lit_8676) {
|
||||
voiceStart(Z2SE_AL_V_FALL);
|
||||
mFallVoiceInit = 1;
|
||||
}
|
||||
@@ -14934,7 +14969,7 @@ asm void daAlink_c::checkUpperItemAction() {
|
||||
|
||||
/* 800B7B7C-800B7BF8 0B24BC 007C+00 1/1 0/0 0/0 .text orderPeep__9daAlink_cFv */
|
||||
void daAlink_c::orderPeep() {
|
||||
field_0x2fad = field_0x27f4->getSceneListID();
|
||||
field_0x2fad = ((kytag05_class*)field_0x27f4)->getSceneListID();
|
||||
field_0x2ff2 = 20;
|
||||
fopAcM_orderOtherEvent(this, field_0x27f4, l_peepEventName, 0xFFFF, 1, 0);
|
||||
if (i_checkWolf()) {
|
||||
@@ -15049,7 +15084,7 @@ BOOL daAlink_c::checkSideRollAction(int param_0) {
|
||||
} else {
|
||||
if (mTargetedActor != NULL) {
|
||||
if (checkEnemyGroup(mTargetedActor) &&
|
||||
mTargetedActor->mCurrent.mPosition.abs2XZ(mCurrent.mPosition) <= lit_6237) {
|
||||
mTargetedActor->current.pos.abs2XZ(current.pos) <= lit_6237) {
|
||||
return procSideRollInit(param_0);
|
||||
} else {
|
||||
return procTurnMoveInit(param_0);
|
||||
@@ -15570,7 +15605,7 @@ int daAlink_c::checkSceneChange(int exitID) {
|
||||
((exitID != 0x3F || mExitID != 0x3F) &&
|
||||
(i_checkModeFlg(0x40000) || i_checkModeFlg(0x400) || mLinkAcch.ChkGroundHit() ||
|
||||
mProcID == PROC_DOOR_OPEN || mProcID == PROC_WARP || mProcID == PROC_WOLF_DIG_THROUGH ||
|
||||
(field_0x3174 == 5 && field_0x33c8 - mCurrent.mPosition.y > 500.0f))) ||
|
||||
(field_0x3174 == 5 && field_0x33c8 - current.pos.y > 500.0f))) ||
|
||||
(mExitID & 0x8000 && i_checkModeFlg(2))) {
|
||||
if (field_0x3174 == 5 || (mExitID & 0x8000 && mExitDirection == 0xFF)) {
|
||||
mLinkAcch.i_ClrGroundHit();
|
||||
@@ -15588,7 +15623,7 @@ int daAlink_c::checkSceneChange(int exitID) {
|
||||
cXyz sp8;
|
||||
for (; hStop != NULL; hStop = hStop->getNext()) {
|
||||
if (hStop->getActiveFlg()) {
|
||||
fpoAcM_relativePos(hStop, &mCurrent.mPosition, &sp8);
|
||||
fpoAcM_relativePos(hStop, ¤t.pos, &sp8);
|
||||
|
||||
if (sp8.y >= -200.0f && sp8.y <= hStop->mScale.y + 600.0f &&
|
||||
fabsf(sp8.x) <= hStop->mScale.x && fabsf(sp8.z) <= hStop->mScale.z) {
|
||||
@@ -15855,12 +15890,12 @@ asm void daAlink_c::setMetamorphoseModel(int param_0) {
|
||||
/* 800BF854-800BF884 0BA194 0030+00 10/10 0/0 0/0 .text keepItemData__9daAlink_cFv */
|
||||
void daAlink_c::keepItemData() {
|
||||
field_0x30ce = mEquipItem;
|
||||
deleteEquipItem(0, 0);
|
||||
deleteEquipItem(FALSE, FALSE);
|
||||
}
|
||||
|
||||
/* 800BF884-800BF8D0 0BA1C4 004C+00 8/8 0/0 0/0 .text returnKeepItemData__9daAlink_cFv */
|
||||
void daAlink_c::returnKeepItemData() {
|
||||
deleteEquipItem(0, 0);
|
||||
deleteEquipItem(FALSE, FALSE);
|
||||
mEquipItem = field_0x30ce;
|
||||
field_0x30ce = NO_ITEM;
|
||||
makeItemType();
|
||||
@@ -15917,10 +15952,10 @@ BOOL daAlink_c::setItemModel() {
|
||||
#ifdef NONMATCHING
|
||||
BOOL daAlink_c::setItemActor() {
|
||||
if (mEquipItem == BOOMERANG) {
|
||||
fopAc_ac_c* actor = (fopAc_ac_c*)fopAcM_fastCreate(PROC_BOOMERANG, 0, &mCurrent.mPosition,
|
||||
fopAc_ac_c* actor = (fopAc_ac_c*)fopAcM_fastCreate(PROC_BOOMERANG, 0, ¤t.pos,
|
||||
-1, NULL, NULL, -1, NULL, NULL);
|
||||
if (actor == NULL) {
|
||||
deleteEquipItem(0, 0);
|
||||
deleteEquipItem(FALSE, FALSE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -15930,10 +15965,10 @@ BOOL daAlink_c::setItemActor() {
|
||||
}
|
||||
|
||||
if (mEquipItem == COPY_ROD) {
|
||||
fopAc_ac_c* actor = (fopAc_ac_c*)fopAcM_fastCreate(PROC_CROD, 0, &mCurrent.mPosition, -1,
|
||||
fopAc_ac_c* actor = (fopAc_ac_c*)fopAcM_fastCreate(PROC_CROD, 0, ¤t.pos, -1,
|
||||
NULL, NULL, -1, NULL, NULL);
|
||||
if (actor == NULL) {
|
||||
deleteEquipItem(0, 0);
|
||||
deleteEquipItem(FALSE, FALSE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -15949,7 +15984,7 @@ BOOL daAlink_c::setItemActor() {
|
||||
if (checkIronBallWaitAnime()) {
|
||||
resetUpperAnime(UPPER_NOW, -1.0f);
|
||||
}
|
||||
deleteEquipItem(0, 0);
|
||||
deleteEquipItem(FALSE, FALSE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -16350,9 +16385,9 @@ asm void daAlink_c::setFrontRollCrashShock(u8 param_0) {
|
||||
/* 800C1DAC-800C1DE0 0BC6EC 0034+00 1/0 0/0 0/0 .text getModelJointMtx__9daAlink_cFUs */
|
||||
MtxP daAlink_c::getModelJointMtx(u16 param_0) {
|
||||
if (param_0 >= field_0x30c6) {
|
||||
return field_0x0650->mBaseTransformMtx;
|
||||
return mpLinkModel->mBaseTransformMtx;
|
||||
}
|
||||
return field_0x0650->i_getAnmMtx(param_0);
|
||||
return mpLinkModel->i_getAnmMtx(param_0);
|
||||
}
|
||||
|
||||
/* 800C1DE0-800C1E0C 0BC720 002C+00 1/0 0/0 0/0 .text onFrollCrashFlg__9daAlink_cFUci */
|
||||
@@ -16689,10 +16724,10 @@ int daAlink_c::loadModelDVD() {
|
||||
if (mClothesChangeWaitTimer == 2) {
|
||||
mEyeHL1.remove();
|
||||
mEyeHL2.remove();
|
||||
field_0x79c = 0;
|
||||
field_0x7a0 = 0;
|
||||
field_0x7a4 = 0;
|
||||
field_0x7a8 = 0;
|
||||
field_0x79c = NULL;
|
||||
mpWlMidnaHatModel = NULL;
|
||||
field_0x7a4 = NULL;
|
||||
mpWlMidnaHairModel = NULL;
|
||||
|
||||
if (!i_checkNoResetFlg2(FLG2_UNK_280000)) {
|
||||
dComIfG_resDelete(&mPhaseReq, mArcName);
|
||||
@@ -16710,7 +16745,7 @@ int daAlink_c::loadModelDVD() {
|
||||
mClothesChangeWaitTimer = 0;
|
||||
changeLink(1);
|
||||
} else {
|
||||
if (dComIfG_resLoad(&mPhaseReq, mArcName, field_0x0638) == 4) {
|
||||
if (dComIfG_resLoad(&mPhaseReq, mArcName, field_0x0638) == cPhs_COMPLEATE_e) {
|
||||
mClothesChangeWaitTimer = 0;
|
||||
|
||||
if (mProcID == PROC_METAMORPHOSE || mProcID == PROC_METAMORPHOSE_ONLY) {
|
||||
@@ -16755,7 +16790,7 @@ int daAlink_c::loadShieldModelDVD() {
|
||||
field_0x0648->freeAll();
|
||||
setShieldArcName();
|
||||
} else if (mShieldChangeWaitTimer == 1) {
|
||||
if (dComIfG_resLoad(&mShieldPhaseReq, mShieldArcName, field_0x0648) == 4) {
|
||||
if (dComIfG_resLoad(&mShieldPhaseReq, mShieldArcName, field_0x0648) == cPhs_COMPLEATE_e) {
|
||||
mShieldChangeWaitTimer = 0;
|
||||
setShieldModel();
|
||||
} else {
|
||||
@@ -17316,7 +17351,7 @@ MtxP daPy_py_c::getInvMtx() {
|
||||
/* 8014151C-80141524 13BE5C 0008+00 1/0 0/0 0/0 .text getShadowTalkAtnPos__9daPy_py_cFv
|
||||
*/
|
||||
cXyz* daPy_py_c::getShadowTalkAtnPos() {
|
||||
return &mCurrent.mPosition;
|
||||
return ¤t.pos;
|
||||
}
|
||||
|
||||
/* 80141524-8014152C 13BE64 0008+00 1/0 0/0 0/0 .text getLeftItemMatrix__9daPy_py_cFv */
|
||||
@@ -17816,7 +17851,7 @@ cXyz* daPy_py_c::getMagneHitPos() {
|
||||
/* 801417C0-801417C8 13C100 0008+00 1/0 0/0 0/0 .text getMagneBootsTopVec__9daPy_py_cFv
|
||||
*/
|
||||
cXyz* daPy_py_c::getMagneBootsTopVec() {
|
||||
return &mCurrent.mPosition;
|
||||
return ¤t.pos;
|
||||
}
|
||||
|
||||
/* 801417C8-801417D0 13C108 0008+00 1/0 0/0 0/0 .text checkUseKandelaar__9daPy_py_cFi */
|
||||
|
||||
@@ -128,7 +128,7 @@ void daAlink_c::setCopyRodModel() {
|
||||
field_0x122C[0].OnAtSetBit();
|
||||
field_0x122C[0].SetAtHitCallback(NULL);
|
||||
field_0x122C[0].SetAtMtrl(0);
|
||||
mHeldItemModel->i_setBaseTRMtx(field_0x0650->i_getAnmMtx(field_0x30c0));
|
||||
mHeldItemModel->i_setBaseTRMtx(mpLinkModel->i_getAnmMtx(field_0x30c0));
|
||||
mHeldItemModel->calc();
|
||||
}
|
||||
|
||||
|
||||
+11
-11
@@ -81,7 +81,7 @@ asm bool daAlink_c::checkCutFinishJumpUp() {
|
||||
|
||||
/* 800D1088-800D10E0 0CB9C8 0058+00 2/2 0/0 0/0 .text changeCutFast__9daAlink_cFv */
|
||||
void daAlink_c::changeCutFast() {
|
||||
deleteEquipItem(0, 0);
|
||||
deleteEquipItem(FALSE, FALSE);
|
||||
setSwordModel();
|
||||
mComboCutCount = 3;
|
||||
checkCutAction();
|
||||
@@ -117,10 +117,10 @@ void daAlink_c::setSwordModel() {
|
||||
void daAlink_c::offSwordModel() {
|
||||
mDoAud_bgmSetSwordUsing(0);
|
||||
|
||||
if (mSwordModel == field_0x0668 || mSwordModel == field_0x0660) {
|
||||
if (mSwordModel == mpSwMModel || mSwordModel == mpSwAModel) {
|
||||
mSwordModel->getModelData()->getMaterialNodePointer(0)->getShape()->hide();
|
||||
} else if (mSwordModel == field_0x0670) {
|
||||
field_0x0670->getModelData()->getMaterialNodePointer(1)->getShape()->show();
|
||||
} else if (mSwordModel == mWoodSwordModel) {
|
||||
mWoodSwordModel->getModelData()->getMaterialNodePointer(1)->getShape()->show();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -486,7 +486,7 @@ void daAlink_c::setCutJumpSpeed(int cut_type) {
|
||||
|
||||
// cut_type 0 = standing jump attack
|
||||
if (mTargetedActor != NULL && cut_type == 0) {
|
||||
mCollisionRot.y = cLib_targetAngleY(&mCurrent.mPosition, &mTargetedActor->mEyePos);
|
||||
mCollisionRot.y = cLib_targetAngleY(¤t.pos, &mTargetedActor->mEyePos);
|
||||
cXyz targetPos(mTargetedActor->mEyePos.x - (cM_ssin(mCollisionRot.y) * 70.0f),
|
||||
mTargetedActor->mEyePos.y + 50.0f,
|
||||
mTargetedActor->mEyePos.z - (cM_scos(mCollisionRot.y) * 70.0f));
|
||||
@@ -499,14 +499,14 @@ void daAlink_c::setCutJumpSpeed(int cut_type) {
|
||||
|
||||
f32 dvar12 = mSpeed.y + mGravity;
|
||||
f32 dvar10 = 1.0f / mGravity;
|
||||
f32 fvar1 = targetPos.y - (mCurrent.mPosition.y - (dvar10 * (dvar12 * dvar12) * 0.5f));
|
||||
f32 fvar1 = targetPos.y - (current.pos.y - (dvar10 * (dvar12 * dvar12) * 0.5f));
|
||||
|
||||
if (fvar1 > 0.0f) {
|
||||
fvar1 = 0.0f;
|
||||
}
|
||||
f32 sqrt = JMAFastSqrt(fvar1 * 2.0f * dvar10);
|
||||
f32 speedDiv = sqrt - (dvar12 * dvar10);
|
||||
f32 squareDist = mCurrent.mPosition.absXZ(targetPos);
|
||||
f32 squareDist = current.pos.absXZ(targetPos);
|
||||
|
||||
if (squareDist > 500.0f) {
|
||||
squareDist = 500.0f;
|
||||
@@ -639,7 +639,7 @@ bool daAlink_c::procCutJumpInit(int jump_type) {
|
||||
mSpeed.y = daAlinkHIO_cutJump_c0::m.mBaseJumpSpeedV;
|
||||
}
|
||||
setCutJumpSpeed(jump_type);
|
||||
mCurrent.mAngle.y = mCollisionRot.y;
|
||||
current.angle.y = mCollisionRot.y;
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_01, 3, 1, 3, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setCutType(TYPE_CUT_JUMP);
|
||||
@@ -652,12 +652,12 @@ bool daAlink_c::procCutJumpInit(int jump_type) {
|
||||
/* 800D43F8-800D452C 0CED38 0134+00 1/0 0/0 0/0 .text procCutJump__9daAlink_cFv */
|
||||
#ifdef NONMATCHING
|
||||
bool daAlink_c::procCutJump() {
|
||||
if (mCurrent.mAngle.y == mCollisionRot.y && changeCutReverseProc(ANM_CUT_JUMP)) {
|
||||
mCurrent.mAngle.y += 0x8000;
|
||||
if (current.angle.y == mCollisionRot.y && changeCutReverseProc(ANM_CUT_JUMP)) {
|
||||
current.angle.y += 0x8000;
|
||||
mNormalSpeed = 27.0f;
|
||||
cXyz xyz(0.0f, 1.0f, 0.0f);
|
||||
dComIfGp_getVibration().StartShock(5, 31, xyz);
|
||||
} else if (mCurrent.mAngle.y != mCollisionRot.y) {
|
||||
} else if (current.angle.y != mCollisionRot.y) {
|
||||
cLib_chaseF(&mNormalSpeed, 5.0f, 1.0f);
|
||||
}
|
||||
|
||||
|
||||
@@ -1103,7 +1103,7 @@ asm void daAlink_c::procGanonFinishInit() {
|
||||
/* 8011EA78-8011EAE8 1193B8 0070+00 1/0 0/0 0/0 .text procGanonFinish__9daAlink_cFv */
|
||||
bool daAlink_c::procGanonFinish() {
|
||||
i_onEndResetFlg1(GANON_FINISH);
|
||||
mCurrent.mPosition = field_0x37c8;
|
||||
current.pos = field_0x37c8;
|
||||
if (mFrameCtrl1[0].checkAnmEnd()) {
|
||||
setSingleAnimeBaseMorf(ANM_GANON_FINISH, lit_6041);
|
||||
}
|
||||
@@ -1140,7 +1140,7 @@ int daAlink_c::procMasterSwordStickInit() {
|
||||
setSingleAnimeBase(ANM_MASTER_SWORD_STICK_INIT);
|
||||
voiceStart(Z2SE_AL_V_MSTR_SW_STICK);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
mCurrent.mAngle.y = mCollisionRot.y;
|
||||
current.angle.y = mCollisionRot.y;
|
||||
mCommonCounter = 0;
|
||||
|
||||
return 1;
|
||||
@@ -1202,9 +1202,9 @@ int daAlink_c::procDungeonWarpReadyInit() {
|
||||
|
||||
u32 id;
|
||||
if (checkItemSetButton(DUNGEON_EXIT) != 2) {
|
||||
id = fopAcM_create(PROC_OBJ_TKS, 0, &mCurrent.mPosition, fopAcM_GetRoomNo(this), &mCollisionRot, NULL, -1);
|
||||
id = fopAcM_create(PROC_OBJ_TKS, 0, ¤t.pos, fopAcM_GetRoomNo(this), &mCollisionRot, NULL, -1);
|
||||
} else {
|
||||
id = fopAcM_create(PROC_NPC_TKC, 2, &mCurrent.mPosition, fopAcM_GetRoomNo(this), &mCollisionRot, NULL, -1);
|
||||
id = fopAcM_create(PROC_NPC_TKC, 2, ¤t.pos, fopAcM_GetRoomNo(this), &mCollisionRot, NULL, -1);
|
||||
}
|
||||
|
||||
if (id == -1) {
|
||||
@@ -1215,7 +1215,7 @@ int daAlink_c::procDungeonWarpReadyInit() {
|
||||
commonProcInit(PROC_DUNGEON_WARP_READY);
|
||||
setSingleAnimeBase(ANM_DUNGEON_WARP_READY_INIT);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
mCurrent.mAngle.y = mCollisionRot.y;
|
||||
current.angle.y = mCollisionRot.y;
|
||||
field_0x32cc = id;
|
||||
mCommonCounter = 0;
|
||||
keepItemData();
|
||||
@@ -1268,7 +1268,7 @@ int daAlink_c::procDungeonWarp() {
|
||||
if (mCommonCounter > 0x4000) {
|
||||
mCommonCounter = 0x4000;
|
||||
} else {
|
||||
mCurrent.mPosition.y += 1.0f;
|
||||
current.pos.y += 1.0f;
|
||||
}
|
||||
|
||||
f32 sin = cM_ssin(mCommonCounter);
|
||||
@@ -1280,7 +1280,7 @@ int daAlink_c::procDungeonWarp() {
|
||||
} else {
|
||||
if (mCommonCounter == 0x4000) {
|
||||
if (field_0x3010 == 0) {
|
||||
dComIfGp_particle_set(0xA61, &mCurrent.mPosition, &mTevStr, NULL, NULL);
|
||||
dComIfGp_particle_set(0xA61, ¤t.pos, &mTevStr, NULL, NULL);
|
||||
field_0x3010 = 1;
|
||||
}
|
||||
|
||||
@@ -1300,14 +1300,14 @@ int daAlink_c::procDungeonWarp() {
|
||||
|
||||
field_0x3012 = 1;
|
||||
}
|
||||
mCurrent.mPosition.y += 5.0f;
|
||||
current.pos.y += 5.0f;
|
||||
field_0x2b98 = (1.0f - mScale.y) * 100.0f;
|
||||
} else if (mCommonCounter >= 0x2000) {
|
||||
cLib_chaseF(&mScale.x, 0.8f, 0.01f);
|
||||
}
|
||||
|
||||
mScale.z = mScale.x;
|
||||
field_0x0650->setBaseScale(mScale);
|
||||
mpLinkModel->setBaseScale(mScale);
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
||||
@@ -73,8 +73,8 @@ bool daAlink_c::exchangeGrabActor(fopAc_ac_c* p_actor) {
|
||||
actor->mCollisionRot.z = 0;
|
||||
actor->mCollisionRot.x = 0;
|
||||
if (checkGrabCarryActor()) {
|
||||
actor->mCurrent.mAngle.z = 0;
|
||||
actor->mCurrent.mAngle.x = 0;
|
||||
actor->current.angle.z = 0;
|
||||
actor->current.angle.x = 0;
|
||||
}
|
||||
setGrabItemActor(p_actor);
|
||||
return true;
|
||||
@@ -87,7 +87,7 @@ bool daAlink_c::setForceGrab(fopAc_ac_c* p_actor, int param_1, int param_2) {
|
||||
((i_checkModeFlg(MODE_UNK_10000000) &&
|
||||
(checkHorseNoUpperAnime() || checkHorseTurnAnime())) ||
|
||||
param_2 != 0 && checkHookshotAnime()))) {
|
||||
deleteEquipItem(1, 0);
|
||||
deleteEquipItem(TRUE, FALSE);
|
||||
setGrabItemActor(p_actor);
|
||||
field_0x33e4 = lit_8785;
|
||||
setGrabUpperAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
|
||||
|
||||
@@ -236,7 +236,7 @@ void daAlink_c::setHookshotModel() {
|
||||
field_0x122C[0].SetAtAtp(0);
|
||||
field_0x122C[0].SetR(lit_7808);
|
||||
field_0x122C[0].SetAtSe(8);
|
||||
field_0x122C[0].SetAtType(0x4000);
|
||||
field_0x122C[0].SetAtType(AT_TYPE_HOOKSHOT);
|
||||
field_0x122C[0].SetAtHitMark(1);
|
||||
field_0x122C[0].OnAtSetBit();
|
||||
field_0x122C[0].SetAtHitCallback(daAlink_hookshotAtHitCallBack);
|
||||
|
||||
+38
-38
@@ -1,7 +1,7 @@
|
||||
/* 800C2DDC-800C2EAC 0BD71C 00D0+00 17/17 0/0 0/0 .text
|
||||
* procPreActionUnequipInit__9daAlink_cFiP10fopAc_ac_c */
|
||||
#ifdef NONMATCHING
|
||||
void daAlink_c::procPreActionUnequipInit(int param_0, fopAc_ac_c* param_1) {
|
||||
int daAlink_c::procPreActionUnequipInit(int param_0, fopAc_ac_c* param_1) {
|
||||
commonProcInit(ACT_PROC_PREACTION_UNEQUIP);
|
||||
mNormalSpeed = 0.0f;
|
||||
setBlendMoveAnime(4.0f);
|
||||
@@ -31,7 +31,7 @@ void daAlink_c::procPreActionUnequipInit(int param_0, fopAc_ac_c* param_1) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::procPreActionUnequipInit(int param_0, fopAc_ac_c* param_1) {
|
||||
asm int daAlink_c::procPreActionUnequipInit(int param_0, fopAc_ac_c* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procPreActionUnequipInit__9daAlink_cFiP10fopAc_ac_c.s"
|
||||
}
|
||||
@@ -55,7 +55,7 @@ int daAlink_c::procServiceWaitInit() {
|
||||
commonProcInit(PROC_SERVICE_WAIT);
|
||||
setSingleAnimeBase(ANM_SERVICE_WAIT);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
mCurrent.mAngle.y = mCollisionRot.y;
|
||||
current.angle.y = mCollisionRot.y;
|
||||
field_0x2f98 = 4;
|
||||
return 1;
|
||||
}
|
||||
@@ -249,7 +249,7 @@ int daAlink_c::procWaitTurnInit() {
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
}
|
||||
field_0x300e = field_0x2fe2;
|
||||
mCurrent.mAngle.y = mCollisionRot.y;
|
||||
current.angle.y = mCollisionRot.y;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -263,7 +263,7 @@ int daAlink_c::procWaitTurn() {
|
||||
return procFloorDownReboundInit();
|
||||
} else {
|
||||
s16 angle = cLib_addCalcAngleS(&mCollisionRot.y, field_0x300e, 30, 0x3CDF, 8000);
|
||||
mCurrent.mAngle.y = mCollisionRot.y;
|
||||
current.angle.y = mCollisionRot.y;
|
||||
if (checkNextActionFromButton()) {
|
||||
return 1;
|
||||
} else {
|
||||
@@ -297,7 +297,7 @@ int daAlink_c::procMoveTurnInit(int param_0) {
|
||||
field_0x300e = (daAlinkHIO_move_c0::m.mMaxTurnAngle << 2) + 19030;
|
||||
field_0x3010 = daAlinkHIO_move_c0::m.mMaxTurnAngle << 1;
|
||||
field_0x300a = 2;
|
||||
mCurrent.mAngle.y = field_0x2fe2;
|
||||
current.angle.y = field_0x2fe2;
|
||||
mNormalSpeed *= lit_5943;
|
||||
} else {
|
||||
field_0x300e = daAlinkHIO_move_c0::m.mMaxTurnAngle << 1;
|
||||
@@ -312,7 +312,7 @@ int daAlink_c::procMoveTurnInit(int param_0) {
|
||||
/* 800C3D38-800C3DA0 0BE678 0068+00 1/0 0/0 0/0 .text procMoveTurn__9daAlink_cFv */
|
||||
int daAlink_c::procMoveTurn() {
|
||||
setSpeedAndAngleNormal();
|
||||
cLib_addCalcAngleS(&mCollisionRot.y, mCurrent.mAngle.y, field_0x300a, field_0x300e,
|
||||
cLib_addCalcAngleS(&mCollisionRot.y, current.angle.y, field_0x300a, field_0x300e,
|
||||
field_0x3010);
|
||||
|
||||
if (!checkNextAction(0)) {
|
||||
@@ -331,7 +331,7 @@ int daAlink_c::procSideStepInit(int jump_type) {
|
||||
field_0x2f98 = jump_type;
|
||||
|
||||
if (field_0x2f98 == 1) {
|
||||
mCurrent.mAngle.y = mCollisionRot.y + 0x8000;
|
||||
current.angle.y = mCollisionRot.y + 0x8000;
|
||||
setSingleAnimeParam(ANM_BACK_JUMP, &daAlinkHIO_sideStep_c0::m.mBackJumpAnm);
|
||||
mNormalSpeed = daAlinkHIO_sideStep_c0::m.mBackJumpSpeedH;
|
||||
mSpeed.y = daAlinkHIO_sideStep_c0::m.mBackJumpSpeedV;
|
||||
@@ -340,10 +340,10 @@ int daAlink_c::procSideStepInit(int jump_type) {
|
||||
daAlink_ANM anm_id;
|
||||
if (field_0x2f98 == 2) {
|
||||
anm_id = ANM_SIDE_STEP_LEFT;
|
||||
mCurrent.mAngle.y = mCollisionRot.y + 0x4000;
|
||||
current.angle.y = mCollisionRot.y + 0x4000;
|
||||
} else {
|
||||
anm_id = ANM_SIDE_STEP_RIGHT;
|
||||
mCurrent.mAngle.y = mCollisionRot.y - 0x4000;
|
||||
current.angle.y = mCollisionRot.y - 0x4000;
|
||||
}
|
||||
setSingleAnimeParam(anm_id, &daAlinkHIO_sideStep_c0::m.mSideJumpAnm);
|
||||
mNormalSpeed = daAlinkHIO_sideStep_c0::m.mSideJumpSpeedH;
|
||||
@@ -367,9 +367,9 @@ int daAlink_c::procSideStep() {
|
||||
s16 actor_angle = fopAcM_searchActorAngleY(this, mTargetedActor);
|
||||
cLib_addCalcAngleS(&mCollisionRot.y, actor_angle, 5, 0x5E8, 0x13C);
|
||||
if (field_0x2f98 == 2) {
|
||||
mCurrent.mAngle.y = mCollisionRot.y + 0x4000;
|
||||
current.angle.y = mCollisionRot.y + 0x4000;
|
||||
} else {
|
||||
mCurrent.mAngle.y = mCollisionRot.y - 0x4000;
|
||||
current.angle.y = mCollisionRot.y - 0x4000;
|
||||
}
|
||||
}
|
||||
if (doTrigger() && field_0x300a != 0) {
|
||||
@@ -387,7 +387,7 @@ int daAlink_c::procSideStep() {
|
||||
} else if (checkNoUpperAnime() && checkForceSwordSwing()) {
|
||||
setCutDash(1, 0);
|
||||
} else if (mDemo.getDemoMode() != 16 &&
|
||||
mCurrent.mPosition.y < mLastJumpPos.y - daAlinkHIO_sideStep_c0::m.mFallHeight) {
|
||||
current.pos.y < mLastJumpPos.y - daAlinkHIO_sideStep_c0::m.mFallHeight) {
|
||||
return procFallInit(2, daAlinkHIO_sideStep_c0::m.mFallInterpolation);
|
||||
}
|
||||
|
||||
@@ -433,7 +433,7 @@ int daAlink_c::procSideStepLandInit() {
|
||||
i_onResetFlg1(0x30);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
mCommonCounter = 0;
|
||||
mCurrent.mAngle.y = mCollisionRot.y;
|
||||
current.angle.y = mCollisionRot.y;
|
||||
setStepLandVibration();
|
||||
return 1;
|
||||
}
|
||||
@@ -472,7 +472,7 @@ int daAlink_c::procSlideInit(s16 param_0) {
|
||||
|
||||
field_0x814.SetWeight(255);
|
||||
field_0x3090 = 8;
|
||||
mCurrent.mAngle.y = param_0;
|
||||
current.angle.y = param_0;
|
||||
|
||||
if (getMoveBGActorName(mLinkAcch.m_gnd, 0) == 0xD4) {
|
||||
field_0x300e = 1;
|
||||
@@ -550,14 +550,14 @@ int daAlink_c::procSlideLand() {
|
||||
}
|
||||
|
||||
if (ctrl->checkAnmEnd()) {
|
||||
mCurrent.mAngle.y = mCollisionRot.y;
|
||||
current.angle.y = mCollisionRot.y;
|
||||
checkNextAction(0);
|
||||
} else {
|
||||
if (ctrl->getFrame() > field_0x3478) {
|
||||
s16 tmp_angle = mCurrent.mAngle.y;
|
||||
mCurrent.mAngle.y = mCollisionRot.y;
|
||||
s16 tmp_angle = current.angle.y;
|
||||
current.angle.y = mCollisionRot.y;
|
||||
if (!checkNextAction(1)) {
|
||||
mCurrent.mAngle.y = tmp_angle;
|
||||
current.angle.y = tmp_angle;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -599,7 +599,7 @@ int daAlink_c::procFrontRollInit() {
|
||||
} else {
|
||||
mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
|
||||
}
|
||||
mCurrent.mAngle.y = mCollisionRot.y;
|
||||
current.angle.y = mCollisionRot.y;
|
||||
voiceStart(Z2SE_AL_V_BACKTEN);
|
||||
mCommonCounter = 0;
|
||||
setFootEffectProcType(0);
|
||||
@@ -607,7 +607,7 @@ int daAlink_c::procFrontRollInit() {
|
||||
i_onNoResetFlg0(2);
|
||||
}
|
||||
if (i_checkEquipHeavyBoots()) {
|
||||
field_0xFB8.SetAtType(0x200000);
|
||||
field_0xFB8.SetAtType(AT_TYPE_HEAVY_BOOTS);
|
||||
field_0xFB8.SetAtHitMark(1);
|
||||
field_0xFB8.SetAtSe(9);
|
||||
field_0xFB8.SetAtAtp(2);
|
||||
@@ -1016,7 +1016,7 @@ int daAlink_c::procCoMetamorphoseInit() {
|
||||
mCommonCounter = mCollisionRot.x;
|
||||
}
|
||||
} else {
|
||||
deleteEquipItem(0, 1);
|
||||
deleteEquipItem(FALSE, TRUE);
|
||||
|
||||
if (i_checkEndResetFlg0(ERFLG0_UNK_2) && checkStageName("D_MN08")) {
|
||||
field_0x3010 = 1;
|
||||
@@ -1046,22 +1046,22 @@ int daAlink_c::procCoMetamorphoseInit() {
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
field_0x3480 = daAlinkHIO_basic_c0::m.mLinkWolfTransformSpeed;
|
||||
|
||||
cXyz pos(mCurrent.mPosition.x + (cM_ssin(mCollisionRot.y) * 100.0f),
|
||||
mCurrent.mPosition.y + 300.0f,
|
||||
mCurrent.mPosition.z + (cM_scos(mCollisionRot.y) * 100.0f));
|
||||
cXyz pos(current.pos.x + (cM_ssin(mCollisionRot.y) * 100.0f),
|
||||
current.pos.y + 300.0f,
|
||||
current.pos.z + (cM_scos(mCollisionRot.y) * 100.0f));
|
||||
mLinkGndChk.SetPos(&pos);
|
||||
|
||||
f32 gnd_cross = dComIfG_Bgsp().GroundCross(&mLinkGndChk);
|
||||
if (gnd_cross != -1000000000.0f) {
|
||||
pos.y = -1000000000.0f;
|
||||
cXyz tmp_4c = mCurrent.mPosition;
|
||||
cXyz tmp_4c = current.pos;
|
||||
cXyz tmp_58 = pos;
|
||||
BOOL check = false;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (i == 3) {
|
||||
tmp_4c.y = gnd_cross + 5.0f;
|
||||
} else {
|
||||
tmp_4c.y = mCurrent.mPosition.y + field_0x18B0[i].GetWallH();
|
||||
tmp_4c.y = current.pos.y + field_0x18B0[i].GetWallH();
|
||||
}
|
||||
tmp_58.y = tmp_4c.y;
|
||||
|
||||
@@ -1076,7 +1076,7 @@ int daAlink_c::procCoMetamorphoseInit() {
|
||||
if (check) {
|
||||
mCommonCounter = field_0x2ff0;
|
||||
} else {
|
||||
pos -= mCurrent.mPosition;
|
||||
pos -= current.pos;
|
||||
pos.atan2sY_XZ();
|
||||
mCommonCounter = svar8;
|
||||
|
||||
@@ -1093,7 +1093,7 @@ int daAlink_c::procCoMetamorphoseInit() {
|
||||
field_0x3012 = 0;
|
||||
}
|
||||
|
||||
field_0x3484 = mCurrent.mPosition.y;
|
||||
field_0x3484 = current.pos.y;
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
@@ -1671,7 +1671,7 @@ u32 daAlink_c::checkHorseRide() const {
|
||||
|
||||
/* 800CF298-800CF2B4 0C9BD8 001C+00 1/0 0/0 0/0 .text getLeftItemMatrix__9daAlink_cFv */
|
||||
MtxP daAlink_c::getLeftItemMatrix() {
|
||||
return field_0x0650->i_getAnmMtx(field_0x30c0);
|
||||
return mpLinkModel->i_getAnmMtx(field_0x30c0);
|
||||
}
|
||||
|
||||
/* 800CF2B4-800CF2C8 0C9BF4 0014+00 1/0 0/0 0/0 .text checkBoarRide__9daAlink_cCFv */
|
||||
@@ -1686,12 +1686,12 @@ u32 daAlink_c::checkSpinnerRide() const {
|
||||
|
||||
/* 800CF2DC-800CF2F8 0C9C1C 001C+00 1/0 0/0 0/0 .text getLeftHandMatrix__9daAlink_cFv */
|
||||
MtxP daAlink_c::getLeftHandMatrix() {
|
||||
return field_0x0650->i_getAnmMtx(field_0x30b8);
|
||||
return mpLinkModel->i_getAnmMtx(field_0x30b8);
|
||||
}
|
||||
|
||||
/* 800CF2F8-800CF314 0C9C38 001C+00 1/0 0/0 0/0 .text getRightHandMatrix__9daAlink_cFv */
|
||||
MtxP daAlink_c::getRightHandMatrix() {
|
||||
return field_0x0650->i_getAnmMtx(field_0x30ba);
|
||||
return mpLinkModel->i_getAnmMtx(field_0x30ba);
|
||||
}
|
||||
|
||||
/* 800CF314-800CF328 0C9C54 0014+00 1/0 0/0 0/0 .text
|
||||
@@ -1704,7 +1704,7 @@ void daAlink_c::onSceneChangeArea(u8 exitID, u8 exitDirection, fopAc_ac_c* scexA
|
||||
|
||||
/* 800CF328-800CF344 0C9C68 001C+00 1/0 0/0 0/0 .text getRightItemMatrix__9daAlink_cFv */
|
||||
MtxP daAlink_c::getRightItemMatrix() {
|
||||
return field_0x0650->i_getAnmMtx(field_0x30c2);
|
||||
return mpLinkModel->i_getAnmMtx(field_0x30c2);
|
||||
}
|
||||
|
||||
/* 800CF344-800CF380 0C9C84 003C+00 1/0 0/0 0/0 .text checkPlayerNoDraw__9daAlink_cFv */
|
||||
@@ -1995,7 +1995,7 @@ void daAlink_c::setMidnaMsgNum(fopAc_ac_c* param_0, u16 pMsgNum) {
|
||||
|
||||
/* 800D0290-800D029C 0CABD0 000C+00 1/0 0/0 0/0 .text getModelMtx__9daAlink_cFv */
|
||||
MtxP daAlink_c::getModelMtx() {
|
||||
return field_0x0650->getBaseTRMtx();
|
||||
return mpLinkModel->getBaseTRMtx();
|
||||
}
|
||||
|
||||
/* 800D029C-800D02A4 0CABDC 0008+00 1/0 0/0 0/0 .text getInvMtx__9daAlink_cFv */
|
||||
@@ -2005,17 +2005,17 @@ MtxP daAlink_c::getInvMtx() {
|
||||
|
||||
/* 800D02A4-800D02B8 0CABE4 0014+00 1/0 0/0 0/0 .text getLinkBackBone1Matrix__9daAlink_cFv */
|
||||
MtxP daAlink_c::getLinkBackBone1Matrix() {
|
||||
return field_0x0650->i_getAnmMtx(1);
|
||||
return mpLinkModel->i_getAnmMtx(1);
|
||||
}
|
||||
|
||||
/* 800D02B8-800D02CC 0CABF8 0014+00 1/0 0/0 0/0 .text getWolfMouthMatrix__9daAlink_cFv */
|
||||
MtxP daAlink_c::getWolfMouthMatrix() {
|
||||
return field_0x0650->i_getAnmMtx(13);
|
||||
return mpLinkModel->i_getAnmMtx(13);
|
||||
}
|
||||
|
||||
/* 800D02CC-800D02E0 0CAC0C 0014+00 1/0 0/0 0/0 .text getWolfBackbone2Matrix__9daAlink_cFv */
|
||||
MtxP daAlink_c::getWolfBackbone2Matrix() {
|
||||
return field_0x0650->i_getAnmMtx(2);
|
||||
return mpLinkModel->i_getAnmMtx(2);
|
||||
}
|
||||
|
||||
/* 800D02E0-800D0334 0CAC20 0054+00 1/0 0/0 0/0 .text getBottleMtx__9daAlink_cFv */
|
||||
@@ -2029,7 +2029,7 @@ MtxP daAlink_c::getBottleMtx() {
|
||||
|
||||
/* 800D0334-800D0350 0CAC74 001C+00 1/0 0/0 0/0 .text getHeadMtx__9daAlink_cFv */
|
||||
MtxP daAlink_c::getHeadMtx() {
|
||||
return field_0x0650->i_getAnmMtx(field_0x30b4);
|
||||
return mpLinkModel->i_getAnmMtx(field_0x30b4);
|
||||
}
|
||||
|
||||
/* 800D0350-800D0358 0CAC90 0008+00 1/0 0/0 0/0 .text getGroundY__9daAlink_cFv */
|
||||
|
||||
@@ -111,11 +111,11 @@ asm bool daAlink_c::checkSpinnerTriggerAttack() {
|
||||
void daAlink_c::setSpinnerSyncPos() {
|
||||
daSpinner_c* spinner = (daSpinner_c*)mRideAcKeep.getActor();
|
||||
|
||||
mDoMtx_multVecZero(spinner->getModelMtx(), &mCurrent.mPosition);
|
||||
mDoMtx_multVecZero(spinner->getModelMtx(), ¤t.pos);
|
||||
mDoMtx_stack_c::ZXYrotS(spinner->mCollisionRot);
|
||||
mDoMtx_stack_c::YrotM(mCollisionRot.y - spinner->mCollisionRot.y);
|
||||
mDoMtx_MtxToRot(mDoMtx_stack_c::get(), &mCollisionRot);
|
||||
field_0x37a4 = spinner->mCurrent.mPosition;
|
||||
field_0x37a4 = spinner->current.pos;
|
||||
}
|
||||
|
||||
/* 8010DC64-8010DDCC 1085A4 0168+00 1/1 0/0 0/0 .text procSpinnerReadyInit__9daAlink_cFv
|
||||
@@ -124,7 +124,7 @@ void daAlink_c::setSpinnerSyncPos() {
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procSpinnerReadyInit() {
|
||||
fopAc_ac_c* spinner = (fopAc_ac_c*)fopAcM_fastCreate(
|
||||
PROC_SPINNER, daSpinner_c::getWaitArg(), &mCurrent.mPosition, fopAcM_GetRoomNo(this),
|
||||
PROC_SPINNER, daSpinner_c::getWaitArg(), ¤t.pos, fopAcM_GetRoomNo(this),
|
||||
&mCollisionRot, NULL, -1, NULL, NULL);
|
||||
|
||||
if (spinner == NULL) {
|
||||
@@ -144,9 +144,9 @@ int daAlink_c::procSpinnerReadyInit() {
|
||||
seStartOnlyReverb(Z2SE_AL_SPINNER_START);
|
||||
|
||||
field_0x2f99 = 15;
|
||||
deleteEquipItem(1, 1);
|
||||
deleteEquipItem(TRUE, TRUE);
|
||||
|
||||
mCurrent.mAngle.y = mCollisionRot.y;
|
||||
current.angle.y = mCollisionRot.y;
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
field_0x33b0 = field_0x3588.y;
|
||||
field_0x34d4 = l_waitBaseAnime;
|
||||
@@ -173,15 +173,15 @@ int daAlink_c::procSpinnerReady() {
|
||||
return checkNextAction(0);
|
||||
}
|
||||
|
||||
mCurrent.mPosition.x = spinner->mCurrent.mPosition.x;
|
||||
mCurrent.mPosition.z = spinner->mCurrent.mPosition.z;
|
||||
current.pos.x = spinner->current.pos.x;
|
||||
current.pos.z = spinner->current.pos.z;
|
||||
|
||||
mCommonCounter--;
|
||||
field_0x2f99 = 15;
|
||||
|
||||
if ((mCommonCounter < 0 && mCurrent.mPosition.y <= spinner->getModelMtx()[1][3]) ||
|
||||
if ((mCommonCounter < 0 && current.pos.y <= spinner->getModelMtx()[1][3]) ||
|
||||
mCommonCounter < -30) {
|
||||
mCurrent.mPosition.y = spinner->getModelMtx()[1][3];
|
||||
current.pos.y = spinner->getModelMtx()[1][3];
|
||||
procSpinnerWaitInit();
|
||||
}
|
||||
|
||||
@@ -216,7 +216,7 @@ int daAlink_c::procSpinnerWaitInit() {
|
||||
field_0x3198 = ANM_SPINNER_RIDE;
|
||||
field_0x33b0 = 70.0f;
|
||||
field_0x3012 = 0;
|
||||
field_0x37a4 = mRideAcKeep.getActor()->mCurrent.mPosition;
|
||||
field_0x37a4 = mRideAcKeep.getActor()->current.pos;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -264,7 +264,7 @@ int daAlink_c::procSpinnerWait() {
|
||||
mCollisionRot.y -= angle;
|
||||
}
|
||||
|
||||
mCurrent.mAngle.y = mCollisionRot.y;
|
||||
current.angle.y = mCollisionRot.y;
|
||||
field_0x300e = mCollisionRot.y;
|
||||
}
|
||||
} else {
|
||||
@@ -282,18 +282,18 @@ int daAlink_c::procSpinnerWait() {
|
||||
|
||||
if (spinner->checkPathMoveNow() == NULL) {
|
||||
seStartOnlyReverbLevel(Z2SE_AL_SPINNER_RIDE);
|
||||
setSpinnerStatus(ACTION_STR_ATTACK, 0);
|
||||
setSpinnerStatus(ACTION_STR_ATTACK, ACTION_FLG_DEFAULT);
|
||||
} else {
|
||||
seStartOnlyReverbLevel(Z2SE_AL_SPINNER_RAIL);
|
||||
setSpinnerStatus(ACTION_STR_JUMP2, 0);
|
||||
setSpinnerStatus(ACTION_STR_JUMP2, ACTION_FLG_DEFAULT);
|
||||
}
|
||||
|
||||
mNormalSpeed = spinner->mSpeedF;
|
||||
mCurrent.mAngle.y = spinner->mCurrent.mAngle.y;
|
||||
current.angle.y = spinner->current.angle.y;
|
||||
|
||||
if (spinner->checkSpinnerTagIntoIncRot()) {
|
||||
field_0x3012 = 1;
|
||||
setSpinnerStatus(ACTION_STR_SPIN, 4);
|
||||
setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_CONTINUATION);
|
||||
|
||||
if (field_0x3198 != ANM_SPINNER_PUSH && field_0x2060->getOldFrameRate() < 0.01f) {
|
||||
setSingleAnimeBaseSpeed(ANM_SPINNER_RIDE, daAlinkHIO_board_c0::m.mSitAnmSpeed,
|
||||
@@ -303,9 +303,9 @@ int daAlink_c::procSpinnerWait() {
|
||||
}
|
||||
} else if (spinner->checkSpinnerTagInto()) {
|
||||
if (field_0x3012 != 0) {
|
||||
setSpinnerStatus(ACTION_STR_SPIN, 4);
|
||||
setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_CONTINUATION);
|
||||
} else {
|
||||
setSpinnerStatus(ACTION_STR_SPIN, 0);
|
||||
setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_DEFAULT);
|
||||
}
|
||||
|
||||
if ((field_0x3198 == ANM_SPINNER_PUSH && field_0x2060->getOldFrameRate() < 0.01f) ||
|
||||
|
||||
@@ -22,7 +22,7 @@ void daAlink_c::sumouPunchTrigger() {
|
||||
/* 800EA92C-800EA950 0E526C 0024+00 5/5 0/0 0/0 .text setSumouPunchStatus__9daAlink_cFv
|
||||
*/
|
||||
void daAlink_c::setSumouPunchStatus() {
|
||||
setBStatus(0x44);
|
||||
setBStatus(ACTION_STR_SLAP);
|
||||
}
|
||||
|
||||
/* 800EA950-800EAA28 0E5290 00D8+00 4/4 0/0 0/0 .text procSumouReadyInit__9daAlink_cFv */
|
||||
|
||||
@@ -23,10 +23,10 @@ void daAlink_c::statusWindowExecute(cXyz const* param_0, s16 param_1) {
|
||||
|
||||
mDoMtx_stack_c::transS(*param_0);
|
||||
mDoMtx_stack_c::YrotM(param_1);
|
||||
field_0x0650->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
mpLinkModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
m_sWindowBck->play();
|
||||
m_sWindowBck->entry(field_0x064C);
|
||||
field_0x0650->calc();
|
||||
mpLinkModel->calc();
|
||||
|
||||
if (i_checkWolf()) {
|
||||
setWolfItemMatrix();
|
||||
@@ -39,7 +39,7 @@ void daAlink_c::statusWindowExecute(cXyz const* param_0, s16 param_1) {
|
||||
/* 80140984-80140AC8 13B2C4 0144+00 0/0 1/1 0/0 .text statusWindowDraw__9daAlink_cFv */
|
||||
void daAlink_c::statusWindowDraw() {
|
||||
if (mClothesChangeWaitTimer == 0) {
|
||||
g_env_light.settingTevStruct(12, &mCurrent.mPosition, &mTevStr);
|
||||
g_env_light.settingTevStruct(12, ¤t.pos, &mTevStr);
|
||||
initTevCustomColor();
|
||||
|
||||
if (!i_checkWolf()) {
|
||||
@@ -47,12 +47,12 @@ void daAlink_c::statusWindowDraw() {
|
||||
setDrawHand();
|
||||
}
|
||||
|
||||
basicModelDraw(field_0x0650);
|
||||
basicModelDraw(mpLinkModel);
|
||||
|
||||
if (!i_checkWolf()) {
|
||||
basicModelDraw(field_0x065c);
|
||||
basicModelDraw(field_0x0658);
|
||||
basicModelDraw(field_0x0654);
|
||||
basicModelDraw(mpLinkHatModel);
|
||||
basicModelDraw(mpLinkFaceModel);
|
||||
|
||||
if (i_checkEquipHeavyBoots()) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
@@ -64,7 +64,7 @@ void daAlink_c::statusWindowDraw() {
|
||||
if (checkSwordDraw()) {
|
||||
basicModelDraw(mSwordModel);
|
||||
if (!checkWoodSwordEquip()) {
|
||||
basicModelDraw(field_0x06bc);
|
||||
basicModelDraw(mSheathModel);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ void daAlink_c::resetStatusWindow() {
|
||||
}
|
||||
|
||||
setMatrix();
|
||||
field_0x0650->calc();
|
||||
mpLinkModel->calc();
|
||||
i_onNoResetFlg2(0x400000);
|
||||
setSelectEquipItem(0);
|
||||
|
||||
|
||||
@@ -1,72 +1,111 @@
|
||||
#include "rel/d/a/obj/d_a_obj_yobikusa/d_a_obj_yobikusa.h"
|
||||
|
||||
/* 8011174C-80111770 10C08C 0024+00 1/1 0/0 0/0 .text daAlink_searchWhistle__FP10fopAc_ac_cPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daAlink_searchWhistle(fopAc_ac_c* param_0, void* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/daAlink_searchWhistle__FP10fopAc_ac_cPv.s"
|
||||
static fopAc_ac_c* daAlink_searchWhistle(fopAc_ac_c* p_actor, void*) {
|
||||
if (daAlink_getAlinkActorClass()->getGrassHowlEventActor() == fopAcM_GetName(p_actor)) {
|
||||
return p_actor;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80111770-80111784 10C0B0 0014+00 1/1 0/0 0/0 .text daAlink_searchHawk__FP10fopAc_ac_cPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daAlink_searchHawk(fopAc_ac_c* param_0, void* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/daAlink_searchHawk__FP10fopAc_ac_cPv.s"
|
||||
}
|
||||
#pragma pop
|
||||
static fopAc_ac_c* daAlink_searchHawk(fopAc_ac_c* p_actor, void*) {
|
||||
if (fopAcM_GetName(p_actor) == PROC_NPC_TK) {
|
||||
return p_actor;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8045069C-804506A4 -00001 0008+00 1/1 0/0 0/0 .sdata grassWhistleArcName$33096 */
|
||||
SECTION_SDATA static void* grassWhistleArcName[2] = {
|
||||
(void*)(((char*)&d_a_d_a_alink__stringBase0) + 0xAD),
|
||||
(void*)(((char*)&d_a_d_a_alink__stringBase0) + 0xB4),
|
||||
};
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 80111784-8011181C 10C0C4 0098+00 1/1 0/0 0/0 .text setGrassWhistleModel__9daAlink_cFi
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::setGrassWhistleModel(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/setGrassWhistleModel__9daAlink_cFi.s"
|
||||
void daAlink_c::setGrassWhistleModel(int modelType) {
|
||||
static const char* grassWhistleArcName[2] = {
|
||||
"J_Tobi",
|
||||
"J_Umak",
|
||||
};
|
||||
|
||||
JKRHeap* heap = setItemHeap();
|
||||
|
||||
J3DModelData* modeldata = (J3DModelData*)dComIfG_getObjectRes(grassWhistleArcName[modelType],
|
||||
grassWhistleIdx[modelType]);
|
||||
mHeldItemModel = mDoExt_J3DModel__create(modeldata, 0x80000, 0x11000084);
|
||||
|
||||
mDoExt_setCurrentHeap(heap);
|
||||
mEquipItem = 0x104;
|
||||
field_0x2f94 = 2;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8011181C-80111894 10C15C 0078+00 1/1 0/0 0/0 .text setHorseWhistleModel__9daAlink_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::setHorseWhistleModel() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/setHorseWhistleModel__9daAlink_cFv.s"
|
||||
void daAlink_c::setHorseWhistleModel() {
|
||||
JKRHeap* heap = setItemHeap();
|
||||
|
||||
mHeldItemModel = initModel(loadAramBmd(0x31A, 0x3000), 0);
|
||||
|
||||
mDoExt_setCurrentHeap(heap);
|
||||
mEquipItem = HORSE_FLUTE;
|
||||
field_0x2f94 = 2;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80111894-801119D8 10C1D4 0144+00 2/2 0/0 0/0 .text procGrassWhistleGetInit__9daAlink_cFv */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procGrassWhistleGetInit() {
|
||||
if (mEquipItem != NO_ITEM) {
|
||||
return procPreActionUnequipInit(PROC_GRASS_WHISTLE_GET, field_0x27f4);
|
||||
}
|
||||
|
||||
commonProcInit(PROC_GRASS_WHISTLE_GET);
|
||||
mNormalSpeed = 0.0f;
|
||||
current.angle.y = mCollisionRot.y;
|
||||
field_0x2f98 = 4;
|
||||
|
||||
setSingleAnimeParam(ANM_GRASS_WHISTLE_GRAB, &daAlinkHIO_bottle_c0::m.field_0x50);
|
||||
field_0x2f92 = 0xFE;
|
||||
field_0x280c.setData(field_0x27f4);
|
||||
|
||||
daObjYobikusa_c* yobikusa = (daObjYobikusa_c*)field_0x27f4;
|
||||
mCommonCounter = yobikusa->getType();
|
||||
field_0x300e = yobikusa->getPathID();
|
||||
field_0x3010 = yobikusa->isPlayerCorrect();
|
||||
field_0x3012 = yobikusa->mCollisionRot.y + 0x8000;
|
||||
field_0x37c8.set(yobikusa->current.pos.x + cM_ssin(yobikusa->mCollisionRot.y) * 50.0f,
|
||||
yobikusa->current.pos.y + 50.0f,
|
||||
yobikusa->current.pos.z + cM_scos(yobikusa->mCollisionRot.y) * 50.0f);
|
||||
voiceStart(Z2SE_AL_V_SWING_BOTTLE);
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::procGrassWhistleGetInit() {
|
||||
asm int daAlink_c::procGrassWhistleGetInit() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procGrassWhistleGetInit__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 801119D8-80111A9C 10C318 00C4+00 1/0 0/0 0/0 .text procGrassWhistleGet__9daAlink_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::procGrassWhistleGet() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procGrassWhistleGet__9daAlink_cFv.s"
|
||||
int daAlink_c::procGrassWhistleGet() {
|
||||
daPy_frameCtrl_c* frameCtrl = mFrameCtrl1;
|
||||
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
procGrassWhistleWaitInit(mCommonCounter, field_0x300e, field_0x3010, field_0x3012, &field_0x37c8);
|
||||
} else if (mEquipItem == NO_ITEM && frameCtrl->getFrame() >= lit_7710) {
|
||||
setGrassWhistleModel(mCommonCounter);
|
||||
|
||||
if (field_0x280c.getActor() != NULL) {
|
||||
fopAcM_setCarryNow(field_0x280c.getActor(), 0);
|
||||
seStartOnlyReverb(Z2SE_AL_PICKUP_GRASS);
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80111A9C-80111CA4 10C3DC 0208+00 2/2 0/0 0/0 .text
|
||||
* procGrassWhistleWaitInit__9daAlink_cFiiisP4cXyz */
|
||||
|
||||
@@ -166,7 +166,7 @@ void daItemBase_c::settingBeforeDraw() {
|
||||
|
||||
/* 80144D18-80144D70 13F658 0058+00 1/0 0/0 8/0 .text setTevStr__12daItemBase_cFv */
|
||||
void daItemBase_c::setTevStr() {
|
||||
g_env_light.settingTevStruct(0, &mCurrent.mPosition, &mTevStr);
|
||||
g_env_light.settingTevStruct(0, ¤t.pos, &mTevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(mpModel, &mTevStr);
|
||||
}
|
||||
|
||||
@@ -176,7 +176,7 @@ void daItemBase_c::setShadow() {
|
||||
|
||||
if (!chkFlag(0x10)) {
|
||||
if (getShadowSize() != 0.0f) {
|
||||
dComIfGd_setSimpleShadow(&mCurrent.mPosition, mAcch.GetGroundH(), scale,
|
||||
dComIfGd_setSimpleShadow(¤t.pos, mAcch.GetGroundH(), scale,
|
||||
mAcch.m_gnd, 0, 1.0f,
|
||||
dDlst_shadowControl_c::getSimpleTex());
|
||||
}
|
||||
@@ -187,8 +187,8 @@ void daItemBase_c::setShadow() {
|
||||
}
|
||||
|
||||
field_0x91c =
|
||||
dComIfGd_setShadow(field_0x91c, 3, mpModel, &mCurrent.mPosition, shadowSize, 0.0f,
|
||||
mCurrent.mPosition.y, mAcch.GetGroundH(), mAcch.m_gnd,
|
||||
dComIfGd_setShadow(field_0x91c, 3, mpModel, ¤t.pos, shadowSize, 0.0f,
|
||||
current.pos.y, mAcch.GetGroundH(), mAcch.m_gnd,
|
||||
&mTevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex());
|
||||
}
|
||||
}
|
||||
|
||||
+19
-19
@@ -1665,12 +1665,12 @@ int daNpcT_c::loadRes(s8 const* resNoList, char const** resNameList) {
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
int status = dComIfG_resLoad(&field_0x8e0[i], resNameList[resNoList[i]]);
|
||||
if (status == cPhs_COMPLEATE_e) {
|
||||
int phase_state = dComIfG_resLoad(&field_0x8e0[i], resNameList[resNoList[i]]);
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
resLoad_cnt++;
|
||||
}
|
||||
|
||||
if (status == cPhs_ERROR_e || status == 3) {
|
||||
if (phase_state == cPhs_ERROR_e || phase_state == cPhs_UNK3_e) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
}
|
||||
@@ -1702,7 +1702,7 @@ int daNpcT_c::execute() {
|
||||
fopAcM_posMoveF(this, field_0x864.GetCCMoveP());
|
||||
field_0x68c.CrrPos(dComIfG_Bgsp());
|
||||
field_0x930 = field_0x68c.m_gnd;
|
||||
field_0xdca = fopAcM_getPolygonAngle(field_0x930, mCurrent.mAngle.y);
|
||||
field_0xdca = fopAcM_getPolygonAngle(field_0x930, current.angle.y);
|
||||
field_0xdf4 = field_0x68c.GetGroundH();
|
||||
if (field_0xdf4 != -1000000000.0f) {
|
||||
field_0xda8 = dKy_pol_sound_get(&field_0x68c.m_gnd);
|
||||
@@ -1819,13 +1819,13 @@ int daNpcT_c::draw(int param_0, int param_1, f32 param_2, GXColorS10* color, f32
|
||||
if (param_5 != 0) {
|
||||
drawGhost();
|
||||
} else if (field_0xa89 != 0) {
|
||||
g_env_light.settingTevStruct(4, &mCurrent.mPosition, &mTevStr);
|
||||
g_env_light.settingTevStruct(4, ¤t.pos, &mTevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(modelData, &mTevStr);
|
||||
dComIfGd_setListDark();
|
||||
mMcaMorfAnm[0]->entryDL();
|
||||
dComIfGd_setList();
|
||||
} else {
|
||||
g_env_light.settingTevStruct(0, &mCurrent.mPosition, &mTevStr);
|
||||
g_env_light.settingTevStruct(0, ¤t.pos, &mTevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(modelData, &mTevStr);
|
||||
mMcaMorfAnm[0]->entryDL();
|
||||
}
|
||||
@@ -1849,10 +1849,10 @@ int daNpcT_c::draw(int param_0, int param_1, f32 param_2, GXColorS10* color, f32
|
||||
if (param_6 == 0) {
|
||||
if (param_7 == 0) {
|
||||
field_0xd94 = dComIfGd_setShadow(
|
||||
field_0xd94, 1, model, &mCurrent.mPosition, param_2, param_4, mCurrent.mPosition.y,
|
||||
field_0xd94, 1, model, ¤t.pos, param_2, param_4, current.pos.y,
|
||||
field_0xdf4, field_0x930, &mTevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex());
|
||||
} else {
|
||||
dComIfGd_setSimpleShadow(&mCurrent.mPosition, field_0xdf4, param_4, field_0x930, 0,
|
||||
dComIfGd_setSimpleShadow(¤t.pos, field_0xdf4, param_4, field_0x930, 0,
|
||||
1.0f, dDlst_shadowControl_c::getSimpleTex());
|
||||
}
|
||||
}
|
||||
@@ -1931,7 +1931,7 @@ void daNpcT_c::setMtx() {
|
||||
J3DModel* model = mMcaMorfAnm[0]->getModel();
|
||||
J3DModelData* modelData = model->getModelData();
|
||||
|
||||
mDoMtx_stack_c::transS(mCurrent.mPosition);
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::ZXYrotM(field_0xd78);
|
||||
mDoMtx_stack_c::scaleM(mScale);
|
||||
|
||||
@@ -2102,26 +2102,26 @@ void daNpcT_c::setPos(cXyz i_pos) {
|
||||
field_0x930.SetPos(&i_pos);
|
||||
i_pos.y = dComIfG_Bgsp().GroundCross(&field_0x930);
|
||||
|
||||
mCurrent.mPosition = i_pos;
|
||||
mNext.mPosition = mCurrent.mPosition;
|
||||
current.pos = i_pos;
|
||||
next.pos = current.pos;
|
||||
}
|
||||
|
||||
/* 8014A99C-8014AA18 1452DC 007C+00 0/0 0/0 29/29 .text setAngle__8daNpcT_cF5csXyz */
|
||||
void daNpcT_c::setAngle(csXyz i_angle) {
|
||||
mCurrent.mAngle = i_angle;
|
||||
mCollisionRot = mCurrent.mAngle;
|
||||
field_0xd78 = mCurrent.mAngle;
|
||||
current.angle = i_angle;
|
||||
mCollisionRot = current.angle;
|
||||
field_0xd78 = current.angle;
|
||||
field_0xd7e = field_0xd78;
|
||||
mNext.mAngle = mCurrent.mAngle;
|
||||
next.angle = current.angle;
|
||||
}
|
||||
|
||||
/* 8014AA18-8014AA40 145358 0028+00 0/0 0/0 138/138 .text setAngle__8daNpcT_cFs */
|
||||
void daNpcT_c::setAngle(s16 i_angle) {
|
||||
mCurrent.mAngle.y = i_angle;
|
||||
mCollisionRot.y = mCurrent.mAngle.y;
|
||||
field_0xd78.y = mCurrent.mAngle.y;
|
||||
current.angle.y = i_angle;
|
||||
mCollisionRot.y = current.angle.y;
|
||||
field_0xd78.y = current.angle.y;
|
||||
field_0xd7e.y = field_0xd78.y;
|
||||
mNext.mAngle.y = mCurrent.mAngle.y;
|
||||
next.angle.y = current.angle.y;
|
||||
}
|
||||
|
||||
/* 8014AA40-8014AAD0 145380 0090+00 0/0 0/0 33/33 .text hitChk__8daNpcT_cFP12dCcD_GObjInfUl */
|
||||
|
||||
+33
-33
@@ -283,7 +283,7 @@ void daItem_c::setBaseMtx() {
|
||||
|
||||
/* 8015B190-8015B1C8 155AD0 0038+00 1/1 0/0 0/0 .text setBaseMtx_0__8daItem_cFv */
|
||||
void daItem_c::setBaseMtx_0() {
|
||||
mDoMtx_stack_c::transS(mCurrent.mPosition);
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::ZXYrotM(mCollisionRot);
|
||||
}
|
||||
|
||||
@@ -298,7 +298,7 @@ void daItem_c::setBaseMtx_1() {
|
||||
f32 max_y = mpModel->getModelData()->getJointNodePointer(0)->getMax()->y;
|
||||
f32 y = max_y * 0.5f * mScale.y;
|
||||
|
||||
mDoMtx_stack_c::transS(mCurrent.mPosition);
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::transM(0.0f, y, 0.0f);
|
||||
|
||||
mDoMtx_stack_c::ZXYrotM(mCollisionRot);
|
||||
@@ -641,12 +641,12 @@ int daItem_c::_daItem_create() {
|
||||
}
|
||||
|
||||
if (!field_0x95d) {
|
||||
field_0x92c = mOrig.mAngle.x;
|
||||
field_0x92e = mOrig.mAngle.z;
|
||||
mOrig.mAngle.z = 0;
|
||||
mOrig.mAngle.x = 0;
|
||||
mCurrent.mAngle.z = 0;
|
||||
mCurrent.mAngle.x = 0;
|
||||
field_0x92c = orig.angle.x;
|
||||
field_0x92e = orig.angle.z;
|
||||
orig.angle.z = 0;
|
||||
orig.angle.x = 0;
|
||||
current.angle.z = 0;
|
||||
current.angle.x = 0;
|
||||
mCollisionRot.z = 0;
|
||||
mCollisionRot.x = 0;
|
||||
|
||||
@@ -658,25 +658,25 @@ int daItem_c::_daItem_create() {
|
||||
field_0x920 = daItem_prm::getItemBitNo(this);
|
||||
|
||||
if (fopAcM_isItem(this, field_0x920)) {
|
||||
return 5;
|
||||
return cPhs_ERROR_e;
|
||||
} else {
|
||||
int ret = 4;
|
||||
int phase_state = cPhs_COMPLEATE_e;
|
||||
|
||||
if (flag) {
|
||||
CreateInit();
|
||||
} else {
|
||||
ret = dComIfG_resLoad(&mPhase, dItem_data::getFieldArc(m_itemNo));
|
||||
phase_state = dComIfG_resLoad(&mPhase, dItem_data::getFieldArc(m_itemNo));
|
||||
|
||||
if (ret == 4) {
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
if (!fopAcM_entrySolidHeap(this, (heapCallbackFunc)CheckFieldItemCreateHeap, dItem_data::getFieldHeapSize(m_itemNo))) {
|
||||
return 5;
|
||||
return cPhs_ERROR_e;
|
||||
} else {
|
||||
CreateInit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
return phase_state;
|
||||
}
|
||||
}
|
||||
#else
|
||||
@@ -714,10 +714,10 @@ int daItem_c::_daItem_execute() {
|
||||
field_0x950 = mSpeed;
|
||||
CountTimer();
|
||||
|
||||
mEyePos = mCurrent.mPosition;
|
||||
mEyePos = current.pos;
|
||||
mEyePos.y += (f32)dItem_data::getH(m_itemNo) * 0.5f;
|
||||
|
||||
mAttentionInfo.mPosition = mCurrent.mPosition;
|
||||
mAttentionInfo.mPosition = current.pos;
|
||||
|
||||
if (mCollider.ChkTgHit()) {
|
||||
cCcD_Obj* hitObj = mCollider.GetTgHitObj();
|
||||
@@ -737,13 +737,13 @@ int daItem_c::_daItem_execute() {
|
||||
}
|
||||
|
||||
if (fopAcM_checkHookCarryNow(this)) {
|
||||
cXyz carry_pos = mCurrent.mPosition;
|
||||
cXyz carry_pos = current.pos;
|
||||
|
||||
if (mpModel != NULL) {
|
||||
carry_pos.y += 0.5f * mpModel->getModelData()->getJointNodePointer(0)->getMax()->y;
|
||||
}
|
||||
|
||||
mDoMtx_stack_c::transS(mCurrent.mPosition);
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::ZXYrotM(mCollisionRot);
|
||||
mDoMtx_stack_c::inverse();
|
||||
mDoMtx_stack_c::multVec(&carry_pos, &carry_pos);
|
||||
@@ -755,11 +755,11 @@ int daItem_c::_daItem_execute() {
|
||||
setBaseMtx();
|
||||
field_0x978.framework(0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
|
||||
|
||||
field_0x96c = mCurrent.mPosition;
|
||||
field_0x96c = current.pos;
|
||||
field_0x95f = (fopAcM_checkHookCarryNow(this) >> 0x14) & 1;
|
||||
|
||||
if (m_itemNo == ORANGE_RUPEE || m_itemNo == SILVER_RUPEE) {
|
||||
field_0x9ac = mCurrent.mPosition;
|
||||
field_0x9ac = current.pos;
|
||||
field_0x9ac.y += 18.0f;
|
||||
}
|
||||
|
||||
@@ -832,7 +832,7 @@ void daItem_c::procMainNormal() {
|
||||
}
|
||||
}
|
||||
|
||||
mCollider.SetC(mCurrent.mPosition);
|
||||
mCollider.SetC(current.pos);
|
||||
dComIfG_Ccsp()->Set(&mCollider);
|
||||
}
|
||||
|
||||
@@ -863,8 +863,8 @@ SECTION_SDATA2 static f32 lit_4404 = 15.0f;
|
||||
// literals / addi in wrong place
|
||||
#ifdef NONMATCHING
|
||||
void daItem_c::procInitSimpleGetDemo() {
|
||||
mCurrent.mPosition = daPy_getPlayerActorClass()->getItemPos();
|
||||
mCurrent.mPosition.y += 15.0f;
|
||||
current.pos = daPy_getPlayerActorClass()->getItemPos();
|
||||
current.pos.y += 15.0f;
|
||||
mCollisionRot.z = 0;
|
||||
mCollisionRot.x = 0;
|
||||
mScale = field_0x930;
|
||||
@@ -910,7 +910,7 @@ void daItem_c::procInitGetDemoEvent() {
|
||||
fopAcM_orderItemEvent(this, 0, 0);
|
||||
mEvtInfo.i_onCondition(8);
|
||||
|
||||
m_item_id = fopAcM_createItemForTrBoxDemo(&mCurrent.mPosition, m_itemNo, -1, fopAcM_GetRoomNo(this), NULL, NULL);
|
||||
m_item_id = fopAcM_createItemForTrBoxDemo(¤t.pos, m_itemNo, -1, fopAcM_GetRoomNo(this), NULL, NULL);
|
||||
setStatus(3);
|
||||
}
|
||||
|
||||
@@ -1006,7 +1006,7 @@ void daItem_c::procMainSwOnWait() {
|
||||
if (i_fopAcM_isSwitch(this, field_0x93c)) {
|
||||
mAcch.CrrPos(dComIfG_Bgsp());
|
||||
|
||||
if (mAcch.ChkWaterHit() && mAcch.m_wtr.GetHeight() > lit_4070[0] + mOrig.mPosition.y) {
|
||||
if (mAcch.ChkWaterHit() && mAcch.m_wtr.GetHeight() > lit_4070[0] + orig.pos.y) {
|
||||
field_0x9c0 = 1;
|
||||
}
|
||||
|
||||
@@ -1115,7 +1115,7 @@ void daItem_c::mode_wait() {
|
||||
break;
|
||||
}
|
||||
|
||||
if (field_0x9c0 == 0 && mAcch.ChkWaterHit() && mAcch.m_wtr.GetHeight() > mCurrent.mPosition.y) {
|
||||
if (field_0x9c0 == 0 && mAcch.ChkWaterHit() && mAcch.m_wtr.GetHeight() > current.pos.y) {
|
||||
mode_water_init();
|
||||
}
|
||||
|
||||
@@ -1132,10 +1132,10 @@ SECTION_SDATA2 static f32 lit_4781 = 1.0f / 10.0f;
|
||||
void daItem_c::mode_water() {
|
||||
mAcch.CrrPos(dComIfG_Bgsp());
|
||||
|
||||
if (!mAcch.ChkWaterHit() || mAcch.m_wtr.GetHeight() < mCurrent.mPosition.y) {
|
||||
if (!mAcch.ChkWaterHit() || mAcch.m_wtr.GetHeight() < current.pos.y) {
|
||||
mode_wait_init();
|
||||
} else {
|
||||
mCurrent.mPosition.y = mAcch.m_wtr.GetHeight();
|
||||
current.pos.y = mAcch.m_wtr.GetHeight();
|
||||
}
|
||||
|
||||
f32 var_f1 = 1.0f;
|
||||
@@ -1160,7 +1160,7 @@ void daItem_c::mode_water() {
|
||||
break;
|
||||
}
|
||||
|
||||
fopAcM_effHamonSet(&field_0x9b8, &mCurrent.mPosition, var_f1, 0.1f);
|
||||
fopAcM_effHamonSet(&field_0x9b8, ¤t.pos, var_f1, 0.1f);
|
||||
RotateYBase();
|
||||
}
|
||||
#else
|
||||
@@ -1176,7 +1176,7 @@ asm void daItem_c::mode_water() {
|
||||
|
||||
/* 8015CE94-8015CEEC 1577D4 0058+00 1/0 0/0 0/0 .text setTevStr__8daItem_cFv */
|
||||
void daItem_c::setTevStr() {
|
||||
g_env_light.settingTevStruct(0, &mCurrent.mPosition, &mTevStr);
|
||||
g_env_light.settingTevStruct(0, ¤t.pos, &mTevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(mpModel, &mTevStr);
|
||||
}
|
||||
|
||||
@@ -1323,7 +1323,7 @@ bool daItem_c::checkPlayerGet() {
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void daItem_c::checkYogan() {
|
||||
if (mAcch.ChkWaterHit() && mAcch.m_wtr.GetHeight() > mCurrent.mPosition.y + 100.0f) {
|
||||
if (mAcch.ChkWaterHit() && mAcch.m_wtr.GetHeight() > current.pos.y + 100.0f) {
|
||||
if (dComIfG_Bgsp().GetPolyAtt0(mAcch.m_wtr) == 6) {
|
||||
deleteItem();
|
||||
}
|
||||
@@ -1528,8 +1528,8 @@ asm void daItem_c::initSpeed(int param_0) {
|
||||
|
||||
/* 8015DE38-8015DE50 158778 0018+00 1/1 0/0 0/0 .text initAngle__8daItem_cFv */
|
||||
void daItem_c::initAngle() {
|
||||
mCurrent.mAngle.z = 0;
|
||||
mCurrent.mAngle.x = 0;
|
||||
current.angle.z = 0;
|
||||
current.angle.x = 0;
|
||||
mCollisionRot.z = 0;
|
||||
mCollisionRot.x = 0;
|
||||
}
|
||||
|
||||
@@ -269,10 +269,10 @@ SECTION_SDATA2 static u8 lit_4381[8] = {
|
||||
void daPy_boomerangMove_c::bgCheckAfterOffset(cXyz const* param_0) {
|
||||
daBoomerang_c* boomerang = daPy_py_c::getThrowBoomerangActor();
|
||||
if (boomerang != NULL) {
|
||||
field_0x4 = param_0->y - boomerang->mCurrent.mPosition.y;
|
||||
field_0x8 = boomerang->mCurrent.mPosition.absXZ(*param_0);
|
||||
field_0x2 = cM_atan2s(param_0->x - boomerang->mCurrent.mPosition.x,
|
||||
param_0->z - boomerang->mCurrent.mPosition.z);
|
||||
field_0x4 = param_0->y - boomerang->current.pos.y;
|
||||
field_0x8 = boomerang->current.pos.absXZ(*param_0);
|
||||
field_0x2 = cM_atan2s(param_0->x - boomerang->current.pos.x,
|
||||
param_0->z - boomerang->current.pos.z);
|
||||
}
|
||||
}
|
||||
#else
|
||||
@@ -606,7 +606,7 @@ asm void daPy_sightPacket_c::setSight() {
|
||||
* setSightImage__18daPy_sightPacket_cFP7ResTIMG */
|
||||
void daPy_sightPacket_c::setSightImage(ResTIMG* p_img) {
|
||||
mpImg = p_img;
|
||||
mpData = (u8*)p_img + p_img->texDataOffset;
|
||||
mpData = (u8*)p_img + p_img->imageOffset;
|
||||
}
|
||||
|
||||
/* 8015F398-8015F3C4 159CD8 002C+00 0/0 8/8 10/10 .text checkMasterSwordEquip__9daPy_py_cFv */
|
||||
|
||||
@@ -29,12 +29,12 @@ extern "C" void CreateItemHeap__12daItemBase_cFPCcsssssss();
|
||||
|
||||
/* 80037C14-80037C1C 032554 0008+00 0/0 1/1 0/0 .text getRotateP__12daShopItem_cFv */
|
||||
csXyz* daShopItem_c::getRotateP() {
|
||||
return &mCurrent.mAngle;
|
||||
return ¤t.angle;
|
||||
}
|
||||
|
||||
/* 80037C1C-80037C24 03255C 0008+00 0/0 2/2 0/0 .text getPosP__12daShopItem_cFv */
|
||||
cXyz* daShopItem_c::getPosP() {
|
||||
return &mCurrent.mPosition;
|
||||
return ¤t.pos;
|
||||
}
|
||||
|
||||
/* 803792E8-80379738 -00001 0450+00 1/1 0/0 9/9 .rodata mData__12daShopItem_c */
|
||||
|
||||
Reference in New Issue
Block a user