Cleanup/documentation for various photo-related code

This commit is contained in:
LagoLunatic
2026-07-19 15:54:06 -04:00
parent 9f18a6f34c
commit 0fdc3a3f3b
33 changed files with 495 additions and 439 deletions
+2 -2
View File
@@ -73,7 +73,7 @@ public:
PRM_ARG0_S = 0x0,
};
u8 getNpcNo() { return mNpcType; }
u8 getNpcNo() { return mNpcNo; }
request_of_phase_process_class* getPhaseP() { return &mPhase; }
void setEtcFlag(u32 flags) { mEtcFlag |= flags; }
void setResFlag(u8 flag) { mResFlag = flag; }
@@ -253,7 +253,7 @@ public:
/* 0x78E */ u8 m78E;
/* 0x78F */ u8 m78F;
/* 0x790 */ u8 mResFlag;
/* 0x791 */ u8 mNpcType;
/* 0x791 */ u8 mNpcNo;
/* 0x792 */ u8 m792;
/* 0x793 */ u8 m793;
/* 0x794 */ u8 m794;
+5 -5
View File
@@ -621,7 +621,7 @@ public:
mPictureFlag &= ~mask;
}
u8 getPictureFormat() { return mPictureFormat; }
void setPictureFormat(u8 i) { mPictureFormat = i; }
void setPictureFormat(u8 fmt) { mPictureFormat = fmt; }
u8 getSelectPicture() { return mSelectPicture; }
void setSelectPicture(u8 i) { mSelectPicture = i; }
u8 getPictureResult() { return mPictureResult; }
@@ -829,8 +829,8 @@ public:
/* 0x495B */ u8 mPictureFlag;
/* 0x495C */ u8 mPictureResult;
/* 0x495D */ u8 mPictureResultDetail;
/* 0x495E */ u8 mPictureStatus;
/* 0x495F */ u8 mGetPictureNum;
/* 0x495E */ u8 mPictureStatus; // For Legendary Pictographs
/* 0x495F */ u8 mGetPictureNum; // For Legendary Pictographs
/* 0x4960 */ u8 mPictureFormat;
/* 0x4961 */ u8 mSelectPicture;
/* 0x4962 */ u8 mHeapLockFlag;
@@ -3199,8 +3199,8 @@ inline u8 dComIfGp_getPictureFormat() {
return g_dComIfG_gameInfo.play.getPictureFormat();
}
inline void dComIfGp_setPictureFormat(u8 i) {
g_dComIfG_gameInfo.play.setPictureFormat(i);
inline void dComIfGp_setPictureFormat(u8 fmt) {
g_dComIfG_gameInfo.play.setPictureFormat(fmt);
}
inline u8 dComIfGp_getSelectPicture() {
+5 -10
View File
@@ -8,6 +8,7 @@
#include "JSystem/J2DGraph/J2DScreen.h"
#include "JSystem/J2DGraph/J2DTextBox.h"
#include "d/d_lib.h"
#include "m_Do/m_Do_MemCardRWmng.h"
class J3DModel;
@@ -44,20 +45,14 @@ enum dJlePbViewMode {
PB_VIEW_GET_e = 0x2,
};
struct dPbPhotoSlotData {
/* 0x0000 */ u8 pad[0x1EE0 - 0x0000];
/* 0x1EE0 */ u32 mSnapResultId;
/* 0x1EE4 */ u8 mSnapResultDetail;
/* 0x1EE5 */ u8 mPhotoFormat;
};
void dPb_erasePicture();
class dJle_Pb_c : public dDlst_base_c {
public:
u8 getStatus() { return mExecState; }
// was this supposed to be called setMemory? typo?
void getMemory(void* buffer, int idx) {
mPhotoBuffer[idx] = (dPbPhotoSlotData*)buffer;
mPhotoBuffer[idx] = (card_pictdata*)buffer;
}
void setTextArea(char* buffer, int idx) {
mMsgTextBuffer[idx] = buffer;
@@ -168,7 +163,7 @@ private:
/* 0x1260 */ JUtility::TColor icn_black;
/* 0x1264 */ JUtility::TColor emp_white;
/* 0x1268 */ JUtility::TColor emp_black;
/* 0x126C */ dPbPhotoSlotData* mPhotoBuffer[4]; // Three saved slots + one import/get temporary slot.
/* 0x126C */ card_pictdata* mPhotoBuffer[4]; // Three saved slots + one import/get temporary slot.
/* 0x127C */ f32 mZoomScale;
/* 0x1280 */ f32 mShutterLineX1[12];
/* 0x12B0 */ f32 mShutterLineY1[12];
@@ -200,6 +195,6 @@ class sub_pb_class : public msg_class {
public:
/* 0x00FC */ JKRExpHeap* heap;
/* 0x0100 */ dJle_Pb_c* dPb_c;
/* 0x0104 */ dPbPhotoSlotData* buffer[4];
/* 0x0104 */ card_pictdata* buffer[4];
};
#endif /* D_PICTURE_BOX_H */
+41 -41
View File
@@ -5,10 +5,10 @@
#include "f_op/f_op_actor.h"
enum {
/* 0x00 */ DSNAP_TYPE_UNK00,
/* 0x01 */ DSNAP_TYPE_UNK01,
/* 0x02 */ DSNAP_TYPE_UNK02,
/* 0x03 */ DSNAP_TYPE_UNK03,
/* 0x00 */ DSNAP_TYPE_NONE,
/* 0x01 */ DSNAP_TYPE_POST, // Garrickson mailing his love letter
/* 0x02 */ DSNAP_TYPE_BIKUTSUKI, // Gossack scared
/* 0x03 */ DSNAP_TYPE_COUPLE_LOOK, // Linda and Anton, the secret couple
/* 0x04 */ DSNAP_TYPE_UNK04,
/* 0x05 */ DSNAP_TYPE_UNK05,
/* 0x06 */ DSNAP_TYPE_UNK06,
@@ -78,11 +78,11 @@ enum {
/* 0x46 */ DSNAP_TYPE_UNK46,
/* 0x47 */ DSNAP_TYPE_UNK47,
/* 0x48 */ DSNAP_TYPE_UNK48,
/* 0x49 */ DSNAP_TYPE_LS1,
/* 0x49 */ DSNAP_TYPE_NPC_LS1,
/* 0x4A */ DSNAP_TYPE_UNK4A,
/* 0x4B */ DSNAP_TYPE_UNK4B,
/* 0x4C */ DSNAP_TYPE_UNK4C,
/* 0x4D */ DSNAP_TYPE_JI1,
/* 0x4D */ DSNAP_TYPE_NPC_JI1,
/* 0x4E */ DSNAP_TYPE_UNK4E,
/* 0x4F */ DSNAP_TYPE_UNK4F,
/* 0x50 */ DSNAP_TYPE_UNK50,
@@ -92,34 +92,34 @@ enum {
/* 0x54 */ DSNAP_TYPE_KB,
/* 0x55 */ DSNAP_TYPE_KAMOME,
/* 0x56 */ DSNAP_TYPE_KN,
/* 0x57 */ DSNAP_TYPE_TT,
/* 0x58 */ DSNAP_TYPE_KM1,
/* 0x57 */ DSNAP_TYPE_NPC_TT,
/* 0x58 */ DSNAP_TYPE_NPC_KM1,
/* 0x59 */ DSNAP_TYPE_UNK59,
/* 0x5A */ DSNAP_TYPE_UNK5A,
/* 0x5B */ DSNAP_TYPE_UNK5B,
/* 0x5C */ DSNAP_TYPE_UNK5C,
/* 0x5D */ DSNAP_TYPE_UNK5D,
/* 0x5E */ DSNAP_TYPE_NPC_PHOTO,
/* 0x5F */ DSNAP_TYPE_RSH1,
/* 0x60 */ DSNAP_TYPE_HO,
/* 0x61 */ DSNAP_TYPE_MK,
/* 0x62 */ DSNAP_TYPE_UNK62,
/* 0x63 */ DSNAP_TYPE_UNK63,
/* 0x64 */ DSNAP_TYPE_UNK64,
/* 0x65 */ DSNAP_TYPE_UNK65,
/* 0x66 */ DSNAP_TYPE_UNK66,
/* 0x67 */ DSNAP_TYPE_UNK67,
/* 0x68 */ DSNAP_TYPE_UNK68,
/* 0x69 */ DSNAP_TYPE_UNK69,
/* 0x6A */ DSNAP_TYPE_UNK6A,
/* 0x6B */ DSNAP_TYPE_UNK6B,
/* 0x6C */ DSNAP_TYPE_UNK6C,
/* 0x6D */ DSNAP_TYPE_UNK6D,
/* 0x6E */ DSNAP_TYPE_UNK6E,
/* 0x6F */ DSNAP_TYPE_UNK6F,
/* 0x70 */ DSNAP_TYPE_UNK70,
/* 0x71 */ DSNAP_TYPE_UNK71,
/* 0x72 */ DSNAP_TYPE_ZL1,
/* 0x5F */ DSNAP_TYPE_NPC_RSH1,
/* 0x60 */ DSNAP_TYPE_NPC_HO,
/* 0x61 */ DSNAP_TYPE_NPC_MK,
/* 0x62 */ DSNAP_TYPE_NPC_UG1_UG2,
/* 0x63 */ DSNAP_TYPE_NPC_UM2,
/* 0x64 */ DSNAP_TYPE_NPC_UM1,
/* 0x65 */ DSNAP_TYPE_NPC_UM3,
/* 0x66 */ DSNAP_TYPE_NPC_UW1,
/* 0x67 */ DSNAP_TYPE_NPC_UW2,
/* 0x68 */ DSNAP_TYPE_NPC_UO1,
/* 0x69 */ DSNAP_TYPE_NPC_UO2,
/* 0x6A */ DSNAP_TYPE_NPC_UO3,
/* 0x6B */ DSNAP_TYPE_NPC_UB1_UB2,
/* 0x6C */ DSNAP_TYPE_NPC_UB3,
/* 0x6D */ DSNAP_TYPE_NPC_UB4,
/* 0x6E */ DSNAP_TYPE_NPC_SA2,
/* 0x6F */ DSNAP_TYPE_NPC_SA3,
/* 0x70 */ DSNAP_TYPE_NPC_SA5,
/* 0x71 */ DSNAP_TYPE_NPC_SA4,
/* 0x72 */ DSNAP_TYPE_NPC_ZL1,
/* 0x73 */ DSNAP_TYPE_UNK73,
/* 0x74 */ DSNAP_TYPE_UNK74,
/* 0x75 */ DSNAP_TYPE_UNK75,
@@ -131,19 +131,19 @@ enum {
/* 0x7B */ DSNAP_TYPE_TC_BLUE,
/* 0x7C */ DSNAP_TYPE_TC_WHITE,
/* 0x7D */ DSNAP_TYPE_UNK7D,
/* 0x7E */ DSNAP_TYPE_ROTEN,
/* 0x7F */ DSNAP_TYPE_UNK7F,
/* 0x80 */ DSNAP_TYPE_BS,
/* 0x7E */ DSNAP_TYPE_NPC_ROTEN,
/* 0x7F */ DSNAP_TYPE_NPC_AH,
/* 0x80 */ DSNAP_TYPE_NPC_BS1,
/* 0x81 */ DSNAP_TYPE_UNK81,
/* 0x82 */ DSNAP_TYPE_UNK82,
/* 0x82 */ DSNAP_TYPE_NPC_SA1,
/* 0x83 */ DSNAP_TYPE_UNK83,
/* 0x84 */ DSNAP_TYPE_FA,
/* 0x84 */ DSNAP_TYPE_NPC_FA1,
/* 0x85 */ DSNAP_TYPE_UNK85,
/* 0x86 */ DSNAP_TYPE_UNK86,
/* 0x87 */ DSNAP_TYPE_UNK87,
/* 0x88 */ DSNAP_TYPE_UNK88,
/* 0x89 */ DSNAP_TYPE_UNK89,
/* 0x8A */ DSNAP_TYPE_MD,
/* 0x8A */ DSNAP_TYPE_NPC_MD,
/* 0x8B */ DSNAP_TYPE_UNK8B,
/* 0x8C */ DSNAP_TYPE_UNK8C,
/* 0x8D */ DSNAP_TYPE_UNK8D,
@@ -155,13 +155,13 @@ enum {
/* 0x93 */ DSNAP_TYPE_UNK93,
/* 0x94 */ DSNAP_TYPE_UNK94,
/* 0x95 */ DSNAP_TYPE_UNK95,
/* 0x96 */ DSNAP_TYPE_BMSW,
/* 0x96 */ DSNAP_TYPE_NPC_BMSW,
/* 0x97 */ DSNAP_TYPE_UNK97,
/* 0x98 */ DSNAP_TYPE_BTSW,
/* 0x98 */ DSNAP_TYPE_NPC_BTSW,
/* 0x99 */ DSNAP_TYPE_DR,
/* 0x9A */ DSNAP_TYPE_HR,
/* 0x9A */ DSNAP_TYPE_NPC_HR,
/* 0x9B */ DSNAP_TYPE_UNK9B,
/* 0x9C */ DSNAP_TYPE_CB1,
/* 0x9C */ DSNAP_TYPE_NPC_CB1,
/* 0x9D */ DSNAP_TYPE_UNK9D,
/* 0x9E */ DSNAP_TYPE_UNK9E,
/* 0x9F */ DSNAP_TYPE_UNK9F,
@@ -222,7 +222,7 @@ public:
/* 0x0C */ f32 mRadius;
/* 0x10 */ f32 mHeight;
/* 0x14 */ fpc_ProcID mActorPID;
/* 0x18 */ u8 mPhoto;
/* 0x18 */ u8 mPhotoNo;
/* 0x19 */ u8 field_0x19;
/* 0x1A */ u8 field_0x1a;
/* 0x1B */ u8 field_0x1b;
@@ -249,7 +249,7 @@ public:
s16 GetMinY() { return mMinY; }
s16 GetMaxX() { return mMaxX; }
s16 GetMaxY() { return mMaxY; }
int GetPhoto() const { return mPhoto; }
int GetPhoto() const { return mPhotoNo; }
void GetPoint() {}
void SetDRRatio(f32) {}
void SetPoint(s32) {}
@@ -310,7 +310,7 @@ public:
int JudgeFigure(int);
void SetResult();
/* 0x010 */ int field_0x10;
/* 0x010 */ int mPhotoNo;
/* 0x014 */ int field_0x14;
/* 0x018 */ dSnap_RegistObjElm m_tbl[0x3F];
/* 0xEDC */ int mFlag;
+4 -4
View File
@@ -157,10 +157,10 @@ public:
void stringShift();
void iconSelect(int, u8);
void iconIdxRefresh();
int selectCheck2(J2DPane*, int, int, int);
int selectCheck3(J2DPane*, int, int, int);
int selectCheckYoko(J2DPane*, int, int, int);
int inputNumber(int);
u8 selectCheck2(J2DPane*, int, int, int);
u8 selectCheck3(J2DPane*, int, int, int);
u8 selectCheckYoko(J2DPane*, int, int, int);
u8 inputNumber(int);
void selectArrow(J2DPicture*, f32, f32, f32, f32);
void selectArrow(J2DPicture*, f32, f32);
void colorAnime(J2DPicture*);
+8 -4
View File
@@ -16,7 +16,11 @@ struct mDoMemCdRWm_HeaderData
struct card_pictdata
{
/* 0x0000 */ u8 data[0x2000 - sizeof(u16)];
/* 0x0000 */ u8 tex_buffer[0x1EE0]; // Holds the texture data for one 152x104 CMPR texture
/* 0x1EE0 */ u32 snap_result; // Photo index
/* 0x1EE4 */ u8 snap_result_detail;
/* 0x1EE5 */ u8 capture_format; // The format the capture was done in (not the same as the format of tex_buffer)
/* 0x1EE6 */ u8 field_0x1EE6[0x1FFE - 0x1EE6];
/* 0x1FFE */ u16 csum;
}; // Size: 0x2000
@@ -30,10 +34,10 @@ struct card_gamedata
struct card_savedata
{
/* 0x0000 */ u32 saveCount;
/* 0x0004 */ u32 dataVersion;
/* 0x0000 */ u32 save_count;
/* 0x0004 */ u32 data_version;
/* 0x0008 */ card_gamedata gamedata[3];
/* 0x1658 */ u8 field_0x1658[0x2000 - 3*sizeof(u32) - 3*sizeof(card_gamedata)];
/* 0x1658 */ u8 field_0x1658[0x1FFC - 0x1658];
/* 0x1FFC */ u32 csum;
}; // Size: 0x2000
+1 -1
View File
@@ -339,7 +339,7 @@ bool daNpcAh_c::_draw() {
mObjAcch.GetGroundH(),
mObjAcch.m_gnd,
&tevStr);
dSnap_RegistFig(DSNAP_TYPE_UNK7F, this, 1.0f, 1.0f, 1.0f);
dSnap_RegistFig(DSNAP_TYPE_NPC_AH, this, 1.0f, 1.0f, 1.0f);
return true;
}
+1 -1
View File
@@ -1065,7 +1065,7 @@ BOOL daNpc_Bmsw_c::_draw() {
}
mpShopCursor->draw();
dSnap_RegistFig(DSNAP_TYPE_BMSW, this, current.pos, current.angle.y, 1.0f, 1.0f, 1.0f);
dSnap_RegistFig(DSNAP_TYPE_NPC_BMSW, this, current.pos, current.angle.y, 1.0f, 1.0f, 1.0f);
return TRUE;
}
+1 -1
View File
@@ -2065,7 +2065,7 @@ BOOL daNpc_Bs1_c::_draw() {
}
}
dSnap_RegistFig(DSNAP_TYPE_BS, this, current.pos, current.angle.y, 1.0f, 1.0f, 1.0f);
dSnap_RegistFig(DSNAP_TYPE_NPC_BS1, this, current.pos, current.angle.y, 1.0f, 1.0f, 1.0f);
return TRUE;
}
+1 -1
View File
@@ -917,7 +917,7 @@ BOOL daNpc_Btsw_c::_draw() {
}
mpShopCursor->draw();
dSnap_RegistFig(DSNAP_TYPE_BTSW, this, current.pos, current.angle.y, 1.0f, 1.0f, 1.0f);
dSnap_RegistFig(DSNAP_TYPE_NPC_BTSW, this, current.pos, current.angle.y, 1.0f, 1.0f, 1.0f);
return TRUE;
}
+1 -1
View File
@@ -629,7 +629,7 @@ BOOL daNpc_Btsw2_c::_draw() {
current.pos.y, mObjAcch.GetGroundH(), mObjAcch.m_gnd, &tevStr
);
dSnap_RegistFig(DSNAP_TYPE_BTSW, this, current.pos, current.angle.y, 1.0f, 1.0f, 1.0f);
dSnap_RegistFig(DSNAP_TYPE_NPC_BTSW, this, current.pos, current.angle.y, 1.0f, 1.0f, 1.0f);
return TRUE;
}
+1 -1
View File
@@ -3081,7 +3081,7 @@ BOOL daNpc_Cb1_c::draw() {
}
}
dSnap_RegistFig(DSNAP_TYPE_CB1, this, 1.0f, 1.0f, 1.0f);
dSnap_RegistFig(DSNAP_TYPE_NPC_CB1, this, 1.0f, 1.0f, 1.0f);
return TRUE;
}
+1 -1
View File
@@ -308,7 +308,7 @@ BOOL daNpc_Fa1_c::_draw() {
dComIfGd_setSimpleShadow(&current.pos, ground_y, 10.0f, &m774, 0, 1.0f,
dDlst_shadowControl_c::getSimpleTex());
}
dSnap_RegistFig(DSNAP_TYPE_FA, this, 1.0f, 1.0f, 1.0f);
dSnap_RegistFig(DSNAP_TYPE_NPC_FA1, this, 1.0f, 1.0f, 1.0f);
return TRUE;
}
+1 -1
View File
@@ -779,7 +779,7 @@ BOOL daNpc_Ho_c::_draw() {
current.pos.y, mObjAcch.GetGroundH(), mObjAcch.m_gnd, &tevStr
);
dSnap_RegistFig(DSNAP_TYPE_HO, this, 1.0f, 1.0f, 1.0f);
dSnap_RegistFig(DSNAP_TYPE_NPC_HO, this, 1.0f, 1.0f, 1.0f);
return TRUE;
}
+1 -1
View File
@@ -1976,7 +1976,7 @@ BOOL daNpc_Hr_c::_draw() {
mpAntennaMorf->updateDL();
mBtpAnm.remove(modelData);
if (getShapeType() == 1 && mState == HR_STATE_RT_ANGRY) {
dSnap_RegistFig(DSNAP_TYPE_HR, this, 1.0f, 1.0f, 1.0f);
dSnap_RegistFig(DSNAP_TYPE_NPC_HR, this, 1.0f, 1.0f, 1.0f);
}
return TRUE;
+1 -1
View File
@@ -4990,7 +4990,7 @@ BOOL daNpc_Ji1_c::_draw() {
dComIfGd_addRealShadow(mShadowId, mpSpearMorf->getModel());
}
dSnap_RegistFig(DSNAP_TYPE_JI1, this, current.pos, current.angle.y, 1.0f, 1.0f, 1.0f);
dSnap_RegistFig(DSNAP_TYPE_NPC_JI1, this, current.pos, current.angle.y, 1.0f, 1.0f, 1.0f);
return true;
}
+1 -1
View File
@@ -639,7 +639,7 @@ BOOL daNpc_Km1_c::_draw() {
dComIfG_Bgsp()->GetTriPla(mObjAcch.m_gnd)->GetNP()
);
}
dSnap_RegistFig(DSNAP_TYPE_KM1,this,1.0f,1.0f,1.0f);
dSnap_RegistFig(DSNAP_TYPE_NPC_KM1,this,1.0f,1.0f,1.0f);
// Color literals for debug drawing. Unused in non-debug builds.
(GXColor){0xFF,0x00, 0x00, 0x80};
+1 -1
View File
@@ -2106,7 +2106,7 @@ BOOL daNpc_Ls1_c::_draw() {
}
shadowDraw();
dSnap_RegistFig(DSNAP_TYPE_LS1, this, 1.0f, 1.0f, 1.0f);
dSnap_RegistFig(DSNAP_TYPE_NPC_LS1, this, 1.0f, 1.0f, 1.0f);
// Does nothing
if (l_HIO.mPrm.m18) {
+1 -1
View File
@@ -5786,7 +5786,7 @@ BOOL daNpc_Md_c::draw() {
}
}
dSnap_RegistFig(DSNAP_TYPE_MD, this, 1.0f, 1.0f, 1.0f);
dSnap_RegistFig(DSNAP_TYPE_NPC_MD, this, 1.0f, 1.0f, 1.0f);
return TRUE;
}
+1 -1
View File
@@ -1530,7 +1530,7 @@ BOOL daNpc_Mk_c::_draw() {
current.pos.y, mObjAcch.GetGroundH(), mObjAcch.m_gnd, &tevStr
);
dSnap_RegistFig(DSNAP_TYPE_MK, this, 1.0f, 1.0f, 1.0f);
dSnap_RegistFig(DSNAP_TYPE_NPC_MK, this, 1.0f, 1.0f, 1.0f);
return TRUE;
}
+18 -19
View File
@@ -913,25 +913,23 @@ u16 daNpcMt_c::next_msgStatus(u32* pMsgNo) {
/* 00001A8C-00001FC8 .text getMsg__9daNpcMt_cFv */
u32 daNpcMt_c::getMsg() {
u8 uVar2;
u32 msgNo = 0;
mpMsgTbl = NULL;
if (g_dComIfG_gameInfo.play.getEvent()->chkPhoto()){
uVar2 = changePhotoNo(dComIfGp_getPictureResult());
if ((uVar2 <= 0x48) || (uVar2 >= 0xcf)) {
uVar2 = 0xff;
u8 photoNo = changePhotoNo(dComIfGp_getPictureResult());
if ((photoNo <= DSNAP_TYPE_UNK48) || (photoNo >= DSNAP_TYPE_UNKCF)) {
photoNo = 0xff;
}
else {
uVar2 = dSnap_PhotoIndex2TableIndex(uVar2) & 0xff;
photoNo = dSnap_PhotoIndex2TableIndex(photoNo);
}
if (dComIfGp_getPictureFormat() == 0 || dComIfGp_getPictureFormat() == 1) {
if (dComIfGp_getPictureFormat() == GX_TF_I4 || dComIfGp_getPictureFormat() == GX_TF_I8) {
mpMsgTbl = l_msg_mt_no_color;
}
else if (uVar2 == 0xff) {
else if (photoNo == 0xff) {
mpMsgTbl = l_msg_mt_no_figure;
}
else if (isFigureGet(uVar2)) {
else if (isFigureGet(photoNo)) {
mpMsgTbl = l_msg_mt_maked;
}
else if (dComIfGp_getPictureResultDetail() == 1) {
@@ -940,19 +938,20 @@ u32 daNpcMt_c::getMsg() {
else if (dComIfGp_getPictureResultDetail() == 2) {
mpMsgTbl = l_msg_mt_body_ng;
}
// !@bug: dComIfGp_getPictureResultDetail() == 3 is never checked
else {
dComIfGs_onEventBit(dSv_event_flag_c::UNK_2F01);
dComIfGs_onEventBit(dSv_event_flag_c::UNK_3401);
dComIfGs_setEventReg(dSv_event_flag_c::UNK_A9FF, uVar2);
dComIfGs_setEventReg(dSv_event_flag_c::UNK_A9FF, photoNo);
s32 bVar1 = 0;
if(dComIfGs_isEventBit(dSv_event_flag_c::UNK_3A01)) {
bVar1 = 1;
}
switch(uVar2) {
case 0x5e:
switch(photoNo) {
case DSNAP_TYPE_NPC_PHOTO:
mpMsgTbl = l_msg_mt_make_mt[bVar1];
break;
case 0x5f:
case DSNAP_TYPE_NPC_RSH1:
mpMsgTbl = l_msg_mt_make_mn[bVar1];
break;
default:
@@ -1404,14 +1403,14 @@ BOOL daNpcMt_c::isComp() {
/* 00002D08-00002D4C .text changePhotoNo__9daNpcMt_cFUc */
u8 daNpcMt_c::changePhotoNo(u8 photoNo) {
switch(photoNo) {
case 2:
photoNo = 0x69;
case DSNAP_TYPE_BIKUTSUKI:
photoNo = DSNAP_TYPE_NPC_UO2;
break;
case 4:
photoNo = 0x67;
case DSNAP_TYPE_UNK04:
photoNo = DSNAP_TYPE_NPC_UW2;
break;
case 6:
photoNo = 0x6d;
case DSNAP_TYPE_UNK06:
photoNo = DSNAP_TYPE_NPC_UB4;
}
return photoNo;
}
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -819,7 +819,7 @@ bool daNpcPhoto_c::_draw() {
l_pso_photo.field_0x08
);
temp += current.pos;
obj.SetInf(5, this, l_pso_photo.field_0x16, l_pso_photo.field_0x17, 0x7FFF);
obj.SetInf(DSNAP_TYPE_UNK05, this, l_pso_photo.field_0x16, l_pso_photo.field_0x17, 0x7FFF);
obj.SetGeo(temp, l_pso_photo.field_0x0C, l_pso_photo.field_0x10, l_pso_photo.field_0x14 + current.angle.y);
dSnap_RegistSnapObj(obj);
} else {
+1 -1
View File
@@ -1838,7 +1838,7 @@ bool daNpcRoten_c::_draw() {
dComIfGd_addRealShadow(mShadowId, field_0x6D4);
}
dSnap_RegistFig(DSNAP_TYPE_ROTEN, this, 1.0f, 1.0f, 1.0f);
dSnap_RegistFig(DSNAP_TYPE_NPC_ROTEN, this, 1.0f, 1.0f, 1.0f);
return true;
}
+1 -1
View File
@@ -1681,7 +1681,7 @@ BOOL daNpc_Rsh1_c::_draw() {
mpShopCursor->draw();
}
dSnap_RegistFig(DSNAP_TYPE_RSH1, this, current.pos, current.angle.y, 1.0f, 1.0f, 1.0f);
dSnap_RegistFig(DSNAP_TYPE_NPC_RSH1, this, current.pos, current.angle.y, 1.0f, 1.0f, 1.0f);
return TRUE;
}
+1 -1
View File
@@ -790,7 +790,7 @@ BOOL daNpc_Tt_c::_draw() {
#endif
dComIfGd_set3DlineMat(&mLineKe.mLineMat);
dSnap_RegistFig(DSNAP_TYPE_TT, this, 1.0f, 1.0f, 1.0f);
dSnap_RegistFig(DSNAP_TYPE_NPC_TT, this, 1.0f, 1.0f, 1.0f);
return TRUE;
}
+1 -1
View File
@@ -2770,7 +2770,7 @@ BOOL daNpc_Zl1_c::_draw() {
}
shadowDraw();
dSnap_RegistFig(DSNAP_TYPE_ZL1, this, 1.0f, 1.0f, 1.0f);
dSnap_RegistFig(DSNAP_TYPE_NPC_ZL1, this, 1.0f, 1.0f, 1.0f);
// doesnt do anything?
cXyz temp;
+3 -3
View File
@@ -1798,11 +1798,11 @@ void snap_sunmoon_proc(cXyz* pPos, int type) {
snapObj.SetGeoSph(pos, 8000.0f);
if (type == 9)
snapObj.SetInf(9, NULL, 0xFF, 4, 0x7FFF);
snapObj.SetInf(DSNAP_TYPE_UNK09, NULL, 0xFF, 4, 0x7FFF);
else if (type == 0)
snapObj.SetInf(7, NULL, 0xFF, 4, 0x7FFF);
snapObj.SetInf(DSNAP_TYPE_UNK07, NULL, 0xFF, 4, 0x7FFF);
else
snapObj.SetInf(8, NULL, 0xFF, 4, 0x7FFF);
snapObj.SetInf(DSNAP_TYPE_UNK08, NULL, 0xFF, 4, 0x7FFF);
dSnap_RegistSnapObj(snapObj);
}
}
+4 -10
View File
@@ -1572,7 +1572,6 @@ void dMsg_tactGuideShow(sub_msg_class* i_Msg, u8 param_2) {
/* 80210AA0-80210CA4 .text dMsg_numberInput__FP13sub_msg_class */
void dMsg_numberInput(sub_msg_class* i_Msg) {
static char* num_str[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
u8 uVar2;
for (s32 i = 0; i < 8; i++) {
if (i_Msg->mMsgDataProc.field_0x281[i] == 0x16) {
@@ -1581,11 +1580,9 @@ void dMsg_numberInput(sub_msg_class* i_Msg) {
}
}
if (i_Msg->mMsgNo == 0x1cfa) {
uVar2 = i_Msg->mMsgDataProc.inputNumber(3);
i_Msg->mSelectNum = uVar2;
i_Msg->mSelectNum = i_Msg->mMsgDataProc.inputNumber(3);
} else {
uVar2 = i_Msg->mMsgDataProc.inputNumber(2);
i_Msg->mSelectNum = uVar2;
i_Msg->mSelectNum = i_Msg->mMsgDataProc.inputNumber(2);
}
i_Msg->mMsgDataProc.colorAnime(maskPane);
numberPane[2]->setString(num_str[dComIfGp_getMessageSetNumber() / 100]);
@@ -2027,7 +2024,6 @@ s32 dMsg_selectProc(sub_msg_class* i_Msg) {
int uVar1;
s16 sVar3;
u8 cVar6;
u8 uVar7;
J2DTextBox* pJVar8;
u8 uVar9;
int iVar10;
@@ -2083,8 +2079,7 @@ s32 dMsg_selectProc(sub_msg_class* i_Msg) {
goto end;
}
if (i_Msg->mStatus == fopMsgStts_SELECT_2_e) {
uVar7 = i_Msg->mMsgDataProc.selectCheck2(arrowPane, iVar10, iVar11 + uVar1 + ((int)uVar1 / 2), uVar1);
i_Msg->mSelectNum = uVar7;
i_Msg->mSelectNum = i_Msg->mMsgDataProc.selectCheck2(arrowPane, iVar10, iVar11 + uVar1 + ((int)uVar1 / 2), uVar1);
i_Msg->m026C[8].mUserArea++;
if (i_Msg->m026C[8].mUserArea >= 0x14) {
i_Msg->m026C[8].mUserArea = 0;
@@ -2104,8 +2099,7 @@ s32 dMsg_selectProc(sub_msg_class* i_Msg) {
fopMsgM_paneTrans(&i_Msg->m01FC, 0.0f, i_Msg->mSelectNum * uVar1);
fopMsgM_paneTrans(&i_Msg->m0234, 0.0f, i_Msg->mSelectNum * uVar1);
} else if (i_Msg->mStatus == fopMsgStts_SELECT_3_e) {
uVar7 = i_Msg->mMsgDataProc.selectCheck3(arrowPane, iVar10, iVar11, uVar1);
i_Msg->mSelectNum = uVar7;
i_Msg->mSelectNum = i_Msg->mMsgDataProc.selectCheck3(arrowPane, iVar10, iVar11, uVar1);
i_Msg->m026C[8].mUserArea++;
if (i_Msg->m026C[8].mUserArea >= 0x14) {
i_Msg->m026C[8].mUserArea = 0;
+119 -78
View File
@@ -50,6 +50,8 @@ void dPb_erasePicture() {
dComIfGs_setEventReg(dSv_event_flag_c::UNK_89FF, evReg2);
dComIfGp_setItemPictureNumCount(-1);
}
// !@bug: This function does not set the picture flags, meaning the removing pictures are never cleared from the memcard.
// This was fixed for PAL.
#if VERSION >= VERSION_PAL
dComIfGp_onPictureFlag(0);
dComIfGp_onPictureFlag(1);
@@ -192,18 +194,57 @@ void dJle_Pb_c::screenSet2() {
((J2DTextBox *)(pane_tx[2].pane))->setFont(font0);
((J2DTextBox *)(pane_tx[3].pane))->setFont(font1);
#if VERSION <= VERSION_JPN
J2DTextBox::TFontSize fontSize;
if (g_msgDHIO.field_0x08 == 0) {
fontSize.mSizeX = fontSize.mSizeY = (int)g_msgHIO.field_0x58;
J2DTextBox::TFontSize fontSize2;
fontSize2.mSizeX = fontSize2.mSizeY = g_msgHIO.field_0x68;
((J2DTextBox *)(pane_tx[0].pane))->setFontSize(fontSize);
((J2DTextBox *)(pane_tx[1].pane))->setFontSize(fontSize2);
((J2DTextBox *)(pane_tx[2].pane))->setFontSize(fontSize);
((J2DTextBox *)(pane_tx[3].pane))->setFontSize(fontSize2);
} else {
fontSize.mSizeX = fontSize.mSizeY = g_msgHIO.field_0x70;
((J2DTextBox *)(pane_tx[0].pane))->setFontSize(fontSize);
((J2DTextBox *)(pane_tx[2].pane))->setFontSize(fontSize);
}
#else
J2DTextBox::TFontSize fontSize;
fontSize.mSizeX = fontSize.mSizeY = g_msgHIO.field_0x70;
((J2DTextBox *)(pane_tx[0].pane))->setFontSize(fontSize);
((J2DTextBox *)(pane_tx[2].pane))->setFontSize(fontSize);
#endif
#if VERSION <= VERSION_JPN
((J2DTextBox *)(pane_tx[0].pane))->setCharSpace(-2.0f);
((J2DTextBox *)(pane_tx[1].pane))->setCharSpace(-1.0f);
((J2DTextBox *)(pane_tx[2].pane))->setCharSpace(-2.0f);
((J2DTextBox *)(pane_tx[3].pane))->setCharSpace(-1.0f);
#else
((J2DTextBox *)(pane_tx[0].pane))->setCharSpace(0.0f);
((J2DTextBox *)(pane_tx[1].pane))->setCharSpace(0.0f);
((J2DTextBox *)(pane_tx[2].pane))->setCharSpace(0.0f);
((J2DTextBox *)(pane_tx[3].pane))->setCharSpace(0.0f);
#endif
#if VERSION <= VERSION_JPN
if (g_msgDHIO.field_0x08 == 0) {
((J2DTextBox *)(pane_tx[0].pane))->setLineSpace(42.0f);
((J2DTextBox *)(pane_tx[1].pane))->setLineSpace(42.0f);
((J2DTextBox *)(pane_tx[2].pane))->setLineSpace(42.0f);
((J2DTextBox *)(pane_tx[3].pane))->setLineSpace(42.0f);
} else {
((J2DTextBox *)(pane_tx[0].pane))->setLineSpace(g_msgHIO.field_0x5e);
((J2DTextBox *)(pane_tx[2].pane))->setLineSpace(g_msgHIO.field_0x5e);
}
#else
((J2DTextBox *)(pane_tx[0].pane))->setLineSpace(28.0f);
((J2DTextBox *)(pane_tx[2].pane))->setLineSpace(28.0f);
#endif
}
/* 8022616C-802262CC .text cameraAlphaInc__9dJle_Pb_cFf */
@@ -513,8 +554,8 @@ void dJle_Pb_c::clickShutterMode() {
}
else if (mShutterCounter == iVar3) {
if (mDoGph_getCaptureStep() == 5) {
mShutterCounter++;
dMenu_flagSet(1);
mShutterCounter++;
dMenu_flagSet(1);
}
dVar8 = 1.0f;
}
@@ -542,9 +583,9 @@ void dJle_Pb_c::clickShutterMode() {
/* 80227520-802277A0 .text selectMode__9dJle_Pb_cFv */
void dJle_Pb_c::selectMode() {
u8 pictureNum;
int selection = mMsgDataProc.selectCheckYoko(mMsgSelectArrowPic, mChoiceCursorX0, mChoiceCursorY, mChoiceCursorX1 - mChoiceCursorX0);
u8 selection = mMsgDataProc.selectCheckYoko(mMsgSelectArrowPic, mChoiceCursorX0, mChoiceCursorY, mChoiceCursorX1 - mChoiceCursorX0);
if ((u8)selection != mSelectedChoiceIndex) {
if (selection != mSelectedChoiceIndex) {
mSelectedChoiceIndex = selection;
mDoAud_seStart(JA_SE_TALK_CURSOR);
}
@@ -553,9 +594,9 @@ void dJle_Pb_c::selectMode() {
if (mDoGph_getCaptureStep() == 5) {
mDoGph_setCaptureStep(6);
if ((u8)selection == 0) {
if (selection == 0) {
pictureNum = dComIfGs_getPictureNum();
dPbPhotoSlotData * dst = mPhotoBuffer[pictureNum];
card_pictdata* pict = mPhotoBuffer[pictureNum];
#if VERSION <= VERSION_JPN
dComIfGp_onPictureFlag(pictureNum);
@@ -565,16 +606,15 @@ void dJle_Pb_c::selectMode() {
dComIfGp_onPictureFlag(2);
#endif
dst->mSnapResultId = dSnap_GetResult();
dst->mSnapResultDetail = dSnap_GetResultDetail();
dst->mPhotoFormat = mCaptureFormat;
memcpy(dst, mDoGph_getCaptureTextureBuffer(), 0x1ee0);
pict->snap_result = dSnap_GetResult();
pict->snap_result_detail = dSnap_GetResultDetail();
pict->capture_format = mCaptureFormat;
memcpy(pict->tex_buffer, mDoGph_getCaptureTextureBuffer(), sizeof(pict->tex_buffer));
#if VERSION <= VERSION_JPN
DCFlushRangeNoSync(dst, 0x1ee0);
DCFlushRangeNoSync(pict->tex_buffer, sizeof(pict->tex_buffer));
#else
DCStoreRangeNoSync(dst, 0x1ee0);
DCStoreRangeNoSync(pict->tex_buffer, sizeof(pict->tex_buffer));
#endif
dComIfGp_setItemPictureNumCount(1);
@@ -658,7 +698,7 @@ void dJle_Pb_c::pictureDraw(u8 mono_color_1_alpha, int img_index) {
Mtx44 mtx;
GXTexObj tex_obj;
dPbPhotoSlotData* img = mPhotoBuffer[img_index];
card_pictdata* pict = mPhotoBuffer[img_index];
u32 index = (img_index == 3) ? 0 : img_index;
f32 f2 = pane_no[index].mPosTopLeft.x + REG6_F(0);
f32 f3 = pane_no[index].mPosTopLeft.y + REG6_F(1);
@@ -711,7 +751,7 @@ void dJle_Pb_c::pictureDraw(u8 mono_color_1_alpha, int img_index) {
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_RGBA4, 0);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGB8, 0);
GXInitTexObj(&tex_obj, img, 0x98, 0x68, GX_TF_CMPR, GX_CLAMP, GX_CLAMP, GX_FALSE);
GXInitTexObj(&tex_obj, pict->tex_buffer, 0x98, 0x68, GX_TF_CMPR, GX_CLAMP, GX_CLAMP, GX_FALSE);
GXLoadTexObj(&tex_obj, GX_TEXMAP0);
s32 r31 = (s32)r30 - 0x98;
@@ -746,14 +786,14 @@ void dJle_Pb_c::pictureDraw(u8 mono_color_1_alpha, int img_index) {
/* 80227D34-80227ED8 .text pictureEraseWait__9dJle_Pb_cFv */
void dJle_Pb_c::pictureEraseWait() {
int bVar1 = mMsgDataProc.selectCheckYoko(mMsgSelectArrowPic, mChoiceCursorX0, mChoiceCursorY, mChoiceCursorX1 - mChoiceCursorX0);
if ((u8)bVar1 != mSelectedChoiceIndex) {
u8 bVar1 = mMsgDataProc.selectCheckYoko(mMsgSelectArrowPic, mChoiceCursorX0, mChoiceCursorY, mChoiceCursorX1 - mChoiceCursorX0);
if (bVar1 != mSelectedChoiceIndex) {
mSelectedChoiceIndex = bVar1;
mDoAud_seStart(JA_SE_TALK_CURSOR);
}
if (CPad_CHECK_TRIG_A(0)) {
if ((u8)bVar1 == 0) {
if (bVar1 == 0) {
pictureErase();
mDoAud_seStart(JA_SE_UTUSHIE_B_DEL_PIC);
}
@@ -775,19 +815,19 @@ void dJle_Pb_c::pictureEraseWait() {
/* 80227ED8-802280C8 .text pictureDecide__9dJle_Pb_cFv */
void dJle_Pb_c::pictureDecide() {
int bVar2 = mMsgDataProc.selectCheckYoko(mMsgSelectArrowPic, mChoiceCursorX0, mChoiceCursorY, mChoiceCursorX1 - mChoiceCursorX0);
if ((u8)bVar2 != mSelectedChoiceIndex) {
u8 bVar2 = mMsgDataProc.selectCheckYoko(mMsgSelectArrowPic, mChoiceCursorX0, mChoiceCursorY, mChoiceCursorX1 - mChoiceCursorX0);
if (bVar2 != mSelectedChoiceIndex) {
mSelectedChoiceIndex = bVar2;
mDoAud_seStart(JA_SE_TALK_CURSOR);
}
if (CPad_CHECK_TRIG_A(0)) {
if ((u8)bVar2 == 0) {
dPbPhotoSlotData* tmp = mPhotoBuffer[(u8)mSelectedPhotoSlot];
if (bVar2 == 0) {
card_pictdata* pict = mPhotoBuffer[mSelectedPhotoSlot];
dComIfGp_setSelectPicture(mSelectedPhotoSlot);
dComIfGp_setPictureFormat(tmp->mPhotoFormat);
dComIfGp_setPictureFormat(pict->capture_format);
dComIfGp_setPictureStatus(1);
dComIfGp_setPictureResult(tmp->mSnapResultId);
dComIfGp_setPictureResultDetail(tmp->mSnapResultDetail);
dComIfGp_setPictureResult(pict->snap_result);
dComIfGp_setPictureResultDetail(pict->snap_result_detail);
#if VERSION <= VERSION_JPN
mDoAud_seStart(JA_SE_UTUSHIE_B_DEL_PIC);
@@ -982,12 +1022,12 @@ void dJle_Pb_c::moveCamera() {
dComIfGp_setDoStatusForce(dActStts_TAKE_PHOTO_e);
}
else {
dComIfGp_setDoStatusForce(dActStts_BLANK_e);
dComIfGp_setDoStatusForce(dActStts_BLANK_e);
}
dComIfGp_setAStatusForce(dActStts_RETURN_e);
if (dComIfGp_getPictureStatus() != 2 && dComIfGp_getPictureStatus() != 3) {
if (dComIfGp_getPictureStatus() != 2 && dComIfGp_getPictureStatus() != 3) {
dComIfGp_setRStatusForce(dActStts_SWAP_MODES_e);
}
}
@@ -1061,9 +1101,13 @@ void dJle_Pb_c::moveBrowse() {
dComIfGp_setAStatusForce(dActStts_RETURN_e);
#if VERSION == VERSION_DEMO
dComIfGp_setRStatusForce(dActStts_SWAP_MODES_e);
#else
if (dComIfGp_getPictureStatus() != 2 && dComIfGp_getPictureStatus() != 3) {
dComIfGp_setRStatusForce(dActStts_SWAP_MODES_e);
}
#endif
} else if (mModeSubState == PB_SUB_CONFIRM_e) {
pictureEraseWait();
@@ -1175,12 +1219,11 @@ void dJle_Pb_c::getBrowse() {
dComIfGp_onPictureFlag(2);
#endif
memcpy(mPhotoBuffer[dComIfGs_getPictureNum()], mPhotoBuffer[3], 0x2000);
memcpy(mPhotoBuffer[dComIfGs_getPictureNum()], mPhotoBuffer[3], sizeof(card_pictdata));
#if VERSION <= VERSION_JPN
DCFlushRangeNoSync(mPhotoBuffer[dComIfGs_getPictureNum()], 0x2000);
DCFlushRangeNoSync(mPhotoBuffer[dComIfGs_getPictureNum()], sizeof(card_pictdata));
#else
DCStoreRangeNoSync(mPhotoBuffer[dComIfGs_getPictureNum()], 0x2000);
DCStoreRangeNoSync(mPhotoBuffer[dComIfGs_getPictureNum()], sizeof(card_pictdata));
#endif
dComIfGp_setItemPictureNumCount(1);
@@ -1334,19 +1377,19 @@ void dJle_Pb_c::setColorAnime(u8 param_1) {
}
icnWhite.r = (u8)(icn_white.r - t * (icn_white.r - 255.0f));
icnWhite.g = (u8)(icn_white.g - t * (icn_white.g - 60.0f));
icnWhite.b = (u8)(icn_white.b - t * (icn_white.b - 60.0f));
icnWhite.r = (icn_white.r - t * (icn_white.r - 255.0f));
icnWhite.g = (icn_white.g - t * (icn_white.g - 60.0f));
icnWhite.b = (icn_white.b - t * (icn_white.b - 60.0f));
icnWhite.a = 0xFF;
empWhite.r = (u8)(emp_white.r - t * (emp_white.r - 255.0f));
empWhite.g = (u8)(emp_white.g - t * (emp_white.g - 60.0f));
empWhite.b = (u8)(emp_white.b - t * (emp_white.b - 60.0f));
empWhite.r = (emp_white.r - t * (emp_white.r - 255.0f));
empWhite.g = (emp_white.g - t * (emp_white.g - 60.0f));
empWhite.b = (emp_white.b - t * (emp_white.b - 60.0f));
empWhite.a = 0xFF;
empBlack.r = (u8)(emp_black.r - t * (emp_black.r - 255.0f));
empBlack.g = (u8)(emp_black.g - t * (emp_black.g - 60.0f));
empBlack.b = (u8)(emp_black.b - t * (emp_black.b - 60.0f));
empBlack.r = (emp_black.r - t * (emp_black.r - 255.0f));
empBlack.g = (emp_black.g - t * (emp_black.g - 60.0f));
empBlack.b = (emp_black.b - t * (emp_black.b - 60.0f));
empBlack.a = 0;
((J2DPicture*)pane_icn[param_1].pane)->setWhite(icnWhite);
@@ -1368,15 +1411,15 @@ void dJle_Pb_c::changeData() {
if(i != j) {
mPhotoSlotOccupied[i] = 0;
mPhotoSlotOccupied[j] = 1;
memcpy(mPhotoBuffer[j], mPhotoBuffer[i], 0x2000);
memcpy(mPhotoBuffer[j], mPhotoBuffer[i], sizeof(card_pictdata));
#if VERSION <= VERSION_JPN
DCFlushRangeNoSync(mPhotoBuffer[j], 0x2000);
DCFlushRangeNoSync(mPhotoBuffer[j], sizeof(card_pictdata));
#else
DCStoreRangeNoSync(mPhotoBuffer[j], 0x2000);
DCStoreRangeNoSync(mPhotoBuffer[j], sizeof(card_pictdata));
#endif
}
mDoMemCdRWm_SetCheckSumPictData((u8*)mPhotoBuffer[i]);
JKRMainRamToAram((u8*)mPhotoBuffer[i], dComIfGp_getPictureBoxData(j), 0x2000, EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1);
JKRMainRamToAram((u8*)mPhotoBuffer[i], dComIfGp_getPictureBoxData(j), sizeof(card_pictdata), EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1);
j++;
}
}
@@ -1552,11 +1595,10 @@ void dJle_Pb_c::shutterLineMove() {
determinant = a1 * b2 - x2OrA2 * b1;
if (determinant) {
intersectionX[i] =
(b2 * c1 - b1 * xNext) / determinant;
intersectionY[i] =
(-x2OrA2 * c1 + a1 * xNext) / determinant;
f32 temp1 = (b2 * c1 - b1 * xNext) / determinant;
f32 temp2 = (-x2OrA2 * c1 + a1 * xNext) / determinant;;
intersectionX[i] = temp1;
intersectionY[i] = temp2;
} else {
intersectionX[i] = x1;
intersectionY[i] = mShutterLineY1[i];
@@ -1613,7 +1655,7 @@ void dJle_Pb_c::messageSet(u32 msgNo) {
}
head_p = msgGet.getMesgHeader(msgNo);
JUT_ASSERT(VERSION_SELECT(1836, 1836, 1881, 1908), head_p);
JUT_ASSERT(VERSION_SELECT(1841, 1836, 1881, 1908), head_p);
const char* text = msgGet.getMessage(head_p);
mMsgEntry = msgGet.getMesgEntry(head_p);
@@ -1671,7 +1713,7 @@ void dJle_Pb_c::messageSet(u32 msgNo) {
mMsgDataProc.stringSet();
for (int i = 0; i < 4; i++) {
((J2DTextBox*)pane_tx[i].pane)->setString((char*)mMsgTextBuffer[i]);
((J2DTextBox*)pane_tx[i].pane)->setString(mMsgTextBuffer[i]);
}
for (int i = 0; i < 15; i++) {
@@ -1697,7 +1739,7 @@ void dJle_Pb_c::messageSet(u32 msgNo) {
mMsgSelectArrowPic->show();
mMsgSelectArrowPic->setAlpha(0xFF);
mChoiceArrowIconIdx = (u8)i;
mChoiceArrowIconIdx = i;
if (firstChoiceSeen == 0) {
firstChoiceSeen = 1;
@@ -1723,7 +1765,7 @@ void dJle_Pb_c::messageSet(u32 msgNo) {
mMsgSelectArrowPic->show();
mMsgSelectArrowPic->setAlpha(0xFF);
mChoiceArrowIconIdx = (u8)i;
mChoiceArrowIconIdx = i;
if (firstChoiceSeen != 0) {
mSelectedChoiceIndex = 1;
@@ -1808,25 +1850,25 @@ void dJle_Pb_c::_create(JKRExpHeap* i_heap) {
int k = 0;
scrn = new J2DScreen();
JUT_ASSERT(VERSION_SELECT(2033, 2033, 2086, 2113), scrn != NULL);
JUT_ASSERT(VERSION_SELECT(2038, 2033, 2086, 2113), scrn != NULL);
scrn->set("wipe_01_01.blo", dComIfGp_getCameraResArchive());
scrn1 = new J2DScreen();
JUT_ASSERT(VERSION_SELECT(2037, 2037, 2090, 2117), scrn1 != NULL);
JUT_ASSERT(VERSION_SELECT(2042, 2037, 2090, 2117), scrn1 != NULL);
scrn1->set("wipe_01_02.blo", dComIfGp_getCameraResArchive());
scrn2 = new J2DScreen();
JUT_ASSERT(VERSION_SELECT(2041, 2041, 2094, 2121), scrn2 != NULL);
JUT_ASSERT(VERSION_SELECT(2046, 2041, 2094, 2121), scrn2 != NULL);
scrn2->set("hukidashi_08.blo", dComIfGp_getMsgArchive());
font0 = mDoExt_getMesgFont();
JUT_ASSERT(VERSION_SELECT(2045, 2045, 2098, 2125), font0 != NULL);
JUT_ASSERT(VERSION_SELECT(2050, 2045, 2098, 2125), font0 != NULL);
font1 = mDoExt_getRubyFont();
JUT_ASSERT(VERSION_SELECT(2048, 2048, 2102, 2129), font1 != NULL);
JUT_ASSERT(VERSION_SELECT(2053, 2048, 2102, 2129), font1 != NULL);
stick = new STControl(5, 2, 3, 2, 0.9f, 0.5f, 0, 0x2000);
JUT_ASSERT(VERSION_SELECT(2051, 2051, 2107, 2134), stick != NULL);
stick = new STControl(5, 2, 3, 2);
JUT_ASSERT(VERSION_SELECT(2056, 2051, 2107, 2134), stick != NULL);
mMsgIconFontMainPic = new J2DPicture("font_07_02.bti");
mMsgIconFontSubPic = new J2DPicture("font_07_02.bti");
@@ -1894,7 +1936,7 @@ void dJle_Pb_c::_create(JKRExpHeap* i_heap) {
JKRAramToMainRam(
dComIfGp_getPictureBoxData(mPictureSlotSortMap[i]),
(u8*)mPhotoBuffer[k],
0x2000
sizeof(card_pictdata)
);
j++;
k++;
@@ -1960,28 +2002,27 @@ void dJle_Pb_c::_gopen() {
messageSet(0xee5);
}
s16 counter = mFadeTimer;
if (counter >= 10) {
if (mFadeTimer >= 10) {
if (mImportedPhotoLoadReq->sync() != 0) {
dPbPhotoSlotData* dst = mPhotoBuffer[3];
memcpy(dst, mImportedPhotoLoadReq->getMemAddress(), 0x1EE0);
card_pictdata* pict = mPhotoBuffer[3];
memcpy(pict->tex_buffer, mImportedPhotoLoadReq->getMemAddress(), sizeof(pict->tex_buffer));
#if VERSION <= VERSION_JPN
DCFlushRangeNoSync(dst, 0x1EE0);
DCFlushRangeNoSync(pict->tex_buffer, sizeof(pict->tex_buffer));
#else
DCStoreRangeNoSync(dst, 0x1EE0);
DCStoreRangeNoSync(pict->tex_buffer, sizeof(pict->tex_buffer));
#endif
u8 picNo = dComIfGp_getGetPictureNum();
dst->mSnapResultId = photo_idx[picNo];
dst->mSnapResultDetail = 0;
dst->mPhotoFormat = GX_TF_CMPR;
pict->snap_result = photo_idx[picNo];
pict->snap_result_detail = 0;
pict->capture_format = GX_TF_CMPR;
dComIfGp_setScopeMesgStatus(fopMsgStts_UNKB_e);
mExecState = PB_EXEC_GET_MOVE_e;
mDoAud_seStart(JA_SE_ITM_SUBMENU_IN_2);
}
} else {
mFadeTimer = counter + 1;
mFadeTimer++;
getAlphaInc(fopMsgM_valueIncrease(10, mFadeTimer, 0));
}
@@ -2246,7 +2287,7 @@ void dJle_Pb_c::_delete(JKRExpHeap* i_heap) {
}
if (mImportedPhotoLoadReq != NULL) {
delete mImportedPhotoLoadReq;
delete mImportedPhotoLoadReq;
}
delete scrn;
@@ -2348,22 +2389,22 @@ static cPhs_State dPb_Create(msg_class* i_this) {
i_Pb->heap = dComIfGp_getExpHeap2D();
dComIfGp_setHeapLockFlag(6);
JUT_ASSERT(VERSION_SELECT(2725, 2725, 2796, 2823), i_Pb->heap != NULL);
JUT_ASSERT(VERSION_SELECT(2716, 2725, 2796, 2823), i_Pb->heap != NULL);
JKRHeap* oldHeap = mDoExt_setCurrentHeap(i_Pb->heap);
i_Pb->dPb_c = new dJle_Pb_c();
for(int i = 0; i < 4; i++) {
i_Pb->buffer[i] = (dPbPhotoSlotData*)i_Pb->heap->alloc(0x2000, 0x20);
JUT_ASSERT(VERSION_SELECT(2734, 2734, 2805, 2832), i_Pb->buffer[i] != NULL);
i_Pb->buffer[i] = (card_pictdata*)i_Pb->heap->alloc(sizeof(card_pictdata), 0x20);
JUT_ASSERT(VERSION_SELECT(2725, 2734, 2805, 2832), i_Pb->buffer[i] != NULL);
i_Pb->dPb_c->getMemory(i_Pb->buffer[i], i);
}
for(int i = 0; i < 4; i++) {
char* buffer = (char*)i_Pb->heap->alloc(1000, 4);
i_Pb->dPb_c->setTextArea(buffer, i);
JUT_ASSERT(VERSION_SELECT(2741, 2741, 2812, 2839), buffer != NULL);
JUT_ASSERT(VERSION_SELECT(2732, 2741, 2812, 2839), buffer != NULL);
}
i_Pb->dPb_c->_create(i_Pb->heap);
+34 -34
View File
@@ -1457,7 +1457,7 @@ int dSnap_GetFigRoomId(int tableIndex) {
/* 800CD00C-800CD068 .text __ct__9dSnap_ObjFv */
dSnap_Obj::dSnap_Obj() {
mActorPID = fpcM_ERROR_PROCESS_ID_e;
mPhoto = 0;
mPhotoNo = 0;
field_0x19 = 4;
field_0x1a = -1;
field_0x1b = 0;
@@ -1703,8 +1703,8 @@ void dSnap_Obj::SetGeoSph(const Vec& center, f32 radius) {
}
/* 800CDB68-800CDB94 .text SetInf__9dSnap_ObjFUcPC10fopAc_ac_cUcUcs */
void dSnap_Obj::SetInf(u8 photoIndex, const fopAc_ac_c* r5, u8 r6, u8 r7, s16 cullAngle) {
mPhoto = photoIndex;
void dSnap_Obj::SetInf(u8 photoNo, const fopAc_ac_c* r5, u8 r6, u8 r7, s16 cullAngle) {
mPhotoNo = photoNo;
mActorPID = fopAcM_GetID(const_cast<fopAc_ac_c*>(r5));
field_0x1a = r6;
field_0x19 = r7;
@@ -1736,8 +1736,8 @@ void dSnap_Obj::SetArea(s16 x, s16 y) {
}
/* 800CDC04-800CDC18 .text ChkPhoto__9dSnap_ObjFi */
bool dSnap_Obj::ChkPhoto(int r4) {
return mPhoto == r4 ? TRUE : FALSE;
bool dSnap_Obj::ChkPhoto(int photoNo) {
return mPhotoNo == photoNo ? TRUE : FALSE;
}
/* 800CDC18-800CDC40 .text ChkSuccess__9dSnap_ObjFlf */
@@ -1973,12 +1973,12 @@ void dSnap_packet::Judge() {
}
/* 800CE610-800CE6A4 .text FindPhoto__12dSnap_packetFii */
int dSnap_packet::FindPhoto(int r4, int r5) {
int dSnap_packet::FindPhoto(int r4, int photoNo) {
if (r4 < 0 || r4 >= field_0x14) {
return -1;
}
for (int col = r4; col < field_0x14; col++) {
if (m_tbl[col].m_obj.ChkPhoto(r5)) {
if (m_tbl[col].m_obj.ChkPhoto(photoNo)) {
return col;
}
}
@@ -1987,7 +1987,7 @@ int dSnap_packet::FindPhoto(int r4, int r5) {
/* 800CE6A4-800CE70C .text JudgePost__12dSnap_packetFv */
int dSnap_packet::JudgePost() {
int col = FindPhoto(0, 1);
int col = FindPhoto(0, DSNAP_TYPE_POST);
if (col == -1) {
return 0;
}
@@ -2000,7 +2000,7 @@ int dSnap_packet::JudgePost() {
/* 800CE70C-800CE77C .text JudgeBikutsuki__12dSnap_packetFv */
int dSnap_packet::JudgeBikutsuki() {
int col = FindPhoto(0, 2);
int col = FindPhoto(0, DSNAP_TYPE_BIKUTSUKI);
if (col == -1) {
return 0;
}
@@ -2013,11 +2013,11 @@ int dSnap_packet::JudgeBikutsuki() {
/* 800CE77C-800CE83C .text JudgeCoupleLook__12dSnap_packetFv */
int dSnap_packet::JudgeCoupleLook() {
int col1 = FindPhoto(0, 3);
int col1 = FindPhoto(0, DSNAP_TYPE_COUPLE_LOOK);
if (col1 == -1) {
return 0;
}
int col2 = FindPhoto(col1+1, 3);
int col2 = FindPhoto(col1+1, DSNAP_TYPE_COUPLE_LOOK);
if (col2 == -1) {
return 0;
}
@@ -2032,7 +2032,7 @@ int dSnap_packet::JudgeCoupleLook() {
/* 800CE83C-800CE8AC .text JudgeGF__12dSnap_packetFv */
int dSnap_packet::JudgeGF() {
int col = FindPhoto(0, 4);
int col = FindPhoto(0, DSNAP_TYPE_UNK04);
if (col == -1) {
return 0;
}
@@ -2045,7 +2045,7 @@ int dSnap_packet::JudgeGF() {
/* 800CE8AC-800CE96C .text JudgeGenzo__12dSnap_packetFv */
int dSnap_packet::JudgeGenzo() {
int col1 = FindPhoto(0, 5);
int col1 = FindPhoto(0, DSNAP_TYPE_UNK05);
if (col1 == -1) {
return 0;
}
@@ -2068,11 +2068,11 @@ int dSnap_packet::JudgeGenzo() {
/* 800CE96C-800CEA08 .text JudgeObasan4__12dSnap_packetFv */
int dSnap_packet::JudgeObasan4() {
int col1 = FindPhoto(0, 6);
int col1 = FindPhoto(0, DSNAP_TYPE_UNK06);
if (col1 == -1) {
return 0;
}
int col2 = FindPhoto(0, 5);
int col2 = FindPhoto(0, DSNAP_TYPE_UNK05);
if (col2 != -1) {
return 0;
}
@@ -2090,12 +2090,12 @@ int dSnap_packet::JudgeTestM() {
/* 800CEA10-800CEA80 .text JudgeGene__12dSnap_packetFv */
int dSnap_packet::JudgeGene() {
int col = FindPhoto(0, field_0x10);
int col = FindPhoto(0, mPhotoNo);
if (col == -1) {
return 0;
}
if (m_tbl[col].m_obj.ChkSuccess(4000, 0.5f)) {
return field_0x10;
return mPhotoNo;
} else {
return 0;
}
@@ -2110,17 +2110,17 @@ int dSnap_packet::JudgeFigure(int col) {
m_tbl[col].m_obj.mActorPID = m_tbl[col].m_obj.mActorPID;
#endif
if (field_0x10 >= 0xD0) {
if (mPhotoNo >= DSNAP_TYPE_LAST_INDEX) {
return 0;
}
if (field_0x10 >= 0xCF) {
if (mPhotoNo >= DSNAP_TYPE_UNKCF) {
return 0;
}
int minPixels;
f32 minRatio;
if (field_0x10 > 0x48) {
int tableIndex = dSnap_PhotoIndex2TableIndex(field_0x10);
if (mPhotoNo > DSNAP_TYPE_UNK48) {
int tableIndex = dSnap_PhotoIndex2TableIndex(mPhotoNo);
minPixels = l_CharaData[tableIndex].minPixels;
minRatio = l_CharaData[tableIndex].minRatio / 1000.0f;
} else {
@@ -2139,16 +2139,16 @@ int dSnap_packet::JudgeFigure(int col) {
mResultDetail |= 1;
}
return field_0x10;
return mPhotoNo;
}
/* 800CEB80-800CED0C .text SetResult__12dSnap_packetFv */
void dSnap_packet::SetResult() {
mResult = 0;
mResultDetail = 0;
u8 sp8[0xB];
bool sp8[ARRAY_SIZE(m_judge_tbl)];
for (int i = 0; i < ARRAY_SIZE(sp8); i++) {
sp8[i] = 0;
sp8[i] = false;
}
int r30 = -1;
for (int col = 0; col < field_0x14; col++) {
@@ -2156,22 +2156,22 @@ void dSnap_packet::SetResult() {
continue;
}
JUT_ASSERT(VERSION_SELECT(2273, 2325, 2327, 2327), 0 <= m_tbl[col].m_obj.GetPhoto() && m_tbl[col].m_obj.GetPhoto() < DSNAP_TYPE_LAST_INDEX);
if (m_tbl[col].m_obj.GetPhoto() < (s32)ARRAY_SIZE(sp8)) {
if (sp8[m_tbl[col].m_obj.GetPhoto()] != 0) {
if (m_tbl[col].m_obj.GetPhoto() < ARRAY_SSIZE(sp8)) {
if (sp8[m_tbl[col].m_obj.GetPhoto()]) {
continue;
}
if (m_judge_tbl[m_tbl[col].m_obj.GetPhoto()] != 0) {
field_0x10 = m_tbl[col].m_obj.GetPhoto();
if (m_judge_tbl[m_tbl[col].m_obj.GetPhoto()] != NULL) {
mPhotoNo = m_tbl[col].m_obj.GetPhoto();
mResult = (this->*m_judge_tbl[m_tbl[col].m_obj.GetPhoto()])();
r30 = m_tbl[col].m_obj.mCapturedPixels;
if (mResult != 0) {
return;
}
}
sp8[m_tbl[col].m_obj.GetPhoto()] = 1;
sp8[m_tbl[col].m_obj.GetPhoto()] = true;
} else {
if (r30 < m_tbl[col].m_obj.mCapturedPixels) {
field_0x10 = m_tbl[col].m_obj.GetPhoto();
mPhotoNo = m_tbl[col].m_obj.GetPhoto();
mResult = JudgeFigure(col);
r30 = m_tbl[col].m_obj.mCapturedPixels;
}
@@ -2215,15 +2215,15 @@ void dSnap_RegistFig(u8 photoIndex, fopAc_ac_c* actor, f32 f1, f32 f2, f32 f3) {
}
/* 800CEDF8-800CEFD4 .text dSnap_RegistFig__FUcP10fopAc_ac_cRC3Vecsfff */
void dSnap_RegistFig(u8 photoIndex, fopAc_ac_c* actor, const Vec& pos, s16 angleY, f32 f1, f32 f2, f32 f3) {
void dSnap_RegistFig(u8 photoNo, fopAc_ac_c* actor, const Vec& pos, s16 angleY, f32 f1, f32 f2, f32 f3) {
if (!l_snap.ChkReleaseShutter()) {
return;
}
if (photoIndex >= 0xCF) {
if (photoNo >= DSNAP_TYPE_UNKCF) {
return;
}
int tableIndex = dSnap_PhotoIndex2TableIndex(photoIndex);
int tableIndex = dSnap_PhotoIndex2TableIndex(photoNo);
const CharaData& chara = l_CharaData[tableIndex];
mDoMtx_stack_c::YrotS(angleY);
cXyz sp14;
@@ -2240,7 +2240,7 @@ void dSnap_RegistFig(u8 photoIndex, fopAc_ac_c* actor, const Vec& pos, s16 angle
int angY = angleY;
dSnap_Obj sp20;
sp20.SetGeo(sp14, chara.radius*f2, chara.height*f1, angY);
sp20.SetInf(photoIndex, actor, 0, 4, chara.cullAngle);
sp20.SetInf(photoNo, actor, 0, 4, chara.cullAngle);
dSnap_RegistSnapObj(sp20);
}
+4 -4
View File
@@ -1851,7 +1851,7 @@ void fopMsgM_arrowAnime(J2DPicture* i_iconPic, s16* param_2) {
}
/* 80031808-800319D8 .text selectCheck2__21fopMsgM_msgDataProc_cFP7J2DPaneiii */
int fopMsgM_msgDataProc_c::selectCheck2(J2DPane* param_1, int param_2, int param_3, int param_4) {
u8 fopMsgM_msgDataProc_c::selectCheck2(J2DPane* param_1, int param_2, int param_3, int param_4) {
field_0x264 = param_1->getWidth() / 2.0f;
field_0x268 = param_1->getHeight() / 2.0f;
field_0x278 = g_msgHIO.field_0x70;
@@ -1881,7 +1881,7 @@ int fopMsgM_msgDataProc_c::selectCheck2(J2DPane* param_1, int param_2, int param
}
/* 800319D8-80031C38 .text selectCheck3__21fopMsgM_msgDataProc_cFP7J2DPaneiii */
int fopMsgM_msgDataProc_c::selectCheck3(J2DPane* param_1, int param_2, int param_3, int param_4) {
u8 fopMsgM_msgDataProc_c::selectCheck3(J2DPane* param_1, int param_2, int param_3, int param_4) {
field_0x264 = param_1->getWidth() / 2.0f;
field_0x268 = param_1->getHeight() / 2.0f;
field_0x278 = g_msgHIO.field_0x70;
@@ -1919,7 +1919,7 @@ int fopMsgM_msgDataProc_c::selectCheck3(J2DPane* param_1, int param_2, int param
}
/* 80031C38-80031E04 .text selectCheckYoko__21fopMsgM_msgDataProc_cFP7J2DPaneiii */
int fopMsgM_msgDataProc_c::selectCheckYoko(J2DPane* param_1, int param_2, int param_3, int param_4) {
u8 fopMsgM_msgDataProc_c::selectCheckYoko(J2DPane* param_1, int param_2, int param_3, int param_4) {
field_0x264 = param_1->getWidth() / 2.0f;
field_0x268 = param_1->getHeight() / 2.0f;
field_0x278 = g_msgHIO.field_0x70;
@@ -1949,7 +1949,7 @@ int fopMsgM_msgDataProc_c::selectCheckYoko(J2DPane* param_1, int param_2, int pa
}
/* 80031E04-800320E0 .text inputNumber__21fopMsgM_msgDataProc_cFi */
int fopMsgM_msgDataProc_c::inputNumber(int param_1) {
u8 fopMsgM_msgDataProc_c::inputNumber(int param_1) {
s16 temp = dComIfGp_getMessageSetNumber();
bool temp2 = false;
+13 -13
View File
@@ -45,12 +45,12 @@ s32 mDoMemCdRWm_Store(CARDFileInfo* card, void* data, u32 size) {
memset(sTmpBuf, 0, sizeof(sTmpBuf));
card_savedata* save = (card_savedata*)sTmpBuf;
save->dataVersion = 0;
save->data_version = 0;
memcpy(save->gamedata, data, size);
#if VERSION != VERSION_PAL
save->saveCount = ++sSaveCount;
save->save_count = ++sSaveCount;
#else
save->saveCount = dComIfGs_getPalLanguage();
save->save_count = dComIfGs_getPalLanguage();
#endif
s32 csum = mDoMemCdRWm_CalcCheckSum(save, sizeof(card_savedata) - sizeof(save->csum));
save->csum = csum;
@@ -160,16 +160,16 @@ s32 mDoMemCdRWm_Restore(CARDFileInfo* card, void* dst, u32 size) {
memcpy(dst, save->gamedata, size);
#if VERSION != VERSION_PAL
sSaveCount = save->saveCount;
sSaveCount = save->save_count;
#else
if (save->saveCount > 4) {
if (save->save_count > 4) {
g_mDoMemCd_control.field_0x165B = 0;
} else {
// TODO: does save->saveCount have the language index in it on PAL?
g_mDoMemCd_control.field_0x165B = save->saveCount;
// TODO: does save->save_count have the language index in it on PAL?
g_mDoMemCd_control.field_0x165B = save->save_count;
}
#endif
mDoMemCd_setDataVersion(save->dataVersion);
mDoMemCd_setDataVersion(save->data_version);
if (!invalid && mDoMemCd_getPictDataPtr() != NULL) {
ret = CARDRead(card, mDoMemCd_getPictDataPtr(), 3 * 3 * sizeof(card_pictdata), 3 * sizeof(card_savedata));
if (ret != CARD_ERROR_READY) return ret;
@@ -192,11 +192,11 @@ s32 mDoMemCdRWm_Restore2(CARDFileInfo* card) {
if (ret != CARD_ERROR_READY) return ret;
}
if (save->saveCount > 4) {
if (save->save_count > 4) {
g_mDoMemCd_control.field_0x165B = 0;
} else {
// TODO: does save->saveCount have the language index in it on PAL?
g_mDoMemCd_control.field_0x165B = save->saveCount;
// TODO: does save->save_count have the language index in it on PAL?
g_mDoMemCd_control.field_0x165B = save->save_count;
}
return CARD_ERROR_READY;
@@ -321,14 +321,14 @@ u16 mDoMemCdRWm_CalcCheckSumPictData(void* p, u32 size) {
/* 8001A358-8001A39C .text mDoMemCdRWm_TestCheckSumPictData__FPv */
BOOL mDoMemCdRWm_TestCheckSumPictData(void* p) {
card_pictdata* save = (card_pictdata*)p;
u32 csum = mDoMemCdRWm_CalcCheckSumPictData(save->data, sizeof(save->data));
u32 csum = mDoMemCdRWm_CalcCheckSumPictData(save, sizeof(card_pictdata) - sizeof(save->csum));
return csum == save->csum;
}
/* 8001A39C-8001A3D0 .text mDoMemCdRWm_SetCheckSumPictData__FPUc */
void mDoMemCdRWm_SetCheckSumPictData(u8* p) {
card_pictdata* save = (card_pictdata*)p;
save->csum = mDoMemCdRWm_CalcCheckSumPictData(save->data, sizeof(save->data));
save->csum = mDoMemCdRWm_CalcCheckSumPictData(save, sizeof(card_pictdata) - sizeof(save->csum));
}
/* 8001A3D0-8001A408 .text mDoMemCdRWm_CalcCheckSumGameData__FPvUl */