mirror of
https://github.com/zeldaret/ph
synced 2026-07-08 21:55:05 -04:00
"progress"
This commit is contained in:
@@ -23,6 +23,7 @@ src/Main/Unknown/UnkStruct_02032f0c.cpp:
|
||||
|
||||
src/Main/Unknown/UnkStruct_02035064.cpp:
|
||||
.text start:0x02035064 end:0x02035370
|
||||
.data start:0x02057b28 end:0x02057b30
|
||||
|
||||
src/Main/Message/MessageManager.cpp:
|
||||
.text start:0x0203643c end:0x020371b4
|
||||
@@ -34,6 +35,7 @@ src/Main/Message/BMG.cpp:
|
||||
|
||||
src/Main/Unknown/UnkStruct_02037750.cpp:
|
||||
.text start:0x02037750 end:0x020387e0
|
||||
.data start:0x02057d00 end:0x02057d70
|
||||
|
||||
src/Main/Unknown/UnkStruct_02038aa0.cpp:
|
||||
.text start:0x0203881c end:0x02039578
|
||||
|
||||
@@ -1738,8 +1738,8 @@ _ZN18UnkStruct_02035064D1Ev kind:function(arm,size=0x4) addr:0x20350ac
|
||||
_ZN18UnkStruct_0203506413func_020350b0Ev kind:function(arm,size=0x4) addr:0x20350b0
|
||||
_ZN18UnkStruct_0203506413func_020350b4Eiicss kind:function(arm,size=0xb8) addr:0x20350b4
|
||||
_ZN18UnkStruct_0203506413func_0203516cEv kind:function(arm,size=0x3c) addr:0x203516c
|
||||
_ZN18UnkStruct_020350647vfunc_0Ev kind:function(arm,size=0x8) addr:0x20351a8
|
||||
_ZN18UnkStruct_020350647vfunc_4Ev kind:function(arm,size=0x8) addr:0x20351b0
|
||||
_ZN18UnkStruct_020350648vfunc_00Ev kind:function(arm,size=0x8) addr:0x20351a8
|
||||
_ZN18UnkStruct_020350648vfunc_04Ev kind:function(arm,size=0x8) addr:0x20351b0
|
||||
_ZN18UnkStruct_0203506413func_020351b8Ebbbb kind:function(arm,size=0x120) addr:0x20351b8
|
||||
_ZN18UnkStruct_0203506413func_020352d8Ev kind:function(arm,size=0x98) addr:0x20352d8
|
||||
func_02035370 kind:function(arm,size=0x18) addr:0x2035370
|
||||
|
||||
@@ -1738,8 +1738,8 @@ _ZN18UnkStruct_02035064D1Ev kind:function(arm,size=0x4) addr:0x2035068
|
||||
_ZN18UnkStruct_0203506413func_020350b0Ev kind:function(arm,size=0x4) addr:0x203506c
|
||||
_ZN18UnkStruct_0203506413func_020350b4Eiicss kind:function(arm,size=0xb8) addr:0x2035070
|
||||
_ZN18UnkStruct_0203506413func_0203516cEv kind:function(arm,size=0x3c) addr:0x2035128
|
||||
_ZN18UnkStruct_020350647vfunc_0Ev kind:function(arm,size=0x8) addr:0x2035164
|
||||
_ZN18UnkStruct_020350647vfunc_4Ev kind:function(arm,size=0x8) addr:0x203516c
|
||||
_ZN18UnkStruct_020350648vfunc_00Ev kind:function(arm,size=0x8) addr:0x2035164
|
||||
_ZN18UnkStruct_020350648vfunc_04Ev kind:function(arm,size=0x8) addr:0x203516c
|
||||
_ZN18UnkStruct_0203506413func_020351b8Ebbbb kind:function(arm,size=0x120) addr:0x2035174
|
||||
_ZN18UnkStruct_0203506413func_020352d8Ev kind:function(arm,size=0x98) addr:0x2035294
|
||||
func_02035370 kind:function(arm,size=0x18) addr:0x203532c
|
||||
|
||||
@@ -197,6 +197,9 @@ public:
|
||||
// Rupees
|
||||
s32 GetMaxRupees() const;
|
||||
void GiveRupees(s32 amount, bool param2);
|
||||
inline u16 GetNumRupees(void) {
|
||||
return this->mNumRupees;
|
||||
}
|
||||
|
||||
// Potion
|
||||
void SetPotion(u32 index, Potion potion);
|
||||
|
||||
@@ -43,8 +43,8 @@ public:
|
||||
/* 87 */ unk8 mUnk_87;
|
||||
/* 88 */
|
||||
|
||||
/* 0 */ virtual s32 vfunc_0(); // func_020351a8
|
||||
/* 4 */ virtual s32 vfunc_4(); // func_020351b0
|
||||
/* 0 */ virtual s32 vfunc_00(); // func_020351a8
|
||||
/* 4 */ virtual s32 vfunc_04(); // func_020351b0
|
||||
/* 8 */
|
||||
|
||||
UnkStruct_02035064();
|
||||
|
||||
@@ -7,12 +7,13 @@
|
||||
#include "System/SysNew.hpp"
|
||||
|
||||
class UnkStruct_020397f8;
|
||||
typedef unk32 (*UnkStruct_02037750_Callback1)(unk32);
|
||||
|
||||
// astruct_14
|
||||
class UnkStruct_02037750 : public SysObject {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ unk32 mUnk_04[0x4];
|
||||
/* 04 */ UnkStruct_02037750_Callback1 mUnk_04[0x4];
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
/* 18 */ u32 mUnk_18;
|
||||
/* 1c */ u8 mUnk_1c;
|
||||
@@ -29,7 +30,7 @@ public:
|
||||
/* 1c */ virtual bool vfunc_1c();
|
||||
/* 20 */ virtual void vfunc_20();
|
||||
/* 24 */ virtual bool vfunc_24(unk32 param1);
|
||||
/* 28 */ virtual unk8 vfunc_28(s32 param1);
|
||||
/* 28 */ virtual unk32 vfunc_28(s32 param1);
|
||||
/* 2c */ virtual unk32 vfunc_2c(s32 param1);
|
||||
/* 30 */ virtual bool vfunc_30();
|
||||
/* 34 */
|
||||
@@ -73,7 +74,7 @@ public:
|
||||
/* 00 */ virtual ~UnkStruct_020386d8();
|
||||
/* 08 */ virtual void vfunc_08(u32 param1);
|
||||
/* 24 */ virtual bool vfunc_24(unk32 param1);
|
||||
/* 28 */ virtual unk8 vfunc_28(s32 param1);
|
||||
/* 28 */ virtual unk32 vfunc_28(s32 param1);
|
||||
/* 30 */ virtual bool vfunc_30();
|
||||
/* 34 */
|
||||
};
|
||||
|
||||
@@ -18,13 +18,23 @@ ARM void UnkStruct_02035064::func_020350b0() {
|
||||
}
|
||||
|
||||
ARM void UnkStruct_02035064::func_020350b4(s32 param1, unk32 param2, unk8 param3, unk16 param4, unk16 param5) {}
|
||||
ARM void UnkStruct_02035064::func_0203516c() {}
|
||||
|
||||
ARM s32 UnkStruct_02035064::vfunc_0() {
|
||||
ARM void UnkStruct_02035064::func_0203516c() {
|
||||
if (this->mUnk_78 != 0x0) {
|
||||
if (this->mUnk_86 == false) {
|
||||
this->mUnk_5c.func_0202e1e8();
|
||||
this->func_020352d8();
|
||||
} else {
|
||||
this->mUnk_86 = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ARM s32 UnkStruct_02035064::vfunc_00() {
|
||||
return this->mUnk_4c;
|
||||
}
|
||||
|
||||
ARM s32 UnkStruct_02035064::vfunc_4() {
|
||||
ARM s32 UnkStruct_02035064::vfunc_04() {
|
||||
return this->mUnk_4e;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
#include "Unknown/UnkStruct_02037750.hpp"
|
||||
#include "Message/MessageManager.hpp"
|
||||
#include "System/Random.hpp"
|
||||
#include "Save/AdventureFlags.hpp"
|
||||
#include "Actor/ActorManager.hpp"
|
||||
#include "Item/ItemManager.hpp"
|
||||
|
||||
extern "C" ARM unk32 func_02037628(u8*);
|
||||
extern u8* data_027e0d54;
|
||||
extern unk32* data_027e0cb4;
|
||||
|
||||
ARM UnkStruct_02037750::UnkStruct_02037750(unk32 param1, unk32 param2) {
|
||||
s32 i;
|
||||
@@ -38,7 +44,142 @@ ARM bool UnkStruct_02037750::vfunc_24(unk32 param1) {
|
||||
return this->func_020385d0(param1, auStack_28) != 0;
|
||||
}
|
||||
|
||||
ARM unk8 UnkStruct_02037750::vfunc_28(s32 param1) {}
|
||||
// non-matching
|
||||
ARM unk32 UnkStruct_02037750::vfunc_28(s32 param1) {
|
||||
u16 uVar1;
|
||||
s64 lVar2;
|
||||
Random *pRVar3;
|
||||
char cVar4;
|
||||
u16 uVar5;
|
||||
int iVar6;
|
||||
u32 uVar7;
|
||||
UnkStruct_02037750_Callback1 pcVar8;
|
||||
int iVar9;
|
||||
u32 uVar10;
|
||||
u32 uVar11;
|
||||
bool bVar12;
|
||||
|
||||
pRVar3 = gRandom;
|
||||
uVar7 = (u32)*(u16 *)(param1 + 0x2);
|
||||
|
||||
if (uVar7 >= 0xF && uVar7 <= 0x2E) {
|
||||
pcVar8 = this->mUnk_04[((uVar7 - 0xF) << 0x1E) >> 0x1C];
|
||||
iVar9 = 0;
|
||||
|
||||
if (pcVar8 != NULL) {
|
||||
iVar9 = pcVar8(this->mUnk_14);
|
||||
}
|
||||
|
||||
return iVar9;
|
||||
}
|
||||
|
||||
if ((s32)uVar7 <= 0) {
|
||||
switch(uVar7) {
|
||||
case 0x0:
|
||||
case 0x2f:
|
||||
break;
|
||||
case 0x7:
|
||||
if (data_027e0d54[0xd] != 0) {
|
||||
return -0x1;
|
||||
}
|
||||
|
||||
return (data_027e0d54[0xf] != 0);
|
||||
case 0x1:
|
||||
case 0x2:
|
||||
case 0x3:
|
||||
UnkStruct_020397f8* ret_3 = data_027e0c68.func_020366c4();
|
||||
|
||||
if (0x0 < ret_3->mUnk_15c) {
|
||||
return -0x1;
|
||||
}
|
||||
|
||||
uVar7 = (param1 + 0x1);
|
||||
|
||||
if (ret_3->mUnk_576 < uVar7) {
|
||||
return ret_3->mUnk_576;
|
||||
}
|
||||
|
||||
if (uVar7 == 0x0) {
|
||||
uVar10 = 0x0;
|
||||
} else {
|
||||
lVar2 = gRandom->mRandomValue * gRandom->mFactor;
|
||||
uVar10 = gRandom->Next(lVar2);
|
||||
// uVar10 = *(int *)((int)&gRandom->mAddend + 0x4) +
|
||||
// *(int *)((int)&gRandom->mFactor + 0x4) *
|
||||
// *(uint *)&gRandom->mRandomValue + *(uint *)&gRandom->mFactor *
|
||||
// *(int *)((int)&gRandom->mRandomValue + 0x4) +
|
||||
// (lVar2 >> 0x20) + (gRandom->mAddend << uVar11); // CARRY4
|
||||
|
||||
// part of the inline?
|
||||
// *(uint *)&gRandom->mRandomValue = *(uint *)&gRandom->mAddend + uVar11;
|
||||
// *(uint *)((int)&gRandom->mRandomValue + 0x4) = uVar10;
|
||||
|
||||
if (uVar7 != 0x0) {
|
||||
uVar10 = (uVar7 * uVar10 >> 0x20);
|
||||
}
|
||||
}
|
||||
|
||||
return uVar10;
|
||||
case 0x4:
|
||||
return gAdventureFlags->Get(param1 + 0x4) != false;
|
||||
case 0x5:
|
||||
return gActorManager->func_ov00_020c3b2c(NULL) != 0;
|
||||
case 0x6:
|
||||
break;
|
||||
case 0x8:
|
||||
return (((data_027e0cb4[(param1 + 0x4) >> 5]) & 1) << ((param1 + 0x4) & 0x1f)) == 0x0;
|
||||
case 0x9:
|
||||
break;
|
||||
case 0xa:
|
||||
break;
|
||||
case 0xb:
|
||||
lVar2 = gRandom->mRandomValue * gRandom->mFactor;
|
||||
uVar7 = lVar2;
|
||||
uVar10 = gRandom->Next(uVar7);
|
||||
|
||||
return (int)(uVar10 * 0x64 >> 0x20) < (param1 + 0x4);
|
||||
case 0xc:
|
||||
uVar7 = (param1 + 0x1);
|
||||
if (uVar7 == 0x0) {
|
||||
uVar10 = 0x0;
|
||||
} else {
|
||||
lVar2 = gRandom->mRandomValue * gRandom->mFactor;
|
||||
uVar11 = lVar2;
|
||||
uVar10 = gRandom->Next(uVar11);
|
||||
|
||||
if (uVar7 != 0x0) {
|
||||
uVar10 = (uVar7 * uVar10 >> 0x20);
|
||||
}
|
||||
}
|
||||
return (int)(char)uVar10;
|
||||
case 0xd:
|
||||
return gItemManager->GetNumRupees() != 0;
|
||||
case 0xe:
|
||||
return gItemManager->HasItem(param1 + 0x4) != 0;
|
||||
default:
|
||||
if (uVar7 == 0x2f) {
|
||||
return gItemManager->HasItem((param1 + 0x4) + 0x60) != 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
uVar7 = (param1 + 0x1);
|
||||
if (uVar7 == 0x0) {
|
||||
uVar10 = 0x0;
|
||||
} else {
|
||||
lVar2 = gRandom->mRandomValue * gRandom->mFactor;
|
||||
uVar11 = lVar2;
|
||||
uVar10 = gRandom->Next(uVar11);
|
||||
|
||||
if (uVar7 != 0x0) {
|
||||
uVar10 = (uVar7 * uVar10 >> 0x20);
|
||||
}
|
||||
}
|
||||
|
||||
return (int)(char)uVar10;
|
||||
}
|
||||
|
||||
ARM unk32 UnkStruct_02037750::vfunc_2c(s32 param1) {}
|
||||
|
||||
ARM LinkStateInteract *UnkStruct_02037750::GetLinkStateInteract() {
|
||||
@@ -83,7 +224,7 @@ ARM bool UnkStruct_020386d8::vfunc_24(unk32 param1) {
|
||||
return this->func_020385d0(param1, &this->mUnk_24.mUnk_00) != 0;
|
||||
}
|
||||
|
||||
ARM unk8 UnkStruct_020386d8::vfunc_28(s32 param1) {
|
||||
ARM unk32 UnkStruct_020386d8::vfunc_28(s32 param1) {
|
||||
this->mUnk_20 = this->UnkStruct_02037750::vfunc_28(param1);
|
||||
return this->mUnk_20;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user