summaryrefslogtreecommitdiff
path: root/src/d/d_picture_box.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/d/d_picture_box.cpp')
-rw-r--r--src/d/d_picture_box.cpp359
1 files changed, 220 insertions, 139 deletions
diff --git a/src/d/d_picture_box.cpp b/src/d/d_picture_box.cpp
index 86c90852..9560f344 100644
--- a/src/d/d_picture_box.cpp
+++ b/src/d/d_picture_box.cpp
@@ -46,10 +46,15 @@ void dPb_erasePicture() {
u8 selectPicture = dComIfGp_getSelectPicture();
u8 evReg = dComIfGs_getEventReg(dSv_event_flag_c::UNK_89FF);
if (selectPicture < 3) {
- dComIfGs_setEventReg(dSv_event_flag_c::UNK_89FF, evReg | (1 << (selectPicture)));
+ u8 evReg2 = evReg | (1 << selectPicture);
+ dComIfGs_setEventReg(dSv_event_flag_c::UNK_89FF, evReg2);
dComIfGp_setItemPictureNumCount(-1);
}
-
+#if VERSION >= VERSION_PAL
+ dComIfGp_onPictureFlag(0);
+ dComIfGp_onPictureFlag(1);
+ dComIfGp_onPictureFlag(2);
+#endif
}
/* 80225954-80225E88 .text screenSet__9dJle_Pb_cFv */
@@ -116,6 +121,17 @@ void dJle_Pb_c::screenSet() {
emp_white.set(((J2DPicture*) pane_emp[0].pane)->getWhite());
emp_black.set(((J2DPicture*) pane_emp[0].pane)->getBlack());
+#if VERSION >= VERSION_PAL
+ if (dComIfGs_getPalLanguage() != 0) {
+ char buf[0x10];
+ sprintf(buf, "wipe_in2_%d.bti", dComIfGs_getPalLanguage());
+ ((J2DPicture*)pane_rzom.pane)->changeTexture(buf, 0);
+ sprintf(buf, "wipe_out2_%d.bti", dComIfGs_getPalLanguage());
+ ((J2DPicture*)pane_lrtn.pane)->changeTexture(buf, 0);
+ }
+#endif
+
+#if VERSION > VERSION_JPN
pane_yrtn.mPosCenterOrig.x -= 12.0f;
fopMsgM_paneTrans(&pane_yrtn, 0.0f, 0.0f);
@@ -127,6 +143,7 @@ void dJle_Pb_c::screenSet() {
pane_czom.mPosCenterOrig.x -= 12.0f;
fopMsgM_paneTrans(&pane_czom,0.0, 0.0);
+#endif
shutterHide();
@@ -151,10 +168,21 @@ void dJle_Pb_c::screenSet2() {
fopMsgM_setPaneData(&pane_tx[2], scrn2->search('tx80'));
fopMsgM_setPaneData(&pane_tx[3], scrn2->search('tx81'));
- if(dComIfGs_getpConfig()->mRuby) {
+#if VERSION < VERSION_PAL
+ if(dComIfGs_getOptRuby()) {
pane_tx[0].pane->move(pane_tx[0].pane->getBounds().i.x, pane_tx[0].pane->getBounds().i.y - 4.0f);
pane_tx[2].pane->move(pane_tx[2].pane->getBounds().i.x, pane_tx[2].pane->getBounds().i.y - 4.0f);
}
+#else
+ if(dComIfGs_getOptRuby()) {
+ pane_tx[0].pane->move(pane_tx[0].pane->getBounds().i.x, pane_tx[0].pane->getBounds().i.y - 14.0f);
+ pane_tx[2].pane->move(pane_tx[2].pane->getBounds().i.x, pane_tx[2].pane->getBounds().i.y - 14.0f);
+ }
+ else {
+ pane_tx[0].pane->move(pane_tx[0].pane->getBounds().i.x, pane_tx[0].pane->getBounds().i.y - 10.0f);
+ pane_tx[2].pane->move(pane_tx[2].pane->getBounds().i.x, pane_tx[2].pane->getBounds().i.y - 10.0f);
+ }
+#endif
pane_tx[1].pane->move(pane_tx[1].pane->getBounds().i.x, pane_tx[1].pane->getBounds().i.y - 3.0f);
pane_tx[3].pane->move(pane_tx[3].pane->getBounds().i.x, pane_tx[3].pane->getBounds().i.y - 3.0f);
@@ -179,7 +207,7 @@ void dJle_Pb_c::screenSet2() {
}
/* 8022616C-802262CC .text cameraAlphaInc__9dJle_Pb_cFf */
-void dJle_Pb_c::cameraAlphaInc(float alpha) {
+void dJle_Pb_c::cameraAlphaInc(f32 alpha) {
for (s32 i = 0; i < 12; i++) {
fopMsgM_setNowAlpha(&pane_sb[i], alpha);
fopMsgM_setNowAlpha(&pane_st[i], alpha);
@@ -208,7 +236,7 @@ void dJle_Pb_c::cameraAlphaInc(float alpha) {
}
/* 802262CC-802264A0 .text browseAlphaInc__9dJle_Pb_cFf */
-void dJle_Pb_c::browseAlphaInc(float alpha) {
+void dJle_Pb_c::browseAlphaInc(f32 alpha) {
for (s32 i = 0; i < 12; i++) {
fopMsgM_setNowAlpha(&pane_sb[i], alpha);
fopMsgM_setNowAlpha(&pane_st[i], alpha);
@@ -251,7 +279,7 @@ void dJle_Pb_c::browseAlphaInc(float alpha) {
}
/* 802264A0-802265C0 .text getAlphaInc__9dJle_Pb_cFf */
-void dJle_Pb_c::getAlphaInc(float alpha) {
+void dJle_Pb_c::getAlphaInc(f32 alpha) {
fopMsgM_setNowAlpha(&pane_ct1, alpha);
fopMsgM_setNowAlpha(&pane_ct2, alpha);
@@ -276,7 +304,7 @@ void dJle_Pb_c::getAlphaInc(float alpha) {
}
/* 802265C0-80226A40 .text alphaDec__9dJle_Pb_cFf */
-void dJle_Pb_c::alphaDec(float scale) {
+void dJle_Pb_c::alphaDec(f32 scale) {
for (s32 i = 0; i < 12; i++) {
pane_sb[i].pane->setAlpha(pane_sb[i].mNowAlpha * scale);
pane_st[i].pane->setAlpha(pane_st[i].mNowAlpha * scale);
@@ -309,7 +337,7 @@ void dJle_Pb_c::alphaDec(float scale) {
/* 80226A40-80226B7C .text zoomScale__9dJle_Pb_cFv */
void dJle_Pb_c::zoomScale() {
- float cameraZoomScale = dComIfGp_getCameraZoomScale(0);
+ f32 cameraZoomScale = dComIfGp_getCameraZoomScale(0);
if (dComIfGp_getCameraZoomScale(0) < 1.0f) {
cameraZoomScale = 1.0f;
}
@@ -331,7 +359,7 @@ void dJle_Pb_c::zoomScale() {
}
}
else {
- float cameraZoomForcus = dComIfGp_getCameraZoomForcus(0);
+ f32 cameraZoomForcus = dComIfGp_getCameraZoomForcus(0);
mDoAud_seStart(JA_SE_TELESCOPE_ZOOM, NULL, cameraZoomForcus * 32768.0f + 0.5f);
}
}
@@ -496,7 +524,7 @@ void dJle_Pb_c::clickShutterMode() {
}
for(int i = 0; i < 12; i++) {
- float rotateAngle = pane_sb[i].mUserArea + g_meterHIO.field_0x24 * dVar8;
+ f32 rotateAngle = pane_sb[i].mUserArea + g_meterHIO.field_0x24 * dVar8;
pane_sb[i].pane->rotate(pane_sb[i].mSizeOrig.x / 2.0f, pane_sb[i].mSizeOrig.y / 2.0f, ROTATE_Z, rotateAngle);
fopMsgM_paneTrans(&pane_st[i], 0.0f, dVar8 * -(pane_st[i].mPosTopLeftOrig.y - pane_sb[i].mSizeOrig.y / 2.0f));
shutterLineRotateCenter(rotateAngle, i);
@@ -529,16 +557,25 @@ void dJle_Pb_c::selectMode() {
pictureNum = dComIfGs_getPictureNum();
dPbPhotoSlotData * dst = mPhotoBuffer[pictureNum];
+#if VERSION <= VERSION_JPN
+ dComIfGp_onPictureFlag(pictureNum);
+#else
dComIfGp_onPictureFlag(0);
dComIfGp_onPictureFlag(1);
dComIfGp_onPictureFlag(2);
+#endif
dst->mSnapResultId = dSnap_GetResult();
dst->mSnapResultDetail = dSnap_GetResultDetail();
dst->mPhotoFormat = mCaptureFormat;
memcpy(dst, mDoGph_getCaptureTextureBuffer(), 0x1ee0);
+
+#if VERSION <= VERSION_JPN
+ DCFlushRangeNoSync(dst, 0x1ee0);
+#else
DCStoreRangeNoSync(dst, 0x1ee0);
+#endif
dComIfGp_setItemPictureNumCount(1);
@@ -599,10 +636,12 @@ void dJle_Pb_c::cameraMode() {
else if (!dComIfGp_checkCameraAttentionStatus(0, dCamAttnStts_PICTO_BOX_AIM_e)) {
mExecState = PB_EXEC_CLOSE_e;
}
+#if VERSION > VERSION_JPN
else if (mDoGph_getCaptureStep() == -1) {
- daPy_getPlayerActorClass()->onNoResetFlg0(daPy_py_c::daPyFlg0_PHOTO_BOX_CANCEL);
+ daPy_getPlayerActorClass()->onPhotoBoxCancel();
mExecState = PB_EXEC_CLOSE_e;
}
+#endif
else {
zoomScale();
}
@@ -611,7 +650,7 @@ void dJle_Pb_c::cameraMode() {
}
/* 80227944-80227D34 .text pictureDraw__9dJle_Pb_cFUci */
-void dJle_Pb_c::pictureDraw(unsigned char mono_color_1_alpha, int img_index) {
+void dJle_Pb_c::pictureDraw(u8 mono_color_1_alpha, int img_index) {
s32 r30, r29;
u32 left, top, width, height;
f32 projv[7];
@@ -750,9 +789,16 @@ void dJle_Pb_c::pictureDecide() {
dComIfGp_setPictureResult(tmp->mSnapResultId);
dComIfGp_setPictureResultDetail(tmp->mSnapResultDetail);
- daPy_getPlayerActorClass()->onNoResetFlg0(daPy_py_c::daPyFlg0_PHOTO_BOX_CANCEL);
+#if VERSION <= VERSION_JPN
+ mDoAud_seStart(JA_SE_UTUSHIE_B_DEL_PIC);
+#endif
+ daPy_getPlayerActorClass()->onPhotoBoxCancel();
mExecState = PB_EXEC_CLOSE_e;
+#if VERSION <= VERSION_JPN
+ mDoAud_seStart(JA_SE_UTUSHIE_B_DEL_PIC);
+#else
mDoAud_seStart(JA_SE_UTUSHIE_B_SHOW);
+#endif
}
else {
existMessageSet(dComIfGs_getPictureNum());
@@ -784,8 +830,8 @@ void dJle_Pb_c::pictureErase() {
}
/* 80228184-80228284 .text pictureTransX__9dJle_Pb_cFfffff */
-void dJle_Pb_c::pictureTransX(float param_1, float param_2, float param_3, float param_4, float param_5) {
- float y = param_5;
+void dJle_Pb_c::pictureTransX(f32 param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5) {
+ f32 y = param_5;
for (int i = 0; i < 3; i++) {
fopMsgM_paneTrans(&pane_no[i], param_1, 0.0f);
fopMsgM_paneTrans(&pane_nob[i], param_1, 0.0f);
@@ -861,7 +907,7 @@ void dJle_Pb_c::shutterChange() {
s16 shutterTime2 = shutterTime << 1;
s16 shutterCounter = mShutterCounter;
- float f29;
+ f32 f29;
if (shutterCounter < shutterTime) {
mShutterCounter = shutterCounter + 1;
f29 = fopMsgM_valueIncrease(shutterTime, mShutterCounter, 0);
@@ -883,7 +929,7 @@ void dJle_Pb_c::shutterChange() {
}
for (int i = 0; i < 12; i++) {
- float rotateAngle = pane_sb[i].mUserArea + g_meterHIO.field_0x24 * f29;
+ f32 rotateAngle = pane_sb[i].mUserArea + g_meterHIO.field_0x24 * f29;
pane_sb[i].pane->rotate(
pane_sb[i].mSizeOrig.x / 2.0f,
pane_sb[i].mSizeOrig.y / 2.0f,
@@ -926,9 +972,11 @@ void dJle_Pb_c::moveCamera() {
else {
cameraMode();
+#if VERSION > VERSION_DEMO
if (mModeSubState == PB_SUB_CONFIRM_e) {
camera->mCamera.Stay();
}
+#endif
if (dComIfGs_getPictureNum() < 3) {
dComIfGp_setDoStatusForce(dActStts_TAKE_PHOTO_e);
@@ -1050,7 +1098,7 @@ void dJle_Pb_c::selectBrowse() {
(CPad_CHECK_TRIG_Y(0) && dComIfGs_getSelectItem(1) == dInvSlot_CAMERA_e) ||
(CPad_CHECK_TRIG_Z(0) && dComIfGs_getSelectItem(2) == dInvSlot_CAMERA_e)
) {
- daPy_getPlayerActorClass()->onNoResetFlg0(daPy_py_c::daPyFlg0_PHOTO_BOX_CANCEL);
+ daPy_getPlayerActorClass()->onPhotoBoxCancel();
dComIfGp_setPictureStatus(0);
mDoAud_seStart(JA_SE_UTUSHIE_B_LEAVE_PIC);
mExecState = PB_EXEC_CLOSE_e;
@@ -1118,18 +1166,28 @@ void dJle_Pb_c::getBrowse() {
(CPad_CHECK_TRIG_Y(0) && dComIfGs_getSelectItem(1) == dInvSlot_CAMERA_e) ||
(CPad_CHECK_TRIG_Z(0) && dComIfGs_getSelectItem(2) == dInvSlot_CAMERA_e)
) {
+#if VERSION <= VERSION_JPN
+ u8 pictureNum = dComIfGs_getPictureNum();
+ dComIfGp_onPictureFlag(pictureNum);
+#else
dComIfGp_onPictureFlag(0);
dComIfGp_onPictureFlag(1);
dComIfGp_onPictureFlag(2);
+#endif
memcpy(mPhotoBuffer[dComIfGs_getPictureNum()], mPhotoBuffer[3], 0x2000);
+
+#if VERSION <= VERSION_JPN
+ DCFlushRangeNoSync(mPhotoBuffer[dComIfGs_getPictureNum()], 0x2000);
+#else
DCStoreRangeNoSync(mPhotoBuffer[dComIfGs_getPictureNum()], 0x2000);
+#endif
dComIfGp_setItemPictureNumCount(1);
mPhotoSlotOccupied[dComIfGs_getPictureNum()] = 1;
- daPy_getPlayerActorClass()->onNoResetFlg0(daPy_py_c::daPyFlg0_PHOTO_BOX_CANCEL);
+ daPy_getPlayerActorClass()->onPhotoBoxCancel();
dComIfGp_setPictureStatus(0);
@@ -1244,7 +1302,7 @@ void dJle_Pb_c::changeCameraToBrowse() {
}
/* 80229430-80229520 .text setColorInit__9dJle_Pb_cFUc */
-void dJle_Pb_c::setColorInit(unsigned char param_1) {
+void dJle_Pb_c::setColorInit(u8 param_1) {
((J2DPicture *)pane_icn[param_1].pane)->setWhite(icn_white);
((J2DPicture *)pane_emp[param_1].pane)->setWhite(emp_white);
((J2DPicture *)pane_emp[param_1].pane)->setBlack(emp_black);
@@ -1259,7 +1317,7 @@ void dJle_Pb_c::setColorInit(unsigned char param_1) {
}
/* 80229520-80229980 .text setColorAnime__9dJle_Pb_cFUc */
-void dJle_Pb_c::setColorAnime(unsigned char param_1) {
+void dJle_Pb_c::setColorAnime(u8 param_1) {
JUtility::TColor icnWhite, empWhite, empBlack;
pane_icn[param_1].mUserArea++;
@@ -1268,7 +1326,7 @@ void dJle_Pb_c::setColorAnime(unsigned char param_1) {
}
int frame = pane_icn[param_1].mUserArea;
- float t;
+ f32 t;
if (frame < 20) {
t = fopMsgM_valueIncrease(20, frame, 0);
} else {
@@ -1311,7 +1369,11 @@ void dJle_Pb_c::changeData() {
mPhotoSlotOccupied[i] = 0;
mPhotoSlotOccupied[j] = 1;
memcpy(mPhotoBuffer[j], mPhotoBuffer[i], 0x2000);
+#if VERSION <= VERSION_JPN
+ DCFlushRangeNoSync(mPhotoBuffer[j], 0x2000);
+#else
DCStoreRangeNoSync(mPhotoBuffer[j], 0x2000);
+#endif
}
mDoMemCdRWm_SetCheckSumPictData((u8*)mPhotoBuffer[i]);
JKRMainRamToAram((u8*)mPhotoBuffer[i], dComIfGp_getPictureBoxData(j), 0x2000, EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1);
@@ -1323,7 +1385,7 @@ void dJle_Pb_c::changeData() {
/* 80229A7C-80229AF4 .text label_sort__9dJle_Pb_cFv */
bool dJle_Pb_c::label_sort() {
- unsigned char count = 0;
+ u8 count = 0;
for (int i = 0; i < 3; i++) {
mPictureSlotSortMap[i] = -1;
@@ -1350,21 +1412,21 @@ u8 dJle_Pb_c::getPicLabelData(u8 param_1) {
}
/* 80229B58-80229D48 .text shutterLineRotateCenter__9dJle_Pb_cFfi */
-void dJle_Pb_c::shutterLineRotateCenter(float param_1, int param_2) {
- float sin1;
- float cos1;
- float cos2;
- float sin2;
- float angle;
-
- float sin3;
- float cos3;
- float cos4;
- float sin4;
-
- float x1;
- float y;
- float x2;
+void dJle_Pb_c::shutterLineRotateCenter(f32 param_1, int param_2) {
+ f32 sin1;
+ f32 cos1;
+ f32 cos2;
+ f32 sin2;
+ f32 sin3;
+ f32 cos3;
+ f32 cos4;
+ f32 sin4;
+
+ f32 angle;
+
+ f32 x1;
+ f32 y;
+ f32 x2;
x1 = pane_st[param_2].mPosTopLeftOrig.x + pane_sb[param_2].mSizeOrig.x / 2.0f;
@@ -1376,43 +1438,39 @@ void dJle_Pb_c::shutterLineRotateCenter(float param_1, int param_2) {
sin1 = sin(angle);
cos1 = cos(angle);
+ f32 f26 = x1 * cos1 - y * sin1;
cos2 = cos(angle);
sin2 = sin(angle);
+ f32 f25 = x1 * sin2 + y * cos2;
sin3 = sin(angle);
cos3 = cos(angle);
+ f32 f27 = x2 * cos3 - y * sin3;
cos4 = cos(angle);
sin4 = sin(angle);
+ f32 f1 = x2 * sin4 + y * cos4;
- float temp;
- temp = x1 * cos1 - y * sin1;
- mShutterLineX1[param_2] = temp + pane_no[0].mPosCenterOrig.x;
-
- temp = x1 * sin2 + y * cos2;
- mShutterLineY1[param_2] = temp + pane_no[0].mPosCenterOrig.y;
-
- temp = x2 * cos3 - y * sin3;
- mShutterLineX2[param_2] = temp + pane_no[0].mPosCenterOrig.x;
-
- temp = x2 * sin4 + y * cos4;
- mShutterLineY2[param_2] = temp + pane_no[0].mPosCenterOrig.y;
+ mShutterLineX1[param_2] = f26 + pane_no[0].mPosCenterOrig.x;
+ mShutterLineY1[param_2] = f25 + pane_no[0].mPosCenterOrig.y;
+ mShutterLineX2[param_2] = f27 + pane_no[0].mPosCenterOrig.x;
+ mShutterLineY2[param_2] = f1 + pane_no[0].mPosCenterOrig.y;
}
/* 80229D48-80229F3C .text shutterLineRotateInitPos__9dJle_Pb_cFfi */
-void dJle_Pb_c::shutterLineRotateInitPos(float param_1, int param_2) {
- float sin1;
- float cos1;
- float cos2;
- float sin2;
- float angle;
-
- float sin3;
- float cos3;
- float cos4;
- float sin4;
-
- float x1;
- float y;
- float x2;
+void dJle_Pb_c::shutterLineRotateInitPos(f32 param_1, int param_2) {
+ f32 sin1;
+ f32 cos1;
+ f32 cos2;
+ f32 sin2;
+ f32 sin3;
+ f32 cos3;
+ f32 cos4;
+ f32 sin4;
+
+ f32 angle;
+
+ f32 x1;
+ f32 y;
+ f32 x2;
x1 = pane_st[param_2].mPosTopLeftOrig.x + pane_sb[param_2].mSizeOrig.x / 2.0f;
@@ -1424,40 +1482,36 @@ void dJle_Pb_c::shutterLineRotateInitPos(float param_1, int param_2) {
sin1 = sin(angle);
cos1 = cos(angle);
+ f32 f26 = x1 * cos1 - y * sin1;
cos2 = cos(angle);
sin2 = sin(angle);
+ f32 f25 = x1 * sin2 + y * cos2;
sin3 = sin(angle);
cos3 = cos(angle);
+ f32 f27 = x2 * cos3 - y * sin3;
cos4 = cos(angle);
sin4 = sin(angle);
+ f32 f1 = x2 * sin4 + y * cos4;
- float temp;
- temp = x1 * cos1 - y * sin1;
- mShutterLineX1[param_2] = temp + pane_sb[param_2].mPosCenterOrig.x;
-
- temp = x1 * sin2 + y * cos2;
- mShutterLineY1[param_2] = temp + pane_sb[param_2].mPosCenterOrig.y;
-
- temp = x2 * cos3 - y * sin3;
- mShutterLineX2[param_2] = temp + pane_sb[param_2].mPosCenterOrig.x;
-
- temp = x2 * sin4 + y * cos4;
- mShutterLineY2[param_2] = temp + pane_sb[param_2].mPosCenterOrig.y;
+ mShutterLineX1[param_2] = f26 + pane_sb[param_2].mPosCenterOrig.x;
+ mShutterLineY1[param_2] = f25 + pane_sb[param_2].mPosCenterOrig.y;
+ mShutterLineX2[param_2] = f27 + pane_sb[param_2].mPosCenterOrig.x;
+ mShutterLineY2[param_2] = f1 + pane_sb[param_2].mPosCenterOrig.y;
}
/* 80229F3C-8022A09C .text shutterLineMove__9dJle_Pb_cFv */
void dJle_Pb_c::shutterLineMove() {
- float intersectionX[12];
- float intersectionY[12];
-
- float x1;
- float xNext;
- float determinant;
- float a1;
- float b1;
- float b2;
- float c1;
- float x2OrA2;
+ f32 intersectionX[12];
+ f32 intersectionY[12];
+
+ f32 x1;
+ f32 xNext;
+ f32 determinant;
+ f32 a1;
+ f32 b1;
+ f32 b2;
+ f32 c1;
+ f32 x2OrA2;
for (int i = 0; i < 12; i++) {
u32 next = (i == 11) ? 0 : i + 1;
@@ -1466,7 +1520,7 @@ void dJle_Pb_c::shutterLineMove() {
x2OrA2 = mShutterLineX2[i];
if (x1 != x2OrA2) {
- float y1 = mShutterLineY1[i];
+ f32 y1 = mShutterLineY1[i];
a1 = -(y1 - mShutterLineY2[i]) /
(x1 - x2OrA2);
@@ -1483,7 +1537,7 @@ void dJle_Pb_c::shutterLineMove() {
x2OrA2 = mShutterLineX2[next];
if (xNext != x2OrA2) {
- float nextY = mShutterLineY1[next];
+ f32 nextY = mShutterLineY1[next];
x2OrA2 = -(nextY - mShutterLineY2[next]) /
(xNext - x2OrA2);
@@ -1517,7 +1571,7 @@ void dJle_Pb_c::shutterLineMove() {
/* 8022A09C-8022A120 .text shutterLineDraw__9dJle_Pb_cFUc */
-void dJle_Pb_c::shutterLineDraw(unsigned char shutter_alpha) {
+void dJle_Pb_c::shutterLineDraw(u8 shutter_alpha) {
JUtility::TColor shutterLineColor(0xFF, 0xFF, 0xFF, shutter_alpha);
for (int i = 0; i < 12; i++) {
J2DDrawLine(mShutterLineX1[i], mShutterLineY1[i], mShutterLineX2[i], mShutterLineY2[i], shutterLineColor, 0xc);
@@ -1525,7 +1579,7 @@ void dJle_Pb_c::shutterLineDraw(unsigned char shutter_alpha) {
}
/* 8022A120-8022A7A8 .text messageSet__9dJle_Pb_cFUl */
-void dJle_Pb_c::messageSet(unsigned long msgNo) {
+void dJle_Pb_c::messageSet(u32 msgNo) {
fopMsgM_msgGet_c msgGet;
char colorTag[0x1C];
char whiteTag[0x1C];
@@ -1559,7 +1613,7 @@ void dJle_Pb_c::messageSet(unsigned long msgNo) {
}
head_p = msgGet.getMesgHeader(msgNo);
- JUT_ASSERT(0x759, head_p);
+ JUT_ASSERT(VERSION_SELECT(1836, 1836, 1881, 1908), head_p);
const char* text = msgGet.getMessage(head_p);
mMsgEntry = msgGet.getMesgEntry(head_p);
@@ -1608,7 +1662,7 @@ void dJle_Pb_c::messageSet(unsigned long msgNo) {
mMsgLineCount = mMsgDataProc.lineCount;
mMsgDataProc.lineCount = 0;
- f32 yShift = ((2 - mMsgLineCount) * (((J2DTextBox*)pane_tx[0].pane)->getLineSpace() / 2.0f));
+ f32 yShift = ((VERSION_SELECT(1, 1, 2, 2) - mMsgLineCount) * (((J2DTextBox*)pane_tx[0].pane)->getLineSpace() / 2.0f));
for (int i = 0; i < 4; i++) {
((J2DTextBox*)pane_tx[i].pane)->shiftSet(0.0f, yShift);
@@ -1629,14 +1683,14 @@ void dJle_Pb_c::messageSet(unsigned long msgNo) {
if (icon == 20) {
mChoiceCursorX0 = (int)(
((J2DTextBox*)pane_tx[0].pane)->mBounds.i.x +
- (float)mMsgDataProc.getIconPosX(i)
+ (f32)mMsgDataProc.getIconPosX(i)
);
mChoiceCursorY = (int)(
((J2DTextBox*)pane_tx[0].pane)->mBounds.i.y +
- (float)(
+ (f32)(
halfLine *
- ((2 - mMsgLineCount) +
+ ((VERSION_SELECT(1, 1, 2, 2) - mMsgLineCount) +
mMsgDataProc.getIconPosY(i) * 2)
)
);
@@ -1655,12 +1709,12 @@ void dJle_Pb_c::messageSet(unsigned long msgNo) {
} else if (icon == 0x15) {
mChoiceCursorX1 = (int)(
((J2DTextBox*)pane_tx[0].pane)->mBounds.i.x +
- (float)mMsgDataProc.getIconPosX(i)
+ (f32)mMsgDataProc.getIconPosX(i)
);
mChoiceCursorYAlt = (int)(
((J2DTextBox*)pane_tx[0].pane)->mBounds.i.y +
- (float)(
+ (f32)(
halfLine *
((1 - mMsgLineCount) +
mMsgDataProc.getIconPosY(i) * 2)
@@ -1687,7 +1741,7 @@ void dJle_Pb_c::messageSet(unsigned long msgNo) {
}
}
- if (dComIfGs_getpConfig()->mRuby) {
+ if (dComIfGs_getOptRuby()) {
pane_tx[1].pane->hide();
pane_tx[3].pane->hide();
} else {
@@ -1701,7 +1755,7 @@ void dJle_Pb_c::messageSet(unsigned long msgNo) {
}
/* 8022A7A8-8022A810 .text remainMessageSet__9dJle_Pb_cFUc */
-void dJle_Pb_c::remainMessageSet(unsigned char param_1) {
+void dJle_Pb_c::remainMessageSet(u8 param_1) {
if (param_1 == 0) {
messageSet(0xed9);
}
@@ -1717,7 +1771,7 @@ void dJle_Pb_c::remainMessageSet(unsigned char param_1) {
}
/* 8022A810-8022A878 .text existMessageSet__9dJle_Pb_cFUc */
-void dJle_Pb_c::existMessageSet(unsigned char param_1) {
+void dJle_Pb_c::existMessageSet(u8 param_1) {
if (param_1 == 0) {
messageSet(0xee1);
}
@@ -1754,25 +1808,25 @@ void dJle_Pb_c::_create(JKRExpHeap* i_heap) {
int k = 0;
scrn = new J2DScreen();
- JUT_ASSERT(0x826, scrn != NULL);
+ JUT_ASSERT(VERSION_SELECT(2033, 2033, 2086, 2113), scrn != NULL);
scrn->set("wipe_01_01.blo", dComIfGp_getCameraResArchive());
scrn1 = new J2DScreen();
- JUT_ASSERT(0x82a, scrn1 != NULL);
+ JUT_ASSERT(VERSION_SELECT(2037, 2037, 2090, 2117), scrn1 != NULL);
scrn1->set("wipe_01_02.blo", dComIfGp_getCameraResArchive());
scrn2 = new J2DScreen();
- JUT_ASSERT(0x82e, scrn2 != NULL);
+ JUT_ASSERT(VERSION_SELECT(2041, 2041, 2094, 2121), scrn2 != NULL);
scrn2->set("hukidashi_08.blo", dComIfGp_getMsgArchive());
font0 = mDoExt_getMesgFont();
- JUT_ASSERT(0x832, font0 != NULL);
+ JUT_ASSERT(VERSION_SELECT(2045, 2045, 2098, 2125), font0 != NULL);
font1 = mDoExt_getRubyFont();
- JUT_ASSERT(0x836, font1 != NULL);
+ JUT_ASSERT(VERSION_SELECT(2048, 2048, 2102, 2129), font1 != NULL);
stick = new STControl(5, 2, 3, 2, 0.9f, 0.5f, 0, 0x2000);
- JUT_ASSERT(0x83b, stick != NULL);
+ JUT_ASSERT(VERSION_SELECT(2051, 2051, 2107, 2134), stick != NULL);
mMsgIconFontMainPic = new J2DPicture("font_07_02.bti");
mMsgIconFontSubPic = new J2DPicture("font_07_02.bti");
@@ -1868,7 +1922,9 @@ void dJle_Pb_c::_copen() {
}
dComIfGp_setDoStatusForce(dActStts_BLANK_e);
+#if VERSION > VERSION_DEMO
dComIfGp_setAStatusForce(dActStts_BLANK_e);
+#endif
up_downIconMove();
}
@@ -1893,7 +1949,9 @@ void dJle_Pb_c::_bopen() {
}
dComIfGp_setDoStatusForce(dActStts_BLANK_e);
+#if VERSION > VERSION_DEMO
dComIfGp_setAStatusForce(dActStts_BLANK_e);
+#endif
}
/* 8022B0F8-8022B214 .text _gopen__9dJle_Pb_cFv */
@@ -1907,12 +1965,16 @@ void dJle_Pb_c::_gopen() {
if (mImportedPhotoLoadReq->sync() != 0) {
dPbPhotoSlotData* dst = mPhotoBuffer[3];
memcpy(dst, mImportedPhotoLoadReq->getMemAddress(), 0x1EE0);
+#if VERSION <= VERSION_JPN
+ DCFlushRangeNoSync(dst, 0x1EE0);
+#else
DCStoreRangeNoSync(dst, 0x1EE0);
+#endif
u8 picNo = dComIfGp_getGetPictureNum();
dst->mSnapResultId = photo_idx[picNo];
dst->mSnapResultDetail = 0;
- dst->mPhotoFormat = 0x0E;
+ dst->mPhotoFormat = GX_TF_CMPR;
dComIfGp_setScopeMesgStatus(fopMsgStts_UNKB_e);
mExecState = PB_EXEC_GET_MOVE_e;
@@ -1938,8 +2000,10 @@ void dJle_Pb_c::_close() {
dMenu_flagSet(0);
}
+#if VERSION > VERSION_DEMO
dComIfGp_setDoStatusForce(dActStts_BLANK_e);
dComIfGp_setAStatusForce(dActStts_BLANK_e);
+#endif
}
/* 8022B298-8022B2E0 .text _cmove__9dJle_Pb_cFv */
@@ -1969,9 +2033,7 @@ void dJle_Pb_c::_gmove() {
/* 8022B320-8022B9E8 .text draw__9dJle_Pb_cFv */
void dJle_Pb_c::draw() {
- /* Fakematch + regswap */
- J2DOrthoGraph* graph;
-
+ /* Nonmatching - retail-only regalloc */
if (mExecState != PB_EXEC_CLOSE_e && mExecState != PB_EXEC_CLOSED_e) {
for (int i = 0; i < 12; i++) {
fopMsgM_setAlpha(&pane_sb[i]);
@@ -2026,7 +2088,7 @@ void dJle_Pb_c::draw() {
fopMsgM_setAlpha(&pane_tx[3]);
}
- graph = dComIfGp_getCurrentGrafPort();
+ J2DOrthoGraph* graph = dComIfGp_getCurrentGrafPort();
graph->setPort();
if (mModeSwapActive == 0) {
@@ -2037,16 +2099,19 @@ void dJle_Pb_c::draw() {
scrn->draw(0.0f, 0.0f, graph);
scrn2->draw(0.0f, 0.0f, graph);
- fopMsgM_pane_alpha_class* base = &pane_tx[0];
if (mExecState != PB_EXEC_CLOSED_e) {
if (mViewMode == PB_VIEW_GET_e) {
+#if VERSION == VERSION_DEMO
+ pictureDraw(pane_tx[0].mNowAlpha, 3);
+#else
if ((mExecState == PB_EXEC_GET_MOVE_e || mExecState == PB_EXEC_CLOSE_e) && mImportedPhotoLoadReq->sync() != 0) {
- pictureDraw(base->mNowAlpha, 3);
+ pictureDraw(pane_tx[0].mNowAlpha, 3);
}
+#endif
} else if (mViewMode == PB_VIEW_BROWSE_e) {
for (int i = 0; i < 3; i++) {
if (mPhotoSlotOccupied[i] != 0) {
- pictureDraw(base->mNowAlpha, i);
+ pictureDraw(pane_tx[0].mNowAlpha, i);
}
}
}
@@ -2060,8 +2125,8 @@ void dJle_Pb_c::draw() {
mMsgSelectArrowPic,
mChoiceCursorX0 + mSelectedChoiceIndex * (mChoiceCursorX1 - mChoiceCursorX0),
mChoiceCursorY,
- g_msgHIO.field_0x70,
- g_msgHIO.field_0x70
+ VERSION_SELECT(29.0f, 29.0f, g_msgHIO.field_0x70, g_msgHIO.field_0x70),
+ VERSION_SELECT(29.0f, 29.0f, g_msgHIO.field_0x70, g_msgHIO.field_0x70)
);
} else {
u8 iconNo = mMsgDataProc.field_0x281[idx];
@@ -2072,13 +2137,17 @@ void dJle_Pb_c::draw() {
u32 color = mMsgDataProc.getIconColor(idx);
J2DTextBox* base = (J2DTextBox*)pane_tx[0].pane;
f32 lineSpace = base->getLineSpace();
+ int r9 = (int)(lineSpace / 2.0f);
+ int r5 = posX + base->mBounds.i.x;
+ f32 f1 = r9 * ((VERSION_SELECT(1, 1, 2, 2) - mMsgLineCount) + posY * 2);
+ int r6 = f1 + base->mBounds.i.y;
u8 alpha = base->getAlpha();
fopMsgM_outFontDraw(
mMsgIconFontMainPic,
mMsgIconFontSubPic,
- posX + base->mBounds.i.x,
- (int)(lineSpace / 2.0f) * ((2 - mMsgLineCount) + posY * 2) + base->resize__getMinY(),
+ r5,
+ r6,
color,
&mMsgIconDrawState,
alpha,
@@ -2093,9 +2162,13 @@ void dJle_Pb_c::draw() {
if (mExecState != PB_EXEC_CLOSED_e) {
if (mViewMode == PB_VIEW_GET_e) {
+#if VERSION == VERSION_DEMO
+ pictureDraw(pane_tx[0].mNowAlpha, 3);
+#else
if ((mExecState == PB_EXEC_GET_MOVE_e || mExecState == PB_EXEC_CLOSE_e) && mImportedPhotoLoadReq->sync() != 0) {
pictureDraw(pane_tx[0].mNowAlpha, 3);
}
+#endif
} else if (mViewMode == PB_VIEW_BROWSE_e) {
for (int i = 0; i < 3; i++) {
if (mPhotoSlotOccupied[i] != 0) {
@@ -2114,8 +2187,8 @@ void dJle_Pb_c::draw() {
mMsgSelectArrowPic,
mChoiceCursorX0 + mSelectedChoiceIndex * (mChoiceCursorX1 - mChoiceCursorX0),
mChoiceCursorY,
- g_msgHIO.field_0x70,
- g_msgHIO.field_0x70
+ VERSION_SELECT(29.0f, 29.0f, g_msgHIO.field_0x70, g_msgHIO.field_0x70),
+ VERSION_SELECT(29.0f, 29.0f, g_msgHIO.field_0x70, g_msgHIO.field_0x70)
);
} else {
u8 iconNo = mMsgDataProc.field_0x281[idx];
@@ -2126,13 +2199,17 @@ void dJle_Pb_c::draw() {
u32 color = mMsgDataProc.getIconColor(idx);
J2DTextBox* base = (J2DTextBox*)pane_tx[0].pane;
f32 lineSpace = base->getLineSpace();
+ int r9 = (int)(lineSpace / 2.0f);
+ int r5 = posX + base->mBounds.i.x;
+ f32 f1 = r9 * ((VERSION_SELECT(1, 1, 2, 2) - mMsgLineCount) + posY * 2);
+ int r6 = f1 + base->mBounds.i.y;
u8 alpha = base->getAlpha();
fopMsgM_outFontDraw(
mMsgIconFontMainPic,
mMsgIconFontSubPic,
- posX + base->mBounds.i.x,
- (int)(lineSpace / 2.0f) * ((2 - mMsgLineCount) + posY * 2) + base->resize__getMinY(),
+ r5,
+ r6,
color,
&mMsgIconDrawState,
alpha,
@@ -2154,7 +2231,11 @@ void dJle_Pb_c::_delete(JKRExpHeap* i_heap) {
}
if (mDoGph_getCaptureStep()) {
+#if VERSION == VERSION_DEMO
+ mDoGph_setCaptureStep(6);
+#else
mDoGph_CaptureCansel();
+#endif
}
mDoExt_removeMesgFont();
@@ -2186,33 +2267,32 @@ static BOOL dPb_Draw(sub_pb_class* i_this) {
static BOOL dPb_Execute(sub_pb_class* i_this) {
JKRHeap* oldHeap = mDoExt_setCurrentHeap(i_this->heap);
dJle_Pb_c* a_this = i_this->dPb_c;
- u8 bVar1 = a_this->mExecState;
- if (bVar1 == PB_EXEC_CAMERA_OPEN_e) {
+ if (a_this->getStatus() == PB_EXEC_CAMERA_OPEN_e) {
a_this->_copen();
}
- else if (bVar1 == PB_EXEC_BROWSE_OPEN_e) {
+ else if (a_this->getStatus() == PB_EXEC_BROWSE_OPEN_e) {
a_this->_bopen();
}
- else if (bVar1 == PB_EXEC_GET_OPEN_e) {
+ else if (a_this->getStatus() == PB_EXEC_GET_OPEN_e) {
a_this->_gopen();
}
- else if (bVar1 == PB_EXEC_CAMERA_MOVE_e) {
+ else if (a_this->getStatus() == PB_EXEC_CAMERA_MOVE_e) {
a_this->_cmove();
dComIfGp_onCameraAttentionStatus(0, dCamAttnStts_SUBJECT_e);
}
- else if (bVar1 == PB_EXEC_BROWSE_MOVE_e) {
+ else if (a_this->getStatus() == PB_EXEC_BROWSE_MOVE_e) {
a_this->_bmove();
}
- else if (bVar1 == PB_EXEC_GET_MOVE_e) {
+ else if (a_this->getStatus() == PB_EXEC_GET_MOVE_e) {
a_this->_gmove();
}
- else if (bVar1 == PB_EXEC_CLOSE_e) {
+ else if (a_this->getStatus() == PB_EXEC_CLOSE_e) {
a_this->_close();
- if (i_this->dPb_c->mExecState == PB_EXEC_CLOSED_e) {
+ if (i_this->dPb_c->getStatus() == PB_EXEC_CLOSED_e) {
i_this->mStatus = fopMsgStts_BOX_CLOSED_e;
}
}
- else if (bVar1 == PB_EXEC_CLOSED_e && i_this->mStatus == fopMsgStts_MSG_DESTROYED_e) {
+ else if (a_this->getStatus() == PB_EXEC_CLOSED_e && i_this->mStatus == fopMsgStts_MSG_DESTROYED_e) {
fopMsgM_Delete(i_this);
}
@@ -2268,7 +2348,7 @@ static cPhs_State dPb_Create(msg_class* i_this) {
i_Pb->heap = dComIfGp_getExpHeap2D();
dComIfGp_setHeapLockFlag(6);
- JUT_ASSERT(0xaec, i_Pb->heap != NULL);
+ JUT_ASSERT(VERSION_SELECT(2725, 2725, 2796, 2823), i_Pb->heap != NULL);
JKRHeap* oldHeap = mDoExt_setCurrentHeap(i_Pb->heap);
@@ -2276,13 +2356,14 @@ static cPhs_State dPb_Create(msg_class* i_this) {
for(int i = 0; i < 4; i++) {
i_Pb->buffer[i] = (dPbPhotoSlotData*)i_Pb->heap->alloc(0x2000, 0x20);
- JUT_ASSERT(0xaf5, i_Pb->buffer[i] != NULL);
- i_Pb->dPb_c->mPhotoBuffer[i] = i_Pb->buffer[i];
+ JUT_ASSERT(VERSION_SELECT(2734, 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 = i_Pb->dPb_c->mMsgTextBuffer[i] = (char*)i_Pb->heap->alloc(1000, 4);
- JUT_ASSERT(0xafc, buffer != NULL);
+ 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);
}
i_Pb->dPb_c->_create(i_Pb->heap);