mirror of
https://github.com/zeldaret/st
synced 2026-08-22 14:50:02 -04:00
Decompiling SWHT (#138)
* feat: update * feat: improve matching (98%) * feat: match multiflags * style: remove outdated comments
This commit is contained in:
@@ -2676,7 +2676,7 @@ _ZN18UnkStruct_027e0cec19func_ov000_0209ff8cEP22UnkStruct_PlayerGet_eciP7VecFx32
|
||||
func_ov000_020a0000 kind:function(arm,size=0xa0) addr:0x020a0000
|
||||
func_ov000_020a00a0 kind:function(arm,size=0x34) addr:0x020a00a0
|
||||
_ZN18UnkStruct_027e0cec19func_ov000_020a00d4EP22UnkStruct_PlayerGet_eciiiP7VecFx32i kind:function(arm,size=0x3c) addr:0x020a00d4
|
||||
_ZN18UnkStruct_027e0cec19func_ov000_020a0110EP22UnkStruct_PlayerGet_ec kind:function(arm,size=0x30) addr:0x020a0110
|
||||
_ZN18UnkStruct_027e0cec19func_ov000_020a0110EP10UnkSystem7 kind:function(arm,size=0x30) addr:0x020a0110
|
||||
_ZN18UnkStruct_027e0cec19func_ov000_020a0140EP10UnkSystem7P7VecFx32 kind:function(arm,size=0xe0) addr:0x020a0140
|
||||
_ZN18UnkStruct_027e0cec19func_ov000_020a0220EPvS0_ kind:function(arm,size=0xb4) addr:0x020a0220
|
||||
_ZN22UnkStruct_PlayerGet_ecD1Ev kind:function(arm,size=0x30) addr:0x020a02d4
|
||||
|
||||
@@ -281,13 +281,14 @@ src/031_Land/MapObject/MapObjectGrass.cpp:
|
||||
.text start:0x0210100c end:0x021019dc
|
||||
.init start:0x02111df8 end:0x02111e88
|
||||
.ctor start:0x02112834 end:0x02112838
|
||||
.data start:0x0211561c end:0x021156a8
|
||||
.data start:0x0211561c end:0x0211569c
|
||||
.bss start:0x02117868 end:0x021179b8
|
||||
|
||||
src/031_Land/MapObject/MapObjectUnkSWHT.cpp:
|
||||
.text start:0x02101a14 end:0x02102438
|
||||
.init start:0x02111e88 end:0x02111ef8
|
||||
.ctor start:0x02112838 end:0x0211283c
|
||||
.data start:0x0211569c end:0x02115704
|
||||
.bss start:0x021179b8 end:0x02117abc
|
||||
|
||||
src/031_Land/MapObject/MapObjectUnkBMFL.cpp:
|
||||
|
||||
@@ -4566,7 +4566,7 @@ from:0x02101b80 kind:arm_call to:0x02058a24 module:overlay(0)
|
||||
from:0x02101b94 kind:arm_call to:0x02058a84 module:overlay(0)
|
||||
from:0x02101ba8 kind:arm_call to:0x020577a4 module:overlay(0)
|
||||
from:0x02101bb4 kind:arm_call to:0x02057c98 module:overlay(0)
|
||||
from:0x02101bd4 kind:load to:0x021156cc module:overlay(31)
|
||||
from:0x02101bd4 kind:load to:0x021156c4 module:overlay(31) add:0x8
|
||||
from:0x02101bd8 kind:load to:0x021179c8 module:overlay(31)
|
||||
from:0x02101bdc kind:load to:0x021179e8 module:overlay(31)
|
||||
from:0x02101be0 kind:load to:0x02110ce0 module:overlay(31)
|
||||
@@ -4576,14 +4576,14 @@ from:0x02101c3c kind:arm_call to:0x021021c0 module:overlay(31)
|
||||
from:0x02101c44 kind:arm_call to:0x020a0304 module:overlay(0)
|
||||
from:0x02101c4c kind:arm_call_thumb to:0x02057b8c module:overlay(0)
|
||||
from:0x02101c54 kind:arm_call to:0x0209d0ac module:overlay(0)
|
||||
from:0x02101c60 kind:load to:0x021156cc module:overlay(31)
|
||||
from:0x02101c60 kind:load to:0x021156c4 module:overlay(31) add:0x8
|
||||
from:0x02101ca0 kind:arm_call to:0x0209d29c module:overlay(0)
|
||||
from:0x02101cb8 kind:arm_call to:0x021021c0 module:overlay(31)
|
||||
from:0x02101cc0 kind:arm_call to:0x020a0304 module:overlay(0)
|
||||
from:0x02101cc8 kind:arm_call_thumb to:0x02057b8c module:overlay(0)
|
||||
from:0x02101cd0 kind:arm_call to:0x0209d0ac module:overlay(0)
|
||||
from:0x02101cd8 kind:arm_call to:0x02011ff4 module:main
|
||||
from:0x02101ce4 kind:load to:0x021156cc module:overlay(31)
|
||||
from:0x02101ce4 kind:load to:0x021156c4 module:overlay(31) add:0x8
|
||||
from:0x02101d9c kind:arm_call to:0x0209d29c module:overlay(0)
|
||||
from:0x02101dc4 kind:arm_call to:0x021021c0 module:overlay(31)
|
||||
from:0x02101dcc kind:arm_call to:0x02101dd8 module:overlay(31)
|
||||
@@ -4634,7 +4634,7 @@ from:0x02102440 kind:load to:0x02117acc module:overlay(31)
|
||||
from:0x02102454 kind:arm_call to:0x02011f3c module:main
|
||||
from:0x02102460 kind:arm_call to:0x021024ac module:overlay(31)
|
||||
from:0x02102478 kind:arm_call to:0x0209c9a8 module:overlay(0)
|
||||
from:0x021024a4 kind:load to:0x0211570c module:overlay(31)
|
||||
from:0x021024a4 kind:load to:0x02115704 module:overlay(31) add:0x8
|
||||
from:0x021024b4 kind:arm_call to:0x0209d700 module:overlay(0)
|
||||
from:0x02102518 kind:arm_call to:0x02102bc0 module:overlay(31)
|
||||
from:0x02102538 kind:arm_call to:0x0207c018 module:overlay(0)
|
||||
|
||||
@@ -1495,16 +1495,16 @@ _ZN23MapObjectProfileUnkSWHT10GetProfileEv kind:function(arm,size=0xc) addr:0x02
|
||||
_ZN23MapObjectProfileUnkSWHT6CreateEv kind:function(arm,size=0x24) addr:0x02101a20
|
||||
_ZN23MapObjectProfileUnkSWHTC1Ev kind:function(arm,size=0x90) addr:0x02101a44
|
||||
_ZN16MapObjectUnkSWHTC1Ev kind:function(arm,size=0x114) addr:0x02101ad4
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_02101be8Ev kind:function(arm,size=0x7c) addr:0x02101be8
|
||||
_ZN16MapObjectUnkSWHTD1Ev kind:function(arm,size=0x7c) addr:0x02101be8
|
||||
_ZN16MapObjectUnkSWHTD0Ev kind:function(arm,size=0x84) addr:0x02101c64
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_02101ce8Ev kind:function(arm,size=0xf0) addr:0x02101ce8
|
||||
_ZN16MapObjectUnkSWHT8vfunc_00Ev kind:function(arm,size=0xf0) addr:0x02101ce8
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_02101dd8Ev kind:function(arm,size=0x44) addr:0x02101dd8
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_02101e1cEv kind:function(arm,size=0x16c) addr:0x02101e1c
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_02101f88Ev kind:function(arm,size=0xc) addr:0x02101f88
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_02101f94Ev kind:function(arm,size=0x20) addr:0x02101f94
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_02101fb4Ev kind:function(arm,size=0x138) addr:0x02101fb4
|
||||
_ZN16MapObjectUnkSWHT8vfunc_08Ev kind:function(arm,size=0x16c) addr:0x02101e1c
|
||||
_ZN16MapObjectUnkSWHT8vfunc_0CEv kind:function(arm,size=0xc) addr:0x02101f88
|
||||
_ZN16MapObjectUnkSWHT8vfunc_14Ev kind:function(arm,size=0x20) addr:0x02101f94
|
||||
_ZN16MapObjectUnkSWHT8vfunc_1CE8ActorRefiP7VecFx32 kind:function(arm,size=0x138) addr:0x02101fb4
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_021020ecEv kind:function(arm,size=0xd4) addr:0x021020ec
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_021021c0Ev kind:function(arm,size=0x1f0) addr:0x021021c0
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_021021c0Esi kind:function(arm,size=0x1f0) addr:0x021021c0
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_021023b0Ev kind:function(arm,size=0x74) addr:0x021023b0
|
||||
_ZN23MapObjectProfileUnkSWHTD1Ev kind:function(arm,size=0x14) addr:0x02102424
|
||||
_ZN23MapObjectProfileUnkBMFL10GetProfileEv kind:function(arm,size=0xc) addr:0x02102438
|
||||
@@ -2438,9 +2438,9 @@ _ZTV24MapObjectProfilePot_Base kind:data(any) addr:0x0211561c
|
||||
_ZTV21MapObjectProfileGrass kind:data(any) addr:0x02115638
|
||||
_ZTV14MapObjectGrass kind:data(any) addr:0x02115654
|
||||
data_ov031_0211569c kind:data(any) addr:0x0211569c
|
||||
_ZTV19data_ov031_021156b0 kind:data(any) addr:0x021156a8
|
||||
data_ov031_021156cc kind:data(any) addr:0x021156cc
|
||||
data_ov031_0211570c kind:data(any) addr:0x0211570c
|
||||
_ZTV23MapObjectProfileUnkSWHT kind:data(any) addr:0x021156a8
|
||||
_ZTV16MapObjectUnkSWHT kind:data(any) addr:0x021156c4
|
||||
_ZTV19data_ov031_0211570c kind:data(any) addr:0x02115704
|
||||
data_ov031_02115728 kind:data(any) addr:0x02115728
|
||||
_ZTV19data_ov031_0211578c kind:data(any) addr:0x02115784
|
||||
data_ov031_021157b0 kind:data(any) addr:0x021157b0 local
|
||||
|
||||
@@ -2677,7 +2677,7 @@ _ZN18UnkStruct_027e0cec19func_ov000_0209ff8cEP22UnkStruct_PlayerGet_eciP7VecFx32
|
||||
func_ov000_020a17d8 kind:function(arm,size=0xa0) addr:0x020a17d8
|
||||
func_ov000_020a1878 kind:function(arm,size=0x34) addr:0x020a1878
|
||||
func_ov000_020a18ac kind:function(arm,size=0x3c) addr:0x020a18ac
|
||||
_ZN18UnkStruct_027e0cec19func_ov000_020a0110EP22UnkStruct_PlayerGet_ec kind:function(arm,size=0x30) addr:0x020a18e8
|
||||
_ZN18UnkStruct_027e0cec19func_ov000_020a0110EP10UnkSystem7 kind:function(arm,size=0x30) addr:0x020a18e8
|
||||
_ZN18UnkStruct_027e0cec19func_ov000_020a0140EP10UnkSystem7P7VecFx32 kind:function(arm,size=0xe0) addr:0x020a1918
|
||||
_ZN18UnkStruct_027e0cec19func_ov000_020a0220EPvS0_ kind:function(arm,size=0xb4) addr:0x020a19f8
|
||||
_ZN22UnkStruct_PlayerGet_ecD1Ev kind:function(arm,size=0x30) addr:0x020a1aac
|
||||
|
||||
@@ -1494,16 +1494,16 @@ _ZN23MapObjectProfileUnkSWHT10GetProfileEv kind:function(arm,size=0xc) addr:0x02
|
||||
_ZN23MapObjectProfileUnkSWHT6CreateEv kind:function(arm,size=0x24) addr:0x02103768
|
||||
_ZN23MapObjectProfileUnkSWHTC1Ev kind:function(arm,size=0x90) addr:0x0210378c
|
||||
_ZN16MapObjectUnkSWHTC1Ev kind:function(arm,size=0x114) addr:0x0210381c
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_02101be8Ev kind:function(arm,size=0x7c) addr:0x02103930
|
||||
_ZN16MapObjectUnkSWHTD1Ev kind:function(arm,size=0x7c) addr:0x02103930
|
||||
_ZN16MapObjectUnkSWHTD0Ev kind:function(arm,size=0x84) addr:0x021039ac
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_02101ce8Ev kind:function(arm,size=0xf0) addr:0x02103a30
|
||||
_ZN16MapObjectUnkSWHT8vfunc_00Ev kind:function(arm,size=0xf0) addr:0x02103a30
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_02101dd8Ev kind:function(arm,size=0x44) addr:0x02103b20
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_02101e1cEv kind:function(arm,size=0x16c) addr:0x02103b64
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_02101f88Ev kind:function(arm,size=0xc) addr:0x02103cd0
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_02101f94Ev kind:function(arm,size=0x20) addr:0x02103cdc
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_02101fb4Ev kind:function(arm,size=0x138) addr:0x02103cfc
|
||||
_ZN16MapObjectUnkSWHT8vfunc_08Ev kind:function(arm,size=0x16c) addr:0x02103b64
|
||||
_ZN16MapObjectUnkSWHT8vfunc_0CEv kind:function(arm,size=0xc) addr:0x02103cd0
|
||||
_ZN16MapObjectUnkSWHT8vfunc_14Ev kind:function(arm,size=0x20) addr:0x02103cdc
|
||||
_ZN16MapObjectUnkSWHT8vfunc_1CE8ActorRefiP7VecFx32 kind:function(arm,size=0x138) addr:0x02103cfc
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_021020ecEv kind:function(arm,size=0xd4) addr:0x02103e34
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_021021c0Ev kind:function(arm,size=0x204) addr:0x02103f08
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_021021c0Esi kind:function(arm,size=0x204) addr:0x02103f08
|
||||
_ZN16MapObjectUnkSWHT19func_ov031_021023b0Ev kind:function(arm,size=0x74) addr:0x0210410c
|
||||
_ZN23MapObjectProfileUnkSWHTD1Ev kind:function(arm,size=0x14) addr:0x02104180
|
||||
_ZN23MapObjectProfileUnkBMFL10GetProfileEv kind:function(arm,size=0xc) addr:0x02104194
|
||||
|
||||
@@ -56,7 +56,7 @@ public:
|
||||
/* 05 */ unk8 mUnk_05;
|
||||
/* 06 */ unk8 mUnk_06;
|
||||
/* 07 */ unk8 mUnk_07;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 08 */ u32 mUnk_08;
|
||||
/* 0C */
|
||||
|
||||
MapObject_10_Base(); // func_ov000_0207c018
|
||||
|
||||
@@ -1,39 +1,54 @@
|
||||
//! TODO: This file was generated automatically and might contain errors
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "MapObject/MapObject.hpp"
|
||||
#include "MapObject/MapObjectProfile.hpp"
|
||||
#include "MapObject_ov031.hpp"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
enum MapObjUnkSWHTState_ {
|
||||
MapObjUnkSWHTState_0 = 0,
|
||||
MapObjUnkSWHTState_1 = 1,
|
||||
MapObjUnkSWHTState_Max
|
||||
};
|
||||
|
||||
class MapObjectUnkSWHT : public MapObject {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 40 */
|
||||
/* 000 (base) */
|
||||
/* 040 */ u32 mUnk_040;
|
||||
/* 044 */ unk32 mUnk_044;
|
||||
/* 048 */ unk32 mUnk_048;
|
||||
/* 04C */ unk32 mUnk_04C;
|
||||
/* 050 */ unk32 mUnk_050;
|
||||
/* 054 */ ModelRender mUnk_054;
|
||||
/* 0B4 */ UnkSystem5 mUnk_0B4;
|
||||
/* 0D4 */ unk32 mUnk_0D4;
|
||||
/* 0D8 */ STRUCT_PAD(0x0D8, 0x0F4);
|
||||
/* 0F4 */ UnkSystem7 mUnk_0F4;
|
||||
/* 0F8 */ unk32 mUnk_0F8;
|
||||
/* 0FC */ unk32 mUnk_0FC;
|
||||
/* 100 */
|
||||
|
||||
MapObjectUnkSWHT();
|
||||
|
||||
/* 00 */ virtual bool vfunc_00() override;
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
/* 0C */ virtual void vfunc_0C() override;
|
||||
/* 14 */ virtual void vfunc_14() override;
|
||||
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) override;
|
||||
/* 30 */ virtual ~MapObjectUnkSWHT() override;
|
||||
|
||||
void func_ov031_02101be8(void);
|
||||
void func_ov031_02101ce8(void);
|
||||
void func_ov031_02101dd8(void);
|
||||
void func_ov031_02101e1c(void);
|
||||
void func_ov031_02101f88(void);
|
||||
void func_ov031_02101f94(void);
|
||||
void func_ov031_02101fb4(void);
|
||||
void func_ov031_021020ec(void);
|
||||
void func_ov031_021021c0(void);
|
||||
void func_ov031_021023b0(void);
|
||||
void func_ov031_02101dd8();
|
||||
bool func_ov031_021020ec();
|
||||
void func_ov031_021021c0(unk16 state, unk32 param2);
|
||||
void func_ov031_021023b0();
|
||||
};
|
||||
|
||||
class MapObjectProfileUnkSWHT : public MapObjectProfile {
|
||||
class MapObjectProfileUnkSWHT : public MapObjectProfilePot_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
MapObjectProfileUnkSWHT();
|
||||
~MapObjectProfileUnkSWHT();
|
||||
|
||||
/* 0C */ virtual MapObject *Create();
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@ public:
|
||||
void func_ov000_020a0000(UnkStruct_PlayerGet_ec *param1, void *param2, unk32 *param3, VecFx32 *param4, unk32 param5);
|
||||
void func_ov000_020a00d4(UnkStruct_PlayerGet_ec *param1, unk32 param2, unk32 param3, unk32 param4, VecFx32 *param5,
|
||||
unk32 param6);
|
||||
void func_ov000_020a0110(UnkStruct_PlayerGet_ec *param1);
|
||||
void func_ov000_020a0110(UnkSystem7 *param1);
|
||||
void func_ov000_020a0140(UnkSystem7 *param1, VecFx32 *param2);
|
||||
void func_ov000_020a0220(void *param1, void *param2);
|
||||
|
||||
|
||||
+3
-1
@@ -37,4 +37,6 @@
|
||||
#define GET_FLAGS_IMPL2(N, ...) GET_FLAGS_##N(__VA_ARGS__)
|
||||
#define GET_FLAGS_IMPL(N, ...) GET_FLAGS_IMPL2(N, __VA_ARGS__)
|
||||
#define GET_FLAGS(...) GET_FLAGS_IMPL(VA_NARGS(__VA_ARGS__), __VA_ARGS__)
|
||||
#define SET_FLAGS(arr, ...) (*(arr) = GET_FLAGS_IMPL(VA_NARGS(__VA_ARGS__), __VA_ARGS__))
|
||||
#define INIT_FLAGS(arr, ...) (*(arr) = GET_FLAGS_IMPL(VA_NARGS(__VA_ARGS__), __VA_ARGS__))
|
||||
#define SET_FLAGS(arr, ...) (*(arr) |= GET_FLAGS_IMPL(VA_NARGS(__VA_ARGS__), __VA_ARGS__))
|
||||
#define UNSET_FLAGS(arr, ...) (*(arr) &= ~(GET_FLAGS_IMPL(VA_NARGS(__VA_ARGS__), __VA_ARGS__)))
|
||||
|
||||
@@ -25,7 +25,7 @@ Actor::Actor() {
|
||||
VecFx32_Copy(&this->mUnk_5C.mInitialPos, &this->mPos);
|
||||
VecFx32_Copy(&this->mUnk_5C.mInitialPos, &this->mPrevPos);
|
||||
this->mAngle = this->mUnk_5C.mInitialAngle;
|
||||
SET_FLAGS(this->mFlags, ActorFlag_Alive, ActorFlag_Visible, ActorFlag_Active, ActorFlag_14);
|
||||
INIT_FLAGS(this->mFlags, ActorFlag_Alive, ActorFlag_Visible, ActorFlag_Active, ActorFlag_14);
|
||||
this->mUnk_44 = 0xFF;
|
||||
this->mUnk_46 = 0;
|
||||
this->func_ov000_0209862c(0);
|
||||
|
||||
@@ -43,7 +43,7 @@ MapObject::MapObject() {
|
||||
this->mUnk_18[i] = 0;
|
||||
}
|
||||
|
||||
SET_FLAGS(this->mFlags, MapObjFlag_Alive, MapObjFlag_1, MapObjFlag_2);
|
||||
INIT_FLAGS(this->mFlags, MapObjFlag_Alive, MapObjFlag_1, MapObjFlag_2);
|
||||
}
|
||||
|
||||
MapObject::~MapObject() {}
|
||||
|
||||
@@ -1,29 +1,364 @@
|
||||
//! TODO: This file was generated automatically and might contain errors
|
||||
|
||||
#include "MapObject/MapObjectUnkSWHT.hpp"
|
||||
|
||||
#include "Actor/Actor.hpp"
|
||||
#include "Actor/ActorManager.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "Unknown/UnkStruct_027e09a8.hpp"
|
||||
#include "Unknown/UnkStruct_027e09b8.hpp"
|
||||
#include "Unknown/UnkStruct_027e0cec.hpp"
|
||||
#include "Unknown/UnkStruct_ov000_020b5214.hpp"
|
||||
|
||||
extern const char data_ov031_02110ce0;
|
||||
|
||||
extern "C" void func_ov031_020e0f30(ActorRef);
|
||||
|
||||
DECL_PROFILE(MapObjectProfileUnkSWHT);
|
||||
|
||||
// awful sinit: should not have constructors
|
||||
static MapObject_10 data_ov031_02117a9c = MapObject_10();
|
||||
static MapObjectProfile_Derived2_20 data_ov031_021179e8 = MapObjectProfile_Derived2_20();
|
||||
|
||||
MapObject *MapObjectProfileUnkSWHT::Create() {
|
||||
return new(HeapIndex_2) MapObjectUnkSWHT();
|
||||
return new(HeapIndex_ITCM) MapObjectUnkSWHT();
|
||||
}
|
||||
|
||||
// non-matching (regalloc)
|
||||
MapObjectProfileUnkSWHT::MapObjectProfileUnkSWHT() :
|
||||
MapObjectProfile(MapObjectId_SWHT) {}
|
||||
MapObjectProfilePot_Base(MapObjectId_SWHT, MapObjectId_SWHT) {
|
||||
this->mUnk_D4.mUnk_08 = 0x84007009;
|
||||
VecFx32_Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), &this->mUnk_D4.mUnk_0C);
|
||||
this->mUnk_D4.mUnk_18.x = FLOAT_TO_FX32(0.35f);
|
||||
this->mUnk_D4.mUnk_18.y = FLOAT_TO_FX32(1.2f);
|
||||
this->mUnk_06 = 0x0;
|
||||
this->mUnk_0C = 0x1333;
|
||||
this->mUnk_20.mUnk_15 = 0x1;
|
||||
}
|
||||
|
||||
MapObjectUnkSWHT::MapObjectUnkSWHT() {}
|
||||
MapObjectUnkSWHT::MapObjectUnkSWHT() :
|
||||
mUnk_054(NULL),
|
||||
mUnk_0B4(&this->mUnk_0D4, NULL),
|
||||
mUnk_0F4(NULL),
|
||||
mUnk_0F8(-0x1),
|
||||
mUnk_0FC(0x0) {
|
||||
this->mUnk_054.vfunc_08(G3d_GetModelPtr(GET_PROFILE(MapObjectProfileUnkSWHT)->mUnk_20.mUnk_50));
|
||||
this->mUnk_0B4.mpModel = this->mUnk_054.mpModel;
|
||||
|
||||
void MapObjectUnkSWHT::func_ov031_02101be8(void) {}
|
||||
void MapObjectUnkSWHT::func_ov031_02101ce8(void) {}
|
||||
void MapObjectUnkSWHT::func_ov031_02101dd8(void) {}
|
||||
void MapObjectUnkSWHT::func_ov031_02101e1c(void) {}
|
||||
void MapObjectUnkSWHT::func_ov031_02101f88(void) {}
|
||||
void MapObjectUnkSWHT::func_ov031_02101f94(void) {}
|
||||
void MapObjectUnkSWHT::func_ov031_02101fb4(void) {}
|
||||
void MapObjectUnkSWHT::func_ov031_021020ec(void) {}
|
||||
void MapObjectUnkSWHT::func_ov031_021021c0(void) {}
|
||||
void MapObjectUnkSWHT::func_ov031_021023b0(void) {}
|
||||
unk32 param2 = data_ov031_021179e8.func_ov000_02058a24();
|
||||
unk32 param1 = data_ov031_021179e8.func_ov000_02058a84(0x3, &data_ov031_02110ce0);
|
||||
|
||||
MapObjectUnkSWHT::~MapObjectUnkSWHT() {}
|
||||
MapObjectProfileUnkSWHT::~MapObjectProfileUnkSWHT() {}
|
||||
this->mUnk_0B4.func_ov000_020577a4(param1, param2, 0x1);
|
||||
|
||||
this->mUnk_054.func_ov000_02057c98(&this->mUnk_0B4);
|
||||
|
||||
this->mUnk_10 = &data_ov031_02117a9c;
|
||||
|
||||
SET_FLAG(this->mFlags, MapObjFlag_6);
|
||||
}
|
||||
|
||||
MapObjectUnkSWHT::~MapObjectUnkSWHT() {
|
||||
if (this->mState == MapObjUnkSWHTState_1) {
|
||||
if (!(this->mUnk_040 != 0x2 && this->mUnk_040 != 0x3)) {
|
||||
if (!this->func_ov000_0209d29c(0x1)) {
|
||||
this->func_ov031_021021c0(MapObjUnkSWHTState_0, 0x1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool MapObjectUnkSWHT::vfunc_00() {
|
||||
SET_FLAGS(this->mFlags, MapObjFlag_9, MapObjFlag_10);
|
||||
|
||||
this->mUnk_18[0] = 0x11;
|
||||
this->mUnk_18[1] = 0x11;
|
||||
bool var = false;
|
||||
this->mUnk_044 = 0x0;
|
||||
this->mUnk_04C = 0x0;
|
||||
|
||||
switch (this->mUnk_20.mParams[0]) {
|
||||
case 0x4:
|
||||
this->mUnk_040 = 0x2;
|
||||
var = true;
|
||||
break;
|
||||
case 0x5:
|
||||
this->mUnk_040 = 0x3;
|
||||
var = true;
|
||||
break;
|
||||
case 0x6:
|
||||
this->mUnk_040 = 0x0;
|
||||
this->mUnk_044 = 0x1;
|
||||
break;
|
||||
case 0x7:
|
||||
this->mUnk_040 = 0x1;
|
||||
this->mUnk_044 = 0x1;
|
||||
break;
|
||||
default:
|
||||
this->mUnk_040 = this->mUnk_20.mParams[0];
|
||||
break;
|
||||
}
|
||||
|
||||
if (var != 0) {
|
||||
this->mUnk_048 = this->mUnk_20.mParams[1] * 0x1E;
|
||||
} else {
|
||||
this->mUnk_048 = this->mUnk_20.mParams[1];
|
||||
}
|
||||
|
||||
if (this->func_ov000_0209d29c(0x0)) {
|
||||
this->func_ov031_021021c0(MapObjUnkSWHTState_1, 0x1);
|
||||
} else {
|
||||
this->func_ov031_021021c0(MapObjUnkSWHTState_0, 0x1);
|
||||
}
|
||||
this->func_ov031_02101dd8();
|
||||
return true;
|
||||
}
|
||||
|
||||
void MapObjectUnkSWHT::func_ov031_02101dd8() {
|
||||
switch (this->mState) {
|
||||
case MapObjUnkSWHTState_0:
|
||||
this->mUnk_0B4.func_ov000_020577f8(0x3000);
|
||||
break;
|
||||
case MapObjUnkSWHTState_1:
|
||||
this->mUnk_0B4.func_ov000_020577f8(0x1000);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
this->mUnk_0B4.func_01ffc3b4();
|
||||
}
|
||||
|
||||
void MapObjectUnkSWHT::vfunc_08() {
|
||||
this->func_ov031_02101dd8();
|
||||
++this->mUnk_04C;
|
||||
|
||||
switch (this->mState) {
|
||||
case MapObjUnkSWHTState_0:
|
||||
++this->mUnk_050;
|
||||
|
||||
if (this->mUnk_044 != 0x1) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (!this->func_ov000_0209d29c(0x0)) {
|
||||
break;
|
||||
}
|
||||
|
||||
this->func_ov031_021021c0(MapObjUnkSWHTState_1, 0x0);
|
||||
break;
|
||||
case MapObjUnkSWHTState_1:
|
||||
this->func_ov031_021023b0();
|
||||
|
||||
data_027e0cec->func_ov000_020a0140(&this->mUnk_0F4, &this->mPos);
|
||||
|
||||
switch (this->mUnk_040) {
|
||||
case 0x2:
|
||||
case 0x3:
|
||||
if (this->mUnk_20.mParams[2] == 0x1) {
|
||||
if (this->func_ov000_0209d29c(0x1)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (++this->mUnk_050 < this->mUnk_048) {
|
||||
break;
|
||||
}
|
||||
|
||||
this->func_ov031_021021c0(MapObjUnkSWHTState_0, 0x0);
|
||||
break;
|
||||
case 0x1:
|
||||
++this->mUnk_050;
|
||||
|
||||
if (this->mUnk_044 != 0x1) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (this->func_ov000_0209d29c(0x0)) {
|
||||
break;
|
||||
}
|
||||
|
||||
this->func_ov031_021021c0(MapObjUnkSWHTState_0, 0x0);
|
||||
break;
|
||||
default:
|
||||
if (this->func_ov000_0209d29c(0x0)) {
|
||||
break;
|
||||
}
|
||||
|
||||
this->func_ov031_021021c0(MapObjUnkSWHTState_0, 0x0);
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void MapObjectUnkSWHT::vfunc_0C() {
|
||||
this->func_ov031_02101dd8();
|
||||
}
|
||||
|
||||
void MapObjectUnkSWHT::vfunc_14() {
|
||||
this->mUnk_054.vfunc_18(&this->mPos);
|
||||
}
|
||||
|
||||
bool MapObjectUnkSWHT::vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) {
|
||||
if (param1.type != 0x0) {
|
||||
Actor *actor = gpActorManager->func_01fff3b4(param1);
|
||||
if (actor != NULL) {
|
||||
if (actor->GetActorId() == ActorId_SRST) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
switch (param2) {
|
||||
case 0xE:
|
||||
case 0x10:
|
||||
case 0x11:
|
||||
return true;
|
||||
case 0xD:
|
||||
if (this->func_ov031_021020ec()) {
|
||||
func_ov031_020e0f30(param1);
|
||||
}
|
||||
return false;
|
||||
case 0xC:
|
||||
this->func_ov031_021020ec();
|
||||
return false;
|
||||
case 0xA:
|
||||
if (param1.type != 0x0) {
|
||||
Actor *actor = gpActorManager->func_01fff3b4(param1);
|
||||
if (actor != NULL) {
|
||||
if (actor->GetActorId() == ActorId_KEYB) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
this->func_ov031_021020ec();
|
||||
break;
|
||||
default:
|
||||
this->func_ov031_021020ec();
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool MapObjectUnkSWHT::func_ov031_021020ec() {
|
||||
bool retValue = false;
|
||||
if (this->mState != MapObjUnkSWHTState_0) {
|
||||
if (this->mState == MapObjUnkSWHTState_1) {
|
||||
switch (this->mUnk_040) {
|
||||
case 0:
|
||||
case 2:
|
||||
case 3:
|
||||
break;
|
||||
case 1:
|
||||
if (this->mUnk_04C > 0x1 && this->mUnk_050 >= 0x14) {
|
||||
this->func_ov031_021021c0(MapObjUnkSWHTState_0, 0);
|
||||
retValue = true;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
switch (this->mUnk_040) {
|
||||
default:
|
||||
break;
|
||||
case 0:
|
||||
if (this->mUnk_050 < 0x14) {
|
||||
break;
|
||||
}
|
||||
this->func_ov031_021021c0(MapObjUnkSWHTState_1, 0);
|
||||
retValue = true;
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
this->func_ov031_021021c0(MapObjUnkSWHTState_1, 0);
|
||||
retValue = true;
|
||||
break;
|
||||
case 1:
|
||||
if (this->mUnk_04C > 1 && this->mUnk_050 >= 0x14) {
|
||||
this->func_ov031_021021c0(MapObjUnkSWHTState_1, 0);
|
||||
retValue = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
this->mUnk_04C = 0;
|
||||
return retValue;
|
||||
}
|
||||
|
||||
void MapObjectUnkSWHT::func_ov031_021021c0(unk16 state, unk32 param2) {
|
||||
this->mState = state;
|
||||
switch (this->mState) {
|
||||
case MapObjUnkSWHTState_0:
|
||||
SET_FLAGS(this->mFlags, MapObjFlag_7);
|
||||
SET_FLAGS(this->mFlags, MapObjFlag_9, MapObjFlag_10);
|
||||
|
||||
this->func_ov000_0209d2c4(0x0, false);
|
||||
|
||||
if (this->mUnk_040 - 2 > 0x1 || this->mUnk_20.mParams[2] != 0x1) {
|
||||
this->func_ov000_0209d2c4(0x1, true);
|
||||
}
|
||||
|
||||
this->mUnk_050 = 0x0;
|
||||
if (param2 == 0x0) {
|
||||
data_027e09a8->func_ov000_02071b30(0x120, &this->mPos, 0x0);
|
||||
}
|
||||
data_027e0cec->func_ov000_020a0110(&this->mUnk_0F4);
|
||||
|
||||
break;
|
||||
case MapObjUnkSWHTState_1:
|
||||
if (param2 == 0x0 && this->mUnk_20.mParams[3] != 0x0) {
|
||||
UnkStackStruct1 stack;
|
||||
func_ov000_02072fd0(&stack);
|
||||
stack.mUnk_08 = 0x3C;
|
||||
stack.mUnk_00 = 0x6C;
|
||||
stack.mUnk_3A = 0x3;
|
||||
stack.mUnk_38 |= 0x80;
|
||||
VecFx32_Copy(&this->mPos, &stack.mUnk_0C);
|
||||
data_027e09b8->func_ov000_02073388(&stack, 0x0);
|
||||
}
|
||||
|
||||
this->func_ov000_0209d2c4(0x0, true);
|
||||
|
||||
if (this->mUnk_040 - 2 > 0x1 || this->mUnk_20.mParams[2] != 0x1) {
|
||||
this->func_ov000_0209d2c4(0x1, false);
|
||||
}
|
||||
|
||||
if (this->mUnk_040 == 1) {
|
||||
SET_FLAG(this->mFlags, MapObjFlag_7);
|
||||
} else {
|
||||
UNSET_FLAGS(this->mFlags, MapObjFlag_9, MapObjFlag_10);
|
||||
UNSET_FLAG(this->mFlags, MapObjFlag_7);
|
||||
}
|
||||
this->mUnk_050 = 0x0;
|
||||
if (param2 == 0x0) {
|
||||
data_027e09a8->func_ov000_02071b30(0x11F, &this->mPos, 0x0);
|
||||
}
|
||||
this->mUnk_0F8 = 0x8E9;
|
||||
this->mUnk_0FC = 0x4;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void MapObjectUnkSWHT::func_ov031_021023b0() {
|
||||
if (this->mUnk_040 != 0x3) {
|
||||
return;
|
||||
}
|
||||
bool var = true;
|
||||
if (this->mUnk_20.mParams[2] == 0x1) {
|
||||
if (this->func_ov000_0209d29c(0x1)) {
|
||||
var = false;
|
||||
}
|
||||
}
|
||||
if (!var) {
|
||||
return;
|
||||
}
|
||||
if (this->mUnk_048 - this->mUnk_050 < 0x3C) {
|
||||
data_ov000_020b5214_eur.func_ov000_0206e7e8(0x92);
|
||||
return;
|
||||
}
|
||||
data_ov000_020b5214_eur.func_ov000_0206e7e8(0x91);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user