mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-20 05:37:03 -04:00
d_a_player_misc - Several matches/close matches across several files. (#736)
Co-authored-by: < >
This commit is contained in:
@@ -158,6 +158,7 @@ public:
|
||||
daPyRFlg0_GRAB_PUT_START = 0x00400000,
|
||||
daPyRFlg0_TACT_INPUT = 0x01000000,
|
||||
daPyRFlg0_FAIRY_USE = 0x02000000,
|
||||
daPyRFlg0_UNK4000000 = 0x04000000,
|
||||
daPyRFlg0_UNK8000000 = 0x08000000,
|
||||
daPyRFlg0_UNK10000000 = 0x10000000,
|
||||
daPyRFlg0_ARROW_SHOOT = 0x20000000,
|
||||
|
||||
@@ -986,7 +986,7 @@ public:
|
||||
void checkItemAction();
|
||||
void getSlidePolygon();
|
||||
BOOL checkJumpCutFromButton();
|
||||
void orderTalk();
|
||||
int orderTalk();
|
||||
BOOL checkNextActionFromButton();
|
||||
void setShieldGuard();
|
||||
BOOL checkItemModeActorPointer();
|
||||
@@ -1627,7 +1627,7 @@ public:
|
||||
BOOL procPullMove();
|
||||
int changeBottleDrinkFace(int);
|
||||
void setBottleModel(u16);
|
||||
void makeFairy(cXyz*, u32);
|
||||
fopAc_ac_c* makeFairy(cXyz*, u32);
|
||||
BOOL procBottleDrink_init(u16);
|
||||
BOOL procBottleDrink();
|
||||
BOOL procBottleOpen_init(u16);
|
||||
|
||||
@@ -377,6 +377,9 @@ public:
|
||||
|
||||
void setItemBombNumCount(s16 num) { mItemBombNumCount += num; }
|
||||
|
||||
u16 getItemNowLife() { return mItemNowLife; }
|
||||
void setItemNowLife(u16 life) { mItemNowLife = life; }
|
||||
|
||||
f32 getItemLifeCount() { return mItemLifeCount; }
|
||||
void setItemLifeCount(f32 num) { mItemLifeCount += num; }
|
||||
|
||||
@@ -684,7 +687,7 @@ public:
|
||||
/* 0x491E */ s16 mAuctionRupee;
|
||||
/* 0x4920 */ s16 mAuctionGauge;
|
||||
/* 0x4922 */ s16 mItemTimer;
|
||||
/* 0x4924 */ s16 mItemNowLife;
|
||||
/* 0x4924 */ u16 mItemNowLife;
|
||||
/* 0x4926 */ s16 mItemNowRupee;
|
||||
/* 0x4928 */ bool mItemSwimTimerStatus;
|
||||
/* 0x4929 */ u8 field_0x4929;
|
||||
@@ -2226,6 +2229,14 @@ inline void dComIfGp_setMessageSetNumber(s16 num) {
|
||||
g_dComIfG_gameInfo.play.setMessageSetNumber(num);
|
||||
}
|
||||
|
||||
inline u16 dComIfGp_getItemNowLife() {
|
||||
return g_dComIfG_gameInfo.play.getItemNowLife();
|
||||
}
|
||||
|
||||
inline void dComIfGp_setItemNowLife(u16 life) {
|
||||
g_dComIfG_gameInfo.play.setItemNowLife(life);
|
||||
}
|
||||
|
||||
inline f32 dComIfGp_getItemLifeCount() {
|
||||
return g_dComIfG_gameInfo.play.getItemLifeCount();
|
||||
}
|
||||
|
||||
@@ -2,34 +2,92 @@
|
||||
* d_a_player_bottle.inc
|
||||
*
|
||||
* Code relating to various bottled items and bottle interactions.
|
||||
*
|
||||
* This file is not a standalone translation unit and is instead directly
|
||||
*
|
||||
* This file is not a standalone translation unit and is instead directly
|
||||
* included into d_a_player_main.cpp.
|
||||
*
|
||||
* The original name of this file is not known, but a best guess was taken
|
||||
*
|
||||
* The original name of this file is not known, but a best guess was taken
|
||||
* based on the original names of the functions it contains.
|
||||
*/
|
||||
|
||||
#include "d/actor/d_a_player_main.h"
|
||||
#include "d/actor/d_a_player_HIO.h"
|
||||
#include "d/d_camera.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "d/actor/d_a_player_main.h"
|
||||
#include "d/actor/d_a_player_HIO.h"
|
||||
#include "d/d_camera.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "JSystem/J3DGraphLoader/J3DAnmLoader.h"
|
||||
|
||||
/* 80151E40-80151E60 .text changeBottleDrinkFace__9daPy_lk_cFi */
|
||||
int daPy_lk_c::changeBottleDrinkFace(int param_0) {
|
||||
if ((param_0 == 0x55) || (param_0 == 0x54)) {
|
||||
if ((param_0 == dItem_SOUP_BOTTLE_e) || (param_0 == dItem_HALF_SOUP_BOTTLE_e)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 80151E60-80152128 .text setBottleModel__9daPy_lk_cFUs */
|
||||
void daPy_lk_c::setBottleModel(u16) {
|
||||
/* Nonmatching */
|
||||
void daPy_lk_c::setBottleModel(u16 param_0) {
|
||||
mEquipItem = param_0;
|
||||
JKRHeap* oldHeap = setItemHeap();
|
||||
J3DModelData* tmp_modelData = initModel(&mpEquipItemModel, LINK_BDL_BOTTLEEMP, 0x37221222);
|
||||
u8* buffer = new (0x20) u8[0x400];
|
||||
JKRReadIdxResource(buffer, 0x400, LKANM_BTK_TBOTTLE, dComIfGp_getAnmArchive());
|
||||
mpEquipItemBtk = static_cast<J3DAnmTextureSRTKey*>(J3DAnmLoaderDataBase::load(buffer));
|
||||
mpEquipItemBtk->setFrame(0.0f);
|
||||
mpEquipItemBtk->searchUpdateMaterialID(tmp_modelData);
|
||||
tmp_modelData->entryTexMtxAnimator(mpEquipItemBtk);
|
||||
if ((param_0 == dItem_RED_POTION_e) || (param_0 == dItem_GREEN_POTION_e) ||
|
||||
(param_0 == dItem_BLUE_POTION_e) || (param_0 == dItem_HALF_SOUP_BOTTLE_e) ||
|
||||
(param_0 == dItem_SOUP_BOTTLE_e) || (param_0 == dItem_WATER_BOTTLE_e) ||
|
||||
(param_0 == dItem_FOREST_WATER_e))
|
||||
{
|
||||
u16 bdl;
|
||||
if (param_0 == dItem_HALF_SOUP_BOTTLE_e) {
|
||||
bdl = LINK_BDL_BINLIQUIDH;
|
||||
} else {
|
||||
bdl = LINK_BDL_BINLIQUID;
|
||||
}
|
||||
tmp_modelData = initModel(&mpBottleContentsModel, bdl, 0x13000022);
|
||||
buffer = new (0x20) u8[0x400];
|
||||
JKRReadIdxResource(buffer, 0x400, LKANM_BRK_TBINLIQUID, dComIfGp_getAnmArchive());
|
||||
mpEquipItemBrk = static_cast<J3DAnmTevRegKey*>(J3DAnmLoaderDataBase::load(buffer));
|
||||
if (param_0 == dItem_RED_POTION_e) {
|
||||
mpEquipItemBrk->setFrame(0.0f);
|
||||
} else if (param_0 == dItem_GREEN_POTION_e) {
|
||||
mpEquipItemBrk->setFrame(1.0f);
|
||||
} else if (param_0 == dItem_BLUE_POTION_e) {
|
||||
mpEquipItemBrk->setFrame(2.0f);
|
||||
} else if ((param_0 == dItem_SOUP_BOTTLE_e) || (param_0 == dItem_HALF_SOUP_BOTTLE_e)) {
|
||||
mpEquipItemBrk->setFrame(4.0f);
|
||||
} else {
|
||||
mpEquipItemBrk->setFrame(3.0f);
|
||||
}
|
||||
mpEquipItemBrk->searchUpdateMaterialID(tmp_modelData);
|
||||
tmp_modelData->entryTevRegAnimator(mpEquipItemBrk);
|
||||
} else if (param_0 == dItem_FAIRY_BOTTLE_e) {
|
||||
tmp_modelData = initModel(&mpBottleContentsModel, LINK_BDL_BINFAIRY, 0x13000022);
|
||||
} else if (param_0 == dItem_FIREFLY_BOTTLE_e) {
|
||||
tmp_modelData = initModel(&mpBottleContentsModel, LINK_BDL_BINHO, 0x13000022);
|
||||
buffer = new (0x20) u8[0x400];
|
||||
JKRReadIdxResource(buffer, 0x400, LKANM_BRK_TBINHO, dComIfGp_getAnmArchive());
|
||||
mpEquipItemBrk = static_cast<J3DAnmTevRegKey*>(J3DAnmLoaderDataBase::load(buffer));
|
||||
mpEquipItemBrk->searchUpdateMaterialID(tmp_modelData);
|
||||
tmp_modelData->entryTevRegAnimator(mpEquipItemBrk);
|
||||
m3600 = 0.0f;
|
||||
}
|
||||
if ((param_0 != dItem_EMPTY_BOTTLE_e) && (mCurProc != daPyProc_BOTTLE_DRINK_e)) {
|
||||
tmp_modelData = initModel(&mpBottleCapModel, LINK_BDL_BOTTLECAP, 0x13000022);
|
||||
m355E = 1;
|
||||
}
|
||||
mDoExt_setCurrentHeap(oldHeap);
|
||||
if (param_0 == dItem_FOREST_WATER_e) {
|
||||
m32F0.makeEmitter(dPa_name::ID_COMMON_020D, mpEquipItemModel->getBaseTRMtx(), ¤t.pos,
|
||||
NULL);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/* 80152128-801521A0 .text makeFairy__9daPy_lk_cFP4cXyzUl */
|
||||
void daPy_lk_c::makeFairy(cXyz* param_0, u32 param_1) {
|
||||
fopAc_ac_c* daPy_lk_c::makeFairy(cXyz* param_0, u32 param_1) {
|
||||
onResetFlg0(daPyRFlg0_FAIRY_USE);
|
||||
resetCurse();
|
||||
fopAcM_fastCreate(PROC_NPC_FA1, param_1, param_0, fopAcM_GetRoomNo(this), &shape_angle);
|
||||
@@ -67,7 +125,78 @@ BOOL daPy_lk_c::procBottleDrink_init(u16 param_0) {
|
||||
|
||||
/* 80152300-80152624 .text procBottleDrink__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procBottleDrink() {
|
||||
/* Nonmatching */
|
||||
/* Nonmatching - sdata2 */
|
||||
static const GXColor red = {0xC8, 0x00, 0x00, 0xFF};
|
||||
static const GXColor green = {0x00, 0xFA, 0x00, 0xFF};
|
||||
static const GXColor blue = {0x00, 0x32, 0x96, 0xFF};
|
||||
|
||||
setShipRidePosUseItem();
|
||||
J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e];
|
||||
u16 uVar1 = m_anm_heap_under[UNDER_MOVE0_e].mIdx;
|
||||
if (uVar1 == LKANM_BCK_BINDRINKPRE) {
|
||||
if (frameCtrl.getRate() < 0.01f) {
|
||||
setSingleMoveAnime(ANM_BINDRINKING, daPy_HIO_bottle_c0::m.field_0x64, 0.0f, -1, 0.0f);
|
||||
if (changeBottleDrinkFace(mEquipItem)) {
|
||||
setTextureAnime(0x86, 0);
|
||||
}
|
||||
if (mEquipItem != dItem_GREEN_POTION_e) {
|
||||
dComIfGp_setItemLifeCount(dComIfGs_getMaxLife());
|
||||
}
|
||||
if (mEquipItem != dItem_RED_POTION_e) {
|
||||
dComIfGp_setItemMagicCount(dComIfGs_getMaxMagic());
|
||||
}
|
||||
if ((mEquipItem == dItem_SOUP_BOTTLE_e) || (mEquipItem == dItem_HALF_SOUP_BOTTLE_e)) {
|
||||
onNoResetFlg1(daPyFlg1_UNK8000);
|
||||
}
|
||||
resetCurse();
|
||||
} else {
|
||||
if (frameCtrl.checkPass(65.0f)) {
|
||||
voiceStart(39);
|
||||
}
|
||||
}
|
||||
} else if (uVar1 == LKANM_BCK_BINDRINKING) {
|
||||
if ((dComIfGp_getItemNowLife() == dComIfGs_getLife()) &&
|
||||
(dComIfGs_getMagic() == g_dComIfG_gameInfo.play.field_0x48da))
|
||||
{
|
||||
setSingleMoveAnime(ANM_BINDRINKAFTER, 1.0f, daPy_HIO_bottle_c0::m.field_0x68,
|
||||
daPy_HIO_bottle_c0::m.field_0xE, daPy_HIO_bottle_c0::m.field_0x6C);
|
||||
if (changeBottleDrinkFace(mEquipItem)) {
|
||||
setTextureAnime(0x87, 0);
|
||||
}
|
||||
if (mEquipItem == dItem_SOUP_BOTTLE_e) {
|
||||
setBottleModel(dItem_HALF_SOUP_BOTTLE_e);
|
||||
dComIfGs_setEquipBottleItemIn(mReadyItemBtn, dItem_HALF_SOUP_BOTTLE_e);
|
||||
} else {
|
||||
mpBottleContentsModel = NULL;
|
||||
dComIfGs_setEquipBottleItemEmpty(mReadyItemBtn);
|
||||
}
|
||||
const GXColor* p_Var3;
|
||||
if ((mEquipItem != dItem_SOUP_BOTTLE_e) && (mEquipItem != dItem_HALF_SOUP_BOTTLE_e)) {
|
||||
if (mEquipItem == dItem_RED_POTION_e) {
|
||||
p_Var3 = &red;
|
||||
} else if (mEquipItem == dItem_GREEN_POTION_e) {
|
||||
p_Var3 = &green;
|
||||
} else {
|
||||
p_Var3 = &blue;
|
||||
}
|
||||
m33A8.makeEmitterColor(dPa_name::ID_COMMON_0057, mpCLModel->getAnmMtx(0x12),
|
||||
¤t.pos, &shape_angle, p_Var3, NULL);
|
||||
}
|
||||
} else {
|
||||
if (frameCtrl.checkPass(10.0f)) {
|
||||
voiceStart(39);
|
||||
}
|
||||
}
|
||||
} else if (frameCtrl.getRate() < 0.01f) {
|
||||
dComIfGp_event_reset();
|
||||
dCam_getBody()->EndEventCamera(fopAcM_GetID(this));
|
||||
endDemoMode();
|
||||
} else {
|
||||
if (frameCtrl.checkPass(8.0f)) {
|
||||
voiceStart(40);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80152624-801527CC .text procBottleOpen_init__9daPy_lk_cFUs */
|
||||
@@ -132,7 +261,7 @@ BOOL daPy_lk_c::procBottleSwing_init(int param_0) {
|
||||
commonProcInit(daPyProc_BOTTLE_SWING_e);
|
||||
if ((int)param_0 != 0) {
|
||||
deleteEquipItem(FALSE);
|
||||
setBottleModel(0x50);
|
||||
setBottleModel(dItem_EMPTY_BOTTLE_e);
|
||||
}
|
||||
current.angle.y = shape_angle.y;
|
||||
mVelocity = 0.0f;
|
||||
@@ -177,7 +306,68 @@ BOOL daPy_lk_c::procBottleSwing_init(int param_0) {
|
||||
|
||||
/* 80153064-80153338 .text procBottleSwing__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procBottleSwing() {
|
||||
/* Nonmatching */
|
||||
setShipRidePosUseItem();
|
||||
if (m3570 == 0) {
|
||||
if (eventInfo.checkCommandCatch()) {
|
||||
m3570 = 1;
|
||||
u8 bVar5 = dComIfGp_event_getPreItemNo();
|
||||
if (bVar5 == dItem_WATER_BOTTLE_e) {
|
||||
seStartOnlyReverb(JA_SE_LK_SCOOP_WATER);
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "Omori")) {
|
||||
bVar5 = dItem_FOREST_WATER_e;
|
||||
if (dComIfGs_checkBottle(89)) {
|
||||
m3628 = fpcM_ERROR_PROCESS_ID_e;
|
||||
m3574 = 1;
|
||||
} else {
|
||||
dComIfGs_getpItemRecord()->resetTimer(36000);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (m3574 == 0) {
|
||||
setBottleModel(bVar5);
|
||||
dComIfGs_setEquipBottleItemIn(mReadyItemBtn, mEquipItem);
|
||||
m355E = 0;
|
||||
}
|
||||
mDemo.setDemoType(5);
|
||||
} else {
|
||||
if ((((mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= 1.0f) &&
|
||||
(mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() <= 4.0f)) &&
|
||||
(getReadyItem() == dItem_EMPTY_BOTTLE_e)) &&
|
||||
((dComIfGp_att_getCatghTarget() != NULL) || (m35D0 > current.pos.y + 10.0f)))
|
||||
{
|
||||
fopAcM_orderCatchEvent(this, dComIfGp_att_getCatghTarget());
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) || (m34D4 != 0)) {
|
||||
if (m3574 != 0) {
|
||||
if (m34D4 == 0) {
|
||||
offModeFlg(ModeFlg_00000400);
|
||||
onModeFlg(ModeFlg_00000100);
|
||||
setBlendMoveAnime(daPy_HIO_basic_c0::m.field_0xC);
|
||||
m34D4 = 1;
|
||||
}
|
||||
if (checkEndMessage(0x14a2)) {
|
||||
dComIfGp_event_reset();
|
||||
endDemoMode();
|
||||
}
|
||||
} else {
|
||||
if (m3570 != 0) {
|
||||
procBottleGet_init();
|
||||
} else {
|
||||
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
||||
procShipPaddle_init();
|
||||
} else {
|
||||
checkNextMode(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > m35A0) {
|
||||
if ((m3570 == 0) && (!dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e))) {
|
||||
checkNextMode(1);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80153338-80153438 .text procBottleGet_init__9daPy_lk_cFv */
|
||||
|
||||
@@ -654,7 +654,7 @@ void daPy_lk_c::dProcLavaDamage_init_sub() {
|
||||
speed.y = daPy_HIO_restart_c0::m.field_0x8;
|
||||
m3570 = 0;
|
||||
voiceStart(4);
|
||||
seStartMapInfo(0x3810);
|
||||
seStartMapInfo(JA_SE_LK_FALL_MAGMA);
|
||||
gravity = daPy_HIO_autoJump_c0::m.field_0xC;
|
||||
mDemo.setDemoType(5);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK10000000_e);
|
||||
@@ -713,7 +713,7 @@ void daPy_lk_c::dProcFreezeDamage_init_sub(int param_0) {
|
||||
onNoResetFlg1(daPyFlg1_FREEZE_STATE);
|
||||
offNoResetFlg1(daPyFlg1_UNK40000);
|
||||
mDoGph_gInf_c::fadeOut(1.0f, l_freeze_fade_color);
|
||||
seStartMapInfo(0x2878);
|
||||
seStartMapInfo(JA_SE_LK_FREEZE);
|
||||
for (int i = 0; i < 5; i++) {
|
||||
const u16* uVar1 = eff_joint;
|
||||
MtxP pMVar2 = mpCLModel->getAnmMtx(uVar1[i]);
|
||||
|
||||
@@ -1687,7 +1687,7 @@ BOOL daPy_lk_c::checkJumpCutFromButton() {
|
||||
}
|
||||
|
||||
/* 8010D8B0-8010DB58 .text orderTalk__9daPy_lk_cFv */
|
||||
void daPy_lk_c::orderTalk() {
|
||||
int daPy_lk_c::orderTalk() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
@@ -92,8 +92,8 @@ BOOL daPy_lk_c::procPushPullWait() {
|
||||
s16 sVar1 = cLib_addCalcAngleS(&shape_angle.y, m34D4, 3, 0x800, 0x100);
|
||||
current.angle.y = shape_angle.y;
|
||||
f32 dVar2 = cLib_addCalc(¤t.pos.x, m370C.x, 0.5f, 10.0f, 1.0f);
|
||||
f32 dVar3 = cLib_addCalc(¤t.pos.z, m370C.z, 0.5f, 10.0f, 1.0f);
|
||||
if (((!sVar1) && ((float)(dVar2 + dVar3) < 5.0f)) && (m_anm_heap_upper[UPPER_MOVE2_e].mIdx == 0xffff)) {
|
||||
dVar2 += cLib_addCalc(¤t.pos.z, m370C.z, 0.5f, 10.0f, 1.0f);
|
||||
if (((!sVar1) && (dVar2 < 5.0f)) && (m_anm_heap_upper[UPPER_MOVE2_e].mIdx == 0xffff)) {
|
||||
current.pos.x = m370C.x;
|
||||
current.pos.z = m370C.z;
|
||||
m3570 = 0;
|
||||
|
||||
+413
-22
@@ -2,21 +2,24 @@
|
||||
* d_a_player_ship.inc
|
||||
*
|
||||
* Code relating to interacting with and controlling The King of Red Lions.
|
||||
*
|
||||
* This file is not a standalone translation unit and is instead directly
|
||||
*
|
||||
* This file is not a standalone translation unit and is instead directly
|
||||
* included into d_a_player_main.cpp.
|
||||
*
|
||||
* The original name of this file is not known, but a best guess was taken
|
||||
*
|
||||
* The original name of this file is not known, but a best guess was taken
|
||||
* based on the original names of the functions it contains.
|
||||
*/
|
||||
|
||||
#include "d/actor/d_a_boomerang.h"
|
||||
#include "d/actor/d_a_hookshot.h"
|
||||
#include "d/actor/d_a_player_HIO.h"
|
||||
#include "d/actor/d_a_player_main.h"
|
||||
#include "d/actor/d_a_player_main_data.h"
|
||||
#include "d/actor/d_a_player_HIO.h"
|
||||
#include "d/actor/d_a_ship.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_kankyo_wether.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "f_op/f_op_camera_mng.h"
|
||||
|
||||
/* 8013F848-8013F8AC .text shipSpecialDemoStart__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::shipSpecialDemoStart() {
|
||||
@@ -83,7 +86,7 @@ void daPy_lk_c::initShipRideUseItem(int param_1, int param_2) {
|
||||
if (param_1 == 0) {
|
||||
return;
|
||||
}
|
||||
dComIfGp_getShipActor()->m034D = 2; // TODO probably inline setter
|
||||
dComIfGp_getShipActor()->m034D = 2; // TODO probably inline setter
|
||||
gravity = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
if (param_1 == 1) {
|
||||
@@ -150,9 +153,8 @@ void daPy_lk_c::setShipRidePos(int param_0) {
|
||||
if (fVar2 > 1.0f) {
|
||||
fVar2 = 1.0f;
|
||||
}
|
||||
mFrameCtrlUpper[UPPER_MOVE2_e].setRate(
|
||||
(1.0f - daPy_HIO_ship_c0::m.field_0xC) * fVar2 + daPy_HIO_ship_c0::m.field_0xC
|
||||
);
|
||||
mFrameCtrlUpper[UPPER_MOVE2_e].setRate((1.0f - daPy_HIO_ship_c0::m.field_0xC) * fVar2 +
|
||||
daPy_HIO_ship_c0::m.field_0xC);
|
||||
if ((iVar1->mStateFlag & 0x40) != 0) {
|
||||
if (iVar1->m03E4 > 0.6f) {
|
||||
voiceStart(6);
|
||||
@@ -246,7 +248,141 @@ void daPy_lk_c::setShipAttnetionBodyAngle() {
|
||||
|
||||
/* 801405F0-80140C88 .text changeShipEndProc__9daPy_lk_cFv */
|
||||
int daPy_lk_c::changeShipEndProc() {
|
||||
/* Nonmatching */
|
||||
/* Nonmatching - branching */
|
||||
daBoomerang_c* pfVar4;
|
||||
|
||||
daShip_c* ship = (daShip_c*)dComIfGp_getShipActor();
|
||||
if (ship == NULL) {
|
||||
return checkNextMode(0);
|
||||
}
|
||||
offNoResetFlg0(daPyFlg0_SHIP_DROP);
|
||||
if (doTrigger()) {
|
||||
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
|
||||
if (pfVar4 != NULL) {
|
||||
pfVar4->onCancelFlg();
|
||||
}
|
||||
}
|
||||
if (((((mCurProc != daPyProc_SHIP_SCOPE_e) && (mCurProc != daPyProc_SHIP_BOW_e)) &&
|
||||
(mCurProc != daPyProc_SHIP_HOOKSHOT_e)) &&
|
||||
((mCurProc != daPyProc_SHIP_BOOMERANG_e || (mEquipItem != dItem_BOOMERANG_e)))) &&
|
||||
((ship->mStateFlag & 1) == 0))
|
||||
{
|
||||
setTalkStatus();
|
||||
if (orderTalk()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if ((dComIfGp_getMiniGameType() != 1) && (ship->speedF < 3.0f)) {
|
||||
if (ship->m1044.absXZ() < 3.0f) {
|
||||
if (((!checkShipNotNormalMode() ||
|
||||
(m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_FREEA)) ||
|
||||
(m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_FREEB)) ||
|
||||
(m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_FREED))
|
||||
{
|
||||
if (((!dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK2000_e) &&
|
||||
(!spActionButton())) &&
|
||||
((dComIfGp_getDoStatus() == 0 && (mCurProc == daPyProc_SHIP_PADDLE_e)))))
|
||||
{
|
||||
if ((!ship->checkForceMove()) && (dComIfGp_setDoStatus(29), doTrigger())) {
|
||||
return procShipGetOff_init();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((mCurProc != daPyProc_SHIP_SCOPE_e) && ((ship->mStateFlag & 1) == 0)) {
|
||||
if (dComIfGp_getDoStatus() == 0) {
|
||||
if ((ship->mShipMode == 1) || (ship->checkForceMove()) ||
|
||||
(((ship->speedF < 3.0f) && (ship->mShipMode != 0))))
|
||||
{
|
||||
dComIfGp_setDoStatus(8);
|
||||
}
|
||||
}
|
||||
if (checkSetItemTrigger(NORMAL_SAIL, 1)) {
|
||||
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
|
||||
if (pfVar4 != NULL) {
|
||||
pfVar4->onCancelFlg();
|
||||
}
|
||||
procShipSteer_init();
|
||||
} else if (checkSetItemTrigger(dItem_BOMB_BAG_e, 1)) {
|
||||
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
|
||||
if (pfVar4 != NULL) {
|
||||
pfVar4->onCancelFlg();
|
||||
}
|
||||
procShipCannon_init();
|
||||
} else if (checkSetItemTrigger(dItem_GRAPPLING_HOOK_e, 1)) {
|
||||
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
|
||||
if (pfVar4 != NULL) {
|
||||
pfVar4->onCancelFlg();
|
||||
}
|
||||
procShipCrane_init();
|
||||
} else if (checkSetItemTrigger(dItem_TELESCOPE_e, 1)) {
|
||||
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
|
||||
if (pfVar4 != NULL) {
|
||||
pfVar4->onCancelFlg();
|
||||
}
|
||||
procShipScope_init(1);
|
||||
} else if (checkSetItemTrigger(daPyItem_PHOTOBOX_e, 1)) {
|
||||
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
|
||||
if (pfVar4 != NULL) {
|
||||
pfVar4->onCancelFlg();
|
||||
}
|
||||
procShipScope_init(0);
|
||||
} else if (checkSetItemTrigger(daPyItem_BOW_e, 1)) {
|
||||
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
|
||||
if (pfVar4 != NULL) {
|
||||
pfVar4->onCancelFlg();
|
||||
}
|
||||
procShipBow_init();
|
||||
} else if ((checkSetItemTrigger(dItem_BOOMERANG_e, 1)) &&
|
||||
(mActorKeepThrow.getActor() == NULL))
|
||||
{
|
||||
procShipBoomerang_init();
|
||||
} else if (checkSetItemTrigger(dItem_HOOKSHOT_e, 1)) {
|
||||
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
|
||||
if (pfVar4 != NULL) {
|
||||
pfVar4->onCancelFlg();
|
||||
}
|
||||
procShipHookshot_init();
|
||||
} else if (checkSetItemTrigger(dItem_WIND_WAKER_e, 1)) {
|
||||
pfVar4 = (daBoomerang_c*)mActorKeepThrow.getActor();
|
||||
if (pfVar4 != NULL) {
|
||||
pfVar4->onCancelFlg();
|
||||
}
|
||||
procTactWait_init(-1);
|
||||
} else if (checkSetItemTrigger(dItem_TINGLE_TUNER_e, 1)) {
|
||||
fopAcM_orderTalkEvent(this, (fopAc_ac_c*)dComIfGp_getAgb());
|
||||
if (checkShipNotNormalMode()) {
|
||||
setShipRidePos(0);
|
||||
} else {
|
||||
setShipRidePos(1);
|
||||
}
|
||||
return true;
|
||||
} else if (checkSetItemTrigger(dItem_MAGIC_ARMOR_e, 1)) {
|
||||
if (checkShipNotNormalMode()) {
|
||||
setShipRidePos(0);
|
||||
} else {
|
||||
setShipRidePos(1);
|
||||
}
|
||||
changeDragonShield(1);
|
||||
} else if (checkSetItemTrigger(daPyItem_DRINK_BOTTLE_e, 0)) {
|
||||
procBottleDrink_init(dComIfGp_getSelectItem(mReadyItemBtn));
|
||||
} else if (checkSetItemTrigger(dItem_FAIRY_BOTTLE_e, 0)) {
|
||||
procBottleOpen_init(0x57);
|
||||
} else if (checkSetItemTrigger(daPyItem_OPEN_BOTTLE_e, 1)) {
|
||||
procBottleOpen_init(dComIfGp_getSelectItem(mReadyItemBtn));
|
||||
} else if (checkSetItemTrigger(dItem_EMPTY_BOTTLE_e, 1)) {
|
||||
procBottleSwing_init(1);
|
||||
} else if (checkSetItemTrigger(dItem_HYOI_PEAR_e, 1)) {
|
||||
procFoodSet_init();
|
||||
} else if (checkSetItemTrigger(daPyItem_ESA_e, 1)) {
|
||||
procFoodThrow_init();
|
||||
} else if ((doTrigger()) && (dComIfGp_getDoStatus() == 8)) {
|
||||
procShipPaddle_init();
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80140C88-80140D04 .text initShipBaseAnime__9daPy_lk_cFv */
|
||||
@@ -280,13 +416,9 @@ BOOL daPy_lk_c::procShipReady_init() {
|
||||
commonProcInit(daPyProc_SHIP_READY_e);
|
||||
deleteEquipItem(TRUE);
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
setSingleMoveAnime(
|
||||
ANM_VJMPCL,
|
||||
daPy_HIO_wallCatch_c0::m.field_0x24,
|
||||
daPy_HIO_wallCatch_c0::m.field_0x2C,
|
||||
daPy_HIO_wallCatch_c0::m.field_0x4,
|
||||
daPy_HIO_wallCatch_c0::m.field_0x28
|
||||
);
|
||||
setSingleMoveAnime(ANM_VJMPCL, daPy_HIO_wallCatch_c0::m.field_0x24,
|
||||
daPy_HIO_wallCatch_c0::m.field_0x2C, daPy_HIO_wallCatch_c0::m.field_0x4,
|
||||
daPy_HIO_wallCatch_c0::m.field_0x28);
|
||||
gravity = 0.0f;
|
||||
mVelocity = 0.0f;
|
||||
s16 sVar3 = fopAcM_searchActorAngleY((fopAc_ac_c*)iVar1, this);
|
||||
@@ -446,6 +578,78 @@ BOOL daPy_lk_c::procShipPaddle_init() {
|
||||
/* 801413A4-801416BC .text procShipPaddle__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipPaddle() {
|
||||
/* Nonmatching */
|
||||
bool bVar2;
|
||||
int iVar3;
|
||||
int iVar4;
|
||||
daPy_ANM dVar5;
|
||||
float dVar6;
|
||||
|
||||
if (changeShipEndProc()) {
|
||||
return true;
|
||||
}
|
||||
setShipRidePos(1);
|
||||
dComIfGp_setRStatus(0x2c);
|
||||
if ((dComIfGp_getDoStatus() == 0) && (dComIfGp_getShipActor()->speedF >= 3.0f)) {
|
||||
dComIfGp_setDoStatus(19);
|
||||
}
|
||||
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK2000_e)) {
|
||||
dComIfGp_setAStatus(7);
|
||||
if (checkSubjectEnd(1)) {
|
||||
dComIfGp_clearPlayerStatus0(0, daPyStts0_UNK2000_e);
|
||||
}
|
||||
} else {
|
||||
onResetFlg0(daPyRFlg0_UNK4000000);
|
||||
if (((dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x1000))) &&
|
||||
(dComIfGp_event_runCheck() == 0))
|
||||
{
|
||||
setSubjectMode();
|
||||
}
|
||||
}
|
||||
daShip_c* ship = (daShip_c*)dComIfGp_getShipActor();
|
||||
if ((m34D0 == -1) || (m34D0 == -2)) {
|
||||
if (m34D0 == -2) {
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].checkPass(168.0f)) {
|
||||
voiceStart(48);
|
||||
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].checkPass(105.0f)) {
|
||||
voiceStart(47);
|
||||
}
|
||||
}
|
||||
if ((!(mStickDistance > 0.05f) && (!dComIfGp_event_runCheck())) &&
|
||||
(dComIfGp_getDoStatus() == 29))
|
||||
{
|
||||
if ((!ship->checkForceMove()) && !(mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f))
|
||||
goto LAB_801416a4;
|
||||
}
|
||||
initShipBaseAnime();
|
||||
m34D0 = cM_rndF(150.0f) + 300.0f;
|
||||
} else {
|
||||
if (((!dComIfGp_event_runCheck()) && (dComIfGp_getDoStatus() == 29)) &&
|
||||
(mStickDistance <= 0.05f))
|
||||
{
|
||||
if ((!ship->checkForceMove()) && (!checkShipNotNormalMode())) {
|
||||
m34D0--;
|
||||
if (m34D0 == 0) {
|
||||
dVar6 = cM_rnd();
|
||||
m34D0 = -1;
|
||||
if (dVar6 < 0.3333f) {
|
||||
dVar5 = ANM_FREEA;
|
||||
} else {
|
||||
if (dVar6 < 0.6666f) {
|
||||
dVar5 = ANM_FREEB;
|
||||
m34D0 = -2;
|
||||
} else {
|
||||
dVar5 = ANM_FREED;
|
||||
}
|
||||
}
|
||||
setSingleMoveAnime(dVar5, 1.0f, 0.0f, -1, 5.0f);
|
||||
}
|
||||
goto LAB_801416a4;
|
||||
}
|
||||
}
|
||||
m34D0 = cM_rndF(150.0f) + 300.0f;
|
||||
}
|
||||
LAB_801416a4:
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 801416BC-801417EC .text procShipScope_init__9daPy_lk_cFi */
|
||||
@@ -473,7 +677,24 @@ BOOL daPy_lk_c::procShipScope_init(int param_0) {
|
||||
|
||||
/* 801417EC-801418B4 .text procShipScope__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipScope() {
|
||||
/* Nonmatching */
|
||||
int iVar2 = 1;
|
||||
if (changeShipEndProc()) {
|
||||
return true;
|
||||
}
|
||||
if (checkScopeEnd()) {
|
||||
procShipPaddle_init();
|
||||
} else {
|
||||
if ((((dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x10))) &&
|
||||
(!dComIfGp_event_runCheck())) &&
|
||||
(mDemo.getDemoType() == 0))
|
||||
{
|
||||
shape_angle.y = fopCamM_GetAngleY(dComIfGp_getCamera(mCameraInfoIdx));
|
||||
iVar2 = 0;
|
||||
}
|
||||
}
|
||||
offNoResetFlg0(daPyFlg0_SCOPE_CANCEL);
|
||||
setShipRidePos(iVar2);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 801418B4-801419B4 .text procShipBoomerang_init__9daPy_lk_cFv */
|
||||
@@ -501,7 +722,61 @@ BOOL daPy_lk_c::procShipBoomerang_init() {
|
||||
|
||||
/* 801419B4-80141BB0 .text procShipBoomerang__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipBoomerang() {
|
||||
/* Nonmatching */
|
||||
if (changeShipEndProc()) {
|
||||
dComIfGp_clearPlayerStatus0(0, daPyStts0_BOOMERANG_WAIT_e);
|
||||
return true;
|
||||
} else {
|
||||
setShipRidePos(0);
|
||||
if (mActorKeepThrow.getActor() == NULL) {
|
||||
if (m_anm_heap_upper[UPPER_MOVE2_e].mIdx != LKANM_BCK_BOOMCATCH) {
|
||||
dComIfGp_setDoStatus(7);
|
||||
if (doTrigger()) {
|
||||
{
|
||||
procShipPaddle_init();
|
||||
deleteEquipItem(TRUE);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
mSightPacket.offDrawFlg();
|
||||
daShip_c* ship = (daShip_c*)dComIfGp_getShipActor();
|
||||
if (m_anm_heap_upper[UPPER_MOVE2_e].mIdx != LKANM_BCK_BOOMCATCH) {
|
||||
if (mEquipItem == dItem_BOOMERANG_e) {
|
||||
if (m_anm_heap_upper[UPPER_MOVE2_e].mIdx == LKANM_BCK_BOOMWAIT) {
|
||||
setShipAttentionAnmSpeed(daPy_HIO_boom_c0::m.field_0x18);
|
||||
checkNextActionBoomerangReady();
|
||||
if (mpAttention->Lockon()) {
|
||||
setShipAttnetionBodyAngle();
|
||||
} else {
|
||||
m34DA = 0;
|
||||
if (setBodyAngleToCamera()) {
|
||||
daBoomerang_c* this_01 = (daBoomerang_c*)mActorKeepEquip.getActor();
|
||||
if (this_01 != NULL) {
|
||||
{
|
||||
cXyz local_28;
|
||||
checkSightLine(this_01->getFlyMax(), &local_28);
|
||||
mSightPacket.setPos(&local_28);
|
||||
mSightPacket.onDrawFlg();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (mpAttnActorLockOn == NULL) {
|
||||
shape_angle.y += (s16)(ship->shape_angle.y - m34D4);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mActorKeepThrow.getActor() == NULL) {
|
||||
return procShipPaddle_init();
|
||||
}
|
||||
setShapeAngleToAtnActor();
|
||||
mFrameCtrlUnder[UNDER_MOVE0_e].setRate(daPy_HIO_atnMove_c0::m.field_0x24);
|
||||
}
|
||||
}
|
||||
m34D4 = ship->shape_angle.y;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80141BB0-80141CF8 .text procShipHookshot_init__9daPy_lk_cFv */
|
||||
@@ -535,7 +810,54 @@ BOOL daPy_lk_c::procShipHookshot_init() {
|
||||
|
||||
/* 80141CF8-80141F2C .text procShipHookshot__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipHookshot() {
|
||||
/* Nonmatching */
|
||||
/* Nonmatching - regalloc */
|
||||
if (changeShipEndProc()) {
|
||||
return true;
|
||||
}
|
||||
setShipRidePos(0);
|
||||
dComIfGp_setDoStatus(7);
|
||||
daHookshot_c* pfVar4 = (daHookshot_c*)mActorKeepEquip.getActor();
|
||||
if (((doTrigger()) || (pfVar4 == NULL)) ||
|
||||
((m3570 != 0) && (m355E == 0)) && (!mpAttention->Lockon()))
|
||||
{
|
||||
procShipPaddle_init();
|
||||
deleteEquipItem(TRUE);
|
||||
return true;
|
||||
} else {
|
||||
mSightPacket.offDrawFlg();
|
||||
checkNextActionHookshotReady();
|
||||
daShip_c* ship = (daShip_c*)dComIfGp_getShipActor();
|
||||
if (pfVar4->checkWait()) {
|
||||
setShipAttentionAnmSpeed(1.0f);
|
||||
}
|
||||
if (mpAttention->Lockon()) {
|
||||
if (pfVar4->checkWait()) {
|
||||
setShipAttnetionBodyAngle();
|
||||
} else {
|
||||
m34DA = 0;
|
||||
}
|
||||
m3570 = 1;
|
||||
} else {
|
||||
m34DA = 0;
|
||||
setBodyAngleToCamera();
|
||||
m3570 = 0;
|
||||
}
|
||||
if (mpAttnActorLockOn == NULL) {
|
||||
shape_angle.y += (s16)(ship->shape_angle.y - m34D4);
|
||||
}
|
||||
if (pfVar4->checkWait()) {
|
||||
if (!mpAttention->Lockon()) {
|
||||
setHookshotSight();
|
||||
} else {
|
||||
mSightPacket.offDrawFlg();
|
||||
}
|
||||
dComIfGp_clearPlayerStatus0(0, daPyStts0_UNK40000_e);
|
||||
} else {
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK40000_e);
|
||||
}
|
||||
m34D4 = ship->shape_angle.y;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80141F2C-80142084 .text procShipBow_init__9daPy_lk_cFv */
|
||||
@@ -572,7 +894,41 @@ BOOL daPy_lk_c::procShipBow_init() {
|
||||
|
||||
/* 80142084-80142250 .text procShipBow__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipBow() {
|
||||
/* Nonmatching */
|
||||
if ((mDemo.getDemoMode() != 0x44) && (changeShipEndProc())) {
|
||||
return true;
|
||||
}
|
||||
setShipRidePos(0);
|
||||
if (mDemo.getDemoMode() != 0x44) {
|
||||
dComIfGp_setDoStatus(7);
|
||||
if ((doTrigger()) ||
|
||||
(((!mpAttention->Lockon()) && (mActorKeepEquip.getActor() == NULL)) && (m3570 != 0)))
|
||||
{
|
||||
procShipPaddle_init();
|
||||
deleteEquipItem(TRUE);
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
dComIfGp_evmng_cutEnd(mStaffIdx);
|
||||
}
|
||||
daShip_c* iVar1 = (daShip_c*)dComIfGp_getShipActor();
|
||||
if (m_anm_heap_upper[UPPER_MOVE2_e].mIdx == LKANM_BCK_BOWWAIT) {
|
||||
setShipAttentionAnmSpeed(1.0f);
|
||||
}
|
||||
if ((mpAttention->Lockon()) && (mDemo.getDemoMode() != 0x44)) {
|
||||
setShipAttnetionBodyAngle();
|
||||
m3570 = 1;
|
||||
} else {
|
||||
m34DA = 0;
|
||||
setBodyAngleToCamera();
|
||||
m3570 = 0;
|
||||
}
|
||||
if (mpAttnActorLockOn == NULL) {
|
||||
shape_angle.y += (s16)(iVar1->shape_angle.y - m34D4);
|
||||
}
|
||||
m34D4 = iVar1->shape_angle.y;
|
||||
checkNextActionBowReady();
|
||||
m35EC = mFrameCtrlUpper[UPPER_MOVE2_e].getFrame();
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80142250-80142300 .text procShipCannon_init__9daPy_lk_cFv */
|
||||
@@ -663,7 +1019,42 @@ BOOL daPy_lk_c::procShipGetOff_init() {
|
||||
|
||||
/* 80142A5C-80142C08 .text procShipGetOff__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procShipGetOff() {
|
||||
/* Nonmatching */
|
||||
/* Nonmatching - branching */
|
||||
daShip_c* iVar1 = dComIfGp_getShipActor();
|
||||
if (iVar1 == 0) {
|
||||
checkNextMode(0);
|
||||
} else if (m3570 == 0) {
|
||||
current.pos.y = current.pos.y + (iVar1->current.pos.y - m35A0);
|
||||
cLib_chaseF(¤t.pos.y, iVar1->current.pos.y + l_ship_ledge.y, 4.0f);
|
||||
m35A0 = iVar1->current.pos.y;
|
||||
s16 sVar3 = cLib_targetAngleY(¤t.pos, &m370C);
|
||||
if (cLib_distanceAngleS(sVar3, shape_angle.y) >= 0x4000) {
|
||||
setSingleMoveAnime(
|
||||
ANM_JMPST, daPy_HIO_autoJump_c0::m.field_0x20, daPy_HIO_autoJump_c0::m.field_0x2C,
|
||||
daPy_HIO_autoJump_c0::m.field_0x2, daPy_HIO_autoJump_c0::m.field_0x30);
|
||||
gravity = daPy_HIO_autoJump_c0::m.field_0xC;
|
||||
mVelocity = daPy_HIO_ship_c0::m.field_0x10;
|
||||
speed.y = daPy_HIO_ship_c0::m.field_0x14;
|
||||
m3570 = 1;
|
||||
m34C2 = 1;
|
||||
iVar1->m034D = 6;
|
||||
onModeFlg(ModeFlg_MIDAIR);
|
||||
}
|
||||
} else {
|
||||
m34C2 = 1;
|
||||
dComIfGp_evmng_cutEnd(mStaffIdx);
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
changeLandProc(daPy_HIO_autoJump_c0::m.field_0x24);
|
||||
} else {
|
||||
if (checkFanGlideProc(0)) {
|
||||
return true;
|
||||
} else if (speed.y < -gravity) {
|
||||
procFall_init(0, daPy_HIO_smallJump_c0::m.field_0x18);
|
||||
setTextureAnime(0x37, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80142C08-80142C9C .text procShipRestart_init__9daPy_lk_cFv */
|
||||
|
||||
@@ -2,17 +2,18 @@
|
||||
* d_a_player_sword.inc
|
||||
*
|
||||
* Code relating using a sword item.
|
||||
*
|
||||
* This file is not a standalone translation unit and is instead directly
|
||||
*
|
||||
* This file is not a standalone translation unit and is instead directly
|
||||
* included into d_a_player_main.cpp.
|
||||
*
|
||||
*
|
||||
* The original name of this file is known because of an assert contained within
|
||||
* a function from this file.
|
||||
*/
|
||||
|
||||
#include "d/actor/d_a_player_main.h"
|
||||
#include "d/actor/d_a_player_HIO.h"
|
||||
#include "JSystem/J3DGraphLoader/J3DAnmLoader.h"
|
||||
#include "d/actor/d_a_boko.h"
|
||||
#include "d/actor/d_a_player_main.h"
|
||||
#include "d/actor/d_a_player_HIO.h"
|
||||
#include "JSystem/J3DGraphLoader/J3DAnmLoader.h"
|
||||
|
||||
/* 80154B80-80154FBC .text setSwordModel__9daPy_lk_cFi */
|
||||
void daPy_lk_c::setSwordModel(BOOL r28) {
|
||||
@@ -125,9 +126,110 @@ void daPy_lk_c::setSwordModel(BOOL r28) {
|
||||
|
||||
/* 80154FBC-80155490 .text setLightSaver__9daPy_lk_cFv */
|
||||
void daPy_lk_c::setLightSaver() {
|
||||
/* Nonmatching */
|
||||
/* Nonmatching - floats, .sdata2, branching */
|
||||
static JGeometry::TVec3<f32> d_scale(1.4f, 1.4f, 1.4f);
|
||||
static JGeometry::TVec3<f32> p_scale(1.6f, 1.4f, 1.4f);
|
||||
static const GXColor g_prm0 = {0x09, 0x14, 0x06, 0xFF};
|
||||
static const GXColor g_env0 = {0x0C, 0x18, 0x00, 0xFF};
|
||||
static const GXColor y_prm0 = {0x14, 0x12, 0x0C, 0xFF};
|
||||
static const GXColor y_env0 = {0x18, 0x18, 0x00, 0xFF};
|
||||
static const GXColor g_prm1 = {0x80, 0xFF, 0x64, 0xFF};
|
||||
static const GXColor y_prm1 = {0xFF, 0xFF, 0xC8, 0xFF};
|
||||
static const GXColor y_env1 = {0xA5, 0xA5, 0x10, 0xFF};
|
||||
static const GXColor s_prm1 = {0xC8, 0xC8, 0xFF, 0xFF};
|
||||
static const GXColor s_env1 = {0x60, 0x60, 0xA5, 0xFF};
|
||||
JPABaseEmitter* pJVar7;
|
||||
const GXColor* pbVar8;
|
||||
const GXColor* pbVar9;
|
||||
|
||||
if ((((mEquipItem == daPyItem_SWORD_e) && (mpEquipItemBrk != NULL)) && (mpSwordBtk != NULL)) &&
|
||||
((mpSwordModel1 != NULL && (mpEquipItemModel == NULL))))
|
||||
{
|
||||
if (checkChanceMode()) {
|
||||
mpEquipItemBrk->setFrame(1.0f);
|
||||
} else {
|
||||
if (checkNoResetFlg1(daPyFlg1_UNK8000)) {
|
||||
mpEquipItemBrk->setFrame(0.0f);
|
||||
} else {
|
||||
mpEquipItemBrk->setFrame(2.0f);
|
||||
}
|
||||
}
|
||||
mpSwordModel1->setBaseTRMtx(mpEquipItemModel->getBaseTRMtx());
|
||||
if ((!checkDemoSwordNoDraw(0)) &&
|
||||
(((checkChanceMode() || (checkNoResetFlg1(daPyFlg1_UNK8000))) ||
|
||||
(checkFinalMasterSwordEquip()))))
|
||||
{
|
||||
simpleAnmPlay(mpSwordBtk);
|
||||
if (((m3454).mpEmitter == NULL) &&
|
||||
((checkChanceMode() || (checkNoResetFlg1(daPyFlg1_UNK8000)))))
|
||||
{
|
||||
pJVar7 = m3454.makeEmitter(dPa_name::ID_COMMON_0309, mpSwordModel1->getAnmMtx(2),
|
||||
¤t.pos, NULL);
|
||||
if (pJVar7 != 0) {
|
||||
if (checkMasterSwordEquip()) {
|
||||
pJVar7->setGlobalDynamicsScale(d_scale);
|
||||
pJVar7->setGlobalParticleScale(p_scale);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ((!checkChanceMode()) &&
|
||||
((!checkNoResetFlg1(daPyFlg1_UNK8000) && (checkFinalMasterSwordEquip()))))
|
||||
{
|
||||
m3454.end();
|
||||
}
|
||||
}
|
||||
if (checkChanceMode()) {
|
||||
pbVar8 = &g_prm0;
|
||||
pbVar9 = &g_env0;
|
||||
} else {
|
||||
pbVar8 = &y_prm0;
|
||||
pbVar9 = &y_env0;
|
||||
}
|
||||
pJVar7 = (m3454).mpEmitter;
|
||||
if (pJVar7 != NULL) {
|
||||
pJVar7->setGlobalPrmColor(pbVar8->r, pbVar8->g, pbVar8->b);
|
||||
pJVar7->setGlobalEnvColor(pbVar9->r, pbVar9->g, pbVar9->b);
|
||||
}
|
||||
if (((dComIfGp_getDoStatus() == 26) && (m355C == 0)) ||
|
||||
(((checkNoResetFlg1(daPyFlg1_UNK8000) || (checkFinalMasterSwordEquip())) &&
|
||||
(!checkNoResetFlg1(daPyFlg1_UNK200000)))))
|
||||
{
|
||||
if ((dComIfGp_getDoStatus() == 26) && (m355C == 0)) {
|
||||
pbVar9 = &g_prm1;
|
||||
pbVar8 = pbVar9;
|
||||
dComIfGp_getVibration().StartShock(6, 1, cXyz(0.0f, 1.0f, 0.0f));
|
||||
} else if (checkNoResetFlg1(daPyFlg1_UNK8000)) {
|
||||
pbVar9 = &y_prm1;
|
||||
pbVar8 = &y_env1;
|
||||
} else {
|
||||
pbVar9 = &s_prm1;
|
||||
pbVar8 = &s_env1;
|
||||
}
|
||||
pJVar7 = dComIfGp_particle_setP1(dPa_name::ID_COMMON_030A, ¤t.pos, NULL, NULL,
|
||||
0xff, NULL, -1, pbVar9, pbVar8, NULL);
|
||||
if (pJVar7 != 0) {
|
||||
JPASetRMtxTVecfromMtx(mpEquipItemModel->getAnmMtx(2), pJVar7->mGlobalRotation,
|
||||
pJVar7->mGlobalTranslation);
|
||||
if (checkMasterSwordEquip()) {
|
||||
pJVar7->setGlobalDynamicsScale(d_scale);
|
||||
pJVar7->setGlobalParticleScale(p_scale);
|
||||
}
|
||||
if (pbVar9 == &g_prm1) {
|
||||
m355C = 0x1e;
|
||||
} else {
|
||||
onNoResetFlg1(daPyFlg1_UNK200000);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
m3454.end();
|
||||
mpSwordBtk->setFrame(0.0f);
|
||||
}
|
||||
if ((m355C > 0) && (!checkChanceMode())) {
|
||||
m355C--;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/* 80155490-801554C8 .text checkDemoShieldNoDraw__9daPy_lk_cFv */
|
||||
@@ -356,8 +458,85 @@ int daPy_lk_c::changeCutProc() {
|
||||
}
|
||||
|
||||
/* 80155C3C-80156034 .text changeCutReverseProc__9daPy_lk_cFQ29daPy_lk_c8daPy_ANM */
|
||||
int daPy_lk_c::changeCutReverseProc(daPy_ANM) {
|
||||
/* Nonmatching */
|
||||
int daPy_lk_c::changeCutReverseProc(daPy_ANM param_0) {
|
||||
/* Nonmatching - floats, branching */
|
||||
if ((mEquipItem != dItem_SKULL_HAMMER_e) &&
|
||||
(((mAtCps[0].ChkAtShieldHit() || (mAtCps[1].ChkAtShieldHit())) ||
|
||||
(mAtCps[2].ChkAtShieldHit()))))
|
||||
{
|
||||
procCutReverse_init(param_0);
|
||||
} else if (checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) {
|
||||
cXyz local_24;
|
||||
local_24.x = current.pos.x;
|
||||
local_24.y = current.pos.y + 30.0f;
|
||||
local_24.z = current.pos.z;
|
||||
mLinkLinChk.Set(&local_24, &mSwordTopPos, this);
|
||||
if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
|
||||
cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
|
||||
if (!(triPla->GetNP()->y >= 0.5f) ||
|
||||
((mCurProc == daPyProc_HAMMER_FRONT_SWING_e && triPla->GetNP()->y < 0.64278764f)))
|
||||
{
|
||||
if (mEquipItem != dItem_DEKU_LEAF_e) {
|
||||
u32 uVar7 = dComIfG_Bgsp()->GetMtrlSndId(mLinkLinChk);
|
||||
u32 uVar12;
|
||||
if (mAtCps[0].GetAtType() == AT_TYPE_BOKO_STICK) {
|
||||
uVar12 = JA_SE_LK_W_WEP_HIT;
|
||||
} else if ((mAtCps[0].GetAtType() == AT_TYPE_STALFOS_MACE) ||
|
||||
(mAtCps[0].GetAtType() == AT_TYPE_SKULL_HAMMER))
|
||||
{
|
||||
uVar12 = JA_SE_LK_HAMMER_HIT;
|
||||
} else {
|
||||
uVar12 = JA_SE_LK_SW_HIT_S;
|
||||
}
|
||||
if ((mAtCps[0].GetAtType() != AT_TYPE_SKULL_HAMMER) ||
|
||||
(!checkNoResetFlg0(daPyFlg0_UNK10000000)))
|
||||
{
|
||||
mDoAud_seStart(uVar12, &mSwordTopPos, uVar7, mReverb);
|
||||
}
|
||||
if ((mAtCps[0].GetAtType() == AT_TYPE_SKULL_HAMMER) &&
|
||||
(mCurProc != daPyProc_JUMP_CUT_e))
|
||||
{
|
||||
onNoResetFlg0(daPyFlg0_UNK10000000);
|
||||
}
|
||||
int iVar6 = dComIfG_Bgsp()->GetAttributeCode(mLinkLinChk);
|
||||
if (!(iVar6 - 2U > 1) || (iVar6 == dBgS_Attr_METAL_e)) {
|
||||
triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
|
||||
csXyz local_44;
|
||||
local_44.x = cM_atan2s(-triPla->GetNP()->y, triPla->GetNP()->absXZ());
|
||||
local_44.y = cM_atan2s(triPla->GetNP()->x, triPla->GetNP()->z);
|
||||
local_44.z = 0;
|
||||
JPABaseEmitter* emitter;
|
||||
if (iVar6 == dBgS_Attr_WOOD_e) {
|
||||
emitter = dComIfGp_particle_setP1(
|
||||
dPa_name::ID_COMMON_002B, mLinkLinChk.GetCrossP(), &local_44, NULL,
|
||||
0xff, NULL, -1, &tevStr.mColorK0, &tevStr.mColorK0);
|
||||
if (emitter != 0) {
|
||||
emitter->mSpread = 0.2f;
|
||||
emitter->mVolumeSweep = 0.15f;
|
||||
emitter->mRate = 8.0f;
|
||||
emitter->mMaxFrame = 1;
|
||||
}
|
||||
} else {
|
||||
local_44.x += 0x4000;
|
||||
emitter = dComIfGp_particle_setP1(dPa_name::ID_COMMON_002C,
|
||||
mLinkLinChk.GetCrossP(), &local_44);
|
||||
if (emitter != 0) {
|
||||
emitter->mInitialVelAxis = 20.0f;
|
||||
emitter->mRate = 20.0f;
|
||||
emitter->mMaxFrame = 1;
|
||||
emitter->mInitialVelDir = 20.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
dKy_Sound_set(current.pos, 100, fopAcM_GetID(this), 5);
|
||||
procCutReverse_init(param_0);
|
||||
} else if (mCurProc == daPyProc_HAMMER_FRONT_SWING_e) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 80156034-80156198 .text procCutA_init__9daPy_lk_cFs */
|
||||
@@ -1106,23 +1285,282 @@ BOOL daPy_lk_c::procCutExB() {
|
||||
}
|
||||
|
||||
/* 80157D3C-80158220 .text procCutTurn_init__9daPy_lk_cFi */
|
||||
BOOL daPy_lk_c::procCutTurn_init(int) {
|
||||
/* Nonmatching */
|
||||
BOOL daPy_lk_c::procCutTurn_init(int param_0) {
|
||||
/* Nonmatching - floats */
|
||||
float fVar1;
|
||||
|
||||
commonProcInit(daPyProc_CUT_TURN_e);
|
||||
if (param_0 != 0) {
|
||||
fVar1 = daPy_HIO_cutTurn_c0::m.field_0xC;
|
||||
} else {
|
||||
fVar1 = daPy_HIO_cutTurn_c0::m.field_0x8;
|
||||
}
|
||||
if (mEquipItem == daPyItem_SWORD_e) {
|
||||
setSingleMoveAnime(ANM_CUTTURN, daPy_HIO_cutTurn_c0::m.field_0x4, fVar1,
|
||||
daPy_HIO_cutTurn_c0::m.field_0x0, daPy_HIO_cutTurn_c0::m.field_0x28);
|
||||
} else {
|
||||
setSingleMoveAnime(ANM_CUTTURNC, daPy_HIO_cutTurn_c0::m.field_0x4, fVar1,
|
||||
daPy_HIO_cutTurn_c0::m.field_0x0, daPy_HIO_cutTurn_c0::m.field_0x28);
|
||||
}
|
||||
if (mEquipItem == daPyItem_SWORD_e) {
|
||||
if (checkNormalSwordEquip()) {
|
||||
mSwordAnim.changeBckOnly(getItemAnimeResource(LKANM_BCK_CUTTURNA));
|
||||
} else {
|
||||
mSwordAnim.changeBckOnly(getItemAnimeResource(LKANM_BCK_CUTTURNMS));
|
||||
}
|
||||
if (checkNormalSwordEquip()) {
|
||||
m35A4 = daPy_HIO_cutTurn_c0::m.field_0x40;
|
||||
if (checkNoResetFlg1(daPyFlg1_UNK8000)) {
|
||||
mAtCyl.SetAtAtp(4);
|
||||
} else {
|
||||
mAtCyl.SetAtAtp(2);
|
||||
}
|
||||
} else {
|
||||
m35A4 = daPy_HIO_cutTurn_c0::m.field_0x44;
|
||||
if (checkNoResetFlg1(daPyFlg1_UNK8000)) {
|
||||
mAtCyl.SetAtAtp(8);
|
||||
} else {
|
||||
mAtCyl.SetAtAtp(4);
|
||||
}
|
||||
}
|
||||
setBlurPosResource(LKANM__CUTTURN_POS);
|
||||
} else {
|
||||
daBoko_c* boko = (daBoko_c*)mActorKeepEquip.getActor();
|
||||
u32 uVar5;
|
||||
if (boko == NULL) {
|
||||
uVar5 = 0;
|
||||
mAtCyl.SetAtAtp(1);
|
||||
} else {
|
||||
uVar5 = fopAcM_GetParam(boko);
|
||||
mAtCyl.SetAtAtp((boko->getAtPoint()));
|
||||
}
|
||||
if (uVar5 == 0) {
|
||||
m35A4 = daPy_HIO_cutTurn_c0::m.field_0x60;
|
||||
} else if (uVar5 == 1) {
|
||||
m35A4 = daPy_HIO_cutTurn_c0::m.field_0x64;
|
||||
} else if (uVar5 == 2) {
|
||||
m35A4 = daPy_HIO_cutTurn_c0::m.field_0x68;
|
||||
} else if (uVar5 == 3) {
|
||||
m35A4 = daPy_HIO_cutTurn_c0::m.field_0x6C;
|
||||
} else if (uVar5 == 4) {
|
||||
m35A4 = daPy_HIO_cutTurn_c0::m.field_0x70;
|
||||
} else {
|
||||
m35A4 = daPy_HIO_cutTurn_c0::m.field_0x74;
|
||||
}
|
||||
setBlurPosResource(LKANM__WEAPONTURN_POS);
|
||||
}
|
||||
mAtCyl.SetR(m35A4 * 0.5f);
|
||||
m35EC = fVar1;
|
||||
m3700 = cXyz::Zero;
|
||||
m34C2 = 1;
|
||||
m34D0 = daPy_HIO_cutTurn_c0::m.field_0x2;
|
||||
current.angle.y = shape_angle.y;
|
||||
m3578 = 0;
|
||||
voiceStart(1);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SWORD_SWING_e);
|
||||
mCutType = 8;
|
||||
offResetFlg0(daPyRFlg0_UNK8000000);
|
||||
mAtCyl.SetR(m35A4 * 0.5f);
|
||||
if (!checkNoResetFlg0(daPyFlg0_UNK80000000)) {
|
||||
m32E4.makeEmitter(dPa_name::ID_COMMON_001E, mpCLModel->getAnmMtx(0x28), ¤t.pos, NULL);
|
||||
if (mCurrAttributeCode == dBgS_Attr_GRASS_e) {
|
||||
GXColor color = {tevStr.mColorC0.r, tevStr.mColorC0.g, tevStr.mColorC0.b,
|
||||
tevStr.mColorC0.a};
|
||||
m32F0.makeEmitterColor(dPa_name::ID_COMMON_0021, mpCLModel->getAnmMtx(0x23),
|
||||
¤t.pos, &color, &tevStr.mColorK0);
|
||||
m35A0 = 18.0f;
|
||||
} else if (mCurrAttributeCode == dBgS_Attr_WATER_e) {
|
||||
GXColor amb, dif;
|
||||
dKy_get_seacolor(&amb, &dif);
|
||||
m32F0.makeEmitterColor(dPa_name::ID_COMMON_0020, mpCLModel->getAnmMtx(0x23),
|
||||
¤t.pos, &amb, NULL);
|
||||
m35A0 = 17.0f;
|
||||
} else {
|
||||
dComIfGp_particle_setToonP1(dPa_name::ID_COMMON_201F, ¤t.pos, NULL, NULL,
|
||||
daPy_HIO_basic_c0::m.field_0x2, &mSmokeEcallBack, -1, NULL,
|
||||
NULL, NULL);
|
||||
m35A0 = 21.0f;
|
||||
}
|
||||
}
|
||||
m3570 = 0;
|
||||
if (m34C4 == 6) {
|
||||
onNoResetFlg0(daPyFlg0_UNK4);
|
||||
m3570 = 1;
|
||||
} else {
|
||||
mCutCount = 0;
|
||||
}
|
||||
mVelocity = 0.0f;
|
||||
m34C4 = 0;
|
||||
endFlameDamageEmitter();
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80158220-80158460 .text procCutTurn__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procCutTurn() {
|
||||
/* Nonmatching */
|
||||
J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e];
|
||||
m35EC = frameCtrl.getFrame();
|
||||
if (((m3570 != 0) && (swordButton())) && (m34C5 == 0)) {
|
||||
onNoResetFlg0(daPyFlg0_UNK4);
|
||||
} else {
|
||||
offNoResetFlg0(daPyFlg0_UNK4);
|
||||
}
|
||||
if (frameCtrl.getRate() < 0.01f) {
|
||||
if ((int)m34D0 > 0) {
|
||||
m34D0--;
|
||||
} else {
|
||||
m34B8 = 3;
|
||||
checkNextMode(0);
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
if (frameCtrl.getFrame() > daPy_HIO_cutTurn_c0::m.field_0x10) {
|
||||
u8 uVar1 = m34B8;
|
||||
m34B8 = 3;
|
||||
if (checkNextMode(1)) {
|
||||
return true;
|
||||
}
|
||||
m34B8 = uVar1;
|
||||
} else {
|
||||
if (frameCtrl.getFrame() > 17.0f) {
|
||||
m32E4.end();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (frameCtrl.getFrame() > m35A0) {
|
||||
m32F0.end();
|
||||
mSmokeEcallBack.end();
|
||||
}
|
||||
setSpecialBattle(1);
|
||||
if ((doTrigger()) && (dComIfGp_getDoStatus() == 26)) {
|
||||
changeSpecialBattle();
|
||||
} else {
|
||||
if ((frameCtrl.getFrame() >= daPy_HIO_cutTurn_c0::m.field_0x30) &&
|
||||
(frameCtrl.getFrame() < daPy_HIO_cutTurn_c0::m.field_0x34))
|
||||
{
|
||||
if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) {
|
||||
onResetFlg0(daPyRFlg0_UNK1);
|
||||
seStartSwordCut(JA_SE_LK_KAITENGIRI);
|
||||
}
|
||||
onResetFlg0(daPyRFlg0_UNK2);
|
||||
cLib_chaseF(mAtCyl.GetRP(), m35A4, 18.0f);
|
||||
}
|
||||
if (frameCtrl.checkPass(daPy_HIO_cutTurn_c0::m.field_0x34)) {
|
||||
m331C.field_0x4 = 0x80;
|
||||
m332C.field_0x4 = 0x80;
|
||||
m333C.field_0x4 = 0x80;
|
||||
} else {
|
||||
if (m331C.field_0x4 == 0x80) {
|
||||
m331C.field_0x4 = 0;
|
||||
m332C.field_0x4 = 0;
|
||||
m333C.field_0x4 = 0;
|
||||
}
|
||||
}
|
||||
m34C2 = 1;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80158460-801585D8 .text procCutRoll_init__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procCutRoll_init() {
|
||||
/* Nonmatching */
|
||||
commonProcInit(daPyProc_CUT_ROLL_e);
|
||||
setSingleMoveAnime(ANM_CUTTURNB, daPy_HIO_cutRoll_c0::m.field_0x8,
|
||||
daPy_HIO_cutRoll_c0::m.field_0xC, daPy_HIO_cutRoll_c0::m.field_0x0,
|
||||
daPy_HIO_cutRoll_c0::m.field_0x10);
|
||||
m3578 = 0;
|
||||
seStartMapInfo(JA_SE_LK_V_KAITEN_S);
|
||||
dComIfGp_setItemMagicCount(-2);
|
||||
mCutType = 9;
|
||||
mCutCount = 0;
|
||||
offResetFlg0(daPyRFlg0_UNK8000000);
|
||||
if (checkNormalSwordEquip()) {
|
||||
m35A4 = daPy_HIO_cutRoll_c0::m.field_0x20;
|
||||
if (checkNoResetFlg1(daPyFlg1_UNK8000)) {
|
||||
mAtCyl.SetAtAtp(4);
|
||||
} else {
|
||||
mAtCyl.SetAtAtp(2);
|
||||
}
|
||||
} else {
|
||||
m35A4 = daPy_HIO_cutRoll_c0::m.field_0x24;
|
||||
if (checkNoResetFlg1(daPyFlg1_UNK8000)) {
|
||||
mAtCyl.SetAtAtp(8);
|
||||
} else {
|
||||
mAtCyl.SetAtAtp(4);
|
||||
}
|
||||
}
|
||||
mAtCyl.SetR(m35A4 * 0.5f);
|
||||
m34D0 = daPy_HIO_cutRoll_c0::m.field_0x2;
|
||||
current.angle.y = shape_angle.y;
|
||||
m34BE = 4;
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SPIN_ATTACK_e);
|
||||
endFlameDamageEmitter();
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 801585D8-801588F0 .text procCutRoll__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::procCutRoll() {
|
||||
/* Nonmatching */
|
||||
/* Nonmatching - regalloc, math */
|
||||
s16 uVar1;
|
||||
float fVar2;
|
||||
short sVar3;
|
||||
cXyz local_48;
|
||||
cXyz local_3c;
|
||||
|
||||
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
|
||||
uVar1 = current.angle.y;
|
||||
if ((mAcch.ChkWallHit()) && (mDemo.getDemoMode() != 0x2b)) {
|
||||
fVar2 = 25.0f + (mAcchCir[0]).GetWallR();
|
||||
local_48.set(current.pos.x, current.pos.y + (mAcchCir[0]).GetWallH(), current.pos.z);
|
||||
local_3c.set(local_48.x + fVar2 * cM_ssin(uVar1), local_48.y,
|
||||
local_48.z + fVar2 * cM_scos(uVar1));
|
||||
mLinkLinChk.Set(&local_48, &local_3c, this);
|
||||
if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
|
||||
cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
|
||||
shape_angle.y = cM_atan2s(-triPla->GetNP()->x, -triPla->GetNP()->z);
|
||||
current.angle.y = shape_angle.y;
|
||||
return procFrontRollCrash_init();
|
||||
}
|
||||
} else if (mStickDistance > 0.05f) {
|
||||
cLib_addCalcAngleS(¤t.angle.y, m34E8, daPy_HIO_move_c0::m.field_0x6,
|
||||
daPy_HIO_move_c0::m.field_0x0, daPy_HIO_move_c0::m.field_0x4);
|
||||
shape_angle.y = current.angle.y;
|
||||
}
|
||||
sVar3 = current.angle.y - uVar1;
|
||||
if (dComIfGp_event_runCheck() != 0) {
|
||||
if (mDemo.getDemoMode() != 0x2b) {
|
||||
m34D0 = 0;
|
||||
} else {
|
||||
m34D0 = 5;
|
||||
}
|
||||
}
|
||||
if (m34D0 > 0) {
|
||||
m34D0--;
|
||||
mVelocity = daPy_HIO_cutRoll_c0::m.field_0x14;
|
||||
m34EC -= daPy_HIO_cutRoll_c0::m.field_0x4 + sVar3;
|
||||
if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) {
|
||||
onResetFlg0(daPyRFlg0_UNK1);
|
||||
}
|
||||
onResetFlg0(daPyRFlg0_UNK2);
|
||||
cLib_chaseF(mAtCyl.GetRP(), m35A4, 18.0f);
|
||||
seStartMapInfo(JA_SE_LK_V_KAITEN_S);
|
||||
} else {
|
||||
if (cLib_addCalc(&mVelocity, 0.0f, 0.1f, 2.5f, 1.0f) < 0.5f) {
|
||||
shape_angle.y = shape_angle.y + m34EC;
|
||||
current.angle.y = shape_angle.y;
|
||||
if ((dComIfGp_event_runCheck() != 0) && (mDemo.getDemoMode() != 0x2b)) {
|
||||
procWait_init();
|
||||
} else {
|
||||
procCutRollEnd_init();
|
||||
}
|
||||
} else {
|
||||
m34EC = (s16)(m34EC - (512.0f + sVar3 +
|
||||
(daPy_HIO_cutRoll_c0::m.field_0x4 - 0x200) *
|
||||
(mVelocity / daPy_HIO_cutRoll_c0::m.field_0x14)));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
seStartMapInfo(JA_SE_LK_V_KAITEN_S);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 801588F0-80158A40 .text procCutRollEnd_init__9daPy_lk_cFv */
|
||||
|
||||
Reference in New Issue
Block a user