mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-22 22:44:17 -04:00
Add camera attention status and algorythmn enums
This commit is contained in:
@@ -1981,7 +1981,7 @@ public:
|
||||
virtual fpc_ProcID getThrowBoomerangID() const { return mActorKeepThrow.getID(); }
|
||||
virtual fpc_ProcID getGrabActorID() const { return mActorKeepGrab.getID(); }
|
||||
virtual BOOL checkGrabBarrel() { return checkGrabBarrelSearch(1); }
|
||||
virtual u32 checkPlayerNoDraw() { return dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 2) || checkNoResetFlg0(daPyFlg0_NO_DRAW); }
|
||||
virtual u32 checkPlayerNoDraw() { return dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_SUBJECT_e) || checkNoResetFlg0(daPyFlg0_NO_DRAW); }
|
||||
virtual BOOL checkRopeTag() { return mActorKeepEquip.getActor() == NULL; }
|
||||
virtual BOOL checkRopeReadyAnime() const { return checkUpperAnime(LKANM_BCK_ROPETHROWWAIT); }
|
||||
virtual void voiceStart(u32);
|
||||
|
||||
@@ -364,6 +364,29 @@ public:
|
||||
/* 0x0E4 */ dCamBGChk_c mBGChk;
|
||||
};
|
||||
|
||||
enum dCamAlgorythmn_e {
|
||||
/* 0x00 */ dCamAlg_LET_CAMERA_e,
|
||||
/* 0x01 */ dCamAlg_FOLLOW_CAMERA_e,
|
||||
/* 0x02 */ dCamAlg_LOCKON_CAMERA_e,
|
||||
/* 0x03 */ dCamAlg_TALKTO_CAMERA_e,
|
||||
/* 0x04 */ dCamAlg_SUBJECT_CAMERA_e,
|
||||
/* 0x05 */ dCamAlg_FIXED_POSITION_CAMERA_e,
|
||||
/* 0x06 */ dCamAlg_FIXED_FRAME_CAMERA_e,
|
||||
/* 0x07 */ dCamAlg_TOWER_CAMERA_e,
|
||||
/* 0x08 */ dCamAlg_RIDE_CAMERA_e,
|
||||
/* 0x09 */ dCamAlg_HUNG_CAMERA_e,
|
||||
/* 0x0A */ dCamAlg_MANUAL_CAMERA_e,
|
||||
/* 0x0B */ dCamAlg_EVENT_CAMERA_e,
|
||||
/* 0x0C */ dCamAlg_CRAWL_CAMERA_e,
|
||||
/* 0x0D */ dCamAlg_HOOKSHOT_CAMERA_e,
|
||||
/* 0x0E */ dCamAlg_TORNADO_CAMERA_e,
|
||||
/* 0x0F */ dCamAlg_VOMIT_CAMERA_e,
|
||||
/* 0x10 */ dCamAlg_SHIELD_CAMERA_e,
|
||||
/* 0x11 */ dCamAlg_NON_OWNER_CAMERA_e,
|
||||
/* 0x12 */ dCamAlg_FOLLOW_CAMERA2_e,
|
||||
/* 0x13 */ dCamAlg_DEMO_CAMERA_e,
|
||||
};
|
||||
|
||||
class dCamParam_c {
|
||||
public:
|
||||
/* 0x0 */ const dCamera__Style* mpStyle;
|
||||
|
||||
@@ -56,7 +56,6 @@ struct camSphChkdata {
|
||||
field_0x4 = i_radius;
|
||||
}
|
||||
|
||||
~camSphChkdata(){}
|
||||
/* 0x00 */ cXyz* field_0x0;
|
||||
/* 0x04 */ f32 field_0x4;
|
||||
/* 0x08 */ cXyz field_0x8;
|
||||
@@ -64,10 +63,7 @@ struct camSphChkdata {
|
||||
};
|
||||
|
||||
class dCamera_monitoring_things {
|
||||
public:
|
||||
dCamera_monitoring_things(){}
|
||||
~dCamera_monitoring_things(){}
|
||||
|
||||
public:
|
||||
/* 0x00 */ cXyz mPos;
|
||||
/* 0x0C */ cXyz field_0x0C;
|
||||
/* 0x18 */ int field_0x18;
|
||||
@@ -75,10 +71,7 @@ class dCamera_monitoring_things {
|
||||
};
|
||||
|
||||
class dCamera_DMC_system {
|
||||
public:
|
||||
dCamera_DMC_system(){}
|
||||
~dCamera_DMC_system(){}
|
||||
|
||||
public:
|
||||
/* 0x0 */ u8 field_0x0;
|
||||
/* 0x1 */ u8 field_0x1;
|
||||
/* 0x2 */ cSAngle field_0x2;
|
||||
|
||||
@@ -46,7 +46,7 @@ enum daPy__PlayerStatus0 {
|
||||
daPyStts0_UNK400_e = 0x00000400,
|
||||
daPyStts0_UNK800_e = 0x00000800,
|
||||
daPyStts0_BOW_AIM_e = 0x00001000,
|
||||
daPyStts0_UNK2000_e = 0x00002000,
|
||||
daPyStts0_SUBJECT_e = 0x00002000, // First person
|
||||
daPyStts0_HOOKSHOT_AIM_e = 0x00004000,
|
||||
daPyStts0_SWORD_SWING_e = 0x00008000,
|
||||
daPyStts0_SHIP_RIDE_e = 0x00010000,
|
||||
@@ -69,7 +69,7 @@ enum daPy__PlayerStatus0 {
|
||||
// This is some combination of flags which is seemingly related to "judgement", used in dAttention_c
|
||||
daPyStts0_UNK37a02371_e = daPyStts0_UNK1_e | daPyStts0_UNK10_e | daPyStts0_UNK20_e
|
||||
| daPyStts0_UNK40_e | daPyStts0_UNK100_e | daPyStts0_UNK200_e
|
||||
| daPyStts0_UNK2000_e| daPyStts0_TELESCOPE_LOOK_e
|
||||
| daPyStts0_SUBJECT_e| daPyStts0_TELESCOPE_LOOK_e
|
||||
| daPyStts0_UNK800000_e | daPyStts0_UNK1000000_e
|
||||
| daPyStts0_UNK2000000_e | daPyStts0_UNK4000000_e
|
||||
| daPyStts0_UNK10000000_e | daPyStts0_UNK20000000_e
|
||||
@@ -98,6 +98,23 @@ enum daPy__PlayerStatus1 {
|
||||
daPyStts1_UNK80000_e = 0x00080000,
|
||||
};
|
||||
|
||||
enum dCamera__AttentionStatus {
|
||||
dCamAttnStts_00000001_e = 0x00000001, // just locked on?
|
||||
dCamAttnStts_SUBJECT_e = 0x00000002, // First person
|
||||
dCamAttnStts_00000004_e = 0x00000004,
|
||||
dCamAttnStts_TELESCOPE_LOOK_e = 0x00000008,
|
||||
dCamAttnStts_00000010_e = 0x00000010,
|
||||
dCamAttnStts_00000020_e = 0x00000020,
|
||||
dCamAttnStts_PICTO_BOX_AIM_e = 0x00000040,
|
||||
dCamAttnStts_00000080_e = 0x00000080,
|
||||
dCamAttnStts_00000100_e = 0x00000100,
|
||||
// dCamAttnStts_00000200_e = 0x00000200,
|
||||
dCamAttnStts_00000400_e = 0x00000400, // manual camera control, as opposed to free camera control?
|
||||
// dCamAttnStts_00000800_e = 0x00000800,
|
||||
dCamAttnStts_00001000_e = 0x00001000, // just pressed c-stick up to enter first person?
|
||||
dCamAttnStts_00002000_e = 0x00002000,
|
||||
};
|
||||
|
||||
class __d_timer_info_c {
|
||||
public:
|
||||
__d_timer_info_c() {
|
||||
|
||||
+8
-2
@@ -331,6 +331,12 @@ public:
|
||||
virtual void draw();
|
||||
};
|
||||
|
||||
enum {
|
||||
dMapIconDisp_NONE_e = 0,
|
||||
dMapIconDisp_FREE_e = 1,
|
||||
dMapIconDisp_SELF_e = 2,
|
||||
};
|
||||
|
||||
class dMap_c {
|
||||
public:
|
||||
static u8 getMapAlpha() { return mAlpha; }
|
||||
@@ -349,11 +355,11 @@ public:
|
||||
static void setMapDispPosLeftUpX(s16 x) { mDispPosLeftUpX = x; }
|
||||
static s16 getMapDspPosLeftUpY() { return mDispPosLeftUpY; }
|
||||
static void setMapDispPosLeftUpY(s16 y) { mDispPosLeftUpY = y; }
|
||||
static s16 getMapDspSizeWidth() { return mDispSizeX; }
|
||||
static s16 getMapDspSizeHeight() { return mDispSizeY; }
|
||||
static void setIconFreeScale(f32 scale) { mIconFreeScale = scale; }
|
||||
static void setIconSelfScale(f32 scale) { mIconSelfScale = scale; }
|
||||
|
||||
static void getMapDspSizeHeight() {}
|
||||
static void getMapDspSizeWidth() {}
|
||||
static void getNowRoom() {}
|
||||
static void isMapDispTypeEnlargementSize() {}
|
||||
static void isMapDispTypeRealSize() {}
|
||||
|
||||
@@ -280,7 +280,7 @@ void daArrow_Lighteff_c::brk_play() {
|
||||
mBtk.play();
|
||||
|
||||
int cam = dComIfGp_getPlayerCameraID(0);
|
||||
if(!dComIfGp_checkCameraAttentionStatus(cam, 0x20)) {
|
||||
if(!dComIfGp_checkCameraAttentionStatus(cam, dCamAttnStts_00000020_e)) {
|
||||
if(field_0x2E0 < mBrk.getEndFrame()) {
|
||||
field_0x2E0 += 1.0f;
|
||||
if(field_0x2E0 > mBrk.getEndFrame()) {
|
||||
@@ -372,13 +372,13 @@ bool daArrow_Lighteff_c::_execute() {
|
||||
int cam = dComIfGp_getPlayerCameraID(0);
|
||||
if(field_0x2E8 == 1) {
|
||||
fopAcM_seStartCurrent(this, JA_SE_OBJ_FIRE_ARROW_AMB, 0);
|
||||
if(!dComIfGp_checkCameraAttentionStatus(cam, 0x20)) {
|
||||
if(!dComIfGp_checkCameraAttentionStatus(cam, dCamAttnStts_00000020_e)) {
|
||||
dComIfGp_particle_setSimple(dPa_name::ID_AK_JP_O_KAGEROU00, &field_0x29C);
|
||||
}
|
||||
}
|
||||
else if(field_0x2E8 == 2) {
|
||||
fopAcM_seStartCurrent(this, JA_SE_OBJ_ICE_ARROW_AMB, 0);
|
||||
if(dComIfGp_checkCameraAttentionStatus(cam, 0x20)) {
|
||||
if(dComIfGp_checkCameraAttentionStatus(cam, dCamAttnStts_00000020_e)) {
|
||||
if(field_0x2F4.getEmitter()) {
|
||||
field_0x2F4.getEmitter()->setGlobalAlpha(0x64);
|
||||
}
|
||||
|
||||
@@ -842,7 +842,7 @@ static BOOL daKanban_Execute(kanban_class* i_this) {
|
||||
{
|
||||
if (i_this->actor.eventInfo.checkCommandTalk()) {
|
||||
if (l_msgId == fpcM_ERROR_PROCESS_ID_e) {
|
||||
if (dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), 4)) {
|
||||
if (dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), dCamAttnStts_00000004_e)) {
|
||||
l_msgId = fopMsgM_messageSet(fopAcM_GetParam(&i_this->actor), &i_this->actor.eyePos);
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -2317,7 +2317,7 @@ BOOL daNpc_Ji1_c::reiAction(void*) {
|
||||
|
||||
field_0xC78++;
|
||||
l_msgId = fpcM_ERROR_PROCESS_ID_e;
|
||||
dComIfGp_onCameraAttentionStatus(0, 4);
|
||||
dComIfGp_onCameraAttentionStatus(0, dCamAttnStts_00000004_e);
|
||||
}
|
||||
else if(field_0xC78 != -1) {
|
||||
if(l_msgId == fpcM_ERROR_PROCESS_ID_e) {
|
||||
@@ -2364,7 +2364,7 @@ BOOL daNpc_Ji1_c::reiAction(void*) {
|
||||
setAnm(0, 16.0f, 0);
|
||||
setAction(&daNpc_Ji1_c::normalAction, NULL);
|
||||
dComIfGp_event_reset();
|
||||
dComIfGp_offCameraAttentionStatus(0, 4);
|
||||
dComIfGp_offCameraAttentionStatus(0, dCamAttnStts_00000004_e);
|
||||
field_0xD74 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -219,7 +219,7 @@ namespace daObjPaper {
|
||||
|
||||
/* 000007A4-00000820 .text mode_talk0__Q210daObjPaper5Act_cFv */
|
||||
void daObjPaper::Act_c::mode_talk0() {
|
||||
if (mMsgId == fpcM_ERROR_PROCESS_ID_e && dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), 4)) {
|
||||
if (mMsgId == fpcM_ERROR_PROCESS_ID_e && dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), dCamAttnStts_00000004_e)) {
|
||||
mMsgId = fopMsgM_messageSet(prm_get_msgNo(), &eyePos);
|
||||
|
||||
mode_talk1_init();
|
||||
|
||||
@@ -72,7 +72,7 @@ BOOL daPy_lk_c::returnBoomerang() {
|
||||
|
||||
/* 801497A4-8014984C .text checkNextActionBoomerangReady__9daPy_lk_cFv */
|
||||
BOOL daPy_lk_c::checkNextActionBoomerangReady() {
|
||||
if (!itemButton() && (mpAttnActorLockOn != NULL || dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x10))) {
|
||||
if (!itemButton() && (mpAttnActorLockOn != NULL || dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000010_e))) {
|
||||
setActAnimeUpper(
|
||||
LKANM_BCK_BOOMTHROW,
|
||||
UPPER_MOVE2_e,
|
||||
|
||||
@@ -239,22 +239,22 @@ BOOL daPy_lk_c::checkCrawlSideWall(
|
||||
/* 801392BC-80139424 .text setDoStatusCrawl__9daPy_lk_cFv */
|
||||
void daPy_lk_c::setDoStatusCrawl() {
|
||||
dComIfGp_setRStatus(dActStts_CROUCH_e);
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x80)) {
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000080_e)) {
|
||||
dComIfGp_setAStatus(dActStts_RETURN_e);
|
||||
if (checkSubjectEnd(1) || mWaterY > current.pos.y) {
|
||||
dComIfGp_clearPlayerStatus0(0, daPyStts0_UNK2000_e);
|
||||
if (checkSubjectEnd(TRUE) || mWaterY > current.pos.y) {
|
||||
dComIfGp_clearPlayerStatus0(0, daPyStts0_SUBJECT_e);
|
||||
} else {
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK2000_e);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SUBJECT_e);
|
||||
}
|
||||
} else if (dCam_getBody()->ChangeModeOK(4)) {
|
||||
if (mWaterY <= current.pos.y) {
|
||||
onResetFlg0(daPyRFlg0_SUBJECT_ACCEPT);
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x1000) && !dComIfGp_event_runCheck()) {
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00001000_e) && !dComIfGp_event_runCheck()) {
|
||||
setSubjectMode();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x80) &&
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000080_e) &&
|
||||
(mCurProc != daPyProc_CRAWL_MOVE_e || mProcVar0.m3570 == 0))
|
||||
{
|
||||
setBodyAngleToCamera();
|
||||
@@ -338,7 +338,7 @@ BOOL daPy_lk_c::procCrawlMove_init(s16 param_0, s16 param_1) {
|
||||
var_r29 = 1;
|
||||
}
|
||||
BOOL var_r27;
|
||||
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK2000_e)) {
|
||||
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SUBJECT_e)) {
|
||||
var_r27 = 1;
|
||||
} else {
|
||||
var_r27 = 0;
|
||||
@@ -361,7 +361,7 @@ BOOL daPy_lk_c::procCrawlMove_init(s16 param_0, s16 param_1) {
|
||||
m35E4 = 1.0f;
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_CRAWL_e);
|
||||
if (var_r27 != 0) {
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK2000_e);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SUBJECT_e);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -534,7 +534,7 @@ BOOL daPy_lk_c::procCrawlMove() {
|
||||
|
||||
/* 8013A004-8013A0F0 .text procCrawlAutoMove_init__9daPy_lk_cFiP4cXyz */
|
||||
BOOL daPy_lk_c::procCrawlAutoMove_init(int param_0, cXyz* param_1) {
|
||||
BOOL uVar1 = dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK2000_e) ? TRUE : FALSE;
|
||||
BOOL uVar1 = dComIfGp_checkPlayerStatus0(0, daPyStts0_SUBJECT_e) ? TRUE : FALSE;
|
||||
commonProcInit(daPyProc_CRAWL_AUTO_MOVE_e);
|
||||
m370C = *param_1;
|
||||
m35E4 = 1.0f;
|
||||
@@ -549,7 +549,7 @@ BOOL daPy_lk_c::procCrawlAutoMove_init(int param_0, cXyz* param_1) {
|
||||
mAcchCir[i].SetWallR(9.99f);
|
||||
}
|
||||
if (uVar1) {
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK2000_e);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SUBJECT_e);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1697,7 +1697,7 @@ BOOL daPy_lk_c::draw() {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x20)) {
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000020_e)) {
|
||||
offBodyEffect();
|
||||
} else {
|
||||
onBodyEffect();
|
||||
@@ -1796,7 +1796,7 @@ BOOL daPy_lk_c::draw() {
|
||||
mtl->getShape()->show();
|
||||
}
|
||||
}
|
||||
} else if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x20)) {
|
||||
} else if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000020_e)) {
|
||||
for (int i = 0; i < ARRAY_SIZE(mpZOffBlendShape); i++) {
|
||||
mpZOffBlendShape[i]->hide();
|
||||
mpZOffNoneShape[i]->hide();
|
||||
@@ -1905,7 +1905,7 @@ BOOL daPy_lk_c::draw() {
|
||||
entryDLSetLight(mpHandsModel, checkFreezeState());
|
||||
if (checkNoResetFlg1(daPyFlg1_CASUAL_CLOTHES) && !checkCaughtShapeHide()
|
||||
#if VERSION > VERSION_DEMO
|
||||
&& !dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x20)
|
||||
&& !dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000020_e)
|
||||
#endif
|
||||
) {
|
||||
entryDLSetLight(mpKatsuraModel, checkFreezeState());
|
||||
@@ -1952,7 +1952,7 @@ BOOL daPy_lk_c::draw() {
|
||||
}
|
||||
mDoExt_modelUpdateDL(mpSuimenMunyaModel);
|
||||
}
|
||||
if (!r24 && !dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x20)) {
|
||||
if (!r24 && !dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000020_e)) {
|
||||
if (checkSwordEquip()
|
||||
#if VERSION == VERSION_DEMO
|
||||
&& !checkLastDemoSwordNoDraw(1)
|
||||
@@ -2005,7 +2005,7 @@ BOOL daPy_lk_c::draw() {
|
||||
updateDLSetLight(mpBottleCapModel, 0);
|
||||
}
|
||||
|
||||
if (!dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x20)) {
|
||||
if (!dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000020_e)) {
|
||||
f32 frame = mYaura00rBrk.getBrkAnm()->getFrame();
|
||||
if (frame > 0.0f) {
|
||||
daPy_aura_c* auraEntry = &mMagicArmorAuraEntries[0];
|
||||
@@ -2706,7 +2706,7 @@ BOOL daPy_lk_c::setBodyAngleToCamera() {
|
||||
s16 local_16;
|
||||
s16 local_18;
|
||||
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x10) != 0) {
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000010_e) != 0) {
|
||||
bVar1 = dCam_getBody()->CalcSubjectAngle(&local_16, &local_18);
|
||||
if (bVar1 != 0) {
|
||||
shape_angle.y = local_18;
|
||||
@@ -4343,7 +4343,7 @@ BOOL daPy_lk_c::checkNextActionFromButton() {
|
||||
#endif
|
||||
) {
|
||||
onResetFlg0(daPyRFlg0_SUBJECT_ACCEPT);
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x1000)) {
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00001000_e)) {
|
||||
return procSubjectivity_init(0);
|
||||
}
|
||||
}
|
||||
@@ -5706,7 +5706,7 @@ BOOL daPy_lk_c::checkScopeEnd() {
|
||||
|
||||
/* 80112100-8011215C .text setSubjectMode__9daPy_lk_cFv */
|
||||
void daPy_lk_c::setSubjectMode() {
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK2000_e);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_SUBJECT_e);
|
||||
seStartSystem(JA_SE_SUBJ_VIEW_IN);
|
||||
}
|
||||
|
||||
@@ -5723,7 +5723,12 @@ BOOL daPy_lk_c::checkMaskDraw() {
|
||||
/* 801121C8-80112280 .text checkSubjectEnd__9daPy_lk_cFi */
|
||||
BOOL daPy_lk_c::checkSubjectEnd(BOOL i_playSound) {
|
||||
// TODO: these trigger/button checks are likely inlines
|
||||
if(dComIfGp_event_runCheck() || (mItemTrigger & (BTN_A | BTN_B)) || (mItemButton & BTN_L) || dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x2000)) {
|
||||
if(
|
||||
dComIfGp_event_runCheck() ||
|
||||
(mItemTrigger & (BTN_A | BTN_B)) ||
|
||||
(mItemButton & BTN_L) ||
|
||||
dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00002000_e)
|
||||
) {
|
||||
if(i_playSound) {
|
||||
seStartSystem(JA_SE_SUBJ_VIEW_OUT);
|
||||
}
|
||||
@@ -5960,7 +5965,7 @@ BOOL daPy_lk_c::procScope() {
|
||||
if (checkScopeEnd()) {
|
||||
procWait_init();
|
||||
} else {
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x10)) {
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000010_e)) {
|
||||
shape_angle.y = fopCamM_GetAngleY(dComIfGp_getCamera(mCameraInfoIdx));
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
@@ -6454,7 +6459,7 @@ BOOL daPy_lk_c::procCrouchDefense() {
|
||||
dComIfGp_setRStatus(dActStts_DEFEND_e);
|
||||
if (dCam_getBody()->ChangeModeOK(4) && current.pos.y >= mWaterY) {
|
||||
onResetFlg0(daPyRFlg0_SUBJECT_ACCEPT);
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x1000) && !dComIfGp_event_runCheck()) {
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00001000_e) && !dComIfGp_event_runCheck()) {
|
||||
return procSubjectivity_init(1);
|
||||
}
|
||||
}
|
||||
@@ -6576,7 +6581,7 @@ BOOL daPy_lk_c::procCrouch() {
|
||||
dComIfGp_setRStatus(dActStts_CROUCH_e);
|
||||
if (dCam_getBody()->ChangeModeOK(4) && current.pos.y >= mWaterY) {
|
||||
onResetFlg0(daPyRFlg0_SUBJECT_ACCEPT);
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x1000) && !dComIfGp_event_runCheck()) {
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00001000_e) && !dComIfGp_event_runCheck()) {
|
||||
return procSubjectivity_init(1);
|
||||
}
|
||||
}
|
||||
@@ -9722,7 +9727,7 @@ void daPy_lk_c::checkLightHit() {
|
||||
}
|
||||
resetCurse();
|
||||
}
|
||||
if (!dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK2000_e) &&
|
||||
if (!dComIfGp_checkPlayerStatus0(0, daPyStts0_SUBJECT_e) &&
|
||||
checkResetFlg0(daPyRFlg0_LIGHT_REFLECT))
|
||||
{
|
||||
if (m342C.getEmitter() == NULL) {
|
||||
@@ -10279,7 +10284,7 @@ void daPy_lk_c::setAttentionPos() {
|
||||
static const Vec offset = {0.0f, 30.0f, 20.0f};
|
||||
mDoMtx_multVec(mpCLModel->getBaseTRMtx(), &offset, &attention_info.position);
|
||||
}
|
||||
} else if (dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK2000_e)) {
|
||||
} else if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SUBJECT_e)) {
|
||||
{
|
||||
static const Vec offset = {0.0f, 70.0f, 0.0f};
|
||||
mDoMtx_stack_c::ZXYrotS(mBodyAngle.x, shape_angle.y, 0);
|
||||
|
||||
@@ -322,7 +322,7 @@ BOOL daPy_lk_c::changeShipEndProc() {
|
||||
m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_FREEB) ||
|
||||
m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_FREED)
|
||||
{
|
||||
if ((!dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK2000_e) && !spActionButton()) &&
|
||||
if ((!dComIfGp_checkPlayerStatus0(0, daPyStts0_SUBJECT_e) && !spActionButton()) &&
|
||||
(dComIfGp_getDoStatus() == dActStts_BLANK_e && mCurProc == daPyProc_SHIP_PADDLE_e))
|
||||
{
|
||||
if (!ship->checkForceMove()) {
|
||||
@@ -649,14 +649,14 @@ BOOL daPy_lk_c::procShipPaddle() {
|
||||
if (dComIfGp_getDoStatus() == dActStts_BLANK_e && dComIfGp_getShipActor()->speedF >= 3.0f) {
|
||||
dComIfGp_setDoStatus(dActStts_STOP_e);
|
||||
}
|
||||
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK2000_e)) {
|
||||
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SUBJECT_e)) {
|
||||
dComIfGp_setAStatus(dActStts_RETURN_e);
|
||||
if (checkSubjectEnd(1)) {
|
||||
dComIfGp_clearPlayerStatus0(0, daPyStts0_UNK2000_e);
|
||||
if (checkSubjectEnd(TRUE)) {
|
||||
dComIfGp_clearPlayerStatus0(0, daPyStts0_SUBJECT_e);
|
||||
}
|
||||
} else {
|
||||
onResetFlg0(daPyRFlg0_SUBJECT_ACCEPT);
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x1000) && !dComIfGp_event_runCheck()) {
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00001000_e) && !dComIfGp_event_runCheck()) {
|
||||
setSubjectMode();
|
||||
}
|
||||
}
|
||||
@@ -730,7 +730,7 @@ BOOL daPy_lk_c::procShipScope() {
|
||||
}
|
||||
if (checkScopeEnd()) {
|
||||
procShipPaddle_init();
|
||||
} else if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x10) && !dComIfGp_event_runCheck() &&
|
||||
} else if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000010_e) && !dComIfGp_event_runCheck() &&
|
||||
!checkPlayerDemoMode())
|
||||
{
|
||||
shape_angle.y = fopCamM_GetAngleY(dComIfGp_getCamera(mCameraInfoIdx));
|
||||
|
||||
@@ -282,11 +282,19 @@ BOOL daShip_c::draw() {
|
||||
m02A4->setTranslationX(m03D4);
|
||||
}
|
||||
|
||||
if (!dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e) || dComIfGp_getAttention().Lockon() || daPy_getPlayerLinkActorClass()->getBodyAngleX() > -0x1000) {
|
||||
if (
|
||||
!dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e) ||
|
||||
dComIfGp_getAttention().Lockon() ||
|
||||
daPy_getPlayerLinkActorClass()->getBodyAngleX() > -0x1000
|
||||
) {
|
||||
mDoExt_modelEntryDL(model);
|
||||
}
|
||||
|
||||
if (!dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e) || daPy_getPlayerLinkActorClass()->checkNoControll() || !dComIfGp_checkCameraAttentionStatus(0, 0x22)) {
|
||||
if (
|
||||
!dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e) ||
|
||||
daPy_getPlayerLinkActorClass()->checkNoControll() ||
|
||||
!dComIfGp_checkCameraAttentionStatus(0, dCamAttnStts_SUBJECT_e | dCamAttnStts_00000020_e)
|
||||
) {
|
||||
offStateFlg(daSFLG_HEAD_NO_DRAW_e);
|
||||
mDoExt_modelEntryDL(model_00);
|
||||
}
|
||||
@@ -1394,7 +1402,7 @@ void daShip_c::setSelfMove(int param_1) {
|
||||
cLib_addCalcAngleS(&m0366, sVar2, 4, l_HIO.tiller_speed, 0x100);
|
||||
setMoveAngle(m0366);
|
||||
if (!checkStateFlg(daSFLG_FLY_e)) {
|
||||
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK2000_e) || dComIfGp_event_runCheck() || daPy_getPlayerLinkActorClass()->checkNoControll()) {
|
||||
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SUBJECT_e) || dComIfGp_event_runCheck() || daPy_getPlayerLinkActorClass()->checkNoControll()) {
|
||||
firstDecrementShipSpeed(0.0f);
|
||||
}
|
||||
else {
|
||||
@@ -2493,7 +2501,7 @@ BOOL daShip_c::procTalk() {
|
||||
firstDecrementShipSpeed(0.0f);
|
||||
setMoveAngle(0);
|
||||
if (m0430 == fpcM_ERROR_PROCESS_ID_e) {
|
||||
if (dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), 4)) {
|
||||
if (dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), dCamAttnStts_00000004_e)) {
|
||||
m0430 = fopMsgM_messageSet(mNextMessageNo, &eyePos);
|
||||
}
|
||||
}
|
||||
@@ -3484,7 +3492,7 @@ void daShip_c::setHeadAnm() {
|
||||
}
|
||||
}
|
||||
else if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
||||
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_BOW_AIM_e | daPyStts0_UNK2000_e | daPyStts0_HOOKSHOT_AIM_e | daPyStts0_BOOMERANG_AIM_e | daPyStts0_TELESCOPE_LOOK_e) ||
|
||||
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_BOW_AIM_e | daPyStts0_SUBJECT_e | daPyStts0_HOOKSHOT_AIM_e | daPyStts0_BOOMERANG_AIM_e | daPyStts0_TELESCOPE_LOOK_e) ||
|
||||
dComIfGp_checkPlayerStatus1(0, daPyStts1_PICTO_BOX_AIM_e) ||
|
||||
mCurMode == 9) {
|
||||
newFileIndex = SHIP_BCK_KYAKKAN1;
|
||||
@@ -3784,7 +3792,7 @@ BOOL daShip_c::execute() {
|
||||
speedF = prev_speedF;
|
||||
if (mTornadoActor) {
|
||||
fVar4 = m0404 * 40.0f + 30.0f;
|
||||
if (!dComIfGp_checkPlayerStatus0(0, daPyStts0_BOW_AIM_e) || !dComIfGp_checkCameraAttentionStatus(0, 0x20)) {
|
||||
if (!dComIfGp_checkPlayerStatus0(0, daPyStts0_BOW_AIM_e) || !dComIfGp_checkCameraAttentionStatus(0, dCamAttnStts_00000020_e)) {
|
||||
fVar4 *= 1.2f;
|
||||
}
|
||||
}
|
||||
@@ -3819,7 +3827,7 @@ BOOL daShip_c::execute() {
|
||||
}
|
||||
else if (checkForceMove() && !dComIfGp_event_runCheck()) {
|
||||
if (mTornadoActor) {
|
||||
if (!dComIfGp_checkPlayerStatus0(0, daPyStts0_BOW_AIM_e) || !dComIfGp_checkCameraAttentionStatus(0, 0x20)) {
|
||||
if (!dComIfGp_checkPlayerStatus0(0, daPyStts0_BOW_AIM_e) || !dComIfGp_checkCameraAttentionStatus(0, dCamAttnStts_00000020_e)) {
|
||||
prev_speedF = 25.0f;
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -132,7 +132,7 @@ static BOOL daTag_Msg_actionEvent(daTag_Msg_c* a_this) {
|
||||
int message = a_this->getMessage();
|
||||
switch (msg_mode / 1) {
|
||||
case 0:
|
||||
if (dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), 4)) {
|
||||
if (dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), dCamAttnStts_00000004_e)) {
|
||||
msg_mode++;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -892,9 +892,9 @@ bool dAttention_c::Run(u32 interactMask) {
|
||||
runDrawProc();
|
||||
runDebugDisp();
|
||||
if (mLockOnState == LockState_LOCK) {
|
||||
dComIfGp_onCameraAttentionStatus(mPadNo, 1);
|
||||
dComIfGp_onCameraAttentionStatus(mPadNo, dCamAttnStts_00000001_e);
|
||||
} else {
|
||||
dComIfGp_offCameraAttentionStatus(mPadNo, 1);
|
||||
dComIfGp_offCameraAttentionStatus(mPadNo, dCamAttnStts_00000001_e);
|
||||
}
|
||||
|
||||
mHint.proc();
|
||||
|
||||
+147
-147
File diff suppressed because it is too large
Load Diff
+125
-120
@@ -756,7 +756,7 @@ bool dCamera_c::Run() {
|
||||
|
||||
Att();
|
||||
|
||||
dComIfGp_offCameraAttentionStatus(mCameraInfoIdx, 0x3400);
|
||||
dComIfGp_offCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000400_e | dCamAttnStts_00001000_e | dCamAttnStts_00002000_e);
|
||||
|
||||
if (!dComIfGp_evmng_cameraPlay() && !chkFlag(0x20000000)) {
|
||||
updatePad();
|
||||
@@ -814,7 +814,7 @@ bool dCamera_c::Run() {
|
||||
|
||||
clrFlag(0x80000000);
|
||||
|
||||
dComIfGp_offCameraAttentionStatus(mCameraInfoIdx, 0x80);
|
||||
dComIfGp_offCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000080_e);
|
||||
|
||||
if (mCamParam.CheckFlag(dCamPrmFlg_UNK004) && !check_owner_action(mPadId, daPyStts0_UNK4000000_e) && !check_owner_action1(mPadId, daPyStts1_UNK40000_e)) {
|
||||
m148 += (forwardCheckAngle() - m148) * mCamSetup.mBGChk.FwdCushion();
|
||||
@@ -828,12 +828,12 @@ bool dCamera_c::Run() {
|
||||
mTrimTypeForce = -1;
|
||||
m068 = 9;
|
||||
|
||||
if (chkFlag(0x200000) && mCamParam.Algorythmn(mCurStyle) != 11) {
|
||||
if (chkFlag(0x200000) && mCamParam.Algorythmn(mCurStyle) != dCamAlg_EVENT_CAMERA_e) {
|
||||
if (push_any_key(mPadId) || mMonitor.field_0x0C.x > 10.0f || !m360 || m31C) {
|
||||
clrFlag(0x200000);
|
||||
}
|
||||
}
|
||||
else if (dComIfGp_demo_getCamera() && mCamParam.Algorythmn() != 11) {
|
||||
else if (dComIfGp_demo_getCamera() && mCamParam.Algorythmn() != dCamAlg_EVENT_CAMERA_e) {
|
||||
res = demoCamera(0);
|
||||
}
|
||||
else {
|
||||
@@ -875,7 +875,7 @@ bool dCamera_c::Run() {
|
||||
mCenter.x = mViewCache.mCenter.x;
|
||||
mCenter.z = mViewCache.mCenter.z;
|
||||
|
||||
if ((mCamParam.Algorythmn(mCurStyle) == 4) && chkFlag(0x10000800)) {
|
||||
if ((mCamParam.Algorythmn(mCurStyle) == dCamAlg_SUBJECT_CAMERA_e) && chkFlag(0x10000800)) {
|
||||
m068 &= ~8;
|
||||
mCenter.y = mViewCache.mCenter.y;
|
||||
}
|
||||
@@ -935,22 +935,22 @@ bool dCamera_c::Run() {
|
||||
}
|
||||
|
||||
if (r3) {
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, 0x10);
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000010_e);
|
||||
}
|
||||
else {
|
||||
dComIfGp_offCameraAttentionStatus(mCameraInfoIdx, 0x10);
|
||||
dComIfGp_offCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000010_e);
|
||||
}
|
||||
|
||||
if (chkFlag(0x40000)) {
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, 2);
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_SUBJECT_e);
|
||||
}
|
||||
else if (mDirection.R() < mCamSetup.m048) {
|
||||
if (chkFlag(0x800)) {
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, 2);
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_SUBJECT_e);
|
||||
}
|
||||
|
||||
if (chkFlag(0x10000000)) {
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, 0x20);
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000020_e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -963,7 +963,7 @@ bool dCamera_c::NotRun() {
|
||||
|
||||
checkGroundInfo();
|
||||
|
||||
dComIfGp_offCameraAttentionStatus(mCameraInfoIdx, 0x80);
|
||||
dComIfGp_offCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000080_e);
|
||||
|
||||
if (dComIfGp_evmng_cameraPlay() || chkFlag(0x20000000)) {
|
||||
if (mCurType != mCamTypeEvent) {
|
||||
@@ -983,10 +983,10 @@ bool dCamera_c::NotRun() {
|
||||
}
|
||||
|
||||
if (dComIfGp_event_runCheck()) {
|
||||
dComIfGp_offCameraAttentionStatus(mCameraInfoIdx, 0x48);
|
||||
dComIfGp_offCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_TELESCOPE_LOOK_e | dCamAttnStts_PICTO_BOX_AIM_e);
|
||||
}
|
||||
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, 0x14);
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000004_e | dCamAttnStts_00000010_e);
|
||||
|
||||
clrFlag(0x90080);
|
||||
|
||||
@@ -996,7 +996,7 @@ bool dCamera_c::NotRun() {
|
||||
|
||||
mPause = 0;
|
||||
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 8)) {
|
||||
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_TELESCOPE_LOOK_e)) {
|
||||
if (chkFlag(0x400000)) {
|
||||
setView(160.0f, 35.0f, 320.0f, 320.0f);
|
||||
}
|
||||
@@ -1077,35 +1077,32 @@ int dCamera_c::nextMode(s32 i_curMode) {
|
||||
m144 = 1;
|
||||
m184 = 0;
|
||||
}
|
||||
else {
|
||||
if (mStickCPosYLast <= 0.0f && mStickCValueLast > mCamSetup.m09C) {
|
||||
m144 = 0;
|
||||
}
|
||||
else {
|
||||
if (i_curMode == 0 || i_curMode == 0x13) {
|
||||
positionOf(mpPlayerActor);
|
||||
if (
|
||||
!(
|
||||
mStickMainValueLast >= 0.5f ||
|
||||
attn.LockonTruth() ||
|
||||
check_owner_action(mPadId, daPyStts0_SWIM_e)
|
||||
)
|
||||
) {
|
||||
if (m184 == 1) {
|
||||
if (mStickCPosYLast < mCamSetup.mCstick.m00) {
|
||||
m184 = 0;
|
||||
}
|
||||
}
|
||||
else if (mStickCPosYLast > mCamSetup.mCstick.m04) {
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, 0x1000);
|
||||
m184 = 1;
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, 0x400);
|
||||
}
|
||||
else {
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, 0x400);
|
||||
}
|
||||
else if (mStickCPosYLast <= 0.0f && mStickCValueLast > mCamSetup.m09C) {
|
||||
m144 = 0;
|
||||
}
|
||||
else if (i_curMode == 0 || i_curMode == 0x13) {
|
||||
positionOf(mpPlayerActor);
|
||||
if (
|
||||
!(
|
||||
mStickMainValueLast >= 0.5f ||
|
||||
attn.LockonTruth() ||
|
||||
check_owner_action(mPadId, daPyStts0_SWIM_e)
|
||||
)
|
||||
) {
|
||||
if (m184 == 1) {
|
||||
if (mStickCPosYLast < mCamSetup.mCstick.m00) {
|
||||
m184 = 0;
|
||||
}
|
||||
}
|
||||
else if (mStickCPosYLast > mCamSetup.mCstick.m04) {
|
||||
// C-stick up.
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00001000_e);
|
||||
m184 = 1;
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000400_e);
|
||||
}
|
||||
else {
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000400_e);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -1159,7 +1156,7 @@ int dCamera_c::nextMode(s32 i_curMode) {
|
||||
else if (check_owner_action1(mPadId, daPyStts1_UNK10_e)) {
|
||||
next_mode = 0xf;
|
||||
}
|
||||
else if (check_owner_action(mPadId, daPyStts0_UNK2000_e)) {
|
||||
else if (check_owner_action(mPadId, daPyStts0_SUBJECT_e)) {
|
||||
next_mode = 4;
|
||||
}
|
||||
else if (check_owner_action(mPadId, daPyStts0_ROPE_AIM_e | daPyStts0_HOOKSHOT_AIM_e | daPyStts0_BOW_AIM_e) && !attn.Lockon()) {
|
||||
@@ -1272,7 +1269,7 @@ bool dCamera_c::onModeChange(s32 i_curMode, s32 i_nextMode) {
|
||||
|
||||
switch (i_curMode) {
|
||||
case 3:
|
||||
dComIfGp_offCameraAttentionStatus(mCameraInfoIdx, 4);
|
||||
dComIfGp_offCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000004_e);
|
||||
break;
|
||||
case 4:
|
||||
case 10:
|
||||
@@ -1426,11 +1423,11 @@ bool dCamera_c::onTypeChange(s32 i_curType, s32 i_nextType) {
|
||||
s32 style = types[i_nextType].mStyles[0];
|
||||
if (style >= 0) {
|
||||
switch (mCamParam.Algorythmn(style)) {
|
||||
case 5:
|
||||
case 6:
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
case dCamAlg_FIXED_POSITION_CAMERA_e:
|
||||
case dCamAlg_FIXED_FRAME_CAMERA_e:
|
||||
case dCamAlg_EVENT_CAMERA_e:
|
||||
case dCamAlg_CRAWL_CAMERA_e:
|
||||
case dCamAlg_HOOKSHOT_CAMERA_e:
|
||||
mode = 0;
|
||||
m144 = 1;
|
||||
break;
|
||||
@@ -1466,40 +1463,51 @@ bool dCamera_c::SetTypeForce(s32 param_0, fopAc_ac_c* param_1) {
|
||||
bool dCamera_c::onStyleChange(s32 i_style1, s32 i_style2) {
|
||||
m11C = 0;
|
||||
|
||||
#if VERSION > VERSION_JPN
|
||||
bool bVar1 = false;
|
||||
#endif
|
||||
|
||||
switch (mCamParam.Algorythmn(i_style1)) {
|
||||
case 5:
|
||||
case 6:
|
||||
case dCamAlg_FIXED_POSITION_CAMERA_e:
|
||||
case dCamAlg_FIXED_FRAME_CAMERA_e:
|
||||
if (mDMCSystem.field_0x0 == 0) {
|
||||
setDMCAngle();
|
||||
}
|
||||
#if VERSION > VERSION_JPN
|
||||
bVar1 = true;
|
||||
#endif
|
||||
break;
|
||||
case 4:
|
||||
case dCamAlg_SUBJECT_CAMERA_e:
|
||||
dComIfGp_setCameraZoomScale(mCameraInfoIdx, 1.0f);
|
||||
dComIfGp_offCameraAttentionStatus(mCameraInfoIdx, 0x48);
|
||||
dComIfGp_offCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_TELESCOPE_LOOK_e | dCamAttnStts_PICTO_BOX_AIM_e);
|
||||
break;
|
||||
}
|
||||
|
||||
switch(mCamParam.Algorythmn(i_style2)) {
|
||||
case 1:
|
||||
case 8:
|
||||
case dCamAlg_FOLLOW_CAMERA_e:
|
||||
case dCamAlg_RIDE_CAMERA_e:
|
||||
if (mCamParam.Algorythmn(i_style1) == mCamParam.Algorythmn(i_style2)) {
|
||||
setFlag(0x8000);
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
case 6:
|
||||
if (mDMCSystem.field_0x0 == 0 || bVar1) {
|
||||
case dCamAlg_FIXED_POSITION_CAMERA_e:
|
||||
case dCamAlg_FIXED_FRAME_CAMERA_e:
|
||||
if (
|
||||
mDMCSystem.field_0x0 == 0
|
||||
#if VERSION > VERSION_JPN
|
||||
|| bVar1
|
||||
#endif
|
||||
) {
|
||||
setDMCAngle();
|
||||
}
|
||||
case 4:
|
||||
case 12:
|
||||
case 13:
|
||||
// Fall-through
|
||||
case dCamAlg_SUBJECT_CAMERA_e:
|
||||
case dCamAlg_CRAWL_CAMERA_e:
|
||||
case dCamAlg_HOOKSHOT_CAMERA_e:
|
||||
if (m144 == 0) {
|
||||
m144 = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
@@ -2321,7 +2329,7 @@ bool dCamera_c::bumpCheck(u32 i_flags) {
|
||||
|
||||
int engine_idx = mCamParam.Algorythmn();
|
||||
|
||||
if ((engine_idx == 1) || (engine_idx == 10)) {
|
||||
if (engine_idx == dCamAlg_FOLLOW_CAMERA_e || engine_idx == dCamAlg_MANUAL_CAMERA_e) {
|
||||
cXyz attn_pos = attentionPos(mpPlayerActor);
|
||||
cSGlobe globe(mEye - attn_pos);
|
||||
|
||||
@@ -3841,7 +3849,7 @@ bool dCamera_c::CalcSubjectAngle(s16* param_1, s16* param_2) {
|
||||
else {
|
||||
dVar11 = dCamMath::rationalBezierRatio(f1, mCamSetup.CurveWeight());
|
||||
dVar12 = dCamMath::rationalBezierRatio(fVar5, mCamSetup.CurveWeight());
|
||||
if (check_owner_action(mPadId, daPyStts0_UNK2000_e)) {
|
||||
if (check_owner_action(mPadId, daPyStts0_SUBJECT_e)) {
|
||||
mWork.subject.m384 = -dVar11 * fVar3;
|
||||
mWork.subject.m388 += dVar12 * fVar3;
|
||||
}
|
||||
@@ -3923,7 +3931,7 @@ bool dCamera_c::subjectCamera(s32 param_1) {
|
||||
|
||||
if (dComIfGp_getMiniGameType() == 3) {
|
||||
mWork.subject.m3C0 = 2;
|
||||
} else if (dComIfGp_checkPlayerStatus0(mPadId, daPyStts0_UNK2000_e) == 0 && (mCamParam.Flag(param_1, 0x10) == 0)) {
|
||||
} else if (dComIfGp_checkPlayerStatus0(mPadId, daPyStts0_SUBJECT_e) == 0 && (mCamParam.Flag(param_1, dCamPrmFlg_UNK010) == 0)) {
|
||||
mWork.subject.m3C0 = 1;
|
||||
}
|
||||
|
||||
@@ -3947,15 +3955,15 @@ bool dCamera_c::subjectCamera(s32 param_1) {
|
||||
|
||||
camRel.set(p1, p5, p0);
|
||||
|
||||
if (mCamParam.Flag(param_1, 0x80)) {
|
||||
if (mCamParam.Flag(param_1, dCamPrmFlg_UNK080)) {
|
||||
setFlag(0x800);
|
||||
}
|
||||
if (mCamParam.Flag(param_1, 0x100)) {
|
||||
if (mCamParam.Flag(param_1, dCamPrmFlg_UNK100)) {
|
||||
setFlag(0x10000000);
|
||||
}
|
||||
|
||||
if (!m100) {
|
||||
if (check_owner_action(mPadId, daPyStts0_UNK2000_e)) {
|
||||
if (check_owner_action(mPadId, daPyStts0_SUBJECT_e)) {
|
||||
end = 7;
|
||||
}
|
||||
else {
|
||||
@@ -3997,15 +4005,15 @@ bool dCamera_c::subjectCamera(s32 param_1) {
|
||||
|
||||
mViewCache.mEye = mViewCache.mCenter + mViewCache.mDirection.Xyz();
|
||||
|
||||
if (!mCamParam.CheckFlag(0x10)) {
|
||||
if (!mCamParam.CheckFlag(dCamPrmFlg_UNK010)) {
|
||||
mViewCache.mFovy += t * (p25 - mViewCache.mFovy);
|
||||
} else {
|
||||
if (m108 >= (u32)(end - 6)) {
|
||||
if (check_owner_action(mPadId, daPyStts0_TELESCOPE_LOOK_e)) {
|
||||
setComStat(8);
|
||||
setComStat(dCamAttnStts_TELESCOPE_LOOK_e);
|
||||
}
|
||||
if (check_owner_action1(mPadId, daPyStts1_PICTO_BOX_AIM_e)) {
|
||||
setComStat(0x40);
|
||||
setComStat(dCamAttnStts_PICTO_BOX_AIM_e);
|
||||
}
|
||||
|
||||
setComZoomScale(1.0f);
|
||||
@@ -4026,10 +4034,10 @@ bool dCamera_c::subjectCamera(s32 param_1) {
|
||||
} else {
|
||||
if (m108 < (u32)(end - 7)) {
|
||||
if (check_owner_action(mPadId, daPyStts0_TELESCOPE_LOOK_e)) {
|
||||
setComStat(8);
|
||||
setComStat(dCamAttnStts_TELESCOPE_LOOK_e);
|
||||
}
|
||||
if (check_owner_action1(mPadId, daPyStts1_PICTO_BOX_AIM_e)) {
|
||||
setComStat(0x40);
|
||||
setComStat(dCamAttnStts_PICTO_BOX_AIM_e);
|
||||
}
|
||||
|
||||
setComZoomScale(1.0f);
|
||||
@@ -4060,7 +4068,7 @@ bool dCamera_c::subjectCamera(s32 param_1) {
|
||||
}
|
||||
|
||||
if (check_owner_action(mPadId, daPyStts0_CRAWL_e)) {
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, 0x80);
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000080_e);
|
||||
}
|
||||
|
||||
if (dComIfGs_getTime() || check_owner_action1(mPadId, daPyStts1_PICTO_BOX_AIM_e)) {
|
||||
@@ -4131,47 +4139,45 @@ bool dCamera_c::subjectCamera(s32 param_1) {
|
||||
|
||||
mWork.subject.m384 = dy.Degree() / p24;
|
||||
mWork.subject.m388 = ax.Degree() / p19;
|
||||
mWork.subject.m3A8 = 0;
|
||||
mWork.subject.m37C = 0;
|
||||
} else if (!mWork.subject.m3BC || ((mEventFlags & 0x2000000) == 0)) {
|
||||
cSGlobe g;
|
||||
g.Val(mExtendedPos - mViewCache.mCenter);
|
||||
|
||||
mViewCache.mDirection.R(mViewCache.mDirection.R() + (p10 - mViewCache.mDirection.R()) * 0.05f);
|
||||
g.R(p10);
|
||||
|
||||
mViewCache.mDirection.U(mViewCache.mDirection.U() + (g.U() - mViewCache.mDirection.U()) * 0.05f);
|
||||
mViewCache.mDirection.V(mViewCache.mDirection.V() + (g.V() - mViewCache.mDirection.V()) * 0.05f);
|
||||
|
||||
cSAngle dy;
|
||||
cSAngle ax;
|
||||
dy = mViewCache.mDirection.V() - baseYaw;
|
||||
ax = mViewCache.mDirection.U();
|
||||
|
||||
mWork.subject.m384 = dy.Degree() / p24;
|
||||
mWork.subject.m388 = ax.Degree() / p19;
|
||||
|
||||
mWork.subject.m3A8 = 0;
|
||||
mWork.subject.m37C = 0;
|
||||
} else {
|
||||
if (!mWork.subject.m3BC || ((mEventFlags & 0x2000000) == 0)) {
|
||||
cSGlobe g;
|
||||
g.Val(mExtendedPos - mViewCache.mCenter);
|
||||
cSGlobe g;
|
||||
g.Val(p10, angX, baseYaw + angY);
|
||||
|
||||
mViewCache.mDirection.R(mViewCache.mDirection.R() + (p10 - mViewCache.mDirection.R()) * 0.05f);
|
||||
g.R(p10);
|
||||
mViewCache.mDirection.R(mViewCache.mDirection.R() + (g.R() - mViewCache.mDirection.R()) * p20);
|
||||
mViewCache.mDirection.U(mViewCache.mDirection.U() + (g.U() - mViewCache.mDirection.U()) * p20);
|
||||
mViewCache.mDirection.V(mViewCache.mDirection.V() + (g.V() - mViewCache.mDirection.V()) * p20);
|
||||
|
||||
mViewCache.mDirection.U(mViewCache.mDirection.U() + (g.U() - mViewCache.mDirection.U()) * 0.05f);
|
||||
mViewCache.mDirection.V(mViewCache.mDirection.V() + (g.V() - mViewCache.mDirection.V()) * 0.05f);
|
||||
|
||||
cSAngle dy;
|
||||
cSAngle ax;
|
||||
dy = mViewCache.mDirection.V() - baseYaw;
|
||||
ax = mViewCache.mDirection.U();
|
||||
|
||||
mWork.subject.m384 = dy.Degree() / p24;
|
||||
mWork.subject.m388 = ax.Degree() / p19;
|
||||
|
||||
mWork.subject.m3A8 = 0;
|
||||
mWork.subject.m37C = 0;
|
||||
} else {
|
||||
cSGlobe g;
|
||||
g.Val(p10, angX, baseYaw + angY);
|
||||
|
||||
mViewCache.mDirection.R(mViewCache.mDirection.R() + (g.R() - mViewCache.mDirection.R()) * p20);
|
||||
mViewCache.mDirection.U(mViewCache.mDirection.U() + (g.U() - mViewCache.mDirection.U()) * p20);
|
||||
mViewCache.mDirection.V(mViewCache.mDirection.V() + (g.V() - mViewCache.mDirection.V()) * p20);
|
||||
|
||||
if (mWork.subject.m3A8 < 10) {
|
||||
mWork.subject.m3A8++;
|
||||
}
|
||||
mWork.subject.m37C = 1;
|
||||
if (mWork.subject.m3A8 < 10) {
|
||||
mWork.subject.m3A8++;
|
||||
}
|
||||
mWork.subject.m37C = 1;
|
||||
}
|
||||
|
||||
mViewCache.mEye = mViewCache.mCenter + mViewCache.mDirection.Xyz();
|
||||
|
||||
if (mCamParam.CheckFlag(0x10)) {
|
||||
if (mCamParam.CheckFlag(dCamPrmFlg_UNK010)) {
|
||||
// zoom control block
|
||||
f32 a = 0.0f;
|
||||
f32 stick = mStickCPosYLast;
|
||||
@@ -4201,10 +4207,10 @@ bool dCamera_c::subjectCamera(s32 param_1) {
|
||||
dComIfGp_setCameraZoomScale(mCameraInfoIdx, scale);
|
||||
|
||||
if (check_owner_action(mPadId, daPyStts0_TELESCOPE_LOOK_e)) {
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, 8);
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_TELESCOPE_LOOK_e);
|
||||
}
|
||||
if (check_owner_action1(mPadId, daPyStts1_PICTO_BOX_AIM_e)) {
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, 0x40);
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_PICTO_BOX_AIM_e);
|
||||
}
|
||||
|
||||
const f32 focus = 1.0f - (std::fabsf(a - b) * 511.0f);
|
||||
@@ -4217,14 +4223,14 @@ bool dCamera_c::subjectCamera(s32 param_1) {
|
||||
|
||||
mWork.subject.m37D = 1;
|
||||
|
||||
// “C-stick down” behavior block
|
||||
if (check_owner_action(mPadId, daPyStts0_UNK2000_e)) {
|
||||
// "C-stick down" behavior block
|
||||
if (check_owner_action(mPadId, daPyStts0_SUBJECT_e)) {
|
||||
if (mWork.subject.m3C4 == 2 && mStickCPosYLast >= -0.001f) {
|
||||
mWork.subject.m3C4 = 0;
|
||||
}
|
||||
else if (mWork.subject.m3C4 == 1 && mStickCPosYLast < -0.74f) {
|
||||
mWork.subject.m3C4 = 2;
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, 0x2000);
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00002000_e);
|
||||
}
|
||||
else if (mStickCPosYLast < -0.001f) {
|
||||
mWork.subject.m3C4 = 1;
|
||||
@@ -4260,7 +4266,7 @@ bool dCamera_c::crawlCamera(s32 param_1) {
|
||||
|
||||
if (m108 == 0) {
|
||||
mWork.crawl.m378 = 'CRWL';
|
||||
mWork.crawl.m398 = mCamParam.Flag(param_1, 0x80) ? 1 : 0;
|
||||
mWork.crawl.m398 = mCamParam.Flag(param_1, dCamPrmFlg_UNK080) ? 1 : 0;
|
||||
|
||||
mWork.crawl.m399 = 0;
|
||||
mWork.crawl.m37C = 10;
|
||||
@@ -4272,7 +4278,7 @@ bool dCamera_c::crawlCamera(s32 param_1) {
|
||||
mWork.crawl.m39C = 0x5;
|
||||
mWork.crawl.m380 = mWork.crawl.m37C * (mWork.crawl.m37C + 1) >> 1;
|
||||
|
||||
if (mCamParam.Flag(param_1, 0x40) == 0) {
|
||||
if (mCamParam.Flag(param_1, dCamPrmFlg_UNK040) == 0) {
|
||||
mWork.crawl.m388 = 1;
|
||||
}
|
||||
else if (local_118 > cSAngle::_270 && local_118 < cSAngle::_90) {
|
||||
@@ -4282,7 +4288,7 @@ bool dCamera_c::crawlCamera(s32 param_1) {
|
||||
mWork.crawl.m388 = 1;
|
||||
}
|
||||
}
|
||||
else if (mCamParam.Flag(param_1, 0x40) == 0) {
|
||||
else if (mCamParam.Flag(param_1, dCamPrmFlg_UNK040) == 0) {
|
||||
mWork.crawl.m388 = 1;
|
||||
}
|
||||
else if (local_118 > cSAngle(-75.0f) && local_118 < cSAngle(75.0f)) {
|
||||
@@ -4294,10 +4300,10 @@ bool dCamera_c::crawlCamera(s32 param_1) {
|
||||
}
|
||||
|
||||
if (m1AE) {
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, 0x80);
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000080_e);
|
||||
}
|
||||
|
||||
if (mCamParam.Flag(param_1, 0x40) && mCurArrowIdx != 0xff && mCurRoomCamEntry.field_0x12 != 0xff) {
|
||||
if (mCamParam.Flag(param_1, dCamPrmFlg_UNK040) && mCurArrowIdx != 0xff && mCurRoomCamEntry.field_0x12 != 0xff) {
|
||||
local_118 = mViewCache.mDirection.U() - mCurRoomArrowEntry.angle.y;
|
||||
if (local_118 > cSAngle::_270 && local_118 < cSAngle::_90) {
|
||||
mWork.crawl.m38C = mCurRoomArrowEntry.position;
|
||||
@@ -4318,7 +4324,7 @@ bool dCamera_c::crawlCamera(s32 param_1) {
|
||||
sp128 = relationalPos(mpPlayerActor, &sp134);
|
||||
mViewCache.mCenter += (sp128 - mViewCache.mCenter) * f28;
|
||||
|
||||
if (mCamParam.Flag(param_1, 0x80)) {
|
||||
if (mCamParam.Flag(param_1, dCamPrmFlg_UNK080)) {
|
||||
f30 = 2.0f;
|
||||
}
|
||||
|
||||
@@ -4606,7 +4612,7 @@ bool dCamera_c::fixedPositionCamera(s32 param_1) {
|
||||
|
||||
mWork.fixedPos.m39C = 0;
|
||||
|
||||
if (mCamParam.Flag(param_1, 0x40) && mCurArrowIdx != 0xff) {
|
||||
if (mCamParam.Flag(param_1, dCamPrmFlg_UNK040) && mCurArrowIdx != 0xff) {
|
||||
local_d0 = mCurRoomArrowEntry.position;
|
||||
|
||||
if (mWork.fixedPos.m390 != local_d0) {
|
||||
@@ -4916,13 +4922,12 @@ bool dCamera_c::eventCamera(s32) {
|
||||
bVar5 = true;
|
||||
}
|
||||
if (bVar5) {
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, 4);
|
||||
dComIfGp_onCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000004_e);
|
||||
}
|
||||
else {
|
||||
dComIfGp_offCameraAttentionStatus(mCameraInfoIdx, 4);
|
||||
dComIfGp_offCameraAttentionStatus(mCameraInfoIdx, dCamAttnStts_00000004_e);
|
||||
}
|
||||
|
||||
//Runtime.PPCEABI.H::__ptmf_scall(&local_170 + (int)((ulonglong)lVar12 >> 0x20),this,pvVar8);
|
||||
if ((this->*l_func[lVar12])()) {
|
||||
dComIfGp_evmng_cutEnd(mEventData.mStaffIdx);
|
||||
}
|
||||
@@ -5387,7 +5392,7 @@ void preparation(camera_process_class* i_this) {
|
||||
|
||||
camera->SetWindow(viewport->mWidth, viewport->mHeight);
|
||||
fopCamM_SetAspect(a_this, aspect);
|
||||
dComIfGp_offCameraAttentionStatus(camera_id, 0x23);
|
||||
dComIfGp_offCameraAttentionStatus(camera_id, dCamAttnStts_00000001_e | dCamAttnStts_SUBJECT_e | dCamAttnStts_00000020_e);
|
||||
}
|
||||
|
||||
/* 8017BEB0-8017BFAC .text view_setup__FP20camera_process_class */
|
||||
@@ -5474,7 +5479,7 @@ void store(camera_process_class* i_this) {
|
||||
fopCamM_SetBank(a_this, bank);
|
||||
fopCamM_SetFovy(a_this, fovy);
|
||||
|
||||
if (dComIfGp_checkCameraAttentionStatus(camera_id, 8)) {
|
||||
if (dComIfGp_checkCameraAttentionStatus(camera_id, dCamAttnStts_TELESCOPE_LOOK_e)) {
|
||||
fopCamM_SetNear(a_this, 30.0f);
|
||||
}
|
||||
else {
|
||||
|
||||
+3
-3
@@ -905,7 +905,7 @@ void dMap_c::create() {
|
||||
mTboxNum = 0;
|
||||
mAGBMapSendStatus = 0;
|
||||
mSetCursorFlg = 0;
|
||||
mIconDispMode = 0;
|
||||
mIconDispMode = dMapIconDisp_NONE_e;
|
||||
mIconFreeAlpha = 0;
|
||||
mIconSelfAlpha = 0;
|
||||
mAGBMapSendStopFlg = 0;
|
||||
@@ -1597,9 +1597,9 @@ void dMap_c::mapDrawAll(f32 param_1, f32 param_2, int param_3, f32 param_4) {
|
||||
|
||||
/* 8004A760-8004A7B4 .text mapDrawIcon__6dMap_cFv */
|
||||
void dMap_c::mapDrawIcon() {
|
||||
if (mIconDispMode == 2) {
|
||||
if (mIconDispMode == dMapIconDisp_SELF_e) {
|
||||
mapDrawIconSelf(mIconFreePosX, mIconFreePosY, mIconSelfAlpha);
|
||||
} else if (mIconDispMode == 1) {
|
||||
} else if (mIconDispMode == dMapIconDisp_FREE_e) {
|
||||
mapDrawIconFree(mIconFreePosX, mIconFreePosY, mIconFreeAlpha);
|
||||
}
|
||||
}
|
||||
|
||||
+12
-16
@@ -737,19 +737,15 @@ void dMs_childHeap_freeAll(sub_ms_screen_class* i_Ms) {
|
||||
void dMs_telescopeMove(sub_ms_screen_class* i_Ms) {
|
||||
if (dComIfGp_isHeapLockFlag() == 0) {
|
||||
dComIfGp_event_photoCheck();
|
||||
if (dComIfGp_checkCameraAttentionStatus(0, 8)) {
|
||||
if (dComIfGp_checkCameraAttentionStatus(0, dCamAttnStts_TELESCOPE_LOOK_e)) {
|
||||
i_Ms->field_0x1B0 = 99;
|
||||
} else {
|
||||
if (dComIfGp_checkCameraAttentionStatus(0, 0x40)) {
|
||||
i_Ms->field_0x1B0 = 89;
|
||||
} else {
|
||||
if (dComIfGp_getScopeType() == 2) {
|
||||
i_Ms->field_0x1B0 = 98;
|
||||
} else if (dComIfGp_getPictureStatus() == 2 || dComIfGp_getPictureStatus() == 3) {
|
||||
i_Ms->field_0x1B0 = 89;
|
||||
dMenu_flagSet(1);
|
||||
}
|
||||
}
|
||||
} else if (dComIfGp_checkCameraAttentionStatus(0, dCamAttnStts_PICTO_BOX_AIM_e)) {
|
||||
i_Ms->field_0x1B0 = 89;
|
||||
} else if (dComIfGp_getScopeType() == 2) {
|
||||
i_Ms->field_0x1B0 = 98;
|
||||
} else if (dComIfGp_getPictureStatus() == 2 || dComIfGp_getPictureStatus() == 3) {
|
||||
i_Ms->field_0x1B0 = 89;
|
||||
dMenu_flagSet(1);
|
||||
}
|
||||
|
||||
if (i_Ms->field_0x1B0 == 99 || i_Ms->field_0x1B0 == 89 || i_Ms->field_0x1B0 == 98) {
|
||||
@@ -936,13 +932,13 @@ static BOOL dMs_Execute(sub_ms_screen_class* i_Ms) {
|
||||
|
||||
} else if (dMenu_flag() == 0 && !fopOvlpM_IsDoingReq() && !(CPad_CHECK_TRIG_A(0) || CPad_CHECK_TRIG_B(0) || CPad_CHECK_TRIG_Z(0))) {
|
||||
|
||||
if (event_wait_frame == 0 || daPy_getPlayerLinkActorClass()->getTactNormalWait() && CPad_CHECK_TRIG_START(0) ||
|
||||
dComIfGp_getOperateWind() == 2 && CPad_CHECK_TRIG_UP(0) && dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 0 &&
|
||||
dComIfGs_isEventBit(dSv_event_flag_c::UNK_0908))
|
||||
if (event_wait_frame == 0 || (daPy_getPlayerLinkActorClass()->getTactNormalWait() && CPad_CHECK_TRIG_START(0)) ||
|
||||
(dComIfGp_getOperateWind() == 2 && CPad_CHECK_TRIG_UP(0) && dStage_stagInfo_GetUpButton(dComIfGp_getStageStagInfo()) == 0 &&
|
||||
dComIfGs_isEventBit(dSv_event_flag_c::UNK_0908)))
|
||||
{
|
||||
|
||||
if (dComIfGp_getMesgStatus() == 0 && dComIfGp_getScopeMesgStatus() == 0) {
|
||||
if (!dComIfGp_checkCameraAttentionStatus(0, 8) && !dComIfGp_checkCameraAttentionStatus(0, 0x40) &&
|
||||
if (!dComIfGp_checkCameraAttentionStatus(0, dCamAttnStts_TELESCOPE_LOOK_e) && !dComIfGp_checkCameraAttentionStatus(0, dCamAttnStts_PICTO_BOX_AIM_e) &&
|
||||
!dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK800000_e))
|
||||
{
|
||||
|
||||
|
||||
+36
-39
@@ -787,18 +787,18 @@ void dMeter_statusCheck(sub_meter_class* i_Meter) {
|
||||
dComIfGp_setAStatus(dActStts_BLANK_e);
|
||||
}
|
||||
} else if (
|
||||
dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK2000_e) ||
|
||||
dComIfGp_checkPlayerStatus0(0, daPyStts0_SUBJECT_e) ||
|
||||
// @bug Out of bounds array read.
|
||||
// It seems like the developers probably intended to have a check like this:
|
||||
// dComIfGp_checkCameraAttentionStatus(0, 0x100)
|
||||
// dComIfGp_checkCameraAttentionStatus(0, dCamAttnStts_00000100_e)
|
||||
// Which would have checked if bit 0x100 of camera 0's attention statuses is set.
|
||||
// But made a mistake and instead typed:
|
||||
// dComIfGp_getCameraAttentionStatus(0x100)
|
||||
// dComIfGp_getCameraAttentionStatus(dCamAttnStts_00000100_e)
|
||||
// Which checks if any of camera 0x100's attention statuses are set.
|
||||
// As there is only a single camera, this mistake causes an OoB read 256 elements past the end of the array.
|
||||
// This winds up reading one of the matrix floats of a shadow as an integer, equivalent to the following check:
|
||||
// *(u32*)&g_dComIfG_gameInfo.drawlist.mShadowControl.mSimple[117].mVolumeMtx[1][2] != 0
|
||||
(dComIfGp_getCameraAttentionStatus(0x100) && dComIfGp_checkPlayerStatus0(0, daPyStts0_CRAWL_e))
|
||||
(dComIfGp_getCameraAttentionStatus(dCamAttnStts_00000100_e) && dComIfGp_checkPlayerStatus0(0, daPyStts0_CRAWL_e))
|
||||
) {
|
||||
i_Meter->mStatusFlags |= dMtrStts_UNK100000_e;
|
||||
}
|
||||
@@ -4344,7 +4344,6 @@ void dMeter_menuLRMove(sub_meter_class* i_Meter) {
|
||||
|
||||
/* 801FA918-801FBB28 .text dMeter_menuPlusMove__FP15sub_meter_class */
|
||||
void dMeter_menuPlusMove(sub_meter_class* i_Meter) {
|
||||
/* Nonmatching */
|
||||
f32 fVar1;
|
||||
int iVar3;
|
||||
f32 x;
|
||||
@@ -4549,12 +4548,12 @@ void dMeter_menuPlusMove(sub_meter_class* i_Meter) {
|
||||
switch (moveStatus) {
|
||||
case 2:
|
||||
case 3:
|
||||
case 6:
|
||||
case 7:
|
||||
x = g_meterHIO.field_0x9c;
|
||||
y = g_meterHIO.field_0x9e;
|
||||
break;
|
||||
case 4:
|
||||
case 6:
|
||||
case 7:
|
||||
x = g_meterHIO.field_0x9c + 0x52;
|
||||
y = g_meterHIO.field_0x9e;
|
||||
break;
|
||||
@@ -4580,16 +4579,16 @@ void dMeter_menuPlusMove(sub_meter_class* i_Meter) {
|
||||
((i_Meter->field_0x1948.mPosCenter.x + i_Meter->field_0x16e0.mSize.x / 2.0f) - i_Meter->field_0x0100[2].mPosCenterOrig.x);
|
||||
local_98_y[2] = i_Meter->field_0x1948.mPosCenter.y - i_Meter->field_0x0100[2].mPosCenterOrig.y;
|
||||
} else {
|
||||
s16 tmp3 = dMap_c::mDispSizeX;
|
||||
s16 tmp2 = dMap_getMapDispPosLeftUpX();
|
||||
local_98_x[2] = (tmp2 + tmp3 / 2.0f) - i_Meter->field_0x0100[1].mPosCenterOrig.x;
|
||||
local_98_x[1] = (tmp2 + tmp3 / 2.0f) - i_Meter->field_0x0100[1].mPosCenterOrig.x;
|
||||
local_98_x[0] = (tmp2 + tmp3 / 2.0f) - i_Meter->field_0x0100[1].mPosCenterOrig.x;
|
||||
tmp3 = dMap_c::mDispSizeY;
|
||||
tmp2 = dMap_getMapDispPosLeftUpY();
|
||||
local_98_y[2] = (tmp2 + tmp3 / 2.0f) - i_Meter->field_0x0100[0].mPosCenterOrig.y;
|
||||
local_98_y[1] = (tmp2 + tmp3 / 2.0f) - i_Meter->field_0x0100[0].mPosCenterOrig.y;
|
||||
local_98_y[0] = (tmp2 + tmp3 / 2.0f) - i_Meter->field_0x0100[0].mPosCenterOrig.y;
|
||||
s16 width = dMap_c::getMapDspSizeWidth();
|
||||
s16 left = dMap_getMapDispPosLeftUpX();
|
||||
local_98_x[2] = (left + width / 2.0f) - i_Meter->field_0x0100[1].mPosCenterOrig.x;
|
||||
local_98_x[1] = (left + width / 2.0f) - i_Meter->field_0x0100[1].mPosCenterOrig.x;
|
||||
local_98_x[0] = (left + width / 2.0f) - i_Meter->field_0x0100[1].mPosCenterOrig.x;
|
||||
s16 height = dMap_c::getMapDspSizeHeight();
|
||||
s16 top = dMap_getMapDispPosLeftUpY();
|
||||
local_98_y[2] = (top + height / 2.0f) - i_Meter->field_0x0100[0].mPosCenterOrig.y;
|
||||
local_98_y[1] = (top + height / 2.0f) - i_Meter->field_0x0100[0].mPosCenterOrig.y;
|
||||
local_98_y[0] = (top + height / 2.0f) - i_Meter->field_0x0100[0].mPosCenterOrig.y;
|
||||
}
|
||||
dVar13 = dMap_getMapDispPosLeftUpX() - 0x19;
|
||||
dVar12 = dMap_getMapDispPosLeftUpY() - 0x152;
|
||||
@@ -4605,7 +4604,7 @@ void dMeter_menuPlusMove(sub_meter_class* i_Meter) {
|
||||
}
|
||||
dVar13 = fopMsgM_valueIncrease(5, 5 - i_Meter->field_0x02c0.mUserArea, 0);
|
||||
fopMsgM_setNowAlpha(&i_Meter->field_0x02c0, dVar13);
|
||||
dMap_c::mAlpha = dVar13 * 255.0f;
|
||||
dMap_c::setMapAlpha(dVar13 * 255.0f);
|
||||
if (!(dKyw_gbwind_use_check()) || (dMenu_flag())) {
|
||||
fopMsgM_setNowAlphaZero(&i_Meter->field_0x02f8);
|
||||
} else {
|
||||
@@ -5418,9 +5417,9 @@ void dMeter_compassMove(sub_meter_class* i_Meter) {
|
||||
dMeter_compassGetOnProc(i_Meter);
|
||||
dMeter_compassAlpha(i_Meter);
|
||||
if (i_Meter->field_0x3027 == 0) {
|
||||
dMap_c::mMapDispMode = 1;
|
||||
dMap_c::setMapDispMode(1);
|
||||
} else {
|
||||
dMap_c::mMapDispMode = 0;
|
||||
dMap_c::setMapDispMode(0);
|
||||
}
|
||||
} else {
|
||||
dMeter_compassGetOffProc(i_Meter);
|
||||
@@ -5726,7 +5725,7 @@ void dMeter_mapMove(sub_meter_class* i_Meter) {
|
||||
((CPad_CHECK_TRIG_LEFT(0) != 0) || (CPad_CHECK_TRIG_RIGHT(0))))
|
||||
{
|
||||
if (CPad_CHECK_TRIG_LEFT(0) != 0) {
|
||||
if ((dMap_c::mAlpha != 0) && ((s32)dMeter_mMapCtrlDisp.field_0x0 != 0)) {
|
||||
if ((dMap_c::getMapAlpha() != 0) && ((s32)dMeter_mMapCtrlDisp.field_0x0 != 0)) {
|
||||
if (dMap_isEnableDispMap()) {
|
||||
dMeter_mMapCtrlDisp.field_0x0 = 0;
|
||||
dMeter_mMapCtrlDisp.field_0x1 = 0;
|
||||
@@ -5734,7 +5733,7 @@ void dMeter_mapMove(sub_meter_class* i_Meter) {
|
||||
i_Meter->field_0x3029 = 0;
|
||||
mDoAud_seStart(JA_SE_MAP_CANCEL);
|
||||
}
|
||||
} else if ((CPad_CHECK_TRIG_RIGHT(0) != 0) && (dMap_c::mAlpha != 0)) {
|
||||
} else if ((CPad_CHECK_TRIG_RIGHT(0) != 0) && (dMap_c::getMapAlpha() != 0)) {
|
||||
if ((s32)dMeter_mMapCtrlDisp.field_0x0 == 0) {
|
||||
if (dMap_isEnableDispMap()) {
|
||||
dMeter_mMapCtrlDisp.field_0x0 = 1;
|
||||
@@ -5770,9 +5769,9 @@ void dMeter_mapMove(sub_meter_class* i_Meter) {
|
||||
i_Meter->field_0x3027 = 0;
|
||||
}
|
||||
if (i_Meter->field_0x3027 == 0) {
|
||||
dMap_c::mMapDispMode = 1;
|
||||
dMap_c::setMapDispMode(1);
|
||||
} else {
|
||||
dMap_c::mMapDispMode = 0;
|
||||
dMap_c::setMapDispMode(0);
|
||||
}
|
||||
if (((s32)dMeter_mMapCtrlDisp.field_0x0 != 0) && (mapTimer != 6)) {
|
||||
mapTimer = 6;
|
||||
@@ -7429,9 +7428,7 @@ void mapCtrlDisp_c::initMapCtrlDisp() {
|
||||
/* 80205A44-80205D24 .text moveMapCtrlDisp__13mapCtrlDisp_cFv */
|
||||
void mapCtrlDisp_c::moveMapCtrlDisp() {
|
||||
f32 fVar1;
|
||||
s8 uVar6;
|
||||
f32 dVar7;
|
||||
|
||||
if (dCam_isManual(dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0))) != 0) {
|
||||
if (field_0x2 < 9) {
|
||||
field_0x2++;
|
||||
@@ -7457,23 +7454,23 @@ void mapCtrlDisp_c::moveMapCtrlDisp() {
|
||||
dVar7 = fopMsgM_valueIncrease(5, field_0x2, 2);
|
||||
fVar1 = 1.1f;
|
||||
}
|
||||
dMap_c::mIconDispMode = 0;
|
||||
uVar6 = (u8)((dVar7 * 255.0f) * (g_meter_mapHIO.field_0x6 / 255.0f));
|
||||
dMap_c::mIconFreeAlpha = (u8)uVar6;
|
||||
dMap_c::mIconFreeScale = fVar1 * g_meter_mapHIO.field_0x10;
|
||||
if ((u8)uVar6 != 0) {
|
||||
dMap_c::mIconDispMode = 1;
|
||||
dMap_c::setIconDispMode(dMapIconDisp_NONE_e);
|
||||
s8 alpha = (u8)((dVar7 * 255.0f) * (g_meter_mapHIO.field_0x6 / 255.0f));
|
||||
dMap_c::setIconFreeAlpha(alpha);
|
||||
dMap_c::setIconFreeScale(fVar1 * g_meter_mapHIO.field_0x10);
|
||||
if ((u8)alpha != 0) {
|
||||
dMap_c::setIconDispMode(dMapIconDisp_FREE_e);
|
||||
}
|
||||
if (dComIfGp_checkCameraAttentionStatus(0, 0x400)) {
|
||||
if (dComIfGp_checkCameraAttentionStatus(0, dCamAttnStts_00000400_e)) {
|
||||
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||
BOOL temp = player->checkSubjectAccept() && !dComIfGp_event_runCheck();
|
||||
if (temp) {
|
||||
dMap_c::mIconSelfAlpha = 0xcc;
|
||||
dMap_c::mIconDispMode = 2;
|
||||
dMap_c::setIconSelfAlpha(0xCC);
|
||||
dMap_c::setIconDispMode(dMapIconDisp_SELF_e );
|
||||
}
|
||||
}
|
||||
if (dCam_getBody()->mCurMode == 4) {
|
||||
dMap_c::mIconDispMode = 0;
|
||||
dMap_c::setIconDispMode(dMapIconDisp_NONE_e);
|
||||
}
|
||||
if (field_0x0 != 0) {
|
||||
if (((field_0x4 != 0) && (cLib_addCalcAngleS(&field_0x4, 0, 2, 0x3c, 10) == 0)) && ((field_0x1 & 4) == 0)) {
|
||||
@@ -7483,10 +7480,10 @@ void mapCtrlDisp_c::moveMapCtrlDisp() {
|
||||
cLib_addCalcAngleS(&field_0x4, g_meter_mapHIO.field_0xc - g_meter_mapHIO.field_0x8, 2, 0x3c, 10);
|
||||
}
|
||||
int uVar6_2 = ((dComIfGp_getWindow(0)->getScissor()->mYOrig + dComIfGp_getWindow(0)->getScissor()->mHeight) - 452.0f);
|
||||
dMap_c::mDispPosLeftUpX = g_meter_mapHIO.field_0x8 + field_0x4;
|
||||
dMap_c::mDispPosLeftUpY = g_meter_mapHIO.field_0xa;
|
||||
dMap_c::setMapDispPosLeftUpX(g_meter_mapHIO.field_0x8 + field_0x4);
|
||||
dMap_c::setMapDispPosLeftUpY(g_meter_mapHIO.field_0xa);
|
||||
if ((f32)(uVar6_2) < 0.0f) {
|
||||
dMap_c::mDispPosLeftUpY = uVar6_2 + g_meter_mapHIO.field_0xa;
|
||||
dMap_c::setMapDispPosLeftUpY(uVar6_2 + g_meter_mapHIO.field_0xa);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -2695,7 +2695,7 @@ s32 dMsg_initProc(sub_msg_class* i_Msg) {
|
||||
const char* pcVar3;
|
||||
char acStack_28[24];
|
||||
|
||||
if ((dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), 4)) || (fopMsgM_demoMsgFlagCheck())) {
|
||||
if ((dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), dCamAttnStts_00000004_e)) || (fopMsgM_demoMsgFlagCheck())) {
|
||||
pcVar3 = i_Msg->mpMesgStr;
|
||||
if (((u8)pcVar3[0] == 0x1A) && ((u8)pcVar3[2] == 0x02)) {
|
||||
dComIfGp_setMesgCameraTagInfo((s32)(u16)((((u8)pcVar3[3] << 8) & ~0xFFFF00FF) | (((u8)pcVar3[4]) & ~0xFF00)));
|
||||
@@ -2751,7 +2751,7 @@ s32 dMsg_outnowProc(sub_msg_class* i_Msg) {
|
||||
u32 iVar3;
|
||||
|
||||
if (i_Msg->mMesgCameraTagInfo != dComIfGp_getMesgCameraTagInfo()) {
|
||||
if ((dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), 4)) || (fopMsgM_demoMsgFlagCheck())) {
|
||||
if ((dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), dCamAttnStts_00000004_e)) || (fopMsgM_demoMsgFlagCheck())) {
|
||||
dMsg_mesgOutPos(i_Msg);
|
||||
i_Msg->m10D8 = (int)i_Msg->m049C.mPosCenter.x;
|
||||
i_Msg->m10DC = (int)i_Msg->m049C.mPosCenter.y;
|
||||
|
||||
Reference in New Issue
Block a user