Demo work (#984)

This commit is contained in:
LagoLunatic
2026-05-09 18:42:01 -04:00
committed by GitHub
parent 0e98a9b636
commit fe76ad5a3b
41 changed files with 546 additions and 351 deletions
+7 -7
View File
@@ -589,13 +589,13 @@ config.libs = [
Object(NonMatching, "d/actor/d_a_obj_search.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_player.cpp"),
Object(NonMatching, "d/actor/d_a_player_main.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_player_npc.cpp"),
Object(Matching, "d/actor/d_a_player_npc.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_sea.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_spc_item01.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_vrbox.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_vrbox2.cpp"),
Object(NonMatching, "d/d_auction_screen.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_place_name.cpp"),
Object(Matching, "d/d_place_name.cpp"),
Object(NonMatching, "d/d_camera.cpp"),
Object(Matching, "d/d_envse.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_file_error.cpp"),
@@ -1566,7 +1566,7 @@ config.libs = [
ActorRel(Matching, "d_a_acorn_leaf"),
ActorRel(Matching, "d_a_atdoor"),
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_auction"),
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_bb"),
ActorRel(Matching, "d_a_bb"),
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_bdk"),
ActorRel(Matching, "d_a_bdkobj"),
ActorRel(NonMatching, "d_a_bgn"),
@@ -1679,14 +1679,14 @@ config.libs = [
ActorRel(NonMatching, "d_a_obj_Vds"),
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_Vteng"),
ActorRel(NonMatching, "d_a_obj_YLzou"),
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_Yboil"),
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_adnno"),
ActorRel(Matching, "d_a_obj_Yboil"),
ActorRel(Matching, "d_a_obj_adnno"),
ActorRel(Matching, "d_a_obj_ajav"),
ActorRel(Matching, "d_a_obj_apzl"),
ActorRel(NonMatching, "d_a_obj_ashut"),
ActorRel(Matching, "d_a_obj_auzu"),
ActorRel(NonMatching, "d_a_obj_buoyflag"),
ActorRel(Matching, "d_a_obj_buoyrace"),
ActorRel(Matching, "d_a_obj_buoyrace"),
ActorRel(Matching, "d_a_obj_correct"),
ActorRel(Matching, "d_a_obj_dmgroom"),
ActorRel(Matching, "d_a_obj_dragonhead"),
@@ -1725,7 +1725,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_obj_kanoke"),
ActorRel(Matching, "d_a_obj_ladder"),
ActorRel(NonMatching, "d_a_obj_light"),
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_mkie"),
ActorRel(Matching, "d_a_obj_mkie"),
ActorRel(Matching, "d_a_obj_mkiek"),
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_mknjd"),
ActorRel(NonMatching, "d_a_obj_mmrr"),
+1 -1
View File
@@ -281,7 +281,7 @@ inline bool cBgW_CheckBRoof(f32 ny) {
return ny < (-4.0f / 5.0f);
}
inline bool cBgW_CheckBWall(float y) {
inline bool cBgW_CheckBWall(f32 y) {
if (!cBgW_CheckBGround(y) && !cBgW_CheckBRoof(y))
return true;
return false;
+4
View File
@@ -131,7 +131,11 @@ public:
public:
/* Place member variables here */
#if VERSION == VERSION_DEMO
/* 0x290 */ u8 m290[0xB70 - 0x290];
#else
/* 0x290 */ u8 m290[0xB78 - 0x290];
#endif
/* 0xB78 */ int mB78;
};
+24 -9
View File
@@ -8,7 +8,6 @@ namespace daObjMkie {
class Act_c : public dBgS_MoveBgActor {
public:
static Mtx M_tmp_mtx;
static u32 prm_make(u8 eventId, int swNo) { return swNo << 0x10 | (eventId | 0x3000); };
void setup(const cXyz* pos) {
current.pos = *pos;
@@ -21,23 +20,39 @@ public:
Vec table[8][3];
};
const Attr_c& attr() const { return M_attr[mType]; }
enum Prm_e {
PRM_CORRECT_W = 0x01,
PRM_CORRECT_S = 0xc,
PRM_EVID_W = 0x08,
PRM_EVID_S = 0x0,
PRM_SWSAVE_W = 0x08,
PRM_SWSAVE_S = 0x10,
PRM_EVID_S = 0x00,
PRM_TYPE_W = 0x01,
PRM_TYPE_S = 0x08,
PRM_CORRECT_W = 0x01,
PRM_CORRECT_S = 0x0C,
#if VERSION > VERSION_DEMO
// TODO: Come up with a better name for this.
// (It doesn't appear in the debug maps as this parameter was added for retail.)
PRM_FLAG_W = 0x01,
PRM_FLAG_S = 0x0d,
PRM_FLAG_S = 0x0D,
#endif
PRM_SWSAVE_W = 0x08,
PRM_SWSAVE_S = 0x10,
};
static u32 prm_make(u8 eventId, int swNo) {
return
swNo << PRM_SWSAVE_S | (
true << PRM_CORRECT_S |
#if VERSION > VERSION_DEMO
true << PRM_FLAG_S |
#endif
eventId << PRM_EVID_S
);
}
BOOL prm_get_correct() const { return daObj::PrmAbstract<Prm_e>(this, PRM_CORRECT_W, PRM_CORRECT_S); }
u8 prm_get_evId() const { return daObj::PrmAbstract<Prm_e>(this, PRM_EVID_W, PRM_EVID_S); }
int prm_get_swSave() const { return daObj::PrmAbstract<Prm_e>(this, PRM_SWSAVE_W, PRM_SWSAVE_S); }
+11 -11
View File
@@ -166,17 +166,17 @@ namespace daObjMovebox {
inline cPhs_State Mthd_Create();
inline BOOL Mthd_Delete();
s32 prm_get_type() const { return daObj::PrmAbstract(this, PRM_TYPE_W, PRM_TYPE_S); }
s32 prm_get_swSave() const { return daObj::PrmAbstract(this, PRM_SWSAVE_W, PRM_SWSAVE_S); }
s32 prm_get_swSave1() const;
s32 prmZ_get_swSave2() const { return mType == TYPE_BLACK_BOX_WITH_MKIE ? 0xFF : (u8)(mPrmZ >> 8); }
s32 prmZ_get_swSave2_MkieB() const { return mType == TYPE_BLACK_BOX_WITH_MKIE ? (u8)(mPrmZ >> 8) : 0xFF; }
s32 prmZ_get_pathId() const { return mType == TYPE_BLACK_BOX_WITH_MKIE ? 0xFF : (mPrmZ & 0x00FF) >> 0; }
s32 prmX_get_evId() const { return (mPrmX & 0x00FF) >> 0; }
s32 prm_get_itemNo() const { return daObj::PrmAbstract(this, PRM_ITEMNO_W, PRM_ITEMNO_S); }
s32 prm_get_itemSave() const { return daObj::PrmAbstract(this, PRM_ITEMSAVE_W, PRM_ITEMSAVE_S); }
s32 prm_get_dmy() const { return daObj::PrmAbstract(this, PRM_DMY_W, PRM_DMY_S); }
s32 prm_get_buoy() const { return daObj::PrmAbstract(this, PRM_BUOY_W, PRM_BUOY_S); }
int prm_get_type() const { return daObj::PrmAbstract(this, PRM_TYPE_W, PRM_TYPE_S); }
int prm_get_swSave() const { return daObj::PrmAbstract(this, PRM_SWSAVE_W, PRM_SWSAVE_S); }
int prm_get_swSave1() const;
int prmZ_get_swSave2() const { return mType == TYPE_BLACK_BOX_WITH_MKIE ? 0xFF : (u8)(mPrmZ >> 8); }
int prmZ_get_swSave2_MkieB() const { return mType == TYPE_BLACK_BOX_WITH_MKIE ? (u8)(mPrmZ >> 8) : 0xFF; }
int prmZ_get_pathId() const { return mType == TYPE_BLACK_BOX_WITH_MKIE ? 0xFF : (mPrmZ & 0x00FF) >> 0; }
int prmX_get_evId() const { return (mPrmX & 0x00FF) >> 0; }
int prm_get_itemNo() const { return daObj::PrmAbstract(this, PRM_ITEMNO_W, PRM_ITEMNO_S); }
int prm_get_itemSave() const { return daObj::PrmAbstract(this, PRM_ITEMSAVE_W, PRM_ITEMSAVE_S); }
int prm_get_dmy() const { return daObj::PrmAbstract(this, PRM_DMY_W, PRM_DMY_S); }
int prm_get_buoy() const { return daObj::PrmAbstract(this, PRM_BUOY_W, PRM_BUOY_S); }
BOOL is_switch1() const { return fopAcM_isSwitch(const_cast<Act_c*>(this), prm_get_swSave1()); };
BOOL is_switch2() const { return fopAcM_isSwitch(const_cast<Act_c*>(this), prmZ_get_swSave2()); };
+3 -1
View File
@@ -232,7 +232,9 @@ public:
daPyRFlg0_POISON_CURSE = 0x00100000,
daPyRFlg0_LIGHT_REFLECT = 0x00200000,
daPyRFlg0_GRAB_PUT_START = 0x00400000,
daPyRFlg0_UNK800000 = 0x00800000,
#if VERSION > VERSION_DEMO
daPyRFlg0_ORIGINAL_HAT_ANIM = 0x00800000,
#endif
daPyRFlg0_TACT_INPUT = 0x01000000,
daPyRFlg0_FAIRY_USE = 0x02000000,
daPyRFlg0_SUBJECT_ACCEPT = 0x04000000,
+5 -1
View File
@@ -1080,7 +1080,11 @@ public:
int changeSlideProc();
BOOL changeWaitProc();
BOOL changeLandProc(f32);
#if VERSION == VERSION_DEMO
void setDamagePoint(f32);
#else
BOOL setDamagePoint(f32);
#endif
BOOL checkNormalDamage(int);
void setDashDamage();
BOOL checkAtHitEnemy(dCcD_GObjInf*);
@@ -1299,8 +1303,8 @@ public:
BOOL dProcHoldup();
BOOL dProcOpenTreasure_init();
BOOL dProcOpenTreasure();
void setGetItemSound(u16, int);
#if VERSION > VERSION_DEMO
void setGetItemSound(u16, int);
BOOL setGetDemo();
#endif
BOOL dProcGetItem_init();
+12 -1
View File
@@ -409,6 +409,9 @@ public:
void setItemArrowNumCount(s16 num) { mItemArrowNumCount += num; }
void clearItemArrowNumCount() { mItemArrowNumCount = 0; }
int getItemNowMagic() { return mItemNowMagicCount; }
void setItemNowMagic(s16 num) { mItemNowMagicCount = num; }
void setNpcNameMessageID(u32 id) { mNpcNameMessageID = id; }
void setItemNameMessageID(u32 id) { mItemNameMessageID = id; }
@@ -739,7 +742,7 @@ public:
/* 0x48D4 */ s16 mItemKeyNumCount;
/* 0x48D6 */ s16 mItemMaxLifeCount;
/* 0x48D8 */ s16 mItemMagicCount;
/* 0x48DA */ s16 field_0x48da;
/* 0x48DA */ s16 mItemNowMagicCount;
/* 0x48DC */ s16 mItemMaxMagicCount;
/* 0x48DE */ s16 mItemPictureNumCount;
/* 0x48E0 */ s16 mItemArrowNumCount;
@@ -2514,6 +2517,14 @@ inline void dComIfGp_setItemMaxLifeCount(s16 num) {
g_dComIfG_gameInfo.play.setItemMaxLifeCount(num);
}
inline s16 dComIfGp_getItemNowMagic() {
return g_dComIfG_gameInfo.play.getItemNowMagic();
}
inline void dComIfGp_setItemNowMagic(s16 num) {
g_dComIfG_gameInfo.play.setItemNowMagic(num);
}
inline void dComIfGp_setNpcNameMessageID(u32 id) {
g_dComIfG_gameInfo.play.setNpcNameMessageID(id);
}
+5
View File
@@ -828,8 +828,13 @@ void dMeter_magicGaugeMove(sub_meter_class* i_Meter);
void dMeter_flyGaugeMove(sub_meter_class* i_Meter, u8 param_2, s16 param_3, s16 param_4);
void dMeter_magicChange(sub_meter_class* i_Meter, f32 param_2);
void dMeter_magicLength(sub_meter_class* i_Meter, f32 param_2);
#if VERSION == VERSION_DEMO
void dMeter_magicTrans(sub_meter_class* i_Meter, f32, f32);
void dMeter_magicInitTrans(sub_meter_class* i_Meter, f32, f32);
#else
void dMeter_magicTransNowInit(sub_meter_class* i_Meter);
void dMeter_magicInitTrans(sub_meter_class* i_Meter);
#endif
void dMeter_magicTransScale(sub_meter_class* i_Meter, f32 param_2, f32 param_3, f32 param_4);
void dMeter_magicColor(sub_meter_class* i_Meter);
void dMeter_magicAlpha(sub_meter_class* i_Meter);
+7 -5
View File
@@ -16,11 +16,13 @@ public:
BOOL _closeAnime();
virtual void draw();
void addCounter() {}
void decCounter() {}
void getCounter() {}
void changeTexture(const ResTIMG*) {}
void deleteScreen() {}
void addCounter() { pane.mUserArea++; }
void decCounter() { pane.mUserArea--; }
s16 getCounter() { return pane.mUserArea; }
void changeTexture(const ResTIMG* image) {
((J2DPicture*)pane.pane)->changeTexture(image, 0);
}
void deleteScreen() { delete scrn; }
public:
/* 0x04 */ J2DScreen * scrn;
+2 -1
View File
@@ -113,6 +113,7 @@ class dSv_player_get_item_c {
public:
void init();
void onItem(int, u8);
void offItem(int, u8);
BOOL isItem(int, u8);
void onBottleItem(u8);
BOOL isBottleItem(u8);
@@ -801,7 +802,7 @@ public:
cXyz& getRestartOptionPos() { return mOptionRoomPos; }
/* 0x00 */ s8 mRestartRoom;
/* 0x01 */ u8 mOption;
/* 0x01 */ s8 mOption;
/* 0x02 */ s8 mOptionRoomNo;
/* 0x04 */ s16 mOptionPoint;
/* 0x06 */ s16 mOptionRoomAngleY;
+2 -2
View File
@@ -325,8 +325,8 @@ static cPhs_State daAndsw0_Create(fopAc_ac_c* ac) {
i_this->mBehaviorType = (fopAcM_GetParam(ac) >> 8) & 0xFF;
i_this->mSwitchToSet = (fopAcM_GetParam(ac) >> 24) & 0xFF;
i_this->mFirstSwitchToCheck = (fopAcM_GetParam(ac) >> 16) & 0xFF;
i_this->mTimer = (i_this->home.angle.z & 0xFF) * 15;
i_this->mEventNo = i_this->home.angle.x;
i_this->mTimer = (ac->home.angle.z & 0xFF) * 15;
i_this->mEventNo = ac->home.angle.x;
i_this->mEventIdx = dComIfGp_evmng_getEventIdx(NULL, i_this->mEventNo);
if (i_this->mBehaviorType == 2)
i_this->mAction = ACT_TIMER;
+12 -11
View File
@@ -1340,7 +1340,8 @@ void bb_kamome_attack(bb_class* i_this) {
/* 000044EC-00005534 .text bb_atack_move__FP8bb_class */
void bb_atack_move(bb_class* i_this) {
fopAc_ac_c* a_this = &i_this->actor;
daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0);
fopAc_ac_c* player_actor = dComIfGp_getPlayer(0);
daPy_py_c* player = (daPy_py_c*)player_actor;
s8 r29 = 0;
s8 r28 = 0;
f32 x;
@@ -1363,7 +1364,7 @@ void bb_atack_move(bb_class* i_this) {
}
if (
&player->base.base == fpcM_Search(pl_name_check, i_this)
player_actor == (fopAc_ac_c*)fpcM_Search(pl_name_check, i_this)
#if VERSION == VERSION_DEMO
|| l_bbHIO.unk_10 != 0
#endif
@@ -1383,7 +1384,7 @@ void bb_atack_move(bb_class* i_this) {
case 1:
case 2:
i_this->unk_2F4 = player->current.pos;
i_this->unk_2F4 = player_actor->current.pos;
i_this->unk_2F4.y += 200.0f;
bb_pos_move(i_this);
@@ -1459,9 +1460,9 @@ void bb_atack_move(bb_class* i_this) {
}
if (i_this->unk_318[0] == 0) {
i_this->unk_2F4.x = player->current.pos.x + cM_rndFX(400.0f);
i_this->unk_2F4.y = player->current.pos.y + 100.0f + cM_rndF(200.0f);
i_this->unk_2F4.z = player->current.pos.z + cM_rndFX(400.0f);
i_this->unk_2F4.x = player_actor->current.pos.x + cM_rndFX(400.0f);
i_this->unk_2F4.y = player_actor->current.pos.y + 100.0f + cM_rndF(200.0f);
i_this->unk_2F4.z = player_actor->current.pos.z + cM_rndFX(400.0f);
i_this->unk_318[0] = cM_rndF(100.0f) + 20.0f;
i_this->unk_308 = 0.0f;
i_this->unk_30C = 0.0f;
@@ -1485,7 +1486,7 @@ void bb_atack_move(bb_class* i_this) {
z = cM_scos(i_this->unk_354 * (REG0_S(4) + 1500)) * 200.0f;
cLib_addCalc2(&a_this->current.pos.x, i_this->unk_2F4.x + x, 0.1f, i_this->unk_308 * 30.0f);
cLib_addCalc2(&a_this->current.pos.y, player->current.pos.y + 175.0f, 0.1f, i_this->unk_308 * 30.0f);
cLib_addCalc2(&a_this->current.pos.y, player_actor->current.pos.y + 175.0f, 0.1f, i_this->unk_308 * 30.0f);
cLib_addCalc2(&a_this->current.pos.z, i_this->unk_2F4.z + z, 0.1f, i_this->unk_308 * 30.0f);
cLib_addCalc2(&i_this->unk_308, l_bbHIO.unk_1C, 1.0f, l_bbHIO.unk_1C * 0.1f);
@@ -1496,9 +1497,9 @@ void bb_atack_move(bb_class* i_this) {
i_this->unk_2F1 = 6;
anm_init(i_this, BB_BCK_ATACK01, 2.0f, 0, l_bbHIO.unk_2C, BB_BAS_ATACK01);
i_this->unk_2F4.x = player->current.pos.x;
i_this->unk_2F4.y = player->current.pos.y + 100.0f;
i_this->unk_2F4.z = player->current.pos.z;
i_this->unk_2F4.x = player_actor->current.pos.x;
i_this->unk_2F4.y = player_actor->current.pos.y + 100.0f;
i_this->unk_2F4.z = player_actor->current.pos.z;
i_this->unk_308 = 0.0f;
i_this->unk_30C = 0.0f;
@@ -1616,7 +1617,7 @@ void bb_atack_move(bb_class* i_this) {
anm_init(i_this, BB_BCK_FLY02, REG0_F(0) + 12.0f, 2, 1.0f, BB_BAS_FLY02);
a_this->speedF = 0.0f;
i_this->unk_2F4.y = player->current.pos.y + 500.0f;
i_this->unk_2F4.y = player_actor->current.pos.y + 500.0f;
i_this->unk_318[3] = cM_rndF(200.0f) + 300.0f;
}
i_this->unk_308 = 0.0f;
+1 -1
View File
@@ -4808,7 +4808,7 @@ static cPhs_State daBk_Create(fopAc_ac_c* i_actor) {
J3DModel* model = i_this->mpMorf->getModel();
for (u16 i = 0; i < model->getModelData()->getJointNum(); i++) {
s32 r3 = joint_check[i];
s32 r3 = (s8)joint_check[i];
if (r3 < 0) {
continue;
}
+2 -2
View File
@@ -4207,7 +4207,7 @@ static BOOL daNpc_People_nodeCallBack(J3DNode* node, int calcTiming) {
daNpcPeople_c* i_this = (daNpcPeople_c*)model->getUserArea();
s32 jntNo = joint->getJntNo();
cMtx_copy(model->getAnmMtx(jntNo), *calc_mtx);
MTXCopy(model->getAnmMtx(jntNo), *calc_mtx);
if(jntNo == i_this->m_jnt.getHeadJntNum()) {
mDoMtx_XrotM(*calc_mtx, i_this->m_jnt.getHead_y());
@@ -4219,7 +4219,7 @@ static BOOL daNpc_People_nodeCallBack(J3DNode* node, int calcTiming) {
}
model->setAnmMtx(jntNo, *calc_mtx);
cMtx_copy(*calc_mtx, j3dSys.mCurrentMtx);
MTXCopy(*calc_mtx, j3dSys.mCurrentMtx);
}
return true;
+13 -5
View File
@@ -1575,7 +1575,9 @@ daNpcRoten_c::daNpcRoten_c() {
field_0x9C9 = 0;
field_0x9CA = 0;
field_0x6FC = fpcM_ERROR_PROCESS_ID_e;
#if VERSION > VERSION_DEMO
field_0x994 = -1.0f;
#endif
}
/* 000007B4-000008CC .text daNpc_Roten_nodeCallBack__FP7J3DNodei */
@@ -1586,7 +1588,8 @@ static BOOL daNpc_Roten_nodeCallBack(J3DNode* node, int calcTiming) {
daNpcRoten_c* i_this = (daNpcRoten_c*)model->getUserArea();
s32 jntNo = joint->getJntNo();
cMtx_copy(model->getAnmMtx(jntNo), *calc_mtx);
MtxP mtx = model->getAnmMtx(jntNo);
cMtx_copy(mtx, *calc_mtx);
if(jntNo == i_this->m_jnt.getHeadJntNum()) {
mDoMtx_XrotM(*calc_mtx, i_this->m_jnt.getHead_y());
@@ -1627,11 +1630,13 @@ static cPhs_State phase_1(daNpcRoten_c* i_this) {
static cPhs_State phase_2(daNpcRoten_c* i_this) {
cPhs_State result = dComIfG_resLoad(i_this->getPhaseP(), l_arcname_tbl[i_this->getPrmNpcNo()]);
if(result == cPhs_COMPLEATE_e) {
if(fopAcM_entrySolidHeap(i_this, CheckCreateHeap, 0x4620)) {
if(fopAcM_entrySolidHeap(i_this, CheckCreateHeap, DEMO_SELECT(0, 0x4620))) {
result = i_this->createInit();
}
else {
#if VERSION > VERSION_DEMO
i_this->mpMorf = NULL;
#endif
return cPhs_ERROR_e;
}
}
@@ -2222,7 +2227,8 @@ void daNpcRoten_c::privateCut() {
daDitem_c* pItem;
if (fopAcM_SearchByID(field_0x6F8, (fopAc_ac_c**)&pItem) && pItem) {
if(field_0x9C0 == 7 && (s16)mpMorf->getFrame() >= 0x3C) {
cMtx_copy(mpMorf->getModel()->getAnmMtx(m_hand_L_jnt_num), *calc_mtx);
MtxP mtx = mpMorf->getModel()->getAnmMtx(m_hand_L_jnt_num);
cMtx_copy(mtx, *calc_mtx);
mDoMtx_stack_c::transS(20.0f, -30.0f, -30.0f);
cMtx_concat(*calc_mtx, mDoMtx_stack_c::get(), *calc_mtx);
@@ -2407,8 +2413,10 @@ u16 daNpcRoten_c::next_msgStatus(u32* pMsgNo) {
dComIfGp_setItemRupeeCount(-dComIfGp_getMessageRupee());
u8 temp = l_item_dat[mNpcNo][field_0x9BE];
u8 temp2 = dComIfGs_getEventReg(l_save_dat[mNpcNo].field_0x02);
dComIfGs_setEventReg(l_save_dat[mNpcNo].field_0x02, temp2 + 1);
dComIfGs_setEventReg(
l_save_dat[mNpcNo].field_0x02,
dComIfGs_getEventReg(l_save_dat[mNpcNo].field_0x02) + 1
);
if(dComIfGs_isGetItemReserve(temp)) {
*pMsgNo = l_msg_xy_koukan_end[mNpcNo];
field_0x9B2 |= 0x40;
+5 -5
View File
@@ -66,10 +66,10 @@ void daObjYboil_c::CreateInit() {
fopAcM_SetMtx(this, mModel[i]->getBaseTRMtx());
fopAcM_setCullSizeBox(this, -3000.0f, -0.0f, -3000.0f, 3000.0f, 200.0f, 3000.0f);
fopAcM_setCullSizeFar(this, 1.0f);
f32 frame = cM_rndF(29.9999f);
mBckAnm[i].setFrame((s32)frame);
mBtkAnm[i].setFrame((s32)frame);
mBrkAnm[i].setFrame((s32)frame);
int frame = cM_rndF(29.9999f);
mBckAnm[i].setFrame(frame);
mBtkAnm[i].setFrame(frame);
mBrkAnm[i].setFrame(frame);
mMdlTimer[i] = 0;
}
set_mtx();
@@ -105,7 +105,7 @@ cPhs_State daObjYboil_c::_create() {
bool daObjYboil_c::_delete() {
if (fpcM_CreateResult(this) != cPhs_STOP_e) {
dComIfG_resDelete(&mPhs, "Yboil");
dComIfG_resDeleteDemo(&mPhs, "Yboil");
}
return true;
}
+8 -8
View File
@@ -42,7 +42,7 @@ static BOOL CheckCreateHeap(fopAc_ac_c* i_this) {
/* 00000098-00000178 .text CreateHeap__12daObjAdnno_cFv */
BOOL daObjAdnno_c::CreateHeap() {
J3DModelData* modelData = (J3DModelData*)(dComIfG_getObjectRes("Adnno", ADNNO_BDL_ADNNO));
JUT_ASSERT(0x5c, modelData != NULL);
JUT_ASSERT(DEMO_SELECT(91, 92), modelData != NULL);
for (s32 i = 0; i < 16; i++) {
mpModel[i] = mDoExt_J3DModel__create(modelData, 0x80000, 0x37441422);
if (!mpModel[i])
@@ -67,11 +67,9 @@ void daObjAdnno_c::set_mtx() {
mDoMtx_stack_c::transS(current.pos);
mDoMtx_stack_c::YrotM(current.angle.y);
int x = i % 4;
int y = i / 4;
mDoMtx_stack_c::transM(
x * 40.0f - 60.0f,
60.0f - y * 40.0f,
(int)(i % 4) * 40.0f - 60.0f,
60.0f - (int)(i / 4) * 40.0f,
0.0f
);
mpModel[i]->setBaseTRMtx(mDoMtx_stack_c::get());
@@ -95,7 +93,7 @@ cPhs_State daObjAdnno_c::_create() {
}
bool daObjAdnno_c::_delete() {
dComIfG_resDelete(&mPhs, "Adnno");
dComIfG_resDeleteDemo(&mPhs, "Adnno");
return true;
}
@@ -127,8 +125,10 @@ bool daObjAdnno_c::_draw() {
dComIfGd_setListBG();
for (s32 i = 0; i < 16; i++) {
if (dComIfGs_isEventBit(daObjAdnno_event_bit_table[i])) {
J3DMaterialTable* pBmt = (J3DMaterialTable*)dComIfG_getObjectRes("Adnno", daObjAdnno_bmt_table[i]);
mpModel[i]->getModelData()->setMaterialTable(pBmt, J3DMatCopyFlag_All);
mpModel[i]->getModelData()->setMaterialTable(
(J3DMaterialTable*)dComIfG_getObjectRes("Adnno", daObjAdnno_bmt_table[i]),
J3DMatCopyFlag_All
);
mDoExt_modelUpdateDL(mpModel[i]);
}
}
+4 -2
View File
@@ -495,8 +495,10 @@ void daObjFerris::Act_c::make_lean() {
delta.normalizeRS();
f32 z = -delta.z;
f32 h = std::fabsf(-(z * pt0.x + delta.x * pt0.z) + (z * mRidePos.x + delta.x * mRidePos.z)) / 162.0f;
if (delta.x * delta2.z - delta.z * delta2.x < 0.0f) {
f32 h = std::fabsf(-(z * pt0.x + delta.x * pt0.z) + (z * mRidePos.x + delta.x * mRidePos.z));
f32 temp = delta.x * delta2.z - delta.z * delta2.x;
h /= 162.0f;
if (temp < 0.0f) {
mRideWaveTarget[i] = h * 550.0f;
} else {
mRideWaveTarget[i] = h * -550.0f;
+24 -26
View File
@@ -126,15 +126,15 @@ const daObjMkie::Act_c::Attr_c daObjMkie::Act_c::M_attr[2] = {
/* 00000078-00000250 .text CreateHeap__Q29daObjMkie5Act_cFv */
BOOL daObjMkie::Act_c::CreateHeap() {
J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes(M_arcname, MKIEB_BDL_MKIEB);
JUT_ASSERT(0x192, model_data != NULL);
JUT_ASSERT(DEMO_SELECT(395, 402), model_data != NULL);
mModelBase = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000022);
J3DModelData* model_data_van = (J3DModelData*)dComIfG_getObjectRes(M_arcname, MKIEB_BDL_YLSMF00);
JUT_ASSERT(0x19b, model_data_van != NULL);
JUT_ASSERT(DEMO_SELECT(404, 411), model_data_van != NULL);
mModelVan = mDoExt_J3DModel__create(model_data_van, 0x80000, 0x11000022);
J3DAnmTevRegKey* brk_van = (J3DAnmTevRegKey*)dComIfG_getObjectRes(M_arcname, MKIEB_BRK_YLSMF00);
JUT_ASSERT(0x1a5, brk_van != NULL);
JUT_ASSERT(DEMO_SELECT(414, 421), brk_van != NULL);
int init = mBrkVan.init(model_data_van, brk_van, true, J3DFrameCtrl::EMode_NONE);
bool ret = false;
@@ -160,9 +160,9 @@ void daObjMkie::Act_c::set_cc_pos() {
for (int i = 0; i < 8; i++) {
Vec src[3];
Vec dst[3];
src[0] = M_attr[mType].table[i][0];
src[1] = M_attr[mType].table[i][1];
src[2] = M_attr[mType].table[i][2];
src[0] = attr().table[i][0];
src[1] = attr().table[i][1];
src[2] = attr().table[i][2];
mDoMtx_multVecArray(mModelBase->getBaseTRMtx(), src, dst, 3);
mTri[i].setPos(&dst[0], &dst[1], &dst[2]);
}
@@ -173,28 +173,33 @@ BOOL daObjMkie::Act_c::Create() {
fopAcM_SetMtx(this, mModelBase->getBaseTRMtx());
init_mtx();
{
const Attr_c* mAttrPtr = M_attr + mType;
float initialScale = mAttrPtr->mScale;
fopAcM_setCullSizeBox(
this, initialScale * -80.0f, initialScale * -1.0f, initialScale * -80.0f, initialScale * 80.0f, initialScale * 230.0f, initialScale * 80.0f
this,
attr().mScale * -80.0f,
attr().mScale * -1.0f,
attr().mScale * -80.0f,
attr().mScale * 80.0f,
attr().mScale * 230.0f,
attr().mScale * 80.0f
);
}
init_cc();
#if VERSION > VERSION_DEMO
if (daObj::PrmAbstract<Prm_e>(this, PRM_FLAG_W, PRM_FLAG_S) != 0) {
actor_status &= ~0x3F;
gbaName = 0;
}
#endif
mCcInit = false;
mBaseAnmPlaying = false;
{
const Attr_c* mAttrPtr = M_attr + mType;
attention_info.position.y = current.pos.y + mAttrPtr->mScale * 130.0f;
attention_info.position.y = current.pos.y + attr().mScale * 130.0f;
}
eyePos = attention_info.position;
mEvtIdx = dComIfGp_evmng_getEventIdx(M_attr[mType].name, prm_get_evId());
mEvtIdx = dComIfGp_evmng_getEventIdx(attr().name, prm_get_evId());
return true;
}
@@ -205,11 +210,10 @@ cPhs_State daObjMkie::Act_c::Mthd_Create() {
mSwitch = !fopAcM_isSwitch(this, prm_get_swSave());
if (mSwitch && (phase_state = dComIfG_resLoad(&mPhs, M_arcname), phase_state == cPhs_COMPLEATE_e)) {
mType = prm_get_type();
const Attr_c* mAttrPtr = M_attr + mType;
float initialScale = mAttrPtr->mScale;
float initialScale = attr().mScale;
scale.setall(initialScale);
phase_state = MoveBGCreate(M_arcname, MKIEB_DZB_MKIEB, dBgS_MoveBGProc_Trans, 0x1b20);
JUT_ASSERT(0x216, (phase_state == cPhs_COMPLEATE_e) || (phase_state == cPhs_ERROR_e));
phase_state = MoveBGCreate(M_arcname, MKIEB_DZB_MKIEB, dBgS_MoveBGProc_Trans, DEMO_SELECT(0x10000, 0x1B20));
JUT_ASSERT(DEMO_SELECT(521, 534), (phase_state == cPhs_COMPLEATE_e) || (phase_state == cPhs_ERROR_e));
}
return phase_state;
}
@@ -224,7 +228,7 @@ BOOL daObjMkie::Act_c::Mthd_Delete() {
BOOL ret = true;
if (mSwitch != false) {
ret = MoveBGDelete();
dComIfG_resDelete(&mPhs, M_arcname);
dComIfG_resDeleteDemo(&mPhs, M_arcname);
}
return ret;
}
@@ -397,8 +401,7 @@ void daObjMkie::Act_c::mode_proc_call() {
/* 000013DC-000014A0 .text Execute__Q29daObjMkie5Act_cFPPA3_A4_f */
BOOL daObjMkie::Act_c::Execute(Mtx** pMtx) {
attention_info.position.x = current.pos.x;
const Attr_c* mAttrPtr = M_attr + mType;
attention_info.position.y = current.pos.y + mAttrPtr->mScale * 130.0f;
attention_info.position.y = current.pos.y + attr().mScale * 130.0f;
attention_info.position.z = current.pos.z;
eyePos = attention_info.position;
@@ -415,13 +418,8 @@ BOOL daObjMkie::Act_c::Execute(Mtx** pMtx) {
/* 000014A0-000015B8 .text Draw__Q29daObjMkie5Act_cFv */
BOOL daObjMkie::Act_c::Draw() {
if (!mBaseAnmPlaying) {
bool flagVan = false;
if (mModeProc == 2) {
if (mTimer == 0) {
flagVan = true;
}
}
g_env_light.settingTevStruct(0, &current.pos, &tevStr);
bool flagVan = mModeProc == 2 && mTimer == 0;
g_env_light.settingTevStruct(TEV_TYPE_ACTOR, &current.pos, &tevStr);
if (flagVan) {
g_env_light.setLightTevColorType(mModelVan, &tevStr);
J3DModelData* modelData = mModelVan->getModelData();
+42 -40
View File
@@ -91,9 +91,9 @@ namespace daObjMovebox {
}
BOOL Act_c::Mthd_Delete() {
s32 result = MoveBGDelete();
BOOL result = MoveBGDelete();
if (mbShouldAppear) {
dComIfG_resDelete(&mPhs, M_arcname[mType]);
dComIfG_resDeleteDemo(&mPhs, M_arcname[mType]);
}
return result;
}
@@ -283,7 +283,8 @@ namespace daObjMovebox {
bool Bgc_c::chk_wall_touch2(const Act_c* movebox, const BgcSrc_c* bgcSrc, int bgcSrcCount, s16 dirAngle) {
bool touch = false;
for (int i = 0; i < bgcSrcCount; i++) {
if (chk_wall_touch(movebox, &bgcSrc[i], dirAngle)) {
const BgcSrc_c* currBgcSrc = &bgcSrc[i];
if (chk_wall_touch(movebox, currBgcSrc, dirAngle)) {
touch = true;
break;
}
@@ -368,7 +369,7 @@ namespace daObjMovebox {
/* m54 */ 0.075f,
/* mModelFileIndex */ KKIBA_00_BDL_KKIBA_00,
/* mDZBFileIndex */ KKIBA_00_DZB_KKIBA_00,
/* mDZBHeapSize */ 0x8A0,
/* mDZBHeapSize */ DEMO_SELECT(0x1620, 0x8A0),
/* mScaleY */ 150.0f,
/* m68 */ 150.0f,
/* m6C */ 1.0f/150.0f,
@@ -419,7 +420,7 @@ namespace daObjMovebox {
/* m54 */ 0.075f,
/* mModelFileIndex */ OSIBLK_BDL_OBM_OSIHIKIBLK1,
/* mDZBFileIndex */ OSIBLK_DZB_OBM_OSIHIKIBLK1,
/* mDZBHeapSize */ 0x8A0,
/* mDZBHeapSize */ DEMO_SELECT(0x1620, 0x8A0),
/* mScaleY */ 150.0f,
/* m68 */ 150.0f,
/* m6C */ 1.0f/150.0f,
@@ -471,7 +472,7 @@ namespace daObjMovebox {
/* m54 */ 0.075f,
/* mModelFileIndex */ OSIBLK_BDL_OBM_OSIHIKIBLK2,
/* mDZBFileIndex */ OSIBLK_DZB_OBM_OSIHIKIBLK2,
/* mDZBHeapSize */ 0x1560,
/* mDZBHeapSize */ DEMO_SELECT(0x8000, 0x1560),
/* mScaleY */ 150.0f,
/* m68 */ 300.0f,
/* m6C */ 1.0f/300.0f,
@@ -522,7 +523,7 @@ namespace daObjMovebox {
/* m54 */ 0.075f,
/* mModelFileIndex */ MPWRB_BDL_MPWRB,
/* mDZBFileIndex */ MPWRB_DZB_MPWRB,
/* mDZBHeapSize */ 0x8A0,
/* mDZBHeapSize */ DEMO_SELECT(0x8000, 0x8A0),
/* mScaleY */ 300.0f,
/* m68 */ 300.0f,
/* m6C */ 1.0f/300.0f,
@@ -624,7 +625,7 @@ namespace daObjMovebox {
/* m54 */ 0.075f,
/* mModelFileIndex */ HBOX2_BDL_HBOX2,
/* mDZBFileIndex */ HBOX2_DZB_HBOX2,
/* mDZBHeapSize */ 0x8A0,
/* mDZBHeapSize */ DEMO_SELECT(0x8000, 0x8A0),
/* mScaleY */ 150.0f,
/* m68 */ 150.0f,
/* m6C */ 1.0f/150.0f,
@@ -675,7 +676,7 @@ namespace daObjMovebox {
/* m54 */ 0.075f,
/* mModelFileIndex */ HJUMP_BDL_HBOX1,
/* mDZBFileIndex */ HJUMP_DZB_HBOX1,
/* mDZBHeapSize */ 0x7E0,
/* mDZBHeapSize */ DEMO_SELECT(0x8000, 0x7E0),
/* mScaleY */ 150.0f,
/* m68 */ 150.0f,
/* m6C */ 1.0f/150.0f,
@@ -726,7 +727,7 @@ namespace daObjMovebox {
/* m54 */ 0.075f,
/* mModelFileIndex */ -1,
/* mDZBFileIndex */ HJUMP_DZB_HJUMP1A,
/* mDZBHeapSize */ 0x320,
/* mDZBHeapSize */ DEMO_SELECT(0x8000, 0x320),
/* mScaleY */ 150.0f,
/* m68 */ 300.0f,
/* m6C */ 1.0f/300.0f,
@@ -879,7 +880,7 @@ namespace daObjMovebox {
/* m54 */ 0.075f,
/* mModelFileIndex */ -1,
/* mDZBFileIndex */ MMIRROR_DZB_MMRR,
/* mDZBHeapSize */ 0xD40,
/* mDZBHeapSize */ DEMO_SELECT(0x8000, 0xD40),
/* mScaleY */ 300.0f,
/* m68 */ 450.0f,
/* m6C */ 1.0f/450.0f,
@@ -930,7 +931,7 @@ namespace daObjMovebox {
/* m54 */ 0.075f,
/* mModelFileIndex */ OSIBLK_BDL_OBM_OSIHIKIBLK1,
/* mDZBFileIndex */ OSIBLK_DZB_OBM_OSIHIKIBLK1,
/* mDZBHeapSize */ 0x8A0,
/* mDZBHeapSize */ DEMO_SELECT(0x1620, 0x8A0),
/* mScaleY */ 150.0f,
/* m68 */ 350.0f,
/* m6C */ 1.0f/350.0f,
@@ -981,7 +982,7 @@ namespace daObjMovebox {
/* m54 */ 0.075f,
/* mModelFileIndex */ ECUBE_BDL_ECUBE,
/* mDZBFileIndex */ ECUBE_DZB_ECUBE,
/* mDZBHeapSize */ 0x8A0,
/* mDZBHeapSize */ DEMO_SELECT(0x8000, 0x8A0),
/* mScaleY */ 150.0f,
/* m68 */ 150.0f,
/* m6C */ 1.0f/150.0f,
@@ -1014,7 +1015,7 @@ namespace daObjMovebox {
}
/* 000012E0-00001308 .text prm_get_swSave1__Q212daObjMovebox5Act_cCFv */
s32 Act_c::prm_get_swSave1() const {
int Act_c::prm_get_swSave1() const {
return prm_get_swSave();
}
@@ -1025,7 +1026,7 @@ namespace daObjMovebox {
}
mbPrmZInitialized = true;
s32 switchEnablesSpawn = prm_get_dmy();
int switchEnablesSpawn = prm_get_dmy();
if (switchEnablesSpawn) {
// The appearing/disappearing type of box does not take pathId or swSave2 params.
mPrmZ = 0xFFFF;
@@ -1105,13 +1106,12 @@ namespace daObjMovebox {
} else {
cXyz buoyOffset(0.0f, attr()->m68 - 5.0f, 0.0f);
cXyz buoyOffsetSR;
MtxP mtx = mDoMtx_stack_c::get();
cMtx_multVecSR(mtx, &buoyOffset, &buoyOffsetSR);
mtx[0][3] += buoyOffsetSR.x;
mtx[1][3] += buoyOffsetSR.y;
mtx[2][3] += buoyOffsetSR.z;
cMtx_multVecSR(mDoMtx_stack_c::get(), &buoyOffset, &buoyOffsetSR);
mDoMtx_stack_c::get()[0][3] += buoyOffsetSR.x;
mDoMtx_stack_c::get()[1][3] += buoyOffsetSR.y;
mDoMtx_stack_c::get()[2][3] += buoyOffsetSR.z;
daObjBuoyflag::Act_c* buoyflag = (daObjBuoyflag::Act_c*)childActor;
buoyflag->setup(mtx);
buoyflag->setup(mDoMtx_stack_c::get());
}
} else {
mChildPID = fpcM_ERROR_PROCESS_ID_e;
@@ -1129,14 +1129,14 @@ namespace daObjMovebox {
/* 000016B8-00001830 .text path_init__Q212daObjMovebox5Act_cFv */
void Act_c::path_init() {
// Load the position the box was last left pushed to based on the path and switch(es).
s32 pathId = prmZ_get_pathId();
s32 swSave1 = prm_get_swSave1();
int pathId = prmZ_get_pathId();
int swSave1 = prm_get_swSave1();
if (pathId != 0xFF && swSave1 != 0xFF) {
s32 swSave2 = prmZ_get_swSave2();
int swSave2 = prmZ_get_swSave2();
bool isMoved1 = is_switch1();
u32 isMoved2 = false;
if (0xFF == swSave2) { // Literal must be on the left hand side for a match
if (swSave2 == 0xFF) {
isMoved2 = false;
} else {
isMoved2 = is_switch2();
@@ -1144,7 +1144,7 @@ namespace daObjMovebox {
}
isMoved2 = !!isMoved2;
s32 pntIdx = 0;
int pntIdx = 0;
if (isMoved1 != false) {
pntIdx = 1;
}
@@ -1152,7 +1152,7 @@ namespace daObjMovebox {
pntIdx += 2;
}
mpPath = dPath_GetRoomPath(pathId, home.roomNo);
mpPath = dPath_GetRoomPath(pathId, fopAcM_GetHomeRoomNo(this));
dPnt* pnt = dPath_GetPnt(mpPath, pntIdx);
home.pos = pnt->m_position;
current.pos = pnt->m_position;
@@ -1163,13 +1163,13 @@ namespace daObjMovebox {
void Act_c::path_save() {
// Determine how far along the path the box has been pushed and save the position to the switch(es).
// Supports up to 4 possible path points.
s32 pathId = prmZ_get_pathId();
s32 swSave1 = prm_get_swSave1();
int pathId = prmZ_get_pathId();
int swSave1 = prm_get_swSave1();
if (pathId != 0xFF && swSave1 != 0xFF) {
s32 swSave2 = prmZ_get_swSave2();
int swSave2 = prmZ_get_swSave2();
s32 numPnts;
if (0xFF == swSave2) { // Literal must be on the left hand side for a match
int numPnts;
if (swSave2 == 0xFF) {
numPnts = 2;
} else {
numPnts = 4;
@@ -1178,7 +1178,7 @@ namespace daObjMovebox {
numPnts = mpPath->m_num;
}
s32 pntIdx;
int pntIdx;
for (pntIdx = 0; pntIdx < numPnts; pntIdx++) {
cXyz pntPos = dPath_GetPnt(mpPath, pntIdx)->m_position;
if (current.pos.abs2(pntPos) < SQUARE(3.0f)) {
@@ -1345,7 +1345,7 @@ namespace daObjMovebox {
cLib_offBit(mBgc.mStateFlags, static_cast<Bgc_c::State_e>(Bgc_c::BgcState_JUST_LEFT_GROUND_e | Bgc_c::BgcState_JUST_HIT_GROUND_e | Bgc_c::BgcState_JUST_HIT_WATER_e));
m64F = true;
mReverb = dComIfGp_getReverb(fopAcM_GetHomeRoomNo(this));
mReverb = dComIfGp_getReverb(home.roomNo);
mChildPID = fpcM_ERROR_PROCESS_ID_e;
if (prm_get_buoy() == 0) {
@@ -1476,7 +1476,7 @@ namespace daObjMovebox {
/* 0000268C-00002768 .text chk_appear__Q212daObjMovebox5Act_cCFv */
bool Act_c::chk_appear() const {
// Boxes that do not have a path to save their position instead use swSave1 to enable or disable spawning.
s32 pathId = prmZ_get_pathId();
int pathId = prmZ_get_pathId();
int sw = prm_get_swSave1();
if (pathId != 0xFF || sw == 0xFF) {
return TRUE;
@@ -1702,8 +1702,8 @@ namespace daObjMovebox {
/* 000033D8-00003450 .text make_item__Q212daObjMovebox5Act_cFv */
void Act_c::make_item() {
s32 itemTableNo = prm_get_itemNo();
s32 itemBitNo = prm_get_itemSave();
int itemTableNo = prm_get_itemNo();
int itemBitNo = prm_get_itemSave();
fopAcM_createItemFromTable(
&current.pos, itemTableNo, itemBitNo,
fopAcM_GetHomeRoomNo(this), daItemType_0_e,
@@ -1734,7 +1734,7 @@ namespace daObjMovebox {
gndChk.SetPos(&centerPos);
gndChk.SetActorPid(base.base.mBsPcId);
dComIfG_Bgsp()->GroundCross(&gndChk);
s32 bgIndex = gndChk.GetBgIndex();
int bgIndex = gndChk.GetBgIndex();
s32 mtrlSndId = 0;
if (bgIndex >= 0 && bgIndex < 0x100) {
mtrlSndId = dComIfG_Bgsp()->GetMtrlSndId(gndChk);
@@ -1856,8 +1856,10 @@ namespace daObjMovebox {
/* 000040D0-00004254 .text Draw__Q212daObjMovebox5Act_cFv */
BOOL Act_c::Draw() {
if (mpModel) {
int tevType = !attr()->mbUseBGTevType ? TEV_TYPE_ACTOR : TEV_TYPE_BG0;
g_env_light.settingTevStruct(tevType, &current.pos, &tevStr);
g_env_light.settingTevStruct(
!attr()->mbUseBGTevType ? TEV_TYPE_ACTOR : TEV_TYPE_BG0,
&current.pos, &tevStr
);
g_env_light.setLightTevColorType(mpModel, &tevStr);
dComIfGd_setListBG();
mDoExt_modelUpdateDL(mpModel);
+9 -14
View File
@@ -78,11 +78,6 @@ BOOL daPy_lk_c::changeSpecialBattle() {
/* 8013E454-8013E72C .text procBtJump_init__9daPy_lk_cFP13fopEn_enemy_c */
BOOL daPy_lk_c::procBtJump_init(fopEn_enemy_c* enemy) {
f32 fVar1;
s16 sVar2;
f32 dVar3;
f32 dVar5;
cXyz local_34 = enemy->current.pos - current.pos;
commonProcInit(daPyProc_BT_JUMP_e);
gravity = m_HIO->mBattle.mBJump.m.field_0x20;
@@ -93,16 +88,14 @@ BOOL daPy_lk_c::procBtJump_init(fopEn_enemy_c* enemy) {
-1,
m_HIO->mBattle.mBJump.m.field_0x10
);
fVar1 = local_34.y + enemy->getBtHeight();
if (local_34.y + enemy->getBtHeight() < 30.0f) {
f32 fVar1 = local_34.y + enemy->getBtHeight();
if (fVar1 < 30.0f) {
fVar1 = 30.0f;
}
dVar5 = std::sqrtf((-2.0f * fVar1) / gravity);
f32 dVar5 = std::sqrtf((-2.0f * fVar1) / gravity);
m35A0 = dVar5 * -gravity;
dVar3 = local_34.absXZ();
m35A4 = dVar3 / dVar5;
sVar2 = fopAcM_searchActorAngleY(this, enemy);
current.angle.y = sVar2;
m35A4 = local_34.absXZ() / dVar5;
current.angle.y = fopAcM_searchActorAngleY(this, enemy);
shape_angle.y = current.angle.y;
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK2_e);
m34D0 = 0;
@@ -187,8 +180,10 @@ BOOL daPy_lk_c::procBtJumpCut() {
m34F2 = -m_HIO->mBattle.mBJump.m.field_0x6 * temp;
}
f32 frame = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame();
if (frame >= m_HIO->mBattle.mBJump.m.field_0x44 && frame < m_HIO->mBattle.mBJump.m.field_0x48) {
if (
mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= m_HIO->mBattle.mBJump.m.field_0x44 &&
mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() < m_HIO->mBattle.mBJump.m.field_0x48
) {
onResetFlg0(daPyRFlg0_UNK2);
if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) {
onResetFlg0(daPyRFlg0_UNK1);
+1 -1
View File
@@ -154,7 +154,7 @@ BOOL daPy_lk_c::procBottleDrink() {
}
} else if (uVar1 == LKANM_BCK_BINDRINKING) {
if (dComIfGp_getItemNowLife() == dComIfGs_getLife() &&
dComIfGs_getMagic() == g_dComIfG_gameInfo.play.field_0x48da)
dComIfGp_getItemNowMagic() == dComIfGs_getMagic())
{
setSingleMoveAnime(
ANM_BINDRINKAFTER,
+8 -7
View File
@@ -182,21 +182,22 @@ void daPy_lk_c::checkBgClimbMove() {
if (dVar3 - 125.0f < current.pos.y) {
current.pos.y = dVar3 - 125.0f;
}
local_5c.x = local_68.x + (100.0f * dVar7);
local_5c.y = local_68.y;
local_5c.z = local_68.z + (100.0f * dVar6);
local_5c.set(
local_68.x + (100.0f * dVar7),
local_68.y,
local_68.z + (100.0f * dVar6)
);
mLinkLinChk.Set(&local_68, &local_5c, this);
if (!dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
local_5c.set(current.pos.x + (25.0f * dVar7), local_68.y + 30.0f, current.pos.z + (25.0f * dVar6));
mGndChk.SetPos(&local_5c);
dVar3 = dComIfG_Bgsp()->GroundCross(&mGndChk);
if (-G_CM3D_F_INF != dVar3 && cBgW_CheckBGround(dComIfG_Bgsp()->GetTriPla(mGndChk)->GetNP()->y) &&
if (dVar3 != -G_CM3D_F_INF && cBgW_CheckBGround(dComIfG_Bgsp()->GetTriPla(mGndChk)->GetNP()->y) &&
dVar3 >= local_68.y - 30.0f)
{
dVar4 = 3.0f;
current.pos.x = local_5c.x - (dVar4 * dVar7);
current.pos.x = local_5c.x - (3.0f * dVar7);
current.pos.y = dVar3;
current.pos.z = local_5c.z - (dVar4 * dVar6);
current.pos.z = local_5c.z - (3.0f * dVar6);
procHangClimb_init(m_HIO->mWallCatch.m.field_0x2C);
} else {
procFall_init(1, m_HIO->mWallCatch.m.field_0x54);
+9 -9
View File
@@ -140,13 +140,15 @@ BOOL daPy_lk_c::changeCrawlAutoMoveProc(cXyz* param_1) {
var_r29 |= 8;
}
}
f32 x1 = param_1->x - (75.0f * temp_f31);
f32 y1 = param_1->z - (75.0f * temp_f30);
if (cM3d_Len2dSqPntAndSegLine(
0.5f * (sp34.x + sp28.x),
0.5f * (sp34.z + sp28.z),
sp70.x,
sp70.z,
param_1->x - (75.0f * temp_f31),
param_1->z - (75.0f * temp_f30),
x1,
y1,
&sp64.x,
&sp64.z,
&spC
@@ -164,14 +166,15 @@ int daPy_lk_c::getCrawlMoveVec(cXyz* param_0, cXyz* param_1, cXyz* param_2) {
if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
int iVar4 = dComIfG_Bgsp()->GetSpecialCode(mLinkLinChk);
if (cBgW_CheckBWall(triPla->GetNP()->y)) {
f32 temp = triPla->GetNP()->y;
if (cBgW_CheckBWall(temp)) {
cXyz local_3c = (*param_1 - mLinkLinChk.GetCross());
f32 dVar7 = local_3c.absXZ();
param_2->x = -dVar7 * triPla->GetNP()->x;
param_2->y = local_3c.y;
param_2->z = -dVar7 * triPla->GetNP()->z;
return true;
} else if (iVar4 == 1 || (triPla->GetNP()->y < 0.643832f && iVar4 == 2)) {
} else if (iVar4 == 1 || (temp < 0.643832f && iVar4 == 2)) {
*param_2 = (*param_1 - mLinkLinChk.GetCross());
return true;
}
@@ -553,9 +556,6 @@ BOOL daPy_lk_c::procCrawlAutoMove_init(int param_0, cXyz* param_1) {
/* 8013A0F0-8013A630 .text procCrawlAutoMove__9daPy_lk_cFv */
BOOL daPy_lk_c::procCrawlAutoMove() {
f32 fVar2;
f32 fVar3;
dComIfGp_setRStatus(dActStts_CROUCH_e);
J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e];
onResetFlg0(daPyRFlg0_CRAWL_AUTO_MOVE);
@@ -563,7 +563,7 @@ BOOL daPy_lk_c::procCrawlAutoMove() {
s16 sVar5 = current.angle.y;
if (m34D0 > 0) {
if (frameCtrl.checkPass(0.0f) || frameCtrl.checkPass(17.0f)) {
fVar3 = 0.0f;
f32 fVar2;
if (frameCtrl.checkPass(0.0f)) {
fVar2 = 0.0f;
} else {
@@ -572,7 +572,7 @@ BOOL daPy_lk_c::procCrawlAutoMove() {
frameCtrl.setRate(0.0f);
frameCtrl.setFrame(fVar2);
mAnmRatioUnder[UNDER_MOVE0_e].getAnmTransform()->setFrame(fVar2);
mVelocity = fVar3;
mVelocity = 0.0f;
} else if (std::fabsf(frameCtrl.getRate()) < 0.01f) {
mVelocity = 0.0f;
m34D0--;
+35 -7
View File
@@ -172,7 +172,9 @@ BOOL daPy_lk_c::dProcTool_init() {
mProcVar0.m3570 = 0;
m3574 = 0;
m34D4 = 0;
#if VERSION > VERSION_DEMO
m34D6 = 0;
#endif
return true;
}
@@ -466,7 +468,7 @@ BOOL daPy_lk_c::dProcHoldup_init() {
return false;
}
BOOL uVar1 = checkModeFlg(ModeFlg_WHIDE) ? TRUE : FALSE;
BOOL uVar1 = checkModeFlg(ModeFlg_WHIDE) != 0;
commonProcInit(daPyProc_DEMO_HOLDUP_e);
if (uVar1) {
if (checkNoResetFlg0(daPyFlg0_UNK10000)) {
@@ -551,6 +553,7 @@ BOOL daPy_lk_c::dProcOpenTreasure() {
return true;
}
#if VERSION > VERSION_DEMO
/* 8012E28C-8012E418 .text setGetItemSound__9daPy_lk_cFUsi */
void daPy_lk_c::setGetItemSound(u16 param_1, int param_2) {
if (param_1 == dItem_GREEN_RUPEE_e || param_1 == dItem_BLUE_RUPEE_e || param_1 == dItem_YELLOW_RUPEE_e ||
@@ -576,6 +579,7 @@ void daPy_lk_c::setGetItemSound(u16 param_1, int param_2) {
dComIfGp_setMesgBgmOn();
}
}
#endif
#if VERSION > VERSION_DEMO
/* 8012E418-8012E6B4 .text setGetDemo__9daPy_lk_cFv */
@@ -731,7 +735,32 @@ BOOL daPy_lk_c::dProcGetItem() {
if ((mProcVar0.m3570 == 0) && (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= 11.0f)) {
if ((m34D0 == 0) && (m34D4 != -1)) {
m34D0 = 1;
#if VERSION == VERSION_DEMO
if (m34D4 == dItem_GREEN_RUPEE_e || m34D4 == dItem_BLUE_RUPEE_e || m34D4 == dItem_YELLOW_RUPEE_e ||
m34D4 == dItem_RED_RUPEE_e || m34D4 == dItem_PURPLE_RUPEE_e || m34D4 == TINCLE_RUPEE1)
{
seStartSystem(JA_SE_ME_ITEM_GET_S);
dComIfGp_setMesgBgmOn2();
} else if ((m34D4 == dItem_HEART_CONTAINER_e) ||
(m34D4 == dItem_HEART_PIECE_e && ((dComIfGs_getMaxLife() % 4) == 3)))
{
mDoAud_subBgmStart(JA_BGM_GET_HEART);
dComIfGp_setMesgBgmOn();
} else if (m34D4 == dItem_HEART_PIECE_e || m34D4 == dItem_JOY_PENDANT_e || m34D4 == dItem_SMALL_KEY_e ||
m34D4 == dItem_SILVER_RUPEE_e || m34D4 == dItem_ORANGE_RUPEE_e)
{
mDoAud_subBgmStart(JA_BGM_ITEM_GET_S);
dComIfGp_setMesgBgmOn();
} else if (m34DA != dItem_HEART_e) {
seStartSystem(JA_SE_ME_ITEM_GET_S);
dComIfGp_setMesgBgmOn2();
} else {
mDoAud_subBgmStart(JA_BGM_ITEM_GET);
dComIfGp_setMesgBgmOn();
}
#else
setGetItemSound(m34D4, m34DA);
#endif
}
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() <= 17.0f) {
if (m34D6 > 0x4000) {
@@ -1915,19 +1944,18 @@ BOOL daPy_lk_c::dProcAgbUse() {
/* 8013194C-801319D0 .text dProcLookTurn_init__9daPy_lk_cFv */
BOOL daPy_lk_c::dProcLookTurn_init() {
daPy_ANM dVar2;
if (mCurProc == daPyProc_DEMO_LOOK_TURN_e) {
return false;
}
commonProcInit(daPyProc_DEMO_LOOK_TURN_e);
mVelocity = 0.0f;
if (mDemo.getParam0() != 0) {
dVar2 = ANM_WINDL;
daPy_ANM anm;
if (mDemo.getParam0()) {
anm = ANM_WINDL;
} else {
dVar2 = ANM_WINDR;
anm = ANM_WINDR;
}
setSingleMoveAnime(dVar2, 1.0f, 0.0f, -1, 5.0f);
setSingleMoveAnime(anm, 1.0f, 0.0f, -1, 5.0f);
mProcVar0.m3570 = 0;
return true;
}
+8 -5
View File
@@ -731,10 +731,12 @@ BOOL daPy_lk_c::procGrabWait_init() {
/* 8013C678-8013C914 .text procGrabWait__9daPy_lk_cFv */
BOOL daPy_lk_c::procGrabWait() {
#if VERSION > VERSION_DEMO
if (mActorKeepGrab.getActor() == NULL) {
resetActAnimeUpper(UPPER_MOVE2_e, -1.0f);
return checkNextMode(0);
}
#endif
if (checkAttentionLock()) {
setSpeedAndAngleAtn();
@@ -794,10 +796,12 @@ BOOL daPy_lk_c::procGrabHeavyWait_init() {
/* 8013C9AC-8013CB78 .text procGrabHeavyWait__9daPy_lk_cFv */
BOOL daPy_lk_c::procGrabHeavyWait() {
#if VERSION > VERSION_DEMO
if (mActorKeepGrab.getActor() == NULL) {
resetActAnimeUpper(UPPER_MOVE2_e, -1.0f);
return checkNextMode(0);
}
#endif
if (!checkAttentionLock() && mStickDistance > 0.05f) {
cLib_addCalcAngleS(
@@ -807,14 +811,13 @@ BOOL daPy_lk_c::procGrabHeavyWait() {
m_HIO->mGrab.m.field_0x18,
m_HIO->mGrab.m.field_0x1A
);
s16 y_diff = shape_angle.y - current.angle.y;
m35A0 = y_diff / (f32)m_HIO->mGrab.m.field_0x18;
m35A0 = (s16)(shape_angle.y - current.angle.y) / (f32)m_HIO->mGrab.m.field_0x18;
current.angle.y = shape_angle.y;
f32 fVar1;
if (checkNoResetFlg1(daPyFlg1_UNK800000)) {
fVar1 = -1.0f;
} else {
if (!checkNoResetFlg1(daPyFlg1_UNK800000)) {
fVar1 = m_HIO->mBasic.m.field_0xC;
} else {
fVar1 = -1.0f;
}
setBlendMoveAnime(fVar1);
m_pbCalc[PART_UPPER_e]->setRatio(2, 1.0f);
+2 -4
View File
@@ -334,13 +334,11 @@ BOOL daPy_lk_c::procHammerFrontSwing() {
int r27;
int r26;
r26 = -1;
f32 f30 = 300.0f;
f32 f31 = -G_CM3D_F_INF;
for (r27 = 0; r27 < mSwBlur.field_0x014; r27++) {
sp08.set(mSwBlur.field_0x034[r27].x, f30 + mSwBlur.field_0x034[r27].y, mSwBlur.field_0x034[r27].z);
sp08.set(mSwBlur.field_0x034[r27].x, 300.0f + mSwBlur.field_0x034[r27].y, mSwBlur.field_0x034[r27].z);
mGndChk.SetPos(&sp08);
sp08.y = dComIfG_Bgsp()->GroundCross(&mGndChk);
if (f31 != sp08.y && mSwBlur.field_0x034[r27].y > sp08.y) {
if (sp08.y != -G_CM3D_F_INF && mSwBlur.field_0x034[r27].y > sp08.y) {
r26 = dComIfG_Bgsp()->GetMtrlSndId(mGndChk);
break;
}
+30 -21
View File
@@ -105,16 +105,15 @@ BOOL daPy_lk_c::changeHangMoveProc(int i_direction) {
/* 801342D8-80134440 .text changeHangEndProc__9daPy_lk_cFi */
int daPy_lk_c::changeHangEndProc(int param_0) {
MtxP pMVar6 = mpCLModel->getAnmMtx(0);
MtxP mtx = mpCLModel->getAnmMtx(0);
cXyz pos;
pos.x = pMVar6[0][3] - cM_ssin(shape_angle.y) * 4.0f;
pos.y = pMVar6[1][3];
pos.z = pMVar6[2][3] - cM_scos(shape_angle.y) * 4.0f;
pos.x = mtx[0][3] - cM_ssin(shape_angle.y) * 4.0f;
pos.y = mtx[1][3];
pos.z = mtx[2][3] - cM_scos(shape_angle.y) * 4.0f;
mGndChk.SetPos(&pos);
mHangGroundH = dComIfG_Bgsp()->GroundCross(&mGndChk);
if (-G_CM3D_F_INF != mHangGroundH) {
if (mHangGroundH != -G_CM3D_F_INF) {
m3588 = dComIfG_Bgsp()->GetAttributeCode(mGndChk);
} else {
m3588 = dBgS_Attr_UNK1B_e;
@@ -175,15 +174,27 @@ BOOL daPy_lk_c::procHangStart_init() {
cXyz local_28;
cXyz local_34;
if (mCurProc != daPyProc_ROPE_UP_HANG_e && mCurProc != daPyProc_ROPE_UP_e) {
if (
mCurProc != daPyProc_ROPE_UP_HANG_e
#if VERSION > VERSION_DEMO
&& mCurProc != daPyProc_ROPE_UP_e
#endif
) {
local_34.set(m3724.x, 0.0f, m3724.z);
local_28.set(current.pos.x, 0.0f, current.pos.z);
if (local_34.abs(local_28) > (mAcchCir[0].GetWallR() + 20.0f)) {
return false;
}
}
#if VERSION > VERSION_DEMO
s32 sVar3 = 0;
if (mCurProc != daPyProc_ROPE_UP_HANG_e && mCurProc != daPyProc_ROPE_UP_e) {
#endif
if (
mCurProc != daPyProc_ROPE_UP_HANG_e
#if VERSION > VERSION_DEMO
&& mCurProc != daPyProc_ROPE_UP_e
#endif
) {
local_1c.x = m3724.x - 1.5f * cM_ssin(m352C);
local_1c.y = m3724.y + 10.0f;
local_1c.z = m3724.z - 1.5f * cM_scos(m352C);
@@ -196,12 +207,16 @@ BOOL daPy_lk_c::procHangStart_init() {
local_1c.x = m3724.x - 2.25f * cM_ssin(m352C);
local_1c.y = m3724.y + 10.0f;
local_1c.z = m3724.z - 2.25f * cM_scos(m352C);
#if VERSION > VERSION_DEMO
if (!strcmp(dComIfGp_getStartStageName(), "GanonK")) {
sVar3 = 1;
}
#endif
}
commonProcInit(daPyProc_HANG_START_e);
#if VERSION > VERSION_DEMO
mProcVar0.m3570 = sVar3;
#endif
setSingleMoveAnime(
ANM_VJMPCHA,
m_HIO->mWallCatch.m.field_0x44,
@@ -265,9 +280,7 @@ BOOL daPy_lk_c::procHangFallStart_init(cM3dGPla* param_0) {
local_40.z += dVar10;
}
}
local_4c.x = local_40.x + dVar11;
local_4c.y = local_40.y;
local_4c.z = local_40.z + dVar10;
local_4c.set(local_40.x + dVar11, local_40.y, local_40.z + dVar10);
mLinkLinChk.Set(&local_40, &local_4c, this);
if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
param_0 = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
@@ -433,23 +446,20 @@ BOOL daPy_lk_c::procHangWait() {
/* 801351FC-80135354 .text procHangMove_init__9daPy_lk_cFi */
BOOL daPy_lk_c::procHangMove_init(int param_0) {
daPy_ANM dVar1;
commonProcInit(daPyProc_HANG_MOVE_e);
daPy_ANM anm;
if (param_0 == 2) {
dVar1 = ANM_HANGMOVEL;
anm = ANM_HANGMOVEL;
current.angle.y = shape_angle.y + 0x4000;
} else {
dVar1 = ANM_HANGMOVER;
anm = ANM_HANGMOVER;
current.angle.y = shape_angle.y + -0x4000;
}
f32 dVar3 = getHangMoveAnmSpeed();
setSingleMoveAnime(dVar1, dVar3, 0.0f, -1, m_HIO->mHang.m.field_0x2C);
setSingleMoveAnime(anm, getHangMoveAnmSpeed(), 0.0f, -1, m_HIO->mHang.m.field_0x2C);
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK100_e);
mVelocity = 0.0f;
cXyz local_1c = mLeftHandPos - mRightHandPos;
dVar3 = local_1c.absXZ();
m35A0 = dVar3;
m35A0 = local_1c.absXZ();
return true;
}
@@ -500,8 +510,7 @@ BOOL daPy_lk_c::procHangMove() {
} else {
current.angle.y = sVar6 + -0x4000;
}
s16 sVar7 = shape_angle.y - sVar6;
m34EC += sVar7;
m34EC += (s16)(shape_angle.y - sVar6);
shape_angle.y = sVar6;
cXyz local_88;
local_88.set(*mLinkLinChk.GetLinP()->GetEndP());
+91 -75
View File
@@ -324,7 +324,7 @@ BOOL daPy_lk_c::jointBeforeCB(int jnt_no, J3DTransformInfo* param_2, Quaternion*
mCurProc != daPyProc_VOMIT_WAIT_e && mCurProc != daPyProc_ELEC_DAMAGE_e && mCurProc != daPyProc_DEMO_DOOR_OPEN_e
)
#else
if (!checkResetFlg0(daPyRFlg0_UNK800000))
if (!checkResetFlg0(daPyRFlg0_ORIGINAL_HAT_ANIM))
#endif
{
if (jnt_no == 0x1A) {
@@ -2432,13 +2432,11 @@ void daPy_lk_c::posMoveFromFootPos() {
} else {
speedF = sp7C.z;
if (mCurProc == daPyProc_SWIM_MOVE_e) {
u16 r3 =
cM_rad2s(M_PI * (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() / mFrameCtrlUnder[UNDER_MOVE0_e].getEnd()));
f32 f30;
f30 = std::abs(cM_scos(r3 & 0xFFFF));
f32 f1 =
((speedF * (1.0f - m_HIO->mSwim.m.field_0x60)) + m_HIO->mSwim.m.field_0x60 * (speedF * f30)) /
(1.0f + (m_HIO->mSwim.m.field_0x7C * getSwimTimerRate()));
f32 f1 = (
(speedF * (1.0f - m_HIO->mSwim.m.field_0x60)) +
m_HIO->mSwim.m.field_0x60 *
(speedF * std::abs(cM_scos(cM_rad2s(M_PI * (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() / mFrameCtrlUnder[UNDER_MOVE0_e].getEnd())))))
) / (1.0f + (m_HIO->mSwim.m.field_0x7C * getSwimTimerRate()));
speed.x = f1 * cM_ssin(current.angle.y);
speed.z = f1 * cM_scos(current.angle.y);
} else if (mCurProc != daPyProc_CUT_ROLL_e || !dComIfGp_event_runCheck() ||
@@ -2761,15 +2759,10 @@ void daPy_lk_c::setBodyAngleXReadyAnime() {
/* 8010A4D4-8010A96C .text setSpeedAndAngleNormal__9daPy_lk_cFs */
void daPy_lk_c::setSpeedAndAngleNormal(s16 param_1) {
BOOL bVar2;
s16 sVar6;
s16 sVar7;
f32 dVar11;
f32 dVar10;
f32 dVar9;
if (mStickDistance > 0.05f) {
bVar2 = false;
BOOL bVar2 = false;
dVar11 = mStickDistance * mStickDistance;
if (checkHeavyStateOn()) {
dVar11 *= 1.0f / (m_HIO->mMove.m.field_0x80 * m_HIO->mMove.m.field_0x80);
@@ -2800,6 +2793,8 @@ void daPy_lk_c::setSpeedAndAngleNormal(s16 param_1) {
m_HIO->mMove.m.field_0x4);
}
} else {
s16 sVar6;
s16 sVar7;
if (dComIfGp_event_runCheck()) {
sVar6 = param_1;
sVar7 = m_HIO->mMove.m.field_0x4;
@@ -2813,8 +2808,7 @@ void daPy_lk_c::setSpeedAndAngleNormal(s16 param_1) {
sVar7 = 1;
}
}
cLib_addCalcAngleS(&current.angle.y, m34E8, m_HIO->mMove.m.field_0x6, sVar6,
sVar7);
cLib_addCalcAngleS(&current.angle.y, m34E8, m_HIO->mMove.m.field_0x6, sVar6, sVar7);
}
if (!bVar2) {
dVar9 = cM_scos(m34E8 - current.angle.y);
@@ -2828,7 +2822,7 @@ void daPy_lk_c::setSpeedAndAngleNormal(s16 param_1) {
if (dComIfGp_event_runCheck()) {
dVar9 *= m_HIO->mMove.m.field_0x14 * mStickDistance;
} else {
dVar10 = 0.5f - (0.5f * std::abs(mVelocity / mMaxNormalSpeed));
f32 dVar10 = 0.5f - (0.5f * std::abs(mVelocity / mMaxNormalSpeed));
if (checkHeavyStateOn()) {
dVar10 *= m_HIO->mMove.m.field_0x80;
}
@@ -2850,10 +2844,10 @@ void daPy_lk_c::setSpeedAndAngleNormal(s16 param_1) {
if ((!checkAttentionLock() && mCurProc != daPyProc_MOVE_TURN_e) &&
mStickDistance > 0.05f)
{
sVar6 = shape_angle.y;
s16 sVar6 = shape_angle.y;
cLib_addCalcAngleS(&shape_angle.y, m34E8, m_HIO->mMove.m.field_0x6,
(s16)(param_1 << 1), (s16)(m_HIO->mMove.m.field_0x4 << 1));
sVar7 = current.angle.y;
s16 sVar7 = current.angle.y;
if ((s16)(sVar6 - sVar7) * (s16)(shape_angle.y - sVar7) <= 0) {
shape_angle.y = sVar7;
}
@@ -3797,7 +3791,7 @@ BOOL daPy_lk_c::changeDragonShield(int param_1) {
/* 8010CD34-8010CFB4 .text checkNewItemChange__9daPy_lk_cFUc */
BOOL daPy_lk_c::checkNewItemChange(u8 param_1) {
u32 uVar4 = dComIfGp_getSelectItem(param_1);
u16 uVar4 = dComIfGp_getSelectItem(param_1);
if (uVar4 == dItem_MAGIC_ARMOR_e) {
return changeDragonShield(1);
@@ -4188,7 +4182,9 @@ BOOL daPy_lk_c::checkNextActionFromButton() {
if (dComIfGp_getDoStatus() == dActStts_OPEN_e) {
if (mpAttnEntryA->mType == 5) {
fopAcM_orderDoorEvent(this, mpAttnActorA);
#if VERSION > VERSION_DEMO
changeWaitProc();
#endif
} else {
fopAcM_orderTreasureEvent(this, mpAttnActorA);
}
@@ -4285,9 +4281,12 @@ BOOL daPy_lk_c::checkNextActionFromButton() {
if (changeSpecialBattle())
return true;
}
if ((dComIfGp_getRStatus() == dActStts_BLANK_e && !checkUpperReadyThrowAnime()) &&
!checkEquipAnime())
{
if (
(dComIfGp_getRStatus() == dActStts_BLANK_e && !checkUpperReadyThrowAnime())
#if VERSION > VERSION_DEMO
&& !checkEquipAnime()
#endif
) {
if (!checkGrabAnime()) {
if (checkNoResetFlg1(daPyFlg1_NPC_CALL_COMMAND)) {
dComIfGp_setRStatus(dActStts_CALL_e);
@@ -4336,9 +4335,12 @@ BOOL daPy_lk_c::checkNextActionFromButton() {
return procFrontRoll_init(m_HIO->mRoll.m.field_0xC);
}
}
if ((daPy_getPlayerActorClass() == this && !dComIfGp_event_runCheck()) &&
!checkGrabWear())
{
if (
(daPy_getPlayerActorClass() == this && !dComIfGp_event_runCheck())
#if VERSION > VERSION_DEMO
&& !checkGrabWear()
#endif
) {
onResetFlg0(daPyRFlg0_SUBJECT_ACCEPT);
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x1000)) {
return procSubjectivity_init(0);
@@ -4461,6 +4463,11 @@ BOOL daPy_lk_c::checkNextMode(int r29) {
if (checkNextActionFromButton()) {
return true;
}
#if VERSION == VERSION_DEMO
if (checkResetFlg0(daPyRFlg0_UNK10000000)) {
return procCutReverse_init(ANM_CUTRER);
}
#endif
if (r29 != 0 && !(mStickDistance > 0.05f) && !spActionButton()) {
mMaxNormalSpeed = f31;
return false;
@@ -4958,11 +4965,7 @@ BOOL daPy_lk_c::changeWaitProc() {
/* 80110028-8011029C .text changeLandProc__9daPy_lk_cFf */
BOOL daPy_lk_c::changeLandProc(f32 param_1) {
BOOL bVar2;
f32 dVar6;
f32 dVar7;
dVar7 = m35F0 - current.pos.y;
f32 dVar7 = m35F0 - current.pos.y;
if (mCurrAttributeCode != dBgS_Attr_GIANT_FLOWER_e &&
((dVar7 >= (100.0f * m_HIO->mFall.m.field_0x14))))
{
@@ -4972,8 +4975,8 @@ BOOL daPy_lk_c::changeLandProc(f32 param_1) {
return procLandDamage_init(1);
}
}
dVar6 = param_1;
int direction = getDirectionFromAngle(current.angle.y - shape_angle.y);
BOOL bVar2;
if (mCurProc == daPyProc_CUT_EX_MJ_e && ((m34C5 != 0 || checkNoResetFlg0(daPyFlg0_UNK4)))) {
bVar2 = true;
} else {
@@ -5004,13 +5007,24 @@ BOOL daPy_lk_c::changeLandProc(f32 param_1) {
} else if (bVar2) {
checkNextMode(0);
} else {
procLand_init(dVar6, 0);
procLand_init(param_1, 0);
}
}
}
return true;
}
#if VERSION == VERSION_DEMO
void daPy_lk_c::setDamagePoint(f32 amount) {
if (!checkNoDamageMode()) {
dComIfGp_setItemLifeCount(amount);
} else {
seStartMapInfo(JA_SE_LK_MGC_SHIELD_DEF);
}
offNoResetFlg1(daPyFlg1_SOUP_POWER_UP);
offNoResetFlg1(daPyFlg1_UNK200000);
}
#else
/* 8011029C-80110338 .text setDamagePoint__9daPy_lk_cFf */
BOOL daPy_lk_c::setDamagePoint(f32 amount) {
if (!checkNoDamageMode()) {
@@ -5030,6 +5044,7 @@ BOOL daPy_lk_c::setDamagePoint(f32 amount) {
return FALSE;
}
}
#endif
/* 80110338-80110448 .text checkNormalDamage__9daPy_lk_cFi */
BOOL daPy_lk_c::checkNormalDamage(int param_1) {
@@ -5711,8 +5726,9 @@ BOOL daPy_lk_c::checkSubjectEnd(BOOL i_playSound) {
if(i_playSound) {
seStartSystem(JA_SE_SUBJ_VIEW_OUT);
}
#if VERSION > VERSION_DEMO
onResetFlg0(daPyRFlg0_UNK10000000);
#endif
return true;
}
@@ -7602,7 +7618,9 @@ BOOL daPy_lk_c::procDamage_init() {
seStartOnlyReverb(JA_SE_LK_DAMAGE_NORMAL);
mProcVar0.mDamageAnm = dVar2;
offNoResetFlg0(daPyFlg0_UNK2);
#if VERSION > VERSION_DEMO
dComIfGp_getVibration().StartShock(4, -0x21, cXyz(0.0f, 1.0f, 0.0f));
#endif
return true;
}
@@ -7671,7 +7689,6 @@ BOOL daPy_lk_c::procPolyDamage() {
/* 801177CC-80117EAC .text procLargeDamage_init__9daPy_lk_cFiiss */
BOOL daPy_lk_c::procLargeDamage_init(int param_1, int param_2, s16 param_3, s16 param_4) {
f32 fVar2;
s16 sVar3;
cXyz* damage_vec;
int iVar7;
@@ -7741,9 +7758,8 @@ BOOL daPy_lk_c::procLargeDamage_init(int param_1, int param_2, s16 param_3, s16
} else if (param_1 == -7) {
iVar7 = 0;
current.angle.y = shape_angle.y;
fVar2 =
((2.0f * m_HIO->mDam.mHuDamage.m.field_0x20) / -m_HIO->mDam.mHuDamage.m.field_0x1C) *
m_HIO->mDam.mHuDamage.m.field_0x18;
f32 fVar2 = ((2.0f * m_HIO->mDam.mHuDamage.m.field_0x20) / -m_HIO->mDam.mHuDamage.m.field_0x1C) *
m_HIO->mDam.mHuDamage.m.field_0x18;
current.pos.x = current.pos.x - fVar2 * cM_ssin(shape_angle.y);
current.pos.z = current.pos.z - fVar2 * cM_scos(shape_angle.y);
mDamageWaitTimer = 0;
@@ -7782,6 +7798,7 @@ BOOL daPy_lk_c::procLargeDamage_init(int param_1, int param_2, s16 param_3, s16
m34D6 = 4;
shape_angle.y = current.angle.y + 0x8000;
}
f32 fVar2;
if (param_2 != 0) {
fVar2 = m_HIO->mDam.mLaDamage.m.field_0x14;
gravity = m_HIO->mDam.mLaDamage.m.field_0x1C;
@@ -7801,11 +7818,10 @@ BOOL daPy_lk_c::procLargeDamage_init(int param_1, int param_2, s16 param_3, s16
if (param_1 != -7) {
voiceStart(3);
}
fVar2 = 0.0f;
if (param_1 != -5) {
if (m34D0 > 0) {
mVelocity = 0.0f;
speed.y = fVar2;
speed.y = 0.0f;
} else {
if (param_2 != 0) {
mVelocity = m_HIO->mDam.mLaDamage.m.field_0x18;
@@ -9306,7 +9322,7 @@ void daPy_lk_c::checkOriginalHatAnimation() {
mCurProc == daPyProc_DEMO_DOOR_OPEN_e ||
(!strcmp(dComIfGp_getStartStageName(), "GTower") && dComIfGp_getStartStageLayer() == 9)
) {
onResetFlg0(daPyRFlg0_UNK800000);
onResetFlg0(daPyRFlg0_ORIGINAL_HAT_ANIM);
}
}
#endif
@@ -9552,7 +9568,7 @@ void daPy_lk_c::setMoveSlantAngle() {
if (sVar2 == 0) {
m351C = 0;
} else {
m351C = m351C - sVar2;
m351C -= sVar2;
}
}
@@ -10404,9 +10420,9 @@ void daPy_lk_c::setDemoData() {
if (mStaffIdx != -1) {
char* cut_name = dComIfGp_getPEvtManager()->getMyNowCutName(mStaffIdx);
if (cut_name != NULL) {
// Take the first 3 chars in cut_name, convert them to integers, and calculate
// demo_mode
// Take the first 3 chars in cut_name, convert them to integers, and calculate demo_mode
demo_mode = ((cut_name[0] - '0') * 100 + (cut_name[1] - '0') * 10 + (cut_name[2] - '0'));
#if VERSION > VERSION_DEMO
if (
mDemo.getDemoType() != 4 &&
(
@@ -10420,6 +10436,7 @@ void daPy_lk_c::setDemoData() {
speedF = 0.0f;
}
}
#endif
pos_p = dComIfGp_evmng_getMyXyzP(mStaffIdx, "pos");
if (pos_p == NULL) {
pos_p = dComIfGp_evmng_getGoal();
@@ -10519,7 +10536,8 @@ void daPy_lk_c::setDemoData() {
m34EC -= (s16)(current.angle.y - r24);
} else if ((demo_mode == daPy_demo_c::DEMO_N_WALK_e) || (demo_mode == daPy_demo_c::DEMO_N_DASH_e)) {
cXyz sp44 = *pos_p - current.pos;
if (std::abs(mVelocity) / mMaxNormalSpeed < m_HIO->mMove.m.field_0x2C) {
f32 temp = std::abs(mVelocity) / mMaxNormalSpeed;
if (temp < m_HIO->mMove.m.field_0x2C) {
demo_mode = daPy_demo_c::DEMO_N_WALK_e;
}
f32 dVar22 = sp44.abs2XZ();
@@ -10916,7 +10934,7 @@ BOOL daPy_lk_c::startRestartRoom(u32 mode, int eventInfoIdx, f32 param_3, int i_
(current.roomNo == dIsleRoom_WindfallIsland_e || current.roomNo == dIsleRoom_OutsetIsland_e) &&
dStage_chkPlayerId(0x80, current.roomNo))
{
dComIfGp_setNextStage(dComIfGp_getStartStageName(), 0x80, current.roomNo, -1, 0.0f, mode);
dComIfGp_setNextStage(dComIfGp_getStartStageName(), 0x80, fopAcM_GetRoomNo(this), -1, 0.0f, mode);
u32 roomParam = setParamData(-1, 0, eventInfoIdx, 0);
dComIfGs_setRestartRoomParam(roomParam);
seStartSystem(JA_SE_FORCE_BACK);
@@ -10973,10 +10991,12 @@ BOOL daPy_lk_c::startRestartRoom(u32 mode, int eventInfoIdx, f32 param_3, int i_
}
return TRUE;
}
#if VERSION > VERSION_DEMO
} else if (checkNoResetFlg0(daPyFlg0_DEKU_SP_RETURN_FLG)) {
dComIfGp_setNextStage(dComIfGp_getStartStageName(), i_point, 41, -1, 0.0f, mode);
#endif
} else {
dComIfGp_setNextStage(dComIfGp_getStartStageName(), i_point, current.roomNo, -1, 0.0f, mode);
dComIfGp_setNextStage(dComIfGp_getStartStageName(), i_point, fopAcM_GetRoomNo(this), -1, 0.0f, mode);
}
if (mCurProc != daPyProc_DEMO_DEAD_e) {
@@ -11863,7 +11883,7 @@ static BOOL daPy_Delete(daPy_lk_c* i_this) {
/* 80123078-80123360 .text initTextureAnime__9daPy_lk_cFv */
void daPy_lk_c::initTextureAnime() {
m_tex_anm_heap.m_buffer = new(0x20) u8[0x1000];
JUT_ASSERT(VERSION_SELECT(20789, 20789, 20869, 20869), m_tex_anm_heap.m_buffer != NULL);
JUT_ASSERT(VERSION_SELECT(20682, 20789, 20869, 20869), m_tex_anm_heap.m_buffer != NULL);
JKRReadIdxResource(m_tex_anm_heap.m_buffer, 0x1000, LKANM_BTP_TMABAA, dComIfGp_getAnmArchive());
J3DAnmTexPattern* btp = static_cast<J3DAnmTexPattern*>(J3DAnmLoaderDataBase::load(m_tex_anm_heap.m_buffer));
@@ -12139,7 +12159,7 @@ J3DModelData* daPy_lk_c::initModel(J3DModel** i_model, int i_fileIndex, u32 i_di
J3DAnmTextureSRTKey* daPy_lk_c::entryBtk(J3DModelData* param_1, int param_2) {
J3DAnmTextureSRTKey* btk_anm =
static_cast<J3DAnmTextureSRTKey*>(dComIfG_getObjectRes(l_arcName, param_2));
JUT_ASSERT(VERSION_SELECT(21293, 21293, 21373, 21373), btk_anm != NULL);
JUT_ASSERT(VERSION_SELECT(21186, 21293, 21373, 21373), btk_anm != NULL);
btk_anm->searchUpdateMaterialID(param_1);
param_1->entryTexMtxAnimator(btk_anm);
btk_anm->setFrame(0.0f);
@@ -12159,8 +12179,9 @@ J3DAnmTevRegKey* daPy_lk_c::entryBrk(J3DModelData* param_1, int param_2) {
/* 80124C98-80125CC8 .text playerInit__9daPy_lk_cFv */
void daPy_lk_c::playerInit() {
if (!fopAcM_entrySolidHeap(this, daPy_createHeap, 0xB0000)) {
JUT_ASSERT(VERSION_SELECT(21350, 21350, 21430, 21430), FALSE);
u32 heapSize = 0xB0000;
if (!fopAcM_entrySolidHeap(this, daPy_createHeap, heapSize)) {
JUT_ASSERT(VERSION_SELECT(21243, 21350, 21430, 21430), FALSE);
}
fopAcM_SetMtx(this, mpCLModel->getBaseTRMtx());
@@ -12199,23 +12220,23 @@ void daPy_lk_c::playerInit() {
if (mtl->getZMode()->getCompareEnable() == 0) {
if ((u8)mtl->getBlend()->getType() == GX_BM_BLEND) {
mpZOffBlendShape[zoff_blend_cnt++] = mtl->getShape();
JUT_ASSERT(VERSION_SELECT(21406, 21406, 21486, 21486), zoff_blend_cnt <= 4);
JUT_ASSERT(VERSION_SELECT(21299, 21406, 21486, 21486), zoff_blend_cnt <= 4);
} else {
mpZOffNoneShape[zoff_none_cnt++] = mtl->getShape();
JUT_ASSERT(VERSION_SELECT(21410, 21410, 21490, 21490), zoff_none_cnt <= 4);
JUT_ASSERT(VERSION_SELECT(21303, 21410, 21490, 21490), zoff_none_cnt <= 4);
}
} else {
mpZOnShape[zon_cnt++] = mtl->getShape();
JUT_ASSERT(VERSION_SELECT(21414, 21414, 21494, 21494), zon_cnt <= 4);
JUT_ASSERT(VERSION_SELECT(21307, 21414, 21494, 21494), zon_cnt <= 4);
}
mtl = mtl->getNext();
}
mtl = mpCLModelData->getJointNodePointer(0x15)->getMesh(); // cl_mayu joint
}
JUT_ASSERT(VERSION_SELECT(21421, 21421, 21501, 21501), zon_cnt == 4);
JUT_ASSERT(VERSION_SELECT(21422, 21422, 21502, 21502), zoff_none_cnt == 4);
JUT_ASSERT(VERSION_SELECT(21423, 21423, 21503, 21503), zoff_blend_cnt == 4);
JUT_ASSERT(VERSION_SELECT(21314, 21421, 21501, 21501), zon_cnt == 4);
JUT_ASSERT(VERSION_SELECT(21315, 21422, 21502, 21502), zoff_none_cnt == 4);
JUT_ASSERT(VERSION_SELECT(21316, 21423, 21503, 21503), zoff_blend_cnt == 4);
mpLhandShape = mpCLModelData->getJointNodePointer(0x08)->getMesh()->getShape(); // cl_LhandA joint
mpRhandShape = mpCLModelData->getJointNodePointer(0x0C)->getMesh()->getShape(); // cl_RhandA joint
@@ -12308,13 +12329,13 @@ void daPy_lk_c::playerInit() {
mpItemHeaps[0] = mDoExt_createSolidHeapFromGameToCurrent(0xE600, 0x20);
u8* dummy_data = new u8[0xE600];
JUT_ASSERT(VERSION_SELECT(21571, 21571, 21651, 21651), dummy_data != NULL);
JUT_ASSERT(VERSION_SELECT(21464, 21571, 21651, 21651), dummy_data != NULL);
mDoExt_restoreCurrentHeap();
mDoExt_adjustSolidHeap(mpItemHeaps[0]);
mpItemHeaps[1] = mDoExt_createSolidHeapFromGameToCurrent(0xE600, 0x20);
dummy_data = new u8[0xE600];
JUT_ASSERT(VERSION_SELECT(21577, 21577, 21657, 21657), dummy_data != NULL);
JUT_ASSERT(VERSION_SELECT(21470, 21577, 21657, 21657), dummy_data != NULL);
mDoExt_restoreCurrentHeap();
mDoExt_adjustSolidHeap(mpItemHeaps[1]);
@@ -12339,10 +12360,10 @@ void daPy_lk_c::playerInit() {
resetSeAnime();
ResTIMG* tmp_tex = (ResTIMG*)dComIfG_getObjectRes("Always", ALWAYS_I4_BALL128B);
JUT_ASSERT(VERSION_SELECT(21607, 21607, 21687, 21687), tmp_tex != NULL);
JUT_ASSERT(VERSION_SELECT(21500, 21607, 21687, 21687), tmp_tex != NULL);
mSightPacket.setSightTex(tmp_tex);
ResTIMG* tmp_img = (ResTIMG*)dComIfG_getObjectRes(l_arcName, LINK_BTI_ROCK_MARK);
JUT_ASSERT(VERSION_SELECT(21613, 21613, 21693, 21693), tmp_img != NULL);
JUT_ASSERT(VERSION_SELECT(21506, 21613, 21693, 21693), tmp_img != NULL);
void* tmp_img_data = reinterpret_cast<void*>(reinterpret_cast<u32>(tmp_img) + tmp_img->imageOffset);
mSightPacket.setLockTex(tmp_img_data);
mSightPacket.setImage(tmp_img);
@@ -12390,9 +12411,9 @@ void daPy_lk_c::playerInit() {
ResTIMG* linktex_casual = (ResTIMG*)dComIfG_getObjectRes(l_arcName, LINK_BTI_LINKTEXBCI4);
int num_linktex_headers_seen = 0;
J3DTexture* texture = mpCLModelData->getTexture();
JUT_ASSERT(VERSION_SELECT(21684, 21684, 21764, 21764), texture != NULL);
JUT_ASSERT(VERSION_SELECT(21577, 21684, 21764, 21764), texture != NULL);
JUTNameTab* textureName = mpCLModelData->getTextureName();
JUT_ASSERT(VERSION_SELECT(21686, 21686, 21766, 21766), textureName != NULL);
JUT_ASSERT(VERSION_SELECT(21579, 21686, 21766, 21766), textureName != NULL);
for (u16 i = 0; i < texture->getNum(); i++) {
const char* texName = textureName->getName(i);
if (strcmp(texName, "linktexS3TC") != 0) {
@@ -12469,10 +12490,6 @@ daPy_footData_c::daPy_footData_c() {}
/* 80127160-80127B50 .text makeBgWait__9daPy_lk_cFv */
cPhs_State daPy_lk_c::makeBgWait() {
cXyz local_38;
cXyz local_44;
cXyz local_50;
#if VERSION > VERSION_DEMO
if ((int)m352E != 0) {
m352E--;
@@ -12574,7 +12591,7 @@ cPhs_State daPy_lk_c::makeBgWait() {
} else if (startMode == 9) {
ship->setStartModeWarp();
#if VERSION > VERSION_DEMO
local_38.set(current.pos.x, current.pos.y + 1500.0f, current.pos.z);
cXyz local_38(current.pos.x, current.pos.y + 1500.0f, current.pos.z);
fpc_ProcID uVar8 = fopAcM_create(PROC_TORNADO, 2, &local_38, fopAcM_GetRoomNo(this));
ship->setTactWarpID(uVar8);
#endif
@@ -12634,8 +12651,8 @@ cPhs_State daPy_lk_c::makeBgWait() {
procWait_init();
}
} else if (startMode == 7) {
local_44.set(current.pos.x + 200.0f * cM_ssin(shape_angle.y), 150.0f + current.pos.y,
current.pos.z + 200.0f * cM_scos(shape_angle.y));
cXyz local_44(current.pos.x + 200.0f * cM_ssin(shape_angle.y), 150.0f + current.pos.y,
current.pos.z + 200.0f * cM_scos(shape_angle.y));
dComIfGs_setRestartRoom(local_44, shape_angle.y, getStartRoomNo());
procVomitJump_init(1);
mAcch.ClrGroundHit();
@@ -12683,6 +12700,7 @@ cPhs_State daPy_lk_c::makeBgWait() {
m3580 = dComIfG_Bgsp()->GetGroundCode(mAcch.m_gnd);
m357C = m3580;
if (sceneMode == 4) {
cXyz local_50;
mDoMtx_multVecZero(mpCLModel->getAnmMtx(0), &local_50);
dComIfGp_particle_setP1(dPa_name::ID_AK_SN_OSHIRIKUROKOGE, &local_50);
}
@@ -12734,10 +12752,9 @@ void daPy_lk_c::setSeAnime(const daPy_anmHeap_c* anmHeap, J3DFrameCtrl* frameCtr
u32 data_size = fileHeader->mFileSize - fileHeader->mSeAnmOffset;
const u32 l_sanm_buffer_size = 0x200;
JUT_ASSERT(VERSION_SELECT(22228, 22228, 22318, 22318), data_size < l_sanm_buffer_size);
JUT_ASSERT(VERSION_SELECT(22108, 22228, 22318, 22318), data_size < l_sanm_buffer_size);
u8* seAnmPtr = reinterpret_cast<u8*>(anmHeap->m_buffer) + fileHeader->mSeAnmOffset;
cLib_memCpy(m_sanm_buffer, seAnmPtr, data_size);
cLib_memCpy(m_sanm_buffer, (u8*)(anmHeap->m_buffer) + fileHeader->mSeAnmOffset, data_size);
mpSeAnmFrameCtrl = frameCtrl;
mSeAnmIdx = anmHeap->mIdx;
m34F0 = anmHeap->field_0x6;
@@ -12750,8 +12767,7 @@ void daPy_lk_c::setSeAnime(const daPy_anmHeap_c* anmHeap, J3DFrameCtrl* frameCtr
void daPy_lk_c::initSeAnime() {
if (mpSeAnmFrameCtrl) {
s16 loop = mpSeAnmFrameCtrl->getLoop();
u32 direction = mpSeAnmFrameCtrl->getRate() >= 0.0f ? 1 : -1;
mJAIZelAnime.initActorAnimSound(m_sanm_buffer, direction, loop);
mJAIZelAnime.initActorAnimSound(m_sanm_buffer, mpSeAnmFrameCtrl->getRate() >= 0.0f ? 1 : -1, loop);
}
if (mpSeAnmFrameCtrl->getAttribute() == J3DFrameCtrl::EMode_LOOP) {
+14 -12
View File
@@ -17,12 +17,17 @@ int daPy_npc_c::check_initialRoom() {
if (mAcch.GetGroundH() == -G_CM3D_F_INF || dComIfG_Bgsp()->GetGroundCode(mAcch.m_gnd) == 4) {
return 0;
}
#if VERSION == VERSION_DEMO
fopAcM_SetHomeRoomNo(this, dComIfG_Bgsp()->GetRoomId(mAcch.m_gnd));
fopAcM_SetRoomNo(this, dComIfG_Bgsp()->GetRoomId(mAcch.m_gnd));
#else
int roomNo = dComIfG_Bgsp()->GetRoomId(mAcch.m_gnd);
if (roomNo < 0 || !dComIfGp_roomControl_checkStatusFlag(roomNo, 0x10)) {
return 0;
}
fopAcM_SetHomeRoomNo(this, roomNo);
fopAcM_SetRoomNo(this, roomNo);
#endif
return -1;
}
return 1;
@@ -30,7 +35,7 @@ int daPy_npc_c::check_initialRoom() {
/* 8015A448-8015A524 .text check_moveStop__10daPy_npc_cFv */
BOOL daPy_npc_c::check_moveStop() {
int roomNo = current.roomNo;
int roomNo = fopAcM_GetRoomNo(this);
BOOL hasBgW = dComIfGp_roomControl_checkStatusFlag(roomNo, 0x10);
if ((roomNo < 0 || !hasBgW)) {
if (!hasBgW || m4E8 >= 30) {
@@ -50,10 +55,10 @@ BOOL daPy_npc_c::check_moveStop() {
/* 8015A524-8015A590 .text setRestart__10daPy_npc_cFSc */
void daPy_npc_c::setRestart(s8 option) {
if (option == dComIfGs_getRestartOption()) {
bool playerInDoor = dComIfGp_getPlayer(0)->eventInfo.checkCommandDoor();
BOOL playerInDoor = dComIfGp_getPlayer(0)->eventInfo.checkCommandDoor();
s8 roomNo = current.roomNo;
s8 optionRoomNo = dComIfGs_getRestartOptionRoomNo();
if (!playerInDoor && roomNo != optionRoomNo) {
if (playerInDoor == FALSE && roomNo != optionRoomNo) {
unconditionalSetRestart(option);
}
}
@@ -76,13 +81,13 @@ void daPy_npc_c::setOffsetHomePos() {
/* 8015A6A4-8015AA0C .text setPointRestart__10daPy_npc_cFsSc */
void daPy_npc_c::setPointRestart(s16 i_point, s8 option) {
JUT_ASSERT(157, dComIfGp_getStagePlayer() != NULL);
JUT_ASSERT(DEMO_SELECT(152, 157), dComIfGp_getStagePlayer() != NULL);
stage_scls_info_dummy_class* sclsinfo = dComIfGp_getStageSclsInfo();
JUT_ASSERT(159, sclsinfo != NULL);
JUT_ASSERT(DEMO_SELECT(154, 159), sclsinfo != NULL);
JUT_ASSERT(161, 0 <= i_point && i_point < sclsinfo->num);
JUT_ASSERT(DEMO_SELECT(156, 161), 0 <= i_point && i_point < sclsinfo->num);
stage_scls_info_class* scls_data = sclsinfo->m_entries;
JUT_ASSERT(163, scls_data != NULL);
JUT_ASSERT(DEMO_SELECT(158, 163), scls_data != NULL);
stage_actor_data_class* player_data = dComIfGp_getStagePlayer()->m_entries;
int scls_start_code = scls_data[i_point].mStart;
@@ -94,7 +99,7 @@ void daPy_npc_c::setPointRestart(s16 i_point, s8 option) {
}
player_data++;
}
JUT_ASSERT(174, i != dComIfGp_getStagePlayerNum());
JUT_ASSERT(DEMO_SELECT(169, 174), i != dComIfGp_getStagePlayerNum());
home.pos = player_data->base.position;
home.angle.y = player_data->base.angle.y;
@@ -134,10 +139,7 @@ BOOL daPy_npc_c::initialRestartOption(s8 option, BOOL save) {
if (!partner) {
dComIfGp_setCb1Player(this);
if (save && option != dComIfGs_getRestartOption()) {
s16 rotY;
s8 roomNo = current.roomNo;
rotY = home.angle.y;
dComIfGs_setRestartOption(&home.pos, rotY, roomNo, option);
dComIfGs_setRestartOption(&home.pos, home.angle.y, current.roomNo, option);
}
return TRUE;
}
+2 -1
View File
@@ -381,7 +381,8 @@ void daPy_waterDropPcallBack_c::execute(JPABaseEmitter* emitter, JPABaseParticle
/* 80129F48-80129F98 .text execute__22daPy_followEcallBack_cFP14JPABaseEmitter */
void daPy_followEcallBack_c::execute(JPABaseEmitter* emitter) {
emitter->setGlobalTranslation(mPos.x, mPos.y, mPos.z);
JGeometry::TVec3<s16> rot(mAngle.x, mAngle.y, mAngle.z);
JGeometry::TVec3<s16> rot;
rot.set(mAngle.x, mAngle.y, mAngle.z);
emitter->setGlobalRotation(rot);
}
+18 -2
View File
@@ -89,7 +89,7 @@ int daPy_lk_c::changeRopeEndProc(int param_0) {
/* 801430D4-80143138 .text checkSpecialRope__9daPy_lk_cFv */
BOOL daPy_lk_c::checkSpecialRope() {
if ((!strcmp(dComIfGp_getStartStageName(), "GanonK")) && (mActorKeepEquip.getActor() == NULL)) {
if (!strcmp(dComIfGp_getStartStageName(), "GanonK") && mActorKeepEquip.getActor() == NULL) {
return true;
} else {
return false;
@@ -969,15 +969,24 @@ BOOL daPy_lk_c::procRopeUp_init() {
dVar5 = dVar5 - 60.0f;
if (dVar5 < dVar4) {
dVar4 = dVar5;
} else if ((fopAcM_GetName(rope)) == PROC_HIMO2 || (checkSpecialRope())) {
} else if (
fopAcM_GetName(rope) == PROC_HIMO2 ||
#if VERSION == VERSION_DEMO
!strcmp(dComIfGp_getStartStageName(), "GanonK")
#else
checkSpecialRope()
#endif
) {
mProcVar0.m3570 = 1;
}
}
if (dVar4 <= current.pos.y) {
if (specialRopeHangUp()) {
return true;
#if VERSION > VERSION_DEMO
} else if (changeRopeToHangProc()) {
return true;
#endif
} else {
return procRopeHangWait_init(0);
}
@@ -1151,13 +1160,20 @@ BOOL daPy_lk_c::procRopeSwingStart() {
}
}
}
#if VERSION == VERSION_DEMO
mDoMtx_stack_c::transS(mRopePos.x, mRopePos.y, mRopePos.z);
mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, 0);
mDoMtx_stack_c::multVec(&local_28, &current.pos);
#endif
if (mAcch.ChkWallHit()) {
procRopeSwing_init(NULL, shape_angle.x);
}
}
#if VERSION > VERSION_DEMO
mDoMtx_stack_c::transS(mRopePos.x, mRopePos.y, mRopePos.z);
mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, 0);
mDoMtx_stack_c::multVec(&local_28, &current.pos);
#endif
return true;
}
+26 -9
View File
@@ -114,7 +114,15 @@ BOOL daPy_lk_c::changeSwimProc() {
BOOL res;
cXyz local_18;
if (checkNoResetFlg0(daPyFlg0_UNK80) && !checkModeFlg(ModeFlg_IN_SHIP | ModeFlg_SWIM) && !checkNoControll() && mDemo.getDemoMode() != daPy_demo_c::DEMO_PFALL_e && m35D0 - current.pos.y > m_HIO->mSwim.m.field_0x24) {
if (
checkNoResetFlg0(daPyFlg0_UNK80) &&
!checkModeFlg(ModeFlg_IN_SHIP | ModeFlg_SWIM) &&
#if VERSION > VERSION_DEMO
!checkNoControll() &&
#endif
mDemo.getDemoMode() != daPy_demo_c::DEMO_PFALL_e &&
m35D0 - current.pos.y > m_HIO->mSwim.m.field_0x24
) {
dComIfGp_setItemTimeCount(900);
dComIfGp_setItemTimeMax(900);
@@ -254,12 +262,16 @@ BOOL daPy_lk_c::changeSwimOutProc() {
/* 8013D530-8013D638 .text setSwimMoveAnime__9daPy_lk_cFQ29daPy_lk_c8daPy_ANM */
void daPy_lk_c::setSwimMoveAnime(daPy_ANM swimMoveAnm) {
f32 startFrame = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame();
f32 endFrame = startFrame * mFrameCtrlUnder[UNDER_MOVE0_e].getEnd();
f32 rate = (std::fabsf(mVelocity) * (m_HIO->mSwim.m.field_0x54 - m_HIO->mSwim.m.field_0x50) / mMaxNormalSpeed) +
m_HIO->mSwim.m.field_0x50 +
(getSwimTimerRate() * m_HIO->mSwim.m.field_0x74);
setSingleMoveAnime(swimMoveAnm, rate, 0.0f, -1, m_HIO->mSwim.m.field_0x58);
f32 endFrame = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() * mFrameCtrlUnder[UNDER_MOVE0_e].getEnd();
setSingleMoveAnime(
swimMoveAnm,
(std::fabsf(mVelocity) * (m_HIO->mSwim.m.field_0x54 - m_HIO->mSwim.m.field_0x50) / mMaxNormalSpeed) +
m_HIO->mSwim.m.field_0x50 +
(getSwimTimerRate() * m_HIO->mSwim.m.field_0x74),
0.0f,
-1,
m_HIO->mSwim.m.field_0x58
);
mFrameCtrlUnder[UNDER_MOVE0_e].setFrame(endFrame * mFrameCtrlUnder[UNDER_MOVE0_e].getEnd());
mAnmRatioUnder[UNDER_MOVE0_e].getAnmTransform()->setFrame(mFrameCtrlUnder[UNDER_MOVE0_e].getFrame());
}
@@ -452,8 +464,13 @@ BOOL daPy_lk_c::procSwimWait() {
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK10_e)) {
fopAc_ac_c* talkEventPartner = fopAcM_getTalkEventPartner(this);
if (talkEventPartner) {
s16 targetAngleY = cLib_targetAngleY(&current.pos, &talkEventPartner->eyePos);
cLib_addCalcAngleS(&shape_angle.y, targetAngleY, m_HIO->mTurn.m.field_0x6, m_HIO->mTurn.m.field_0x8, m_HIO->mTurn.m.field_0xA);
cLib_addCalcAngleS(
&shape_angle.y,
cLib_targetAngleY(&current.pos, &talkEventPartner->eyePos),
m_HIO->mTurn.m.field_0x6,
m_HIO->mTurn.m.field_0x8,
m_HIO->mTurn.m.field_0xA
);
current.angle.y = shape_angle.y;
}
}
+10 -4
View File
@@ -58,8 +58,7 @@ void daPy_lk_c::setSwordModel(BOOL r28)
u8* buffer;
J3DAnmTransform* bck =
checkNormalSwordEquip() ? getItemAnimeResource(LKANM_BCK_CUTAA) : getItemAnimeResource(LKANM_BCK_CUTAMS);
J3DAnmTransform* bck = checkNormalSwordEquip() ? getItemAnimeResource(LKANM_BCK_CUTAA) : getItemAnimeResource(LKANM_BCK_CUTAMS);
mEquipItem = daPyItem_SWORD_e;
JKRHeap* oldHeap = setItemHeap();
@@ -1509,18 +1508,26 @@ BOOL daPy_lk_c::procCutRoll_init() {
offResetFlg0(daPyRFlg0_NOT_ATTACKING);
if (checkNormalSwordEquip()) {
m35A4 = m_HIO->mCut.mCutRoll.m.field_0x20;
#if VERSION == VERSION_DEMO
mAtCyl.SetAtAtp(2);
#else
if (checkNoResetFlg1(daPyFlg1_SOUP_POWER_UP)) {
mAtCyl.SetAtAtp(4);
} else {
mAtCyl.SetAtAtp(2);
}
#endif
} else {
m35A4 = m_HIO->mCut.mCutRoll.m.field_0x24;
#if VERSION == VERSION_DEMO
mAtCyl.SetAtAtp(4);
#else
if (checkNoResetFlg1(daPyFlg1_SOUP_POWER_UP)) {
mAtCyl.SetAtAtp(8);
} else {
mAtCyl.SetAtAtp(4);
}
#endif
}
mAtCyl.SetR(m35A4 * 0.5f);
m34D0 = m_HIO->mCut.mCutRoll.m.field_0x2;
@@ -1774,8 +1781,7 @@ BOOL daPy_lk_c::procCutTurnMove() {
offModeFlg(ModeFlg_00000001);
m3598 = 1.0f;
}
if (mEquipItem == daPyItem_BOKO_e && (mAnmRatioUpper[UPPER_MOVE0_e].getAnmTransform() != (J3DAnmTransform*)0x0))
{
if (mEquipItem == daPyItem_BOKO_e && (mAnmRatioUpper[UPPER_MOVE0_e].getAnmTransform() != NULL)) {
mFrameCtrlUpper[UPPER_MOVE0_e].setFrame(mFrameCtrlUpper[UPPER_MOVE0_e].getEnd() - 0.001f);
mAnmRatioUpper[UPPER_MOVE0_e].getAnmTransform()->setFrame(mFrameCtrlUpper[UPPER_MOVE0_e].getFrame());
}
+5 -1
View File
@@ -215,7 +215,11 @@ BOOL daPy_lk_c::checkWHideFrontFloor(cXyz* param_0) {
if (checkNoResetFlg0(daPyFlg0_UNK80000000) && current.pos.y > ground_y) {
ground_y = current.pos.y;
}
return std::fabsf(ground_y - current.pos.y) < 5.0f;
if (std::fabsf(ground_y - current.pos.y) < 5.0f) {
return TRUE;
} else {
return FALSE;
}
}
/* 80137828-80137914 .text checkWHideModeChange__9daPy_lk_cFP4cXyz */
+19 -11
View File
@@ -444,7 +444,7 @@ bool daRd_c::checkPlayerInAttack() {
/* 00000A38-00000AA0 .text checkPlayerInCry__6daRd_cFv */
bool daRd_c::checkPlayerInCry() {
daPy_py_c* player = (daPy_py_c*)dComIfGp_getLinkPlayer();
return dLib_checkActorInFan(current.pos, player, mHeadAngle, l_HIO.mCrySpreadAngle, l_HIO.mCryRadius, 100.0f);
return dLib_checkActorInFan(current.pos, player, mHeadAngle, l_HIO.mCrySpreadAngle, l_HIO.mCryRadius, DEMO_SELECT(1000.0f, 100.0f));
}
/* 00000AA0-00000D78 .text lookBack__6daRd_cFv */
@@ -638,7 +638,7 @@ bool daRd_c::checkTgHit() {
break;
case AT_TYPE_NORMAL_ARROW:
mHitType = 5;
if (!dLib_checkActorInCircle(current.pos, player, l_HIO.mCryRadius, 1000.0f)) {
if (!dLib_checkActorInCircle(current.pos, player, l_HIO.mCryRadius, DEMO_SELECT(100.0f, 1000.0f))) {
fopAcM_seStart(this, JA_SE_LK_ARROW_HIT, 0x44);
mCE0 = 40;
r29 = false;
@@ -792,7 +792,7 @@ void daRd_c::modeWait() {
fopAc_ac_c* player = dComIfGp_getLinkPlayer();
BOOL isOto = fopAcM_otoCheck(this, mAreaRadius);
if (!isLinkControl()) {
if (dLib_checkActorInCircle(mSpawnPos, this, mAreaRadius, 1000.0f)) {
if (dLib_checkActorInCircle(mSpawnPos, this, mAreaRadius, DEMO_SELECT(100.0f, 1000.0f))) {
// The ReDead will only wake up if the player is in a 200-unit-tall cylinder around its spawn point.
// Bug: If the ReDead spawned high up in the air, its spawn point will remain there even after the ReDead
// itself has fallen down to ground level. This means it will not be able to notice the player properly.
@@ -808,7 +808,7 @@ void daRd_c::modeWait() {
}
}
if (dLib_checkActorInCircle(mSpawnPos, this, 100.0f, 1000.0f)) {
if (dLib_checkActorInCircle(mSpawnPos, this, 100.0f, DEMO_SELECT(100.0f, 1000.0f))) {
cLib_addCalcAngleS2(&shape_angle.y, mSpawnAngle, 0x4, 0x200);
if (cLib_distanceAngleS(shape_angle.y, mSpawnAngle) <= 0x200) {
shape_angle.y = mSpawnAngle;
@@ -819,7 +819,7 @@ void daRd_c::modeWait() {
setAnm(AnmPrm_TACHIP1, false);
}
}
} else if (!dLib_checkActorInCircle(mSpawnPos, this, mAreaRadius, 1000.0f) ||
} else if (!dLib_checkActorInCircle(mSpawnPos, this, mAreaRadius, DEMO_SELECT(100.0f, 1000.0f)) ||
!dLib_checkActorInCircle(mSpawnPos, player, mAreaRadius, 100.0f)
) {
modeProcInit(MODE_RETURN);
@@ -922,7 +922,10 @@ void daRd_c::modeMove() {
return;
}
daPy_py_c* player = (daPy_py_c*)dComIfGp_getLinkPlayer();
if (!dLib_checkActorInCircle(mSpawnPos, this, mAreaRadius, 1000.0f) || !dLib_checkActorInCircle(mSpawnPos, player, mAreaRadius, 100.0f)) {
if (
!dLib_checkActorInCircle(mSpawnPos, this, mAreaRadius, DEMO_SELECT(100.0f, 1000.0f)) ||
!dLib_checkActorInCircle(mSpawnPos, player, mAreaRadius, 100.0f)
) {
modeProcInit(MODE_RETURN);
return;
}
@@ -1175,7 +1178,7 @@ void daRd_c::modeReturn() {
setAnm(AnmPrm_WALK, false);
if (dLib_checkActorInCircle(mSpawnPos, this, 100.0f, 1000.0f)) {
if (dLib_checkActorInCircle(mSpawnPos, this, 100.0f, DEMO_SELECT(100.0f, 1000.0f))) {
speedF = 0.0f;
cLib_addCalcAngleS2(&shape_angle.y, mSpawnAngle, 0xA, 0x200);
if (cLib_distanceAngleS(shape_angle.y, mSpawnAngle) <= 0x200) {
@@ -1194,7 +1197,7 @@ void daRd_c::modeReturn() {
daPy_py_c* player = (daPy_py_c*)dComIfGp_getLinkPlayer();
BOOL isOto = fopAcM_otoCheck(this, mAreaRadius);
if (!isLinkControl()) {
if (dLib_checkActorInCircle(mSpawnPos, this, mAreaRadius, 1000.0f)) {
if (dLib_checkActorInCircle(mSpawnPos, this, mAreaRadius, DEMO_SELECT(100.0f, 1000.0f))) {
if (dLib_checkActorInCircle(mSpawnPos, player, mAreaRadius, 100.0f)) {
if ((dLib_checkActorInCircle(mSpawnPos, player, mAreaRadius, 100.0f) && player->speedF > 10.0f + REG12_F(4)) ||
isOto ||
@@ -1224,7 +1227,7 @@ void daRd_c::modeSilentPray() {
fopAc_ac_c* corpse;
if (fopAcM_SearchByID(mCorpseID, &corpse)) {
mTargetPos = corpse->current.pos;
if (dLib_checkActorInCircle(mTargetPos, this, 200.0f, 1000.0f)) {
if (dLib_checkActorInCircle(mTargetPos, this, 200.0f, DEMO_SELECT(100.0f, 1000.0f))) {
setAnm(AnmPrm_TACHIP1, false);
speedF = 0.0f;
} else {
@@ -1257,7 +1260,7 @@ void daRd_c::modeSwWaitInit() {
/* 00003428-00003480 .text modeSwWait__6daRd_cFv */
void daRd_c::modeSwWait() {
if (dComIfGs_isSwitch(mSwNo, current.roomNo)) {
if (dComIfGs_isSwitch(mSwNo, fopAcM_GetRoomNo(this))) {
modeProcInit(MODE_KANOKE);
}
}
@@ -1659,7 +1662,8 @@ bool daRd_c::_execute() {
}
if (enemy_ice(&mEnemyIce)) {
mpMorf->getModel()->setBaseTRMtx(mDoMtx_stack_c::get());
J3DModel* model = mpMorf->getModel();
model->setBaseTRMtx(mDoMtx_stack_c::get());
mpMorf->calc();
speedF = 0.0f;
setAttention();
@@ -1752,7 +1756,11 @@ bool daRd_c::_draw() {
} else {
mBrkAnm.entry(modelData);
mBtkAnm.entry(modelData);
#if VERSION == VERSION_DEMO
mpMorf->entryDL();
#else
mpMorf->updateDL();
#endif
mBtkAnm.remove(modelData);
mBrkAnm.remove(modelData);
}
+1 -1
View File
@@ -81,7 +81,7 @@ void dComIfG_play_c::itemInit() {
mItemKeyNumCount = 0;
mItemMaxLifeCount = 0;
mItemMagicCount = 0;
field_0x48da = 0;
mItemNowMagicCount = 0;
mItemMaxMagicCount = 0;
mItemPictureNumCount = 0;
mItemArrowNumCount = 0;
+49 -17
View File
@@ -3823,7 +3823,11 @@ void dMeter_magicInit(sub_meter_class* i_Meter) {
i_Meter->field_0x2f14.set(((J2DPicture*)i_Meter->field_0x0f38[0].pane)->getBlack());
i_Meter->field_0x2f18.set(((J2DPicture*)i_Meter->field_0x0f38[1].pane)->getWhite());
i_Meter->field_0x2f1c.set(((J2DPicture*)i_Meter->field_0x0f38[1].pane)->getBlack());
#if VERSION == VERSION_DEMO
dMeter_magicTrans(i_Meter, 0.0f, 0.0f);
#else
dMeter_magicTransNowInit(i_Meter);
#endif
fopMsgM_setInitAlpha(&i_Meter->field_0x10f8);
fopMsgM_setInitAlpha(&i_Meter->field_0x11a0);
fopMsgM_setInitAlpha(&i_Meter->field_0x11d8);
@@ -3879,8 +3883,10 @@ void dMeter_magicGaugeMove(sub_meter_class* i_Meter) {
}
i_Meter->field_0x0f38[0].mUserArea = 0;
dMeter_magicTransScale(i_Meter, 0.0f, 0.0f, 1.0f);
#if VERSION > VERSION_DEMO
dMeter_magicInitTrans(i_Meter);
dMeter_magicChange(i_Meter, i_Meter->field_0x3016 / 100.0f);
#endif
}
if (dComIfGp_getItemMaxMagicCount() != 0) {
sVar4 = dComIfGs_getMaxMagic() + dComIfGp_getItemMaxMagicCount();
@@ -3979,8 +3985,13 @@ void dMeter_flyGaugeMove(sub_meter_class* i_Meter, u8 param_2, s16 param_3, s16
JUtility::TColor color6(0xB4, 0xB4, 0xFF, 0x00);
if (param_2 != 0) {
f32 f30 = (f32)(param_4) / (f32)(param_3) * 25.0f * 8.0f;
#if VERSION == VERSION_DEMO
dMeter_magicInitTrans(i_Meter, 0.0f, 0.0f);
#else
dMeter_magicInitTrans(i_Meter);
dMeter_magicChange(i_Meter, (((f32)(param_4)) / (f32)(param_3) * 25.0f * 8.0f));
#endif
dMeter_magicChange(i_Meter, f30);
if (i_Meter->field_0x0f38[0].mUserArea == 0) {
((J2DPicture*)i_Meter->field_0x11a0.pane)->setWhite(color1);
((J2DPicture*)i_Meter->field_0x11a0.pane)->setBlack(color2);
@@ -4025,7 +4036,11 @@ void dMeter_flyGaugeMove(sub_meter_class* i_Meter, u8 param_2, s16 param_3, s16
} else {
dVar8 = 0.0f;
i_Meter->field_0x11a0.mUserArea = 0;
#if VERSION == VERSION_DEMO
dMeter_magicTrans(i_Meter, 0.0f, 0.0f);
#else
dMeter_magicTransNowInit(i_Meter);
#endif
}
if (i_Meter->field_0x1130.mUserArea != 0) {
i_Meter->field_0x1130.mUserArea = 0;
@@ -4036,8 +4051,12 @@ void dMeter_flyGaugeMove(sub_meter_class* i_Meter, u8 param_2, s16 param_3, s16
/* 801F9A24-801F9B3C .text dMeter_magicChange__FP15sub_meter_classf */
void dMeter_magicChange(sub_meter_class* i_Meter, f32 param_2) {
g_dComIfG_gameInfo.play.field_0x48da = (param_2 / i_Meter->field_0x0f38[0].mSizeOrig.x) * 4.0f;
dComIfGp_setItemNowMagic((param_2 / i_Meter->field_0x0f38[0].mSizeOrig.x) * 4.0f);
#if VERSION == VERSION_DEMO
dMeter_magicTrans(i_Meter, 0.0f, 0.0f);
#else
dMeter_magicTransNowInit(i_Meter);
#endif
for (s32 i = 0; i < 8; i++) {
if (param_2 >= i_Meter->field_0x0f38[i].mSizeOrig.x) {
fopMsgM_paneScaleXY(&i_Meter->field_0x0f38[i], 1.0f);
@@ -4058,14 +4077,12 @@ void dMeter_magicChange(sub_meter_class* i_Meter, f32 param_2) {
#if VERSION == VERSION_DEMO
void dMeter_magicTrans(sub_meter_class* i_Meter, f32 param_1, f32 param_2) {
f32 fVar1;
f32 y;
if (dComIfGs_getMaxLife() <= 0x2B) {
fVar1 = -22.0f + param_2;
y = -22.0f + param_2;
} else {
fVar1 = param_2;
y = param_2;
}
f32 y = fVar1;
f32 fVar2 = param_1 + (i_Meter->field_0x10f8.mPosCenter.x - i_Meter->field_0x10f8.mPosCenterOrig.x);
fopMsgM_paneTrans(&i_Meter->field_0x10f8, fVar2, y);
fVar2 = param_1 + (i_Meter->field_0x11a0.mPosCenter.x - i_Meter->field_0x11a0.mPosCenterOrig.x);
@@ -4080,14 +4097,12 @@ void dMeter_magicTrans(sub_meter_class* i_Meter, f32 param_1, f32 param_2) {
#else
/* 801F9B3C-801F9C14 .text dMeter_magicTransNowInit__FP15sub_meter_class */
void dMeter_magicTransNowInit(sub_meter_class* i_Meter) {
f32 fVar1;
f32 y;
if (dComIfGs_getMaxLife() <= 0x2B) {
fVar1 = -22.0f;
y = -22.0f;
} else {
fVar1 = 0.0f;
y = 0.0f;
}
f32 y = fVar1;
f32 fVar2 = i_Meter->field_0x10f8.mPosCenter.x - i_Meter->field_0x10f8.mPosCenterOrig.x;
fopMsgM_paneTrans(&i_Meter->field_0x10f8, fVar2, y);
fVar2 = i_Meter->field_0x11a0.mPosCenter.x - i_Meter->field_0x11a0.mPosCenterOrig.x;
@@ -4100,16 +4115,32 @@ void dMeter_magicTransNowInit(sub_meter_class* i_Meter) {
}
}
#endif
#if VERSION == VERSION_DEMO
void dMeter_magicInitTrans(sub_meter_class* i_Meter, f32 param_1, f32 param_2) {
/* Nonmatching - regalloc */
f32 y;
if (dComIfGs_getMaxLife() <= 0x2B) {
y = -22.0f + param_2;
} else {
y = param_2;
}
fopMsgM_paneTrans(&i_Meter->field_0x10f8, param_1, y);
fopMsgM_paneTrans(&i_Meter->field_0x11a0, param_1, y);
fopMsgM_paneTrans(&i_Meter->field_0x11d8, param_1, y);
for (s32 i = 0; i < 8; i++) {
fopMsgM_paneTrans(&i_Meter->field_0x0f38[i], param_1, y);
}
}
#else
/* 801F9C14-801F9CCC .text dMeter_magicInitTrans__FP15sub_meter_class */
void dMeter_magicInitTrans(sub_meter_class* i_Meter) {
f32 fVar1;
f32 y;
if (dComIfGs_getMaxLife() <= 0x2B) {
fVar1 = -22.0f;
y = -22.0f;
} else {
fVar1 = 0.0f;
y = 0.0f;
}
f32 y = fVar1;
fopMsgM_paneTrans(&i_Meter->field_0x10f8, 0.0f, y);
fopMsgM_paneTrans(&i_Meter->field_0x11a0, 0.0f, y);
fopMsgM_paneTrans(&i_Meter->field_0x11d8, 0.0f, y);
@@ -4117,6 +4148,7 @@ void dMeter_magicInitTrans(sub_meter_class* i_Meter) {
fopMsgM_paneTrans(&i_Meter->field_0x0f38[i], 0.0f, y);
}
}
#endif
/* 801F9CCC-801F9F18 .text dMeter_magicTransScale__FP15sub_meter_classfff */
void dMeter_magicTransScale(sub_meter_class* i_Meter, f32 param_2, f32 param_3, f32 param_4) {
+9 -11
View File
@@ -83,10 +83,9 @@ void dPlace_name_c::setScreen(const char* name, JKRArchive* arc) {
/* 801610A8-80161100 .text _openAnime__13dPlace_name_cFv */
BOOL dPlace_name_c::_openAnime() {
if (pane.mUserArea < 10) {
pane.mUserArea++;
s16 tmp = pane.mUserArea;
f32 alpha = fopMsgM_valueIncrease(10, tmp, 0);
if (getCounter() < 10) {
addCounter();
f32 alpha = fopMsgM_valueIncrease(10, getCounter(), 0);
fopMsgM_setNowAlpha(&pane, alpha);
}
@@ -97,14 +96,13 @@ BOOL dPlace_name_c::_openAnime() {
BOOL dPlace_name_c::_closeAnime() {
BOOL ret = FALSE;
if (pane.mUserArea > 0) {
pane.mUserArea--;
s16 tmp = pane.mUserArea;
f32 alpha = fopMsgM_valueIncrease(10, tmp, 0);
if (getCounter() > 0) {
decCounter();
f32 alpha = fopMsgM_valueIncrease(10, getCounter(), 0);
fopMsgM_setNowAlpha(&pane, alpha);
}
if (pane.mUserArea <= 0)
if (getCounter() <= 0)
ret = TRUE;
return ret;
@@ -175,7 +173,7 @@ cPhs_State dPn_c::_create() {
#else
DCStoreRangeNoSync(mpTIMG, 0x3c00);
#endif
((J2DPicture*)dPn_scrn->pane.pane)->changeTexture(mpTIMG, 0);
dPn_scrn->changeTexture(mpTIMG);
mState = 3;
}
mDoExt_setCurrentHeap(oldHeap);
@@ -209,7 +207,7 @@ BOOL dPn_c::_draw() {
BOOL dPn_c::_delete() {
JKRHeap * oldHeap = mDoExt_setCurrentHeap(mpHeap);
dComIfGp_setStageNameDelete();
delete dPn_scrn->scrn;
dPn_scrn->deleteScreen();
delete dPn_scrn;
if (dvd != NULL)
delete dvd;
+6
View File
@@ -207,6 +207,12 @@ void dSv_player_get_item_c::onItem(int i_field, u8 i_item) {
mItemFlags[i_field] |= (u8)(1 << i_item);
}
void dSv_player_get_item_c::offItem(int i_field, u8 i_item) {
JUT_ASSERT(408, 0 <= i_item && i_item < 8);
mItemFlags[i_field] &= ~(u8)(1 << i_item);
}
/* 8005955C-800595F8 .text isItem__21dSv_player_get_item_cFiUc */
BOOL dSv_player_get_item_c::isItem(int i_field, u8 i_item) {
JUT_ASSERT(DEMO_SELECT(423, 429), 0 <= i_item && i_item < 8);