mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-21 14:07:29 -04:00
d_a_player_sword cleanup and small match fixes
This commit is contained in:
@@ -13,8 +13,8 @@ class daPy_mtxFollowEcallBack_c : public dPa_levelEcallBack {
|
||||
public:
|
||||
void execute(JPABaseEmitter*);
|
||||
void end();
|
||||
void makeEmitter(u16, MtxP, const cXyz*, const cXyz*);
|
||||
void makeEmitterColor(u16, MtxP, const cXyz*, const GXColor*, const GXColor*);
|
||||
JPABaseEmitter* makeEmitter(u16, MtxP, const cXyz*, const cXyz*);
|
||||
JPABaseEmitter* makeEmitterColor(u16, MtxP, const cXyz*, const GXColor*, const GXColor*);
|
||||
void setup(JPABaseEmitter* emitter, const cXyz*, const csXyz*, s8) { mpEmitter = emitter; }
|
||||
|
||||
JPABaseEmitter* getEmitter() { return mpEmitter; }
|
||||
@@ -457,20 +457,22 @@ public:
|
||||
bool checkArrowShoot() const { return checkResetFlg0(daPyRFlg0_ARROW_SHOOT); }
|
||||
|
||||
bool checkGrabWear() const { return field_0x2b0 < 0.0f; }
|
||||
bool checkNormalSwordEquip() const {
|
||||
return dComIfGs_getSelectEquip(0) == dItem_SWORD_e ||
|
||||
dComIfGp_getMiniGameType() == 2;
|
||||
BOOL checkNormalSwordEquip() const {
|
||||
return dComIfGs_getSelectEquip(0) == dItem_SWORD_e || checkSwordMiniGame();
|
||||
}
|
||||
BOOL checkMasterSwordEquip() const {
|
||||
return dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_1_e ||
|
||||
dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_2_e ||
|
||||
dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_3_e;
|
||||
}
|
||||
BOOL checkFinalMasterSwordEquip() const {
|
||||
return dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_3_e;
|
||||
}
|
||||
|
||||
void setFace(daPy_FACE face) { mFace = face; }
|
||||
|
||||
void checkFinalMasterSwordEquip() const {}
|
||||
BOOL checkSwordMiniGame() const { return dComIfGp_getMiniGameType() == 2; }
|
||||
void checkBowMiniGame() const {}
|
||||
void checkSwordMiniGame() const {}
|
||||
void checkSoupPowerUp() const {}
|
||||
void checkSubjectAccept() const {}
|
||||
void checkUseArrowEffect() const {}
|
||||
|
||||
@@ -1437,7 +1437,7 @@ public:
|
||||
BOOL procSwimMove_init(BOOL);
|
||||
BOOL procSwimMove();
|
||||
void setSpecialBattle(BOOL);
|
||||
int changeSpecialBattle();
|
||||
BOOL changeSpecialBattle();
|
||||
BOOL procBtJump_init(fopEn_enemy_c*);
|
||||
BOOL procBtJump();
|
||||
BOOL procBtJumpCut_init(cXyz*);
|
||||
@@ -1657,7 +1657,7 @@ public:
|
||||
void setSwordModel(BOOL);
|
||||
void setLightSaver();
|
||||
BOOL checkDemoShieldNoDraw();
|
||||
BOOL checkDemoSwordNoDraw(int);
|
||||
BOOL checkDemoSwordNoDraw(BOOL);
|
||||
BOOL checkChanceMode();
|
||||
BOOL checkCutRollChange() const;
|
||||
int getSwordBlurColor();
|
||||
@@ -1766,8 +1766,7 @@ public:
|
||||
}
|
||||
}
|
||||
bool checkSwordEquip() const {
|
||||
return dComIfGs_getSelectEquip(0) != dItem_NONE_e ||
|
||||
dComIfGp_getMiniGameType() == 2;
|
||||
return dComIfGs_getSelectEquip(0) != dItem_NONE_e || checkSwordMiniGame();
|
||||
}
|
||||
|
||||
int getStartRoomNo() { return fopAcM_GetParam(this) & 0x3F; }
|
||||
@@ -1792,6 +1791,7 @@ public:
|
||||
|
||||
BOOL doTrigger() const { return mItemTrigger & BTN_A; }
|
||||
BOOL talkTrigger() const { return mItemTrigger & BTN_A; }
|
||||
BOOL spBattleTrigger() const {return mItemTrigger & BTN_A; }
|
||||
BOOL swordTrigger() const { return mItemTrigger & BTN_B; }
|
||||
BOOL cancelTrigger() const { return mItemTrigger & BTN_B; }
|
||||
BOOL itemTriggerX() const { return mItemTrigger & BTN_X; }
|
||||
@@ -1801,7 +1801,6 @@ public:
|
||||
BOOL spActionTrigger() const { return mItemTrigger & BTN_R; }
|
||||
void allTrigger() const {}
|
||||
void otherWeaponTrigger() const {}
|
||||
void spBattleTrigger() const {}
|
||||
|
||||
BOOL checkPlayerDemoMode() const { return mDemo.getDemoType(); }
|
||||
void checkSpecialDemoMode() const {}
|
||||
|
||||
+57
-58
@@ -171,13 +171,8 @@ void pos_move(fganon_class* i_this, unsigned char param_2) {
|
||||
|
||||
/* 00000AEC-00000C14 .text fly_se_set__FP12fganon_class */
|
||||
void fly_se_set(fganon_class* i_this) {
|
||||
float fVar1;
|
||||
uint uVar2;
|
||||
float fVar4;
|
||||
cXyz local_34;
|
||||
|
||||
local_34 = i_this->current.pos - i_this->old.pos;
|
||||
uVar2 = (uint)(local_34.abs() * 3.5f);
|
||||
cXyz local_34 = i_this->current.pos - i_this->old.pos;
|
||||
uint uVar2 = (uint)(local_34.abs() * 3.5f);
|
||||
if (uVar2 > 100) {
|
||||
uVar2 = 100;
|
||||
}
|
||||
@@ -812,7 +807,7 @@ void down(fganon_class* i_this) {
|
||||
sp2C.y += 300.0f;
|
||||
gndChk.SetPos(&sp2C);
|
||||
f32 height = dComIfG_Bgsp()->GroundCross(&gndChk);
|
||||
if ((height != -1e+09f) && (i_this->current.pos.y <= height)) {
|
||||
if (height != C_BG_MIN_HEIGHT && i_this->current.pos.y <= height) {
|
||||
bVar3 = TRUE;
|
||||
}
|
||||
if ((i_this->m3A4[0] == 0) || bVar3) {
|
||||
@@ -937,7 +932,7 @@ void kieru(fganon_class* i_this) {
|
||||
/* 00004584-00004BC8 .text fail__FP12fganon_class */
|
||||
void fail(fganon_class* i_this) {
|
||||
fopAc_ac_c* a_this = (fopAc_ac_c*)i_this;
|
||||
fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0);
|
||||
|
||||
i_this->m3AE = 3;
|
||||
switch(i_this->m388) {
|
||||
case 0: {
|
||||
@@ -1162,7 +1157,7 @@ void start(fganon_class* i_this) {
|
||||
/* 00005128-00005350 .text end__FP12fganon_class */
|
||||
void end(fganon_class* i_this) {
|
||||
fopAc_ac_c* a_this = (fopAc_ac_c*)i_this;
|
||||
fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0);
|
||||
|
||||
i_this->m3AE = 3;
|
||||
fopAcM_OffStatus(i_this, 0);
|
||||
i_this->attention_info.flags = 0;
|
||||
@@ -1215,7 +1210,7 @@ void end(fganon_class* i_this) {
|
||||
/* 00005350-000056A4 .text last_end__FP12fganon_class */
|
||||
void last_end(fganon_class* i_this) {
|
||||
fopAc_ac_c* a_this = (fopAc_ac_c*)i_this;
|
||||
fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0);
|
||||
|
||||
i_this->m3AE = 3;
|
||||
fopAcM_OffStatus(i_this, 0);
|
||||
i_this->attention_info.flags = 0;
|
||||
@@ -1593,7 +1588,7 @@ s32 move(fganon_class* i_this) {
|
||||
fly2(i_this);
|
||||
res = 1;
|
||||
break;
|
||||
case 0xB:
|
||||
case 11:
|
||||
shot2(i_this);
|
||||
res = 1;
|
||||
break;
|
||||
@@ -1604,13 +1599,13 @@ s32 move(fganon_class* i_this) {
|
||||
down(i_this);
|
||||
res = 1;
|
||||
break;
|
||||
case 0x14:
|
||||
case 20:
|
||||
start(i_this);
|
||||
break;
|
||||
case 0x15:
|
||||
case 21:
|
||||
end(i_this);
|
||||
break;
|
||||
case 0x16:
|
||||
case 22:
|
||||
last_end(i_this);
|
||||
break;
|
||||
default:
|
||||
@@ -1656,7 +1651,7 @@ void demo_camera(fganon_class* i_this) {
|
||||
camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0));
|
||||
bVar3 = TRUE;
|
||||
switch(i_this->mB54) {
|
||||
case 0x1: {
|
||||
case 1: {
|
||||
if (!i_this->eventInfo.checkCommandDemoAccrpt()) {
|
||||
fopAcM_orderPotentialEvent(a_this, dEvtFlag_STAFF_ALL_e, 0xFFFF, 0);
|
||||
i_this->eventInfo.onCondition(dEvtCmd_INDEMO_e);
|
||||
@@ -1675,7 +1670,7 @@ void demo_camera(fganon_class* i_this) {
|
||||
player->changeOriginalDemo();
|
||||
player->changeDemoMode(0x18);
|
||||
}
|
||||
case 0x2: {
|
||||
case 2: {
|
||||
transformedPos.x = -300306.0f;
|
||||
transformedPos.y = 715.0f;
|
||||
transformedPos.z = -303407.0f;
|
||||
@@ -1726,7 +1721,7 @@ void demo_camera(fganon_class* i_this) {
|
||||
i_this->mB68 = i_this->current.pos;
|
||||
i_this->mB68.y += REG0_F(0) + 160.0f;
|
||||
}
|
||||
case 0x3: {
|
||||
case 3: {
|
||||
if (i_this->mB56 > 60) {
|
||||
cLib_addCalc2(&i_this->mB5C.x, -300269.0f, 0.1f, i_this->mB80 * 100.0f);
|
||||
cLib_addCalc2(&i_this->mB5C.y, 870.0f, 0.1f, i_this->mB80 * 100.0f);
|
||||
@@ -1755,7 +1750,7 @@ void demo_camera(fganon_class* i_this) {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 0x32: {
|
||||
case 50: {
|
||||
if (!i_this->eventInfo.checkCommandDemoAccrpt()) {
|
||||
fopAcM_orderPotentialEvent(a_this, dEvtFlag_STAFF_ALL_e, 0xFFFF, 0);
|
||||
i_this->eventInfo.onCondition(dEvtCmd_INDEMO_e);
|
||||
@@ -1775,7 +1770,7 @@ void demo_camera(fganon_class* i_this) {
|
||||
|
||||
i_this->shape_angle.y = 0;
|
||||
}
|
||||
case 0x33: {
|
||||
case 51: {
|
||||
i_this->current.pos.x = -300202.0f;
|
||||
i_this->current.pos.y = 715.0f;
|
||||
i_this->current.pos.z = -301859.0f;
|
||||
@@ -1818,7 +1813,7 @@ void demo_camera(fganon_class* i_this) {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 0x34: {
|
||||
case 52: {
|
||||
yPos = player->current.pos.y;
|
||||
transformedPos.x = -300202.0f;
|
||||
transformedPos.y = yPos;
|
||||
@@ -1841,7 +1836,7 @@ void demo_camera(fganon_class* i_this) {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 0x35: {
|
||||
case 53: {
|
||||
i_this->mB68.x = -300098.0f;
|
||||
i_this->mB68.y = 580.0f;
|
||||
i_this->mB68.z = -301997.0f;
|
||||
@@ -1866,7 +1861,7 @@ void demo_camera(fganon_class* i_this) {
|
||||
i_this->mB68.y -= REG0_F(11) + 30.0f;
|
||||
i_this->m388++;
|
||||
}
|
||||
case 0x36: {
|
||||
case 54: {
|
||||
cLib_addCalc2(&i_this->mB68.y, (i_this->eyePos.y - 30.0f) + REG0_F(11), 0.1f, 20.0f);
|
||||
if (i_this->mB56 == 100) {
|
||||
i_this->mB54 = 55;
|
||||
@@ -1877,7 +1872,7 @@ void demo_camera(fganon_class* i_this) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
case 0x37: {
|
||||
case 55: {
|
||||
if (i_this->mB56 == 20) {
|
||||
mDoAud_seStart(JA_SE_CV_PG_LAUGH_1, NULL, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(a_this)));
|
||||
}
|
||||
@@ -1909,9 +1904,9 @@ void demo_camera(fganon_class* i_this) {
|
||||
|
||||
i_this->mB54 = 150;
|
||||
fopAcM_delete(a_this);
|
||||
goto label0x96;
|
||||
goto case_150;
|
||||
}
|
||||
case 0x64: {
|
||||
case 100: {
|
||||
if (!i_this->eventInfo.checkCommandDemoAccrpt()) {
|
||||
fopAcM_orderPotentialEvent(a_this, dEvtFlag_STAFF_ALL_e, 0xFFFF, 0);
|
||||
i_this->eventInfo.onCondition(dEvtCmd_INDEMO_e);
|
||||
@@ -1936,7 +1931,7 @@ void demo_camera(fganon_class* i_this) {
|
||||
|
||||
i_this->shape_angle.y = fopAcM_searchPlayerAngleY(a_this);
|
||||
}
|
||||
case 0x65: {
|
||||
case 101: {
|
||||
cLib_addCalc2(&i_this->mB68.x, i_this->current.pos.x, 0.1f, 200.0f);
|
||||
cLib_addCalc2(&i_this->mB68.y, i_this->eyePos.y - 50.0f, 0.1f, 200.0f);
|
||||
cLib_addCalc2(&i_this->mB68.z, i_this->current.pos.z, 0.1f, 200.0f);
|
||||
@@ -1967,11 +1962,11 @@ void demo_camera(fganon_class* i_this) {
|
||||
cLib_addCalc2(&i_this->mB80, 1.0f, 1.0f, REG8_F(7) + 0.1f);
|
||||
break;
|
||||
}
|
||||
case 0x0:
|
||||
case 0:
|
||||
default: {
|
||||
break;
|
||||
}
|
||||
case 0x67: {
|
||||
case 103: {
|
||||
if (i_this->mB56 > REG0_S(2) + 8) {
|
||||
cLib_addCalc2(&i_this->mB68.y, player->current.pos.y + REG0_F(9), 0.8f, REG0_F(10) + 30.0f);
|
||||
}
|
||||
@@ -1988,8 +1983,8 @@ void demo_camera(fganon_class* i_this) {
|
||||
dComIfGs_onSwitch(i_this->mSwitchNo, fopAcM_GetRoomNo(a_this));
|
||||
}
|
||||
}
|
||||
case 0x96: {
|
||||
label0x96:
|
||||
case 150: {
|
||||
case_150:
|
||||
camera->mCamera.SetTrimSize(0);
|
||||
camera->mCamera.Start();
|
||||
dMeter_mtrShow();
|
||||
@@ -2007,7 +2002,6 @@ void demo_camera(fganon_class* i_this) {
|
||||
/* 00007434-0000778C .text ball_bg_check__FP12fganon_class */
|
||||
BOOL ball_bg_check(fganon_class* i_this) {
|
||||
fopAc_ac_c* a_this = (fopAc_ac_c*)i_this;
|
||||
fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0);
|
||||
dBgS_LinChk linChk;
|
||||
cXyz posVec = i_this->m3E0 + (i_this->m3E0 - i_this->m3EC) * 1.05f;
|
||||
linChk.Set(&i_this->m3E0, &posVec, a_this);
|
||||
@@ -2165,33 +2159,38 @@ void energy_ball_move(fganon_class* i_this) {
|
||||
atInfo.mResultingAttackType = 0xFF;
|
||||
atInfo.mpObj = NULL;
|
||||
}
|
||||
if ((atInfo.mpObj && (atInfo.mResultingAttackType == 1) && atInfo.mpObj->ChkAtType(AT_TYPE_SWORD)) &&
|
||||
(dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_1_e || dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_3_e || dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_2_e) || bVar3) {
|
||||
local_5c = a_this->eyePos - i_this->m3E0;
|
||||
local_5c.y -= REG0_F(17) + 30.0f;
|
||||
if ((atInfo.mpObj && atInfo.mResultingAttackType == 1 && atInfo.mpObj->ChkAtType(AT_TYPE_SWORD) &&
|
||||
(dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_1_e ||
|
||||
dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_3_e ||
|
||||
dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_2_e)) ||
|
||||
bVar3)
|
||||
{
|
||||
local_5c = a_this->eyePos - i_this->m3E0;
|
||||
local_5c.y -= REG0_F(17) + 30.0f;
|
||||
|
||||
cMtx_YrotS(*calc_mtx, cM_atan2s(local_5c.x, local_5c.z));
|
||||
cMtx_XrotM(*calc_mtx, -cM_atan2s(local_5c.y, std::sqrtf(local_5c.x * local_5c.x + local_5c.z * local_5c.z)));
|
||||
|
||||
local_50.z = i_this->m404;
|
||||
|
||||
MtxPosition(&local_50, &i_this->m3F8);
|
||||
|
||||
i_this->m408 = 5;
|
||||
|
||||
dScnPly_ply_c::setPauseTimer(2);
|
||||
|
||||
bVar2 = TRUE;
|
||||
|
||||
s32 lVar11 = i_this->m688 + 2;
|
||||
if (lVar11 > 7) {
|
||||
lVar11 = 7;
|
||||
}
|
||||
mDoAud_changeSubBgmStatus(lVar11);
|
||||
i_this->m688++;
|
||||
dComIfGs_onEventBit(0x3f20);
|
||||
}
|
||||
else if (bVar5) {
|
||||
cMtx_YrotS(*calc_mtx, cM_atan2s(local_5c.x, local_5c.z));
|
||||
cMtx_XrotM(
|
||||
*calc_mtx, -cM_atan2s(local_5c.y, std::sqrtf(local_5c.x * local_5c.x + local_5c.z * local_5c.z))
|
||||
);
|
||||
|
||||
local_50.z = i_this->m404;
|
||||
|
||||
MtxPosition(&local_50, &i_this->m3F8);
|
||||
|
||||
i_this->m408 = 5;
|
||||
|
||||
dScnPly_ply_c::setPauseTimer(2);
|
||||
|
||||
bVar2 = TRUE;
|
||||
|
||||
s32 lVar11 = i_this->m688 + 2;
|
||||
if (lVar11 > 7) {
|
||||
lVar11 = 7;
|
||||
}
|
||||
mDoAud_changeSubBgmStatus(lVar11);
|
||||
i_this->m688++;
|
||||
dComIfGs_onEventBit(0x3f20);
|
||||
} else if (bVar5) {
|
||||
local_5c = player->eyePos - i_this->m3E0;
|
||||
local_5c.y -= REG0_F(18) + 50.0f;
|
||||
|
||||
|
||||
@@ -66,17 +66,17 @@ void daPy_mtxFollowEcallBack_c::end() {
|
||||
}
|
||||
|
||||
/* 80102BF8-80102C84 .text makeEmitter__25daPy_mtxFollowEcallBack_cFUsPA4_fPC4cXyzPC4cXyz */
|
||||
void daPy_mtxFollowEcallBack_c::makeEmitter(u16 particleID, MtxP mtx, const cXyz* pos, const cXyz* scale) {
|
||||
JPABaseEmitter* daPy_mtxFollowEcallBack_c::makeEmitter(u16 particleID, MtxP mtx, const cXyz* pos, const cXyz* scale) {
|
||||
end();
|
||||
mpMtx = mtx;
|
||||
dComIfGp_particle_setP1(particleID, pos, NULL, scale, 0xFF, this);
|
||||
return dComIfGp_particle_setP1(particleID, pos, NULL, scale, 0xFF, this);
|
||||
}
|
||||
|
||||
/* 80102C84-80102D14 .text makeEmitterColor__25daPy_mtxFollowEcallBack_cFUsPA4_fPC4cXyzPC8_GXColorPC8_GXColor */
|
||||
void daPy_mtxFollowEcallBack_c::makeEmitterColor(u16 particleID, MtxP mtx, const cXyz* pos, const GXColor* prmColor, const GXColor* envColor) {
|
||||
JPABaseEmitter* daPy_mtxFollowEcallBack_c::makeEmitterColor(u16 particleID, MtxP mtx, const cXyz* pos, const GXColor* prmColor, const GXColor* envColor) {
|
||||
end();
|
||||
mpMtx = mtx;
|
||||
dComIfGp_particle_setP1(particleID, pos, NULL, NULL, 0xFF, this, -1, prmColor, envColor);
|
||||
return dComIfGp_particle_setP1(particleID, pos, NULL, NULL, 0xFF, this, -1, prmColor, envColor);
|
||||
}
|
||||
|
||||
/* 80102D14-80102D90 .text setDoButtonQuake__9daPy_py_cFv */
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
/**
|
||||
* d_a_player_battle.inc
|
||||
*
|
||||
* Code relating to (?) (How is this different from the "cut" functions in the
|
||||
* sword file?)
|
||||
* Code relating to parrying enemies.
|
||||
*
|
||||
* This file is not a standalone translation unit and is instead directly
|
||||
* included into d_a_player_main.cpp.
|
||||
@@ -53,10 +52,10 @@ void daPy_lk_c::setSpecialBattle(BOOL param_0) {
|
||||
}
|
||||
|
||||
/* 8013E384-8013E454 .text changeSpecialBattle__9daPy_lk_cFv */
|
||||
int daPy_lk_c::changeSpecialBattle() {
|
||||
BOOL daPy_lk_c::changeSpecialBattle() {
|
||||
if (mpAttnActorLockOn != NULL && (dComIfGp_getDoStatus() == 26 || (m34C5 == 5))) {
|
||||
fopEn_enemy_c* enemy = (fopEn_enemy_c*)mpAttnActorLockOn;
|
||||
if (m34C5 == 5 || (doTrigger() && enemy->getBtStartFrame() <= enemy->getBtNowFrame())) {
|
||||
if (m34C5 == 5 || (spBattleTrigger() && enemy->getBtStartFrame() <= enemy->getBtNowFrame())) {
|
||||
if (enemy->getBtAttackType() == 1) {
|
||||
return procBtJump_init(enemy);
|
||||
}
|
||||
|
||||
@@ -131,7 +131,7 @@ BOOL daPy_lk_c::procBottleSwing_init(int param_0) {
|
||||
iVar2 = checkShipRideUseItem(1);
|
||||
commonProcInit(daPyProc_BOTTLE_SWING_e);
|
||||
if ((int)param_0 != 0) {
|
||||
deleteEquipItem(0);
|
||||
deleteEquipItem(FALSE);
|
||||
setBottleModel(0x50);
|
||||
}
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -211,7 +211,7 @@ BOOL daPy_lk_c::procBottleGet() {
|
||||
if ((frameCtrl.getRate() < 0.01f) && (checkEndMessage(mEquipItem + 0x65))) {
|
||||
dComIfGp_event_reset();
|
||||
dCam_getBody()->EndEventCamera(fopAcM_GetID(this));
|
||||
deleteEquipItem(0);
|
||||
deleteEquipItem(FALSE);
|
||||
endDemoMode();
|
||||
} else {
|
||||
if (frameCtrl.getFrame() >= 9.0f) {
|
||||
|
||||
@@ -197,7 +197,7 @@ BOOL daPy_lk_c::checkBgClimbMove() {
|
||||
mGndChk.SetPos(&local_5c);
|
||||
dVar3 = dComIfG_Bgsp()->GroundCross(&mGndChk);
|
||||
cM3dGPla* triPla;
|
||||
if (((-1.0E+9f != dVar3) && (triPla = dComIfG_Bgsp()->GetTriPla(mGndChk), triPla->GetNP()->y >= 0.5f)) &&
|
||||
if (((C_BG_MIN_HEIGHT != dVar3) && (triPla = dComIfG_Bgsp()->GetTriPla(mGndChk), triPla->GetNP()->y >= 0.5f)) &&
|
||||
(dVar3 >= (local_68.y - 30.0f)))
|
||||
{
|
||||
dVar4 = 3.0f;
|
||||
|
||||
@@ -222,8 +222,6 @@ BOOL daPy_lk_c::checkNotCrawlStand(cXyz* param_0, cXyz* param_1) {
|
||||
/* 80139760-80139878 .text procCrawlMove_init__9daPy_lk_cFss */
|
||||
BOOL daPy_lk_c::procCrawlMove_init(s16 param_0, s16 param_1) {
|
||||
BOOL var_r29;
|
||||
BOOL var_r28 = 0;
|
||||
|
||||
if (mCurProc == daPyProc_CRAWL_AUTO_MOVE_e) {
|
||||
var_r29 = 0;
|
||||
} else {
|
||||
|
||||
@@ -235,88 +235,81 @@ BOOL daPy_lk_c::procFanSwing() {
|
||||
daPy_HIO_move_c0::m.field_0x1C,
|
||||
daPy_HIO_move_c0::m.field_0x20
|
||||
);
|
||||
} else {
|
||||
if (m3570 == 0) {
|
||||
if (m34D0 != 0) {
|
||||
if (!checkHeavyStateOn() &&
|
||||
(!mAcch.ChkGroundHit() ||
|
||||
checkNoResetFlg0(daPy_FLG0(daPyFlg0_UNK80000000 | daPyFlg0_UNK20000000)) ||
|
||||
(!dComIfG_Bgsp()->ChkPolySafe(mAcch.m_gnd)) || (!dComIfG_Bgsp()->ChkMoveBG(mAcch.m_gnd))))
|
||||
{
|
||||
mVelocity = 10.0f;
|
||||
current.angle.y = shape_angle.y + 0x8000;
|
||||
if (mCurrAttributeCode == dBgS_Attr_ICE_e) {
|
||||
m36A0.x += 10.0f * cM_ssin(current.angle.y);
|
||||
m36A0.z += 10.0f * cM_scos(current.angle.y);
|
||||
}
|
||||
} else if (m3570 == 0) {
|
||||
if (m34D0 != 0) {
|
||||
if (!checkHeavyStateOn() &&
|
||||
(!mAcch.ChkGroundHit() || checkNoResetFlg0(daPy_FLG0(daPyFlg0_UNK80000000 | daPyFlg0_UNK20000000)) ||
|
||||
!dComIfG_Bgsp()->ChkPolySafe(mAcch.m_gnd) || !dComIfG_Bgsp()->ChkMoveBG(mAcch.m_gnd)))
|
||||
{
|
||||
mVelocity = 10.0f;
|
||||
current.angle.y = shape_angle.y + 0x8000;
|
||||
if (mCurrAttributeCode == dBgS_Attr_ICE_e) {
|
||||
m36A0.x += 10.0f * cM_ssin(current.angle.y);
|
||||
m36A0.z += 10.0f * cM_scos(current.angle.y);
|
||||
}
|
||||
m3534 = 10;
|
||||
m353A = 3;
|
||||
local_60.set(current.pos.x, current.pos.y + 70.0f, current.pos.z);
|
||||
m3536 = shape_angle.y;
|
||||
if (mpAttnActorLockOn == NULL) {
|
||||
m3538 = 0;
|
||||
} else {
|
||||
local_54 = (mpAttnActorLockOn->eyePos - current.pos);
|
||||
m3538 = cM_atan2s(-local_54.y, local_54.absXZ());
|
||||
}
|
||||
mpYuchw00Brk->setFrame(0.0f);
|
||||
m33E8.end();
|
||||
m33E8.makeEmitter(dPa_name::ID_COMMON_0032, mpYuchw00Model->getAnmMtx(2), &local_60, NULL);
|
||||
pJVar5 = m33E8.getEmitter();
|
||||
if (pJVar5 != NULL) {
|
||||
pJVar5->setGlobalPrmColor(tevStr.mColorC0.r, tevStr.mColorC0.g, tevStr.mColorC0.b);
|
||||
}
|
||||
mFanWindCps.SetStartEnd(current.pos, local_60);
|
||||
seStartOnlyReverb(JA_SE_LK_FAN_SWING);
|
||||
local_48.set(
|
||||
current.pos.x + 100.0f * cM_ssin(shape_angle.y),
|
||||
current.pos.y + 50.0f,
|
||||
current.pos.z + 100.0f * cM_scos(shape_angle.y)
|
||||
);
|
||||
mGndChk.SetPos(&local_48);
|
||||
local_48.y = dComIfG_Bgsp()->GroundCross(&mGndChk);
|
||||
if (local_48.y >= current.pos.y - 50.0f) {
|
||||
int iVar4 = dComIfG_Bgsp()->GetAttributeCode(mGndChk);
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "Adanmae")) {
|
||||
dComIfGp_particle_setP1(dPa_name::ID_SCENE_8236, &local_48, &shape_angle);
|
||||
}
|
||||
dPa_control_c::mSmokeEcallback.onWindOff();
|
||||
int iStack_84;
|
||||
pJVar5 = dComIfGp_particle_setSimpleLand(
|
||||
iVar4, &local_48, NULL, 1.0f, 1.0f, 1.0f, &tevStr, &iStack_84, 0x17
|
||||
);
|
||||
dPa_control_c::mSmokeEcallback.offWindOff();
|
||||
if (pJVar5) {
|
||||
csXyz local_80;
|
||||
local_80.y = shape_angle.y + 0x8000;
|
||||
local_80.x = getGroundAngle(&(mGndChk), local_80.y);
|
||||
local_80.z = getGroundAngle(&(mGndChk), local_80.y + -0x4000);
|
||||
mDoMtx_trans(mDoMtx_stack_c::now, local_48.x, local_48.y, local_48.z);
|
||||
mDoMtx_ZXYrotM(mDoMtx_stack_c::now, local_80.x, local_80.y, local_80.z);
|
||||
JPASetRMtxTVecfromMtx(
|
||||
mDoMtx_stack_c::now, pJVar5->mGlobalRotation, (pJVar5->mGlobalTranslation)
|
||||
);
|
||||
pJVar5->setSpread(0.45f);
|
||||
if (iVar4 == 4) {
|
||||
pJVar5->setRate(100.0f);
|
||||
} else {
|
||||
pJVar5->setRate(50.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
local_3c.set(current.pos.x, current.pos.y + 50.0f, current.pos.z);
|
||||
dKyw_squal_set(&local_3c, 1000, shape_angle.y, 280.0f, 1000.0f, 1.0f, 140.0f, 0.08f);
|
||||
}
|
||||
m3534 = 10;
|
||||
m353A = 3;
|
||||
local_60.set(current.pos.x, current.pos.y + 70.0f, current.pos.z);
|
||||
m3536 = shape_angle.y;
|
||||
if (mpAttnActorLockOn == NULL) {
|
||||
m3538 = 0;
|
||||
} else {
|
||||
seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S);
|
||||
local_54 = (mpAttnActorLockOn->eyePos - current.pos);
|
||||
m3538 = cM_atan2s(-local_54.y, local_54.absXZ());
|
||||
}
|
||||
voiceStart(1);
|
||||
m3570 = 1;
|
||||
mpYuchw00Brk->setFrame(0.0f);
|
||||
m33E8.end();
|
||||
m33E8.makeEmitter(dPa_name::ID_COMMON_0032, mpYuchw00Model->getAnmMtx(2), &local_60, NULL);
|
||||
pJVar5 = m33E8.getEmitter();
|
||||
if (pJVar5 != NULL) {
|
||||
pJVar5->setGlobalPrmColor(tevStr.mColorC0.r, tevStr.mColorC0.g, tevStr.mColorC0.b);
|
||||
}
|
||||
mFanWindCps.SetStartEnd(current.pos, local_60);
|
||||
seStartOnlyReverb(JA_SE_LK_FAN_SWING);
|
||||
local_48.set(
|
||||
current.pos.x + 100.0f * cM_ssin(shape_angle.y),
|
||||
current.pos.y + 50.0f,
|
||||
current.pos.z + 100.0f * cM_scos(shape_angle.y)
|
||||
);
|
||||
mGndChk.SetPos(&local_48);
|
||||
local_48.y = dComIfG_Bgsp()->GroundCross(&mGndChk);
|
||||
if (local_48.y >= current.pos.y - 50.0f) {
|
||||
int iVar4 = dComIfG_Bgsp()->GetAttributeCode(mGndChk);
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "Adanmae")) {
|
||||
dComIfGp_particle_setP1(dPa_name::ID_SCENE_8236, &local_48, &shape_angle);
|
||||
}
|
||||
dPa_control_c::mSmokeEcallback.onWindOff();
|
||||
int iStack_84;
|
||||
pJVar5 = dComIfGp_particle_setSimpleLand(
|
||||
iVar4, &local_48, NULL, 1.0f, 1.0f, 1.0f, &tevStr, &iStack_84, 0x17
|
||||
);
|
||||
dPa_control_c::mSmokeEcallback.offWindOff();
|
||||
if (pJVar5) {
|
||||
csXyz local_80;
|
||||
local_80.y = shape_angle.y + 0x8000;
|
||||
local_80.x = getGroundAngle(&(mGndChk), local_80.y);
|
||||
local_80.z = getGroundAngle(&(mGndChk), local_80.y + -0x4000);
|
||||
mDoMtx_trans(mDoMtx_stack_c::now, local_48.x, local_48.y, local_48.z);
|
||||
mDoMtx_ZXYrotM(mDoMtx_stack_c::now, local_80.x, local_80.y, local_80.z);
|
||||
JPASetRMtxTVecfromMtx(mDoMtx_stack_c::now, pJVar5->mGlobalRotation, (pJVar5->mGlobalTranslation));
|
||||
pJVar5->setSpread(0.45f);
|
||||
if (iVar4 == 4) {
|
||||
pJVar5->setRate(100.0f);
|
||||
} else {
|
||||
pJVar5->setRate(50.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
local_3c.set(current.pos.x, current.pos.y + 50.0f, current.pos.z);
|
||||
dKyw_squal_set(&local_3c, 1000, shape_angle.y, 280.0f, 1000.0f, 1.0f, 140.0f, 0.08f);
|
||||
} else {
|
||||
if (cLib_addCalc(&mVelocity, 0.0f, 0.5f, 1.5f, 0.3f) < 0.5f) {
|
||||
resetFootEffect();
|
||||
}
|
||||
seStartSwordCut(JA_SE_LK_SW_KAZEKIRI_S);
|
||||
}
|
||||
voiceStart(1);
|
||||
m3570 = 1;
|
||||
} else if (cLib_addCalc(&mVelocity, 0.0f, 0.5f, 1.5f, 0.3f) < 0.5f) {
|
||||
resetFootEffect();
|
||||
}
|
||||
|
||||
m35EC = frameCtrl.getFrame();
|
||||
@@ -381,7 +374,7 @@ BOOL daPy_lk_c::procFanGlide() {
|
||||
}
|
||||
}
|
||||
if (frameCtrl.getRate() < 0.01f && m3570 == 0 && m32E4.mpEmitter == NULL) {
|
||||
m32E4.makeEmitter(0x4c, mpCLModel->getAnmMtx(0xf), ¤t.pos, NULL);
|
||||
m32E4.makeEmitter(dPa_name::ID_COMMON_004C, mpCLModel->getAnmMtx(0xf), ¤t.pos, NULL);
|
||||
}
|
||||
|
||||
if (frameCtrl.getFrame() > 2.0f || m3570 != 0) {
|
||||
@@ -439,7 +432,7 @@ BOOL daPy_lk_c::procFanGlide() {
|
||||
gravity = daPy_HIO_fan_c0::m.field_0x3C;
|
||||
maxFallSpeed = daPy_HIO_fan_c0::m.field_0x38;
|
||||
}
|
||||
if (checkSetItemTrigger(dItem_DEKU_LEAF_e, 1) && (frameCtrl.getRate() < 0.01f) && m3570 == 0) {
|
||||
if (checkSetItemTrigger(dItem_DEKU_LEAF_e, 1) && frameCtrl.getRate() < 0.01f && m3570 == 0) {
|
||||
setSingleMoveAnime(
|
||||
ANM_USEFANB,
|
||||
daPy_HIO_fan_c0::m.field_0x20,
|
||||
|
||||
@@ -989,7 +989,7 @@ BOOL daPy_lk_c::draw() {
|
||||
mDoExt_modelUpdateDL(mpSuimenMunyaModel);
|
||||
}
|
||||
if (!r24 && !dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x20)) {
|
||||
if (checkSwordEquip() && !checkDemoSwordNoDraw(1)) {
|
||||
if (checkSwordEquip() && !checkDemoSwordNoDraw(TRUE)) {
|
||||
entryDLSetLight(mpEquippedSwordModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
|
||||
}
|
||||
}
|
||||
@@ -1003,7 +1003,7 @@ BOOL daPy_lk_c::draw() {
|
||||
if (mpBottleContentsModel != NULL) {
|
||||
updateDLSetLight(mpBottleContentsModel, 0);
|
||||
}
|
||||
if (mpEquipItemModel && !checkCaughtShapeHide() && !checkDemoSwordNoDraw(0)) {
|
||||
if (mpEquipItemModel && !checkCaughtShapeHide() && !checkDemoSwordNoDraw(FALSE)) {
|
||||
if (!checkBowItem(mEquipItem) || !checkPlayerGuard()) {
|
||||
if (mEquipItem == dItem_HOOKSHOT_e) {
|
||||
if (mActorKeepEquip.getActor()) {
|
||||
@@ -1013,7 +1013,7 @@ BOOL daPy_lk_c::draw() {
|
||||
}
|
||||
entryDLSetLight(mpEquipItemModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
|
||||
if (mpSwordModel1 != NULL) {
|
||||
if (checkChanceMode() || checkNoResetFlg1(daPyFlg1_UNK8000) || dComIfGs_getSelectEquip(0) == dItem_MASTER_SWORD_3_e) {
|
||||
if (checkChanceMode() || checkNoResetFlg1(daPyFlg1_UNK8000) || checkFinalMasterSwordEquip()) {
|
||||
updateDLSetLight(mpSwordModel1, 0);
|
||||
}
|
||||
}
|
||||
@@ -1752,7 +1752,7 @@ BOOL daPy_lk_c::setDamagePoint(f32 amount) {
|
||||
dComIfGp_setItemLifeCount(amount);
|
||||
if (amount < 0.0f) {
|
||||
offNoResetFlg1(daPyFlg1_UNK8000);
|
||||
if (dComIfGs_getSelectEquip(0) != dItem_MASTER_SWORD_3_e) {
|
||||
if (!checkFinalMasterSwordEquip()) {
|
||||
offNoResetFlg1(daPyFlg1_UNK200000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -399,7 +399,7 @@ BOOL daPy_lk_c::procShipSteer_init() {
|
||||
return false;
|
||||
} else {
|
||||
commonProcInit(daPyProc_SHIP_STEER_e);
|
||||
deleteEquipItem(1);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
@@ -461,7 +461,7 @@ BOOL daPy_lk_c::procShipPaddle() {
|
||||
BOOL daPy_lk_c::procShipScope_init(int param_0) {
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
commonProcInit(daPyProc_SHIP_SCOPE_e);
|
||||
deleteEquipItem(1);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
iVar1->m034D = 2;
|
||||
setShipRidePos(0);
|
||||
@@ -591,7 +591,7 @@ BOOL daPy_lk_c::procShipCannon_init() {
|
||||
} else {
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
commonProcInit(daPyProc_SHIP_CANNON_e);
|
||||
deleteEquipItem(1);
|
||||
deleteEquipItem(TRUE);
|
||||
gravity = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
iVar1->m034D = 9;
|
||||
|
||||
@@ -218,7 +218,7 @@ BOOL daPy_lk_c::checkSwimFallCheck() {
|
||||
BOOL daPy_lk_c::changeSwimOutProc() {
|
||||
cM3dGPla* pcVar1;
|
||||
|
||||
if (mAcch.GetGroundH() != -1e+09f && dComIfG_Bgsp()->ChkPolySafe(mAcch.m_gnd)) {
|
||||
if (mAcch.GetGroundH() != C_BG_MIN_HEIGHT && dComIfG_Bgsp()->ChkPolySafe(mAcch.m_gnd)) {
|
||||
pcVar1 = dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd);
|
||||
}
|
||||
else {
|
||||
|
||||
+616
-644
File diff suppressed because it is too large
Load Diff
@@ -384,7 +384,7 @@ BOOL daPy_lk_c::procWeaponThrow() {
|
||||
boko->m2BA = 1;
|
||||
boko->m2CA = uVar2;
|
||||
voiceStart(0);
|
||||
deleteEquipItem(0);
|
||||
deleteEquipItem(FALSE);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
+52
-47
@@ -769,7 +769,7 @@ void daShip_c::getMaxWaterY(cXyz* shipPos) {
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (m03F8 != -1e+09f) {
|
||||
if (m03F8 != C_BG_MIN_HEIGHT) {
|
||||
shipPos->y = m03F8;
|
||||
}
|
||||
else {
|
||||
@@ -3023,7 +3023,7 @@ void daShip_c::setEffectData(float param_1, short param_2) {
|
||||
/* 000085D8-00008688 .text setRoomInfo__8daShip_cFv */
|
||||
void daShip_c::setRoomInfo() {
|
||||
int roomId;
|
||||
if (mAcch.GetGroundH() != -1e+09f) {
|
||||
if (mAcch.GetGroundH() != C_BG_MIN_HEIGHT) {
|
||||
roomId = dComIfG_Bgsp()->GetRoomId(mAcch.m_gnd);
|
||||
tevStr.mEnvrIdxOverride = dComIfG_Bgsp()->GetPolyColor(mAcch.m_gnd);
|
||||
m03C4 = dComIfG_Bgsp()->GetGroundCode(mAcch.m_gnd);
|
||||
@@ -3094,13 +3094,16 @@ void daShip_c::setRopePos() {
|
||||
float fVar2;
|
||||
float fVar17;
|
||||
|
||||
MtxP pMVar5;
|
||||
cXyz* r4;
|
||||
int iVar11;
|
||||
short sVar14;
|
||||
int sVar12;
|
||||
JPABaseEmitter* emitter;
|
||||
cXyz* r3;
|
||||
cXyz* ropeSegments;
|
||||
cXyz* currentRopeSegment;
|
||||
short currentRopeSegmentIndex;
|
||||
JPABaseEmitter* emitter;
|
||||
MtxP pMVar5;
|
||||
|
||||
cXyz spF8;
|
||||
cXyz spEC;
|
||||
@@ -3177,7 +3180,7 @@ void daShip_c::setRopePos() {
|
||||
*ropeSegments += (*currentRopeSegment - spF8) * 0.05f;
|
||||
}
|
||||
if (mCurrentRopeSegmentIndex == 20 && checkStateFlg(daSFLG_UNK10000000_e)) {
|
||||
cXyz* r4 = mRopeLine.getPos(0);;
|
||||
r4 = mRopeLine.getPos(0);;
|
||||
mDoMtx_multVecZero(mpSalvageArmModel->getAnmMtx(1), &spE0);
|
||||
spE0 -= *r4;
|
||||
|
||||
@@ -3220,7 +3223,7 @@ void daShip_c::setRopePos() {
|
||||
currentRopeSegment->z - pMVar5[2][3]
|
||||
);
|
||||
sVar14 = 0x7fff;
|
||||
int iVar11 = 0x8000 - (m0398 * 2);
|
||||
iVar11 = 0x8000 - (m0398 * 2);
|
||||
sVar12 = iVar11 - (0x8000 - m039A) * ((float)m0398 / (float)m039A);
|
||||
}
|
||||
|
||||
@@ -3259,7 +3262,7 @@ void daShip_c::setRopePos() {
|
||||
if (fVar2 > currentRopeSegment->y) {
|
||||
ropeSegments = currentRopeSegment;
|
||||
|
||||
cXyz* r3 = currentRopeSegment;
|
||||
r3 = currentRopeSegment;
|
||||
for (int i = 0; i < mCurrentRopeSegmentIndex; i++, ropeSegments++) {
|
||||
if (ropeSegments->y <= fVar2) {
|
||||
r3 = ropeSegments;
|
||||
@@ -3485,30 +3488,12 @@ void daShip_c::setHeadAnm() {
|
||||
/* 00009B4C-0000B978 .text execute__8daShip_cFv */
|
||||
BOOL daShip_c::execute() {
|
||||
/* Nonmatching */
|
||||
float fVar2;
|
||||
float fVar3;
|
||||
float dVar27;
|
||||
|
||||
int iVar23;
|
||||
int sp18;
|
||||
s16 sp12;
|
||||
s16 sp10;
|
||||
short sVar16;
|
||||
short sVar5;
|
||||
int iVar6;
|
||||
J3DModel* mModel1;
|
||||
J3DModel* mModel2;
|
||||
short sVar26;
|
||||
dDemo_actor_c* demoActor;
|
||||
daPy_lk_c* link;
|
||||
MtxP jnt_mtx;
|
||||
|
||||
static cXyz sail_offset(0.5f, 155.0f, 50.0f);
|
||||
static cXyz sph_offset(-5.0f, 0.0f, 0.0f);
|
||||
static f32 cyl_offset[] = {100.0f, -20.0f, -100.0f};
|
||||
|
||||
fVar2 = mFwdVel;
|
||||
fVar3 = speedF;
|
||||
f32 prev_fwdvel = mFwdVel;
|
||||
f32 prev_speedF = speedF;
|
||||
m0351 = 0xFF;
|
||||
m0404 = 0.0f;
|
||||
m0428 = NULL;
|
||||
@@ -3602,6 +3587,7 @@ BOOL daShip_c::execute() {
|
||||
|
||||
mpGrid = NULL;
|
||||
mpGrid = (daGrid_c*)fopAcM_SearchByID(mGridID);
|
||||
dDemo_actor_c* demoActor;
|
||||
demoActor = dComIfGp_demo_getActor(demoActorID);
|
||||
|
||||
if (demoActor) {
|
||||
@@ -3614,6 +3600,7 @@ BOOL daShip_c::execute() {
|
||||
procCraneUp_init();
|
||||
}
|
||||
|
||||
short sVar26;
|
||||
sVar26 = m0366;
|
||||
|
||||
if (mAnmTransform) {
|
||||
@@ -3648,6 +3635,7 @@ BOOL daShip_c::execute() {
|
||||
if (!checkStateFlg(daSFLG_UNK1_e)) {
|
||||
if (m034C != 12 && m034C != 15 && m034C != 7 && m034C != 11 && m034C != 13 && m034C != 16 && !dComIfGp_event_runCheck()) {
|
||||
if (mTornadoActor) {
|
||||
short sVar16;
|
||||
sVar16 = shape_angle.y;
|
||||
cLib_addCalcAngleS(&shape_angle.y, m040C * 10430.378f + 20480.0f, 5, 0x2000, 0x200);
|
||||
setControllAngle(getAimControllAngle(sVar16));
|
||||
@@ -3655,7 +3643,9 @@ BOOL daShip_c::execute() {
|
||||
}
|
||||
else {
|
||||
if (mWhirlActor) {
|
||||
short sVar16;
|
||||
sVar16 = shape_angle.y;
|
||||
short sVar5;
|
||||
if (m0352) {
|
||||
sVar5 = m040C * 10430.378f + 20480.0f;
|
||||
}
|
||||
@@ -3668,7 +3658,9 @@ BOOL daShip_c::execute() {
|
||||
}
|
||||
}
|
||||
}
|
||||
short sVar16;
|
||||
sVar16 = -m0384;
|
||||
short sVar5;
|
||||
sVar5 = sVar16 * 0.05f;
|
||||
if (sVar5 == 0) {
|
||||
if (sVar16 > 0) {
|
||||
@@ -3715,7 +3707,7 @@ BOOL daShip_c::execute() {
|
||||
}
|
||||
}
|
||||
if (!dComIfGp_event_runCheck() && !checkStateFlg(daSFLG_UNK1_e) && checkForceMove()) {
|
||||
speedF = fVar3;
|
||||
speedF = prev_speedF;
|
||||
if (mTornadoActor) {
|
||||
fVar4 = m0404 * 40.0f + 30.0f;
|
||||
if (!dComIfGp_checkPlayerStatus0(0, daPyStts0_BOW_AIM_e) || !dComIfGp_checkCameraAttentionStatus(0, 0x20)) {
|
||||
@@ -3738,7 +3730,7 @@ BOOL daShip_c::execute() {
|
||||
if (checkStateFlg(daSFLG_UNK1_e)) {
|
||||
if (checkStateFlg(daSFLG_UNK2000000_e)) {
|
||||
cLib_chaseF(&speed.y, 20.0f, 1.0f - gravity);
|
||||
speedF = fVar3;
|
||||
speedF = prev_speedF;
|
||||
cLib_chaseF(&speedF, 55.0f, 3.0f);
|
||||
offStateFlg(daSFLG_UNK2000000_e);
|
||||
}
|
||||
@@ -3755,23 +3747,23 @@ BOOL daShip_c::execute() {
|
||||
if (checkForceMove() && !dComIfGp_event_runCheck()) {
|
||||
if (mTornadoActor) {
|
||||
if (!dComIfGp_checkPlayerStatus0(0, daPyStts0_BOW_AIM_e) || !dComIfGp_checkCameraAttentionStatus(0, 0x20)) {
|
||||
fVar3 = 25.0f;
|
||||
prev_speedF = 25.0f;
|
||||
}
|
||||
else {
|
||||
fVar3 = 5.0f;
|
||||
prev_speedF = 5.0f;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Bug? This room check assumes we're on the sea without checking?
|
||||
if (dComIfGs_getBombNum() == 0 && fopAcM_GetRoomNo(this) == dIsleRoom_OutsetIsland_e) {
|
||||
fVar3 = 10.0f;
|
||||
prev_speedF = 10.0f;
|
||||
}
|
||||
else {
|
||||
fVar3 = 0.6f;
|
||||
prev_speedF = 0.6f;
|
||||
}
|
||||
}
|
||||
|
||||
cLib_chaseF(&m0400, 0.0f, fVar3);
|
||||
cLib_chaseF(&m0400, 0.0f, prev_speedF);
|
||||
|
||||
m0408 = std::fabsf(speedF) / m0400;
|
||||
|
||||
@@ -3789,17 +3781,18 @@ BOOL daShip_c::execute() {
|
||||
r23 = TRUE;
|
||||
}
|
||||
else {
|
||||
fVar3 = current.pos.y;
|
||||
prev_speedF = current.pos.y;
|
||||
fopAcM_posMoveF(this, (cXyz *)&mStts);
|
||||
current.pos.y = fVar3;
|
||||
current.pos.y = prev_speedF;
|
||||
}
|
||||
if (r23) {
|
||||
cXyz sp114(current.pos - old.pos);
|
||||
float dVar27;
|
||||
dVar27 = sp114.absXZ();
|
||||
if (dVar27 > 1.0f) {
|
||||
fVar3 = speedF / dVar27;
|
||||
current.pos.x = old.pos.x + sp114.x * fVar3;
|
||||
current.pos.z = old.pos.z + sp114.z * fVar3;
|
||||
prev_speedF = speedF / dVar27;
|
||||
current.pos.x = old.pos.x + sp114.x * prev_speedF;
|
||||
current.pos.z = old.pos.z + sp114.z * prev_speedF;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3814,7 +3807,8 @@ BOOL daShip_c::execute() {
|
||||
}
|
||||
else {
|
||||
cXyz sp108;
|
||||
if (mAcch.GetGroundH() != -1e+09f && dPath_GetPolyRoomPathVec(mAcch.m_gnd, &sp108, &sp18)) {
|
||||
int sp18;
|
||||
if (mAcch.GetGroundH() != C_BG_MIN_HEIGHT && dPath_GetPolyRoomPathVec(mAcch.m_gnd, &sp108, &sp18)) {
|
||||
sp108.normalizeZP();
|
||||
sp108 *= sp18 >> 1;
|
||||
cLib_addCalcPosXZ(&m1044, sp108, 0.5f, 5.0f, 1.0f);
|
||||
@@ -3875,6 +3869,8 @@ BOOL daShip_c::execute() {
|
||||
mTrack.mBaseY = m03F4;
|
||||
mTrack.mMinY = m03F8;
|
||||
|
||||
s16 sp12;
|
||||
s16 sp10;
|
||||
if (!checkStateFlg(daSFLG_UNK1_e)) {
|
||||
setWaveAngle(&sp12, &sp10);
|
||||
}
|
||||
@@ -3908,6 +3904,8 @@ BOOL daShip_c::execute() {
|
||||
|
||||
mDoMtx_ZXYrotM(mDoMtx_stack_c::get(), shape_angle.x, shape_angle.y, shape_angle.z);
|
||||
|
||||
J3DModel* mModel1;
|
||||
J3DModel* mModel2;
|
||||
mModel1 = m0298->getModel();
|
||||
mModel2 = m029C->getModel();
|
||||
|
||||
@@ -4017,7 +4015,9 @@ BOOL daShip_c::execute() {
|
||||
}
|
||||
}
|
||||
|
||||
int iVar23;
|
||||
iVar23 = (s16)(m0366 - sVar26);
|
||||
int iVar6;
|
||||
iVar6 = abs(iVar23);
|
||||
iVar23 *= m0366;
|
||||
|
||||
@@ -4041,11 +4041,13 @@ BOOL daShip_c::execute() {
|
||||
|
||||
// This should probably use the mDoMtx_multVecZero inline, but it's not getting inlined
|
||||
// mDoMtx_multVecZero(mModel2->getAnmMtx(16), &eyePos);
|
||||
MtxP jnt_mtx;
|
||||
jnt_mtx = mModel2->getAnmMtx(16);
|
||||
eyePos.x = jnt_mtx[0][3];
|
||||
eyePos.y = jnt_mtx[1][3];
|
||||
eyePos.z = jnt_mtx[2][3];
|
||||
|
||||
daPy_lk_c* link;
|
||||
link = daPy_getPlayerLinkActorClass();
|
||||
cXyz spCC;
|
||||
spCC = link->current.pos - current.pos;
|
||||
@@ -4096,6 +4098,8 @@ BOOL daShip_c::execute() {
|
||||
}
|
||||
}
|
||||
|
||||
short sVar16;
|
||||
short sVar5;
|
||||
if (bVar21) {
|
||||
sVar16 = cM_atan2s(-spC0.y, spC0.absXZ()) - shape_angle.x;
|
||||
|
||||
@@ -4157,6 +4161,7 @@ BOOL daShip_c::execute() {
|
||||
attention_info.flags &= ~fopAc_Attn_ACTION_SHIP_e;
|
||||
}
|
||||
if (m034C != 8 && dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
||||
BOOL r24;
|
||||
r24 = TRUE;
|
||||
if (dComIfGs_isEventBit(0x1E40) && !dComIfGs_isEventBit(0x3840)) {
|
||||
mNextMessageNo = 0x168c;
|
||||
@@ -4186,16 +4191,16 @@ BOOL daShip_c::execute() {
|
||||
|
||||
m03DC = m0366 * 0.00012207031f;
|
||||
|
||||
fVar3 = (speedF * 0.1f) / 55.0f;
|
||||
prev_speedF = (speedF * 0.1f) / 55.0f;
|
||||
|
||||
if (fVar3 > 0.05f) {
|
||||
fVar3 = 0.05f;
|
||||
if (prev_speedF > 0.05f) {
|
||||
prev_speedF = 0.05f;
|
||||
}
|
||||
else if (fVar3 < -0.05f) {
|
||||
fVar3 = -0.05;
|
||||
else if (prev_speedF < -0.05f) {
|
||||
prev_speedF = -0.05;
|
||||
}
|
||||
|
||||
m03D4 += fVar3;
|
||||
m03D4 += prev_speedF;
|
||||
|
||||
if (m03D4 > 1.0f) {
|
||||
m03D4 -= 1.0f;
|
||||
@@ -4215,7 +4220,7 @@ BOOL daShip_c::execute() {
|
||||
|
||||
mFwdVel += (m1044.x * cM_ssin(current.angle.y) + m1044.z * cM_scos(current.angle.y));
|
||||
|
||||
if (std::fabsf(mFwdVel) <= 0.01f || fVar2 * mFwdVel < 0.0f || mFwdVel * speedF < 0.0f) {
|
||||
if (std::fabsf(mFwdVel) <= 0.01f || prev_fwdvel * mFwdVel < 0.0f || mFwdVel * speedF < 0.0f) {
|
||||
mWaveL.mState = 1;
|
||||
mWaveR.mState = 1;
|
||||
mSplash.mState = 1;
|
||||
|
||||
Reference in New Issue
Block a user