Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions config/YFEE01/arm9/overlays/ov000/delinks.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ src/ov000/camera.cpp:
complete
.text start:0x021a4a7c end:0x021a5318

src/ov000/map_input_handler.cpp:
.text start:0x021a5318 end:0x021a68c0

src/ov000/cursor.cpp:
.text start:0x021a68c0 end:0x021a6f10

Expand Down
36 changes: 18 additions & 18 deletions config/YFEE01/arm9/overlays/ov000/symbols.txt
Original file line number Diff line number Diff line change
Expand Up @@ -83,26 +83,26 @@ _ZN6Camera19func_ov000_021a52b0Ev kind:function(arm,size=0x18) addr:0x021a52b0
_ZN6Camera19func_ov000_021a52c8Elll kind:function(arm,size=0x8) addr:0x021a52c8
_ZN6Camera19func_ov000_021a52d0Elll kind:function(arm,size=0x28) addr:0x021a52d0
_ZN6Camera19func_ov000_021a52f8EllP4Vec3 kind:function(arm,size=0x20) addr:0x021a52f8
func_ov000_021a5318 kind:function(arm,size=0x70) addr:0x021a5318
func_ov000_021a5388 kind:function(arm,size=0x294) addr:0x021a5388
func_ov000_021a561c kind:function(arm,size=0x34) addr:0x021a561c
func_ov000_021a5650 kind:function(arm,size=0x38) addr:0x021a5650
func_ov000_021a5688 kind:function(arm,size=0xe0) addr:0x021a5688
func_ov000_021a5768 kind:function(arm,size=0xc) addr:0x021a5768
func_ov000_021a5774 kind:function(arm,size=0x70) addr:0x021a5774
func_ov000_021a57e4 kind:function(arm,size=0x2c) addr:0x021a57e4
func_ov000_021a5810 kind:function(arm,size=0x30) addr:0x021a5810
func_ov000_021a5840 kind:function(arm,size=0x1c) addr:0x021a5840
func_ov000_021a585c kind:function(arm,size=0xf8) addr:0x021a585c
_ZN12InputHandler4InitEv kind:function(arm,size=0x70) addr:0x021a5318
_ZN12InputHandler13CreateButtonsEv kind:function(arm,size=0x294) addr:0x021a5388
_ZN12InputHandler14DestroyButtonsEv kind:function(arm,size=0x34) addr:0x021a561c
_ZN12InputHandler9_021a5650El kind:function(arm,size=0x38) addr:0x021a5650
_ZN12InputHandler9_021a5688Ev kind:function(arm,size=0xe0) addr:0x021a5688
_ZN12InputHandler15IsButtonVisibleEh kind:function(arm,size=0xc) addr:0x021a5768
_ZN12InputHandler19SetButtonVisibilityEl kind:function(arm,size=0x70) addr:0x021a5774
_ZN12InputHandler10HideButtonEl kind:function(arm,size=0x2c) addr:0x021a57e4
_ZN12InputHandler10ShowButtonEl kind:function(arm,size=0x30) addr:0x021a5810
_ZN12InputHandler9_021a5840El kind:function(arm,size=0x1c) addr:0x021a5840
_ZN12InputHandler9_021a585cEl kind:function(arm,size=0xf8) addr:0x021a585c
func_ov000_021a5954 kind:function(arm,size=0x78) addr:0x021a5954
func_ov000_021a59cc kind:function(arm,size=0xf0) addr:0x021a59cc
func_ov000_021a5abc kind:function(arm,size=0x1c4) addr:0x021a5abc
func_ov000_021a5c80 kind:function(arm,size=0x88) addr:0x021a5c80
func_ov000_021a5d08 kind:function(arm,size=0x54) addr:0x021a5d08
func_ov000_021a5d5c kind:function(arm,size=0x670) addr:0x021a5d5c
func_ov000_021a63cc kind:function(arm,size=0x6c) addr:0x021a63cc
func_ov000_021a6438 kind:function(arm,size=0x3c8) addr:0x021a6438
func_ov000_021a6800 kind:function(arm,size=0xc0) addr:0x021a6800
_ZN12InputHandler9_021a5abcElll kind:function(arm,size=0x1c4) addr:0x021a5abc
_ZN12InputHandler9_021a5c80Ell kind:function(arm,size=0x88) addr:0x021a5c80
_ZN12InputHandler9_021a5d08Ev kind:function(arm,size=0x54) addr:0x021a5d08
_ZN12InputHandler9_021a5d5cEl kind:function(arm,size=0x670) addr:0x021a5d5c
_ZN12InputHandler9_021a63ccEll kind:function(arm,size=0x6c) addr:0x021a63cc
_ZN12InputHandler9_021a6438Ev kind:function(arm,size=0x3c8) addr:0x021a6438
_ZN12InputHandler9_021a6800Ev kind:function(arm,size=0xc0) addr:0x021a6800
_ZN6Cursor4InitEv kind:function(arm,size=0x50) addr:0x021a68c0
_ZN6Cursor6SetPosElll kind:function(arm,size=0x84) addr:0x021a6910
_ZN6Cursor14SetPosAnimatedElllh kind:function(arm,size=0x124) addr:0x021a6994
Expand Down
77 changes: 57 additions & 20 deletions include/map.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -176,26 +176,63 @@ struct MapStateManager_08
/* 10F8 */ s8 unk_10f8[0x80];
};

