daAlink bottle / sumou done (#1996)

* link_bottle done

* link_sumou done

* remove asm
This commit is contained in:
TakaRikka
2023-11-29 19:27:08 +02:00
committed by GitHub
parent 334a1111d5
commit a6d621e0c3
19 changed files with 1541 additions and 73 deletions
+3 -3
View File
@@ -5814,8 +5814,8 @@ SECTION_RODATA static Vec const hookRoot = {
COMPILER_STRIP_GATE(0x80391A08, &hookRoot);
/* 80391A14-80391A20 01E074 000C+00 1/1 0/0 0/0 .rodata bottleTop$32160 */
SECTION_RODATA static u8 const bottleTop[12] = {
0x00, 0x00, 0x00, 0x00, 0x41, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
SECTION_RODATA static Vec const bottleTop = {
0.0f, 25.0f, 0.0f,
};
COMPILER_STRIP_GATE(0x80391A14, &bottleTop);
@@ -16253,7 +16253,7 @@ int daAlink_c::cancelUpperItemReadyAnime(int param_0) {
seStartSystem(0x6F);
if (mEquipItem == IRONBALL) {
field_0x3018 = 8;
mItemVar0.field_0x3018 = 8;
procIronBallReturnInit();
} else {
resetUpperAnime(UPPER_2, 3.0f);
+7 -7
View File
@@ -110,7 +110,7 @@ BOOL daAlink_c::checkBoomerangCarry(fopAc_ac_c* i_grabActor) {
if (i_checkNoResetFlg0(FLG0_UNK_20) && !checkEventRun() && !i_checkWolf() &&
i_checkModeFlg(0x10000000) &&
(checkHorseNoUpperAnime() || checkHorseTurnAnime() || checkBoomerangThrowAnime())) {
deleteEquipItem(0, 0);
deleteEquipItem(FALSE, FALSE);
seStartOnlyReverb(JA_SE_LK_BOOM_CATCH);
i_offNoResetFlg0(FLG0_UNK_20);
@@ -156,7 +156,7 @@ void daAlink_c::setBoomerangReadyQuake() {
dComIfGp_getVibration().StartQuake(1, 1, cXyz(tmp_0, lit_6040, tmp_0));
i_onNoResetFlg3(FLG3_UNK_4);
field_0x3018 = daAlinkHIO_boom_c0::m.mChargeTime;
mItemVar0.field_0x3018 = daAlinkHIO_boom_c0::m.mChargeTime;
}
/* 800E055C-800E05E8 0DAE9C 008C+00 2/2 0/0 0/0 .text setBoomerangReadyAnime__9daAlink_cFv */
@@ -283,10 +283,10 @@ int daAlink_c::returnBoomerang(int param_0) {
/* 800E0A9C-800E0B58 0DB3DC 00BC+00 2/2 0/0 0/0 .text checkUpperItemActionBoomerang__9daAlink_cFv
*/
int daAlink_c::checkUpperItemActionBoomerang() {
if (field_0x3018 != 0) {
field_0x3018--;
if (mItemVar0.field_0x3018 != 0) {
mItemVar0.field_0x3018--;
if (field_0x3018 == 0) {
if (mItemVar0.field_0x3018 == 0) {
cancelItemUseQuake(0);
}
}
@@ -367,7 +367,7 @@ int daAlink_c::checkBoomerangCatchAction() {
i_offNoResetFlg0(FLG0_UNK_20);
}
return 0;
return FALSE;
}
/* 800E0E64-800E0F10 0DB7A4 00AC+00 3/3 0/0 0/0 .text setBoomerangSight__9daAlink_cFv */
@@ -506,4 +506,4 @@ int daAlink_c::procBoomerangCatch() {
}
return 1;
}
}
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -125,7 +125,7 @@ void daAlink_c::makeArrow() {
mItemAcKeep.setData(arrow_actor);
}
field_0x3018 = 0;
mItemVar0.field_0x3018 = 0;
}
/* 800DEAE4-800DEB8C 0D9424 00A8+00 3/3 0/0 0/0 .text deleteArrow__9daAlink_cFv */
+1 -1
View File
@@ -85,7 +85,7 @@ BOOL daAlink_c::checkFishingRodAndLureItem() const {
void daAlink_c::initFishingRodHand() {
field_0x2f94 = 0x65;
field_0x2f95 = 0x65;
field_0x3018 = 1;
mItemVar0.field_0x3018 = 1;
if (mEquipItem == JEWEL_WORM_ROD || mEquipItem == WORM_ROD) {
mItemMode = 0x74;
+2 -2
View File
@@ -196,8 +196,8 @@ int daAlink_c::returnCopyRod() {
/* 800E1ADC-800E1BB4 0DC41C 00D8+00 2/2 0/0 0/0 .text checkUpperItemActionCopyRod__9daAlink_cFv */
BOOL daAlink_c::checkUpperItemActionCopyRod() {
if (field_0x3018 != 0) {
field_0x3018--;
if (mItemVar0.field_0x3018 != 0) {
mItemVar0.field_0x3018--;
}
if (checkReadyItem() && !itemButton() && checkCopyRodReadyAnime()) {
+1 -1
View File
@@ -2961,7 +2961,7 @@ int daAlink_c::procCoDead() {
}
if (!i_checkNoResetFlg2(FLG2_UNK_40000)) {
mProcVar3.field_0x300e.x++;
mProcVar3.field_0x300e++;
if (mProcVar3.field_0x300e.x == 2) {
dCam_getBody()->StartEventCamera(9, fopAcM_GetID(this), 0);
} else if (mProcVar3.field_0x300e.x > 10) {
+5 -5
View File
@@ -435,7 +435,7 @@ void daAlink_c::initHookshotReady() {
dComIfGp_getVibration().StartShock(1, 1, cXyz(tmp_0, lit_6040, tmp_0));
field_0x3018 = 3;
mItemVar0.field_0x3018 = 3;
field_0x3494 = lit_6041;
}
@@ -462,7 +462,7 @@ int daAlink_c::checkUpperItemActionHookshot() {
}
if (mItemMode == HS_MODE_READY_e) {
if (!itemButton() && field_0x3018 == 0 && checkReadyItem()) {
if (!itemButton() && mItemVar0.field_0x3018 == 0 && checkReadyItem()) {
mItemMode = 2;
field_0x3026 = 0;
field_0x3494 = lit_6041;
@@ -543,8 +543,8 @@ int daAlink_c::checkUpperItemActionHookshot() {
return procHookshotFlyInit();
}
if (field_0x3018 > 0) {
field_0x3018--;
if (mItemVar0.field_0x3018 > 0) {
mItemVar0.field_0x3018--;
}
return cancelUpperItemReadyAnime(0);
@@ -803,7 +803,7 @@ void daAlink_c::setHookshotPos() {
if (checkHookshotWait() || mItemMode == 2) {
csXyz* var_r28;
if (mProcID == PROC_HOOKSHOT_WALL_SHOOT || mProcID == PROC_HOOKSHOT_ROOF_SHOOT) {
var_r28 = &mProcVar3.field_0x300e;
var_r28 = &mProcVar3.field_0x300e.x;
} else {
var_r28 = &mBodyAngle;
}
+22 -22
View File
@@ -25,38 +25,38 @@ s16 daAlink_c::getIronBallBgHit() const {
/* 80112474-801124B4 10CDB4 0040+00 0/0 2/2 1/1 .text checkIronBallThrowMode__9daAlink_cCFv */
bool daAlink_c::checkIronBallThrowMode() const {
return mEquipItem == IRONBALL &&
(field_0x3018 == 4 || field_0x3018 == 5 || field_0x3018 == 6 || field_0x3018 == 3);
(mItemVar0.field_0x3018 == 4 || mItemVar0.field_0x3018 == 5 || mItemVar0.field_0x3018 == 6 || mItemVar0.field_0x3018 == 3);
}
/* 801124B4-801124FC 10CDF4 0048+00 0/0 1/1 1/1 .text checkIronBallThrowReturnMode__9daAlink_cCFv
*/
bool daAlink_c::checkIronBallThrowReturnMode() const {
return mEquipItem == IRONBALL && (field_0x3018 == 4 || field_0x3018 == 5 || field_0x3018 == 6 ||
field_0x3018 == 7 || field_0x3018 == 3);
return mEquipItem == IRONBALL && (mItemVar0.field_0x3018 == 4 || mItemVar0.field_0x3018 == 5 || mItemVar0.field_0x3018 == 6 ||
mItemVar0.field_0x3018 == 7 || mItemVar0.field_0x3018 == 3);
}
/* 801124FC-80112524 10CE3C 0028+00 1/0 0/0 0/0 .text checkIronBallReturn__9daAlink_cCFv
*/
bool daAlink_c::checkIronBallReturn() const {
return mEquipItem == IRONBALL && field_0x3018 == 7;
return mEquipItem == IRONBALL && mItemVar0.field_0x3018 == 7;
}
/* 80112524-80112568 10CE64 0044+00 1/0 0/0 0/0 .text checkIronBallGroundStop__9daAlink_cCFv */
bool daAlink_c::checkIronBallGroundStop() const {
return mEquipItem == IRONBALL && field_0x3018 != 0 && field_0x3018 != 8 && field_0x301e == 0 &&
return mEquipItem == IRONBALL && mItemVar0.field_0x3018 != 0 && mItemVar0.field_0x3018 != 8 && field_0x301e == 0 &&
field_0x301e < 10;
}
/* 80112568-80112628 10CEA8 00C0+00 5/5 0/0 0/0 .text setIronBallWaitUpperAnime__9daAlink_cFi */
void daAlink_c::setIronBallWaitUpperAnime(int param_0) {
if (!checkIronBallWaitAnime() && !checkIronBallPreSwingAnime() &&
(field_0x3018 == 0 || field_0x3018 == 8) && (param_0 || checkNoUpperAnime())) {
(mItemVar0.field_0x3018 == 0 || mItemVar0.field_0x3018 == 8) && (param_0 || checkNoUpperAnime())) {
setUpperAnimeBaseSpeed(0x19C, daAlinkHIO_ironBall_c0::m.mWaitAnmSpeed,
daAlinkHIO_basic_c0::m.mAnmBlendFactor);
setFacePriBck(0xE8);
field_0x2f96 = 254;
field_0x2f97 = 5;
field_0x3018 = 0;
mItemVar0.field_0x3018 = 0;
}
}
@@ -68,8 +68,8 @@ void daAlink_c::checkIronBallDelete() {
return;
}
if (field_0x3018 == 1 || field_0x3018 == 2 || field_0x3018 == 3 ||
((field_0x3018 == 0 || field_0x3018 == 8) && !checkIronBallWaitAnime() &&
if (mItemVar0.field_0x3018 == 1 || mItemVar0.field_0x3018 == 2 || mItemVar0.field_0x3018 == 3 ||
((mItemVar0.field_0x3018 == 0 || mItemVar0.field_0x3018 == 8) && !checkIronBallWaitAnime() &&
!checkEquipAnime() &&
(!i_checkModeFlg(4) || i_checkModeFlg(0x70C52) || !mLinkAcch.ChkGroundHit()))) {
deleteEquipItem(1, 0);
@@ -80,8 +80,8 @@ void daAlink_c::checkIronBallDelete() {
void daAlink_c::setIronBallReturn(int param_0) {
if (param_0 && field_0x301e != 0) {
field_0x301e--;
} else if (field_0x3018 != 7) {
field_0x3018 = 7;
} else if (mItemVar0.field_0x3018 != 7) {
mItemVar0.field_0x3018 = 7;
field_0x301e = 0;
seStartOnlyReverb(Z2SE_AL_IB_PULLBACK);
}
@@ -214,13 +214,13 @@ BOOL daAlink_c::checkUpperItemActionIronBall() {
u16 upperId = getMainBckData(ANM_IRONBALL_TURN)->m_upperID;
setUpperAnimeBaseSpeed(upperId, daAlinkHIO_ironBall_c0::m.mTurnAnmSpeed, daAlinkHIO_ironBall_c0::m.mTurnInterpolation);
field_0x3018 = 2;
mItemVar0.field_0x3018 = 2;
seStartOnlyReverb(Z2SE_AL_IB_SWING);
return 1;
}
if (frameCtrl->getFrame() > lit_8781) {
field_0x3018 = 1;
mItemVar0.field_0x3018 = 1;
}
} else {
daPy_frameCtrl_c* frameCtrl = &mUpperFrameCtrl[2];
@@ -283,7 +283,7 @@ int daAlink_c::procIronBallSubject() {
setShapeAngleToAtnActor(0);
if (!checkNextAction(0) && itemButton() && field_0x3018 == 2) {
if (!checkNextAction(0) && itemButton() && mItemVar0.field_0x3018 == 2) {
setBodyAngleToCamera();
}
@@ -357,7 +357,7 @@ int daAlink_c::procIronBallThrowInit() {
mNormalSpeed = FLOAT_LABEL(lit_6108);
current.angle.y = shape_angle.y;
mProcVar2.field_0x300c = 0;
field_0x3018 = 3;
mItemVar0.field_0x3018 = 3;
field_0x3024 = 0;
field_0x3026 = 0;
@@ -381,7 +381,7 @@ asm int daAlink_c::procIronBallThrow() {
int daAlink_c::procIronBallReturnInit() {
commonProcInit(PROC_IRON_BALL_RETURN);
if (field_0x3018 == 8) {
if (mItemVar0.field_0x3018 == 8) {
mProcVar2.field_0x300c = 1;
setSingleAnimeParam(ANM_IRONBALL_CATCH, &daAlinkHIO_ironBall_c0::m.mCatchAnm);
field_0x2f99 = 12;
@@ -405,7 +405,7 @@ int daAlink_c::procIronBallReturn() {
field_0x2f99 = 4;
if (field_0x3018 == 8 && mProcVar2.field_0x300c == 0) {
if (mItemVar0.field_0x3018 == 8 && mProcVar2.field_0x300c == 0) {
mProcVar2.field_0x300c = 1;
setSingleAnimeParam(ANM_IRONBALL_CATCH, &daAlinkHIO_ironBall_c0::m.mCatchAnm);
field_0x2f99 = 12;
@@ -414,17 +414,17 @@ int daAlink_c::procIronBallReturn() {
f32 tmp_0 = FLOAT_LABEL(lit_6108);
dComIfGp_getVibration().StartShock(3, 1, cXyz(tmp_0, lit_6040, tmp_0));
} else if (frameCtrl->checkAnmEnd()) {
if (field_0x3018 == 8) {
field_0x3018 = 0;
if (mItemVar0.field_0x3018 == 8) {
mItemVar0.field_0x3018 = 0;
setIronBallWaitUpperAnime(1);
checkNextAction(0);
}
} else if (field_0x3018 == 8 && frameCtrl->getFrame() > daAlinkHIO_ironBall_c0::m.mCatchAnm.mCheckFrame) {
field_0x3018 = 0;
} else if (mItemVar0.field_0x3018 == 8 && frameCtrl->getFrame() > daAlinkHIO_ironBall_c0::m.mCatchAnm.mCheckFrame) {
mItemVar0.field_0x3018 = 0;
setIronBallWaitUpperAnime(1);
if (!checkNextAction(1)) {
field_0x3018 = 8;
mItemVar0.field_0x3018 = 8;
resetUpperAnime(UPPER_2, FLOAT_LABEL(lit_6108));
}
}
+1 -1
View File
@@ -3711,7 +3711,7 @@ int daAlink_c::draw() {
if (mClothesChangeWaitTimer != 0) {
if (mProcID == PROC_METAMORPHOSE) {
if (mProcVar3.field_0x300e > 0) {
if (mProcVar3.field_0x300e.x > 0) {
mTevStr.mFogColor.r = 255;
} else {
mTevStr.mFogColor.r = -255;
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -809,7 +809,7 @@ int daAlink_c::procSwimHookshotMoveInit() {
field_0x3198 = -1;
field_0x2f98 = 5;
if (field_0x3018 == 0) {
if (mItemVar0.field_0x3018 == 0) {
setSwimMoveAnime();
}
@@ -842,7 +842,7 @@ int daAlink_c::procSwimHookshotMove() {
setDoStatus(0x12);
}
if (field_0x3018 == 0) {
if (mItemVar0.field_0x3018 == 0) {
setSpeedAndAngleSwim();
setSwimMoveAnime();
}
+2 -2
View File
@@ -5496,7 +5496,7 @@ void daAlink_c::setWolfLockDomeModel() {
mDoExt_setCurrentHeap(prev_heap);
mEquipItem = 0x109;
field_0x3018 = 0;
mItemVar0.field_0x3018 = 0;
mSearchBallScale = daAlinkHIO_wlAtLock_c0::m.field_0x28.mSpeed;
dComIfGp_setPlayerStatus1(0, 0x800000);
@@ -5894,7 +5894,7 @@ int daAlink_c::procWolfRollAttackMove() {
cLib_chaseF(&mSearchBallScale, daAlinkHIO_wlAtLock_c0::m.field_0x28.mStartFrame,
daAlinkHIO_wlAtLock_c0::m.field_0x28.mInterpolation))
{
field_0x3018 = 1;
mItemVar0.field_0x3018 = 1;
}
if (mWolfLockNum < 10) {