summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/array_count.h8
-rw-r--r--include/macros.h4
-rw-r--r--include/z64.h1
-rw-r--r--src/audio/data.c4
-rw-r--r--src/audio/general.c3
-rw-r--r--src/audio/lib/load.c1
-rw-r--r--src/audio/lib/seqplayer.c1
-rw-r--r--src/audio/lib/thread.c1
-rw-r--r--src/audio/sequence.c7
-rw-r--r--src/audio/session_init.c1
-rw-r--r--src/audio/sfx.c1
-rw-r--r--src/boot/idle.c1
-rw-r--r--src/boot/z_std_dma.c1
-rw-r--r--src/code/audio_stop_all_sfx.c3
-rw-r--r--src/code/audio_thread_manager.c1
-rw-r--r--src/code/db_camera.c1
-rw-r--r--src/code/fault_gc.c1
-rw-r--r--src/code/fault_gc_drawer.c1
-rw-r--r--src/code/fault_n64.c1
-rw-r--r--src/code/game.c1
-rw-r--r--src/code/graph.c2
-rw-r--r--src/code/irqmgr.c1
-rw-r--r--src/code/main.c1
-rw-r--r--src/code/object_table.c1
-rw-r--r--src/code/padmgr.c4
-rw-r--r--src/code/sched.c1
-rw-r--r--src/code/speed_meter.c1
-rw-r--r--src/code/sys_math_atan.c2
-rw-r--r--src/code/ucode_disas.c7
-rw-r--r--src/code/z_actor.c1
-rw-r--r--src/code/z_bgcheck.c1
-rw-r--r--src/code/z_camera.c4
-rw-r--r--src/code/z_camera_data.inc.c2
-rw-r--r--src/code/z_collision_btltbls.c1
-rw-r--r--src/code/z_debug.c1
-rw-r--r--src/code/z_demo.c5
-rw-r--r--src/code/z_eff_shield_particle.c1
-rw-r--r--src/code/z_eff_spark.c1
-rw-r--r--src/code/z_effect_soft_sprite.c1
-rw-r--r--src/code/z_effect_soft_sprite_old_init.c1
-rw-r--r--src/code/z_env_flags.c1
-rw-r--r--src/code/z_game_over.c1
-rw-r--r--src/code/z_horse.c1
-rw-r--r--src/code/z_jpeg.c2
-rw-r--r--src/code/z_kaleido_manager.c1
-rw-r--r--src/code/z_kankyo.c1
-rw-r--r--src/code/z_message.c1
-rw-r--r--src/code/z_onepointdemo.c4
-rw-r--r--src/code/z_parameter.c1
-rw-r--r--src/code/z_play.c1
-rw-r--r--src/code/z_quake.c1
-rw-r--r--src/code/z_room.c1
-rw-r--r--src/code/z_scene.c1
-rw-r--r--src/code/z_sfx_source.c1
-rw-r--r--src/code/z_skin_awb.c4
-rw-r--r--src/code/z_sram.c1
-rw-r--r--src/code/z_vr_box.c1
-rw-r--r--src/libleo/leo/leofunc.c4
-rw-r--r--src/libleo/leo/leoutil.c3
-rw-r--r--src/libultra/io/contpfs.c2
-rw-r--r--src/libultra/io/contreaddata.c2
-rw-r--r--src/libultra/io/controller.c2
-rw-r--r--src/libultra/io/piacs.c2
-rw-r--r--src/libultra/io/siacs.c2
-rw-r--r--src/libultra/io/vimgr.c6
-rw-r--r--src/n64dd/n64dd_801C8000.c3
-rw-r--r--src/n64dd/n64dd_801CA0B0.c2
-rw-r--r--src/n64dd/z_n64dd.c5
-rw-r--r--src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c1
-rw-r--r--src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c1
-rw-r--r--src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.c1
-rw-r--r--src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c1
-rw-r--r--src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c1
-rw-r--r--src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c1
-rw-r--r--src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c1
-rw-r--r--src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c1
-rw-r--r--src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c1
-rw-r--r--src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c1
-rw-r--r--src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c1
-rw-r--r--src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c1
-rw-r--r--src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c1
-rw-r--r--src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c1
-rw-r--r--src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.c1
-rw-r--r--src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.c1
-rw-r--r--src/overlays/actors/ovl_Bg_Spot15_Rrbox/z_bg_spot15_rrbox.c1
-rw-r--r--src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c1
-rw-r--r--src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c1
-rw-r--r--src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c1
-rw-r--r--src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c1
-rw-r--r--src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c1
-rw-r--r--src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c1
-rw-r--r--src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c1
-rw-r--r--src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c1
-rw-r--r--src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c1
-rw-r--r--src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c1
-rw-r--r--src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c1
-rw-r--r--src/overlays/actors/ovl_Boss_Va/z_boss_va.c1
-rw-r--r--src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c1
-rw-r--r--src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c1
-rw-r--r--src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c1
-rw-r--r--src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c1
-rw-r--r--src/overlays/actors/ovl_En_Anubice/z_en_anubice.c1
-rw-r--r--src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c1
-rw-r--r--src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c1
-rw-r--r--src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c1
-rw-r--r--src/overlays/actors/ovl_En_Door/z_en_door.c1
-rw-r--r--src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c1
-rw-r--r--src/overlays/actors/ovl_En_Fr/z_en_fr.c1
-rw-r--r--src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c1
-rw-r--r--src/overlays/actors/ovl_En_Gb/z_en_gb.c1
-rw-r--r--src/overlays/actors/ovl_En_Go2/z_en_go2.c1
-rw-r--r--src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c1
-rw-r--r--src/overlays/actors/ovl_En_Horse/z_en_horse.c1
-rw-r--r--src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c1
-rw-r--r--src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c1
-rw-r--r--src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c1
-rw-r--r--src/overlays/actors/ovl_En_Ik/z_en_ik.c1
-rw-r--r--src/overlays/actors/ovl_En_In/z_en_in.c1
-rw-r--r--src/overlays/actors/ovl_En_Ishi/z_en_ishi.c1
-rw-r--r--src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c1
-rw-r--r--src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c1
-rw-r--r--src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c1
-rw-r--r--src/overlays/actors/ovl_En_Kanban/z_en_kanban.c1
-rw-r--r--src/overlays/actors/ovl_En_Kusa/z_en_kusa.c1
-rw-r--r--src/overlays/actors/ovl_En_Mag/z_en_mag.c1
-rw-r--r--src/overlays/actors/ovl_En_Nb/z_en_nb.c1
-rw-r--r--src/overlays/actors/ovl_En_Niw/z_en_niw.c1
-rw-r--r--src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c1
-rw-r--r--src/overlays/actors/ovl_En_Ru1/z_en_ru1.c1
-rw-r--r--src/overlays/actors/ovl_En_Ru2/z_en_ru2.c1
-rw-r--r--src/overlays/actors/ovl_En_Ssh/z_en_ssh.c1
-rw-r--r--src/overlays/actors/ovl_En_St/z_en_st.c1
-rw-r--r--src/overlays/actors/ovl_En_Ta/z_en_ta.c1
-rw-r--r--src/overlays/actors/ovl_En_Tk/z_en_tk.c1
-rw-r--r--src/overlays/actors/ovl_En_Viewer/z_en_viewer.c1
-rw-r--r--src/overlays/actors/ovl_En_Wf/z_en_wf.c1
-rw-r--r--src/overlays/actors/ovl_En_Xc/z_en_xc.c1
-rw-r--r--src/overlays/actors/ovl_En_Zf/z_en_zf.c1
-rw-r--r--src/overlays/actors/ovl_En_Zl3/z_en_zl3.c1
-rw-r--r--src/overlays/actors/ovl_En_Zo/z_en_zo.c1
-rw-r--r--src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c1
-rw-r--r--src/overlays/actors/ovl_Magic_Wind/z_magic_wind.c1
-rw-r--r--src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c1
-rw-r--r--src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c1
-rw-r--r--src/overlays/actors/ovl_Obj_Lift/z_obj_lift.c1
-rw-r--r--src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c1
-rw-r--r--src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c1
-rw-r--r--src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c1
-rw-r--r--src/overlays/actors/ovl_player_actor/z_player.c1
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c1
-rw-r--r--src/overlays/gamestates/ovl_file_choose/z_file_nameset.c1
-rw-r--r--src/overlays/gamestates/ovl_select/z_select.c3
-rw-r--r--src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c1
-rw-r--r--src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c2
154 files changed, 200 insertions, 28 deletions
diff --git a/include/array_count.h b/include/array_count.h
new file mode 100644
index 000000000..9e5f6ed4c
--- /dev/null
+++ b/include/array_count.h
@@ -0,0 +1,8 @@
+#ifndef ARRAY_COUNT_H
+#define ARRAY_COUNT_H
+
+#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
+#define ARRAY_COUNTU(arr) (u32)(sizeof(arr) / sizeof(arr[0]))
+#define ARRAY_COUNT_2D(arr) (s32)(sizeof(arr) / sizeof(arr[0][0]))
+
+#endif
diff --git a/include/macros.h b/include/macros.h
index 7c964150e..98efe590c 100644
--- a/include/macros.h
+++ b/include/macros.h
@@ -1,10 +1,6 @@
#ifndef MACROS_H
#define MACROS_H
-#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
-#define ARRAY_COUNTU(arr) (u32)(sizeof(arr) / sizeof(arr[0]))
-#define ARRAY_COUNT_2D(arr) (s32)(sizeof(arr) / sizeof(arr[0][0]))
-
#define CHECK_FLAG_ALL(flags, mask) (((flags) & (mask)) == (mask))
#endif
diff --git a/include/z64.h b/include/z64.h
index 8a259e70f..bb2518e6e 100644
--- a/include/z64.h
+++ b/include/z64.h
@@ -4,6 +4,7 @@
// TODO: This file still exists ONLY to provide neccesary headers to extracted assets.
// After assets are modified to include the headers they need directly, delete this file.
+#include "array_count.h"
#include "gfx.h"
#include "sequence.h"
#include "sys_matrix.h"
diff --git a/src/audio/data.c b/src/audio/data.c
index bd072257b..6c5528f34 100644
--- a/src/audio/data.c
+++ b/src/audio/data.c
@@ -1,7 +1,7 @@
+#include "array_count.h"
+#include "sfx.h"
#include "ultra64.h"
#include "z64audio.h"
-#include "macros.h"
-#include "sfx.h"
// sSfxRequests ring buffer endpoints. read index <= write index, wrapping around mod 256.
u8 gSfxRequestWriteIndex = 0;
diff --git a/src/audio/general.c b/src/audio/general.c
index c3286554e..abdbcade0 100644
--- a/src/audio/general.c
+++ b/src/audio/general.c
@@ -1,5 +1,5 @@
#include "libu64/gfxprint.h"
-#include "ultra64.h"
+#include "array_count.h"
#include "attributes.h"
#include "audiothread_cmd.h"
#include "controller.h"
@@ -8,6 +8,7 @@
#include "seqcmd.h"
#include "sequence.h"
#include "sfx.h"
+#include "ultra64.h"
#include "versions.h"
#include "z64audio.h"
#include "z64ocarina.h"
diff --git a/src/audio/lib/load.c b/src/audio/lib/load.c
index 4a447ddc0..f05850c69 100644
--- a/src/audio/lib/load.c
+++ b/src/audio/lib/load.c
@@ -1,3 +1,4 @@
+#include "array_count.h"
#include "attributes.h"
#include "buffers.h"
#include "segment_symbols.h"
diff --git a/src/audio/lib/seqplayer.c b/src/audio/lib/seqplayer.c
index e238418a6..c906e6728 100644
--- a/src/audio/lib/seqplayer.c
+++ b/src/audio/lib/seqplayer.c
@@ -14,6 +14,7 @@
* Otherwise, each set of instructions has its own command interpreter
*/
#include "audio/aseq.h"
+#include "array_count.h"
#include "assert.h"
#include "attributes.h"
#include "macros.h"
diff --git a/src/audio/lib/thread.c b/src/audio/lib/thread.c
index b79c1d97d..43cb6d498 100644
--- a/src/audio/lib/thread.c
+++ b/src/audio/lib/thread.c
@@ -1,3 +1,4 @@
+#include "array_count.h"
#include "audiothread_cmd.h"
#include "macros.h"
#include "ultra64.h"
diff --git a/src/audio/sequence.c b/src/audio/sequence.c
index f3b815a28..a311e4e73 100644
--- a/src/audio/sequence.c
+++ b/src/audio/sequence.c
@@ -17,15 +17,14 @@
* Nor are these commands to be confused with the internal audio commands used to transfer requests from
* the graph thread to the audio thread.
*/
+#include "array_count.h"
#include "audiothread_cmd.h"
-#include "ultra64.h"
-#include "ultra64/abi.h"
#include "seqcmd.h"
#include "sfx.h"
+#include "ultra64.h"
+#include "ultra64/abi.h"
#include "z64audio.h"
-#include "macros.h"
-
// Direct audio command (skips the queueing system)
#define SEQCMD_SET_SEQPLAYER_VOLUME_NOW(seqPlayerIndex, duration, volume) \
Audio_ProcessSeqCmd((SEQCMD_OP_SET_SEQPLAYER_VOLUME << 28) | ((u8)(seqPlayerIndex) << 24) | \
diff --git a/src/audio/session_init.c b/src/audio/session_init.c
index d04a955bc..e7248907e 100644
--- a/src/audio/session_init.c
+++ b/src/audio/session_init.c
@@ -1,3 +1,4 @@
+#include "array_count.h"
#include "buffers.h"
#include "z64audio.h"
diff --git a/src/audio/sfx.c b/src/audio/sfx.c
index 3d837676d..9c6d7c6eb 100644
--- a/src/audio/sfx.c
+++ b/src/audio/sfx.c
@@ -1,3 +1,4 @@
+#include "array_count.h"
#include "audiothread_cmd.h"
#include "macros.h"
#include "printf.h"
diff --git a/src/boot/idle.c b/src/boot/idle.c
index 6a4de30df..2acfe2ddb 100644
--- a/src/boot/idle.c
+++ b/src/boot/idle.c
@@ -1,3 +1,4 @@
+#include "array_count.h"
#include "buffers.h"
#include "build.h"
#include "idle.h"
diff --git a/src/boot/z_std_dma.c b/src/boot/z_std_dma.c
index 0dc1d9c3b..ac91d0d82 100644
--- a/src/boot/z_std_dma.c
+++ b/src/boot/z_std_dma.c
@@ -21,6 +21,7 @@
#include "libc64/sleep.h"
#include "libc64/sprintf.h"
#include "libu64/debug.h"
+#include "array_count.h"
#include "attributes.h"
#include "carthandle.h"
#include "fault.h"
diff --git a/src/code/audio_stop_all_sfx.c b/src/code/audio_stop_all_sfx.c
index 5ae65705c..2702f8a57 100644
--- a/src/code/audio_stop_all_sfx.c
+++ b/src/code/audio_stop_all_sfx.c
@@ -1,6 +1,7 @@
+#include "array_count.h"
#include "sfx.h"
-
#include "ultra64.h"
+
#include "macros.h"
u8 sSfxBankIds[] = {
diff --git a/src/code/audio_thread_manager.c b/src/code/audio_thread_manager.c
index 5c7ff901e..5e0cbfc28 100644
--- a/src/code/audio_thread_manager.c
+++ b/src/code/audio_thread_manager.c
@@ -5,6 +5,7 @@
* and sending the audio rsp tasks generated by the driver to the task scheduler.
*/
+#include "array_count.h"
#include "audiomgr.h"
#include "printf.h"
#include "regs.h"
diff --git a/src/code/db_camera.c b/src/code/db_camera.c
index 727600849..a275cae52 100644
--- a/src/code/db_camera.c
+++ b/src/code/db_camera.c
@@ -1,4 +1,5 @@
#include "libu64/gfxprint.h"
+#include "array_count.h"
#include "attributes.h"
#include "controller.h"
#include "db_camera.h"
diff --git a/src/code/fault_gc.c b/src/code/fault_gc.c
index 9965a6ec0..75104362d 100644
--- a/src/code/fault_gc.c
+++ b/src/code/fault_gc.c
@@ -47,6 +47,7 @@
#include "libc64/sleep.h"
#include "libc64/sprintf.h"
#include "alloca.h"
+#include "array_count.h"
#include "controller.h"
#include "gfx.h"
#include "padmgr.h"
diff --git a/src/code/fault_gc_drawer.c b/src/code/fault_gc_drawer.c
index a0e409df7..044b9561b 100644
--- a/src/code/fault_gc_drawer.c
+++ b/src/code/fault_gc_drawer.c
@@ -5,6 +5,7 @@
* the crash screen implemented by fault.c
*/
+#include "array_count.h"
#include "fault.h"
#include "gfx.h"
diff --git a/src/code/fault_n64.c b/src/code/fault_n64.c
index c6c579676..5e071d87b 100644
--- a/src/code/fault_n64.c
+++ b/src/code/fault_n64.c
@@ -1,6 +1,7 @@
#include "libc64/os_malloc.h"
#include "libc64/sleep.h"
#include "libc64/sprintf.h"
+#include "array_count.h"
#include "controller.h"
#include "fault.h"
#include "gfx.h"
diff --git a/src/code/game.c b/src/code/game.c
index e3ffb5381..536013aa9 100644
--- a/src/code/game.c
+++ b/src/code/game.c
@@ -2,6 +2,7 @@
#include "libc64/os_malloc.h"
#include "libu64/debug.h"
#include "libu64/gfxprint.h"
+#include "array_count.h"
#include "audiomgr.h"
#include "buffers.h"
#include "controller.h"
diff --git a/src/code/graph.c b/src/code/graph.c
index 62453359a..8fbb1b02f 100644
--- a/src/code/graph.c
+++ b/src/code/graph.c
@@ -1,7 +1,7 @@
#include "libc64/malloc.h"
#include "libc64/sprintf.h"
#include "libu64/debug.h"
-
+#include "array_count.h"
#include "buffers.h"
#include "console_logo_state.h"
#include "controller.h"
diff --git a/src/code/irqmgr.c b/src/code/irqmgr.c
index 2915e1c83..fe6b3a12f 100644
--- a/src/code/irqmgr.c
+++ b/src/code/irqmgr.c
@@ -33,6 +33,7 @@
* @see sched.c
*/
#include "libu64/debug.h"
+#include "array_count.h"
#include "irqmgr.h"
#include "printf.h"
#include "stackcheck.h"
diff --git a/src/code/main.c b/src/code/main.c
index 6a5dae80e..584e098e6 100644
--- a/src/code/main.c
+++ b/src/code/main.c
@@ -19,6 +19,7 @@ extern struct IrqMgr gIrqMgr;
#include "libc64/malloc.h"
#include "libu64/rcp_utils.h"
#include "libu64/runtime.h"
+#include "array_count.h"
#include "audiomgr.h"
#include "debug_arena.h"
#include "fault.h"
diff --git a/src/code/object_table.c b/src/code/object_table.c
index 904683596..0de131824 100644
--- a/src/code/object_table.c
+++ b/src/code/object_table.c
@@ -1,3 +1,4 @@
+#include "array_count.h"
#include "segment_symbols.h"
#include "romfile.h"
#include "ultra64.h"
diff --git a/src/code/padmgr.c b/src/code/padmgr.c
index 6d88b34c1..ddea9b254 100644
--- a/src/code/padmgr.c
+++ b/src/code/padmgr.c
@@ -30,7 +30,7 @@
*/
#include "libu64/debug.h"
#include "libu64/padsetup.h"
-#include "macros.h"
+#include "array_count.h"
#include "padmgr.h"
#include "printf.h"
#include "fault.h"
@@ -38,6 +38,8 @@
#include "translation.h"
#include "line_numbers.h"
+#include "macros.h"
+
#define PADMGR_LOG(controllerNum, msg) \
if (DEBUG_FEATURES) { \
PRINTF_COLOR_YELLOW(); \
diff --git a/src/code/sched.c b/src/code/sched.c
index d8fea59fa..b009dff35 100644
--- a/src/code/sched.c
+++ b/src/code/sched.c
@@ -41,6 +41,7 @@
*/
#include "libu64/debug.h"
#include "libu64/rcp_utils.h"
+#include "array_count.h"
#include "fault.h"
#include "irqmgr.h"
#include "main.h"
diff --git a/src/code/speed_meter.c b/src/code/speed_meter.c
index bf8a247ac..bb3624fa8 100644
--- a/src/code/speed_meter.c
+++ b/src/code/speed_meter.c
@@ -2,6 +2,7 @@
"pal-1.0:0 pal-1.1:0"
#include "libc64/malloc.h"
#include "libu64/debug.h"
+#include "array_count.h"
#include "gfx.h"
#include "printf.h"
#include "regs.h"
diff --git a/src/code/sys_math_atan.c b/src/code/sys_math_atan.c
index 8dabed7d7..e2b70a361 100644
--- a/src/code/sys_math_atan.c
+++ b/src/code/sys_math_atan.c
@@ -1,5 +1,7 @@
+#include "array_count.h"
#include "sys_math.h"
#include "z64math.h"
+
#include "macros.h"
static u16 sAtan2Tbl[] = {
diff --git a/src/code/ucode_disas.c b/src/code/ucode_disas.c
index eadb32188..7626ed620 100644
--- a/src/code/ucode_disas.c
+++ b/src/code/ucode_disas.c
@@ -1,10 +1,11 @@
-#include "ucode_disas.h"
-#include "ultra64.h"
-#include "ultra64/gs2dex.h"
#include "libu64/mtxuty-cvt.h"
+#include "ultra64/gs2dex.h"
+#include "array_count.h"
#include "printf.h"
#include "segmented_address.h"
#include "translation.h"
+#include "ucode_disas.h"
+#include "ultra64.h"
#include "macros.h"
diff --git a/src/code/z_actor.c b/src/code/z_actor.c
index 7ea5bb355..8ea0eb113 100644
--- a/src/code/z_actor.c
+++ b/src/code/z_actor.c
@@ -1,5 +1,6 @@
#include "libc64/math64.h"
#include "libu64/overlay.h"
+#include "array_count.h"
#include "fault.h"
#include "gfx.h"
#include "gfx_setupdl.h"
diff --git a/src/code/z_bgcheck.c b/src/code/z_bgcheck.c
index 51d7e8ad1..945051552 100644
--- a/src/code/z_bgcheck.c
+++ b/src/code/z_bgcheck.c
@@ -1,4 +1,5 @@
#include "libu64/debug.h"
+#include "array_count.h"
#include "attributes.h"
#include "line_numbers.h"
#include "printf.h"
diff --git a/src/code/z_camera.c b/src/code/z_camera.c
index 388093116..cf18c3634 100644
--- a/src/code/z_camera.c
+++ b/src/code/z_camera.c
@@ -1,7 +1,6 @@
#include "libc64/math64.h"
#include "libc64/qrand.h"
-#include "ultra64.h"
-
+#include "array_count.h"
#include "attributes.h"
#include "controller.h"
#include "db_camera.h"
@@ -15,6 +14,7 @@
#include "sys_math3d.h"
#include "terminal.h"
#include "translation.h"
+#include "ultra64.h"
#include "z_lib.h"
#include "zelda_arena.h"
#include "z64audio.h"
diff --git a/src/code/z_camera_data.inc.c b/src/code/z_camera_data.inc.c
index 07a527afe..18b071b1d 100644
--- a/src/code/z_camera_data.inc.c
+++ b/src/code/z_camera_data.inc.c
@@ -1,4 +1,6 @@
+#include "array_count.h"
#include "ultra64.h"
+
#include "global.h"
typedef struct CameraModeValue {
diff --git a/src/code/z_collision_btltbls.c b/src/code/z_collision_btltbls.c
index 34e25b2ff..a49a71d05 100644
--- a/src/code/z_collision_btltbls.c
+++ b/src/code/z_collision_btltbls.c
@@ -1,3 +1,4 @@
+#include "array_count.h"
#include "printf.h"
#include "translation.h"
#include "z64collision_check.h"
diff --git a/src/code/z_debug.c b/src/code/z_debug.c
index a43c76cfb..65f8eb60a 100644
--- a/src/code/z_debug.c
+++ b/src/code/z_debug.c
@@ -1,6 +1,7 @@
#include "libc64/malloc.h"
#include "libu64/gfxprint.h"
#include "libu64/pad.h"
+#include "array_count.h"
#include "color.h"
#include "controller.h"
#include "gfx.h"
diff --git a/src/code/z_demo.c b/src/code/z_demo.c
index 68f2fbc2f..f45fd1933 100644
--- a/src/code/z_demo.c
+++ b/src/code/z_demo.c
@@ -1,7 +1,8 @@
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
"ique-cn:128 ntsc-1.0:0 ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0"
-#include "global.h"
+
#include "libu64/gfxprint.h"
+#include "array_count.h"
#include "controller.h"
#include "gfx.h"
#include "gfxalloc.h"
@@ -29,6 +30,8 @@
#include "z64player.h"
#include "z64save.h"
+#include "global.h"
+
#include "assets/scenes/indoors/tokinoma/tokinoma_scene.h"
#include "assets/scenes/overworld/ganon_tou/ganon_tou_scene.h"
diff --git a/src/code/z_eff_shield_particle.c b/src/code/z_eff_shield_particle.c
index 351676791..bc71d8c4f 100644
--- a/src/code/z_eff_shield_particle.c
+++ b/src/code/z_eff_shield_particle.c
@@ -1,4 +1,5 @@
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "printf.h"
diff --git a/src/code/z_eff_spark.c b/src/code/z_eff_spark.c
index 429635956..dc3ebf9d1 100644
--- a/src/code/z_eff_spark.c
+++ b/src/code/z_eff_spark.c
@@ -1,4 +1,5 @@
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "printf.h"
diff --git a/src/code/z_effect_soft_sprite.c b/src/code/z_effect_soft_sprite.c
index 696a18504..061b6d70d 100644
--- a/src/code/z_effect_soft_sprite.c
+++ b/src/code/z_effect_soft_sprite.c
@@ -1,4 +1,5 @@
#include "libu64/overlay.h"
+#include "array_count.h"
#include "printf.h"
#include "sfx.h"
#include "terminal.h"
diff --git a/src/code/z_effect_soft_sprite_old_init.c b/src/code/z_effect_soft_sprite_old_init.c
index 967640f28..1654ab3d0 100644
--- a/src/code/z_effect_soft_sprite_old_init.c
+++ b/src/code/z_effect_soft_sprite_old_init.c
@@ -1,4 +1,5 @@
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "rand.h"
diff --git a/src/code/z_env_flags.c b/src/code/z_env_flags.c
index 9ad7e7a02..164ff1dde 100644
--- a/src/code/z_env_flags.c
+++ b/src/code/z_env_flags.c
@@ -1,3 +1,4 @@
+#include "array_count.h"
#include "ultra64.h"
#include "z64cutscene_flags.h"
#include "z64play.h"
diff --git a/src/code/z_game_over.c b/src/code/z_game_over.c
index 20814a4c7..e05bcff26 100644
--- a/src/code/z_game_over.c
+++ b/src/code/z_game_over.c
@@ -1,3 +1,4 @@
+#include "array_count.h"
#include "letterbox.h"
#include "regs.h"
#include "rumble.h"
diff --git a/src/code/z_horse.c b/src/code/z_horse.c
index 9d185d1e3..d61af32e7 100644
--- a/src/code/z_horse.c
+++ b/src/code/z_horse.c
@@ -1,3 +1,4 @@
+#include "array_count.h"
#include "terminal.h"
#include "z_lib.h"
#include "printf.h"
diff --git a/src/code/z_jpeg.c b/src/code/z_jpeg.c
index 29a5404ed..86c896e62 100644
--- a/src/code/z_jpeg.c
+++ b/src/code/z_jpeg.c
@@ -1,5 +1,6 @@
#include "jpeg.h"
+#include "array_count.h"
#include "attributes.h"
#include "gfx.h"
#include "printf.h"
@@ -8,6 +9,7 @@
#include "translation.h"
#include "ultra64.h"
+#include "global.h"
#include "macros.h"
#define MARKER_ESCAPE 0x00
diff --git a/src/code/z_kaleido_manager.c b/src/code/z_kaleido_manager.c
index 87a7c0fa1..efecef646 100644
--- a/src/code/z_kaleido_manager.c
+++ b/src/code/z_kaleido_manager.c
@@ -1,5 +1,6 @@
#include "libu64/debug.h"
#include "libu64/overlay.h"
+#include "array_count.h"
#include "kaleido_manager.h"
#include "printf.h"
#include "segment_symbols.h"
diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c
index d87f908be..88dcd5e59 100644
--- a/src/code/z_kankyo.c
+++ b/src/code/z_kankyo.c
@@ -3,6 +3,7 @@
#include "libc64/qrand.h"
#include "libu64/gfxprint.h"
+#include "array_count.h"
#include "buffers.h"
#include "gfx.h"
#include "gfx_setupdl.h"
diff --git a/src/code/z_message.c b/src/code/z_message.c
index d4de077ed..38153dff0 100644
--- a/src/code/z_message.c
+++ b/src/code/z_message.c
@@ -1,4 +1,5 @@
#include "libu64/gfxprint.h"
+#include "array_count.h"
#include "attributes.h"
#include "controller.h"
#include "gfx.h"
diff --git a/src/code/z_onepointdemo.c b/src/code/z_onepointdemo.c
index 700353cb8..94c3bc9e1 100644
--- a/src/code/z_onepointdemo.c
+++ b/src/code/z_onepointdemo.c
@@ -1,6 +1,8 @@
+#include "one_point_cutscene.h"
+
#include "libc64/math64.h"
#include "libc64/qrand.h"
-#include "one_point_cutscene.h"
+#include "array_count.h"
#include "printf.h"
#include "quake.h"
#include "sfx.h"
diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c
index 944612348..078567510 100644
--- a/src/code/z_parameter.c
+++ b/src/code/z_parameter.c
@@ -1,3 +1,4 @@
+#include "array_count.h"
#include "attributes.h"
#include "controller.h"
#include "flag_set.h"
diff --git a/src/code/z_play.c b/src/code/z_play.c
index 60a20e0ed..31dbc765c 100644
--- a/src/code/z_play.c
+++ b/src/code/z_play.c
@@ -1,6 +1,7 @@
#include "libc64/malloc.h"
#include "libc64/qrand.h"
#include "libu64/debug.h"
+#include "array_count.h"
#include "buffers.h"
#include "color.h"
#include "controller.h"
diff --git a/src/code/z_quake.c b/src/code/z_quake.c
index 690dbc81d..cacb5a213 100644
--- a/src/code/z_quake.c
+++ b/src/code/z_quake.c
@@ -1,4 +1,5 @@
#include "libc64/qrand.h"
+#include "array_count.h"
#include "macros.h"
#include "printf.h"
#include "quake.h"
diff --git a/src/code/z_room.c b/src/code/z_room.c
index a8e9c5b23..7bc9e4801 100644
--- a/src/code/z_room.c
+++ b/src/code/z_room.c
@@ -1,5 +1,6 @@
#include "libu64/debug.h"
#include "ultra64/gs2dex.h"
+#include "array_count.h"
#include "buffers.h"
#include "fault.h"
#include "gfx.h"
diff --git a/src/code/z_scene.c b/src/code/z_scene.c
index da2ddf648..feef5ffc6 100644
--- a/src/code/z_scene.c
+++ b/src/code/z_scene.c
@@ -1,3 +1,4 @@
+#include "array_count.h"
#include "avoid_ub.h"
#include "printf.h"
#include "regs.h"
diff --git a/src/code/z_sfx_source.c b/src/code/z_sfx_source.c
index 3d793c617..9dda34ce3 100644
--- a/src/code/z_sfx_source.c
+++ b/src/code/z_sfx_source.c
@@ -1,5 +1,6 @@
#include "z64sfx_source.h"
+#include "array_count.h"
#include "sfx.h"
#include "z64play.h"
#include "z64skin_matrix.h"
diff --git a/src/code/z_skin_awb.c b/src/code/z_skin_awb.c
index 8a175ed15..196ce9aae 100644
--- a/src/code/z_skin_awb.c
+++ b/src/code/z_skin_awb.c
@@ -1,4 +1,4 @@
-#include "overlays/actors/ovl_En_fHG/z_en_fhg.h"
+#include "array_count.h"
#include "segmented_address.h"
#include "zelda_arena.h"
#include "z64actor.h"
@@ -6,6 +6,8 @@
#include "z64skin.h"
#include "z64skin_matrix.h"
+#include "overlays/actors/ovl_En_fHG/z_en_fhg.h"
+
/**
* Initialises the Vtx buffers used for limb at index `limbIndex`
*/
diff --git a/src/code/z_sram.c b/src/code/z_sram.c
index d25362704..456e7a822 100644
--- a/src/code/z_sram.c
+++ b/src/code/z_sram.c
@@ -1,5 +1,6 @@
#include "z64sram.h"
+#include "array_count.h"
#include "file_select_state.h"
#include "controller.h"
#include "memory_utils.h"
diff --git a/src/code/z_vr_box.c b/src/code/z_vr_box.c
index ab39d3ca6..f0ef9b008 100644
--- a/src/code/z_vr_box.c
+++ b/src/code/z_vr_box.c
@@ -1,5 +1,6 @@
#include "z64skybox.h"
+#include "array_count.h"
#include "printf.h"
#include "segment_symbols.h"
#include "terminal.h"
diff --git a/src/libleo/leo/leofunc.c b/src/libleo/leo/leofunc.c
index d6f7dddcc..8aaf794fd 100644
--- a/src/libleo/leo/leofunc.c
+++ b/src/libleo/leo/leofunc.c
@@ -1,7 +1,9 @@
-#include "ultra64.h"
#include "ultra64/leo.h"
#include "ultra64/leoappli.h"
#include "ultra64/leodrive.h"
+#include "array_count.h"
+#include "ultra64.h"
+
#include "macros.h"
static s32 __leoResetCalled = false;
diff --git a/src/libleo/leo/leoutil.c b/src/libleo/leo/leoutil.c
index 0a52e820e..44240b055 100644
--- a/src/libleo/leo/leoutil.c
+++ b/src/libleo/leo/leoutil.c
@@ -1,7 +1,8 @@
-#include "ultra64.h"
#include "ultra64/leo.h"
#include "ultra64/leoappli.h"
#include "ultra64/leodrive.h"
+#include "array_count.h"
+#include "ultra64.h"
#include "macros.h"
diff --git a/src/libultra/io/contpfs.c b/src/libultra/io/contpfs.c
index d92bc3eae..c99c31682 100644
--- a/src/libultra/io/contpfs.c
+++ b/src/libultra/io/contpfs.c
@@ -1,4 +1,6 @@
+#include "array_count.h"
#include "ultra64.h"
+
#include "macros.h"
s32 __osPfsInodeCacheChannel = -1;
diff --git a/src/libultra/io/contreaddata.c b/src/libultra/io/contreaddata.c
index a0b289812..56ebf0a09 100644
--- a/src/libultra/io/contreaddata.c
+++ b/src/libultra/io/contreaddata.c
@@ -1,4 +1,6 @@
+#include "array_count.h"
#include "ultra64.h"
+
#include "macros.h"
s32 osContStartReadData(OSMesgQueue* mq) {
diff --git a/src/libultra/io/controller.c b/src/libultra/io/controller.c
index 1ea5ecacd..97a33dc00 100644
--- a/src/libultra/io/controller.c
+++ b/src/libultra/io/controller.c
@@ -1,4 +1,6 @@
+#include "array_count.h"
#include "ultra64.h"
+
#include "macros.h"
OSPifRam __osContPifRam;
diff --git a/src/libultra/io/piacs.c b/src/libultra/io/piacs.c
index 23fe34314..3b9af6d40 100644
--- a/src/libultra/io/piacs.c
+++ b/src/libultra/io/piacs.c
@@ -1,4 +1,6 @@
+#include "array_count.h"
#include "ultra64.h"
+
#include "macros.h"
u32 __osPiAccessQueueEnabled = false;
diff --git a/src/libultra/io/siacs.c b/src/libultra/io/siacs.c
index dd5418083..480efd31a 100644
--- a/src/libultra/io/siacs.c
+++ b/src/libultra/io/siacs.c
@@ -1,4 +1,6 @@
+#include "array_count.h"
#include "ultra64.h"
+
#include "macros.h"
static OSMesg siAccessBuf[1];
diff --git a/src/libultra/io/vimgr.c b/src/libultra/io/vimgr.c
index b8eb522e9..1caf997d4 100644
--- a/src/libultra/io/vimgr.c
+++ b/src/libultra/io/vimgr.c
@@ -1,6 +1,8 @@
-#include "ultra64.h"
-#include "stack.h"
#include "ultra64/internal.h"
+#include "array_count.h"
+#include "stack.h"
+#include "ultra64.h"
+
#include "macros.h"
static OSThread viThread;
diff --git a/src/n64dd/n64dd_801C8000.c b/src/n64dd/n64dd_801C8000.c
index 8c6c91a9c..2212fe43f 100644
--- a/src/n64dd/n64dd_801C8000.c
+++ b/src/n64dd/n64dd_801C8000.c
@@ -1,5 +1,8 @@
// Does some command processing
+
#include "n64dd.h"
+
+#include "array_count.h"
#include "versions.h"
#include "z_locale.h"
diff --git a/src/n64dd/n64dd_801CA0B0.c b/src/n64dd/n64dd_801CA0B0.c
index d564d46ca..a98634622 100644
--- a/src/n64dd/n64dd_801CA0B0.c
+++ b/src/n64dd/n64dd_801CA0B0.c
@@ -1,6 +1,8 @@
#include "n64dd.h"
+
#include "libc64/aprintf.h"
#include "attributes.h"
+#include "array_count.h"
#include "global.h"
diff --git a/src/n64dd/z_n64dd.c b/src/n64dd/z_n64dd.c
index f05e1b135..a8ce0674c 100644
--- a/src/n64dd/z_n64dd.c
+++ b/src/n64dd/z_n64dd.c
@@ -1,11 +1,14 @@
// Main interface for the 64DD from the rest of the game. Starts background
// threads and provides functions to submit commands to them.
+
+#include "n64dd.h"
+
#include "libc64/sleep.h"
+#include "array_count.h"
#include "fault.h"
#include "gfx.h"
#include "irqmgr.h"
#include "line_numbers.h"
-#include "n64dd.h"
#include "stack.h"
#include "stackcheck.h"
#include "sys_freeze.h"
diff --git a/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c b/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c
index 15adb7bf9..6ef8c9250 100644
--- a/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c
+++ b/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c
@@ -7,6 +7,7 @@
#include "z_bg_dodoago.h"
#include "overlays/actors/ovl_En_Bom/z_en_bom.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c b/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c
index eebb7536c..1df0e5b73 100644
--- a/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c
+++ b/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c
@@ -7,6 +7,7 @@
#include "z_bg_ganon_otyuka.h"
#include "overlays/actors/ovl_Boss_Ganon/z_boss_ganon.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.c b/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.c
index ac28324e5..90aeee4b8 100644
--- a/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.c
+++ b/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.c
@@ -7,6 +7,7 @@
#include "z_bg_heavy_block.h"
#include "libu64/debug.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c b/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c
index 62120c933..d20bccdb7 100644
--- a/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c
+++ b/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c
@@ -6,6 +6,7 @@
#include "z_bg_hidan_hamstep.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c b/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c
index 715ecc5fb..0b64a4ff6 100644
--- a/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c
+++ b/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c
@@ -6,6 +6,7 @@
#include "z_bg_hidan_rsekizou.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c b/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c
index 1c86d7d85..452c88f5f 100644
--- a/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c
+++ b/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c
@@ -6,6 +6,7 @@
#include "z_bg_hidan_sekizou.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c b/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c
index 20b371708..f166f9f4d 100644
--- a/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c
+++ b/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c
@@ -6,6 +6,7 @@
#include "z_bg_hidan_sima.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c b/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c
index f19f5f9ba..b9350da30 100644
--- a/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c
+++ b/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c
@@ -8,6 +8,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "ichain.h"
#include "sfx.h"
#include "z_lib.h"
diff --git a/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c b/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c
index 4e9d88d7c..a72f245e2 100644
--- a/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c
+++ b/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c
@@ -8,6 +8,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c b/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c
index e4620934a..e9cfd701a 100644
--- a/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c
+++ b/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c
@@ -6,6 +6,7 @@
#include "z_bg_jya_zurerukabe.h"
+#include "array_count.h"
#include "ichain.h"
#include "printf.h"
#include "sfx.h"
diff --git a/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c b/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c
index d4b512c76..7dc55fbe0 100644
--- a/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c
+++ b/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c
@@ -8,6 +8,7 @@
#include "overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c
index 8708b601a..6bd947c3a 100644
--- a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c
+++ b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c
@@ -6,6 +6,7 @@
#include "z_bg_mori_hashigo.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c b/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c
index 56af066d9..dccddcf49 100644
--- a/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c
+++ b/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c
@@ -6,6 +6,7 @@
#include "z_bg_mori_rakkatenjo.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c b/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c
index b54226cec..aa8d28b96 100644
--- a/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c
+++ b/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c
@@ -8,6 +8,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "ichain.h"
#include "sfx.h"
#include "z_lib.h"
diff --git a/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.c b/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.c
index 60686aaa1..57b76c414 100644
--- a/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.c
+++ b/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.c
@@ -6,6 +6,7 @@
#include "z_bg_spot09_obj.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.c b/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.c
index 1af76df47..574c2533d 100644
--- a/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.c
+++ b/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.c
@@ -8,6 +8,7 @@
#include "overlays/actors/ovl_En_Elf/z_en_elf.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_Bg_Spot15_Rrbox/z_bg_spot15_rrbox.c b/src/overlays/actors/ovl_Bg_Spot15_Rrbox/z_bg_spot15_rrbox.c
index a1404fdd2..eb89d5f06 100644
--- a/src/overlays/actors/ovl_Bg_Spot15_Rrbox/z_bg_spot15_rrbox.c
+++ b/src/overlays/actors/ovl_Bg_Spot15_Rrbox/z_bg_spot15_rrbox.c
@@ -6,6 +6,7 @@
#include "z_bg_spot15_rrbox.h"
+#include "array_count.h"
#include "ichain.h"
#include "printf.h"
#include "sfx.h"
diff --git a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c
index 213631847..759d2184e 100644
--- a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c
+++ b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c
@@ -3,6 +3,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c b/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c
index 1e88e7c4e..66d8e2d50 100644
--- a/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c
+++ b/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c
@@ -1,6 +1,7 @@
#include "z_bg_spot18_basket.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "ichain.h"
#include "one_point_cutscene.h"
#include "printf.h"
diff --git a/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c b/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c
index 94ef74bb7..d44a14de5 100644
--- a/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c
+++ b/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c
@@ -7,6 +7,7 @@
#include "z_bg_spot18_obj.h"
+#include "array_count.h"
#include "ichain.h"
#include "printf.h"
#include "sfx.h"
diff --git a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c
index a38078e49..c66883ddd 100644
--- a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c
+++ b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c
@@ -12,6 +12,7 @@
#include "libc64/math64.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "attributes.h"
#include "gfx.h"
#include "gfx_setupdl.h"
diff --git a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c
index 703eec89c..856f9e34e 100644
--- a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c
+++ b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c
@@ -8,6 +8,7 @@
#include "overlays/actors/ovl_Boss_Fd/z_boss_fd.h"
#include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h"
+#include "array_count.h"
#include "attributes.h"
#include "gfx.h"
#include "gfx_setupdl.h"
diff --git a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c
index 50d3ab595..0ca8e3c84 100644
--- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c
+++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c
@@ -6,6 +6,7 @@
#include "libc64/math64.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "attributes.h"
#include "gfx.h"
#include "gfx_setupdl.h"
diff --git a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c
index 53bfa09e5..e2742e3be 100644
--- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c
+++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c
@@ -4,6 +4,7 @@
#include "overlays/actors/ovl_En_Zl3/z_en_zl3.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "attributes.h"
#include "gfx.h"
#include "gfx_setupdl.h"
diff --git a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c
index 86466f1cd..848707f00 100644
--- a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c
+++ b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c
@@ -13,6 +13,7 @@
#include "libc64/math64.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "attributes.h"
#include "gfx.h"
#include "gfx_setupdl.h"
diff --git a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c
index 55934e67b..bfd115b53 100644
--- a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c
+++ b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c
@@ -11,6 +11,7 @@
#include "libc64/math64.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "attributes.h"
#include "gfx.h"
#include "gfx_setupdl.h"
diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c
index 2a9995ddc..1113a3926 100644
--- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c
+++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c
@@ -9,6 +9,7 @@
#include "libc64/math64.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "attributes.h"
#include "controller.h"
#include "gfx.h"
diff --git a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c
index 48a203c4d..e2d6eeb3a 100644
--- a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c
+++ b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c
@@ -3,6 +3,7 @@
#include "libc64/math64.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "attributes.h"
#include "controller.h"
#include "gfx.h"
diff --git a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c
index 920846e74..aec25c7cf 100644
--- a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c
+++ b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c
@@ -8,6 +8,7 @@
#include "overlays/actors/ovl_En_Boom/z_en_boom.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "attributes.h"
#include "gfx.h"
#include "gfx_setupdl.h"
diff --git a/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c b/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c
index 0d4692d9b..7528a2a6a 100644
--- a/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c
+++ b/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c
@@ -6,6 +6,7 @@
#include "z_demo_ec.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "printf.h"
diff --git a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c
index 237ba6883..6bc60ac27 100644
--- a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c
+++ b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c
@@ -8,6 +8,7 @@
#include "libc64/math64.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c b/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c
index 257657520..af3ddeb00 100644
--- a/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c
+++ b/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c
@@ -1,5 +1,6 @@
#include "z_demo_ik.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "printf.h"
diff --git a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c
index e2f360966..05eec20ff 100644
--- a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c
+++ b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c
@@ -7,6 +7,7 @@
#include "z_door_shutter.h"
#include "overlays/actors/ovl_Boss_Goma/z_boss_goma.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c
index b624e0edd..5c03ab963 100644
--- a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c
+++ b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c
@@ -9,6 +9,7 @@
#include "overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.h"
#include "libc64/math64.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "printf.h"
diff --git a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c
index a321a43a0..4243bbdf7 100644
--- a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c
+++ b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c
@@ -1,5 +1,6 @@
#include "z_en_bigokuta.h"
+#include "array_count.h"
#include "libc64/qrand.h"
#include "gfx.h"
#include "gfx_setupdl.h"
diff --git a/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c b/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c
index 3af6e87ec..7ce476d4e 100644
--- a/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c
+++ b/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c
@@ -2,6 +2,7 @@
#include "overlays/actors/ovl_En_Bom/z_en_bom.h"
#include "libc64/math64.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c
index ab7b8e428..df9b566f8 100644
--- a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c
+++ b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c
@@ -1,6 +1,7 @@
#include "z_en_dekubaba.h"
#include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_En_Door/z_en_door.c b/src/overlays/actors/ovl_En_Door/z_en_door.c
index b3f71481d..9f5bd8723 100644
--- a/src/overlays/actors/ovl_En_Door/z_en_door.c
+++ b/src/overlays/actors/ovl_En_Door/z_en_door.c
@@ -7,6 +7,7 @@
#include "z_en_door.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c b/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c
index 815d8c654..b124094a2 100644
--- a/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c
+++ b/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c
@@ -1,5 +1,6 @@
#include "z_en_fd_fire.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "rand.h"
diff --git a/src/overlays/actors/ovl_En_Fr/z_en_fr.c b/src/overlays/actors/ovl_En_Fr/z_en_fr.c
index 64d5c4f52..15ce25734 100644
--- a/src/overlays/actors/ovl_En_Fr/z_en_fr.c
+++ b/src/overlays/actors/ovl_En_Fr/z_en_fr.c
@@ -1,5 +1,6 @@
#include "z_en_fr.h"
+#include "array_count.h"
#include "controller.h"
#include "gfx.h"
#include "gfx_setupdl.h"
diff --git a/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c b/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c
index ca06391dc..d40a9a446 100644
--- a/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c
+++ b/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c
@@ -6,6 +6,7 @@
#include "z_en_ganon_mant.h"
+#include "array_count.h"
#include "gfx.h"
#include "rand.h"
#include "segmented_address.h"
diff --git a/src/overlays/actors/ovl_En_Gb/z_en_gb.c b/src/overlays/actors/ovl_En_Gb/z_en_gb.c
index 0bc9d51d9..9565ceba9 100644
--- a/src/overlays/actors/ovl_En_Gb/z_en_gb.c
+++ b/src/overlays/actors/ovl_En_Gb/z_en_gb.c
@@ -7,6 +7,7 @@
#include "z_en_gb.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_En_Go2/z_en_go2.c b/src/overlays/actors/ovl_En_Go2/z_en_go2.c
index 9c15e9e7a..61c3d5f6e 100644
--- a/src/overlays/actors/ovl_En_Go2/z_en_go2.c
+++ b/src/overlays/actors/ovl_En_Go2/z_en_go2.c
@@ -2,6 +2,7 @@
#include "overlays/actors/ovl_En_Bom/z_en_bom.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "attributes.h"
#include "gfx.h"
#include "gfx_setupdl.h"
diff --git a/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c b/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c
index 98185e4b0..073689689 100644
--- a/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c
+++ b/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c
@@ -7,6 +7,7 @@
#include "z_en_heishi1.h"
#include "libc64/math64.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "printf.h"
diff --git a/src/overlays/actors/ovl_En_Horse/z_en_horse.c b/src/overlays/actors/ovl_En_Horse/z_en_horse.c
index 08f58dbce..dded51656 100644
--- a/src/overlays/actors/ovl_En_Horse/z_en_horse.c
+++ b/src/overlays/actors/ovl_En_Horse/z_en_horse.c
@@ -9,6 +9,7 @@
#include "libc64/math64.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "controller.h"
#include "gfx.h"
#include "gfx_setupdl.h"
diff --git a/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c b/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c
index 7a3307bc0..161014713 100644
--- a/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c
+++ b/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c
@@ -6,6 +6,7 @@
#include "z_en_horse_link_child.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c b/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c
index 1ddc46944..300711ff3 100644
--- a/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c
+++ b/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c
@@ -8,6 +8,7 @@
#include "libc64/math64.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c b/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c
index 059f88c3a..fb59c5b84 100644
--- a/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c
+++ b/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c
@@ -7,6 +7,7 @@
#include "z_en_horse_zelda.h"
#include "libc64/math64.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_En_Ik/z_en_ik.c b/src/overlays/actors/ovl_En_Ik/z_en_ik.c
index e180d5257..9b49e35f7 100644
--- a/src/overlays/actors/ovl_En_Ik/z_en_ik.c
+++ b/src/overlays/actors/ovl_En_Ik/z_en_ik.c
@@ -7,6 +7,7 @@
#include "z_en_ik.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "printf.h"
diff --git a/src/overlays/actors/ovl_En_In/z_en_in.c b/src/overlays/actors/ovl_En_In/z_en_in.c
index c97c84221..521b8dcbf 100644
--- a/src/overlays/actors/ovl_En_In/z_en_in.c
+++ b/src/overlays/actors/ovl_En_In/z_en_in.c
@@ -2,6 +2,7 @@
#include "overlays/actors/ovl_En_Horse/z_en_horse.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "letterbox.h"
diff --git a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c
index 191c2142d..bcf59dfbe 100644
--- a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c
+++ b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c
@@ -9,6 +9,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c b/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c
index 2d0ed48af..13ebc48f3 100644
--- a/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c
+++ b/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c
@@ -7,6 +7,7 @@
#include "z_en_jsjutan.h"
#include "overlays/actors/ovl_En_Bom/z_en_bom.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "segmented_address.h"
diff --git a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c
index d0cd24539..d2d807cd2 100644
--- a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c
+++ b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c
@@ -6,6 +6,7 @@
#include "z_en_kakasi.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "one_point_cutscene.h"
diff --git a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c
index dd1e33696..8f4d21e36 100644
--- a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c
+++ b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c
@@ -6,6 +6,7 @@
#include "z_en_kakasi3.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "one_point_cutscene.h"
diff --git a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c
index 2afea4fcb..844a7ee2a 100644
--- a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c
+++ b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c
@@ -8,6 +8,7 @@
#include "libc64/math64.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "attributes.h"
#include "gfx.h"
#include "gfx_setupdl.h"
diff --git a/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c b/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c
index f0d8d6748..aa955365d 100644
--- a/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c
+++ b/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c
@@ -9,6 +9,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "ichain.h"
#include "printf.h"
#include "rand.h"
diff --git a/src/overlays/actors/ovl_En_Mag/z_en_mag.c b/src/overlays/actors/ovl_En_Mag/z_en_mag.c
index 35c2d35ca..5c1e68f77 100644
--- a/src/overlays/actors/ovl_En_Mag/z_en_mag.c
+++ b/src/overlays/actors/ovl_En_Mag/z_en_mag.c
@@ -6,6 +6,7 @@
#include "z_en_mag.h"
+#include "array_count.h"
#include "avoid_ub.h"
#include "controller.h"
#include "gfx.h"
diff --git a/src/overlays/actors/ovl_En_Nb/z_en_nb.c b/src/overlays/actors/ovl_En_Nb/z_en_nb.c
index d44f76c23..e0d2edddf 100644
--- a/src/overlays/actors/ovl_En_Nb/z_en_nb.c
+++ b/src/overlays/actors/ovl_En_Nb/z_en_nb.c
@@ -8,6 +8,7 @@
#include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h"
#include "libc64/math64.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "printf.h"
diff --git a/src/overlays/actors/ovl_En_Niw/z_en_niw.c b/src/overlays/actors/ovl_En_Niw/z_en_niw.c
index 0480b266a..6be5e39db 100644
--- a/src/overlays/actors/ovl_En_Niw/z_en_niw.c
+++ b/src/overlays/actors/ovl_En_Niw/z_en_niw.c
@@ -9,6 +9,7 @@
#include "libc64/math64.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "attributes.h"
#include "gfx.h"
#include "gfx_setupdl.h"
diff --git a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c
index 0f24ad4d0..ba165bd3a 100644
--- a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c
+++ b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c
@@ -6,6 +6,7 @@
#include "z_en_po_sisters.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "one_point_cutscene.h"
diff --git a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c
index 0cc263345..85ef77847 100644
--- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c
+++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c
@@ -8,6 +8,7 @@
#include "overlays/actors/ovl_Demo_Effect/z_demo_effect.h"
#include "libc64/math64.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "printf.h"
diff --git a/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c b/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c
index ee3499a57..db44d32ed 100644
--- a/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c
+++ b/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c
@@ -7,6 +7,7 @@
#include "z_en_ru2.h"
#include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "one_point_cutscene.h"
diff --git a/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c b/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c
index 46c4d7559..43a59dce4 100644
--- a/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c
+++ b/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c
@@ -1,5 +1,6 @@
#include "z_en_ssh.h"
+#include "array_count.h"
#include "gfx.h"
#include "segmented_address.h"
#include "sfx.h"
diff --git a/src/overlays/actors/ovl_En_St/z_en_st.c b/src/overlays/actors/ovl_En_St/z_en_st.c
index 3b36545db..7f8bf6497 100644
--- a/src/overlays/actors/ovl_En_St/z_en_st.c
+++ b/src/overlays/actors/ovl_En_St/z_en_st.c
@@ -7,6 +7,7 @@
#include "z_en_st.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "sfx.h"
diff --git a/src/overlays/actors/ovl_En_Ta/z_en_ta.c b/src/overlays/actors/ovl_En_Ta/z_en_ta.c
index eee6976ee..68335d64b 100644
--- a/src/overlays/actors/ovl_En_Ta/z_en_ta.c
+++ b/src/overlays/actors/ovl_En_Ta/z_en_ta.c
@@ -8,6 +8,7 @@
#include "overlays/actors/ovl_En_Niw/z_en_niw.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "one_point_cutscene.h"
diff --git a/src/overlays/actors/ovl_En_Tk/z_en_tk.c b/src/overlays/actors/ovl_En_Tk/z_en_tk.c
index c6b1b0906..4f697c29b 100644
--- a/src/overlays/actors/ovl_En_Tk/z_en_tk.c
+++ b/src/overlays/actors/ovl_En_Tk/z_en_tk.c
@@ -8,6 +8,7 @@
#include "libc64/math64.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "rand.h"
diff --git a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c
index 3290bb3e8..165065d71 100644
--- a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c
+++ b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c
@@ -9,6 +9,7 @@
#include "overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_En_Wf/z_en_wf.c b/src/overlays/actors/ovl_En_Wf/z_en_wf.c
index 493b07fc8..4014597de 100644
--- a/src/overlays/actors/ovl_En_Wf/z_en_wf.c
+++ b/src/overlays/actors/ovl_En_Wf/z_en_wf.c
@@ -8,6 +8,7 @@
#include "overlays/actors/ovl_En_Encount1/z_en_encount1.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_En_Xc/z_en_xc.c b/src/overlays/actors/ovl_En_Xc/z_en_xc.c
index 7607fe615..764791e0d 100644
--- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c
+++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c
@@ -8,6 +8,7 @@
#include "overlays/actors/ovl_En_Arrow/z_en_arrow.h"
#include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "printf.h"
diff --git a/src/overlays/actors/ovl_En_Zf/z_en_zf.c b/src/overlays/actors/ovl_En_Zf/z_en_zf.c
index 843669b4e..b49481e88 100644
--- a/src/overlays/actors/ovl_En_Zf/z_en_zf.c
+++ b/src/overlays/actors/ovl_En_Zf/z_en_zf.c
@@ -7,6 +7,7 @@
#include "z_en_zf.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c
index 3fbe1b5fb..28cf2833b 100644
--- a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c
+++ b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c
@@ -8,6 +8,7 @@
#include "libc64/math64.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "attributes.h"
#include "gfx.h"
#include "gfx_setupdl.h"
diff --git a/src/overlays/actors/ovl_En_Zo/z_en_zo.c b/src/overlays/actors/ovl_En_Zo/z_en_zo.c
index 5332ab678..95a9f6e07 100644
--- a/src/overlays/actors/ovl_En_Zo/z_en_zo.c
+++ b/src/overlays/actors/ovl_En_Zo/z_en_zo.c
@@ -7,6 +7,7 @@
#include "z_en_zo.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "segmented_address.h"
diff --git a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c
index 0dfabfee4..d2912c7ea 100644
--- a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c
+++ b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c
@@ -6,6 +6,7 @@
#include "z_magic_dark.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "sfx.h"
diff --git a/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.c b/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.c
index b64077a0a..57761244b 100644
--- a/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.c
+++ b/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.c
@@ -7,6 +7,7 @@
#include "z_magic_wind.h"
#include "libu64/debug.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "printf.h"
diff --git a/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c b/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c
index 9563d5d2b..c6d7b1da3 100644
--- a/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c
+++ b/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c
@@ -8,6 +8,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "ichain.h"
#include "rand.h"
#include "sfx.h"
diff --git a/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c b/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c
index f7ec91ca0..39d6de7d6 100644
--- a/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c
+++ b/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c
@@ -7,6 +7,7 @@
#include "z_obj_hamishi.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.c b/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.c
index d4624e211..0a5866d1d 100644
--- a/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.c
+++ b/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.c
@@ -8,6 +8,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "ichain.h"
#include "printf.h"
#include "quake.h"
diff --git a/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c b/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c
index 036045087..8c62e888f 100644
--- a/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c
+++ b/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c
@@ -7,6 +7,7 @@
#include "z_obj_oshihiki.h"
#include "overlays/actors/ovl_Obj_Switch/z_obj_switch.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c
index ac688638d..b21c99e2e 100644
--- a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c
+++ b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c
@@ -6,6 +6,7 @@
#include "z_obj_switch.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
diff --git a/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c b/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c
index bdf1ff693..c17027975 100644
--- a/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c
+++ b/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c
@@ -7,6 +7,7 @@
#include "z_object_kankyo.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "segmented_address.h"
diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c
index 673855f56..258e237e0 100644
--- a/src/overlays/actors/ovl_player_actor/z_player.c
+++ b/src/overlays/actors/ovl_player_actor/z_player.c
@@ -18,6 +18,7 @@
#include "libc64/qrand.h"
#include "libu64/debug.h"
+#include "array_count.h"
#include "avoid_ub.h"
#include "controller.h"
#include "gfx.h"
diff --git a/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c b/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c
index a6f909b56..2ab88a16b 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c
@@ -7,6 +7,7 @@
#include "z_eff_ss_bomb.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "segmented_address.h"
diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c b/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c
index c5eedab9c..77de467bf 100644
--- a/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c
+++ b/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c
@@ -1,6 +1,7 @@
#include "file_select.h"
#include "file_select_state.h"
+#include "array_count.h"
#include "controller.h"
#include "gfx.h"
#include "gfx_setupdl.h"
diff --git a/src/overlays/gamestates/ovl_select/z_select.c b/src/overlays/gamestates/ovl_select/z_select.c
index dfef3133f..79f76c861 100644
--- a/src/overlays/gamestates/ovl_select/z_select.c
+++ b/src/overlays/gamestates/ovl_select/z_select.c
@@ -6,8 +6,8 @@
#include "libc64/qrand.h"
#include "libu64/gfxprint.h"
-#include "ultra64.h"
#include "alloca.h"
+#include "array_count.h"
#include "console_logo_state.h"
#include "controller.h"
#include "gfx.h"
@@ -24,6 +24,7 @@
#include "sfx.h"
#include "terminal.h"
#include "translation.h"
+#include "ultra64.h"
#include "z64play.h"
#include "z64save.h"
#include "z64sram.h"
diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c
index e67dd05e8..2729bf54e 100644
--- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c
+++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c
@@ -1,5 +1,6 @@
#include "z_kaleido_scope.h"
+#include "array_count.h"
#include "controller.h"
#include "gfx.h"
#include "printf.h"
diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c
index 34c3b46a4..d07720d12 100644
--- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c
+++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c
@@ -1,5 +1,7 @@
#include "z_kaleido_scope.h"
+
#include "libc64/sleep.h"
+#include "array_count.h"
#include "controller.h"
#include "gfx.h"
#include "gfx_setupdl.h"