mirror of
https://github.com/encounter/tp.git
synced 2026-07-11 06:18:46 -07:00
d_a_andsw2 OK, d_a_player / d_a_alink cleanup, d_a_alink_hook mostly done (#1957)
* d_a_andsw2 OK * d_a_player cleanup, d_a_alink cleanup and work on d_a_alink_hook * remove asm * d_kankyo_wether almost done * some work on d_kankyo_rain
This commit is contained in:
+8
-2020
File diff suppressed because it is too large
Load Diff
@@ -1,3 +1,8 @@
|
||||
/**
|
||||
* d_a_alink_HIO.inc
|
||||
* Player HostIO interface handling
|
||||
*/
|
||||
|
||||
/* 80140B88-80140B98 13B4C8 0010+00 1/1 0/0 0/0 .text __ct__12daAlinkHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/**
|
||||
* d_a_alink_bomb.inc
|
||||
* Player Bomb action handling
|
||||
*/
|
||||
|
||||
/* 800E3760-800E3770 0DE0A0 0010+00 0/0 0/0 7/7 .text getBombExplodeTime__9daAlink_cCFv
|
||||
*/
|
||||
s16 daAlink_c::getBombExplodeTime() const {
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/**
|
||||
* d_a_alink_boom.inc
|
||||
* Player Boomerang action handling
|
||||
*/
|
||||
|
||||
#include "rel/d/a/d_a_boomerang/d_a_boomerang.h"
|
||||
|
||||
/* 800DFFE0-800E0010 0DA920 0030+00 0/0 0/0 1/1 .text checkBoomerangLockAccept__9daAlink_cFv */
|
||||
@@ -374,9 +379,9 @@ int daAlink_c::checkBoomerangCatchAction() {
|
||||
/* 800E0E64-800E0F10 0DB7A4 00AC+00 3/3 0/0 0/0 .text setBoomerangSight__9daAlink_cFv */
|
||||
void daAlink_c::setBoomerangSight() {
|
||||
if (mItemAcKeep.getActor() && !checkBoomerangThrowAnime()) {
|
||||
BOOL check_line = checkSightLine(getBoomLockMax(), &field_0x37e0);
|
||||
BOOL check_line = checkSightLine(getBoomLockMax(), &mHeldItemRootPos);
|
||||
|
||||
mSight.setPos(&field_0x37e0);
|
||||
mSight.setPos(&mHeldItemRootPos);
|
||||
mSight.onDrawFlg();
|
||||
|
||||
daBoomerang_c* boomerang = (daBoomerang_c*)mItemAcKeep.getActor();
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/**
|
||||
* d_a_alink_bottle.inc
|
||||
* Player Bottle action handling
|
||||
*/
|
||||
|
||||
#include "d/d_insect.h"
|
||||
|
||||
/* 8010E48C-8010E52C 108DCC 00A0+00 1/1 0/0 0/0 .text bottleModelCallBack__9daAlink_cFv
|
||||
@@ -119,16 +124,16 @@ int daAlink_c::procBottleDrinkInit(u16 param_0) {
|
||||
u32 id = fopAcM_GetID(this);
|
||||
dCam_getBody()->StartEventCamera(0x12, id, "Type", 1, &field_0x3194, 0);
|
||||
field_0x300c = 0;
|
||||
field_0x300e = 0;
|
||||
field_0x300e.x = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 8010F698-8010F6F4 109FD8 005C+00 1/0 0/0 0/0 .text procBottleDrink__9daAlink_cFv */
|
||||
int daAlink_c::procBottleDrink() {
|
||||
if (field_0x300e != 0) {
|
||||
if (field_0x300e.x != 0) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
} else {
|
||||
field_0x300e = commonBottleDrink(0);
|
||||
field_0x300e.x = commonBottleDrink(0);
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -170,7 +175,7 @@ int daAlink_c::procBottleOpenInit(u16 param_0) {
|
||||
}
|
||||
}
|
||||
|
||||
field_0x300e = 0;
|
||||
field_0x300e.x = 0;
|
||||
|
||||
u32 id = fopAcM_GetID(this);
|
||||
dCam_getBody()->StartEventCamera(0x12, id, "Type", 1, &field_0x3194, 0);
|
||||
@@ -181,7 +186,7 @@ int daAlink_c::procBottleOpenInit(u16 param_0) {
|
||||
if (param_0 == 0x67) {
|
||||
setCylAtParam(0x200, 0, 0, 0, 0, 30.0f, 30.0f);
|
||||
}
|
||||
field_0x3010 = 0;
|
||||
field_0x300e.y = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/**
|
||||
* d_a_alink_bow.inc
|
||||
* Player Bow and Arrow action handling
|
||||
*/
|
||||
|
||||
#include "rel/d/a/d_a_arrow/d_a_arrow.h"
|
||||
|
||||
/* 800DE64C-800DE740 0D8F8C 00F4+00 1/1 0/0 2/2 .text getArrowFlyData__9daAlink_cCFPfPfi
|
||||
@@ -58,7 +63,7 @@ void daAlink_c::setSlingModel() {
|
||||
|
||||
J3DModelData* model_data = loadAramBmd(0x319, 0x2C00);
|
||||
mHeldItemModel = initModel(model_data, 0);
|
||||
field_0x730.init(bck, 0, 2, lit_6040, 0, -1, false);
|
||||
mItemBck.init(bck, 0, 2, lit_6040, 0, -1, false);
|
||||
|
||||
mDoExt_setCurrentHeap(heap);
|
||||
field_0x2f95 = 5;
|
||||
@@ -85,11 +90,11 @@ cXyz* daAlink_c::checkBowCameraArrowPosP(s16* param_0, s16* param_1) {
|
||||
mDoMtx_stack_c::transS(field_0x3834);
|
||||
concatMagneBootMtx();
|
||||
mDoMtx_stack_c::ZXYrotM(mBodyAngle.x, var_28, 0);
|
||||
mDoMtx_stack_c::multVec(&localPos, &field_0x37e0);
|
||||
mDoMtx_stack_c::multVec(&localPos, &mHeldItemRootPos);
|
||||
|
||||
*param_0 = mBodyAngle.x;
|
||||
*param_1 = var_28;
|
||||
return &field_0x37e0;
|
||||
return &mHeldItemRootPos;
|
||||
}
|
||||
|
||||
/* 800DE990-800DE9B8 0D92D0 0028+00 1/0 0/0 0/0 .text checkArrowChargeEnd__9daAlink_cCFv
|
||||
@@ -275,10 +280,10 @@ void daAlink_c::setBowModel() {
|
||||
JKRHeap* old_heap = setItemHeap();
|
||||
|
||||
mHeldItemModel = initModel(loadAramBmd(0x314, 0x4C00), 0);
|
||||
field_0x730.init(bck, FALSE, 2, 1.0f, 0, -1, false);
|
||||
mItemBck.init(bck, FALSE, 2, 1.0f, 0, -1, false);
|
||||
|
||||
mDoExt_setCurrentHeap(old_heap);
|
||||
field_0x33dc = field_0x730.getBckAnm()->getFrameMax() - 0.001f;
|
||||
field_0x33dc = mItemBck.getBckAnm()->getFrameMax() - 0.001f;
|
||||
field_0x2f95 = 5;
|
||||
field_0x2f94 = 0x67;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/**
|
||||
* d_a_alink_canoe.inc
|
||||
* Player Canoe riding handling
|
||||
*/
|
||||
|
||||
#include "rel/d/a/d_a_canoe/d_a_canoe.h"
|
||||
|
||||
/* 800F3BB0-800F3BDC 0EE4F0 002C+00 1/1 0/0 2/2 .text getCanoeMaxSpeed__9daAlink_cCFv */
|
||||
@@ -122,11 +127,11 @@ BOOL daAlink_c::checkCanoeFishingRodGrabOrPut() const {
|
||||
|
||||
/* 800F3FC4-800F4008 0EE904 0044+00 2/2 0/0 0/0 .text initCanoeRide__9daAlink_cFv */
|
||||
void daAlink_c::initCanoeRide() {
|
||||
field_0x3012 = 1;
|
||||
field_0x300e.z = 1;
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
field_0x384c = (cXyz*)&l_canoeBaseAnime;
|
||||
mRideStatus = 3;
|
||||
field_0x3010 = 0;
|
||||
field_0x300e.y = 0;
|
||||
}
|
||||
|
||||
/* 800F4008-800F40E4 0EE948 00DC+00 2/2 0/0 0/0 .text checkCanoeJumpRide__9daAlink_cFv */
|
||||
@@ -141,7 +146,7 @@ BOOL daAlink_c::checkCanoeJumpRide() {
|
||||
|
||||
if (speed.y < FLOAT_LABEL(lit_6108) && canoe != NULL && fopAcM_GetName(canoe) == PROC_CANOE &&
|
||||
canoe->checkJumpRideFlg() && !checkDeadHP() &&
|
||||
(mProcID != PROC_FALL || field_0x3010 != 0)) {
|
||||
(mProcID != PROC_FALL || field_0x300e.y != 0)) {
|
||||
return procCanoeJumpRideInit(canoe);
|
||||
}
|
||||
|
||||
@@ -274,7 +279,7 @@ int daAlink_c::procCanoeRideInit() {
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
initCanoeRide();
|
||||
field_0x300e = 0x80;
|
||||
field_0x300e.x = 0x80;
|
||||
swimOutAfter(1);
|
||||
return 1;
|
||||
}
|
||||
@@ -292,12 +297,12 @@ int daAlink_c::procCanoeRide() {
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
procCanoeWaitInit(1);
|
||||
} else if (frameCtrl->getFrame() < lit_7710) {
|
||||
field_0x300e += 0x180;
|
||||
field_0x300e.x += 0x180;
|
||||
|
||||
if (field_0x3008 == 0) {
|
||||
canoe->incShapeAngleZ(-field_0x300e);
|
||||
canoe->incShapeAngleZ(-field_0x300e.x);
|
||||
} else {
|
||||
canoe->incShapeAngleZ(field_0x300e);
|
||||
canoe->incShapeAngleZ(field_0x300e.x);
|
||||
}
|
||||
canoe->incShapeOffsetY(lit_21021);
|
||||
}
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/**
|
||||
* d_a_alink_copyrod.inc
|
||||
* Player Dominion Rod action handling
|
||||
*/
|
||||
|
||||
#include "rel/d/a/d_a_cstatue/d_a_cstatue.h"
|
||||
|
||||
/* 800E12E0-800E1310 0DBC20 0030+00 1/1 0/0 0/0 .text checkLv6BossRoom__9daAlink_cFv */
|
||||
@@ -68,7 +73,7 @@ BOOL daAlink_c::checkForestOldCentury() {
|
||||
/* 800E145C-800E1530 0DBD9C 00D4+00 1/0 0/0 0/0 .text checkCopyRodTopUse__9daAlink_cFv */
|
||||
BOOL daAlink_c::checkCopyRodTopUse() {
|
||||
// Event flag 0x2580: Dominion Rod power restored
|
||||
return (i_dComIfGs_isEventBit(0x2580) && !(mProcID == PROC_UNEQUIP && field_0x300e != 0)) ||
|
||||
return (i_dComIfGs_isEventBit(0x2580) && !(mProcID == PROC_UNEQUIP && field_0x300e.x != 0)) ||
|
||||
i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x15 ||
|
||||
checkForestOldCentury();
|
||||
}
|
||||
@@ -378,7 +383,7 @@ int daAlink_c::procCopyRodSwingInit() {
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x300c = 1;
|
||||
field_0x300e = 0;
|
||||
field_0x300e.x = 0;
|
||||
|
||||
voiceStart(Z2SE_AL_V_ATTACK_S);
|
||||
mAtCps[0].SetR(lit_11442);
|
||||
@@ -400,16 +405,16 @@ int daAlink_c::procCopyRodSwing() {
|
||||
setCopyRodControllAnime();
|
||||
}
|
||||
} else if (frameCtrl->getFrame() >= field_0x3478 && frameCtrl->getFrame() < field_0x347c) {
|
||||
if (field_0x300e == 0) {
|
||||
if (field_0x300e.x == 0) {
|
||||
seStartSwordCut(Z2SE_AL_COPYROD_SWING);
|
||||
}
|
||||
|
||||
field_0x300e = 1;
|
||||
field_0x300e.x = 1;
|
||||
if (changeCutReverseProc(ANM_CUT_RECOIL_A)) {
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
field_0x300e = 0;
|
||||
field_0x300e.x = 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/**
|
||||
* d_a_alink_crawl.inc
|
||||
* Player Crawl action handling
|
||||
*/
|
||||
|
||||
/* 800F7C50-800F7C74 0F2590 0024+00 2/2 0/0 0/0 .text getCrawlMoveAnmSpeed__9daAlink_cFv
|
||||
*/
|
||||
f32 daAlink_c::getCrawlMoveAnmSpeed() {
|
||||
|
||||
+43
-38
@@ -1,3 +1,8 @@
|
||||
/**
|
||||
* d_a_alink_cut.inc
|
||||
* Player Sword action handling
|
||||
*/
|
||||
|
||||
/* 800D0D38-800D0E08 0CB678 00D0+00 1/1 0/0 0/0 .text daAlink_searchNightStalker__FP10fopAc_ac_cPv
|
||||
*/
|
||||
#pragma push
|
||||
@@ -541,13 +546,13 @@ int daAlink_c::checkCutAction() {
|
||||
/* 800D2684-800D26EC 0CCFC4 0068+00 9/9 0/0 0/0 .text checkCutTurnCharge__9daAlink_cFv */
|
||||
void daAlink_c::checkCutTurnCharge() {
|
||||
if (swordButton()) {
|
||||
if (field_0x3012 < 3) {
|
||||
field_0x3012++;
|
||||
if (field_0x300e.z < 3) {
|
||||
field_0x300e.z++;
|
||||
} else {
|
||||
i_onResetFlg0(RFLG0_UNK_40);
|
||||
}
|
||||
} else {
|
||||
field_0x3012 = 0;
|
||||
field_0x300e.z = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -664,9 +669,9 @@ void daAlink_c::cancelCutCharge() {
|
||||
*/
|
||||
void daAlink_c::initCutAtnActorSearch() {
|
||||
if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) {
|
||||
field_0x3010 = 1;
|
||||
field_0x300e.y = 1;
|
||||
} else {
|
||||
field_0x3010 = 0;
|
||||
field_0x300e.y = 0;
|
||||
}
|
||||
|
||||
field_0x32cc = (u32)mTargetedActor;
|
||||
@@ -675,7 +680,7 @@ void daAlink_c::initCutAtnActorSearch() {
|
||||
/* 800D2C54-800D2C78 0CD594 0024+00 3/3 0/0 0/0 .text checkCutAtnActorChange__9daAlink_cFv */
|
||||
void daAlink_c::checkCutAtnActorChange() {
|
||||
if (field_0x32cc != (u32)mTargetedActor) {
|
||||
field_0x3010 = 0;
|
||||
field_0x300e.y = 0;
|
||||
field_0x32cc = (u32)mTargetedActor;
|
||||
}
|
||||
}
|
||||
@@ -791,16 +796,16 @@ int daAlink_c::procCutNormalInit(int i_type) {
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, cutParams->m_atSe, 2, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setSwordComboVoice();
|
||||
field_0x3012 = 0;
|
||||
field_0x300e.z = 0;
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x8000);
|
||||
setCutWaterDropEffect();
|
||||
|
||||
int cutDir = getCutDirection();
|
||||
if (mComboCutCount == 1 && (cutDir == DIR_LEFT || cutDir == DIR_RIGHT)) {
|
||||
field_0x300e = 1;
|
||||
field_0x300e.x = 1;
|
||||
} else {
|
||||
field_0x300e = 0;
|
||||
field_0x300e.x = 0;
|
||||
}
|
||||
|
||||
field_0x300a = 4;
|
||||
@@ -825,7 +830,7 @@ int daAlink_c::procCutNormal() {
|
||||
i_onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
field_0x2f99 = 4;
|
||||
|
||||
if (field_0x300e != 0 && i_checkNoResetFlg2(FLG2_UNK_2)) {
|
||||
if (field_0x300e.x != 0 && i_checkNoResetFlg2(FLG2_UNK_2)) {
|
||||
int cutDir = getCutDirection();
|
||||
if ((cutDir == DIR_RIGHT && mCutType == CUT_TYPE_NM_LEFT &&
|
||||
frameCtrl->getFrame() > lit_7448) ||
|
||||
@@ -853,11 +858,11 @@ int daAlink_c::procCutNormal() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (setShapeAngleToAtnActor(field_0x3010)) {
|
||||
if (setShapeAngleToAtnActor(field_0x300e.y)) {
|
||||
field_0x300c = shape_angle.y;
|
||||
|
||||
if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) {
|
||||
field_0x3010 = 1;
|
||||
field_0x300e.y = 1;
|
||||
}
|
||||
} else {
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x300c, 2, 0x2000, 0x800);
|
||||
@@ -904,7 +909,7 @@ int daAlink_c::procCutFinishInit(int i_type) {
|
||||
setCutType(cutParams->m_cutType);
|
||||
field_0x3198 = cutParams->field_0x4;
|
||||
field_0x300c = cutParams->field_0xa;
|
||||
field_0x300e = cutParams->field_0xb;
|
||||
field_0x300e.x = cutParams->field_0xb;
|
||||
|
||||
BOOL var_r30 = FALSE;
|
||||
if (i_type == 0) {
|
||||
@@ -985,7 +990,7 @@ int daAlink_c::procCutFinishInit(int i_type) {
|
||||
field_0x2f99 = 13;
|
||||
}
|
||||
|
||||
field_0x3012 = 0;
|
||||
field_0x300e.z = 0;
|
||||
dComIfGp_setPlayerStatus0(0, 0x8000);
|
||||
setCutWaterDropEffect();
|
||||
initCutAtnActorSearch();
|
||||
@@ -1058,7 +1063,7 @@ int daAlink_c::procCutFinishJumpUpInit() {
|
||||
daAlinkHIO_cutFnJU_c0::m.mCutAnm.mEndFrame,
|
||||
daAlinkHIO_cutFnJU_c0::m.mCutAnm.mInterpolation);
|
||||
setSwordVoiceSe(Z2SE_AL_V_SOTOMO_ATK);
|
||||
field_0x3012 = 0;
|
||||
field_0x300e.z = 0;
|
||||
field_0x3478 = current.pos.y;
|
||||
dComIfGp_setPlayerStatus0(0, 0x8000);
|
||||
setCutWaterDropEffect();
|
||||
@@ -1121,7 +1126,7 @@ int daAlink_c::procCutFinishJumpUpLandInit() {
|
||||
field_0x3008 = daAlinkHIO_cutFnJU_c0::m.mStopTime;
|
||||
}
|
||||
|
||||
field_0x3012 = 0;
|
||||
field_0x300e.z = 0;
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
initCutAtnActorSearch();
|
||||
return 1;
|
||||
@@ -1158,10 +1163,10 @@ int daAlink_c::procCutFinishJumpUpLand() {
|
||||
resetCombo(1);
|
||||
}
|
||||
|
||||
setShapeAngleToAtnActor(field_0x3010);
|
||||
setShapeAngleToAtnActor(field_0x300e.y);
|
||||
|
||||
if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) {
|
||||
field_0x3010 = 1;
|
||||
field_0x300e.y = 1;
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -1201,7 +1206,7 @@ int daAlink_c::procCutReverseInit(daAlink_c::daAlink_ANM i_anmID) {
|
||||
mNormalSpeed = daAlinkHIO_cut_c0::m.mRecoilSpeed;
|
||||
current.angle.y = shape_angle.y - -0x8000;
|
||||
field_0x307e = 0;
|
||||
field_0x3012 = 0;
|
||||
field_0x300e.z = 0;
|
||||
|
||||
int temp_r3;
|
||||
if (mCutType == CUT_TYPE_MORTAL_DRAW_A || mCutType == CUT_TYPE_MORTAL_DRAW_B ||
|
||||
@@ -1401,7 +1406,7 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
|
||||
field_0x3484 = cutData->mRightAttackStartFrame;
|
||||
field_0x3488 = cutData->mRightAttackEndFrame;
|
||||
field_0x3010 = 1;
|
||||
field_0x300e.y = 1;
|
||||
field_0x300a = 6;
|
||||
} else {
|
||||
anmID = ANM_CUT_TURN_LEFT;
|
||||
@@ -1415,7 +1420,7 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
|
||||
field_0x3484 = cutData->mLeftAttackStartFrame;
|
||||
field_0x3488 = cutData->mLeftAttackEndFrame;
|
||||
field_0x3010 = 0;
|
||||
field_0x300e.y = 0;
|
||||
field_0x300a = 8;
|
||||
}
|
||||
|
||||
@@ -1471,7 +1476,7 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
field_0x3180 = 0;
|
||||
dComIfGp_setPlayerStatus0(0, 0x8000);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
field_0x3012 = 0;
|
||||
field_0x300e.z = 0;
|
||||
setCutWaterDropEffect();
|
||||
initCutTurnAt(field_0x347c, var_r29_3);
|
||||
return 1;
|
||||
@@ -1635,7 +1640,7 @@ asm int daAlink_c::procCutDownInit() {
|
||||
|
||||
/* 800D57F8-800D58A0 0D0138 00A8+00 1/0 0/0 0/0 .text procCutDown__9daAlink_cFv */
|
||||
int daAlink_c::procCutDown() {
|
||||
if (field_0x300e != 0) {
|
||||
if (field_0x300e.x != 0) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1682,7 +1687,7 @@ asm int daAlink_c::procCutHeadInit() {
|
||||
|
||||
/* 800D5FC8-800D6130 0D0908 0168+00 1/0 0/0 0/0 .text procCutHead__9daAlink_cFv */
|
||||
int daAlink_c::procCutHead() {
|
||||
if (field_0x300e == 0) {
|
||||
if (field_0x300e.x == 0) {
|
||||
cLib_chaseF(&mNormalSpeed, FLOAT_LABEL(lit_6108), field_0x3478);
|
||||
|
||||
if (speed.y <= FLOAT_LABEL(lit_6108)) {
|
||||
@@ -1691,7 +1696,7 @@ int daAlink_c::procCutHead() {
|
||||
mNormalSpeed = tmp_0;
|
||||
speed.y = tmp_0;
|
||||
setSpecialGravity(tmp_0, mMaxFallSpeed, 0);
|
||||
field_0x300e = 1;
|
||||
field_0x300e.x = 1;
|
||||
setCutWaterDropEffect();
|
||||
setSwordVoiceSe(Z2SE_AL_V_KABUTO_ATK);
|
||||
}
|
||||
@@ -1805,8 +1810,8 @@ int daAlink_c::procCutLargeJumpInit() {
|
||||
setCutType(CUT_TYPE_LARGE_JUMP_INIT);
|
||||
setSwordVoiceSe(Z2SE_AL_V_JUMP_ATTACK_L_1);
|
||||
setCutWaterDropEffect();
|
||||
field_0x300e = 4;
|
||||
field_0x3010 = 0;
|
||||
field_0x300e.x = 4;
|
||||
field_0x300e.y = 0;
|
||||
field_0x3198 = 2;
|
||||
return 1;
|
||||
}
|
||||
@@ -1815,7 +1820,7 @@ int daAlink_c::procCutLargeJumpInit() {
|
||||
int daAlink_c::procCutLargeJump() {
|
||||
daPy_frameCtrl_c* frameCtrl = &mUnderFrameCtrl[0];
|
||||
|
||||
if (field_0x3010 != 0) {
|
||||
if (field_0x300e.y != 0) {
|
||||
field_0x2f99 = 4;
|
||||
}
|
||||
|
||||
@@ -1831,7 +1836,7 @@ int daAlink_c::procCutLargeJump() {
|
||||
setSwordVoiceSe(Z2SE_AL_V_JUMP_ATTACK_L_2);
|
||||
} else {
|
||||
if (frameCtrl->getFrame() >= lit_7307) {
|
||||
field_0x3010 = 1;
|
||||
field_0x300e.y = 1;
|
||||
}
|
||||
|
||||
if (!i_checkModeFlg(2) && frameCtrl->getFrame() >= lit_7808) {
|
||||
@@ -1850,10 +1855,10 @@ int daAlink_c::procCutLargeJump() {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (field_0x300e != 0) {
|
||||
field_0x300e--;
|
||||
if (field_0x300e.x != 0) {
|
||||
field_0x300e.x--;
|
||||
|
||||
if (field_0x300e == 0) {
|
||||
if (field_0x300e.x == 0) {
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 4, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setCutType(CUT_TYPE_LARGE_JUMP);
|
||||
@@ -1951,8 +1956,8 @@ int daAlink_c::procSwordUnequipSpInit() {
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
field_0x3198 = 0;
|
||||
field_0x300c = 0;
|
||||
field_0x300e = (0x1E - mDemo.getDemoMode()) != 0;
|
||||
field_0x3010 = 0;
|
||||
field_0x300e.x = (0x1E - mDemo.getDemoMode()) != 0;
|
||||
field_0x300e.y = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -1965,10 +1970,10 @@ int daAlink_c::procSwordUnequipSp() {
|
||||
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
|
||||
if (field_0x300e != 0) {
|
||||
if (field_0x300e.x != 0) {
|
||||
field_0x2f99 = 4;
|
||||
} else {
|
||||
field_0x300e = 1;
|
||||
field_0x300e.x = 1;
|
||||
}
|
||||
|
||||
i_onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
@@ -1977,8 +1982,8 @@ int daAlink_c::procSwordUnequipSp() {
|
||||
i_onEndResetFlg1(ERFLG1_GANON_FINISH);
|
||||
}
|
||||
|
||||
if (field_0x3010 == 0 && mDemo.getDemoMode() == 0x1E && mDemo.getParam1() == 1) {
|
||||
field_0x3010 = 1;
|
||||
if (field_0x300e.y == 0 && mDemo.getDemoMode() == 0x1E && mDemo.getParam1() == 1) {
|
||||
field_0x300e.y = 1;
|
||||
setFaceBasicBck(0x149);
|
||||
setFaceBasicBtp(0x3E1);
|
||||
}
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/**
|
||||
* d_a_alink_damage.inc
|
||||
* Player Damage action handling
|
||||
*/
|
||||
|
||||
/* 800D6D94-800D6DA4 0D16D4 0010+00 0/0 0/0 2/2 .text getFreezeR__9daAlink_cCFv */
|
||||
s16 daAlink_c::getFreezeR() const {
|
||||
return daAlinkHIO_damage_c0::m.mFreezeR;
|
||||
|
||||
+76
-26
@@ -1,3 +1,8 @@
|
||||
/**
|
||||
* d_a_alink_demo.inc
|
||||
* Player Cutscene / Event action handling
|
||||
*/
|
||||
|
||||
#include "f_op/f_op_msg_mng.h"
|
||||
|
||||
/* 80115C20-80115C50 110560 0030+00 72/72 0/0 0/0 .text checkEventRun__9daAlink_cCFv */
|
||||
@@ -263,7 +268,7 @@ BOOL daAlink_c::checkEndMessage(u32 param_0) {
|
||||
/* 80118840-801188B0 113180 0070+00 1/1 0/0 0/0 .text setDemoRightHandIndex__9daAlink_cFUs */
|
||||
u8 daAlink_c::setDemoRightHandIndex(u16 param_0) {
|
||||
if (param_0 == 0xFD) {
|
||||
field_0x3010 = 1;
|
||||
field_0x300e.y = 1;
|
||||
return 6;
|
||||
} else if (param_0 == 0xFC) {
|
||||
field_0x2fab |= 0x10;
|
||||
@@ -535,7 +540,7 @@ int daAlink_c::procCoToolDemoInit() {
|
||||
mNowAnmPackUpper[1].setAnmTransform(NULL);
|
||||
|
||||
field_0x3198 = 0;
|
||||
field_0x3010 = 0;
|
||||
field_0x300e.y = 0;
|
||||
field_0x2fab = 0;
|
||||
deleteEquipItem(FALSE, TRUE);
|
||||
mUnderAnmHeap[0].setBufferSize(0x10800);
|
||||
@@ -646,7 +651,7 @@ int daAlink_c::procCoUnequip() {
|
||||
void daAlink_c::setGetSubBgm(int param_0) {
|
||||
u32 se_type = getSeType[param_0];
|
||||
|
||||
if (se_type == 3 && field_0x3010 == 0) {
|
||||
if (se_type == 3 && field_0x300e.y == 0) {
|
||||
se_type = 7;
|
||||
}
|
||||
|
||||
@@ -931,7 +936,7 @@ int daAlink_c::procCoLookAround() {
|
||||
|
||||
if (checkAnmEnd(frame_ctrl)) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
} else if (field_0x300e != 0 && frame_ctrl->checkPass(lit_7808)) {
|
||||
} else if (field_0x300e.x != 0 && frame_ctrl->checkPass(lit_7808)) {
|
||||
voiceStart(Z2SE_AL_V_ENTRANCE);
|
||||
}
|
||||
|
||||
@@ -1066,7 +1071,7 @@ int daAlink_c::procHandPatInit() {
|
||||
setOldRootQuaternion(0, -0x8000, 0);
|
||||
shape_angle.y += 0x8000;
|
||||
field_0x300c = 0;
|
||||
field_0x300e = 0;
|
||||
field_0x300e.x = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1310,7 +1315,7 @@ int daAlink_c::procWolfSnowEscapeInit() {
|
||||
field_0x3588 = l_wolfBaseAnime;
|
||||
field_0x3478 = lit_37528;
|
||||
field_0x300c = 0;
|
||||
field_0x300e = 0;
|
||||
field_0x300e.x = 0;
|
||||
mNormalSpeed = lit_6845;
|
||||
return 1;
|
||||
}
|
||||
@@ -1338,8 +1343,8 @@ int daAlink_c::procZoraMoveInit() {
|
||||
setSpecialGravity(tmp_0, mMaxFallSpeed, 0);
|
||||
|
||||
deleteEquipItem(FALSE, TRUE);
|
||||
field_0x3010 = 5000;
|
||||
field_0x3012 = 0;
|
||||
field_0x300e.y = 5000;
|
||||
field_0x300e.z = 0;
|
||||
field_0x384c = (cXyz*)&l_boarBaseAnime;
|
||||
return 1;
|
||||
}
|
||||
@@ -1393,18 +1398,18 @@ int daAlink_c::procTradeItemOutInit() {
|
||||
field_0x300c = 0;
|
||||
}
|
||||
|
||||
field_0x300e = 0;
|
||||
field_0x300e.x = 0;
|
||||
dComIfGp_setPlayerStatus0(0, 0x10);
|
||||
field_0x3010 = 1;
|
||||
field_0x300e.y = 1;
|
||||
|
||||
if (mDemo.getParam0() != 1) {
|
||||
if (mDemo.getParam0() == 2) {
|
||||
if (checkLetterItem(mDemo.getParam1())) {
|
||||
field_0x3010 = 0;
|
||||
field_0x300e.y = 0;
|
||||
}
|
||||
} else {
|
||||
if (checkLetterItem(dComIfGp_event_getPreItemNo())) {
|
||||
field_0x3010 = 0;
|
||||
field_0x300e.y = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1628,7 +1633,7 @@ int daAlink_c::procMasterSwordPullInit() {
|
||||
|
||||
setSingleAnimeBase(ANM_DEMO_MASTER_SWORD_PULL);
|
||||
voiceStart(Z2SE_AL_V_MSTR_SW_PULLOUT);
|
||||
field_0x3010 = 0;
|
||||
field_0x300e.y = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -1643,9 +1648,9 @@ int daAlink_c::procMasterSwordPull() {
|
||||
} else if (frame_ctrl->getFrame() >= lit_8780) {
|
||||
field_0x2f93 = 10;
|
||||
} else if (frame_ctrl->getFrame() >= lit_7710) {
|
||||
field_0x3010 = 0;
|
||||
field_0x300e.y = 0;
|
||||
} else if (frame_ctrl->getFrame() >= lit_6040) {
|
||||
field_0x3010 = 4;
|
||||
field_0x300e.y = 4;
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -1707,10 +1712,10 @@ int daAlink_c::procDungeonWarpInit() {
|
||||
}
|
||||
|
||||
field_0x300c = 0;
|
||||
field_0x3012 = 0;
|
||||
field_0x300e.z = 0;
|
||||
setSpecialGravity(FLOAT_LABEL(lit_6108), mMaxFallSpeed, 0);
|
||||
field_0x300e = 0;
|
||||
field_0x3010 = 0;
|
||||
field_0x300e.x = 0;
|
||||
field_0x300e.y = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -1729,15 +1734,15 @@ int daAlink_c::procDungeonWarp() {
|
||||
|
||||
f32 sin = cM_ssin(field_0x300c);
|
||||
shape_angle.y += (s16)(14336.0f * sin);
|
||||
field_0x300e = 8.0f * sin + 24.0f * (1.0f - mScale.x);
|
||||
field_0x300e.x = 8.0f * sin + 24.0f * (1.0f - mScale.x);
|
||||
|
||||
if (field_0x3012 != 0) {
|
||||
if (field_0x300e.z != 0) {
|
||||
return 1;
|
||||
} else {
|
||||
if (field_0x300c == 0x4000) {
|
||||
if (field_0x3010 == 0) {
|
||||
if (field_0x300e.y == 0) {
|
||||
dComIfGp_particle_set(0xA61, ¤t.pos, &mTevStr, NULL, NULL);
|
||||
field_0x3010 = 1;
|
||||
field_0x300e.y = 1;
|
||||
}
|
||||
|
||||
cLib_addCalc(&mScale.x, 0.0f, 0.5f, 0.4f, 0.005f);
|
||||
@@ -1755,7 +1760,7 @@ int daAlink_c::procDungeonWarp() {
|
||||
dMeter2Info_warpInProc();
|
||||
}
|
||||
|
||||
field_0x3012 = 1;
|
||||
field_0x300e.z = 1;
|
||||
}
|
||||
current.pos.y += 5.0f;
|
||||
field_0x2b98 = (1.0f - mScale.y) * 100.0f;
|
||||
@@ -1880,7 +1885,7 @@ void daAlink_c::dungeonReturnWarp() {
|
||||
|
||||
/* 8011F8B8-8011F9EC 11A1F8 0134+00 1/0 0/0 0/0 .text skipPortalObjWarp__9daAlink_cFv */
|
||||
void daAlink_c::skipPortalObjWarp() {
|
||||
if (mProcID == PROC_WARP && field_0x300e <= 0) {
|
||||
if (mProcID == PROC_WARP && field_0x300e.x <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1897,7 +1902,7 @@ void daAlink_c::skipPortalObjWarp() {
|
||||
}
|
||||
|
||||
if (mProcID == PROC_WARP) {
|
||||
field_0x300e = -1;
|
||||
field_0x300e.x = -1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1974,4 +1979,49 @@ asm int daAlink_c::procCoWarp() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procCoWarp__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#pragma pop
|
||||
|
||||
/* 80120440-80120474 11AD80 0034+00 1/0 0/0 0/0 .text commonWaitTurnInit__9daAlink_cFv */
|
||||
void daAlink_c::commonWaitTurnInit() {
|
||||
if (i_checkWolf()) {
|
||||
procWolfWaitTurnInit();
|
||||
} else {
|
||||
procWaitTurnInit();
|
||||
}
|
||||
}
|
||||
|
||||
/* 80120474-80120500 11ADB4 008C+00 2/1 0/0 0/0 .text commonGrabPutInit__9daAlink_cFv */
|
||||
int daAlink_c::commonGrabPutInit() {
|
||||
if (mGrabItemAcKeep.getActor() == NULL) {
|
||||
if (mProcID != PROC_GRAB_STAND &&
|
||||
(mProcID != PROC_WOLF_GRAB_PUT || !(mUnderFrameCtrl[0].getFrame() < field_0x3478)))
|
||||
{
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (i_checkWolf()) {
|
||||
return procWolfGrabPutInit();
|
||||
}
|
||||
|
||||
return procGrabPutInit();
|
||||
}
|
||||
|
||||
/* 80120500-80120534 11AE40 0034+00 3/3 0/0 0/0 .text commonLargeDamageUpInit__9daAlink_cFiiss */
|
||||
void daAlink_c::commonLargeDamageUpInit(int param_0, int param_1, s16 param_2, s16 param_3) {
|
||||
if (i_checkWolf()) {
|
||||
procWolfLargeDamageUpInit(param_0, param_1, param_2, param_3);
|
||||
} else {
|
||||
procLargeDamageUpInit(param_0, param_1, param_2, param_3);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80120534-80120580 11AE74 004C+00 4/4 0/0 0/0 .text commonFallInit__9daAlink_cFi */
|
||||
void daAlink_c::commonFallInit(int param_0) {
|
||||
if (i_checkWolf()) {
|
||||
procWolfFallInit(param_0, daAlinkHIO_wlAutoJump_c0::m.field_0x54);
|
||||
} else {
|
||||
procFallInit(param_0, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/**
|
||||
* d_a_alink_effect.inc
|
||||
* Player Particle Effect handling
|
||||
*/
|
||||
|
||||
/* 80120580-80120634 11AEC0 00B4+00 21/21 0/0 0/0 .text
|
||||
* setEmitter__9daAlink_cFPUlUsPC4cXyzPC5csXyz */
|
||||
// matches with literal
|
||||
|
||||
+146
-1
@@ -837,4 +837,149 @@ asm int daAlink_c::procPullMove() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procPullMove__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#pragma pop
|
||||
|
||||
/* 800E91B0-800E91C4 0E3AF0 0014+00 1/1 0/0 0/0 .text daAlink_searchGoat__FP10fopAc_ac_cPv */
|
||||
static fopAc_ac_c* daAlink_searchGoat(fopAc_ac_c* i_actor, void*) {
|
||||
if (fopAcM_GetName(i_actor) == PROC_COW) {
|
||||
return i_actor;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 800E91C4-800E9210 0E3B04 004C+00 1/0 0/0 0/0 .text cancelGoronThrowEvent__9daAlink_cFv
|
||||
*/
|
||||
void daAlink_c::cancelGoronThrowEvent() {
|
||||
if (mProcID == PROC_GOAT_CATCH && field_0x300e.z == 0) {
|
||||
field_0x300e.z = 1;
|
||||
i_dComIfGp_event_reset();
|
||||
}
|
||||
}
|
||||
|
||||
/* 800E9210-800E9344 0E3B50 0134+00 2/2 0/0 0/0 .text
|
||||
* setGoatStopGameFail__9daAlink_cFP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::setGoatStopGameFail(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/setGoatStopGameFail__9daAlink_cFP10fopAc_ac_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800E9344-800E9434 0E3C84 00F0+00 1/1 0/0 0/0 .text procGoatMoveInit__9daAlink_cFv */
|
||||
int daAlink_c::procGoatMoveInit() {
|
||||
if (!commonProcInitNotSameProc(PROC_GOAT_MOVE)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (checkZeroSpeedF()) {
|
||||
onModeFlg(1);
|
||||
}
|
||||
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
field_0x37c8 = current.pos;
|
||||
field_0x2f98 = 3;
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
field_0x594 = daAlinkHIO_atnMove_c0::m.mMaxSpeed;
|
||||
|
||||
setSingleAnimeBase(ANM_ATN_COW);
|
||||
field_0x300c = 0;
|
||||
|
||||
fopAc_ac_c* goat_p = (fopAc_ac_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchGoat, NULL);
|
||||
if (goat_p != NULL) {
|
||||
field_0x280c.setData(goat_p);
|
||||
}
|
||||
|
||||
field_0x300e.x = 0;
|
||||
deleteEquipItem(FALSE, FALSE);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 800E9434-800E9894 0E3D74 0460+00 1/0 0/0 0/0 .text procGoatMove__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daAlink_c::procGoatMove() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procGoatMove__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800E9894-800E9BD0 0E41D4 033C+00 3/3 0/0 0/0 .text procGoatCatchInit__9daAlink_cFP10fopAc_ac_cf
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daAlink_c::procGoatCatchInit(fopAc_ac_c* param_0, f32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procGoatCatchInit__9daAlink_cFP10fopAc_ac_cf.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800E9BD0-800EA2A8 0E4510 06D8+00 1/0 0/0 0/0 .text procGoatCatch__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daAlink_c::procGoatCatch() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procGoatCatch__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800EA2A8-800EA3AC 0E4BE8 0104+00 2/2 0/0 0/0 .text procGoatStrokeInit__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daAlink_c::procGoatStrokeInit() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procGoatStrokeInit__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800EA3AC-800EA3F4 0E4CEC 0048+00 1/0 0/0 0/0 .text procGoatStroke__9daAlink_cFv */
|
||||
int daAlink_c::procGoatStroke() {
|
||||
if (mUnderFrameCtrl[0].checkAnmEnd()) {
|
||||
checkNextAction(0);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 800EA3F4-800EA4CC 0E4D34 00D8+00 2/2 0/0 0/0 .text procGoronMoveInit__9daAlink_cFv */
|
||||
int daAlink_c::procGoronMoveInit() {
|
||||
if (mEquipItem != NO_ITEM) {
|
||||
return procPreActionUnequipInit(PROC_GORON_MOVE, NULL);
|
||||
}
|
||||
|
||||
if (!commonProcInitNotSameProc(PROC_GORON_MOVE)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
mCargoCarryAcKeep.setActor();
|
||||
|
||||
if (mCargoCarryAcKeep.getActor() == NULL) {
|
||||
offGoronSideMove();
|
||||
return 0;
|
||||
}
|
||||
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
field_0x2f98 = 3;
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
field_0x594 = daAlinkHIO_atnMove_c0::m.mMaxSpeed;
|
||||
setSingleAnimeBase(ANM_ATN_RIGHT);
|
||||
field_0x300c = 1;
|
||||
field_0x300e.x = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 800EA4CC-800EA844 0E4E0C 0378+00 1/0 0/0 0/0 .text procGoronMove__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daAlink_c::procGoronMove() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procGoronMove__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/**
|
||||
* d_a_alink_guard.inc
|
||||
* Player Shield action handling
|
||||
*/
|
||||
|
||||
/* 800DC548-800DC5A4 0D6E88 005C+00 13/13 0/0 0/0 .text checkEnemyGroup__9daAlink_cFP10fopAc_ac_c
|
||||
*/
|
||||
BOOL daAlink_c::checkEnemyGroup(fopAc_ac_c* i_actor) {
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/**
|
||||
* d_a_alink_hang.inc
|
||||
* Player hang / climb action handling
|
||||
*/
|
||||
|
||||
#include "rel/d/a/b/d_a_b_ob/d_a_b_ob.h"
|
||||
#include "rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang.h"
|
||||
|
||||
@@ -521,10 +526,10 @@ int daAlink_c::procBossBodyHangInit(fopAc_ac_c* param_0) {
|
||||
speed.y = FLOAT_LABEL(lit_6108);
|
||||
|
||||
field_0x300c = 0;
|
||||
field_0x300e = 0;
|
||||
field_0x3010 = 0;
|
||||
field_0x300e.x = 0;
|
||||
field_0x300e.y = 0;
|
||||
field_0x3008 = 0;
|
||||
field_0x3012 = 0;
|
||||
field_0x300e.z = 0;
|
||||
field_0x3080 = 0;
|
||||
|
||||
field_0x280c.setData(param_0);
|
||||
@@ -687,7 +692,7 @@ int daAlink_c::procLadderUpEndInit(int param_0) {
|
||||
field_0x30a0 = -0x0800;
|
||||
field_0x33f4 = lit_6041;
|
||||
field_0x300c = 1;
|
||||
field_0x3010 = 1;
|
||||
field_0x300e.y = 1;
|
||||
dComIfGp_setPlayerStatus0(0, 0x2000000);
|
||||
return 1;
|
||||
}
|
||||
@@ -707,7 +712,7 @@ int daAlink_c::procLadderUpEnd() {
|
||||
{
|
||||
if (frame_ctrl->getFrame() >= lit_15341) {
|
||||
field_0x300c = 0;
|
||||
field_0x3010 = 0;
|
||||
field_0x300e.y = 0;
|
||||
} else if (frame_ctrl->getFrame() >= lit_17382) {
|
||||
field_0x30a0 = 0;
|
||||
field_0x33f4 = FLOAT_LABEL(lit_6108);
|
||||
@@ -745,7 +750,7 @@ int daAlink_c::procLadderDownStart() {
|
||||
}
|
||||
} else if (frame_ctrl->getFrame() >= lit_10286) {
|
||||
field_0x300c = 1;
|
||||
field_0x3010 = 1;
|
||||
field_0x300e.y = 1;
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -765,7 +770,7 @@ int daAlink_c::procLadderDownEndInit(int param_0) {
|
||||
field_0x30a0 = 0x2800;
|
||||
field_0x33f4 = lit_6040;
|
||||
field_0x300c = 0;
|
||||
field_0x3010 = 0;
|
||||
field_0x300e.y = 0;
|
||||
dComIfGp_setPlayerStatus0(0, 0x2000000);
|
||||
return 1;
|
||||
}
|
||||
|
||||
+1594
-137
File diff suppressed because it is too large
Load Diff
@@ -1,3 +1,8 @@
|
||||
/**
|
||||
* d_a_alink_horse.inc
|
||||
* Player Epona riding handling
|
||||
*/
|
||||
|
||||
/* 800EC724-800EC758 0E7064 0034+00 3/3 0/0 0/0 .text daAlink_searchBoar__FP10fopAc_ac_cPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/**
|
||||
* d_a_alink_hvyboots.inc
|
||||
* Player Iron Boots action handling
|
||||
*/
|
||||
|
||||
/* 800E23FC-800E243C 0DCD3C 0040+00 6/6 0/0 0/0 .text concatMagneBootMtx__9daAlink_cFv */
|
||||
void daAlink_c::concatMagneBootMtx() {
|
||||
if (i_checkMagneBootsOn()) {
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/**
|
||||
* d_a_alink_iceleaf.inc
|
||||
* Player Ice Leaf surfing handling
|
||||
*/
|
||||
|
||||
/* 80105A84-80105A98 1003C4 0014+00 1/1 0/0 0/0 .text daAlink_searchIceLeaf__FP10fopAc_ac_cPv */
|
||||
static fopAc_ac_c* daAlink_searchIceLeaf(fopAc_ac_c* i_actor, void* param_1) {
|
||||
if (fopAcM_GetName(i_actor) == PROC_Obj_IceLeaf) {
|
||||
@@ -156,8 +161,8 @@ int daAlink_c::procBoardRowInit() {
|
||||
setSingleAnimeBaseSpeed(ANM_RIDE_KICK, getBoardRowAnmSpeed(), daAlinkHIO_board_c0::m.mPushInterpolation);
|
||||
i_onResetFlg1(0x40);
|
||||
field_0x3008 = 4;
|
||||
field_0x3010 = 1;
|
||||
field_0x3012 = 0;
|
||||
field_0x300e.y = 1;
|
||||
field_0x300e.z = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -177,8 +182,8 @@ int daAlink_c::procBoardTurnInit() {
|
||||
commonProcInit(PROC_BOARD_TURN);
|
||||
setSingleAnime(ANM_RIDE_JUMP, FLOAT_LABEL(lit_6108), lit_6040, daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame, lit_6109);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
field_0x3010 = shape_angle.y + 0x8000;
|
||||
field_0x3012 = 0;
|
||||
field_0x300e.y = shape_angle.y + 0x8000;
|
||||
field_0x300e.z = 0;
|
||||
field_0x300a = 0;
|
||||
|
||||
return 1;
|
||||
@@ -199,7 +204,7 @@ asm int daAlink_c::procBoardTurn() {
|
||||
int daAlink_c::procBoardJumpInit(f32 param_0, int param_1) {
|
||||
commonProcInit(PROC_BOARD_JUMP);
|
||||
field_0x3008 = 0;
|
||||
field_0x3012 = 1;
|
||||
field_0x300e.z = 1;
|
||||
|
||||
setSingleAnime(ANM_RIDE_JUMP, FLOAT_LABEL(lit_6108),
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
|
||||
@@ -210,7 +215,7 @@ int daAlink_c::procBoardJumpInit(f32 param_0, int param_1) {
|
||||
speed.y = cLib_minMaxLimit(param_0, daAlinkHIO_board_c0::m.mMinJumpSpeedY, daAlinkHIO_board_c0::m.mMaxJumpSpeedY);
|
||||
}
|
||||
|
||||
field_0x3010 = 0;
|
||||
field_0x300e.y = 0;
|
||||
seStartOnlyReverb(Z2SE_AL_SNOBO_JUMP);
|
||||
return 1;
|
||||
}
|
||||
@@ -235,12 +240,12 @@ int daAlink_c::procBoardJump() {
|
||||
if (!i_checkModeFlg(2)) {
|
||||
setBoardLandAnime();
|
||||
procBoardWaitInit(NULL);
|
||||
} else if (field_0x3012 != 0 && field_0x3010 == 0 && field_0x2060->getOldFrameRate() < lit_8782) {
|
||||
} else if (field_0x300e.z != 0 && field_0x300e.y == 0 && field_0x2060->getOldFrameRate() < lit_8782) {
|
||||
setSingleAnime(ANM_RIDE_JUMP, daAlinkHIO_board_c0::m.mAirborneAnm.mSpeed,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame,
|
||||
lit_6041);
|
||||
field_0x3010 = 1;
|
||||
field_0x300e.y = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -293,7 +298,7 @@ int daAlink_c::procBoardCutInit() {
|
||||
|
||||
setCommonBoardAnime(0);
|
||||
setCutDash(1, var_r31);
|
||||
field_0x3012 = 0;
|
||||
field_0x300e.z = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user