d_timer start

This commit is contained in:
Jasper St. Pierre
2024-01-14 20:34:06 -08:00
parent 7655669c87
commit 5ab99df86e
5 changed files with 432 additions and 70 deletions
+8
View File
@@ -439,6 +439,8 @@ public:
dTimer_c* getTimerPtr() { return mTimerInfo.mTimerPtr; }
s32 getTimerMode() { return mTimerInfo.mTimerMode; }
s32 getTimerNowTimeMs() { return mTimerInfo.mTimerNowTimeMs; }
s32 getTimerLimitTimeMs() { return mTimerInfo.mTimerLimitTimeMs; }
s16 getItemMagicCount() { return mItemMagicCount; }
void setItemMagicCount(s16 magic) { mItemMagicCount += magic; }
@@ -523,6 +525,7 @@ public:
void setClothResArchive(JKRArchive * pArc) { mpClothResArchive = pArc; }
void setSaveResArchive(JKRArchive * pArc) { mpSaveResArchive = pArc; }
void setItemIconArchive(JKRArchive * pArc) { mpItemIconArchive = pArc; }
JKRArchive* getItemIconArchive() { return mpItemIconArchive; }
void setNameResArchive(JKRArchive * pArc) { mpNameResArchive = pArc; }
void setErrorResArchive(JKRArchive * pArc) { mpErrorResArchive = pArc; }
void setActionIconArchive(JKRArchive * pArc) { mpActionIconArchive = pArc; }
@@ -2774,6 +2777,7 @@ inline void dComIfGp_setOptResArchive(JKRArchive * pArc) { g_dComIfG_gameInfo.pl
inline void dComIfGp_setClothResArchive(JKRArchive * pArc) { g_dComIfG_gameInfo.play.setClothResArchive(pArc); }
inline void dComIfGp_setSaveResArchive(JKRArchive * pArc) { g_dComIfG_gameInfo.play.setSaveResArchive(pArc); }
inline void dComIfGp_setItemIconArchive(JKRArchive * pArc) { g_dComIfG_gameInfo.play.setItemIconArchive(pArc); }
inline JKRArchive* dComIfGp_getItemIconArchive() { return g_dComIfG_gameInfo.play.getItemIconArchive(); }
inline void dComIfGp_setNameResArchive(JKRArchive * pArc) { g_dComIfG_gameInfo.play.setNameResArchive(pArc); }
inline void dComIfGp_setErrorResArchive(JKRArchive * pArc) { g_dComIfG_gameInfo.play.setErrorResArchive(pArc); }
inline void dComIfGp_setActionIconArchive(JKRArchive * pArc) { g_dComIfG_gameInfo.play.setActionIconArchive(pArc); }
@@ -3078,6 +3082,10 @@ inline u8 dComIfG_getBrightness() {
return g_dComIfG_gameInfo.mBrightness;
}
inline u32 dComIfG_getTimerRestTimeMs() {
return g_dComIfG_gameInfo.play.getTimerLimitTimeMs() - g_dComIfG_gameInfo.play.getTimerNowTimeMs();
}
int dComIfG_changeOpeningScene(scene_class* i_scene, s16 i_procName);
#endif /* D_COM_D_COM_INF_GAME_H */
+3 -2
View File
@@ -247,8 +247,9 @@ public:
/* 0x94 */ f32 field_0x94;
/* 0x98 */ u8 field_0x98;
/* 0x99 */ u8 field_0x99;
/* 0x9A */ short field_0x9a;
/* 0x9C */ u8 field_0x9C[0xA0 - 0x9C];
/* 0x9A */ s16 field_0x9a;
/* 0x9C */ s16 field_0x9c;
/* 0x9E */ s16 field_0x9e;
/* 0xA0 */ f32 field_0xa0;
/* 0xA4 */ short field_0xa4;
/* 0xA6 */ short field_0xa6;
+45 -14
View File
@@ -1,18 +1,20 @@
#ifndef D_TIMER_H
#define D_TIMER_H
#include "SSystem/SComponent/c_phase.h"
#include "f_op/f_op_msg_mng.h"
#include "d/d_drawlist.h"
#include "SSystem/SComponent/c_phase.h"
class J2DPane;
class JKRArchive;
class JKRSolidHeap;
class dDlst_TimerScrnDraw_c {
class dDlst_TimerScrnDraw_c : public dDlst_base_c {
public:
~dDlst_TimerScrnDraw_c();
void setScreen(const char*, JKRArchive*);
void changeNumberTexture(J2DPane*, int);
void getNumber(int);
const char* getNumber(int);
void setTimer(int);
void setRupee(s16);
void setPaneInitialPos(fopMsgM_pane_class*, f32, f32);
@@ -21,17 +23,46 @@ public:
void setShowType(u8);
void setIconType(void*, u8);
void anime();
void closeAnime();
void hide();
bool closeAnime();
bool hide();
void draw();
public:
/* 0x004 */ J2DScreen* scrn;
/* 0x008 */ fopMsgM_pane_class field_0x008;
/* 0x040 */ fopMsgM_pane_class field_0x040;
/* 0x078 */ fopMsgM_pane_class field_0x078;
/* 0x0B0 */ fopMsgM_pane_class field_0x0b0;
/* 0x0E8 */ fopMsgM_pane_class field_0x0e8;
/* 0x120 */ fopMsgM_pane_class field_0x120;
/* 0x158 */ fopMsgM_pane_class field_0x158;
/* 0x190 */ fopMsgM_pane_class field_0x190;
/* 0x1C8 */ fopMsgM_pane_class field_0x1c8;
/* 0x200 */ J2DPane* field_0x200;
/* 0x204 */ J2DPane* field_0x204;
/* 0x208 */ J2DPane* field_0x208;
/* 0x20C */ J2DPane* field_0x20c;
/* 0x210 */ J2DPane* field_0x210;
/* 0x214 */ J2DPane* field_0x214;
/* 0x218 */ J2DPane* field_0x218;
/* 0x21C */ J2DPane* field_0x21c;
/* 0x220 */ J2DPane* field_0x220;
/* 0x224 */ J2DPane* field_0x224;
/* 0x228 */ J2DPane* field_0x228;
/* 0x22C */ J2DPicture* field_0x22c;
/* 0x230 */ u32 field_0x230;
/* 0x234 */ s8 field_0x234;
/* 0x235 */ u8 field_0x235;
/* 0x236 */ u8 field_0x236;
/* 0x237 */ u8 field_0x237;
};
class dTimer_c {
class dTimer_c : public msg_class {
public:
void _create();
void _execute();
void _draw();
void _delete();
s32 _create();
BOOL _execute();
BOOL _draw();
BOOL _delete();
void RestTimeCheck(int);
void deleteCheck();
void SetSE();
@@ -47,14 +78,14 @@ public:
void getLimitTimeMs();
void getRestTimeMs();
/* 0x000 */ msg_class parent;
/* 0x0FC */ dDlst_TimerScrnDraw_c* mpScrnDraw;
/* 0x100 */ u8 field_0x100[0x104 - 0x100];
/* 0x100 */ void* iconTex;
/* 0x104 */ request_of_phase_process_class mPhs;
/* 0x10C */ u8 field_0x10C[0x154 - 0x10C];
/* 0x154 */ int field_0x154;
/* 0x154 */ u32 mType;
/* 0x158 */ u8 field_0x158[0x170 - 0x158];
/* 0x170 */ JKRHeap* mpSolidHeap;
/* 0x170 */ JKRSolidHeap* mpSolidHeap;
/* 0x174 */ u32 field_0x174;
};
#endif /* D_TIMER_H */
+8 -12
View File
@@ -25,20 +25,16 @@ struct fopMsg_prm_class {
/* 0x18 */ int field_0x18;
}; // Size: 0x1C
struct fopMsg_prm_timer {
/* 0x00 */ int field_0x0;
/* 0x04 */ cXyz field_0x4;
/* 0x10 */ int field_0x10;
/* 0x14 */ int field_0x14;
/* 0x18 */ u32 field_0x18;
struct fopMsg_prm_timer : public fopMsg_prm_class {
/* 0x1C */ int field_0x1c;
/* 0x20 */ u32 field_0x20;
/* 0x20 */ u8 field_0x20;
/* 0x21 */ u8 field_0x21;
/* 0x22 */ u8 mShowType;
/* 0x23 */ u8 mIconType;
/* 0x24 */ u8 field_0x24;
/* 0x25 */ u8 field_0x25;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ f32 field_0x30;
/* 0x34 */ f32 field_0x34;
/* 0x28 */ cXy mTimerPos;
/* 0x30 */ cXy mRupeePos;
}; // Size: 0x38
class J2DScreen;
@@ -80,7 +76,7 @@ int fopMsgM_messageSet(u32 param_0);
int fopMsgM_messageSetDemo(u32 param_0);
msg_class* fopMsgM_SearchByID(unsigned int param_0);
char* fopMsgM_messageGet(char* msg, u32 string_id);
s32 fop_Timer_create(s16 param_0, u8 param_1, u32 param_2, u8 param_3, u8 param_4, f32 param_5,
s32 fop_Timer_create(s16 param_0, u8 param_1, u16 param_2, u8 param_3, u8 param_4, f32 param_5,
f32 param_6, f32 param_7, f32 param_8, fopMsgCreateFunc createFunc);
inline s32 fopMsgM_Timer_create(s16 param_0, u8 param_1, u32 param_2, u8 param_3, u8 param_4,
f32 param_5, f32 param_6, f32 param_7, f32 param_8,
+368 -42
View File
@@ -4,25 +4,101 @@
//
#include "d/d_timer.h"
#include "dolphin/types.h"
#include "d/d_com_inf_game.h"
#include "d/d_item.h"
#include "d/d_meter.h"
#include "d/d_procname.h"
#include "JSystem/J2DGraph/J2DScreen.h"
#include "JSystem/J2DGraph/J2DOrthoGraph.h"
#include "JSystem/JKernel/JKRArchive.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
u32 ShipRaceSeTable[] = {
0x7530, JA_SE_SGAME_TIMER_30,
0x4E20, JA_SE_SGAME_TIMER_30,
0x2710, JA_SE_SGAME_TIMER_10,
0x2328, JA_SE_SGAME_TIMER_10,
0x1F40, JA_SE_SGAME_TIMER_10,
0x1B58, JA_SE_SGAME_TIMER_10,
0x1770, JA_SE_SGAME_TIMER_10,
0x1388, JA_SE_SGAME_TIMER_10,
0x0FA0, JA_SE_SGAME_TIMER_10,
0x0BB8, JA_SE_SGAME_TIMER_10,
0x07D0, JA_SE_SGAME_TIMER_10,
0x03E8, JA_SE_SGAME_TIMER_10,
0xFFFFFFFF, 0x0000,
};
u32 VolcanoSeTable[] = {
0xEA60, JA_SE_MINIGAME_TIMER_30,
0x7530, JA_SE_MINIGAME_TIMER_30,
0x2710, JA_SE_MINIGAME_TIMER_10,
0x2328, JA_SE_MINIGAME_TIMER_10,
0x1F40, JA_SE_MINIGAME_TIMER_10,
0x1B58, JA_SE_MINIGAME_TIMER_10,
0x1770, JA_SE_MINIGAME_TIMER_10,
0x1388, JA_SE_MINIGAME_TIMER_10,
0x0FA0, JA_SE_MINIGAME_TIMER_10,
0x0BB8, JA_SE_MINIGAME_TIMER_10,
0x07D0, JA_SE_MINIGAME_TIMER_10,
0x03E8, JA_SE_MINIGAME_TIMER_10,
0xFFFFFFFF, 0x0000,
};
/* 8023B860-8023BCD8 .text _create__8dTimer_cFv */
void dTimer_c::_create() {
s32 dTimer_c::_create() {
/* Nonmatching */
s32 rt = dComIfG_resLoad(&mPhs, "Timer");
if (rt == cPhs_COMPLEATE_e) {
fopMsg_prm_timer* prm = (fopMsg_prm_timer*)fopMsgM_GetAppend(this);
if (prm == NULL)
return cPhs_ERROR_e;
dRes_info_c* resInfo = dComIfG_getObjectResInfo("Timer");
JUT_ASSERT(0x44, resInfo != 0);
if (prm->mIconType != 0) {
mpSolidHeap = mDoExt_createSolidHeapFromGameToCurrent(0x4260, 0x20);
} else {
mpSolidHeap = mDoExt_createSolidHeapFromGameToCurrent(0x34C0, 0x20);
}
if (mpSolidHeap == NULL)
return cPhs_ERROR_e;
mpScrnDraw = new dDlst_TimerScrnDraw_c();
mpScrnDraw->setScreen("ship_race0.blo", resInfo->getArchive());
if (prm->mIconType != 0) {
iconTex = JKRAllocFromHeap(mpSolidHeap, 0xC00, 0x20);
JUT_ASSERT(0x5a, iconTex != 0);
mpScrnDraw->setIconType(iconTex, prm->mIconType);
}
mDoExt_restoreCurrentHeap();
mDoExt_adjustSolidHeap(mpSolidHeap);
mpScrnDraw->setRupeePos(prm->mRupeePos.x, prm->mRupeePos.y);
mpScrnDraw->setTimerPos(prm->mTimerPos.x, prm->mTimerPos.y);
mpScrnDraw->setShowType(prm->mShowType);
mType = prm->field_0x1c;
if (mType == 7) {
}
}
}
/* 8023BCD8-8023BF88 .text _execute__8dTimer_cFv */
void dTimer_c::_execute() {
BOOL dTimer_c::_execute() {
/* Nonmatching */
}
/* 8023BF88-8023BFE4 .text _draw__8dTimer_cFv */
void dTimer_c::_draw() {
BOOL dTimer_c::_draw() {
/* Nonmatching */
}
/* 8023BFE4-8023C0B8 .text _delete__8dTimer_cFv */
void dTimer_c::_delete() {
BOOL dTimer_c::_delete() {
/* Nonmatching */
}
@@ -97,58 +173,231 @@ void dTimer_c::getRestTimeMs() {
}
/* 8023C69C-8023CA24 .text setScreen__21dDlst_TimerScrnDraw_cFPCcP10JKRArchive */
void dDlst_TimerScrnDraw_c::setScreen(const char*, JKRArchive*) {
/* Nonmatching */
void dDlst_TimerScrnDraw_c::setScreen(const char* file, JKRArchive* arc) {
scrn = new J2DScreen();
scrn->set(file, arc);
field_0x22c = NULL;
fopMsgM_setPaneData(&field_0x008, scrn->search('tim0'));
fopMsgM_setPaneData(&field_0x040, scrn->search('cn00'));
fopMsgM_setPaneData(&field_0x078, scrn->search('tt01'));
fopMsgM_setPaneData(&field_0x0b0, scrn->search('tn01'));
fopMsgM_setPaneData(&field_0x0e8, scrn->search('tn00'));
fopMsgM_setPaneData(&field_0x120, scrn->search('tk00'));
fopMsgM_setPaneData(&field_0x158, scrn->search('\x00rup'));
fopMsgM_setPaneData(&field_0x190, scrn->search('ruxk'));
fopMsgM_setPaneData(&field_0x1c8, scrn->search('rupk'));
field_0x200 = scrn->search('tt02');
field_0x204 = scrn->search('tt03');
field_0x208 = scrn->search('tt04');
field_0x20c = scrn->search('tt05');
field_0x210 = scrn->search('tt06');
field_0x214 = scrn->search('\x00ru1');
field_0x218 = scrn->search('\x00ru2');
field_0x21c = scrn->search('\x00ru3');
field_0x220 = scrn->search('ruk1');
field_0x224 = scrn->search('ruk2');
field_0x228 = scrn->search('ruk3');
setShowType(3);
}
/* 8023CA24-8023CA78 .text changeNumberTexture__21dDlst_TimerScrnDraw_cFP7J2DPanei */
void dDlst_TimerScrnDraw_c::changeNumberTexture(J2DPane*, int) {
/* Nonmatching */
void dDlst_TimerScrnDraw_c::changeNumberTexture(J2DPane* pane, int no) {
if (no < 0 || no >= 10)
no = 0;
((J2DPicture*)pane)->changeTexture(getNumber(no), 0);
}
/* 8023CA78-8023CA8C .text getNumber__21dDlst_TimerScrnDraw_cFi */
void dDlst_TimerScrnDraw_c::getNumber(int) {
/* Nonmatching */
const char* dDlst_TimerScrnDraw_c::getNumber(int no) {
static const char* number[] = {
"s_rupy_num_00.bti",
"s_rupy_num_01.bti",
"s_rupy_num_02.bti",
"s_rupy_num_03.bti",
"s_rupy_num_04.bti",
"s_rupy_num_05.bti",
"s_rupy_num_06.bti",
"s_rupy_num_07.bti",
"s_rupy_num_08.bti",
"s_rupy_num_09.bti",
};
return number[no];
}
/* 8023CA8C-8023CCD8 .text setTimer__21dDlst_TimerScrnDraw_cFi */
void dDlst_TimerScrnDraw_c::setTimer(int) {
void dDlst_TimerScrnDraw_c::setTimer(int time) {
/* Nonmatching */
s32 minsec = time / 1000;
s32 min = minsec / 60;
s32 sec = minsec % 60;
changeNumberTexture(field_0x078.pane, min / 10);
changeNumberTexture(field_0x200, min % 10);
changeNumberTexture(field_0x204, sec / 10);
changeNumberTexture(field_0x208, sec % 10);
changeNumberTexture(field_0x20c, (time % 1000) / 100);
changeNumberTexture(field_0x210, ((time % 1000) / 100) / 10);
if (dComIfGp_event_getMode() == 1) {
if (field_0x008.mUserArea < 5) {
field_0x008.mUserArea++;
s16 alphaStep = 5 - field_0x008.mUserArea;
f32 alpha = ((f32)alphaStep * (f32)alphaStep) / 25.0f;
fopMsgM_setNowAlpha(&field_0x008, alpha);
fopMsgM_setNowAlpha(&field_0x040, alpha);
fopMsgM_setNowAlpha(&field_0x078, alpha);
fopMsgM_setNowAlpha(&field_0x0b0, alpha);
fopMsgM_setNowAlpha(&field_0x0e8, alpha);
fopMsgM_setNowAlpha(&field_0x120, alpha);
}
} else {
if (field_0x008.mUserArea > 0) {
field_0x008.mUserArea--;
int alphaStep = 5 - field_0x008.mUserArea;
f32 alpha = ((f32)alphaStep * (f32)alphaStep) / 25.0f;
fopMsgM_setNowAlpha(&field_0x008, alpha);
fopMsgM_setNowAlpha(&field_0x040, alpha);
fopMsgM_setNowAlpha(&field_0x078, alpha);
fopMsgM_setNowAlpha(&field_0x0b0, alpha);
fopMsgM_setNowAlpha(&field_0x0e8, alpha);
fopMsgM_setNowAlpha(&field_0x120, alpha);
}
}
}
/* 8023CCD8-8023CEF0 .text setRupee__21dDlst_TimerScrnDraw_cFs */
void dDlst_TimerScrnDraw_c::setRupee(s16) {
void dDlst_TimerScrnDraw_c::setRupee(s16 num) {
/* Nonmatching */
if (num != field_0x230) {
if (num > field_0x230) {
field_0x230++;
} else {
field_0x230--;
}
if (field_0x230 < 0)
field_0x230 = 0;
changeNumberTexture(field_0x21c, field_0x230 % 10);
changeNumberTexture(field_0x218, (field_0x230 % 100) / 10);
changeNumberTexture(field_0x214, field_0x230 / 100);
changeNumberTexture(field_0x228, field_0x230 % 10);
changeNumberTexture(field_0x224, (field_0x230 % 100) / 10);
changeNumberTexture(field_0x220, field_0x230 / 100);
}
if (dComIfGp_event_getMode() == 1) {
if (field_0x158.mUserArea < 5) {
field_0x158.mUserArea++;
s16 alphaStep = 5 - field_0x008.mUserArea;
f32 alpha = 1.0f - ((f32)alphaStep * (f32)alphaStep) / 25.0f;
fopMsgM_setNowAlpha(&field_0x158, alpha);
fopMsgM_setNowAlpha(&field_0x190, alpha);
fopMsgM_setNowAlpha(&field_0x1c8, alpha);
}
} else {
if (field_0x158.mUserArea > 0) {
field_0x158.mUserArea--;
s16 alphaStep = 5 - field_0x008.mUserArea;
f32 alpha = 1.0f - ((f32)alphaStep * (f32)alphaStep) / 25.0f;
fopMsgM_setNowAlpha(&field_0x158, alpha);
fopMsgM_setNowAlpha(&field_0x190, alpha);
fopMsgM_setNowAlpha(&field_0x1c8, alpha);
}
}
}
/* 8023CEF0-8023CF48 .text dTm_parentPaneScale__FP18fopMsgM_pane_classP18fopMsgM_pane_classf */
void dTm_parentPaneScale(fopMsgM_pane_class*, fopMsgM_pane_class*, f32) {
/* Nonmatching */
void dTm_parentPaneScale(fopMsgM_pane_class* pane, fopMsgM_pane_class* parent, f32 scale) {
pane->mPosCenter.x = parent->mPosCenter.x + scale * (pane->mPosCenterOrig.x - parent->mPosCenterOrig.x);
pane->mPosCenter.y = parent->mPosCenter.y + scale * (pane->mPosCenterOrig.y - parent->mPosCenterOrig.y);
fopMsgM_paneScaleXY(pane, scale);
}
/* 8023CF48-8023CF98 .text setPaneInitialPos__21dDlst_TimerScrnDraw_cFP18fopMsgM_pane_classff */
void dDlst_TimerScrnDraw_c::setPaneInitialPos(fopMsgM_pane_class*, f32, f32) {
/* Nonmatching */
void dDlst_TimerScrnDraw_c::setPaneInitialPos(fopMsgM_pane_class* pane, f32 x, f32 y) {
pane->mPosCenterOrig.x = x + pane->mSizeOrig.x / 2.0f;
pane->mPosCenterOrig.y = y + pane->mSizeOrig.y / 2.0f;
fopMsgM_paneTrans(pane, 0.0f, 0.0f);
}
/* 8023CF98-8023D0CC .text setTimerPos__21dDlst_TimerScrnDraw_cFff */
void dDlst_TimerScrnDraw_c::setTimerPos(f32, f32) {
/* Nonmatching */
void dDlst_TimerScrnDraw_c::setTimerPos(f32 x, f32 y) {
setPaneInitialPos(&field_0x008, x, y);
setPaneInitialPos(&field_0x040, x + field_0x040.mPosTopLeftOrig.x - field_0x008.mPosTopLeftOrig.x, y + field_0x040.mPosTopLeftOrig.y - field_0x008.mPosTopLeftOrig.y);
setPaneInitialPos(&field_0x078, x + field_0x078.mPosTopLeftOrig.x - field_0x008.mPosTopLeftOrig.x, y + field_0x078.mPosTopLeftOrig.y - field_0x008.mPosTopLeftOrig.y);
setPaneInitialPos(&field_0x0b0, x + field_0x0b0.mPosTopLeftOrig.x - field_0x008.mPosTopLeftOrig.x, y + field_0x0b0.mPosTopLeftOrig.y - field_0x008.mPosTopLeftOrig.y);
setPaneInitialPos(&field_0x0e8, x + field_0x0e8.mPosTopLeftOrig.x - field_0x008.mPosTopLeftOrig.x, y + field_0x0e8.mPosTopLeftOrig.y - field_0x008.mPosTopLeftOrig.y);
setPaneInitialPos(&field_0x120, x + field_0x120.mPosTopLeftOrig.x - field_0x008.mPosTopLeftOrig.x, y + field_0x120.mPosTopLeftOrig.y - field_0x008.mPosTopLeftOrig.y);
}
/* 8023D0CC-8023D128 .text setRupeePos__21dDlst_TimerScrnDraw_cFff */
void dDlst_TimerScrnDraw_c::setRupeePos(f32, f32) {
/* Nonmatching */
void dDlst_TimerScrnDraw_c::setRupeePos(f32 x, f32 y) {
setPaneInitialPos(&field_0x158, x, y);
setPaneInitialPos(&field_0x1c8, x, y);
}
/* 8023D128-8023D1F8 .text setShowType__21dDlst_TimerScrnDraw_cFUc */
void dDlst_TimerScrnDraw_c::setShowType(u8) {
/* Nonmatching */
void dDlst_TimerScrnDraw_c::setShowType(u8 type) {
if (type & 1) {
field_0x008.pane->show();
field_0x040.pane->show();
field_0x078.pane->show();
field_0x0b0.pane->show();
field_0x0e8.pane->show();
field_0x120.pane->show();
} else {
field_0x008.pane->hide();
field_0x040.pane->hide();
field_0x078.pane->hide();
field_0x0b0.pane->hide();
field_0x0e8.pane->hide();
field_0x120.pane->hide();
}
if (type & 2) {
field_0x158.pane->show();
field_0x1c8.pane->show();
if (field_0x22c != NULL)
field_0x22c->show();
} else {
field_0x158.pane->hide();
field_0x1c8.pane->hide();
if (field_0x22c != NULL)
field_0x22c->hide();
}
}
/* 8023D1F8-8023D318 .text setIconType__21dDlst_TimerScrnDraw_cFPvUc */
void dDlst_TimerScrnDraw_c::setIconType(void*, u8) {
void dDlst_TimerScrnDraw_c::setIconType(void* tex, u8 type) {
/* Nonmatching */
u32 itemNo;
switch (type) {
case 0:
case 1:
case 2:
case 3:
itemNo = dComIfGs_getSelectEquip(0);
break;
case 4:
itemNo = LETTER00;
break;
default:
itemNo = (u32)tex;
break;
}
JKRArchive::readTypeResource(tex, 0xC00, 'TIMG', dItem_data::getTexture(itemNo), dComIfGp_getItemIconArchive());
field_0x22c = new J2DPicture();
((J2DPicture*)field_0x158.pane)->setWhite(JUtility::TColor(0));
((J2DPicture*)field_0x1c8.pane)->setWhite(JUtility::TColor(0));
field_0x22c->setAlpha(0);
}
/* 8023D318-8023D644 .text anime__21dDlst_TimerScrnDraw_cFv */
@@ -157,56 +406,133 @@ void dDlst_TimerScrnDraw_c::anime() {
}
/* 8023D644-8023D848 .text closeAnime__21dDlst_TimerScrnDraw_cFv */
void dDlst_TimerScrnDraw_c::closeAnime() {
bool dDlst_TimerScrnDraw_c::closeAnime() {
/* Nonmatching */
bool ret = false;
field_0x234++;
if (field_0x234 <= 7) {
s32 alphaStep = 7 - field_0x234;
f32 alpha = ((f32)alphaStep * (f32)alphaStep) / 49.0f;
f32 x = (((f32)field_0x234 * (f32)field_0x234) / 49.0f) * -50.0f;
fopMsgM_paneTrans(&field_0x008, x, 0.0f);
fopMsgM_paneTrans(&field_0x040, x, 0.0f);
fopMsgM_paneTrans(&field_0x0b0, x, 0.0f);
fopMsgM_paneTrans(&field_0x0e8, x, 0.0f);
fopMsgM_paneTrans(&field_0x120, x, 0.0f);
fopMsgM_setNowAlpha(&field_0x008, alpha);
fopMsgM_setNowAlpha(&field_0x040, alpha);
fopMsgM_setNowAlpha(&field_0x078, alpha);
fopMsgM_setNowAlpha(&field_0x0b0, alpha);
fopMsgM_setNowAlpha(&field_0x0e8, alpha);
fopMsgM_setNowAlpha(&field_0x120, alpha);
fopMsgM_paneTrans(&field_0x158, x + g_menuHIO.field_0x9a, g_menuHIO.field_0x9c);
fopMsgM_setNowAlpha(&field_0x158, alpha);
fopMsgM_setNowAlpha(&field_0x190, alpha);
fopMsgM_setNowAlpha(&field_0x1c8, alpha);
}
if (field_0x234 >= 7)
ret = true;
return ret;
}
/* 8023D848-8023D8BC .text hide__21dDlst_TimerScrnDraw_cFv */
void dDlst_TimerScrnDraw_c::hide() {
/* Nonmatching */
bool dDlst_TimerScrnDraw_c::hide() {
fopMsgM_setNowAlphaZero(&field_0x008);
fopMsgM_setNowAlphaZero(&field_0x040);
fopMsgM_setNowAlphaZero(&field_0x078);
fopMsgM_setNowAlphaZero(&field_0x0b0);
fopMsgM_setNowAlphaZero(&field_0x0e8);
fopMsgM_setNowAlphaZero(&field_0x120);
fopMsgM_setNowAlphaZero(&field_0x158);
fopMsgM_setNowAlphaZero(&field_0x190);
fopMsgM_setNowAlphaZero(&field_0x1c8);
return true;
}
/* 8023D8BC-8023D9A0 .text draw__21dDlst_TimerScrnDraw_cFv */
void dDlst_TimerScrnDraw_c::draw() {
/* Nonmatching */
fopMsgM_setAlpha(&field_0x008);
fopMsgM_setAlpha(&field_0x040);
fopMsgM_setAlpha(&field_0x078);
fopMsgM_setAlpha(&field_0x0b0);
fopMsgM_setAlpha(&field_0x0e8);
fopMsgM_setAlpha(&field_0x120);
fopMsgM_setAlpha(&field_0x158);
fopMsgM_setAlpha(&field_0x190);
fopMsgM_setAlpha(&field_0x1c8);
J2DOrthoGraph* graf = dComIfGp_getCurrentGrafPort();
graf->setPort();
scrn->draw(0.0f, 0.0f, graf);
if (field_0x22c != NULL) {
field_0x22c->draw(field_0x158.mPosTopLeft.x, field_0x158.mPosTopLeft.y, field_0x158.mSize.x, field_0x158.mSize.y, false, false, false);
field_0x22c->setAlpha(field_0x158.mNowAlpha);
}
}
/* 8023D9A0-8023D9C0 .text dTimer_Draw__FP8dTimer_c */
void dTimer_Draw(dTimer_c*) {
/* Nonmatching */
BOOL dTimer_Draw(dTimer_c* i_this) {
return i_this->_draw();
}
/* 8023D9C0-8023D9E0 .text dTimer_Execute__FP8dTimer_c */
void dTimer_Execute(dTimer_c*) {
/* Nonmatching */
BOOL dTimer_Execute(dTimer_c* i_this) {
return i_this->_execute();
}
/* 8023D9E0-8023D9E8 .text dTimer_IsDelete__FP8dTimer_c */
void dTimer_IsDelete(dTimer_c*) {
/* Nonmatching */
BOOL dTimer_IsDelete(dTimer_c* i_this) {
return TRUE;
}
/* 8023D9E8-8023DA08 .text dTimer_Delete__FP8dTimer_c */
void dTimer_Delete(dTimer_c*) {
/* Nonmatching */
BOOL dTimer_Delete(dTimer_c* i_this) {
return i_this->_delete();
}
/* 8023DA08-8023DA28 .text dTimer_Create__FP9msg_class */
void dTimer_Create(msg_class*) {
/* Nonmatching */
s32 dTimer_Create(msg_class* i_this) {
return ((dTimer_c*)i_this)->_create();
}
/* 8023DA28-8023DA88 .text dTimer_createTimer__FiUsUcUcffff */
void dTimer_createTimer(int, u16, u8, u8, f32, f32, f32, f32) {
/* Nonmatching */
s32 dTimer_createTimer(int param_1, u16 param_2, u8 param_3, u8 param_4, f32 param_5, f32 param_6, f32 param_7, f32 param_8) {
if (dComIfG_getTimerMode() == -1)
return fop_Timer_create(PROC_TIMER, param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8, NULL);
return -1;
}
/* 8023DA88-8023DAEC .text dTimer_createStockTimer__Fv */
void dTimer_createStockTimer() {
/* Nonmatching */
s32 dTimer_createStockTimer() {
if (dComIfG_getTimerMode() != -1)
return fop_Timer_create(PROC_TIMER, 7, 0, 3, 0, 221.0f, 439.0f, 32.0f, 419.0f, NULL);
return -1;
}
/* 8023DAEC-8023DB48 .text __dt__21dDlst_TimerScrnDraw_cFv */
dDlst_TimerScrnDraw_c::~dDlst_TimerScrnDraw_c() {
/* Nonmatching */
}
msg_method_class l_dTimer_Method = {
(process_method_func)dTimer_Create,
(process_method_func)dTimer_Delete,
(process_method_func)dTimer_Execute,
(process_method_func)dTimer_IsDelete,
(process_method_func)dTimer_Draw,
};
msg_process_profile_definition g_profile_TIMER = {
/* LayerID */ fpcLy_CURRENT_e,
/* ListID */ 12,
/* ListPrio */ fpcPi_CURRENT_e,
/* ProcName */ PROC_TIMER,
/* Proc SubMtd */ &g_fpcLf_Method.mBase,
/* Size */ sizeof(dTimer_c),
/* SizeOther */ 0,
/* Parameters */ 0,
/* Leaf SubMtd */ &g_fopMsg_Method,
/* Priority */ 0x01D2,
/* Msg SubMtd */ &l_dTimer_Method,
};