mirror of
https://github.com/zeldaret/ph
synced 2026-06-24 09:01:30 -04:00
more vfuncs progress
This commit is contained in:
@@ -18,6 +18,18 @@ struct UnkStruct_027e103c {
|
||||
/* 24 */ u8 mUnk_24;
|
||||
/* 25 */ unk8 mUnk_25[7];
|
||||
/* 2c */
|
||||
|
||||
void func_ov000_020cf284(unk32, unk32);
|
||||
|
||||
unk32 func_ov000_020cf4bc(void);
|
||||
unk8* func_ov000_020cef9c(void);
|
||||
void func_ov000_020cfb38(void);
|
||||
unk32 func_ov000_020cf488(void);
|
||||
void func_ov000_020cfa24(void);
|
||||
void func_ov000_020cfe40(unk32, unk32);
|
||||
void func_ov005_02104028(unk32);
|
||||
unk32 func_ov000_020cf0bc(void);
|
||||
void func_ov005_02103f8c(unk32*);
|
||||
};
|
||||
|
||||
extern UnkStruct_027e103c *data_027e103c;
|
||||
|
||||
@@ -124,6 +124,8 @@ struct UnkStruct_027e0d38 {
|
||||
/* 24 */ void *mUnk_24;
|
||||
/* 28 */ void *mUnk_28;
|
||||
/* 2c */
|
||||
|
||||
unk32 func_ov000_02078b40(void);
|
||||
};
|
||||
|
||||
typedef u32 ItemModelId;
|
||||
@@ -332,3 +334,4 @@ public:
|
||||
};
|
||||
|
||||
extern ItemManager *gItemManager;
|
||||
extern UnkStruct_027e0d38 *data_027e0d38;
|
||||
|
||||
@@ -115,7 +115,7 @@ public:
|
||||
bool func_02036d30(UnkStruct_027E0C68_UnkSubClass3* param_2);
|
||||
bool func_02036d4c(UnkStruct_027E0C68_UnkSubClass3* param_2);
|
||||
void func_02036d6c(void);
|
||||
UnkStruct_027E0C68_UnkSubClass1* func_02036da8(u32 param_2, s32* param_3);
|
||||
UnkStruct_027E0C68_UnkSubClass1* func_02036da8(u32 param_2, s16* param_3);
|
||||
void func_02036edc(u32 param_2, u8 param_3);
|
||||
UnkStruct_027E0C68_UnkSubClass1* func_02036f68(u32 param_2, u8* param_3);
|
||||
UnkStruct_027E0C68_UnkSubClass2* func_020370d0(unk32 param_2, unk32 param_3);
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
// temp
|
||||
#define UNK_TYPE void
|
||||
|
||||
#define ESCAPE_SEQUENCE_MARKER '\x1A'
|
||||
|
||||
typedef struct UnkStruct_0203b264 {
|
||||
/* 0 */ u8 mUnk_0[0x4];
|
||||
/* 4 */ u16 *mUnk_4;
|
||||
@@ -32,7 +34,8 @@ typedef struct UnkStruct1 {
|
||||
class UnkSubClass1_UnkownClass1 {
|
||||
public:
|
||||
/* 0x00 */ UnkStruct1* unk_00;
|
||||
/* 0x04 */ u32* unk_04;
|
||||
/* 0x04 */ unk16 unk_04;
|
||||
/* 0x06 */ unk16 unk_06;
|
||||
/* 0x08 */ u32* unk_08;
|
||||
/* 0x0C */ unk32 unk_0C;
|
||||
/* 0x10 */ unk32 unk_10;
|
||||
@@ -82,6 +85,7 @@ public:
|
||||
/* 0x04 */
|
||||
|
||||
void func_0203ec34(void);
|
||||
void func_0203ebe0(void);
|
||||
void func_0203ebf8(void);
|
||||
};
|
||||
|
||||
@@ -93,6 +97,7 @@ public:
|
||||
void func_0203ee80(unk32);
|
||||
void func_0203ef78(unk16, u16, unk8);
|
||||
void func_0203ef78(unk16); // overload?
|
||||
void func_0203ee48(void);
|
||||
};
|
||||
|
||||
class UnkSubClass1_unk_124 {
|
||||
@@ -233,7 +238,8 @@ public:
|
||||
/* 0x528 */ s16* unk_528;
|
||||
/* 0x52C */ u8 unk_52C[0x30];
|
||||
/* 0x55C */ unk32 unk_55C;
|
||||
/* 0x560 */ unk32 unk_560;
|
||||
/* 0x560 */ unk16 unk_560;
|
||||
/* 0x560 */ unk16 unk_562;
|
||||
/* 0x564 */ unk32 unk_564;
|
||||
/* 0x568 */ unk32 unk_568;
|
||||
/* 0x56C */ unk16 unk_56C;
|
||||
@@ -279,8 +285,8 @@ public:
|
||||
/* 0x44 */ virtual void func_0203a3fc(s32 touchLastX, s32 touchLastY) override;
|
||||
/* 0x48 */ virtual void func_0203a328(void) override;
|
||||
/* 0x4C */ virtual void func_02039a3c(void) override;
|
||||
/* 0x50 */ virtual void func_0203a7f0(EntryINF1* param_2, int param_3, u8* param_4) override;
|
||||
/* 0x54 */ virtual UNK_TYPE func_0203a988(void) override;
|
||||
/* 0x50 */ virtual void func_0203a7f0(EntryINF1* param_2, u32 param_3, s16* param_4, unk32 param_5) override;
|
||||
/* 0x54 */ virtual void func_0203a988(void) override;
|
||||
/* 0x58 */ virtual void func_0203af1c(void) override;
|
||||
/* 0x5C */ virtual void func_0203aea8(void) override;
|
||||
/* 0x60 */ virtual UNK_TYPE func_0203b410(void) override;
|
||||
@@ -314,9 +320,16 @@ public:
|
||||
unk32 func_0203de14(unk32);
|
||||
void func_0203e090(void);
|
||||
void func_0203e0f8(void);
|
||||
void func_020392b4(void);
|
||||
void func_0203b764(void);
|
||||
|
||||
void func_0203a188(unk32, unk32);
|
||||
void func_0203e1b0(unk32, unk32, unk32);
|
||||
unk32 func_0203a6d0(unk32, unk32);
|
||||
unk32 func_0203b0bc(void);
|
||||
void func_02038f44(EntryINF1* param_2, u32 param_3, s16* param_4, unk32 param_5, unk32 param_6);
|
||||
u16* func_02037604(u16**);
|
||||
void func_02039398(void);
|
||||
|
||||
// not sure it belongs to this class:
|
||||
void func_02032fcc(unk32, unk32);
|
||||
@@ -329,4 +342,6 @@ public:
|
||||
unk32 func_0203e284(UnkStruct_0203b264*, unk32, unk32);
|
||||
void func_0203e2ac(unk32* param_2);
|
||||
void func_0203fc78(unk32*, unk32*);
|
||||
|
||||
void func_0203cabc(unk32);
|
||||
};
|
||||
|
||||
@@ -124,7 +124,6 @@ ARM ActorNavi *ItemManager::GetFairy(FairyId id) const {
|
||||
return mFairies[id];
|
||||
}
|
||||
|
||||
extern UnkStruct_027e0d38 *data_027e0d38;
|
||||
extern unk32 gPlayerAnimHandler;
|
||||
extern "C" void LoadEquipItemModel(unk32 param1, ItemFlag param2);
|
||||
extern "C" void _ZNK11ItemManager15GetEquippedItemEv();
|
||||
|
||||
@@ -442,16 +442,15 @@ ARM void UnkStruct_027E0C68::func_02036d6c(void) {
|
||||
}
|
||||
|
||||
// non-matching
|
||||
ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036da8(u32 param_2, s32* param_3) {
|
||||
ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036da8(u32 param_2, s16* param_3) {
|
||||
EntryINF1 *pEVar1;
|
||||
EntryINF1 *pEVar2;
|
||||
UnkStruct_027E0C68_UnkSubClass1 *pSVar4;
|
||||
BMGGroups *pBVar5;
|
||||
bool bVar6;
|
||||
u8 iStack_38;
|
||||
s16 iStack_38;
|
||||
int iStack_34;
|
||||
int iStack_30;
|
||||
u8 uStack_2c;
|
||||
|
||||
pEVar1 = func_02037258(&this->pGroups->entries[param_2 >> 0x10], param_2 & 0xFFFF);
|
||||
|
||||
@@ -461,7 +460,7 @@ ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036da8(u32 param
|
||||
|
||||
if ((data_02056be4[data_027e077c.mUnk_0] & 1) == 0) {
|
||||
pSVar4 = this->unk_28[4];
|
||||
func_02037628(&iStack_38);
|
||||
func_02037628((u8*)&iStack_38);
|
||||
|
||||
// ???
|
||||
bVar6 = (data_02056be4[data_027e077c.mUnk_0] & 1) == 0;
|
||||
@@ -472,12 +471,16 @@ ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036da8(u32 param
|
||||
data_02056be4[0] = 0;
|
||||
}
|
||||
|
||||
uStack_2c = 1;
|
||||
iStack_38 = *param_3;
|
||||
iStack_34 = param_3[1];
|
||||
iStack_30 = param_3[2];
|
||||
// iStack_34 = param_3[1];
|
||||
// iStack_30 = param_3[2];
|
||||
pBVar5 = this->pGroups;
|
||||
pSVar4->func_0203a7f0(pEVar1, BMG_GET_MSG_ADDR(pBVar5, param_2), &iStack_38);
|
||||
// pSVar4->func_0203a7f0(pEVar1, BMG_GET_MSG_ADDR(pBVar5, param_2), (s16*)&iStack_38, 1);
|
||||
BMGFileInfo* entry = &(pBVar5)->entries[(param_2) >> 0x10];
|
||||
pSVar4->func_0203a7f0(pEVar1,
|
||||
((u32)entry->pDAT1 + (((func_02037258(entry, (((param_2))) & 0xFFFF))->offset) & ~1)),
|
||||
// BMG_GET_MSG_ADDR(pBVar5, param_2),
|
||||
(s16*)&iStack_38, 1);
|
||||
|
||||
func_ov000_020d77e4(data_ov000_020eec9c, 0x1C);
|
||||
return pSVar4;
|
||||
@@ -536,7 +539,7 @@ ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036f68(u32 param
|
||||
pSVar5->unk_164 = pSVar2;
|
||||
pSVar5->unk_418 = this->unk_28[5];
|
||||
|
||||
pSVar5->func_0203a7f0(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), param_3);
|
||||
pSVar5->func_0203a7f0(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), (s16*)param_3, 0);
|
||||
|
||||
if (func_ov000_020d7f18(data_ov000_020eec9c, 0x19) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x18) == 0 &&
|
||||
func_ov000_020d7f18(data_ov000_020eec9c, 0x34) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x35) == 0 &&
|
||||
|
||||
@@ -1,11 +1,16 @@
|
||||
#include "global.h"
|
||||
#include "Message/UnkStruct_027E0C68_UnkSubClass1.hpp"
|
||||
#include "Message/MessageManager.hpp"
|
||||
#include "Save/AdventureFlags.hpp"
|
||||
#include "DTCM/UnkStruct_027e103c.hpp"
|
||||
#include "Player/TouchControl.hpp"
|
||||
#include "Item/ItemManager.hpp"
|
||||
|
||||
extern u32 func_01ff9b4c(unk32, unk32);
|
||||
extern unk32 func_0203c084(void);
|
||||
extern void func_ov018_02169634(UnkStruct_027E0C68_UnkSubClass1*);
|
||||
extern unk32 func_ov000_02079e04(void);
|
||||
extern "C" u32 func_01ff9b4c(unk32, unk32);
|
||||
extern "C" unk32 func_0203c084(void);
|
||||
extern "C" void func_ov018_02169634(UnkStruct_027E0C68_UnkSubClass1*);
|
||||
extern "C" unk32 func_ov000_02079e04(void);
|
||||
extern "C" unk32 func_01ff9b88(unk32, unk32);
|
||||
|
||||
struct Struct_027e0db0 {
|
||||
/* 0x00 */ unk32 unk_00;
|
||||
@@ -21,7 +26,7 @@ struct UnkStruct2 {
|
||||
};
|
||||
extern UnkStruct2 data_027e077c;
|
||||
extern u8 data_02056be4[];
|
||||
extern unk32 data_027e0618[];
|
||||
extern u8 data_027e0618[];
|
||||
|
||||
class UnkClass_027e0cbc {
|
||||
public:
|
||||
@@ -37,6 +42,17 @@ extern "C" void func_020347b0(unk32, unk16, unk32*, unk32*, unk32, unk32);
|
||||
extern THUMB unk32 func_0202ab48(void);
|
||||
extern "C" void func_02034984(unk32, unk32, unk32, unk32, unk32);
|
||||
extern "C" void func_02034698(unk32, unk32, unk32*, unk32*);
|
||||
extern TouchControl data_027e0d78;
|
||||
|
||||
class UnkClass_027e0e28 {
|
||||
public:
|
||||
unk32 func_ov000_0207bc48();
|
||||
};
|
||||
extern UnkClass_027e0e28* data_027e0e28;
|
||||
extern u8 data_027e0c54;
|
||||
extern unk32* data_ov009_0211f5b4;
|
||||
extern "C" unk32 func_ov003_020f3f94(unk32*);
|
||||
extern unk32* data_02057ed4;
|
||||
|
||||
// see Actor.cpp
|
||||
typedef struct UnkStruct_01ffbe34 {
|
||||
@@ -57,6 +73,16 @@ typedef struct UnkStruct_01ffbe34 {
|
||||
} UnkStruct_01ffbe34;
|
||||
extern "C" void func_01ffbe34(UnkStruct_01ffbe34 *param1);
|
||||
|
||||
|
||||
class UnkClass_027e1054 {
|
||||
public:
|
||||
unk32 unk_00;
|
||||
unk32 unk_04;
|
||||
|
||||
void func_ov003_020f4874(void);
|
||||
};
|
||||
extern UnkClass_027e1054 data_027e1054;
|
||||
|
||||
ARM unk32 UnkStruct_027E0C68_UnkSubClass1::func_02038c34(unk32 param_2) {
|
||||
s16 iVar1;
|
||||
unk32 iVar2;
|
||||
@@ -342,16 +368,338 @@ ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203a328(void) {
|
||||
this->unk_410.func_0203ec34();
|
||||
}
|
||||
|
||||
// non-matching
|
||||
ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203a3fc(s32 touchLastX, s32 touchLastY) {
|
||||
// TODO
|
||||
unk32 iVar2;
|
||||
unk32 iVar5;
|
||||
unk32 iStack_14;
|
||||
unk32 iStack_18;
|
||||
|
||||
if (this->unk_15C <= 0 || this->func_0203951c() == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
iStack_14 = 0;
|
||||
iStack_18 = 0;
|
||||
|
||||
this->func_0203bdcc(&iStack_14, &iStack_18);
|
||||
|
||||
iVar5 = touchLastX - iStack_14;
|
||||
iVar2 = touchLastY - iStack_18;
|
||||
|
||||
if ((data_027e103c != 0 && data_027e103c->mUnk_1c == 0x8F) || (data_027e077c.mUnk_0 != data_027e077c.mUnk_4)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((data_02056be4[data_027e077c.mUnk_0] & 2) == 0) {
|
||||
if ((data_027e0d78.mFlags & 1) != 0) {
|
||||
if (this->unk_50 == 0 && data_027e0d38 != 0) {
|
||||
if (func_ov000_02079e04() == 0 && data_027e0e28->func_ov000_0207bc48() == 0) {
|
||||
if (data_027e0618[0x101] == 0 && data_027e103c->mUnk_24 == 0) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (this->func_0203a6d0(iVar5, iVar2) == 0 && this->func_0203a2c0() != 0) {
|
||||
this->unk_57F = 1;
|
||||
}
|
||||
} else {
|
||||
if (data_027e0d78.mTouch != 0) {
|
||||
this->func_0203a6d0(iVar5, iVar2);
|
||||
return;
|
||||
}
|
||||
|
||||
if (data_027e0d78.mTouch == 0) {
|
||||
switch(this->unk_151) {
|
||||
case 3:
|
||||
case 4:
|
||||
break;
|
||||
case 5:
|
||||
if (data_027e103c->mUnk_20 == 3) {
|
||||
this->func_0203b0ec(1);
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (data_027e103c->mUnk_20 == 5) {
|
||||
this->func_0203b0ec(1);
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
break;
|
||||
case 2:
|
||||
if (this->unk_164->unk_168.unk_06 <= 0) {
|
||||
if ((data_027e0d78.mFlags & 2) != 0) {
|
||||
this->unk_13C = 0;
|
||||
|
||||
if (this->func_0203b0bc() != 0) {
|
||||
this->func_0203b0ec(1);
|
||||
}
|
||||
|
||||
this->unk_1F0.unk_64 = 0;
|
||||
this->unk_1F0.func_020352d8();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
default:
|
||||
if ((data_027e0d78.mFlags & 2) != 0) {
|
||||
this->unk_13C = 0;
|
||||
|
||||
if (this->func_0203b0bc() != 0) {
|
||||
this->func_0203b0ec(1);
|
||||
}
|
||||
|
||||
this->unk_1F0.unk_64 = 0;
|
||||
this->unk_1F0.func_020352d8();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203a7f0(EntryINF1* param_2, int param_3, u8* param_4) {
|
||||
// TODO
|
||||
// non-matching
|
||||
ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203a7f0(EntryINF1* param_2, u32 param_3, s16* param_4, unk32 param_5) {
|
||||
bool bVar5;
|
||||
bool bVar2;
|
||||
int iVar4;
|
||||
int iVar6;
|
||||
s16 temp;
|
||||
|
||||
iVar6 = param_4[0];
|
||||
|
||||
if (data_027e0c54 != 0) {
|
||||
UnkStruct_027E0C68_UnkSubClass1* pVar4 = data_027e0c68.func_02036700();
|
||||
|
||||
if (pVar4 != NULL && pVar4->unk_15C > 0) {
|
||||
this->func_02038b40();
|
||||
}
|
||||
}
|
||||
|
||||
if (*((s32*)data_027e0618) == 2 && data_027e0d38->func_ov000_02078b40() == 2 && func_ov003_020f3f94(data_ov009_0211f5b4) == 0) {
|
||||
UnkStruct_027E0C68_UnkSubClass1* pVar4 = data_027e0c68.unk_28[4];
|
||||
|
||||
if (pVar4 != NULL && pVar4->unk_15C > 0) {
|
||||
this->func_02038b40();
|
||||
}
|
||||
}
|
||||
|
||||
this->unk_586 = (data_02056be4[data_027e077c.mUnk_0] & 1) != 0;
|
||||
temp = param_4[8];
|
||||
|
||||
if (temp >= 0 && param_4[9] >= 0) {
|
||||
temp = param_4[10];
|
||||
}
|
||||
|
||||
if (temp < 0) {
|
||||
this->unk_57B = temp;
|
||||
} else {
|
||||
this->unk_57B = 0;
|
||||
}
|
||||
|
||||
this->func_02038f44(param_2, param_3, param_4, param_5, iVar6);
|
||||
this->unk_574 = 0;
|
||||
|
||||
if (data_027e0d38 != 0 && (data_02056be4[data_027e077c.mUnk_0] & 1) != 0 && (param_4[11])) {
|
||||
data_027e103c->func_ov000_020cf284(0x80, 0);
|
||||
}
|
||||
}
|
||||
|
||||
ARM UNK_TYPE UnkStruct_027E0C68_UnkSubClass1::func_0203a988(UNK_TYPE) {
|
||||
// TODO
|
||||
// non-matching (can't get the switch decomp...)
|
||||
ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203a988(void) {
|
||||
short sVar1;
|
||||
int iVar2;
|
||||
u16* puVar3;
|
||||
int iVar4;
|
||||
u16 uVar5;
|
||||
unk8 uVar6;
|
||||
u16 *local_54 [17];
|
||||
|
||||
if ((this->unk_18 & 0x1FFFFFFF) != 8) {
|
||||
this->func_0203e060(0xE0, 0x40);
|
||||
|
||||
if (this->unk_154 == 0) {
|
||||
iVar2 = 2;
|
||||
} else {
|
||||
iVar2 = (int)*(char *)(this->unk_154->unk_05);
|
||||
}
|
||||
|
||||
this->func_0203dcfc(this->unk_50, 0, (int)this->unk_11E, iVar2);
|
||||
}
|
||||
|
||||
this->unk_410.func_0203ebe0();
|
||||
this->unk_580 = 0;
|
||||
this->func_020392b4();
|
||||
this->unk_57C = 0;
|
||||
this->unk_164->unk_168.unk_06 = 0;
|
||||
this->unk_57D = 0;
|
||||
this->unk_57F = 0;
|
||||
this->unk_57A = 0;
|
||||
|
||||
if (this->unk_154->unk_06 < 2) {
|
||||
this->unk_580 = 1;
|
||||
}
|
||||
|
||||
this->unk_424.func_0203ee48();
|
||||
this->unk_151 = 1;
|
||||
puVar3 = this->unk_12C;
|
||||
local_54[0] = puVar3;
|
||||
iVar2 = 0;
|
||||
|
||||
for (iVar2 = 0; func_01ff9b88(iVar2, this->unk_154->unk_06) == 0; iVar2++, puVar3 = this->func_02037604(local_54)) {
|
||||
if (local_54[iVar2] != NULL) {
|
||||
puVar3 = local_54[iVar2];
|
||||
}
|
||||
|
||||
if (local_54[iVar2] == NULL || puVar3 == NULL) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (*local_54[iVar2] == ESCAPE_SEQUENCE_MARKER) {
|
||||
uVar5 = (local_54[iVar2][3] << 0x10) | local_54[iVar2][2];
|
||||
if (0x00010017 < uVar5) {
|
||||
if (uVar5 == 0x00020001) {
|
||||
sVar1 = this->unk_164->unk_168.unk_06;
|
||||
// (param_1 + sVar1 * 2 + 0x562)[0] = '\x1B';
|
||||
// (param_1 + sVar1 * 2 + 0x562)[1] = 0;
|
||||
}
|
||||
} else {
|
||||
// switch (*local_54[iVar2]) {
|
||||
// case 0:
|
||||
// continue;
|
||||
// case 1:
|
||||
// case 2:
|
||||
// case 3:
|
||||
// case 4:
|
||||
// if (this->unk_164->unk_168.unk_06 == 0) {
|
||||
// this->func_0203cabc(this->unk_164->unk_50);
|
||||
// this->unk_164->unk_50 = 0x1A; // ???
|
||||
|
||||
// while (this->unk_564 < 4) {
|
||||
// this->unk_564--; // ???
|
||||
// }
|
||||
|
||||
// this->unk_580 = 1;
|
||||
// } else {
|
||||
// this->unk_151 = 4
|
||||
// }
|
||||
// break;
|
||||
// case 5:
|
||||
// case 6:
|
||||
// case 7:
|
||||
// case 8:
|
||||
// case 9:
|
||||
// case 10:
|
||||
// case 11:
|
||||
// case 12:
|
||||
// case 13:
|
||||
// case 14:
|
||||
// case 15:
|
||||
// case 16:
|
||||
// case 17:
|
||||
// case 18:
|
||||
// case 19:
|
||||
// case 20:
|
||||
// case 21:
|
||||
// case 22:
|
||||
// case 23:
|
||||
// case 24:
|
||||
// case 25:
|
||||
// sVar1 = this->unk_164->unk_168.unk_06;
|
||||
// break;
|
||||
// default:
|
||||
// return;
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
if (*local_54[iVar2] == '\n') {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
/* while(true) {
|
||||
|
||||
// switch (*local_54[iVar2]) {
|
||||
// case ESCAPE_SEQUENCE_MARKER:
|
||||
// case '\n':
|
||||
// }
|
||||
|
||||
if (*local_54[iVar2] == ESCAPE_SEQUENCE_MARKER) {
|
||||
uVar5 = (local_54[iVar2][3] << 0x10) | local_54[iVar2][2];
|
||||
if (0x00010017 < uVar5) {
|
||||
if (uVar5 == 0x00020001) {
|
||||
sVar1 = this->unk_164->unk_168.unk_06;
|
||||
// (param_1 + sVar1 * 2 + 0x562)[0] = '\x1B';
|
||||
// (param_1 + sVar1 * 2 + 0x562)[1] = 0;
|
||||
}
|
||||
} else {
|
||||
/* WARNING: Could not recover jumptable at 0x0203aa7c. Too many branches */
|
||||
/* WARNING: Treating indirect jump as call
|
||||
// if (-1 < (int)(uVar5 - 0x10000)) {
|
||||
// (*(code *)((uVar5 - 0x10000) * 4 + 0x203aa84))();
|
||||
// return;
|
||||
// }
|
||||
}
|
||||
} else if (*local_54[iVar2] == '\n') {
|
||||
iVar2 = iVar2 + 1;
|
||||
iVar4 = func_01ff9b88(iVar2, this->unk_154->unk_06);
|
||||
|
||||
if (iVar4 == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
if (this->unk_15E == '\x06') {
|
||||
this->func_0203e060(0xE0, 0x30);
|
||||
|
||||
if (this->unk_154 == 0) {
|
||||
iVar2 = 2;
|
||||
} else {
|
||||
iVar2 = this->unk_154->unk_05;
|
||||
}
|
||||
|
||||
this->func_0203dcfc(this->unk_50,0,(int)this->unk_11E,iVar2);
|
||||
}
|
||||
|
||||
if (this->unk_580 != 0) {
|
||||
this->func_0203e060(0xE0, 0x28);
|
||||
|
||||
if (this->unk_154 == 0) {
|
||||
iVar2 = 2;
|
||||
} else {
|
||||
iVar2 = this->unk_154->unk_05;
|
||||
}
|
||||
|
||||
this->func_0203dcfc(this->unk_50, 0, this->unk_11E, iVar2);
|
||||
|
||||
if (this->unk_50 == 0) {
|
||||
uVar6 = 1;
|
||||
} else {
|
||||
uVar6 = 7;
|
||||
}
|
||||
|
||||
// *(undefined *)((int)PTR_PTR_0203aea4->unk_28 + ((byte)param_1[0x50] - 0x28)) = uVar6;
|
||||
// PTR_PTR_0203aea4[this->unk_50] = uVar6;
|
||||
data_027e0c68.unk_28[this->unk_50]->unk_18 = uVar6;
|
||||
this->func_0203b764();
|
||||
|
||||
if (this->unk_15F == 0 || this->unk_154->unk_06 < 3) {
|
||||
this->unk_168.unk_64 = this->unk_168.unk_7C;
|
||||
this->unk_168.func_020352d8();
|
||||
} else {
|
||||
this->unk_168.func_020351b8(1, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
this->unk_1F0.unk_64 = 0;
|
||||
this->unk_1F0.func_020352d8();
|
||||
this->func_02039578(0, 0, 0, 0);
|
||||
// (**(code **)(*(int *)param_1 + 0x10))(0);
|
||||
}
|
||||
|
||||
ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203aea8(void) {
|
||||
@@ -365,8 +713,51 @@ ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203aea8(void) {
|
||||
}
|
||||
}
|
||||
|
||||
// non-matching
|
||||
ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203af1c(void) {
|
||||
// TODO
|
||||
bool bVar1;
|
||||
unk8* puVar2;
|
||||
int iVar3;
|
||||
char *pcVar4;
|
||||
|
||||
if (this->unk_160 != 0) {
|
||||
if (data_027e103c != NULL) {
|
||||
if (data_027e103c->func_ov000_020cf4bc() != 0) {
|
||||
puVar2 = data_027e103c->func_ov000_020cef9c();
|
||||
|
||||
if ((puVar2 + 0x244) != NULL || (puVar2[0x250] == '\x02')) {
|
||||
puVar2 = data_027e103c->func_ov000_020cef9c();
|
||||
|
||||
if ((UnkStruct_027E0C68_UnkSubClass1*)(puVar2 + 0x244) == this) {
|
||||
data_027e103c->func_ov000_020cfb38();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (this->unk_581 != 0 && data_027e103c->func_ov000_020cf488() != 0) {
|
||||
data_027e103c->func_ov000_020cfa24();
|
||||
this->unk_581 = 0;
|
||||
}
|
||||
|
||||
if (this->unk_582 != 0) {
|
||||
data_027e103c->func_ov000_020cfe40(0, 2);
|
||||
this->unk_582 = 0;
|
||||
}
|
||||
|
||||
if (this->unk_583 != 0) {
|
||||
data_027e103c->func_ov005_02104028(0);
|
||||
this->unk_583 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (data_027e0618[0] == 2 && func_ov000_02079e04() && (data_027e1054.unk_04 + 0x99) != 0 &&
|
||||
(data_027e077c.mUnk_0 != 0x39 || data_027e103c->func_ov000_020cf0bc())) {
|
||||
data_027e1054.func_ov003_020f4874();
|
||||
data_027e103c->func_ov005_02103f8c(data_02057ed4);
|
||||
}
|
||||
}
|
||||
|
||||
this->func_02039398();
|
||||
}
|
||||
|
||||
// non-matching (regalloc)
|
||||
|
||||
Reference in New Issue
Block a user