mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-07 05:14:58 -04:00
Demo work (#984)
This commit is contained in:
+7
-7
@@ -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"),
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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); }
|
||||
|
||||
@@ -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()); };
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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, ¤t.pos, &tevStr);
|
||||
bool flagVan = mModeProc == 2 && mTimer == 0;
|
||||
g_env_light.settingTevStruct(TEV_TYPE_ACTOR, ¤t.pos, &tevStr);
|
||||
if (flagVan) {
|
||||
g_env_light.setLightTevColorType(mModelVan, &tevStr);
|
||||
J3DModelData* modelData = mModelVan->getModelData();
|
||||
|
||||
@@ -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(
|
||||
¤t.pos, itemTableNo, itemBitNo,
|
||||
fopAcM_GetHomeRoomNo(this), daItemType_0_e,
|
||||
@@ -1734,7 +1734,7 @@ namespace daObjMovebox {
|
||||
gndChk.SetPos(¢erPos);
|
||||
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, ¤t.pos, &tevStr);
|
||||
g_env_light.settingTevStruct(
|
||||
!attr()->mbUseBGTevType ? TEV_TYPE_ACTOR : TEV_TYPE_BG0,
|
||||
¤t.pos, &tevStr
|
||||
);
|
||||
g_env_light.setLightTevColorType(mpModel, &tevStr);
|
||||
dComIfGd_setListBG();
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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--;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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(¤t.angle.y, m34E8, m_HIO->mMove.m.field_0x6, sVar6,
|
||||
sVar7);
|
||||
cLib_addCalcAngleS(¤t.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) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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, ¤t.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, ¤t.pos);
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -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(¤t.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(¤t.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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
@@ -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
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
@@ -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
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user