struct MapStateManager_0C
class Button;

enum
{
INPUT_TYPE_NONE = 0,
INPUT_TYPE_KEY = 1,
INPUT_TYPE_TOUCH = 2,
};

class InputHandler
{
// +0x10 contains last touch coords
// +0x14 contains current touch coords
// +0x18 contains key handlers
STRUCT_PAD(0x00, 0x1C);
u16 unk_1c;
u8 unk_1e;
u8 unk_1f;
u8 unk_20;
u8 unk_21_0 : 2;
u8 unk_21_2 : 1;
u8 unk_21_3 : 1;
u8 unk_21_4 : 2;
u8 unk_21_6 : 1;
u8 unk_21_7 : 1;
u8 unk_21_8 : 1;
STRUCT_PAD(0x22, 0x23);
u8 unk_24;
STRUCT_PAD(0x25, 0x28);
public:
/* 00 */ Button * buttons[4];
/* 10 */ s16 xTouchPrev;
/* 12 */ s16 yTouchPrev;
/* 14 */ s16 xTouchCur;
/* 16 */ s16 yTouchCur;
/* 18 */ u16 keyHeld;
/* 1A */ u16 keyRepeated;
/* 1C */ u16 keyPressed;
/* 1E */ u8 unk_1e;
/* 1F */ u8 inputType;
/* 20 */ u8 unk_20;
/* 21 */ u8 unk_21_0 : 2;
/* 21 */ u8 unk_21_2 : 2;
/* 21 */ u8 unk_21_4 : 2;
/* 21 */ u8 unk_21_6 : 2;
/* 22 */ u8 buttonVisibilityMask;
/* 23 */ u8 unk_23;
/* 24 */ u8 unk_24;
/* 25 */ u8 unk_25;
/* 26 */ u8 unk_26;
/* 27 */ s8 unk_27;

void Init(void);
void CreateButtons(void);
void DestroyButtons(void);
BOOL _021a5650(s32);
void _021a5688(void);
BOOL IsButtonVisible(u8);
void SetButtonVisibility(s32);
void HideButton(s32);
void ShowButton(s32);
void _021a5840(s32);
void _021a585c(s32);
BOOL _021a5abc(s32, s32, BOOL);
BOOL _021a5c80(s32, s32);
void _021a5d08(void);
void _021a5d5c(s32);
BOOL _021a63cc(s32, s32);
void _021a6438(void);
BOOL _021a6800(void);

inline BOOL IsUsingKeyInputs(void)
{
return this->inputType == INPUT_TYPE_KEY;
}
};

