mirror of
https://github.com/zeldaret/st
synced 2026-06-24 09:21:23 -04:00
started Actor.cpp
This commit is contained in:
@@ -189,7 +189,7 @@ func_01ffee10 kind:function(arm,size=0x124) addr:0x01ffee10
|
||||
func_01ffef34 kind:function(arm,size=0x128) addr:0x01ffef34
|
||||
func_01fff05c kind:function(arm,size=0x58) addr:0x01fff05c
|
||||
func_01fff0b4 kind:function(arm,size=0x94) addr:0x01fff0b4
|
||||
func_01fff148 kind:function(arm,size=0x20) addr:0x01fff148
|
||||
_ZN18UnkStruct_027e0ce013func_01fff148Ev kind:function(arm,size=0x20) addr:0x01fff148
|
||||
func_01fff168 kind:function(arm,size=0x14) addr:0x01fff168
|
||||
func_01fff17c kind:function(arm,size=0x28) addr:0x01fff17c
|
||||
func_01fff1a4 kind:function(arm,size=0x3c) addr:0x01fff1a4
|
||||
|
||||
@@ -5,3 +5,6 @@
|
||||
.data start:0x020b1960 end:0x020b4ec0 kind:data align:32
|
||||
.bss start:0x020b4ec0 end:0x020b6520 kind:bss align:32
|
||||
|
||||
src/00_Second/Actor/Actor.cpp:
|
||||
.text start:0x02098388 end:0x02098654
|
||||
.data start:0x020b30e4 end:0x020b3148
|
||||
|
||||
@@ -6679,7 +6679,7 @@ from:0x020983e4 kind:arm_call to:0x020975f8 module:overlay(0)
|
||||
from:0x02098400 kind:arm_call to:0x02028cdc module:main
|
||||
from:0x0209844c kind:arm_call to:0x0209862c module:overlay(0)
|
||||
from:0x02098458 kind:arm_call to:0x0209848c module:overlay(0)
|
||||
from:0x02098464 kind:load to:0x020b30ec module:overlay(0)
|
||||
from:0x02098464 kind:load to:0x020b30e4 add:8 module:overlay(0)
|
||||
from:0x02098468 kind:load to:0x020b539c module:overlay(0)
|
||||
from:0x0209847c kind:arm_call to:0x02011ff4 module:main
|
||||
from:0x020984e8 kind:arm_call to:0x020984f0 module:overlay(0)
|
||||
|
||||
@@ -1636,7 +1636,7 @@ func_ov000_02081d5c kind:function(arm,size=0x20) addr:0x02081d5c
|
||||
func_ov000_02081d7c kind:function(arm,size=0xb4) addr:0x02081d7c
|
||||
func_ov000_02081e30 kind:function(arm,size=0x8c) addr:0x02081e30
|
||||
func_ov000_02081ebc kind:function(arm,size=0x10) addr:0x02081ebc
|
||||
func_ov000_02081ecc kind:function(arm,size=0x10) addr:0x02081ecc
|
||||
_ZN18UnkStruct_027e0cd819func_ov000_02081eccEsi kind:function(arm,size=0x10) addr:0x02081ecc
|
||||
func_ov000_02081edc kind:function(arm,size=0x10) addr:0x02081edc
|
||||
func_ov000_02081eec kind:function(arm,size=0x50) addr:0x02081eec
|
||||
func_ov000_02081f3c kind:function(arm,size=0x4c) addr:0x02081f3c
|
||||
@@ -2261,7 +2261,7 @@ func_ov000_02097528 kind:function(arm,size=0x20) addr:0x02097528
|
||||
func_ov000_02097548 kind:function(arm,size=0x78) addr:0x02097548
|
||||
func_ov000_020975c0 kind:function(arm,size=0x1c) addr:0x020975c0
|
||||
func_ov000_020975dc kind:function(arm,size=0x1c) addr:0x020975dc
|
||||
func_ov000_020975f8 kind:function(arm,size=0x78) addr:0x020975f8
|
||||
_ZN8Actor_5c19func_ov000_020975f8Ev kind:function(arm,size=0x78) addr:0x020975f8
|
||||
func_ov000_02097670 kind:function(arm,size=0xc) addr:0x02097670
|
||||
func_ov000_0209767c kind:function(arm,size=0xa8) addr:0x0209767c
|
||||
func_ov000_02097724 kind:function(arm,size=0x28) addr:0x02097724
|
||||
@@ -2311,29 +2311,29 @@ func_ov000_020982c0 kind:function(arm,size=0x18) addr:0x020982c0
|
||||
func_ov000_020982d8 kind:function(arm,size=0x80) addr:0x020982d8
|
||||
func_ov000_02098358 kind:function(arm,size=0x14) addr:0x02098358
|
||||
func_ov000_0209836c kind:function(arm,size=0x1c) addr:0x0209836c
|
||||
func_ov000_02098388 kind:function(arm,size=0xe8) addr:0x02098388
|
||||
func_ov000_02098470 kind:function(arm,size=0x4) addr:0x02098470
|
||||
func_ov000_02098474 kind:function(arm,size=0x14) addr:0x02098474
|
||||
func_ov000_02098488 kind:function(arm,size=0x4) addr:0x02098488
|
||||
func_ov000_0209848c kind:function(arm,size=0x1c) addr:0x0209848c
|
||||
func_ov000_020984a8 kind:function(arm,size=0x8) addr:0x020984a8
|
||||
func_ov000_020984b0 kind:function(arm,size=0x4) addr:0x020984b0
|
||||
func_ov000_020984b4 kind:function(arm,size=0x4) addr:0x020984b4
|
||||
func_ov000_020984b8 kind:function(arm,size=0x4) addr:0x020984b8
|
||||
func_ov000_020984bc kind:function(arm,size=0x4) addr:0x020984bc
|
||||
func_ov000_020984c0 kind:function(arm,size=0x4) addr:0x020984c0
|
||||
func_ov000_020984c4 kind:function(arm,size=0x4) addr:0x020984c4
|
||||
func_ov000_020984c8 kind:function(arm,size=0x8) addr:0x020984c8
|
||||
func_ov000_020984d0 kind:function(arm,size=0x20) addr:0x020984d0
|
||||
func_ov000_020984f0 kind:function(arm,size=0x28) addr:0x020984f0
|
||||
func_ov000_02098518 kind:function(arm,size=0x24) addr:0x02098518
|
||||
func_ov000_0209853c kind:function(arm,size=0x18) addr:0x0209853c
|
||||
func_ov000_02098554 kind:function(arm,size=0x18) addr:0x02098554
|
||||
func_ov000_0209856c kind:function(arm,size=0xc) addr:0x0209856c
|
||||
func_ov000_02098578 kind:function(arm,size=0xc) addr:0x02098578
|
||||
func_ov000_02098584 kind:function(arm,size=0x6c) addr:0x02098584
|
||||
func_ov000_020985f0 kind:function(arm,size=0x3c) addr:0x020985f0
|
||||
func_ov000_0209862c kind:function(arm,size=0x28) addr:0x0209862c
|
||||
_ZN5ActorC1Ev kind:function(arm,size=0xe8) addr:0x02098388
|
||||
_ZN5ActorD1Ev kind:function(arm,size=0x4) addr:0x02098470
|
||||
_ZN5ActorD0Ev kind:function(arm,size=0x14) addr:0x02098474
|
||||
_ZN5ActorD2Ev kind:function(arm,size=0x4) addr:0x02098488
|
||||
_ZN5Actor19func_ov000_0209848cEP27UnkStruct_ov000_020b539c_30 kind:function(arm,size=0x1c) addr:0x0209848c
|
||||
_ZN5Actor8vfunc_18Ev kind:function(arm,size=0x8) addr:0x020984a8
|
||||
_ZN5Actor8vfunc_1cEv kind:function(arm,size=0x4) addr:0x020984b0
|
||||
_ZN5Actor8vfunc_20Ev kind:function(arm,size=0x4) addr:0x020984b4
|
||||
_ZN5Actor8vfunc_24Ev kind:function(arm,size=0x4) addr:0x020984b8
|
||||
_ZN5Actor8vfunc_28Ev kind:function(arm,size=0x4) addr:0x020984bc
|
||||
_ZN5Actor8vfunc_2cEv kind:function(arm,size=0x4) addr:0x020984c0
|
||||
_ZN5Actor8vfunc_30Ev kind:function(arm,size=0x4) addr:0x020984c4
|
||||
_ZN5Actor8vfunc_34Ev kind:function(arm,size=0x8) addr:0x020984c8
|
||||
_ZN5Actor19func_ov000_020984d0Ev kind:function(arm,size=0x20) addr:0x020984d0
|
||||
_ZN5Actor19func_ov000_020984f0Ev kind:function(arm,size=0x28) addr:0x020984f0
|
||||
_ZN5Actor8vfunc_00EP18UnkStruct_vfunc_00 kind:function(arm,size=0x24) addr:0x02098518
|
||||
_ZN5Actor19func_ov000_0209853cEv kind:function(arm,size=0x18) addr:0x0209853c
|
||||
_ZN5Actor8vfunc_04Ev kind:function(arm,size=0x18) addr:0x02098554
|
||||
_ZN5Actor8vfunc_08Ev kind:function(arm,size=0xc) addr:0x0209856c
|
||||
_ZN5Actor8vfunc_0cEv kind:function(arm,size=0xc) addr:0x02098578
|
||||
_ZN5Actor8vfunc_38Ei kind:function(arm,size=0x6c) addr:0x02098584
|
||||
_ZN5Actor8vfunc_3cEP5Vec3p kind:function(arm,size=0x3c) addr:0x020985f0
|
||||
_ZN5Actor19func_ov000_0209862cEi kind:function(arm,size=0x28) addr:0x0209862c
|
||||
func_ov000_02098654 kind:function(arm,size=0x28) addr:0x02098654
|
||||
func_ov000_0209867c kind:function(arm,size=0x38) addr:0x0209867c
|
||||
func_ov000_020986b4 kind:function(arm,size=0x48) addr:0x020986b4
|
||||
@@ -3667,7 +3667,7 @@ data_ov000_020b3098 kind:data(any) addr:0x020b3098
|
||||
data_ov000_020b30a4 kind:data(any) addr:0x020b30a4
|
||||
data_ov000_020b30b4 kind:data(any) addr:0x020b30b4
|
||||
data_ov000_020b30d0 kind:data(any) addr:0x020b30d0
|
||||
data_ov000_020b30ec kind:data(any) addr:0x020b30ec
|
||||
_ZTV5Actor kind:data(any) addr:0x020b30e4
|
||||
data_ov000_020b3148 kind:data(any) addr:0x020b3148
|
||||
data_ov000_020b31a8 kind:data(any) addr:0x020b31a8
|
||||
data_ov000_020b31f0 kind:data(any) addr:0x020b31f0
|
||||
|
||||
@@ -1611,7 +1611,7 @@ func_02028c4c kind:function(arm,size=0x14) addr:0x02028c4c
|
||||
func_02028c60 kind:function(arm,size=0x18) addr:0x02028c60
|
||||
func_02028c78 kind:function(arm,size=0x18) addr:0x02028c78
|
||||
func_02028c90 kind:function(arm,size=0x4c) addr:0x02028c90
|
||||
func_02028cdc kind:function(arm,size=0x38) addr:0x02028cdc
|
||||
_ZN24UnkStruct_ov000_020b539c13func_02028cdcEP8Actor_5ci kind:function(arm,size=0x38) addr:0x02028cdc
|
||||
func_02028d14 kind:function(arm,size=0x1c) addr:0x02028d14
|
||||
func_02028d30 kind:function(arm,size=0x1c) addr:0x02028d30
|
||||
func_02028d4c kind:function(arm,size=0x24) addr:0x02028d4c
|
||||
|
||||
@@ -189,7 +189,7 @@ func_01ffee10 kind:function(arm,size=0x124) addr:0x01ffee10
|
||||
func_01ffef34 kind:function(arm,size=0x128) addr:0x01ffef34
|
||||
func_01fff05c kind:function(arm,size=0x58) addr:0x01fff05c
|
||||
func_01fff0b4 kind:function(arm,size=0x94) addr:0x01fff0b4
|
||||
func_01fff148 kind:function(arm,size=0x20) addr:0x01fff148
|
||||
_ZN18UnkStruct_027e0ce013func_01fff148Ev kind:function(arm,size=0x20) addr:0x01fff148
|
||||
func_01fff168 kind:function(arm,size=0x14) addr:0x01fff168
|
||||
func_01fff17c kind:function(arm,size=0x28) addr:0x01fff17c
|
||||
func_01fff1a4 kind:function(arm,size=0x3c) addr:0x01fff1a4
|
||||
|
||||
@@ -0,0 +1,139 @@
|
||||
#pragma once
|
||||
|
||||
#include "System/SysNew.hpp"
|
||||
#include "nitro/math.h"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
struct UnkStruct_vfunc_00 {
|
||||
unk32 mUnk_00;
|
||||
unk32 mUnk_04;
|
||||
unk32 mUnk_08;
|
||||
};
|
||||
|
||||
struct UnkStruct_vfunc_3c {
|
||||
unk32 mUnk_00;
|
||||
unk32 mUnk_04;
|
||||
unk32 mUnk_08;
|
||||
};
|
||||
|
||||
class Actor_5c {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
void func_ov000_020975f8();
|
||||
};
|
||||
|
||||
class UnkStruct_ov000_020b539c_30 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ unk8 mUnk_08[0x18 - 0x08];
|
||||
/* 1c */ unk8 mUnk_18;
|
||||
/* 1c */ unk8 mUnk_19;
|
||||
/* 1c */ unk16 mUnk_1a;
|
||||
/* 1c */ unk16 mUnk_1c;
|
||||
/* 1e */ u16 mUnk_1e;
|
||||
/* 20 */
|
||||
};
|
||||
|
||||
class UnkStruct_ov000_020b539c {
|
||||
public:
|
||||
/* 00 */ unk8 mUnk_00[0x30];
|
||||
/* 30 */ UnkStruct_ov000_020b539c_30 *mUnk_30;
|
||||
/* 34 */
|
||||
|
||||
void func_02028cdc(Actor_5c *param1, unk32 param2);
|
||||
};
|
||||
|
||||
class Actor : public SysObject {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0c */ unk32 mUnk_0c;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
/* 18 */ unk32 mUnk_18;
|
||||
/* 1c */ Vec3p mUnk_1c;
|
||||
/* 28 */ u16 mUnk_28;
|
||||
/* 28 */ unk16 mUnk_2a;
|
||||
/* 2c */ unk32 mUnk_2c;
|
||||
/* 30 */ unk32 *mUnk_30;
|
||||
/* 34 */ unk32 *mUnk_34;
|
||||
/* 38 */ unk32 mUnk_38;
|
||||
/* 3c */ unk32 mUnk_3c;
|
||||
/* 40 */ unk32 mUnk_40;
|
||||
/* 44 */ u16 mUnk_44;
|
||||
/* 46 */ unk16 mUnk_46;
|
||||
/* 48 */ unk16 mUnk_48;
|
||||
/* 4a */ unk8 mUnk_4a;
|
||||
/* 4a */ unk8 mUnk_4b;
|
||||
/* 4c */ unk16 mUnk_4c;
|
||||
/* 4e */ s16 mUnk_4e;
|
||||
/* 50 */ unk16 mUnk_50;
|
||||
/* 52 */ unk16 mUnk_52;
|
||||
/* 54 */ unk32 mUnk_54;
|
||||
/* 58 */ unk32 mUnk_58;
|
||||
/* 5c */ Actor_5c mUnk_5c;
|
||||
/* 60 */ unk32 mUnk_60;
|
||||
/* 64 */ unk32 mUnk_64;
|
||||
/* 68 */ s16 mUnk_68;
|
||||
/* 68 */ unk16 mUnk_6a;
|
||||
/* 6c */ unk32 mUnk_6c;
|
||||
/* 70 */ unk32 mUnk_70;
|
||||
/* 74 */ unk32 mUnk_74;
|
||||
/* 78 */ unk32 mUnk_78;
|
||||
/* 7c */ unk32 mUnk_7c;
|
||||
/* 80 */ unk16 mUnk_80;
|
||||
/* 80 */ unk16 mUnk_82;
|
||||
/* 84 */ unk32 mUnk_84;
|
||||
/* 88 */ unk32 mUnk_88;
|
||||
/* 8c */ unk32 mUnk_8c;
|
||||
/* 90 */ UnkStruct_ov000_020b539c_30 *mUnk_90;
|
||||
|
||||
/* 00 */ virtual unk32 vfunc_00(UnkStruct_vfunc_00 *param1);
|
||||
/* 04 */ virtual bool vfunc_04();
|
||||
/* 08 */ virtual unk16 vfunc_08();
|
||||
/* 0c */ virtual unk8 vfunc_0c();
|
||||
/* 10 */ virtual void vfunc_10();
|
||||
/* 14 */ virtual void vfunc_14();
|
||||
/* 18 */ virtual unk32 vfunc_18();
|
||||
/* 1c */ virtual void vfunc_1c();
|
||||
/* 20 */ virtual void vfunc_20();
|
||||
/* 24 */ virtual void vfunc_24();
|
||||
/* 28 */ virtual void vfunc_28();
|
||||
/* 2c */ virtual void vfunc_2c();
|
||||
/* 30 */ virtual void vfunc_30();
|
||||
/* 34 */ virtual unk32 vfunc_34();
|
||||
/* 38 */ virtual unk32 vfunc_38(unk32 param1);
|
||||
/* 3c */ virtual bool vfunc_3c(Vec3p* param1);
|
||||
/* 40 */ virtual void vfunc_40();
|
||||
/* 44 */ virtual void vfunc_44();
|
||||
/* 48 */ virtual void vfunc_48();
|
||||
/* 4c */ virtual ~Actor();
|
||||
/* 54 */
|
||||
|
||||
Actor();
|
||||
void func_ov000_0209848c(UnkStruct_ov000_020b539c_30 *param1);
|
||||
void func_ov000_020984b0();
|
||||
void func_ov000_020984b4();
|
||||
void func_ov000_020984b8();
|
||||
void func_ov000_020984bc();
|
||||
void func_ov000_020984c0();
|
||||
void func_ov000_020984c4();
|
||||
unk32 func_ov000_020984c8();
|
||||
void func_ov000_020984d0();
|
||||
void func_ov000_020984f0();
|
||||
|
||||
s32 func_ov000_02098518(unk32 *param1);
|
||||
void func_ov000_0209853c();
|
||||
s32 func_ov000_02098554();
|
||||
s16 func_ov000_0209856c();
|
||||
s8 func_ov000_02098578();
|
||||
s32 func_ov000_02098584();
|
||||
s32 func_ov000_020985f0(void *param1);
|
||||
void func_ov000_0209862c(unk32 param1);
|
||||
};
|
||||
|
||||
extern UnkStruct_ov000_020b539c data_ov000_020b539c;
|
||||
@@ -0,0 +1,10 @@
|
||||
#pragma once
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_027e0cd8 {
|
||||
public:
|
||||
void func_ov000_02081ecc(unk16 param1, unk32 param2);
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0cd8* data_027e0cd8;
|
||||
@@ -0,0 +1,35 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include "System/SysNew.hpp"
|
||||
|
||||
// PlayerManager?
|
||||
class UnkStruct_027e0ce0 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0c */ unk32 mUnk_0c;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
/* 18 */ unk32 mUnk_18;
|
||||
/* 1c */ unk32 mUnk_1c;
|
||||
/* 20 */ unk32 mUnk_20;
|
||||
/* 24 */ unk32 mUnk_24;
|
||||
/* 28 */ unk32 mUnk_28;
|
||||
/* 2c */ unk32 mUnk_2c;
|
||||
/* 30 */
|
||||
|
||||
void func_01fff148();
|
||||
|
||||
void func_ov000_0208a318(unk32 param1, unk32 param2, unk32 param3);
|
||||
|
||||
void func_ov024_020d3d98(unk32 param1, unk32 param2);
|
||||
void func_ov024_020d3ee8(unk32, u16, unk32);
|
||||
|
||||
void func_ov110_02185d3c(unk32 param1);
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0ce0 *data_027e0ce0;
|
||||
@@ -0,0 +1,190 @@
|
||||
#ifndef _NDS_MATH_H
|
||||
#define _NDS_MATH_H
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ABS(x) ((x) < 0 ? -(x) : (x))
|
||||
|
||||
// Q20.12 fixed point number
|
||||
typedef s32 q20;
|
||||
// Q4.12 fixed point number
|
||||
typedef s16 q4;
|
||||
|
||||
#define INT_TO_Q20(n) ((s32) ((n) << 12))
|
||||
#define FLOAT_TO_Q21(n) ((s32) (((n) * 8192 + 1) / 4))
|
||||
#define FLOAT_TO_Q20(n) ((s32) (((n) * 8192 + 1) / 2))
|
||||
#define FLOAT_TO_Q19(n) ((s32) (((n) * 8192 + 1)))
|
||||
#define ROUND_Q20(n) (((s32) (n) + 0x800) >> 12)
|
||||
#define MUL_Q20(a, b) (q20)((((s64) (a)) * ((s64) (b)) + 0x800) >> 12)
|
||||
#define DIV_Q20(a, b) (((a) << 12) / (b))
|
||||
|
||||
#define DEG_TO_ANG(n) ((n) * 0x10000 / 360)
|
||||
#define SIN(n) (gSinCosTable[2 * ((n) >> 4)])
|
||||
#define COS(n) (gSinCosTable[2 * ((n) >> 4) + 1])
|
||||
|
||||
u32 func_01ff9f3c(s32 a, s32 b);
|
||||
s32 Atan2(s32 x, s32 y);
|
||||
|
||||
u32 CoDivide64By32(u32 a, u32 b);
|
||||
u32 func_01ff98f0(u32 a, u32 b);
|
||||
u32 CoReciprocal(u32 x);
|
||||
u64 func_01ff992c(u32 x);
|
||||
u32 CoSqrt(u32 x);
|
||||
u32 CoInvSqrt(u32 x);
|
||||
u32 AwaitDivisionResult();
|
||||
u32 GetDivisionResult();
|
||||
void StartReciprocal(u32 x);
|
||||
void StartSqrt(u32 x);
|
||||
void func_01ff9ac4(u32 x);
|
||||
u32 AwaitSqrtResult();
|
||||
void StartDivision64By32(u32 a, u32 b);
|
||||
u32 CoDivide32(u32 a, u32 b);
|
||||
u32 CoRemainder(u32 a, u32 b);
|
||||
|
||||
bool Approach(unk32 *src, unk32 dest, unk32 step);
|
||||
bool Approach_thunk(unk32 *src, unk32 dest, unk32 step);
|
||||
extern q4 gSinCosTable[];
|
||||
|
||||
typedef struct {
|
||||
/* 0 */ u8 x;
|
||||
/* 1 */ u8 y;
|
||||
/* 2 */
|
||||
} Vec2b;
|
||||
|
||||
typedef struct {
|
||||
/* 0 */ s16 x;
|
||||
/* 1 */ s16 y;
|
||||
/* 2 */
|
||||
} Vec2s;
|
||||
|
||||
typedef struct {
|
||||
/* 0 */ q20 x;
|
||||
/* 4 */ q20 y;
|
||||
/* 8 */
|
||||
} Vec2p;
|
||||
|
||||
typedef struct {
|
||||
/* 0 */ q20 x;
|
||||
/* 4 */ q20 y;
|
||||
/* 8 */ q20 z;
|
||||
/* c */
|
||||
} Vec3p;
|
||||
|
||||
typedef struct {
|
||||
/* 00 */ q20 x;
|
||||
/* 04 */ q20 y;
|
||||
/* 08 */ q20 z;
|
||||
/* 0c */ q20 w;
|
||||
/* 10 */
|
||||
} Vec4p;
|
||||
|
||||
typedef struct {
|
||||
/* 00 */ Vec2p xColumn;
|
||||
/* 08 */ Vec2p yColumn;
|
||||
/* 10 */
|
||||
} Mat2p;
|
||||
|
||||
typedef struct {
|
||||
/* 00 */ Vec3p xColumn;
|
||||
/* 0c */ Vec3p yColumn;
|
||||
/* 18 */ Vec3p zColumn;
|
||||
/* 24 */
|
||||
} Mat3p;
|
||||
|
||||
typedef struct {
|
||||
/* 00 */ Vec3p xColumn;
|
||||
/* 0c */ Vec3p yColumn;
|
||||
/* 18 */ Vec3p zColumn;
|
||||
/* 24 */ Vec3p wColumn;
|
||||
/* 30 */
|
||||
} Mat4x3p;
|
||||
|
||||
typedef struct {
|
||||
/* 00 */ Vec4p xColumn;
|
||||
/* 10 */ Vec4p yColumn;
|
||||
/* 20 */ Vec4p zColumn;
|
||||
/* 30 */ Vec4p wColumn;
|
||||
/* 40 */
|
||||
} Mat4p;
|
||||
|
||||
extern const Vec3p gVec3p_ZERO;
|
||||
|
||||
void Vec3p_Add(Vec3p *a, Vec3p *b, Vec3p *out);
|
||||
void Vec3p_Sub(Vec3p *a, Vec3p *b, Vec3p *out);
|
||||
q20 Vec3p_Dot(Vec3p *a, Vec3p *b);
|
||||
void Vec3p_Cross(Vec3p *a, Vec3p *b, Vec3p *out);
|
||||
q20 Vec3p_Length(Vec3p *a);
|
||||
void Vec3p_Normalize(Vec3p *vec, Vec3p *out);
|
||||
void Vec3p_Axpy(q20 a, Vec3p *x, Vec3p *y, Vec3p *out);
|
||||
q20 Vec3p_Distance(Vec3p *a, Vec3p *b);
|
||||
bool Vec3p_TryNormalize(Vec3p *vec);
|
||||
q20 Vec3p_DistanceSquared(Vec3p *a, Vec3p *b);
|
||||
void Vec3p_Scale(Vec3p *vec, q20 scale);
|
||||
bool Vec3p_CalculateNormal(Vec3p *vec, Vec3p *a, Vec3p *b, Vec3p *c);
|
||||
|
||||
inline void Vec3p_Rotate(Vec3p *vec, q20 sin, q20 cos, Vec3p *out) {
|
||||
out->x += MUL_Q20(vec->z, sin);
|
||||
out->z += MUL_Q20(vec->z, cos);
|
||||
out->x += MUL_Q20(vec->x, cos);
|
||||
out->z += MUL_Q20(vec->x, -sin);
|
||||
}
|
||||
|
||||
inline void Vec3p_CopyXZ(Vec3p *vec, Vec3p *out) {
|
||||
q20 z = vec->z;
|
||||
q20 x = vec->x;
|
||||
|
||||
out->x = x;
|
||||
out->y = 0;
|
||||
out->z = z;
|
||||
}
|
||||
|
||||
inline void Vec3p_Copy(Vec3p *vec, Vec3p *out) {
|
||||
out->x = vec->x;
|
||||
out->y = vec->y;
|
||||
out->z = vec->z;
|
||||
}
|
||||
|
||||
void Mat2p_InitIdentity(Mat2p *m);
|
||||
void Mat2p_InitRotation(Mat2p *m, q20 sin, q20 cos);
|
||||
void Mat2p_Multiply(Mat2p *a, Mat2p *b, Mat2p *out);
|
||||
|
||||
void Mat3p_InitIdentity(Mat3p *m);
|
||||
void Mat3p_CopyToMat4x3p(Mat3p *m, Mat4x3p *out);
|
||||
void Mat3p_InitScale(Mat3p *m, q20 x, q20 y, q20 z);
|
||||
void Mat3p_ScaleColumns(Mat3p *m, Mat3p *out, q20 x, q20 y, q20 z);
|
||||
void Mat3p_InitXRotation(Mat3p *m, q20 sin, q20 cos);
|
||||
void Mat3p_InitYRotation(Mat3p *m, q20 sin, q20 cos);
|
||||
void Mat3p_InitZRotation(Mat3p *m, q20 sin, q20 cos);
|
||||
void Mat3p_func_01ff8248(Mat3p *m, Vec3p *v, q20 scale, q20 offset);
|
||||
void Mat3p_func_01ff83a0(Mat3p *a, Mat3p *b);
|
||||
void Mat3p_Multiply(Mat3p *a, Mat3p *b, Mat3p *out);
|
||||
void Mat3p_MultiplyVec(Vec3p *v, Mat3p *m, Vec3p *out);
|
||||
|
||||
void Mat4x3p_InitIdentity(Mat4x3p *m);
|
||||
void Mat4x3p_CopyToMat4p(Mat4x3p *m, Mat4p *out);
|
||||
void Mat4x3p_func_01ff8988(Mat4x3p *m, Mat4x3p *out, q20 x, q20 y, q20 z);
|
||||
void Mat4x3p_InitScale(Mat4x3p *m, q20 x, q20 y, q20 z);
|
||||
void Mat4x3p_ScaleColumns(Mat4x3p *m, Mat4x3p *out, q20 x, q20 y, q20 z);
|
||||
void Mat4x3p_InitXRotation(Mat4x3p *m, q20 sin, q20 cos);
|
||||
void Mat4x3p_InitYRotation(Mat4x3p *m, q20 sin, q20 cos);
|
||||
void Mat4x3p_InitZRotation(Mat4x3p *m, q20 sin, q20 cos);
|
||||
void Mat4x3p_func_01ff8ad8(Mat4x3p *m, Vec3p *v, q20 scale, q20 offset);
|
||||
void Mat4x3p_func_01ff8af8(Mat4x3p *a, Mat4x3p *b);
|
||||
void Mat4x3p_Multiply(Mat4x3p *a, Mat4x3p *b, Mat4x3p *out);
|
||||
void Mat4x3p_MultiplyVec(Vec3p *v, Mat4x3p *m, Vec3p *out);
|
||||
|
||||
void Mat4p_InitIdentity(Mat4p *m);
|
||||
void Mat4p_CopyToMat4x3p(Mat4p *m, Mat4x3p *out);
|
||||
void Mat4p_InitZRotation(Mat4p *m, q20 sin, q20 cos);
|
||||
void Mat4p_Multiply(Mat4p *a, Mat4p *b, Mat4p *out);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,177 @@
|
||||
#include "Actor/Actor.hpp"
|
||||
#include "Unknown/UnkStruct_027e0cd8.hpp"
|
||||
#include "Unknown/UnkStruct_027e0ce0.hpp"
|
||||
|
||||
ARM Actor::Actor() {
|
||||
unk32 temp_r2;
|
||||
unk32 temp_ip;
|
||||
unk32 temp_r3;
|
||||
|
||||
this->mUnk_1c.x = 0;
|
||||
this->mUnk_1c.y = 0;
|
||||
this->mUnk_1c.z = 0;
|
||||
this->mUnk_2c = 0xCD;
|
||||
this->mUnk_38 = 0;
|
||||
this->mUnk_3c = 0;
|
||||
this->mUnk_40 = 0;
|
||||
this->mUnk_48 = 4;
|
||||
this->mUnk_4c = -1;
|
||||
this->mUnk_50 = 0;
|
||||
this->mUnk_52 = 0;
|
||||
this->mUnk_54 = 0;
|
||||
this->mUnk_58 = 0;
|
||||
this->mUnk_84 = 0;
|
||||
this->mUnk_5c.func_ov000_020975f8();
|
||||
this->mUnk_8c = 0;
|
||||
this->mUnk_90 = 0;
|
||||
data_ov000_020b539c.func_02028cdc(&this->mUnk_5c, 0x30);
|
||||
temp_r2 = this->mUnk_5c.mUnk_00;
|
||||
temp_ip = this->mUnk_60;
|
||||
temp_r3 = this->mUnk_64;
|
||||
this->mUnk_04 = temp_r2;
|
||||
this->mUnk_10 = temp_r2;
|
||||
this->mUnk_28 = this->mUnk_68;
|
||||
this->mUnk_58 = 0x400B;
|
||||
this->mUnk_44 = 0xFF;
|
||||
this->mUnk_08 = temp_ip;
|
||||
this->mUnk_0c = temp_r3;
|
||||
this->mUnk_14 = temp_ip;
|
||||
this->mUnk_18 = temp_r3;
|
||||
this->mUnk_46 = 0;
|
||||
this->func_ov000_0209862c(0);
|
||||
this->func_ov000_0209848c(data_ov000_020b539c.mUnk_30);
|
||||
}
|
||||
|
||||
ARM Actor::~Actor() {}
|
||||
|
||||
// non-matching (equivalent)
|
||||
ARM void Actor::func_ov000_0209848c(UnkStruct_ov000_020b539c_30 *param1) {
|
||||
s16 unk_1c;
|
||||
unk32 *temp_r3;
|
||||
|
||||
unk_1c = param1->mUnk_1c;
|
||||
temp_r3 = ¶m1->mUnk_04;
|
||||
|
||||
this->mUnk_90 = param1;
|
||||
this->mUnk_30 = this->mUnk_34 = temp_r3;
|
||||
this->mUnk_4e = unk_1c;
|
||||
}
|
||||
|
||||
ARM unk32 Actor::vfunc_18() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
ARM void Actor::vfunc_1c() {}
|
||||
|
||||
ARM void Actor::vfunc_20() {}
|
||||
|
||||
ARM void Actor::vfunc_24() {}
|
||||
|
||||
ARM void Actor::vfunc_28() {}
|
||||
|
||||
ARM void Actor::vfunc_2c() {}
|
||||
|
||||
ARM void Actor::vfunc_30() {}
|
||||
|
||||
ARM unk32 Actor::vfunc_34() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
ARM void Actor::func_ov000_020984d0() {
|
||||
this->mUnk_58 &= ~1;
|
||||
|
||||
if (this->mUnk_58 & 0x10000) {
|
||||
this->func_ov000_020984f0();
|
||||
}
|
||||
}
|
||||
|
||||
ARM void Actor::func_ov000_020984f0() {
|
||||
if (this->mUnk_80 >= 0) {
|
||||
data_027e0cd8->func_ov000_02081ecc(this->mUnk_80, 1);
|
||||
}
|
||||
}
|
||||
|
||||
// non-matching
|
||||
ARM unk32 Actor::vfunc_00(UnkStruct_vfunc_00 *param1) {
|
||||
unk32 iVar1;
|
||||
unk32 uVar2;
|
||||
|
||||
uVar2 = this->mUnk_0c;
|
||||
iVar1 = this->mUnk_08 + this->mUnk_4e;
|
||||
param1->mUnk_00 = this->mUnk_04;
|
||||
param1->mUnk_04 = iVar1;
|
||||
param1->mUnk_08 = uVar2;
|
||||
return iVar1;
|
||||
}
|
||||
|
||||
ARM void Actor::func_ov000_0209853c(void) {
|
||||
data_027e0ce0->func_01fff148();
|
||||
}
|
||||
|
||||
ARM bool Actor::vfunc_04() {
|
||||
return this->mUnk_90->mUnk_1e & 1;
|
||||
}
|
||||
|
||||
ARM unk16 Actor::vfunc_08() {
|
||||
return this->mUnk_90->mUnk_1a;
|
||||
}
|
||||
|
||||
ARM unk8 Actor::vfunc_0c() {
|
||||
return this->mUnk_90->mUnk_18;
|
||||
}
|
||||
|
||||
// non-matching
|
||||
ARM unk32 Actor::vfunc_38(unk32 param1) {
|
||||
u16 var_r3;
|
||||
short stack_c;
|
||||
|
||||
var_r3 = param1 >> 16;
|
||||
|
||||
if (this->mUnk_58 & 0x100) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
this->mUnk_58 |= 0x100;
|
||||
stack_c = this->mUnk_58;
|
||||
|
||||
switch (stack_c) {
|
||||
case 0x100:
|
||||
case 0x101:
|
||||
if (stack_c == 0x101) {
|
||||
var_r3 = 0;
|
||||
}
|
||||
|
||||
// ???
|
||||
*(&this->mUnk_4a + var_r3) = 0;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
// non-matching
|
||||
ARM bool Actor::vfunc_3c(Vec3p *param1) {
|
||||
if (this->mUnk_58 & 0x100) {
|
||||
this->mUnk_1c.x = param1->x;
|
||||
this->mUnk_1c.y = param1->y;
|
||||
this->mUnk_1c.z = param1->z;
|
||||
this->mUnk_58 &= ~0x100;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// non-matching
|
||||
ARM void Actor::func_ov000_0209862c(unk32 param1) {
|
||||
s8 var_ip;
|
||||
void *temp_r2;
|
||||
|
||||
var_ip = 0;
|
||||
do {
|
||||
var_ip += 1;
|
||||
(&this->mUnk_4a)[var_ip] = param1;
|
||||
} while (var_ip < 2);
|
||||
}
|
||||
+1
-1
@@ -17,7 +17,7 @@ libc_include_dir = libs_dir / 'c' / 'include'
|
||||
libcpp_include_dir = libs_dir / 'cpp' / 'include'
|
||||
|
||||
if platform.system() == 'Windows': cc = [str(cc_path)]
|
||||
else: cc = ['wine', str(cc_path)]
|
||||
else: cc = ['./wibo', str(cc_path)]
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user