summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-10-07 11:18:45 -0700
committerYamaArashi <shadow962@live.com>2016-10-07 11:18:45 -0700
commit9166c047d218ba20cfba72b8c1b1bcb05341c852 (patch)
tree5b11bcd0302a08e588484870f93f3827b220870e /src
parente917ff8398a731e83caf24b65d9fada0a1729fe3 (diff)
decompile more functions from rom4.s
Diffstat (limited to 'src')
-rw-r--r--src/rom4.c242
1 files changed, 242 insertions, 0 deletions
diff --git a/src/rom4.c b/src/rom4.c
index 99b16ae84..e69702726 100644
--- a/src/rom4.c
+++ b/src/rom4.c
@@ -6,6 +6,7 @@
#include "rng.h"
#include "main.h"
#include "palette.h"
+#include "text.h"
#ifdef SAPPHIRE
#define LEGENDARY_MUSIC BGM_OOAME // Heavy Rain
@@ -122,6 +123,11 @@ void c2_exit_to_overworld_2_local(void);
void FieldClearVBlankHBlankCallbacks(void);
void SetFieldVBlankCallback(void);
void VBlankCB_Field(void);
+bool32 sub_805483C(u8 *);
+bool32 sub_805493C(u8 *, u32);
+bool32 sub_8054A4C(u8 *);
+bool32 sub_8054A9C(u8 *a1);
+void do_load_map_stuff_loop(u8 *a1);
void sub_8052F5C(void)
{
@@ -1328,3 +1334,239 @@ void sub_8054814(void)
sub_80895F8(gUnknown_08216694[0], gUnknown_08216694[1], gUnknown_08216694[2]);
}
}
+
+bool32 sub_805483C(u8 *a1)
+{
+ switch (*a1)
+ {
+ case 0:
+ FieldClearVBlankHBlankCallbacks();
+ ScriptContext1_Init();
+ ScriptContext2_Disable();
+ sub_8054F70();
+ sub_8054BA8();
+ (*a1)++;
+ break;
+ case 1:
+ sub_8053994(1);
+ (*a1)++;
+ break;
+ case 2:
+ sub_8054D4C(1);
+ (*a1)++;
+ break;
+ case 3:
+ sub_8054E98();
+ sub_8054D90();
+ sub_8054EC8();
+ sub_8054E60();
+ (*a1)++;
+ break;
+ case 4:
+ sub_8054814();
+ sub_8054C54();
+ SetUpWindowConfig(&gWindowConfig_81E6C3C);
+ InitMenuWindow(&gWindowConfig_81E6CE4);
+ (*a1)++;
+ break;
+ case 5:
+ move_tilemap_camera_to_upper_left_corner();
+ (*a1)++;
+ break;
+ case 6:
+ sub_8056D28(gMapHeader.mapData);
+ (*a1)++;
+ break;
+ case 7:
+ sub_8056D38(gMapHeader.mapData);
+ (*a1)++;
+ break;
+ case 8:
+ apply_map_tileset1_tileset2_palette(gMapHeader.mapData);
+ (*a1)++;
+ break;
+ case 9:
+ DrawWholeMapView();
+ (*a1)++;
+ break;
+ case 10:
+ cur_mapheader_run_tileset_funcs_after_some_cpuset();
+ (*a1)++;
+ break;
+ case 12:
+ sub_80543E8();
+ (*a1)++;
+ break;
+ case 11:
+ (*a1)++;
+ break;
+ case 13:
+ return 1;
+ }
+ return 0;
+}
+
+bool32 sub_805493C(u8 *a1, u32 a2)
+{
+ switch (*a1)
+ {
+ case 0:
+ FieldClearVBlankHBlankCallbacks();
+ sub_8053994(a2);
+ (*a1)++;
+ break;
+ case 1:
+ sub_8054BA8();
+ (*a1)++;
+ break;
+ case 2:
+ sub_8054D4C(a2);
+ (*a1)++;
+ break;
+ case 3:
+ mli4_mapscripts_and_other();
+ sub_8054E34();
+ (*a1)++;
+ break;
+ case 4:
+ sub_8054814();
+ sub_8054C54();
+ SetUpWindowConfig(&gWindowConfig_81E6C3C);
+ InitMenuWindow((u8 *)&gWindowConfig_81E6CE4);
+ (*a1)++;
+ break;
+ case 5:
+ move_tilemap_camera_to_upper_left_corner();
+ (*a1)++;
+ break;
+ case 6:
+ sub_8056D28(gMapHeader.mapData);
+ (*a1)++;
+ break;
+ case 7:
+ sub_8056D38(gMapHeader.mapData);
+ (*a1)++;
+ break;
+ case 8:
+ apply_map_tileset1_tileset2_palette(gMapHeader.mapData);
+ (*a1)++;
+ break;
+ case 9:
+ DrawWholeMapView();
+ (*a1)++;
+ break;
+ case 10:
+ cur_mapheader_run_tileset_funcs_after_some_cpuset();
+ (*a1)++;
+ break;
+ case 11:
+ if (gMapHeader.flags == 1 && sub_80BBB24() == 1)
+ AddMapNamePopUpWindowTask();
+ (*a1)++;
+ break;
+ case 12:
+ sub_80543E8();
+ (*a1)++;
+ break;
+ case 13:
+ return 1;
+ }
+ return 0;
+}
+
+bool32 sub_8054A4C(u8 *a1)
+{
+ switch (*a1)
+ {
+ case 0:
+ sub_8054BA8();
+ sub_8054D4C(0);
+ sub_8054E20();
+ sub_8054E34();
+ (*a1)++;
+ break;
+ case 1:
+ sub_8054C2C();
+ (*a1)++;
+ break;
+ case 2:
+ sub_80543E8();
+ (*a1)++;
+ break;
+ case 3:
+ return 1;
+ }
+ return 0;
+}
+
+bool32 sub_8054A9C(u8 *a1)
+{
+ switch (*a1)
+ {
+ case 0:
+ FieldClearVBlankHBlankCallbacks();
+ sub_8054BA8();
+ (*a1)++;
+ break;
+ case 1:
+ sub_8054D4C(1);
+ (*a1)++;
+ break;
+ case 2:
+ sub_8054F48();
+ sub_8054E20();
+ sub_8054E7C();
+ (*a1)++;
+ break;
+ case 3:
+ sub_8054814();
+ sub_8054C54();
+ SetUpWindowConfig(&gWindowConfig_81E6C3C);
+ InitMenuWindow(&gWindowConfig_81E6CE4);
+ (*a1)++;
+ break;
+ case 4:
+ move_tilemap_camera_to_upper_left_corner();
+ (*a1)++;
+ break;
+ case 5:
+ sub_8056D28(gMapHeader.mapData);
+ (*a1)++;
+ break;
+ case 6:
+ sub_8056D38(gMapHeader.mapData);
+ (*a1)++;
+ break;
+ case 7:
+ apply_map_tileset1_tileset2_palette(gMapHeader.mapData);
+ (*a1)++;
+ break;
+ case 8:
+ DrawWholeMapView();
+ (*a1)++;
+ break;
+ case 9:
+ cur_mapheader_run_tileset_funcs_after_some_cpuset();
+ (*a1)++;
+ break;
+ case 12:
+ sub_80543E8();
+ (*a1)++;
+ break;
+ case 10:
+ case 11:
+ (*a1)++;
+ break;
+ case 13:
+ SetFieldVBlankCallback();
+ (*a1)++;
+ return 1;
+ }
+ return 0;
+}
+
+void do_load_map_stuff_loop(u8 *a1)
+{
+ while (!sub_805493C(a1, 0))
+ ;
+}