class Cursor
Expand Down Expand Up @@ -332,7 +369,7 @@ class MapStateManager
/* 000 */ Camera * camera;
/* 004 */ struct MapStateManager_04 * unk_04;
/* 008 */ struct MapStateManager_08 * unk_08;
/* 00C */ struct MapStateManager_0C * unk_0c;
/* 00C */ InputHandler * inputHandler;
/* 010 */ Cursor * cursor;
/* 014 */ struct MapStateManager_14 * unk_14;
/* 018 */ void * unk_18;
Expand Down
36 changes: 18 additions & 18 deletions include/unknown_funcs.h
Original file line number Diff line number Diff line change
Expand Up @@ -5765,26 +5765,26 @@ EC void _ZN6Camera19func_ov000_021a516cEv(s32);
// EC ??? _ZN6Camera19func_ov000_021a52c8Elll
// EC ??? _ZN6Camera19func_ov000_021a52d0Elll
// EC ??? _ZN6Camera19func_ov000_021a52f8EllP4Vec3
// EC ??? func_ov000_021a5318
// EC ??? func_ov000_021a5388
// EC ??? func_ov000_021a561c
EC BOOL func_ov000_021a5650(void *, u32);
// EC ??? func_ov000_021a5688
EC BOOL func_ov000_021a5768(void *, u32);
EC void func_ov000_021a5774(void *, u32);
EC void func_ov000_021a57e4(void *, u32);
EC void func_ov000_021a5810(void *, u32);
// EC ??? func_ov000_021a5840
// EC ??? func_ov000_021a585c
// EC ??? _ZN12InputHandler4InitEv
// EC ??? _ZN12InputHandler13CreateButtonsEv
// EC ??? _ZN12InputHandler14DestroyButtonsEv
EC BOOL _ZN12InputHandler9_021a5650El(void *, u32);
// EC ??? _ZN12InputHandler9_021a5688Ev
EC BOOL _ZN12InputHandler15IsButtonVisibleEh(void *, u32);
EC void _ZN12InputHandler19SetButtonVisibilityEl(void *, u32);
EC void _ZN12InputHandler10HideButtonEl(void *, u32);
EC void _ZN12InputHandler10ShowButtonEl(void *, u32);
// EC ??? _ZN12InputHandler9_021a5840El
// EC ??? _ZN12InputHandler9_021a585cEl
// EC ??? func_ov000_021a5954
// EC ??? func_ov000_021a59cc
// EC ??? func_ov000_021a5abc
// EC ??? func_ov000_021a5c80
// EC ??? func_ov000_021a5d08
EC void func_ov000_021a5d5c(void *, u32);
// EC ??? func_ov000_021a63cc
// EC ??? func_ov000_021a6438
// EC ??? func_ov000_021a6800
// EC ??? _ZN12InputHandler9_021a5abcElll
// EC ??? _ZN12InputHandler9_021a5c80Ell
// EC ??? _ZN12InputHandler9_021a5d08Ev
// EC void _ZN12InputHandler9_021a5d5cEl(void *, u32);
// EC ??? _ZN12InputHandler9_021a63ccEll
// EC ??? _ZN12InputHandler9_021a6438Ev
// EC ??? _ZN12InputHandler9_021a6800Ev
// EC ??? _ZN6Cursor4InitEv
// EC ??? _ZN6Cursor6SetPosElll
// EC ??? _ZN6Cursor14SetPosAnimatedElllh
Expand Down
6 changes: 4 additions & 2 deletions include/unknown_types.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,14 @@ struct UnkStruct_02196f24
{
STRUCT_PAD(0x00, 0x03);
u8 unk_03;
STRUCT_PAD(0x04, 0x07);
/* 04 */ u8 controlSettings;
STRUCT_PAD(0x05, 0x07);
/* 07 */ u8 enableBgm;
/* 08 */ u8 enableSoundEffects;
STRUCT_PAD(0x09, 0x0C);
/* 0C */ u8 enableTutorials;
STRUCT_PAD(0x0D, 0x10);
/* 0D */ u8 unk_0d;
STRUCT_PAD(0x0E, 0x10);
};

struct UnkStruct_02196f20
Expand Down
16 changes: 8 additions & 8 deletions src/ov000/arena.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -147,15 +147,15 @@ class Arena : public ProcEx
gpActiveScreenSt->dispIo->bldcnt.target2_obj_on = 0;
gpActiveScreenSt->dispIo->bldcnt.target2_bd_on = 1;

func_ov000_021a5810(gMapStateManager->unk_0c, 1);
gMapStateManager->inputHandler->ShowButton(1);
this->_021d9078();
}

