mirror of https://github.com/zeldaret/tp.git
Misc Matches using debug (#2388)
This commit is contained in:
parent
0b50e106cc
commit
cc3e0856bf
|
@ -628,14 +628,14 @@ config.libs = [
|
|||
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_base.cpp"),
|
||||
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_boss.cpp"),
|
||||
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_explain.cpp"),
|
||||
Object(NonMatching, "d/d_msg_scrn_item.cpp"),
|
||||
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_item.cpp"),
|
||||
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_howl.cpp"),
|
||||
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_jimaku.cpp"),
|
||||
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_kanban.cpp"),
|
||||
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_light.cpp"),
|
||||
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_place.cpp"),
|
||||
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_staff.cpp"),
|
||||
Object(NonMatching, "d/d_msg_scrn_talk.cpp"),
|
||||
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_talk.cpp"),
|
||||
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_tree.cpp"),
|
||||
Object(MatchingFor("GZ2E01"), "d/d_msg_string_base.cpp"),
|
||||
Object(MatchingFor("GZ2E01"), "d/d_msg_string.cpp"),
|
||||
|
@ -919,7 +919,7 @@ config.libs = [
|
|||
Object(NonMatching, "Z2AudioLib/Z2LinkMgr.cpp", extra_cflags=['-pragma "nosyminline on"']),
|
||||
Object(NonMatching, "Z2AudioLib/Z2EnvSeMgr.cpp"),
|
||||
Object(MatchingFor("GZ2E01"), "Z2AudioLib/Z2WolfHowlMgr.cpp"),
|
||||
Object(NonMatching, "Z2AudioLib/Z2SpeechMgr2.cpp"),
|
||||
Object(MatchingFor("GZ2E01"), "Z2AudioLib/Z2SpeechMgr2.cpp", extra_cflags=['-pragma "nosyminline on"']),
|
||||
Object(NonMatching, "Z2AudioLib/Z2AudioMgr.cpp"),
|
||||
],
|
||||
},
|
||||
|
|
|
@ -144,7 +144,7 @@ public:
|
|||
|
||||
MtxP getGlbMtx() { return mGlobalMtx; }
|
||||
|
||||
JGeometry::TBox2<f32>& getGlbBounds() { return mGlobalBounds; }
|
||||
const JGeometry::TBox2<f32>& getGlbBounds() const { return mGlobalBounds; }
|
||||
|
||||
void setMtx(Mtx m) { MTXCopy(m, mPositionMtx); }
|
||||
|
||||
|
|
|
@ -93,7 +93,7 @@ struct TValueIterator {
|
|||
const void* get() const { return mBegin; }
|
||||
|
||||
typename Parser::ParseType operator*() const {
|
||||
return *(typename Parser::ParseType*)get();
|
||||
return Parser::parse(get());
|
||||
}
|
||||
|
||||
TValueIterator& operator++() {
|
||||
|
@ -127,7 +127,6 @@ struct TParseValue_misaligned : TParseValue_raw_<T> {
|
|||
|
||||
template<typename T>
|
||||
struct TValueIterator_misaligned : public TValueIterator<TParseValue_misaligned<T>, sizeof(T)> {
|
||||
TValueIterator_misaligned(const TValueIterator_misaligned<T>& other) : TValueIterator<TParseValue_misaligned<T>, sizeof(T)>(other) {}
|
||||
TValueIterator_misaligned(const void* begin) : TValueIterator<TParseValue_misaligned<T>, sizeof(T)>(begin) {}
|
||||
};
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ template<class T>
|
|||
class TPointer {
|
||||
public:
|
||||
TPointer(T* ptr) : mPtr(ptr) {}
|
||||
~TPointer() {}
|
||||
void set(T* ptr) { mPtr = ptr; }
|
||||
T* mPtr;
|
||||
};
|
||||
|
@ -22,4 +23,4 @@ public:
|
|||
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -12,7 +12,7 @@ void JMAVECScaleAdd(register const Vec* vec1, register const Vec* vec2, register
|
|||
register f32 scale);
|
||||
|
||||
inline int JMAAbs(int value) {
|
||||
return value > 0 ? value : -value;
|
||||
return __abs(value);
|
||||
}
|
||||
|
||||
inline f32 JMAFastReciprocal(f32 value) {
|
||||
|
|
|
@ -20,10 +20,6 @@ struct TRandom_fast_ {
|
|||
|
||||
u32 get_bit32(void) { return this->get(); }
|
||||
|
||||
u8 get_uint8(u8 param_0) {
|
||||
return get_ufloat_1() * param_0;
|
||||
}
|
||||
|
||||
// due to the float constant, having this function inlined adds that float to data,
|
||||
// making it not match
|
||||
float get_ufloat_1(void) {
|
||||
|
@ -39,6 +35,17 @@ struct TRandom_fast_ {
|
|||
|
||||
void setSeed(u32 seed) { value = seed; }
|
||||
};
|
||||
|
||||
template <class RandomT>
|
||||
class TRandom_ : public RandomT {
|
||||
public:
|
||||
TRandom_(u32 value) : RandomT(value) {}
|
||||
|
||||
u8 get_uint8(u8 param_0) {
|
||||
return get_ufloat_1() * param_0;
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace JMath
|
||||
|
||||
#endif /* RANDOM_H */
|
||||
|
|
|
@ -17,6 +17,9 @@
|
|||
#define JUT_WARN(LINE, ...) \
|
||||
JUTAssertion::setWarningMessage_f(JUTAssertion::getSDevice(), __FILE__, LINE, __VA_ARGS__); \
|
||||
|
||||
#define JUT_WARN_1(LINE, ...) \
|
||||
JUTAssertion::setWarningMessage_f(1, __FILE__, LINE, __VA_ARGS__); \
|
||||
|
||||
#define JUT_LOG(LINE, ...) \
|
||||
JUTAssertion::setLogMessage_f(JUTAssertion::getSDevice(), __FILE__, LINE, __VA_ARGS__)
|
||||
|
||||
|
@ -28,6 +31,7 @@
|
|||
#define JUT_ASSERT_MSG(...) (void)0;
|
||||
#define JUT_PANIC(...)
|
||||
#define JUT_WARN(...)
|
||||
#define JUT_WARN_1(...)
|
||||
#define JUT_LOG(...)
|
||||
#define JUT_CONFIRM(...)
|
||||
#endif
|
||||
|
|
|
@ -30,13 +30,13 @@ public:
|
|||
bool loadSeWave(u32);
|
||||
bool loadBgmWave(u32);
|
||||
|
||||
bool isSceneExist() const { return sceneExist; }
|
||||
bool isSceneExist() { return sceneExist; }
|
||||
int getCurrentSceneNum() const { return sceneNum; }
|
||||
s8 getCurrentRoomNum() { return roomNum; }
|
||||
bool isInGame() const { return inGame; }
|
||||
void setInGame(bool i_inGame) { inGame = i_inGame; }
|
||||
bool isInDarkness() const { return inDarkness; }
|
||||
s8 getRoomReverb() const { return dComIfGp_getReverb(roomNum); }
|
||||
s8 getRoomReverb() { return dComIfGp_getReverb(roomNum); }
|
||||
bool isMovieDemo() { return sceneNum == 2 || sceneNum == 8 || sceneNum == 9; }
|
||||
s32 getSeLoadStatus(u32 wave) { return getWaveLoadStatus(wave, 0); }
|
||||
s32 getBgmLoadStatus(u32 wave) { return getWaveLoadStatus(wave, 1); }
|
||||
|
|
|
@ -33,7 +33,7 @@ struct Z2SpeechMgr2 : public JASGlobalInstance<Z2SpeechMgr2> {
|
|||
|
||||
/* 0x000 */ JAISoundHandle field_0x0;
|
||||
/* 0x004 */ JAISoundHandle field_0x4;
|
||||
/* 0x008 */ JMath::TRandom_fast_ random;
|
||||
/* 0x008 */ JMath::TRandom_<JMath::TRandom_fast_> random;
|
||||
/* 0x00C */ Z2SpeechStarter mSpeech;
|
||||
/* 0x010 */ u16 mText[500];
|
||||
/* 0x3F8 */ s16 mTextNum;
|
||||
|
|
|
@ -121,7 +121,7 @@ public:
|
|||
}
|
||||
|
||||
void setModel(J3DModel* p_model) { mModel = p_model; }
|
||||
u8 checkEnable(u16 flag) { return mFlags & flag; }
|
||||
BOOL checkEnable(u16 flag) { return mFlags & flag; }
|
||||
void onEnable(u16 flag) { mFlags |= flag; }
|
||||
cXyz& getTrans() { return mTrans; }
|
||||
cXyz& getScale() { return mScale; }
|
||||
|
|
|
@ -132,6 +132,7 @@ public:
|
|||
u8 getGtItm() { return mGtItm; }
|
||||
void startCheckSkipEdge(void* param_0) { setSkipProc(param_0, dEv_noFinishSkipProc, 0); }
|
||||
bool checkSkipEdge() { return chkFlag2(8) != false; }
|
||||
void setDebugStb(u8 stb) { mDebugStb = stb; }
|
||||
|
||||
public:
|
||||
/* 0x000 */ u8 field_0x0[4];
|
||||
|
|
|
@ -552,13 +552,21 @@ public:
|
|||
/* 0xA8 */ u8 mAnimDebug;
|
||||
}; // Size: 0xAC
|
||||
|
||||
class dMeter_drawHIO_c {
|
||||
class dMeter_drawHIO_c : public JORReflexible {
|
||||
public:
|
||||
/* 801FF5B8 */ dMeter_drawHIO_c();
|
||||
/* 80201128 */ virtual ~dMeter_drawHIO_c() {}
|
||||
|
||||
#ifdef DEBUG
|
||||
virtual void listenPropertyEvent(const JORPropertyEvent*);
|
||||
virtual void genMessage(JORMContext*);
|
||||
#endif
|
||||
|
||||
/* 0x000 */ // vtable
|
||||
/* 0x004 */ s8 field_0x4;
|
||||
#ifdef DEBUG
|
||||
int field_0x8_debug;
|
||||
#endif
|
||||
/* 0x008 */ f32 mLifeTopPosX;
|
||||
/* 0x00C */ f32 mLifeTopPosY;
|
||||
/* 0x010 */ f32 mNoMagicPosY;
|
||||
|
|
|
@ -106,6 +106,9 @@ public:
|
|||
static void setWideZoomLightProjection(Mtx m) {}
|
||||
static void setFrameRate(u16 i_rate) { JFWDisplay::getManager()->setFrameRate(i_rate); }
|
||||
|
||||
// NONMATCHING - Need to define all mDoGph_gInf_c shieldD members
|
||||
static u8 isWide() { return false; }
|
||||
|
||||
static GXTexObj mFrameBufferTexObj;
|
||||
static GXTexObj mZbufferTexObj;
|
||||
static bloom_c m_bloom;
|
||||
|
|
|
@ -236,7 +236,6 @@ u32 const JAUStdSoundTableType::STRM_CH_SHIFT = 2;
|
|||
|
||||
/* 802BB8E0-802BBA10 2B6220 0130+00 1/0 0/0 0/0 .text
|
||||
* getStreamInfo__11Z2SoundInfoCF10JAISoundIDP9JAIStream */
|
||||
// NONMATCHING regalloc
|
||||
void Z2SoundInfo::getStreamInfo(JAISoundID param_1, JAIStream* param_2) const {
|
||||
int numChild;
|
||||
JAUSoundTableItem* data;
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: Z2SpeechMgr2
|
||||
// Z2SpeechMgr2
|
||||
//
|
||||
|
||||
#include "Z2AudioLib/Z2SpeechMgr2.h"
|
||||
|
@ -364,7 +363,7 @@ Z2SpeechMgr2::Z2SpeechMgr2() : JASGlobalInstance<Z2SpeechMgr2>(true), random(0)
|
|||
|
||||
/* 802CBD88-802CBF60 2C66C8 01D8+00 1/0 1/1 0/0 .text setString__12Z2SpeechMgr2FPCUssUcUs
|
||||
*/
|
||||
void Z2SpeechMgr2::setString(u16 const* i_text, s16 i_textNum, u8 i_speaker, u16 i_mood) {
|
||||
void Z2SpeechMgr2::setString(u16 const* s, s16 i_textNum, u8 i_speaker, u16 i_mood) {
|
||||
switch (i_speaker) {
|
||||
case 0x13:
|
||||
case 0x15:
|
||||
|
@ -487,15 +486,21 @@ void Z2SpeechMgr2::setString(u16 const* i_text, s16 i_textNum, u8 i_speaker, u16
|
|||
mText[i] = 0;
|
||||
}
|
||||
|
||||
JUT_ASSERT(383, s != 0);
|
||||
|
||||
if (i_textNum > 500) {
|
||||
mTextNum = 500;
|
||||
JUT_WARN(387, "TOO MANY TEXT : now(%d) > max(%d)", i_textNum, 500);
|
||||
JUT_WARN_1(387, "TOO MANY TEXT : now(%d) > max(%d)", i_textNum, 500);
|
||||
} else {
|
||||
mTextNum = i_textNum;
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
for (int i = 0; i <= mTextNum; i++) {
|
||||
#else
|
||||
for (int i = 0; i < mTextNum; i++) {
|
||||
mText[i] = i_text[i];
|
||||
#endif
|
||||
mText[i] = s[i];
|
||||
}
|
||||
|
||||
mTextCount = 0;
|
||||
|
@ -514,7 +519,11 @@ void Z2SpeechMgr2::setString(u16 const* i_text, s16 i_textNum, u8 i_speaker, u16
|
|||
void Z2SpeechMgr2::setTextCount(s16 i_textCount) {
|
||||
if (mVoice != 99) {
|
||||
field_0x3ff = 0x0;
|
||||
|
||||
#ifndef DEBUG
|
||||
i_textCount = (i_textCount == 0) ? 0 : i_textCount - 1;
|
||||
#endif
|
||||
|
||||
bool all_text = false;
|
||||
if (mTextCount == 0 && i_textCount >= mTextNum) {
|
||||
all_text = true;
|
||||
|
@ -587,8 +596,8 @@ void Z2SpeechMgr2::speakOneWord(bool param_0) {
|
|||
}
|
||||
u32 sound = mMood + Z2SE_HYL_MDN_RPLY;
|
||||
f32 fVar1 = Z2GetSceneMgr()->getRoomReverb() / 127.0f;
|
||||
mSpeech.startSound(sound, &field_0x0, NULL, 0,
|
||||
fVar1, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
||||
bool soundStarted =
|
||||
mSpeech.startSound(sound, &field_0x0, NULL, 0, fVar1, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
||||
mSpeech.setPortData(&field_0x0, 8, field_0x402[field_0x401 - 1] + 1, -1);
|
||||
if (field_0x400 == 0) {
|
||||
selectUnit(param_0);
|
||||
|
@ -690,7 +699,6 @@ typedef struct {
|
|||
} Z2ConnectCost;
|
||||
|
||||
/* 802CC4C0-802CC738 2C6E00 0278+00 2/2 0/0 0/0 .text selectUnit__12Z2SpeechMgr2Fb */
|
||||
// NONMATCHING minor regalloc
|
||||
void Z2SpeechMgr2::selectUnit(bool param_0) {
|
||||
Z2ConnectCost cost[5];
|
||||
|
||||
|
@ -705,14 +713,14 @@ void Z2SpeechMgr2::selectUnit(bool param_0) {
|
|||
|
||||
if (field_0x401 != 0 && param_0) {
|
||||
cVar5 = 0;
|
||||
ZVar2 = field_0x402[field_0x401 - 1];
|
||||
s8 ZVar4 = field_0x402[field_0x401 - 1];
|
||||
|
||||
while (true) {
|
||||
bool bVar1 = false;
|
||||
ZVar3 = random.get_uint8(Z2MdnPrm::sPrm[mMood].field_0x8);
|
||||
ZVar2 = random.get_uint8(Z2MdnPrm::sPrm[mMood].field_0x8);
|
||||
|
||||
for (int i = 0; i < field_0x401; i++) {
|
||||
if (field_0x402[i] == ZVar3) {
|
||||
if (field_0x402[i] == ZVar2) {
|
||||
bVar1 = true;
|
||||
break;
|
||||
}
|
||||
|
@ -723,7 +731,7 @@ void Z2SpeechMgr2::selectUnit(bool param_0) {
|
|||
}
|
||||
|
||||
for (int i = 0; i < cVar5; i++) {
|
||||
if (ZVar3 == cost[i].field_0x0) {
|
||||
if (ZVar2 == cost[i].field_0x0) {
|
||||
bVar1 = true;
|
||||
break;
|
||||
}
|
||||
|
@ -733,23 +741,25 @@ void Z2SpeechMgr2::selectUnit(bool param_0) {
|
|||
continue;
|
||||
}
|
||||
|
||||
u8 local_3f = JMAAbs(Z2MdnPrm::sPrm[mMood].field_0x0[ZVar3 * 2]
|
||||
- Z2MdnPrm::sPrm[mMood].field_0x0[ZVar2 * 2 + 1]);
|
||||
cost[cVar5] = (Z2ConnectCost){ZVar3, local_3f};
|
||||
const u8 (*prm)[2] = (u8 (*)[2])Z2MdnPrm::sPrm[mMood].field_0x0;
|
||||
u8 local_3f = JMAAbs(prm[ZVar2][0] - prm[ZVar4][1]);
|
||||
Z2ConnectCost connectCost = {ZVar2, local_3f};
|
||||
cost[cVar5] = connectCost;
|
||||
cVar5++;
|
||||
|
||||
if (cVar5 == 5) {
|
||||
u16 tmp = cost[0].field_0x1;
|
||||
ZVar2 = cost[0].field_0x0;
|
||||
for (int i = 0; i < 5; i++) {
|
||||
if (cost[i].field_0x1 < tmp) {
|
||||
tmp = cost[i].field_0x1;
|
||||
ZVar2 = cost[i].field_0x0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
u16 tmp = cost[0].field_0x1;
|
||||
ZVar2 = cost[0].field_0x0;
|
||||
for (int i = 0; i < 5; i++) {
|
||||
if (cost[i].field_0x1 < tmp) {
|
||||
tmp = cost[i].field_0x1;
|
||||
ZVar2 = cost[i].field_0x0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
field_0x402[field_0x401] = ZVar2;
|
||||
|
@ -757,7 +767,6 @@ void Z2SpeechMgr2::selectUnit(bool param_0) {
|
|||
}
|
||||
|
||||
/* 802CC738-802CC9D0 2C7078 0298+00 1/1 0/0 0/0 .text selectTail__12Z2SpeechMgr2Fv */
|
||||
// NONMATCHING minor regalloc
|
||||
void Z2SpeechMgr2::selectTail() {
|
||||
Z2ConnectCost cost[5];
|
||||
s8 cVar9 = 0;
|
||||
|
@ -791,7 +800,8 @@ void Z2SpeechMgr2::selectTail() {
|
|||
if (!bVar5) {
|
||||
u8 local_3f = JMAAbs(Z2MdnPrm::sPrm[mMood].field_0x4[ZVar6]
|
||||
- Z2MdnPrm::sPrm[mMood].field_0x0[ZVar1 * 2 + 1]);
|
||||
cost[cVar9] = (Z2ConnectCost){ZVar6, local_3f};
|
||||
Z2ConnectCost connectCost = {ZVar6, local_3f};
|
||||
cost[cVar9] = connectCost;
|
||||
cVar9++;
|
||||
|
||||
if (cVar9 == bVar3 || cVar9 == 5) {
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
#include "JSystem/JGadget/pointer.h"
|
||||
#include "JSystem/JGadget/define.h"
|
||||
|
||||
/* 80450620-80450628 0000A0 0002+06 3/3 1/1 0/0 .sdata m_branchId__7dDemo_c */
|
||||
s16 dDemo_c::m_branchId = -1;
|
||||
|
||||
namespace {
|
||||
/* 80037DE4-80037E44 032724 0060+00 1/0 0/0 0/0 .text
|
||||
* __dt__Q220@unnamed@d_demo_cpp@24jstudio_tAdaptor_messageFv */
|
||||
|
@ -19,17 +22,14 @@ void jstudio_tAdaptor_message::adaptor_do_MESSAGE(JStudio::data::TEOperationData
|
|||
case JStudio::data::UNK_0x19:
|
||||
JUT_ASSERT(107, pContent!=0);
|
||||
JUT_ASSERT(108, uSize==4);
|
||||
dMsgObject_setDemoMessage(*(u32*)pContent);
|
||||
u32 content = *(u32*)pContent;
|
||||
dMsgObject_setDemoMessage(content);
|
||||
break;
|
||||
default:
|
||||
#ifdef DEBUG
|
||||
JGadget_outMessage msg(JGadget_outMessage::warning, __FILE__, 124);
|
||||
const char* id_string = adaptor_getID_string();
|
||||
|
||||
msg << "unknown data-type : ";
|
||||
msg << iType;
|
||||
msg << "\n demo-object : ";
|
||||
msg << id_string;
|
||||
msg << "unknown data-type : " << iType << "\n demo-object : " << adaptor_getID_string();
|
||||
int x = 0;
|
||||
#else
|
||||
break;
|
||||
#endif
|
||||
|
@ -48,24 +48,25 @@ jstudio_tCreateObject_message::create(JStudio::TObject** ppObject,
|
|||
const JStudio::stb::data::TParse_TBlock_object& iBlock) {
|
||||
JUT_ASSERT(168, ppObject!=0);
|
||||
|
||||
switch (iBlock.get_type()) {
|
||||
case 'JMSG': {
|
||||
jstudio_tAdaptor_message* adaptor = new jstudio_tAdaptor_message();
|
||||
if (adaptor == NULL) {
|
||||
return false;
|
||||
u32 type = iBlock.get_type();
|
||||
switch (type) {
|
||||
case 'JMSG':
|
||||
{
|
||||
jstudio_tAdaptor_message* adaptor = new jstudio_tAdaptor_message();
|
||||
if (adaptor == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
JGadget::TPointer_delete<JStudio::TAdaptor_message> sp8(adaptor);
|
||||
JStudio::TObject_message* object = JStudio::TCreateObject::createFromAdaptor<jstudio_tAdaptor_message>(iBlock, adaptor);
|
||||
if (object == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
sp8.set(NULL);
|
||||
*ppObject = object;
|
||||
}
|
||||
|
||||
JGadget::TPointer_delete<JStudio::TAdaptor_message> sp8(adaptor);
|
||||
JStudio::TObject_message* object = JStudio::TCreateObject::createFromAdaptor<jstudio_tAdaptor_message>(iBlock, adaptor);
|
||||
if (object == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
sp8.set(NULL);
|
||||
*ppObject = object;
|
||||
|
||||
return true;
|
||||
}
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
@ -96,6 +97,12 @@ dDemo_actor_c::~dDemo_actor_c() {
|
|||
mBtpId = -1;
|
||||
mBtkId = -1;
|
||||
mBrkId = -1;
|
||||
|
||||
#ifdef DEBUG
|
||||
if(dComIfGp_event_getMode() == 0) {
|
||||
g_dComIfG_gameInfo.play.getEvent().setDebugStb(0);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/* 80038128-8003815C 032A68 0034+00 1/1 0/0 0/0 .text getActor__13dDemo_actor_cFv */
|
||||
|
@ -214,6 +221,7 @@ u16 dDemo_c::m_branchType;
|
|||
/* 80450E44-80450E48 000344 0004+00 5/5 0/0 0/0 .sbss m_branchData__7dDemo_c */
|
||||
const u8* dDemo_c::m_branchData;
|
||||
|
||||
|
||||
/* 80038338-80038490 032C78 0158+00 0/0 1/1 5/5 .text getDemoIDData__13dDemo_actor_cFPiPiPiPUsPUc
|
||||
*/
|
||||
// NONMATCHING - some stack issues
|
||||
|
@ -222,7 +230,7 @@ int dDemo_actor_c::getDemoIDData(int* param_0, int* param_1, int* param_2, u16*
|
|||
JStudio::stb::TParseData_fixed<51, TValueIterator_misaligned<u32> > data(getPrm()->getData());
|
||||
|
||||
static JStudio::stb::TParseData_fixed<51, TValueIterator_misaligned<u32> > dummy;
|
||||
static JGadget::binary::TValueIterator_misaligned<u32> it(dummy.begin());
|
||||
static JGadget::binary::TValueIterator_misaligned<u32> it = dummy.begin();
|
||||
|
||||
if (it == data.end()) {
|
||||
it = dummy.begin();
|
||||
|
@ -247,16 +255,17 @@ int dDemo_actor_c::getDemoIDData(int* param_0, int* param_1, int* param_2, u16*
|
|||
return 1;
|
||||
}
|
||||
|
||||
s16 dDemo_c::m_branchNum = 0;
|
||||
|
||||
/* 80038490-80038518 032DD0 0088+00 1/1 0/0 0/0 .text dDemo_getJaiPointer__FPCcUliPUs */
|
||||
// NONMATCHING - slight problem with loop
|
||||
static void* dDemo_getJaiPointer(char const* arcName, u32 anmID, int param_2, u16* param_3) {
|
||||
if (param_2 <= 0 || param_3 == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int var_r31 = 0;
|
||||
|
||||
for (int i = 0; i < param_2; i++, var_r31 += 2) {
|
||||
int i;
|
||||
int var_r31;
|
||||
for (i = var_r31 = 0; i < param_2; i++, var_r31 += 2) {
|
||||
if ((u16)anmID == param_3[var_r31]) {
|
||||
return dComIfG_getObjectIDRes(arcName, param_3[var_r31 + 1]);
|
||||
}
|
||||
|
@ -348,11 +357,6 @@ static void branchFile(char const* resName) {
|
|||
dDemo_c::setBranchData(branchData);
|
||||
}
|
||||
|
||||
/* 80450620-80450628 0000A0 0002+06 3/3 1/1 0/0 .sdata m_branchId__7dDemo_c */
|
||||
s16 dDemo_c::m_branchId = -1;
|
||||
|
||||
s16 dDemo_c::m_branchNum = 0;
|
||||
|
||||
/* 800387EC-80038920 03312C 0134+00 1/0 0/0 0/0 .text JSGSetData__13dDemo_actor_cFUlPCvUl
|
||||
*/
|
||||
void dDemo_actor_c::JSGSetData(u32 id, void const* pdata, u32 param_2) {
|
||||
|
|
|
@ -647,6 +647,9 @@ dMeter_drawLightDropHIO_c::dMeter_drawLightDropHIO_c() {
|
|||
|
||||
/* 801FF5B8-802001AC 1F9EF8 0BF4+00 1/1 0/0 0/0 .text __ct__16dMeter_drawHIO_cFv */
|
||||
dMeter_drawHIO_c::dMeter_drawHIO_c() {
|
||||
#ifdef DEBUG
|
||||
field_0x8_debug = 0;
|
||||
#endif
|
||||
mLifeTopPosX = 40.0f;
|
||||
mLifeTopPosY = -5.6f;
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include "d/d_msg_object.h"
|
||||
#include "d/d_msg_out_font.h"
|
||||
#include "d/d_pane_class.h"
|
||||
#include "cstring.h"
|
||||
|
||||
/* 8023C0DC-8023C124 236A1C 0048+00 0/0 9/9 0/0 .text __ct__14dMsgScrnBase_cFv */
|
||||
dMsgScrnBase_c::dMsgScrnBase_c() {
|
||||
|
@ -29,8 +30,7 @@ void dMsgScrnBase_c::init() {
|
|||
field_0x4c = 0;
|
||||
mCharInfoPtr = NULL;
|
||||
|
||||
mFontSize.mSizeY = 0.0f;
|
||||
mFontSize.mSizeX = 0.0f;
|
||||
mFontSize.mSizeX = mFontSize.mSizeY = 0.0f;
|
||||
mRubySize = 0.0f;
|
||||
mTextBoxPosX = 0.0f;
|
||||
mTextBoxPosY = 0.0f;
|
||||
|
@ -86,11 +86,12 @@ void dMsgScrnBase_c::drawOutFont(f32 param_0, f32 param_1, f32 param_2) {
|
|||
}
|
||||
|
||||
/* 8023C360-8023C3EC 236CA0 008C+00 0/0 2/2 0/0 .text setString__14dMsgScrnBase_cFPcPc */
|
||||
void dMsgScrnBase_c::setString(char* i_stringA, char* i_stringB) {
|
||||
void dMsgScrnBase_c::setString(char* mpText, char* i_stringB) {
|
||||
for (int i = 0; i < 7; i++) {
|
||||
if (mpTm_c[i] != NULL) {
|
||||
JUT_ASSERT(262, ((J2DTextBox*)(mpTm_c[i]->getPanePtr()))->getStringAllocByte() > std::strlen(mpText));
|
||||
if (i == 0) {
|
||||
strcpy(((J2DTextBox*)mpTm_c[i]->getPanePtr())->getStringPtr(), i_stringA);
|
||||
strcpy(((J2DTextBox*)mpTm_c[i]->getPanePtr())->getStringPtr(), mpText);
|
||||
} else {
|
||||
strcpy(((J2DTextBox*)mpTm_c[i]->getPanePtr())->getStringPtr(), i_stringB);
|
||||
}
|
||||
|
@ -100,10 +101,11 @@ void dMsgScrnBase_c::setString(char* i_stringA, char* i_stringB) {
|
|||
|
||||
/* 8023C3EC-8023C458 236D2C 006C+00 0/0 2/2 0/0 .text setRubyString__14dMsgScrnBase_cFPc
|
||||
*/
|
||||
void dMsgScrnBase_c::setRubyString(char* i_string) {
|
||||
void dMsgScrnBase_c::setRubyString(char* mpText) {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (mpTmr_c[i] != NULL) {
|
||||
strcpy(((J2DTextBox*)mpTmr_c[i]->getPanePtr())->getStringPtr(), i_string);
|
||||
JUT_ASSERT(288, ((J2DTextBox*)(mpTmr_c[i]->getPanePtr()))->getStringAllocByte() > std::strlen(mpText));
|
||||
strcpy(((J2DTextBox*)mpTmr_c[i]->getPanePtr())->getStringPtr(), mpText);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -139,7 +141,7 @@ void dMsgScrnBase_c::fontAlpha(f32 i_alpha) {
|
|||
|
||||
/* 8023C574-8023C5C8 236EB4 0054+00 1/0 8/8 0/0 .text isTalkNow__14dMsgScrnBase_cFv */
|
||||
bool dMsgScrnBase_c::isTalkNow() {
|
||||
switch (dMsgObject_c::getStatus()) {
|
||||
switch (dMsgObject_getMsgObjectClass()->getStatus()) {
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
|
@ -153,4 +155,4 @@ bool dMsgScrnBase_c::isTalkNow() {
|
|||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: msg/scrn/d_msg_scrn_item
|
||||
// Item Message Screen
|
||||
//
|
||||
|
||||
#include "d/d_msg_scrn_item.h"
|
||||
|
@ -13,7 +12,9 @@
|
|||
#include "d/d_meter_HIO.h"
|
||||
#include "d/d_item_data.h"
|
||||
#include "d/d_pane_class.h"
|
||||
#include "d/d_s_play.h"
|
||||
#include "m_Do/m_Do_lib.h"
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
#include "JSystem/J2DGraph/J2DAnmLoader.h"
|
||||
#include "JSystem/J2DGraph/J2DScreen.h"
|
||||
#include "JSystem/J2DGraph/J2DGrafContext.h"
|
||||
|
@ -32,6 +33,13 @@ dMsgScrnItem_c::dMsgScrnItem_c(u8 param_1, u8 param_2, JKRExpHeap* param_3) {
|
|||
int iVar6 = dMsgObject_getMessageID();
|
||||
bool bVar5 = false;
|
||||
|
||||
#ifdef DEBUG
|
||||
if (dMsgObject_getMessageID() >= 0x10cc && dMsgObject_getMessageID() < 0x11cc) {
|
||||
mItemIndex = dMsgObject_getMessageID() - 0x10cc;
|
||||
bVar5 = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (iVar6 >= 0x645 && iVar6 <= 0x648) {
|
||||
mItemIndex = iVar6 - 0x641;
|
||||
bVar5 = true;
|
||||
|
@ -95,6 +103,7 @@ dMsgScrnItem_c::dMsgScrnItem_c(u8 param_1, u8 param_2, JKRExpHeap* param_3) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (isOugiID()) {
|
||||
JKRReadIdxResource(mpItemTex[0], 0xc00, 0x3d, dComIfGp_getItemIconArchive());
|
||||
field_0x0e0[0] = (ResTIMG*)mpItemTex[0];
|
||||
|
@ -348,23 +357,29 @@ void dMsgScrnItem_c::exec() {
|
|||
}
|
||||
|
||||
/* 8023FB24-8023FF30 23A464 040C+00 1/0 0/0 0/0 .text drawSelf__14dMsgScrnItem_cFv */
|
||||
// NONMATCHING Issues with float regs order
|
||||
void dMsgScrnItem_c::drawSelf() {
|
||||
J2DGrafContext* grafContext = dComIfGp_getCurrentGrafPort();
|
||||
grafContext->setup2D();
|
||||
u8* iVar6 = (u8*)mCharInfoPtr;
|
||||
if (*(s16*)(iVar6 + 0x1068) > 0) {
|
||||
s16* pLen = (short*)((u8*)mCharInfoPtr + 0x1068);
|
||||
if (*pLen > 0) {
|
||||
f32 dVar12 = mpTm_c[0]->getAlphaRate();
|
||||
for (int i = 0; i < *(short*)(iVar6 + 0x1068); i = i + 1) {
|
||||
for (int i = 0; i < *pLen; i = i + 1) {
|
||||
mpLight_c->draw(&mCharInfoPtr[i].field_0x14, mCharInfoPtr[i].field_0x00,
|
||||
mCharInfoPtr[i].field_0x04, mCharInfoPtr[i].field_0x08,
|
||||
mCharInfoPtr[i].field_0x0c,
|
||||
dVar12 * g_MsgObject_HIO_c.mBoxItemHaloAlpha, mCharInfoPtr[i].mColorNo);
|
||||
}
|
||||
}
|
||||
mpTm_c[0]->getGlobalPosX();
|
||||
drawOutFont(g_MsgObject_HIO_c.mBoxItemTextPosX - 2.0f, g_MsgObject_HIO_c.mBoxItemTextPosY,
|
||||
1.0f);
|
||||
|
||||
f32 globalPosX = mpTm_c[0]->getGlobalPosX();
|
||||
if (mDoGph_gInf_c::isWide()) {
|
||||
drawOutFont(g_MsgObject_HIO_c.mBoxItemTextPosX + 7.0f + YREG_F(2),
|
||||
g_MsgObject_HIO_c.mBoxItemTextPosY, 1.0f);
|
||||
} else {
|
||||
drawOutFont(g_MsgObject_HIO_c.mBoxItemTextPosX - 2.0f + YREG_F(2),
|
||||
g_MsgObject_HIO_c.mBoxItemTextPosY, 1.0f);
|
||||
}
|
||||
|
||||
mpTxScreen->draw(0.0f, 0.0f, grafContext);
|
||||
mpSelect_c->draw(0.0f, 0.0f);
|
||||
mpArrow_c->draw();
|
||||
|
@ -414,17 +429,19 @@ void dMsgScrnItem_c::drawSelf() {
|
|||
if (g_drawHIO.mItemScaleAdjustON == true) {
|
||||
texScale = (g_drawHIO.mItemScalePercent / 100.0f);
|
||||
} else if (mItemIndex >= 0 && mItemIndex <= 0xff) {
|
||||
texScale = dItem_data::item_resource[(u8)mItemIndex].getTexScale() / 100.0f;
|
||||
texScale = dItem_data::getTexScale(mItemIndex) / 100.0f;
|
||||
} else {
|
||||
texScale = 1.0f;
|
||||
};
|
||||
// operation order is wrong here
|
||||
mpItemPane[i]->draw(
|
||||
mpScreen->search('set_it_n')->getGlbBounds().i.x + g_MsgObject_HIO_c.mBoxItemPosX +
|
||||
(field_0x174 - (field_0x17c * texScale)) / 2,
|
||||
mpScreen->search('set_it_n')->getGlbBounds().i.y + g_MsgObject_HIO_c.mBoxItemPosY +
|
||||
(field_0x170 - (field_0x178 * texScale)) / 2,
|
||||
field_0x19e, false, false);
|
||||
|
||||
mpItemPane[i]->draw(mpScreen->search('set_it_n')->getGlbBounds().i.x +
|
||||
0.5f * (field_0x170 - (field_0x178 * texScale)) +
|
||||
g_MsgObject_HIO_c.mBoxItemPosX,
|
||||
mpScreen->search('set_it_n')->getGlbBounds().i.y +
|
||||
0.5f * (field_0x174 - (field_0x17c * texScale)) +
|
||||
g_MsgObject_HIO_c.mBoxItemPosY,
|
||||
field_0x178 * texScale, field_0x17c * texScale, field_0x19e, false,
|
||||
false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -596,7 +613,6 @@ void dMsgScrnItem_c::fukiPosCalc(u8 param_1) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/* 8024074C-802407E8 23B08C 009C+00 1/1 0/0 0/0 .text
|
||||
* setBtk0Animation__14dMsgScrnItem_cFP19J2DAnmTextureSRTKey */
|
||||
void dMsgScrnItem_c::setBtk0Animation(J2DAnmTextureSRTKey* param_1) {
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: msg/scrn/d_msg_scrn_talk
|
||||
//
|
||||
|
||||
|
@ -17,161 +16,6 @@
|
|||
#include "JSystem/JKernel/JKRExpHeap.h"
|
||||
#include "JSystem/J2DGraph/J2DGrafContext.h"
|
||||
#include "JSystem/J2DGraph/J2DScreen.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__14dMsgScrnTalk_cFUcUcP10JKRExpHeap();
|
||||
extern "C" void __dt__14dMsgScrnTalk_cFv();
|
||||
extern "C" void exec__14dMsgScrnTalk_cFv();
|
||||
extern "C" void drawSelf__14dMsgScrnTalk_cFv();
|
||||
extern "C" void arwAnimeInit__14dMsgScrnTalk_cFv();
|
||||
extern "C" void arwAnimeMove__14dMsgScrnTalk_cFv();
|
||||
extern "C" void dotAnimeInit__14dMsgScrnTalk_cFv();
|
||||
extern "C" void dotAnimeMove__14dMsgScrnTalk_cFv();
|
||||
extern "C" void setSelectString__14dMsgScrnTalk_cFPcPcPc();
|
||||
extern "C" void setSelectRubyString__14dMsgScrnTalk_cFPcPcPc();
|
||||
extern "C" void isSelect__14dMsgScrnTalk_cFv();
|
||||
extern "C" void selectAnimeInit__14dMsgScrnTalk_cFUcUcfUc();
|
||||
extern "C" void selectAnimeMove__14dMsgScrnTalk_cFUcUcb();
|
||||
extern "C" void selectAnimeEnd__14dMsgScrnTalk_cFv();
|
||||
extern "C" void fukiScale__14dMsgScrnTalk_cFf();
|
||||
extern "C" void fukiTrans__14dMsgScrnTalk_cFff();
|
||||
extern "C" void fukiAlpha__14dMsgScrnTalk_cFf();
|
||||
extern "C" void fukiPosCalc__14dMsgScrnTalk_cFUc();
|
||||
extern "C" extern char const* const msg_scrn_d_msg_scrn_talk__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoExt_getMesgFont__Fv();
|
||||
extern "C" void mDoLib_project__FP3VecP3Vec();
|
||||
extern "C" void dComIfGp_getSubHeap2D__Fi();
|
||||
extern "C" void
|
||||
drawPikari__13dMeter2Draw_cFffPffQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorfUc();
|
||||
extern "C" void getActor__12dMsgObject_cFv();
|
||||
extern "C" void __ct__17dMsgScrn3Select_cFv();
|
||||
extern "C" void isSelect__17dMsgScrn3Select_cFv();
|
||||
extern "C" void setString__17dMsgScrn3Select_cFPcPcPc();
|
||||
extern "C" void setRubyString__17dMsgScrn3Select_cFPcPcPc();
|
||||
extern "C" void translate__17dMsgScrn3Select_cFff();
|
||||
extern "C" void draw__17dMsgScrn3Select_cFff();
|
||||
extern "C" void selAnimeInit__17dMsgScrn3Select_cFUcUcUcfUc();
|
||||
extern "C" void selAnimeMove__17dMsgScrn3Select_cFUcUcb();
|
||||
extern "C" void selAnimeEnd__17dMsgScrn3Select_cFv();
|
||||
extern "C" void getTextBoxWidth__17dMsgScrn3Select_cFv();
|
||||
extern "C" void getFontSize__17dMsgScrn3Select_cFv();
|
||||
extern "C" void getRubyFontSize__17dMsgScrn3Select_cFv();
|
||||
extern "C" void getCharSpace__17dMsgScrn3Select_cFv();
|
||||
extern "C" void getRubyCharSpace__17dMsgScrn3Select_cFv();
|
||||
extern "C" void getTextBoxGlobalPosX__17dMsgScrn3Select_cFi();
|
||||
extern "C" void getTextBoxGlobalPosY__17dMsgScrn3Select_cFi();
|
||||
extern "C" void __ct__15dMsgScrnArrow_cFv();
|
||||
extern "C" void draw__15dMsgScrnArrow_cFv();
|
||||
extern "C" void setPos__15dMsgScrnArrow_cFff();
|
||||
extern "C" void arwAnimeInit__15dMsgScrnArrow_cFv();
|
||||
extern "C" void arwAnimeMove__15dMsgScrnArrow_cFv();
|
||||
extern "C" void dotAnimeInit__15dMsgScrnArrow_cFv();
|
||||
extern "C" void dotAnimeMove__15dMsgScrnArrow_cFv();
|
||||
extern "C" void __ct__14dMsgScrnBase_cFv();
|
||||
extern "C" void __dt__14dMsgScrnBase_cFv();
|
||||
extern "C" void init__14dMsgScrnBase_cFv();
|
||||
extern "C" void multiDraw__14dMsgScrnBase_cFv();
|
||||
extern "C" void draw__14dMsgScrnBase_cFv();
|
||||
extern "C" void drawOutFont__14dMsgScrnBase_cFfff();
|
||||
extern "C" void fontAlpha__14dMsgScrnBase_cFf();
|
||||
extern "C" void isTalkNow__14dMsgScrnBase_cFv();
|
||||
extern "C" void __ct__15dMsgScrnLight_cFUcUc();
|
||||
extern "C" void draw__15dMsgScrnLight_cFPffffffUc();
|
||||
extern "C" void __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap();
|
||||
extern "C" void reinit__8CPaneMgrFv();
|
||||
extern "C" void getGlobalPosX__8CPaneMgrFv();
|
||||
extern "C" void getGlobalPosY__8CPaneMgrFv();
|
||||
extern "C" void setBlackWhite__8CPaneMgrFQ28JUtility6TColorQ28JUtility6TColor();
|
||||
extern "C" void getGlobalVtxCenter__8CPaneMgrFP7J2DPanebs();
|
||||
extern "C" void dPaneClass_showNullPane__FP9J2DScreen();
|
||||
extern "C" void setAlphaRate__13CPaneMgrAlphaFf();
|
||||
extern "C" void getAlphaRate__13CPaneMgrAlphaFv();
|
||||
extern "C" bool __eq__4cXyzCFRC3Vec();
|
||||
extern "C" void alloc__7JKRHeapFUli();
|
||||
extern "C" void free__7JKRHeapFPv();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void getBounds__7J2DPaneFv();
|
||||
extern "C" void __ct__9J2DScreenFv();
|
||||
extern "C" void setPriority__9J2DScreenFPCcUlP10JKRArchive();
|
||||
extern "C" void draw__9J2DScreenFffPC14J2DGrafContext();
|
||||
extern "C" void setString__10J2DTextBoxFsPCce();
|
||||
extern "C" void _savegpr_21();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_21();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80399BB0-80399BB0 026210 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80399BB0 = "zelda_message_window_new.blo";
|
||||
SECTION_DEAD static char const* const stringBase_80399BCD = "zelda_message_window_text_seirei.blo";
|
||||
SECTION_DEAD static char const* const stringBase_80399BF2 = "zelda_message_window_text.blo";
|
||||
SECTION_DEAD static char const* const stringBase_80399C10 = "";
|
||||
#pragma pop
|
||||
|
||||
/* 803C13C8-803C1420 01E4E8 0058+00 2/2 0/0 0/0 .data __vt__14dMsgScrnTalk_c */
|
||||
SECTION_DATA extern void* __vt__14dMsgScrnTalk_c[22] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)draw__14dMsgScrnBase_cFv,
|
||||
(void*)__dt__14dMsgScrnTalk_cFv,
|
||||
(void*)exec__14dMsgScrnTalk_cFv,
|
||||
(void*)multiDraw__14dMsgScrnBase_cFv,
|
||||
(void*)drawSelf__14dMsgScrnTalk_cFv,
|
||||
(void*)setSelectString__14dMsgScrnTalk_cFPcPcPc,
|
||||
(void*)setSelectRubyString__14dMsgScrnTalk_cFPcPcPc,
|
||||
(void*)arwAnimeInit__14dMsgScrnTalk_cFv,
|
||||
(void*)arwAnimeMove__14dMsgScrnTalk_cFv,
|
||||
(void*)dotAnimeInit__14dMsgScrnTalk_cFv,
|
||||
(void*)dotAnimeMove__14dMsgScrnTalk_cFv,
|
||||
(void*)isSelect__14dMsgScrnTalk_cFv,
|
||||
(void*)selectAnimeInit__14dMsgScrnTalk_cFUcUcfUc,
|
||||
(void*)selectAnimeMove__14dMsgScrnTalk_cFUcUcb,
|
||||
(void*)selectAnimeEnd__14dMsgScrnTalk_cFv,
|
||||
(void*)fukiScale__14dMsgScrnTalk_cFf,
|
||||
(void*)fukiTrans__14dMsgScrnTalk_cFff,
|
||||
(void*)fukiAlpha__14dMsgScrnTalk_cFf,
|
||||
(void*)fontAlpha__14dMsgScrnBase_cFf,
|
||||
(void*)fukiPosCalc__14dMsgScrnTalk_cFUc,
|
||||
};
|
||||
|
||||
/* 80454D00-80454D04 003300 0004+00 2/2 0/0 0/0 .sdata2 @4086 */
|
||||
SECTION_SDATA2 static f32 lit_4086 = 18.0f;
|
||||
|
||||
/* 80454D04-80454D08 003304 0004+00 3/3 0/0 0/0 .sdata2 @4087 */
|
||||
SECTION_SDATA2 static u8 lit_4087[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
|
||||
/* 80454D08-80454D0C 003308 0004+00 1/1 0/0 0/0 .sdata2 @4088 */
|
||||
SECTION_SDATA2 static f32 lit_4088 = -10.0f;
|
||||
|
||||
/* 80454D0C-80454D10 00330C 0004+00 1/1 0/0 0/0 .sdata2 @4089 */
|
||||
SECTION_SDATA2 static f32 lit_4089 = 6.0f / 5.0f;
|
||||
|
||||
/* 80246FF0-80247A90 241930 0AA0+00 0/0 1/1 0/0 .text __ct__14dMsgScrnTalk_cFUcUcP10JKRExpHeap */
|
||||
dMsgScrnTalk_c::dMsgScrnTalk_c(u8 param_1, u8 param_2, JKRExpHeap* param_3) {
|
||||
|
@ -341,7 +185,6 @@ dMsgScrnTalk_c::dMsgScrnTalk_c(u8 param_1, u8 param_2, JKRExpHeap* param_3) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/* 80247A90-80247D34 2423D0 02A4+00 1/0 0/0 0/0 .text __dt__14dMsgScrnTalk_cFv */
|
||||
dMsgScrnTalk_c::~dMsgScrnTalk_c() {
|
||||
delete mpScreen;
|
||||
|
@ -383,10 +226,6 @@ dMsgScrnTalk_c::~dMsgScrnTalk_c() {
|
|||
dComIfGp_getMsgCommonArchive()->removeResourceAll();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80454D10-80454D14 003310 0004+00 2/2 0/0 0/0 .sdata2 @4197 */
|
||||
SECTION_SDATA2 static f32 lit_4197 = 1.0f;
|
||||
|
||||
/* 80247D34-80247E4C 242674 0118+00 1/0 0/0 0/0 .text exec__14dMsgScrnTalk_cFv */
|
||||
void dMsgScrnTalk_c::exec() {
|
||||
if (isTalkNow()) {
|
||||
|
@ -406,24 +245,15 @@ void dMsgScrnTalk_c::exec() {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80454D14-80454D18 003314 0004+00 1/1 0/0 0/0 .sdata2 @4278 */
|
||||
SECTION_SDATA2 static f32 lit_4278 = 4.0f / 5.0f;
|
||||
|
||||
/* 80454D18-80454D1C 003318 0004+00 1/1 0/0 0/0 .sdata2 @4279 */
|
||||
SECTION_SDATA2 static f32 lit_4279 = -1.0f;
|
||||
|
||||
/* 80247E4C-802480F0 24278C 02A4+00 1/0 0/0 0/0 .text drawSelf__14dMsgScrnTalk_cFv */
|
||||
// NONMATCHING - regalloc
|
||||
void dMsgScrnTalk_c::drawSelf() {
|
||||
CharInfo_c* pCharInfo;
|
||||
J2DGrafContext* grafContext = dComIfGp_getCurrentGrafPort();
|
||||
grafContext->setup2D();
|
||||
pCharInfo = mCharInfoPtr;
|
||||
if (*(s16*)(pCharInfo + 150) > 0) {
|
||||
J2DGrafContext* grafContext[1];
|
||||
grafContext[0] = dComIfGp_getCurrentGrafPort();
|
||||
grafContext[0]->setup2D();
|
||||
s16* pLen = (s16*)(mCharInfoPtr + 150);
|
||||
if (*pLen > 0) {
|
||||
f32 dVar10 = mpTm_c[0]->getAlphaRate();
|
||||
for (int i = 0; i < *(s16*)(pCharInfo + 150); i++) {
|
||||
for (int i = 0; i < *pLen; i++) {
|
||||
if (dMsgObject_getMsgObjectClass()->getFukiKind() == 8) {
|
||||
if (field_0xf8[i] >= 0.0f) {
|
||||
f32 fVar1;
|
||||
|
@ -465,7 +295,7 @@ void dMsgScrnTalk_c::drawSelf() {
|
|||
}
|
||||
}
|
||||
drawOutFont(0.0f, 0.0f, 1.0f);
|
||||
mpTxScreen->draw(0.0f, 0.0f, grafContext);
|
||||
mpTxScreen->draw(0.0f, 0.0f, grafContext[0]);
|
||||
if (mpSelect_c != NULL) {
|
||||
mpSelect_c->draw(0.0f, 0.0f);
|
||||
}
|
||||
|
@ -560,50 +390,6 @@ void dMsgScrnTalk_c::fukiAlpha(f32 param_1) {
|
|||
}
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80454D1C-80454D20 00331C 0004+00 1/1 0/0 0/0 .sdata2 @4489 */
|
||||
SECTION_SDATA2 static f32 lit_4489 = 608.0f;
|
||||
|
||||
/* 80454D20-80454D24 003320 0004+00 1/1 0/0 0/0 .sdata2 @4490 */
|
||||
SECTION_SDATA2 static f32 lit_4490 = 448.0f;
|
||||
|
||||
/* 80454D24-80454D28 003324 0004+00 1/1 0/0 0/0 .sdata2 @4491 */
|
||||
SECTION_SDATA2 static f32 lit_4491 = 0.5f;
|
||||
|
||||
/* 80454D28-80454D2C 003328 0004+00 1/1 0/0 0/0 .sdata2 @4492 */
|
||||
SECTION_SDATA2 static f32 lit_4492 = 50.0f;
|
||||
|
||||
/* 80454D2C-80454D30 00332C 0004+00 1/1 0/0 0/0 .sdata2 @4493 */
|
||||
SECTION_SDATA2 static f32 lit_4493 = 105.0f;
|
||||
|
||||
/* 80454D30-80454D34 003330 0004+00 1/1 0/0 0/0 .sdata2 @4494 */
|
||||
SECTION_SDATA2 static f32 lit_4494 = 486.0f;
|
||||
|
||||
/* 80454D34-80454D38 003334 0004+00 1/1 0/0 0/0 .sdata2 @4495 */
|
||||
SECTION_SDATA2 static f32 lit_4495 = 230.0f;
|
||||
|
||||
/* 80454D38-80454D3C 003338 0004+00 1/1 0/0 0/0 .sdata2 @4496 */
|
||||
SECTION_SDATA2 static f32 lit_4496 = 235.0f;
|
||||
|
||||
/* 80454D3C-80454D40 00333C 0004+00 1/1 0/0 0/0 .sdata2 @4497 */
|
||||
SECTION_SDATA2 static f32 lit_4497 = 355.0f;
|
||||
|
||||
/* 80454D40-80454D44 003340 0004+00 1/1 0/0 0/0 .sdata2 @4498 */
|
||||
SECTION_SDATA2 static f32 lit_4498 = 209.0f;
|
||||
|
||||
/* 80454D44-80454D48 003344 0004+00 1/1 0/0 0/0 .sdata2 @4499 */
|
||||
SECTION_SDATA2 static f32 lit_4499 = -190.0f;
|
||||
|
||||
/* 80454D48-80454D50 003348 0004+04 1/1 0/0 0/0 .sdata2 @4500 */
|
||||
SECTION_SDATA2 static f32 lit_4500[1 + 1 /* padding */] = {
|
||||
190.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 80454D50-80454D58 003350 0008+00 1/1 0/0 0/0 .sdata2 @4502 */
|
||||
SECTION_SDATA2 static f64 lit_4502 = 4503601774854144.0 /* cast s32 to float */;
|
||||
|
||||
/* 8024835C-80248954 242C9C 05F8+00 1/0 0/0 0/0 .text fukiPosCalc__14dMsgScrnTalk_cFUc */
|
||||
void dMsgScrnTalk_c::fukiPosCalc(u8 param_1) {
|
||||
msg_class* msgActor = dMsgObject_c::getActor();
|
||||
|
@ -659,7 +445,7 @@ void dMsgScrnTalk_c::fukiPosCalc(u8 param_1) {
|
|||
switch (field_0x488) {
|
||||
case 1:
|
||||
dVar15 = g_MsgObject_HIO_c.mBoxPos[2][0];
|
||||
field_0xf0 = 235.0f - (mpScreen->search('n_all')->getBounds().i.y +
|
||||
field_0xf0 = 105.0f - (mpScreen->search('n_all')->getBounds().i.y +
|
||||
mpScreen->search('n_all')->getBounds().f.y) / 2;
|
||||
if (mpSelect_c != NULL) {
|
||||
mpSelect_c->translate(486.0f, 230.0f);
|
||||
|
@ -667,7 +453,7 @@ void dMsgScrnTalk_c::fukiPosCalc(u8 param_1) {
|
|||
break;
|
||||
case 2:
|
||||
dVar15 = g_MsgObject_HIO_c.mBoxPos[1][0];
|
||||
field_0xf0 = 105.0f - (mpScreen->search('n_all')->getBounds().i.y +
|
||||
field_0xf0 = 235.0f - (mpScreen->search('n_all')->getBounds().i.y +
|
||||
mpScreen->search('n_all')->getBounds().f.y) / 2;
|
||||
if (mpSelect_c != NULL) {
|
||||
mpSelect_c->translate(486.0f, 355.0f);
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
//
|
||||
|
||||
#include "d/d_msg_unit.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "stdio.h"
|
||||
#include "d/d_kankyo.h"
|
||||
#include "d/d_meter2_info.h"
|
||||
|
@ -18,10 +19,15 @@ dMsgUnit_c::~dMsgUnit_c() {}
|
|||
// NONMATCHING - regalloc
|
||||
void dMsgUnit_c::setTag(int param_1, int param_2, char* param_3, bool param_4) {
|
||||
*param_3 = 0;
|
||||
bool stack9 = false;
|
||||
bool stack8 = false;
|
||||
int param_2b = param_2;
|
||||
if (param_1 == 0x10000) {
|
||||
sprintf(param_3, "%d", param_2);
|
||||
} else if (param_1 == 0x10001) {
|
||||
sprintf(param_3, "%d-%d", param_2 / 10, param_2 % 10);
|
||||
int tens_digit = param_2 / 10;
|
||||
int ones_digit = param_2 % 10;
|
||||
sprintf(param_3, "%d-%d", tens_digit, ones_digit);
|
||||
} else if (param_1 == 4 && param_4 == true) {
|
||||
int r6 = param_2 / 1000;
|
||||
int r5 = r6 / 60;
|
||||
|
@ -34,51 +40,83 @@ void dMsgUnit_c::setTag(int param_1, int param_2, char* param_3, bool param_4) {
|
|||
sprintf(param_3, "%d:%02d", r5, r6);
|
||||
}
|
||||
} else if (param_1 == 3 && param_4 == true) {
|
||||
f32 iVar8b;
|
||||
f32 dayTime = g_env_light.getDaytime();
|
||||
f32 iVar8 = 1000000.0f * dayTime;
|
||||
iVar8 = ((s32)iVar8 % 15000000) / 1000000.0f;
|
||||
iVar8 = 60.0f * (iVar8 / 15.0f);
|
||||
sprintf(param_3, "%d:%02d", (s32)(dayTime / 15.0f), (s32)iVar8);
|
||||
f32 fVar1 = dayTime / 15.0f;
|
||||
iVar8b = ((s32)(1000000.0f * dayTime) % 15000000) / 1000000.0f;
|
||||
f32 iVar8c = 60.0f * (iVar8b / 15.0f);
|
||||
iVar8b = ((s32)(1000000.0f * dayTime) % 250000) / 1000000.0f;
|
||||
f32 iVar9 = 60.0f * (iVar8b / 0.25f);
|
||||
sprintf(param_3, "%d:%02d", (s32)(fVar1), (s32)iVar8c);
|
||||
} else {
|
||||
if (param_1 == 9 && param_4 == true) {
|
||||
sprintf(param_3, "%d", param_2);
|
||||
int param_2c = param_2;
|
||||
sprintf(param_3, "%d", param_2c);
|
||||
stack8 = true;
|
||||
}
|
||||
bmg_header_t* iVar9 = (bmg_header_t*)dMeter2Info_getMsgUnitResource();
|
||||
inf1_section_t* inf1 = NULL;
|
||||
str1_section_t* str1 = NULL;
|
||||
int local_114 = sizeof(bmg_header_t);
|
||||
u32 size = iVar9->size;
|
||||
bmg_section_t* piVar12 = iVar9->section;
|
||||
for (; local_114 < size; local_114 += piVar12->size) {
|
||||
switch(piVar12->msgType) {
|
||||
case 'FLW1':
|
||||
break;
|
||||
case 'FLI1':
|
||||
break;
|
||||
case 'DAT1':
|
||||
break;
|
||||
case 'INF1':
|
||||
inf1 = (inf1_section_t*)piVar12;
|
||||
break;
|
||||
case 'STR1':
|
||||
str1 = (str1_section_t*)piVar12;
|
||||
break;
|
||||
|
||||
if (!stack9) {
|
||||
bmg_header_t* iVar9 = (bmg_header_t*)dMeter2Info_getMsgUnitResource();
|
||||
inf1_section_t* inf1 = NULL;
|
||||
const void* dat1 = NULL;
|
||||
str1_section_t* str1 = NULL;
|
||||
int local_114 = sizeof(bmg_header_t);
|
||||
u32 size = iVar9->size;
|
||||
bmg_section_t* piVar12 = (bmg_section_t*)(((u8*)iVar9) + local_114);
|
||||
for (; local_114 < size; local_114 += piVar12->size) {
|
||||
switch(piVar12->msgType) {
|
||||
case 'FLW1':
|
||||
break;
|
||||
case 'FLI1':
|
||||
break;
|
||||
case 'INF1':
|
||||
inf1 = (inf1_section_t*)piVar12;
|
||||
break;
|
||||
case 'DAT1':
|
||||
dat1 = piVar12;
|
||||
break;
|
||||
case 'STR1':
|
||||
str1 = (str1_section_t*)piVar12;
|
||||
break;
|
||||
}
|
||||
piVar12 = (bmg_section_t*)((u8*)piVar12 + piVar12->size);
|
||||
}
|
||||
|
||||
// This section is weird. The debug seems like entriesStr is outside the condition
|
||||
// but the normal build doesn't really work with that. Same for inf1->entries.
|
||||
|
||||
#ifdef DEBUG
|
||||
inf1_entry_t* entry = &inf1->entries[param_1];
|
||||
u32 dat1EntryOffset = entry->dat1EntryOffset;
|
||||
u16 startFrame = entry->startFrame;
|
||||
u16 endFrame = entry->endFrame;
|
||||
const char* entriesStr = str1->entries->str;
|
||||
#else
|
||||
u16 startFrame = inf1->entries[param_1].startFrame;
|
||||
u16 endFrame = inf1->entries[param_1].endFrame;
|
||||
const char* entriesStr;
|
||||
#endif
|
||||
const char* uVar5;
|
||||
if (param_2 == 1
|
||||
#ifdef DEBUG
|
||||
|| (dComIfGs_getPalLanguage() == 3 && param_2 == 0)
|
||||
#endif
|
||||
) {
|
||||
#ifdef DEBUG
|
||||
uVar5 = entriesStr + endFrame;
|
||||
} else {
|
||||
uVar5 = entriesStr + startFrame;
|
||||
#else
|
||||
uVar5 = str1->entries->str + endFrame;
|
||||
} else {
|
||||
uVar5 = str1->entries->str + startFrame;
|
||||
#endif
|
||||
}
|
||||
if (strcmp(uVar5, "") == 0) {
|
||||
sprintf(param_3, "%d%s", param_2, uVar5);
|
||||
} else {
|
||||
sprintf(param_3, "%d %s", param_2, uVar5);
|
||||
}
|
||||
piVar12 = (bmg_section_t*)((u8*)piVar12 + piVar12->size);
|
||||
}
|
||||
|
||||
u32 uVar1 = inf1->entries[param_1].startFrame;
|
||||
u32 uVar2 = inf1->entries[param_1].endFrame;
|
||||
const char* uVar5;
|
||||
if (param_2 == 1) {
|
||||
uVar5 = str1->entries->str + uVar1;
|
||||
} else {
|
||||
uVar5 = str1->entries->str + uVar2;
|
||||
}
|
||||
if (strcmp(uVar5, "") == 0) {
|
||||
sprintf(param_3, "%d%s", param_2, uVar5);
|
||||
} else {
|
||||
sprintf(param_3, "%d %s", param_2, uVar5);
|
||||
}
|
||||
if (param_1 == 3 && param_4 == true) {
|
||||
char acStack_d8[20];
|
||||
|
@ -87,7 +125,7 @@ void dMsgUnit_c::setTag(int param_1, int param_2, char* param_3, bool param_4) {
|
|||
}
|
||||
if (param_1 == 4 && param_4 == true) {
|
||||
char acStack_ec[20];
|
||||
setTag(5, param_2, acStack_ec, false);
|
||||
setTag(5, param_2b, acStack_ec, false);
|
||||
strcat(param_3, acStack_ec);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue