summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-10-29 21:31:38 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-10-29 21:31:38 -0400
commit8d35bf1c9e93c11f0e8d6e4d7933e3b1761072a6 (patch)
treecfe050a4ecd2b23d1b38a98a23fbcab586c99d79 /src
parentf07307dc73ef7e7a04c9c7091428a73303f8714c (diff)
_swiopen
Diffstat (limited to 'src')
-rw-r--r--src/field_region_map.c6
-rw-r--r--src/region_map.c58
2 files changed, 45 insertions, 19 deletions
diff --git a/src/field_region_map.c b/src/field_region_map.c
index 74b62bbc7..2f73179d9 100644
--- a/src/field_region_map.c
+++ b/src/field_region_map.c
@@ -150,11 +150,11 @@ void sub_8170290(void)
case 4:
switch (sub_81230AC())
{
- case 3:
+ case INPUT_EVENT_MOVE_END:
sub_8170428();
break;
- case 4:
- case 5:
+ case INPUT_EVENT_A_BUTTON:
+ case INPUT_EVENT_B_BUTTON:
gUnknown_0203BCD0->state ++;
break;
}
diff --git a/src/region_map.c b/src/region_map.c
index 7d3db9c8b..894937c6d 100644
--- a/src/region_map.c
+++ b/src/region_map.c
@@ -13,17 +13,6 @@ struct UnkStruct_0203A148 {
u8 filler_000[0xa74];
};
-enum
-{
- INPUT_EVENT_NONE,
- INPUT_EVENT_DPAD,
- INPUT_EVENT_2,
- INPUT_EVENT_3,
- INPUT_EVENT_A_BUTTON,
- INPUT_EVENT_B_BUTTON,
-};
-
-
// Static RAM declarations
EWRAM_DATA struct RegionMap *gUnknown_0203A144 = NULL;
@@ -40,6 +29,7 @@ u8 get_flagnr_blue_points(u16 mapSecId);
u16 sub_8123EB4(u16 mapSecId);
void sub_8123FB0(void);
u8 _swiopen(void);
+u16 sub_812386C(u16 x, u16 y);
// .rodata
@@ -209,22 +199,22 @@ u8 sub_81230C4(void)
if (gMain.heldKeys & DPAD_UP && gUnknown_0203A144->unk_056 > 2)
{
gUnknown_0203A144->unk_07c = -1;
- input = INPUT_EVENT_DPAD;
+ input = INPUT_EVENT_MOVE_START;
}
if (gMain.heldKeys & DPAD_DOWN && gUnknown_0203A144->unk_056 < 16)
{
gUnknown_0203A144->unk_07c = +1;
- input = INPUT_EVENT_DPAD;
+ input = INPUT_EVENT_MOVE_START;
}
if (gMain.heldKeys & DPAD_LEFT && gUnknown_0203A144->unk_054 > 1)
{
gUnknown_0203A144->unk_07b = -1;
- input = INPUT_EVENT_DPAD;
+ input = INPUT_EVENT_MOVE_START;
}
if (gMain.heldKeys & DPAD_RIGHT && gUnknown_0203A144->unk_054 < 28)
{
gUnknown_0203A144->unk_07b = +1;
- input = INPUT_EVENT_DPAD;
+ input = INPUT_EVENT_MOVE_START;
}
if (gMain.newKeys & A_BUTTON)
{
@@ -234,10 +224,46 @@ u8 sub_81230C4(void)
{
input = INPUT_EVENT_B_BUTTON;
}
- if (input == INPUT_EVENT_DPAD)
+ if (input == INPUT_EVENT_MOVE_START)
{
gUnknown_0203A144->unk_07a = 4;
gUnknown_0203A144->inputCallback = _swiopen;
}
return input;
}
+
+u8 _swiopen(void)
+{
+ u16 mapSecId;
+
+ if (gUnknown_0203A144->unk_07a != 0)
+ {
+ return INPUT_EVENT_MOVE_CONT;
+ }
+ if (gUnknown_0203A144->unk_07b > 0)
+ {
+ gUnknown_0203A144->unk_054 ++;
+ }
+ if (gUnknown_0203A144->unk_07b < 0)
+ {
+ gUnknown_0203A144->unk_054 --;
+ }
+ if (gUnknown_0203A144->unk_07c > 0)
+ {
+ gUnknown_0203A144->unk_056 ++;
+ }
+ if (gUnknown_0203A144->unk_07c < 0)
+ {
+ gUnknown_0203A144->unk_056 --;
+ }
+ mapSecId = sub_812386C(gUnknown_0203A144->unk_054, gUnknown_0203A144->unk_056);
+ gUnknown_0203A144->unk_002 = get_flagnr_blue_points(mapSecId);
+ if (mapSecId != gUnknown_0203A144->mapSecId)
+ {
+ gUnknown_0203A144->mapSecId = mapSecId;
+ GetMapName(gUnknown_0203A144->mapSecName, gUnknown_0203A144->mapSecId, 16);
+ }
+ sub_8123FB0();
+ gUnknown_0203A144->inputCallback = sub_81230C4;
+ return INPUT_EVENT_MOVE_END;
+}