virtual ~Arena()
{
gpActiveScreenSt->dispIo->bldcnt.effect = 0;

func_ov000_021a57e4(gMapStateManager->unk_0c, 1);
gMapStateManager->inputHandler->HideButton(1);
this->_021d9120();
this->_021d9024();

Expand Down Expand Up @@ -976,7 +976,7 @@ void arena::Arena::_021d87a4(void)
{
u8 tmp;

if ((gKeySt->pressed & KEY_BUTTON_B) || (func_ov000_021a5650(gMapStateManager->unk_0c, 0) != 0))
if ((gKeySt->pressed & KEY_BUTTON_B) || (gMapStateManager->inputHandler->_021a5650(0)))
{
this->unk_59 = 1;
}
Expand Down Expand Up @@ -1022,7 +1022,7 @@ void arena::Arena::_021d882c(BOOL arg_1)

if (func_ov000_021ca0b8(this->unk_5c) == this->unk_3c)
{
func_ov000_021a5810(gMapStateManager->unk_0c, 0);
gMapStateManager->inputHandler->ShowButton(0);
Proc_Goto(this, 6, 0);
pUnit = func_0203c378(this->unk_38);

Expand All @@ -1037,19 +1037,19 @@ void arena::Arena::_021d882c(BOOL arg_1)
{
if (func_ov000_021ca0b8(this->unk_5c) == this->unk_38)
{
func_ov000_021a57e4(gMapStateManager->unk_0c, 0);
gMapStateManager->inputHandler->HideButton(0);
Proc_Goto(this, 7, 0);
uVar6 = -1;
}
else if (this->unk_59 != 0)
{
func_ov000_021a57e4(gMapStateManager->unk_0c, 0);
gMapStateManager->inputHandler->HideButton(0);
Proc_Goto(this, 8, 0);
uVar6 = -1;
}
else
{
func_ov000_021a57e4(gMapStateManager->unk_0c, 0);
gMapStateManager->inputHandler->HideButton(0);
Proc_Goto(this, 9, 0);
uVar6 = -1;
}
Expand Down Expand Up @@ -1570,7 +1570,7 @@ EC void Arena_ov000_021d94f4(arena::Arena * proc)

EC void Arena_ov000_021d9500(arena::Arena * unused)
{
func_ov000_021a57e4(gMapStateManager->unk_0c, 0);
gMapStateManager->inputHandler->HideButton(0);
return;
}

Expand Down
2 changes: 1 addition & 1 deletion src/ov000/camera.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,7 @@ void Camera::func_ov000_021a4fb4(void)

range = this->unk_12;

if (gMapStateManager->unk_0c->unk_24)
if (gMapStateManager->inputHandler->unk_24)
{
range *= 2;
}
Expand Down
16 changes: 7 additions & 9 deletions src/ov000/cursor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ void Cursor::_021a6b4c(s32 xPx, s32 yPx)
s32 diff;
s32 var_r4 = gMapStateManager->camera->unk_12;

if (gMapStateManager->unk_0c->unk_24 != 0)
if (gMapStateManager->inputHandler->unk_24 != 0)
{
var_r4 *= 2;
}
Expand Down Expand Up @@ -169,12 +169,12 @@ void Cursor::_021a6bd0(void)
this->xDisplay = this->xTile * GetTileSize();
this->yDisplay = this->yTile * GetTileSize();

if ((gMapStateManager->unk_0c->unk_1f == 1 ? TRUE : FALSE) == 0)
if (gMapStateManager->inputHandler->IsUsingKeyInputs())
{
return;
gMapStateManager->camera->func_ov000_021a4ba0(this->xDisplay, this->yDisplay, 0);
}

gMapStateManager->camera->func_ov000_021a4ba0(this->xDisplay, this->yDisplay, 0);
return;
}

void Cursor::_021a6c38(void)
Expand All @@ -185,7 +185,7 @@ void Cursor::_021a6c38(void)
xDisp = this->xTile * GetTileSize();
yDisp = this->yTile * GetTileSize();

if (gMapStateManager->unk_0c->unk_1e != 0)
if (gMapStateManager->inputHandler->unk_1e != 0)
{
xDisp = this->xTile * GetTileSize();
yDisp = this->yTile * GetTileSize();
Expand All @@ -209,13 +209,11 @@ void Cursor::_021a6c38(void)
return;
}

if (((gMapStateManager->unk_0c->unk_1f == 1) ? TRUE : FALSE) == 0)
if (gMapStateManager->inputHandler->IsUsingKeyInputs())
{
return;
gMapStateManager->camera->func_ov000_021a4ba0(this->xDisplay, this->yDisplay, 0);
}

gMapStateManager->camera->func_ov000_021a4ba0(this->xDisplay, this->yDisplay, 0);

return;
}

Expand Down
Loading