summaryrefslogtreecommitdiff
path: root/src/d/actor/d_a_alink.cpp
diff options
context:
space:
mode:
authorCarco_21 <144170194+carter-ktb21@users.noreply.github.com>2025-08-08 14:39:26 -0400
committerGitHub <noreply@github.com>2025-08-08 21:39:26 +0300
commite0b1fe92b1e79b5b93e8a3df6ee56e5771e80915 (patch)
tree6a34a131100ef6c58171b7a1e9e4e1be0e65fb18 /src/d/actor/d_a_alink.cpp
parent9fbbec4326a5fcc9443e219415386da36b8ec5e8 (diff)
ChkBit comments and enum work (#2571)
* Jagar cleanup * saru work * e_fm work * gob enum added * gob cleanup * gob anm enums * dComIfGs_isEventBit comments added * More bit work and besu enum work * Maybe fixed the issue?
Diffstat (limited to 'src/d/actor/d_a_alink.cpp')
-rw-r--r--src/d/actor/d_a_alink.cpp27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/d/actor/d_a_alink.cpp b/src/d/actor/d_a_alink.cpp
index e9ac90b440..b18d30ba56 100644
--- a/src/d/actor/d_a_alink.cpp
+++ b/src/d/actor/d_a_alink.cpp
@@ -11238,7 +11238,16 @@ static void* daAlink_searchKolin(fopAc_ac_c* i_actor, void* i_data) {
/* 800B80C4-800B8374 0B2A04 02B0+00 2/2 0/0 0/0 .text orderZTalk__9daAlink_cFv */
int daAlink_c::orderZTalk() {
- if ((!checkReinRide() && !checkModeFlg(0x40000) && !checkMagneBootsOn() && (!mLinkAcch.ChkGroundHit() || checkModeFlg(0x70C52))) || mThrowBoomerangAcKeep.getActor() != NULL || dComIfGp_checkPlayerStatus0(0, 0x8000000) || mProcID == PROC_CRAWL_END || checkHorseZelda() || checkCloudSea() || checkStageName("D_MN08A") || (checkStageName("D_MN09A") && ((fopAcM_GetRoomNo(this) == 50 && dComIfG_play_c::getLayerNo(0) == 0) || fopAcM_GetRoomNo(this) == 51)) || (checkMagneBootsOn() && (!checkStageName("D_MN04B") || !cBgW_CheckBGround(mMagneBootsTopVec.y))) || dComIfGs_isEventBit(0x6140)) {
+ if ((!checkReinRide() && !checkModeFlg(0x40000) && !checkMagneBootsOn()
+ && (!mLinkAcch.ChkGroundHit() || checkModeFlg(0x70C52))) || mThrowBoomerangAcKeep.getActor() != NULL
+ || dComIfGp_checkPlayerStatus0(0, 0x8000000) || mProcID == PROC_CRAWL_END || checkHorseZelda()
+ || checkCloudSea() || checkStageName("D_MN08A") || (checkStageName("D_MN09A")
+ && ((fopAcM_GetRoomNo(this) == 50 && dComIfG_play_c::getLayerNo(0) == 0)
+ || fopAcM_GetRoomNo(this) == 51)) || (checkMagneBootsOn() && (!checkStageName("D_MN04B")
+ || !cBgW_CheckBGround(mMagneBootsTopVec.y)))
+ /* dSv_event_flag_c::F_0800 - Cutscene - After returning to Ordon Woods, until Midna comes out of the shadows
+ (If 800 is ON, Midna can't be called) */
+ || dComIfGs_isEventBit(0x6140)) {
return 0;
}
@@ -11608,7 +11617,11 @@ BOOL daAlink_c::checkItemAction() {
}
}
- if (((dComIfGs_isEventBit(0x2908) || checkNoResetFlg3(FLG3_UNK_8)) && checkGuardActionChange() && !checkUpperReadyThrowAnime() && !checkModeFlg(0x70C52) && checkShieldGet() && !checkNotBattleStage()) && ((mLinkAcch.ChkGroundHit() || checkMagneBootsOn()) && dComIfGp_getRStatus() == 0)) {
+ /* dSv_event_flag_c::F_0338 - Secret techniques - Obtained 1 secret techinques - Shield attack */
+ if (((dComIfGs_isEventBit(0x2908)
+ || checkNoResetFlg3(FLG3_UNK_8)) && checkGuardActionChange() && !checkUpperReadyThrowAnime()
+ && !checkModeFlg(0x70C52) && checkShieldGet() && !checkNotBattleStage())
+ && ((mLinkAcch.ChkGroundHit() || checkMagneBootsOn()) && dComIfGp_getRStatus() == 0)) {
setRStatus(0x3A);
if (spActionTrigger()) {
@@ -17361,6 +17374,7 @@ int daAlink_c::procCoMetamorphose() {
mProcVar0.field_0x3008 = 1;
if (mProcVar4.field_0x3010 != 0) {
+ /* dSv_event_flag_c::F_0776 - Palace of Twilight - Link first turned to wolf due to fog in Palace of Twilight */
dComIfGs_onEventBit(0x5E40);
}
}
@@ -18673,14 +18687,18 @@ void daAlink_c::setDrawHand() {
bool daAlink_c::checkSwordDraw() {
return ((checkSwordGet() && mSwordChangeWaitTimer == 0) &&
!checkNoResetFlg2(FLG2_UNK_2080000)) &&
- (!checkWolf() || !dComIfGs_isEventBit(0x0C08));
+ (!checkWolf()
+ /* dSv_event_flag_c::M_068 - Main Event - when OFF, wolf carries sword and shield on back */
+ || !dComIfGs_isEventBit(0x0C08));
}
/* 800CB53C-800CB5F8 0C5E7C 00BC+00 3/3 0/0 0/0 .text checkShieldDraw__9daAlink_cFv */
bool daAlink_c::checkShieldDraw() {
return ((checkShieldGet() && mShieldChangeWaitTimer == 0) &&
!checkNoResetFlg2(FLG2_UNK_4080000)) &&
- (!checkWolf() || !dComIfGs_isEventBit(0x0C08));
+ (!checkWolf()
+ /* dSv_event_flag_c::M_068 - Main Event - when OFF, wolf carries sword and shield on back */
+ || !dComIfGs_isEventBit(0x0C08));
}
/* 800CB5F8-800CB694 0C5F38 009C+00 2/2 0/0 0/0 .text checkItemDraw__9daAlink_cFv */
@@ -19198,6 +19216,7 @@ int daAlink_c::draw() {
dComIfGd_setListDark();
modelDraw(mpLinkModel, temp_r30);
+ /* dSv_event_flag_c::M_011 - Inside Hyrule Castle - Midna removes wolf's chains in prison */
if (dComIfGs_isEventBit(0x510)) {
for (int i = 0; i < 4; i++) {
modelDraw(mpWlChainModels[i], temp_r30);