summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJcw87 <Jcw87@users.noreply.github.com>2023-05-12 12:10:14 -0700
committerGitHub <noreply@github.com>2023-05-12 12:10:14 -0700
commit221f40e6097dfe76c76602aa21aa07d5f760dce4 (patch)
treeb8f2549712927365bcffd13688729555a4276ff1 /include
parent8c7cda85891b41cfdbce72ed4efb00292f34a16a (diff)
Remove #includes from headers (#334)
* add "global.h" to files that use it * add MSL_C includes to files that use them * remove dolphin includes from headers that don't need them * remove JSupport includes from headers that don't need them * remove JKernel includes from headers that don't need them * remove JUtility includes from headers that don't need them * remove J3D includes from headers that don't need them * remove J2D includes from headers that don't need them * remove JAudio2 includes from headers that don't need them * remove Z2AudioLib includes from headers that don't need them * remove JMessage includes from headers that don't need them * remove JParticle includes from headers that don't need them * remove SComponent includes from headers that don't need them * remove dol includes from headers that don't need them * sort includes
Diffstat (limited to 'include')
-rw-r--r--include/DynamicLink.h8
-rw-r--r--include/JSystem/J2DGraph/J2DAnimation.h8
-rw-r--r--include/JSystem/J2DGraph/J2DAnmLoader.h1
-rw-r--r--include/JSystem/J2DGraph/J2DManage.h3
-rw-r--r--include/JSystem/J2DGraph/J2DMatBlock.h11
-rw-r--r--include/JSystem/J2DGraph/J2DMaterial.h1
-rw-r--r--include/JSystem/J2DGraph/J2DMaterialFactory.h18
-rw-r--r--include/JSystem/J2DGraph/J2DPane.h21
-rw-r--r--include/JSystem/J2DGraph/J2DPicture.h10
-rw-r--r--include/JSystem/J2DGraph/J2DPictureEx.h5
-rw-r--r--include/JSystem/J2DGraph/J2DPrint.h2
-rw-r--r--include/JSystem/J2DGraph/J2DScreen.h6
-rw-r--r--include/JSystem/J2DGraph/J2DTevs.h2
-rw-r--r--include/JSystem/J2DGraph/J2DTextBox.h3
-rw-r--r--include/JSystem/J2DGraph/J2DTextBoxEx.h5
-rw-r--r--include/JSystem/J2DGraph/J2DWindow.h4
-rw-r--r--include/JSystem/J2DGraph/J2DWindowEx.h1
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DAnimation.h6
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DJoint.h3
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DJointTree.h3
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h3
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h2
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DModelData.h3
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DShapeTable.h3
-rw-r--r--include/JSystem/J3DGraphBase/J3DMatBlock.h2
-rw-r--r--include/JSystem/J3DGraphBase/J3DStruct.h2
-rw-r--r--include/JSystem/J3DGraphBase/J3DTexture.h1
-rw-r--r--include/JSystem/J3DGraphBase/J3DVertex.h4
-rw-r--r--include/JSystem/J3DGraphLoader/J3DShapeFactory.h3
-rw-r--r--include/JSystem/JAudio2/JAIAudible.h3
-rw-r--r--include/JSystem/JAudio2/JAIAudience.h3
-rw-r--r--include/JSystem/JAudio2/JAISeMgr.h6
-rw-r--r--include/JSystem/JAudio2/JAISeqMgr.h3
-rw-r--r--include/JSystem/JAudio2/JAISound.h2
-rw-r--r--include/JSystem/JAudio2/JAISoundChild.h3
-rw-r--r--include/JSystem/JAudio2/JASAudioReseter.h3
-rw-r--r--include/JSystem/JAudio2/JASDvdThread.h3
-rw-r--r--include/JSystem/JAudio2/JASResArcLoader.h5
-rw-r--r--include/JSystem/JAudio2/JASTrack.h3
-rw-r--r--include/JSystem/JAudio2/JASWaveArcLoader.h11
-rw-r--r--include/JSystem/JFramework/JFWDisplay.h9
-rw-r--r--include/JSystem/JFramework/JFWSystem.h14
-rw-r--r--include/JSystem/JGadget/search.h1
-rw-r--r--include/JSystem/JGadget/vector.h2
-rw-r--r--include/JSystem/JKernel/JKRAram.h4
-rw-r--r--include/JSystem/JKernel/JKRAramArchive.h3
-rw-r--r--include/JSystem/JKernel/JKRAramBlock.h3
-rw-r--r--include/JSystem/JKernel/JKRAramHeap.h2
-rw-r--r--include/JSystem/JKernel/JKRAramPiece.h3
-rw-r--r--include/JSystem/JKernel/JKRArchive.h5
-rw-r--r--include/JSystem/JKernel/JKRCompArchive.h3
-rw-r--r--include/JSystem/JKernel/JKRDvdAramRipper.h1
-rw-r--r--include/JSystem/JKernel/JKRDvdFile.h5
-rw-r--r--include/JSystem/JKernel/JKRDvdRipper.h2
-rw-r--r--include/JSystem/JKernel/JKRHeap.h2
-rw-r--r--include/JSystem/JKernel/JKRThread.h5
-rw-r--r--include/JSystem/JMessage/processor.h1
-rw-r--r--include/JSystem/JParticle/JPABaseShape.h3
-rw-r--r--include/JSystem/JParticle/JPAChildShape.h2
-rw-r--r--include/JSystem/JParticle/JPAParticle.h3
-rw-r--r--include/JSystem/JParticle/JPAResourceManager.h2
-rw-r--r--include/JSystem/JParticle/JPATexture.h1
-rw-r--r--include/JSystem/JStage/JSGAmbientLight.h2
-rw-r--r--include/JSystem/JStage/JSGFog.h3
-rw-r--r--include/JSystem/JStage/JSGLight.h4
-rw-r--r--include/JSystem/JStudio/JStudio/functionvalue.h1
-rw-r--r--include/JSystem/JStudio/JStudio/jstudio-control.h1
-rw-r--r--include/JSystem/JStudio/JStudio/jstudio-object.h3
-rw-r--r--include/JSystem/JSupport/JSUFileStream.h3
-rw-r--r--include/JSystem/JUtility/JUTCacheFont.h7
-rw-r--r--include/JSystem/JUtility/JUTDbPrint.h3
-rw-r--r--include/JSystem/JUtility/JUTException.h10
-rw-r--r--include/JSystem/JUtility/JUTFont.h1
-rw-r--r--include/JSystem/JUtility/JUTGamePad.h2
-rw-r--r--include/JSystem/JUtility/JUTPalette.h3
-rw-r--r--include/JSystem/JUtility/JUTProcBar.h4
-rw-r--r--include/JSystem/JUtility/JUTResFont.h5
-rw-r--r--include/JSystem/JUtility/JUTResource.h5
-rw-r--r--include/JSystem/JUtility/JUTTexture.h5
-rw-r--r--include/JSystem/JUtility/JUTVideo.h5
-rw-r--r--include/JSystem/JUtility/JUTXfb.h4
-rw-r--r--include/JSystem/JUtility/TColor.h2
-rw-r--r--include/SSystem/SComponent/c_bg_s_shdw_draw.h2
-rw-r--r--include/SSystem/SComponent/c_cc_d.h6
-rw-r--r--include/SSystem/SComponent/c_cc_s.h1
-rw-r--r--include/SSystem/SComponent/c_list.h3
-rw-r--r--include/SSystem/SComponent/c_list_iter.h3
-rw-r--r--include/SSystem/SComponent/c_m3d_g_aab.h1
-rw-r--r--include/SSystem/SComponent/c_m3d_g_cps.h1
-rw-r--r--include/SSystem/SComponent/c_m3d_g_cyl.h1
-rw-r--r--include/SSystem/SComponent/c_m3d_g_sph.h4
-rw-r--r--include/SSystem/SComponent/c_m3d_g_tri.h3
-rw-r--r--include/SSystem/SComponent/c_malloc.h3
-rw-r--r--include/SSystem/SComponent/c_node_iter.h3
-rw-r--r--include/SSystem/SComponent/c_request.h1
-rw-r--r--include/SSystem/SComponent/c_tag.h5
-rw-r--r--include/SSystem/SComponent/c_tag_iter.h3
-rw-r--r--include/SSystem/SComponent/c_tree.h5
-rw-r--r--include/SSystem/SComponent/c_tree_iter.h3
-rw-r--r--include/SSystem/SComponent/c_xyz.h1
-rw-r--r--include/Z2AudioLib/Z2AudioMgr.h6
-rw-r--r--include/Z2AudioLib/Z2Creature.h1
-rw-r--r--include/Z2AudioLib/Z2EnvSeMgr.h1
-rw-r--r--include/Z2AudioLib/Z2FxLineMgr.h5
-rw-r--r--include/Z2AudioLib/Z2SeMgr.h1
-rw-r--r--include/Z2AudioLib/Z2SeqMgr.h1
-rw-r--r--include/Z2AudioLib/Z2SoundHandles.h1
-rw-r--r--include/Z2AudioLib/Z2SoundMgr.h1
-rw-r--r--include/Z2AudioLib/Z2SoundObjMgr.h3
-rw-r--r--include/Z2AudioLib/Z2SoundObject.h3
-rw-r--r--include/Z2AudioLib/Z2SpeechMgr2.h1
-rw-r--r--include/Z2AudioLib/Z2StatusMgr.h2
-rw-r--r--include/Z2AudioLib/Z2WolfHowlMgr.h2
-rw-r--r--include/d/a/d_a_alink.h23
-rw-r--r--include/d/a/d_a_horse_static.h2
-rw-r--r--include/d/a/d_a_item_static.h3
-rw-r--r--include/d/a/d_a_itembase_static.h3
-rw-r--r--include/d/a/d_a_npc.h5
-rw-r--r--include/d/a/d_a_obj_ss_base.h2
-rw-r--r--include/d/a/d_a_player.h8
-rw-r--r--include/d/bg/d_bg_plc.h3
-rw-r--r--include/d/bg/d_bg_s.h7
-rw-r--r--include/d/bg/d_bg_s_acch.h5
-rw-r--r--include/d/bg/d_bg_s_lin_chk.h3
-rw-r--r--include/d/bg/d_bg_s_movebg_actor.h2
-rw-r--r--include/d/bg/d_bg_s_sph_chk.h1
-rw-r--r--include/d/bg/d_bg_w.h16
-rw-r--r--include/d/bg/d_bg_w_base.h15
-rw-r--r--include/d/bg/d_bg_w_kcol.h4
-rw-r--r--include/d/cc/d_cc_mass_s.h1
-rw-r--r--include/d/cc/d_cc_s.h5
-rw-r--r--include/d/cc/d_cc_uty.h3
-rw-r--r--include/d/com/d_com_inf_game.h9
-rw-r--r--include/d/d_attention.h5
-rw-r--r--include/d/d_bomb.h1
-rw-r--r--include/d/d_camera.h5
-rw-r--r--include/d/d_demo.h10
-rw-r--r--include/d/d_door_param2.h4
-rw-r--r--include/d/d_drawlist.h17
-rw-r--r--include/d/d_eye_hl.h6
-rw-r--r--include/d/d_gameover.h1
-rw-r--r--include/d/d_item.h1
-rw-r--r--include/d/d_jnt_col.h5
-rw-r--r--include/d/d_kantera_icon_meter.h4
-rw-r--r--include/d/d_ky_thunder.h3
-rw-r--r--include/d/d_lib.h6
-rw-r--r--include/d/d_model.h5
-rw-r--r--include/d/d_name.h11
-rw-r--r--include/d/d_path.h6
-rw-r--r--include/d/d_resorce.h7
-rw-r--r--include/d/d_select_cursor.h2
-rw-r--r--include/d/d_simple_model.h3
-rw-r--r--include/d/d_spline_path.h4
-rw-r--r--include/d/d_stage.h7
-rw-r--r--include/d/d_timer.h8
-rw-r--r--include/d/d_tresure.h2
-rw-r--r--include/d/d_vibration.h2
-rw-r--r--include/d/event/d_event.h8
-rw-r--r--include/d/event/d_event_data.h6
-rw-r--r--include/d/event/d_event_lib.h3
-rw-r--r--include/d/event/d_event_manager.h3
-rw-r--r--include/d/file/d_file_sel_info.h5
-rw-r--r--include/d/file/d_file_sel_warning.h4
-rw-r--r--include/d/file/d_file_select.h25
-rw-r--r--include/d/kankyo/d_kankyo.h7
-rw-r--r--include/d/kankyo/d_kankyo_wether.h1
-rw-r--r--include/d/map/d_map_path.h1
-rw-r--r--include/d/map/d_map_path_dmap.h4
-rw-r--r--include/d/menu/d_menu_calibration.h8
-rw-r--r--include/d/menu/d_menu_collect.h9
-rw-r--r--include/d/menu/d_menu_dmap.h11
-rw-r--r--include/d/menu/d_menu_fishing.h13
-rw-r--r--include/d/menu/d_menu_fmap.h10
-rw-r--r--include/d/menu/d_menu_insect.h9
-rw-r--r--include/d/menu/d_menu_letter.h9
-rw-r--r--include/d/menu/d_menu_option.h10
-rw-r--r--include/d/menu/d_menu_ring.h11
-rw-r--r--include/d/menu/d_menu_save.h14
-rw-r--r--include/d/menu/d_menu_skill.h9
-rw-r--r--include/d/menu/d_menu_window.h15
-rw-r--r--include/d/meter/d_meter2.h12
-rw-r--r--include/d/meter/d_meter2_draw.h11
-rw-r--r--include/d/meter/d_meter2_info.h14
-rw-r--r--include/d/meter/d_meter_HIO.h5
-rw-r--r--include/d/meter/d_meter_map.h4
-rw-r--r--include/d/msg/d_msg_class.h7
-rw-r--r--include/d/msg/d_msg_flow.h5
-rw-r--r--include/d/msg/d_msg_object.h10
-rw-r--r--include/d/msg/d_msg_out_font.h5
-rw-r--r--include/d/msg/d_msg_string.h4
-rw-r--r--include/d/msg/d_msg_string_base.h5
-rw-r--r--include/d/pane/d_pane_class.h2
-rw-r--r--include/d/pane/d_pane_class_alpha.h8
-rw-r--r--include/d/particle/d_particle.h13
-rw-r--r--include/d/particle/d_particle_copoly.h4
-rw-r--r--include/d/s/d_s_logo.h11
-rw-r--r--include/d/s/d_s_play.h6
-rw-r--r--include/d/save/d_save.h3
-rw-r--r--include/d/shop/d_shop_item_ctrl.h2
-rw-r--r--include/d/shop/d_shop_system.h3
-rw-r--r--include/dolphin/card/CARDPriv.h4
-rw-r--r--include/dolphin/dsp/dsp.h2
-rw-r--r--include/dolphin/exi/EXIBios.h4
-rw-r--r--include/dolphin/gd/GDGeometry.h4
-rw-r--r--include/dolphin/gx/GXBump.h1
-rw-r--r--include/dolphin/gx/GXFifo.h2
-rw-r--r--include/dolphin/os/OSAlarm.h2
-rw-r--r--include/dolphin/os/OSError.h4
-rw-r--r--include/dolphin/os/OSInterrupt.h4
-rw-r--r--include/dolphin/os/OSMemory.h1
-rw-r--r--include/dolphin/pad/Pad.h4
-rw-r--r--include/dolphin/si/SIBios.h3
-rw-r--r--include/dolphin/vi/vi.h3
-rw-r--r--include/f_op/f_op_actor.h1
-rw-r--r--include/f_op/f_op_actor_mng.h8
-rw-r--r--include/f_op/f_op_camera.h4
-rw-r--r--include/f_op/f_op_camera_mng.h6
-rw-r--r--include/f_op/f_op_draw_iter.h2
-rw-r--r--include/f_op/f_op_draw_tag.h4
-rw-r--r--include/f_op/f_op_kankyo.h4
-rw-r--r--include/f_op/f_op_msg.h4
-rw-r--r--include/f_op/f_op_msg_mng.h8
-rw-r--r--include/f_op/f_op_overlap_mng.h3
-rw-r--r--include/f_op/f_op_overlap_req.h5
-rw-r--r--include/f_op/f_op_scene.h3
-rw-r--r--include/f_op/f_op_scene_iter.h3
-rw-r--r--include/f_op/f_op_scene_mng.h4
-rw-r--r--include/f_op/f_op_scene_pause.h3
-rw-r--r--include/f_op/f_op_scene_req.h3
-rw-r--r--include/f_op/f_op_scene_tag.h2
-rw-r--r--include/f_pc/f_pc_base.h9
-rw-r--r--include/f_pc/f_pc_create_iter.h5
-rw-r--r--include/f_pc/f_pc_create_req.h5
-rw-r--r--include/f_pc/f_pc_create_tag.h1
-rw-r--r--include/f_pc/f_pc_creator.h6
-rw-r--r--include/f_pc/f_pc_delete_tag.h3
-rw-r--r--include/f_pc/f_pc_deletor.h4
-rw-r--r--include/f_pc/f_pc_draw.h4
-rw-r--r--include/f_pc/f_pc_executor.h4
-rw-r--r--include/f_pc/f_pc_fstcreate_req.h5
-rw-r--r--include/f_pc/f_pc_layer.h11
-rw-r--r--include/f_pc/f_pc_layer_iter.h4
-rw-r--r--include/f_pc/f_pc_layer_tag.h3
-rw-r--r--include/f_pc/f_pc_leaf.h1
-rw-r--r--include/f_pc/f_pc_line_iter.h2
-rw-r--r--include/f_pc/f_pc_manager.h6
-rw-r--r--include/f_pc/f_pc_method_iter.h3
-rw-r--r--include/f_pc/f_pc_node.h1
-rw-r--r--include/f_pc/f_pc_node_req.h15
-rw-r--r--include/f_pc/f_pc_pause.h2
-rw-r--r--include/f_pc/f_pc_profile.h6
-rw-r--r--include/f_pc/f_pc_stdcreate_req.h3
-rw-r--r--include/m_Do/m_Do_DVDError.h3
-rw-r--r--include/m_Do/m_Do_MemCard.h3
-rw-r--r--include/m_Do/m_Do_MemCardRWmng.h3
-rw-r--r--include/m_Do/m_Do_audio.h5
-rw-r--r--include/m_Do/m_Do_controller_pad.h1
-rw-r--r--include/m_Do/m_Do_dvd_thread.h8
-rw-r--r--include/m_Do/m_Do_ext.h15
-rw-r--r--include/m_Do/m_Do_graphic.h6
-rw-r--r--include/m_Do/m_Do_lib.h6
-rw-r--r--include/m_Do/m_Do_machine.h9
-rw-r--r--include/m_Do/m_Do_machine_exception.h1
-rw-r--r--include/m_Do/m_Do_main.h4
-rw-r--r--include/msg/scrn/d_msg_scrn_base.h6
-rw-r--r--include/msg/scrn/d_msg_scrn_explain.h4
-rw-r--r--include/rel/d/a/b/d_a_b_ob/d_a_b_ob.h1
-rw-r--r--include/rel/d/a/d_a_arrow/d_a_arrow.h3
-rw-r--r--include/rel/d/a/d_a_boomerang/d_a_boomerang.h1
-rw-r--r--include/rel/d/a/d_a_cstaF/d_a_cstaF.h2
-rw-r--r--include/rel/d/a/d_a_cstatue/d_a_cstatue.h1
-rw-r--r--include/rel/d/a/d_a_guard_mng/d_a_guard_mng.h4
-rw-r--r--include/rel/d/a/d_a_horse/d_a_horse.h3
-rw-r--r--include/rel/d/a/d_a_skip_2D/d_a_skip_2D.h2
-rw-r--r--include/rel/d/a/d_a_spinner/d_a_spinner.h1
-rw-r--r--include/rel/d/a/e/d_a_e_yk/d_a_e_yk.h1
-rw-r--r--include/rel/d/a/e/d_a_e_ym/d_a_e_ym.h1
-rw-r--r--include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h1
-rw-r--r--include/rel/d/a/obj/d_a_obj_cboard/d_a_obj_cboard.h1
-rw-r--r--include/rel/d/a/obj/d_a_obj_mgate/d_a_obj_mgate.h1
-rw-r--r--include/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.h1
-rw-r--r--include/rel/d/a/obj/d_a_obj_yobikusa/d_a_obj_yobikusa.h1
-rw-r--r--include/rel/d/a/tag/d_a_tag_CstaSw/d_a_tag_CstaSw.h1
-rw-r--r--include/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena.h1
-rw-r--r--include/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.h1
-rw-r--r--include/rel/d/a/tag/d_a_tag_gra/d_a_tag_gra.h1
-rw-r--r--include/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.h3
-rw-r--r--include/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern.h2
-rw-r--r--include/rel/d/a/tag/d_a_tag_lv6CstaSw/d_a_tag_lv6CstaSw.h1
-rw-r--r--include/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h3
-rw-r--r--include/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule.h1
-rw-r--r--include/rel/d/a/tag/d_a_tag_spring/d_a_tag_spring.h1
-rw-r--r--include/rel/d/a/tag/d_a_tag_theB_hint/d_a_tag_theB_hint.h3
293 files changed, 857 insertions, 457 deletions
diff --git a/include/DynamicLink.h b/include/DynamicLink.h
index f9da596ca8..53bd8f20b1 100644
--- a/include/DynamicLink.h
+++ b/include/DynamicLink.h
@@ -1,10 +1,12 @@
#ifndef DYNAMICLINK_H
#define DYNAMICLINK_H
-#include "JSystem/JKernel/JKRFileCache.h"
-#include "dolphin/os/OSLink.h"
#include "dolphin/types.h"
-#include "m_Do/m_Do_dvd_thread.h"
+
+typedef struct OSModuleInfo OSModuleInfo;
+class JKRArchive;
+class JKRFileCache;
+class mDoDvdThd_callback_c;
struct DynamicModuleControlBase {
/* 0x00 */ u16 mLinkCount;
diff --git a/include/JSystem/J2DGraph/J2DAnimation.h b/include/JSystem/J2DGraph/J2DAnimation.h
index 1cb44c0f04..325172b664 100644
--- a/include/JSystem/J2DGraph/J2DAnimation.h
+++ b/include/JSystem/J2DGraph/J2DAnimation.h
@@ -3,12 +3,14 @@
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
#include "JSystem/JUtility/JUTNameTab.h"
-#include "JSystem/JUtility/JUTTexture.h"
-#include "dolphin/gx/GX.h"
-#include "dolphin/os/OS.h"
#include "dolphin/types.h"
+#include "global.h"
+typedef struct _GXColor GXColor;
+typedef struct _GXColorS10 GXColorS10;
class J2DScreen;
+class JUTPalette;
+struct ResTIMG;
enum J2DAnmKind {
KIND_TRANSFORM = 0,
diff --git a/include/JSystem/J2DGraph/J2DAnmLoader.h b/include/JSystem/J2DGraph/J2DAnmLoader.h
index cb4501ce58..19b8642558 100644
--- a/include/JSystem/J2DGraph/J2DAnmLoader.h
+++ b/include/JSystem/J2DGraph/J2DAnmLoader.h
@@ -2,7 +2,6 @@
#define J2DANMLOADER_H
#include "JSystem/J2DGraph/J2DAnimation.h"
-#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
#include "dolphin/types.h"
struct J2DAnmLoaderDataBase {
diff --git a/include/JSystem/J2DGraph/J2DManage.h b/include/JSystem/J2DGraph/J2DManage.h
index 96a9e5ebc0..07d563571f 100644
--- a/include/JSystem/J2DGraph/J2DManage.h
+++ b/include/JSystem/J2DGraph/J2DManage.h
@@ -1,9 +1,10 @@
#ifndef J2DMANAGE_H
#define J2DMANAGE_H
-#include "JSystem/JSupport/JSUInputStream.h"
#include "dolphin/types.h"
+class JSUInputStream;
+
struct J2DResReference {
/* 0x00 */ u16 mCount;
/* 0x02 */ u16 mOffsets[1];
diff --git a/include/JSystem/J2DGraph/J2DMatBlock.h b/include/JSystem/J2DGraph/J2DMatBlock.h
index d9ed9f94b8..5b4466de38 100644
--- a/include/JSystem/J2DGraph/J2DMatBlock.h
+++ b/include/JSystem/J2DGraph/J2DMatBlock.h
@@ -2,11 +2,18 @@
#define J2DMATBLOCK_H
#include "JSystem/J2DGraph/J2DTevs.h"
-#include "JSystem/JUtility/JUTResFont.h"
-#include "JSystem/JUtility/JUTTexture.h"
#include "JSystem/JUtility/TColor.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
+class JUTFont;
+class JUTPalette;
+class JUTResFont;
+class JUTTexture;
+struct ResFONT;
+struct ResTIMG;
+struct ResTLUT;
+
struct J2DGXColorS10 : public GXColorS10 {
/* 802F1B90 */ J2DGXColorS10();
};
diff --git a/include/JSystem/J2DGraph/J2DMaterial.h b/include/JSystem/J2DGraph/J2DMaterial.h
index e30143379f..b83a856cc9 100644
--- a/include/JSystem/J2DGraph/J2DMaterial.h
+++ b/include/JSystem/J2DGraph/J2DMaterial.h
@@ -3,7 +3,6 @@
#include "JSystem/J2DGraph/J2DAnimation.h"
#include "JSystem/J2DGraph/J2DMatBlock.h"
-#include "dolphin/gx/GX.h"
#include "dolphin/types.h"
class J2DMaterial {
diff --git a/include/JSystem/J2DGraph/J2DMaterialFactory.h b/include/JSystem/J2DGraph/J2DMaterialFactory.h
index e66d8f9bdd..719333b51c 100644
--- a/include/JSystem/J2DGraph/J2DMaterialFactory.h
+++ b/include/JSystem/J2DGraph/J2DMaterialFactory.h
@@ -2,16 +2,26 @@
#define J2DMATERIALFACTORY_H
#include "JSystem/J2DGraph/J2DManage.h"
-#include "JSystem/J2DGraph/J2DMaterial.h"
-#include "JSystem/JKernel/JKRArchive.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/types.h"
struct J2DMaterialBlock {};
-struct J2DMaterialInitData;
+typedef struct _GXColor GXColor;
+typedef struct _GXColorS10 GXColorS10;
+struct J2DAlphaCompInfo;
+struct J2DBlendInfo;
+struct J2DColorChanInfo;
struct J2DIndInitData;
+class J2DMaterial;
+struct J2DMaterialInitData;
+struct J2DTevStageInfo;
struct J2DTevSwapModeTableInfo;
-struct J2DAlphaCompInfo;
+struct J2DTevSwapModeInfo;
+struct J2DTevOrderInfo;
+struct J2DTexCoordInfo;
+struct J2DTexMtxInfo;
+class JKRArchive;
class J2DMaterialFactory {
public:
diff --git a/include/JSystem/J2DGraph/J2DPane.h b/include/JSystem/J2DGraph/J2DPane.h
index 7d4832d8eb..a2c4bf1d14 100644
--- a/include/JSystem/J2DGraph/J2DPane.h
+++ b/include/JSystem/J2DGraph/J2DPane.h
@@ -1,19 +1,26 @@
#ifndef J2DPANE_H
#define J2DPANE_H
-#include "JSystem/J2DGraph/J2DAnimation.h"
-#include "JSystem/J2DGraph/J2DGrafContext.h"
#include "JSystem/JGeometry.h"
-#include "JSystem/JKernel/JKRArchive.h"
#include "JSystem/JSupport/JSUList.h"
-#include "JSystem/JSupport/JSURandomInputStream.h"
-#include "JSystem/JUtility/JUTFont.h"
-#include "JSystem/JUtility/JUTResFont.h"
-#include "JSystem/JUtility/JUTTexture.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/mtx/mtx.h"
#include "dolphin/types.h"
+class J2DAnmBase;
+class J2DAnmColor;
+class J2DAnmTransform;
+class J2DAnmTevRegKey;
+class J2DAnmTextureSRTKey;
+class J2DAnmVisibilityFull;
+class J2DAnmVtxColor;
+class J2DGrafContext;
class J2DScreen;
+class J2DAnmTexPattern;
+class JKRArchive;
+class JSURandomInputStream;
+struct ResFONT;
+struct ResTIMG;
enum J2DRotateAxis {
/* 0x78 */ ROTATE_X = 'x',
diff --git a/include/JSystem/J2DGraph/J2DPicture.h b/include/JSystem/J2DGraph/J2DPicture.h
index b28e74fd83..e19ea034ba 100644
--- a/include/JSystem/J2DGraph/J2DPicture.h
+++ b/include/JSystem/J2DGraph/J2DPicture.h
@@ -2,10 +2,16 @@
#define J2DPICTURE_H
#include "JSystem/J2DGraph/J2DPane.h"
-#include "JSystem/J2DGraph/J2DScreen.h"
-#include "JSystem/JUtility/JUTTexture.h"
+#include "JSystem/JUtility/TColor.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/types.h"
+class J2DMaterial;
+class JUTPalette;
+class JUTTexture;
+struct ResTIMG;
+struct ResTLUT;
+
enum J2DMirror {
/* 0x0 */ MIRROR0, // temp, figure out later
};
diff --git a/include/JSystem/J2DGraph/J2DPictureEx.h b/include/JSystem/J2DGraph/J2DPictureEx.h
index 3b83093015..8e3a3139cf 100644
--- a/include/JSystem/J2DGraph/J2DPictureEx.h
+++ b/include/JSystem/J2DGraph/J2DPictureEx.h
@@ -1,10 +1,13 @@
#ifndef J2DPICTUREEX_H
#define J2DPICTUREEX_H
-#include "JSystem/J2DGraph/J2DMaterial.h"
#include "JSystem/J2DGraph/J2DPicture.h"
+#include "JSystem/J2DGraph/J2DTevs.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/types.h"
+class J2DMaterial;
+
class J2DPictureEx : public J2DPicture {
public:
enum stage_enum {};
diff --git a/include/JSystem/J2DGraph/J2DPrint.h b/include/JSystem/J2DGraph/J2DPrint.h
index fe2b169823..e47e59b646 100644
--- a/include/JSystem/J2DGraph/J2DPrint.h
+++ b/include/JSystem/J2DGraph/J2DPrint.h
@@ -6,6 +6,8 @@
#include "Runtime.PPCEABI.H/__va_arg.h"
#include "dolphin/types.h"
+class JUTFont;
+
class J2DPrint {
public:
struct TSize {
diff --git a/include/JSystem/J2DGraph/J2DScreen.h b/include/JSystem/J2DGraph/J2DScreen.h
index a878d07f57..456f8d3ad4 100644
--- a/include/JSystem/J2DGraph/J2DScreen.h
+++ b/include/JSystem/J2DGraph/J2DScreen.h
@@ -2,11 +2,13 @@
#define J2DSCREEN_H
#include "JSystem/J2DGraph/J2DManage.h"
-#include "JSystem/J2DGraph/J2DMaterial.h"
#include "JSystem/J2DGraph/J2DPane.h"
-#include "JSystem/JUtility/JUTNameTab.h"
+#include "JSystem/JUtility/TColor.h"
#include "dolphin/types.h"
+class J2DMaterial;
+class JUTNameTab;
+
struct J2DScrnHeader {
/* 0x00 */ u32 mTag;
/* 0x04 */ u32 mType;
diff --git a/include/JSystem/J2DGraph/J2DTevs.h b/include/JSystem/J2DGraph/J2DTevs.h
index 087e9d5396..63e0201b9c 100644
--- a/include/JSystem/J2DGraph/J2DTevs.h
+++ b/include/JSystem/J2DGraph/J2DTevs.h
@@ -1,7 +1,7 @@
#ifndef J2DTEVS_H
#define J2DTEVS_H
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/mtx/mtxvec.h"
#include "dolphin/types.h"
diff --git a/include/JSystem/J2DGraph/J2DTextBox.h b/include/JSystem/J2DGraph/J2DTextBox.h
index 67d1d663d3..b0d99ec5ae 100644
--- a/include/JSystem/J2DGraph/J2DTextBox.h
+++ b/include/JSystem/J2DGraph/J2DTextBox.h
@@ -5,6 +5,9 @@
#include "JSystem/J2DGraph/J2DPane.h"
#include "dolphin/types.h"
+class J2DMaterial;
+class JUTFont;
+
enum J2DTextBoxVBinding {
/* 0x0 */ VBIND_CENTER,
/* 0x1 */ VBIND_BOTTOM,
diff --git a/include/JSystem/J2DGraph/J2DTextBoxEx.h b/include/JSystem/J2DGraph/J2DTextBoxEx.h
index 98f6c44c10..3a53a48ade 100644
--- a/include/JSystem/J2DGraph/J2DTextBoxEx.h
+++ b/include/JSystem/J2DGraph/J2DTextBoxEx.h
@@ -1,11 +1,12 @@
#ifndef J2DTEXTBOXEX_H
#define J2DTEXTBOXEX_H
-#include "JSystem/J2DGraph/J2DMaterial.h"
-#include "JSystem/J2DGraph/J2DPrint.h"
#include "JSystem/J2DGraph/J2DTextBox.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/types.h"
+class J2DMaterial;
+
class J2DTextBoxEx : public J2DTextBox {
public:
enum stage_enum {
diff --git a/include/JSystem/J2DGraph/J2DWindow.h b/include/JSystem/J2DGraph/J2DWindow.h
index 088ab3315e..fb114165f0 100644
--- a/include/JSystem/J2DGraph/J2DWindow.h
+++ b/include/JSystem/J2DGraph/J2DWindow.h
@@ -3,9 +3,11 @@
#include "JSystem/J2DGraph/J2DMaterial.h"
#include "JSystem/J2DGraph/J2DPane.h"
-#include "JSystem/JSupport/JSURandomInputStream.h"
#include "dolphin/types.h"
+class JSURandomInputStream;
+class JUTTexture;
+
class J2DWindow : public J2DPane {
public:
struct TMaterial {
diff --git a/include/JSystem/J2DGraph/J2DWindowEx.h b/include/JSystem/J2DGraph/J2DWindowEx.h
index e5f7e29f8a..a19e3842aa 100644
--- a/include/JSystem/J2DGraph/J2DWindowEx.h
+++ b/include/JSystem/J2DGraph/J2DWindowEx.h
@@ -3,6 +3,7 @@
#include "JSystem/J2DGraph/J2DMaterial.h"
#include "JSystem/J2DGraph/J2DWindow.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/types.h"
class J2DWindowEx : public J2DWindow {
diff --git a/include/JSystem/J3DGraphAnimator/J3DAnimation.h b/include/JSystem/J3DGraphAnimator/J3DAnimation.h
index 5fe848fe8a..198952a233 100644
--- a/include/JSystem/J3DGraphAnimator/J3DAnimation.h
+++ b/include/JSystem/J3DGraphAnimator/J3DAnimation.h
@@ -3,8 +3,12 @@
#include "JSystem/J3DGraphAnimator/J3DMaterialAttach.h"
#include "JSystem/J3DGraphAnimator/J3DModelData.h"
-#include "dolphin/gx/GX.h"
+#include "JSystem/JUtility/JUTNameTab.h"
#include "dolphin/types.h"
+#include "global.h"
+
+typedef struct _GXColor GXColor;
+typedef struct _GXColorS10 GXColorS10;
struct J3DAnmKeyTableBase {
/* 0x00 */ u16 mMaxFrame;
diff --git a/include/JSystem/J3DGraphAnimator/J3DJoint.h b/include/JSystem/J3DGraphAnimator/J3DJoint.h
index 12f2da776c..6156cf06cf 100644
--- a/include/JSystem/J3DGraphAnimator/J3DJoint.h
+++ b/include/JSystem/J3DGraphAnimator/J3DJoint.h
@@ -1,11 +1,12 @@
#ifndef J3DJOINT_H
#define J3DJOINT_H
-#include "JSystem/J3DGraphBase/J3DMaterial.h"
#include "JSystem/J3DGraphBase/J3DTransform.h"
#include "dolphin/types.h"
class J3DAnmTransform;
+class J3DJoint;
+class J3DMaterial;
class J3DMtxBuffer;
class J3DMtxCalc {
diff --git a/include/JSystem/J3DGraphAnimator/J3DJointTree.h b/include/JSystem/J3DGraphAnimator/J3DJointTree.h
index a58b55c9a9..dc74089af3 100644
--- a/include/JSystem/J3DGraphAnimator/J3DJointTree.h
+++ b/include/JSystem/J3DGraphAnimator/J3DJointTree.h
@@ -2,10 +2,11 @@
#define J3DJOINTTREE_H
#include "JSystem/J3DGraphAnimator/J3DJoint.h"
-#include "JSystem/JUtility/JUTNameTab.h"
#include "dolphin/mtx/mtxvec.h"
#include "dolphin/types.h"
+class JUTNameTab;
+
struct J3DModelHierarchy {
/* 0x0 */ u16 mType;
/* 0x2 */ u16 mValue;
diff --git a/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h b/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h
index db9a5184a6..b87b1f0d0a 100644
--- a/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h
+++ b/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h
@@ -4,6 +4,9 @@
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
#include "dolphin/types.h"
+typedef struct _GXColor GXColor;
+typedef struct _GXColorS10 GXColorS10;
+
class J3DMatColorAnm {
public:
/* 8003B2B8 */ ~J3DMatColorAnm();
diff --git a/include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h b/include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h
index 79ed0e592d..343006df80 100644
--- a/include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h
+++ b/include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h
@@ -1,7 +1,6 @@
#ifndef J3DMATERIALATTACH_H
#define J3DMATERIALATTACH_H
-#include "JSystem/JUtility/JUTNameTab.h"
#include "dolphin/types.h"
struct J3DMaterial;
@@ -10,6 +9,7 @@ struct J3DAnmColor;
struct J3DAnmTexPattern;
struct J3DAnmTextureSRTKey;
struct J3DAnmTevRegKey;
+class JUTNameTab;
class J3DMaterialTable {
public:
diff --git a/include/JSystem/J3DGraphAnimator/J3DModelData.h b/include/JSystem/J3DGraphAnimator/J3DModelData.h
index 766ae76a76..125e7c9b3d 100644
--- a/include/JSystem/J3DGraphAnimator/J3DModelData.h
+++ b/include/JSystem/J3DGraphAnimator/J3DModelData.h
@@ -8,6 +8,9 @@
#include "JSystem/J3DGraphBase/J3DVertex.h"
#include "dolphin/types.h"
+typedef struct _GXColor GXColor;
+class JUTNameTab;
+
class J3DModelData {
public:
/* 80325D88 */ void clear();
diff --git a/include/JSystem/J3DGraphAnimator/J3DShapeTable.h b/include/JSystem/J3DGraphAnimator/J3DShapeTable.h
index 9abac85f9b..4cc14fdd29 100644
--- a/include/JSystem/J3DGraphAnimator/J3DShapeTable.h
+++ b/include/JSystem/J3DGraphAnimator/J3DShapeTable.h
@@ -3,9 +3,10 @@
#include "JSystem/J3DGraphBase/J3DShape.h"
#include "JSystem/J3DGraphBase/J3DVertex.h"
-#include "JSystem/JUtility/JUTNameTab.h"
#include "dolphin/types.h"
+class JUTNameTab;
+
class J3DShapeTable {
public:
J3DShapeTable() {
diff --git a/include/JSystem/J3DGraphBase/J3DMatBlock.h b/include/JSystem/J3DGraphBase/J3DMatBlock.h
index d68a99bc94..4e1ca4a6e3 100644
--- a/include/JSystem/J3DGraphBase/J3DMatBlock.h
+++ b/include/JSystem/J3DGraphBase/J3DMatBlock.h
@@ -4,7 +4,7 @@
#include "JSystem/J3DGraphBase/J3DStruct.h"
#include "JSystem/J3DGraphBase/J3DTevs.h"
#include "JSystem/J3DGraphBase/J3DTexture.h"
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/mtx/mtx.h"
#include "dolphin/types.h"
diff --git a/include/JSystem/J3DGraphBase/J3DStruct.h b/include/JSystem/J3DGraphBase/J3DStruct.h
index 778236d80f..cb98164d03 100644
--- a/include/JSystem/J3DGraphBase/J3DStruct.h
+++ b/include/JSystem/J3DGraphBase/J3DStruct.h
@@ -2,7 +2,7 @@
#define J3DSTRUCT_H
#include "SSystem/SComponent/c_xyz.h"
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
class J3DLightInfo {
diff --git a/include/JSystem/J3DGraphBase/J3DTexture.h b/include/JSystem/J3DGraphBase/J3DTexture.h
index 95580afa91..b66c8b6c33 100644
--- a/include/JSystem/J3DGraphBase/J3DTexture.h
+++ b/include/JSystem/J3DGraphBase/J3DTexture.h
@@ -2,6 +2,7 @@
#define J3DTEXTURE_H
#include "JSystem/JUtility/JUTTexture.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/mtx/mtx.h"
#include "dolphin/mtx/mtx44.h"
#include "dolphin/types.h"
diff --git a/include/JSystem/J3DGraphBase/J3DVertex.h b/include/JSystem/J3DGraphBase/J3DVertex.h
index a8e67d578f..a601987c1d 100644
--- a/include/JSystem/J3DGraphBase/J3DVertex.h
+++ b/include/JSystem/J3DGraphBase/J3DVertex.h
@@ -1,10 +1,12 @@
#ifndef J3DVERTEX_H
#define J3DVERTEX_H
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXAttr.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/mtx/vec.h"
#include "dolphin/types.h"
+typedef struct _GXColor GXColor;
class J3DModel;
struct J3DAnmVtxColor;
diff --git a/include/JSystem/J3DGraphLoader/J3DShapeFactory.h b/include/JSystem/J3DGraphLoader/J3DShapeFactory.h
index 385a217e25..1100b5fe69 100644
--- a/include/JSystem/J3DGraphLoader/J3DShapeFactory.h
+++ b/include/JSystem/J3DGraphLoader/J3DShapeFactory.h
@@ -1,7 +1,8 @@
#ifndef J3DSHAPEFACTORY_H
#define J3DSHAPEFACTORY_H
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXAttr.h"
+#include "dolphin/mtx/vec.h"
#include "dolphin/types.h"
struct J3DShape;
diff --git a/include/JSystem/JAudio2/JAIAudible.h b/include/JSystem/JAudio2/JAIAudible.h
index 047b913295..1f89a60d73 100644
--- a/include/JSystem/JAudio2/JAIAudible.h
+++ b/include/JSystem/JAudio2/JAIAudible.h
@@ -2,7 +2,8 @@
#define JAIAUDIBLE_H
#include "dolphin/types.h"
-#include "JSystem/JAudio2/JASSoundParams.h"
+
+struct JASSoundParams;
struct JAIAudible {
virtual ~JAIAudible();
diff --git a/include/JSystem/JAudio2/JAIAudience.h b/include/JSystem/JAudio2/JAIAudience.h
index 1621386ad8..8b54ffe9f4 100644
--- a/include/JSystem/JAudio2/JAIAudience.h
+++ b/include/JSystem/JAudio2/JAIAudience.h
@@ -1,11 +1,10 @@
#ifndef JAIAUDIENCE_H
#define JAIAUDIENCE_H
-#include "JSystem/JAudio2/JAIAudible.h"
-#include "JSystem/JAudio2/JAISound.h"
#include "JSystem/JGeometry.h"
#include "dolphin/types.h"
+struct JAIAudible;
class JAISoundID;
struct JASSoundParams;
diff --git a/include/JSystem/JAudio2/JAISeMgr.h b/include/JSystem/JAudio2/JAISeMgr.h
index 627445f912..d4f6886b19 100644
--- a/include/JSystem/JAudio2/JAISeMgr.h
+++ b/include/JSystem/JAudio2/JAISeMgr.h
@@ -1,11 +1,15 @@
#ifndef JAISEMGR_H
#define JAISEMGR_H
-#include "JSystem/JAudio2/JAIAudience.h"
#include "JSystem/JAudio2/JAISeqDataMgr.h"
#include "JSystem/JAudio2/JAISound.h"
+#include "JSystem/JAudio2/JAISoundParams.h"
#include "JSystem/JAudio2/JASGadget.h"
#include "JSystem/JSupport/JSUList.h"
+#include "global.h"
+
+struct JAIAudience;
+struct JASSoundParams;
struct JASNonCopyable {
/* 0x0 */ int field_0x0;
diff --git a/include/JSystem/JAudio2/JAISeqMgr.h b/include/JSystem/JAudio2/JAISeqMgr.h
index 9550331211..9176681530 100644
--- a/include/JSystem/JAudio2/JAISeqMgr.h
+++ b/include/JSystem/JAudio2/JAISeqMgr.h
@@ -1,12 +1,13 @@
#ifndef JAISEQMGR_H
#define JAISEQMGR_H
-#include "JSystem/JAudio2/JAIAudience.h"
#include "JSystem/JAudio2/JAISeqDataMgr.h"
#include "JSystem/JAudio2/JAISound.h"
+#include "JSystem/JAudio2/JAISoundParams.h"
#include "JSystem/JAudio2/JASGadget.h"
#include "JSystem/JSupport/JSUList.h"
+struct JAIAudience;
struct JAISeq;
class JAISeqMgr : public JAISeqDataUser, public JASGlobalInstance<JAISeqMgr> {
diff --git a/include/JSystem/JAudio2/JAISound.h b/include/JSystem/JAudio2/JAISound.h
index b45793de42..92a376f836 100644
--- a/include/JSystem/JAudio2/JAISound.h
+++ b/include/JSystem/JAudio2/JAISound.h
@@ -1,8 +1,6 @@
#ifndef JAISOUND_H
#define JAISOUND_H
-#include "JSystem/JAudio2/JAIAudience.h"
-#include "JSystem/JAudio2/JAISoundHandles.h"
#include "JSystem/JAudio2/JAISoundParams.h"
#include "JSystem/JGeometry.h"
#include "dolphin/types.h"
diff --git a/include/JSystem/JAudio2/JAISoundChild.h b/include/JSystem/JAudio2/JAISoundChild.h
index 257e89eb40..b3ac7d6942 100644
--- a/include/JSystem/JAudio2/JAISoundChild.h
+++ b/include/JSystem/JAudio2/JAISoundChild.h
@@ -2,9 +2,10 @@
#define JAISOUNDCHILD_H
#include "JSystem/JAudio2/JAISoundParams.h"
-#include "JSystem/JAudio2/JASTrack.h"
#include "dolphin/types.h"
+struct JASTrack;
+
struct JAISoundChild {
/* 802A2AB0 */ void init();
/* 802A2B28 */ void mixOut(JASTrack*);
diff --git a/include/JSystem/JAudio2/JASAudioReseter.h b/include/JSystem/JAudio2/JASAudioReseter.h
index 66d466f3f5..45813a6016 100644
--- a/include/JSystem/JAudio2/JASAudioReseter.h
+++ b/include/JSystem/JAudio2/JASAudioReseter.h
@@ -1,9 +1,8 @@
#ifndef JASAUDIORESETER_H
#define JASAUDIORESETER_H
-#include "JSystem/JAudio2/JASDriverIF.h"
#include "dolphin/types.h"
-#include "dolphin/os/OS.h"
+#include "dolphin/os/OSInterrupt.h"
struct JASCriticalSection {
inline JASCriticalSection() {mInterruptState = OSDisableInterrupts();};
diff --git a/include/JSystem/JAudio2/JASDvdThread.h b/include/JSystem/JAudio2/JASDvdThread.h
index 0e05c452d9..061f7bd496 100644
--- a/include/JSystem/JAudio2/JASDvdThread.h
+++ b/include/JSystem/JAudio2/JASDvdThread.h
@@ -1,9 +1,10 @@
#ifndef JASDVDTHREAD_H
#define JASDVDTHREAD_H
-#include "JSystem/JAudio2/JASTaskThread.h"
#include "dolphin/types.h"
+class JASTaskThread;
+
class JASDvd {
public:
/* 8028FEFC */ static JASTaskThread* getThreadPointer();
diff --git a/include/JSystem/JAudio2/JASResArcLoader.h b/include/JSystem/JAudio2/JASResArcLoader.h
index 8e32fb6b06..baab677594 100644
--- a/include/JSystem/JAudio2/JASResArcLoader.h
+++ b/include/JSystem/JAudio2/JASResArcLoader.h
@@ -1,7 +1,10 @@
#ifndef JASRESARCLOADER_H
#define JASRESARCLOADER_H
-#include "JSystem/JKernel/JKRArchive.h"
+#include "dolphin/types.h"
+
+typedef struct OSMessageQueue OSMessageQueue;
+class JKRArchive;
namespace JASResArcLoader {
/* 80290BD0 */ size_t getResSize(JKRArchive const*, u16);
diff --git a/include/JSystem/JAudio2/JASTrack.h b/include/JSystem/JAudio2/JASTrack.h
index 4166ea1502..12465a470c 100644
--- a/include/JSystem/JAudio2/JASTrack.h
+++ b/include/JSystem/JAudio2/JASTrack.h
@@ -2,7 +2,8 @@
#define JASTRACK_H
#include "JSystem/JAudio2/JASGadget.h"
-#include "JSystem/JAudio2/JASSoundParams.h"
+
+struct JASSoundParams;
struct JASDsp {
struct TChannel {
diff --git a/include/JSystem/JAudio2/JASWaveArcLoader.h b/include/JSystem/JAudio2/JASWaveArcLoader.h
index 95fb0280b0..9e3610c651 100644
--- a/include/JSystem/JAudio2/JASWaveArcLoader.h
+++ b/include/JSystem/JAudio2/JASWaveArcLoader.h
@@ -1,16 +1,13 @@
#ifndef JASWAVEARCLOADER_H
#define JASWAVEARCLOADER_H
+#include "JSystem/JSupport/JSUList.h"
#include "dol2asm.h"
-#include "dolphin/types.h"
-#include "global.h"
-
#include "dolphin/os/OSMutex.h"
+#include "dolphin/types.h"
-#include "JSystem/JAudio2/JASDvdThread.h"
-#include "JSystem/JAudio2/JASHeapCtrl.h"
-#include "JSystem/JKernel/JKRDvdAramRipper.h"
-#include "JSystem/JKernel/JKRSolidHeap.h"
+class JKRHeap;
+class JKRSolidHeap;
struct JASDisposer {
JASDisposer() {}
diff --git a/include/JSystem/JFramework/JFWDisplay.h b/include/JSystem/JFramework/JFWDisplay.h
index d189cd7cde..57f987cc6f 100644
--- a/include/JSystem/JFramework/JFWDisplay.h
+++ b/include/JSystem/JFramework/JFWDisplay.h
@@ -1,15 +1,18 @@
#ifndef JFWDISPLAY_H
#define JFWDISPLAY_H
-#include "JSystem/JKernel/JKRHeap.h"
+#include "JSystem/JSupport/JSUList.h"
#include "JSystem/JUtility/JUTDirectPrint.h"
#include "JSystem/JUtility/JUTFader.h"
-#include "JSystem/JUtility/JUTProcBar.h"
#include "JSystem/JUtility/JUTXfb.h"
#include "JSystem/JUtility/TColor.h"
-#include "dolphin/gx/GX.h"
+#include "dolphin/os/OSAlarm.h"
#include "dolphin/types.h"
+typedef struct _GXColor GXColor;
+typedef struct _GXRenderModeObj GXRenderModeObj;
+class JKRHeap;
+
typedef void (*JFWDisplayUnkFunc)(void);
class JFWAlarm : public OSAlarm {
diff --git a/include/JSystem/JFramework/JFWSystem.h b/include/JSystem/JFramework/JFWSystem.h
index 66c89e8c56..e1b878f12a 100644
--- a/include/JSystem/JFramework/JFWSystem.h
+++ b/include/JSystem/JFramework/JFWSystem.h
@@ -1,13 +1,17 @@
#ifndef JFWSYSTEM_H
#define JFWSYSTEM_H
-#include "JSystem/JKernel/JKRExpHeap.h"
-#include "JSystem/JKernel/JKRThread.h"
-#include "JSystem/JUtility/JUTConsole.h"
-#include "JSystem/JUtility/JUTDbPrint.h"
-#include "JSystem/JUtility/JUTResFont.h"
#include "dolphin/types.h"
+typedef struct _GXRenderModeObj GXRenderModeObj;
+class JKRExpHeap;
+class JKRThread;
+class JUTConsole;
+class JUTConsoleManager;
+class JUTDbPrint;
+class JUTResFont;
+struct ResFONT;
+
struct JFWSystem {
struct CSetUpParam {
static s32 maxStdHeaps;
diff --git a/include/JSystem/JGadget/search.h b/include/JSystem/JGadget/search.h
index a7b3510800..552681f88c 100644
--- a/include/JSystem/JGadget/search.h
+++ b/include/JSystem/JGadget/search.h
@@ -1,6 +1,7 @@
#ifndef SEARCH_H
#define SEARCH_H
+#include "dolphin/types.h"
#include "global.h"
namespace JGadget {
diff --git a/include/JSystem/JGadget/vector.h b/include/JSystem/JGadget/vector.h
index 636ac909cc..adb5ad1756 100644
--- a/include/JSystem/JGadget/vector.h
+++ b/include/JSystem/JGadget/vector.h
@@ -1,7 +1,7 @@
#ifndef VECTOR_H
#define VECTOR_H
-#include "global.h"
+#include "dolphin/types.h"
extern u8 data_804511E0;
extern u8 lit_569[];
diff --git a/include/JSystem/JKernel/JKRAram.h b/include/JSystem/JKernel/JKRAram.h
index 80975eba93..5fd1b7820e 100644
--- a/include/JSystem/JKernel/JKRAram.h
+++ b/include/JSystem/JKernel/JKRAram.h
@@ -1,13 +1,13 @@
#ifndef JKRARAM_H
#define JKRARAM_H
-#include "dolphin/types.h"
-
#include "JSystem/JKernel/JKRAramHeap.h"
#include "JSystem/JKernel/JKRDvdRipper.h"
#include "JSystem/JKernel/JKRThread.h"
+#include "dolphin/types.h"
class JKRHeap;
+class JKRAMCommand;
class JKRAramBlock;
class JKRAram : public JKRThread {
private:
diff --git a/include/JSystem/JKernel/JKRAramArchive.h b/include/JSystem/JKernel/JKRAramArchive.h
index 5a7f7bd44a..33031afbe4 100644
--- a/include/JSystem/JKernel/JKRAramArchive.h
+++ b/include/JSystem/JKernel/JKRAramArchive.h
@@ -5,6 +5,9 @@
#include "JSystem/JKernel/JKRArchive.h"
#include "dolphin/types.h"
+class JKRAramBlock;
+class JKRDvdFile;
+
class JKRAramArchive : public JKRArchive {
public:
JKRAramArchive(long, JKRArchive::EMountDirection);
diff --git a/include/JSystem/JKernel/JKRAramBlock.h b/include/JSystem/JKernel/JKRAramBlock.h
index 5f17050f2d..0dcc348cda 100644
--- a/include/JSystem/JKernel/JKRAramBlock.h
+++ b/include/JSystem/JKernel/JKRAramBlock.h
@@ -1,9 +1,6 @@
#ifndef JKRARAMBLOCK_H
#define JKRARAMBLOCK_H
-#include "dolphin/types.h"
-
-#include "JSystem/JKernel/JKRArchive.h"
#include "JSystem/JSupport/JSUList.h"
#include "dolphin/types.h"
diff --git a/include/JSystem/JKernel/JKRAramHeap.h b/include/JSystem/JKernel/JKRAramHeap.h
index 0a1f912b63..48293cba8d 100644
--- a/include/JSystem/JKernel/JKRAramHeap.h
+++ b/include/JSystem/JKernel/JKRAramHeap.h
@@ -3,7 +3,7 @@
#include "JSystem/JKernel/JKRAramBlock.h"
#include "JSystem/JKernel/JKRDisposer.h"
-#include "dolphin/os/OS.h"
+#include "dolphin/os/OSMutex.h"
#include "dolphin/types.h"
class JKRAramHeap : public JKRDisposer {
diff --git a/include/JSystem/JKernel/JKRAramPiece.h b/include/JSystem/JKernel/JKRAramPiece.h
index 6e17f67e52..5f522d5d1c 100644
--- a/include/JSystem/JKernel/JKRAramPiece.h
+++ b/include/JSystem/JKernel/JKRAramPiece.h
@@ -3,7 +3,8 @@
#include "JSystem/JSupport/JSUList.h"
#include "dolphin/ar/arq.h"
-#include "dolphin/os/OS.h"
+#include "dolphin/os/OSMessage.h"
+#include "dolphin/os/OSMutex.h"
#include "dolphin/types.h"
class JKRAramBlock;
diff --git a/include/JSystem/JKernel/JKRArchive.h b/include/JSystem/JKernel/JKRArchive.h
index 2583da20b8..e6e230d415 100644
--- a/include/JSystem/JKernel/JKRArchive.h
+++ b/include/JSystem/JKernel/JKRArchive.h
@@ -2,12 +2,11 @@
#define JKRARCHIVE_H
#include "JSystem/JKernel/JKRCompression.h"
-#include "JSystem/JKernel/JKRDecomp.h"
-#include "JSystem/JKernel/JKRDvdFile.h"
#include "JSystem/JKernel/JKRFileLoader.h"
-#include "JSystem/JKernel/JKRHeap.h"
#include "global.h"
+class JKRHeap;
+
struct SArcHeader {
/* 0x00 */ u32 signature;
/* 0x04 */ u32 file_length;
diff --git a/include/JSystem/JKernel/JKRCompArchive.h b/include/JSystem/JKernel/JKRCompArchive.h
index f5fcb31999..74490ddfef 100644
--- a/include/JSystem/JKernel/JKRCompArchive.h
+++ b/include/JSystem/JKernel/JKRCompArchive.h
@@ -4,6 +4,9 @@
#include "JSystem/JKernel/JKRArchive.h"
#include "dolphin/types.h"
+class JKRAramBlock;
+class JKRDvdFile;
+
class JKRCompArchive : public JKRArchive {
public:
JKRCompArchive(long, JKRArchive::EMountDirection);
diff --git a/include/JSystem/JKernel/JKRDvdAramRipper.h b/include/JSystem/JKernel/JKRDvdAramRipper.h
index ed01abe023..a6b59f07a2 100644
--- a/include/JSystem/JKernel/JKRDvdAramRipper.h
+++ b/include/JSystem/JKernel/JKRDvdAramRipper.h
@@ -2,6 +2,7 @@
#define JKRDVDARAMRIPPER_H
#include "JSystem/JKernel/JKRDvdRipper.h"
+#include "JSystem/JSupport/JSUList.h"
#include "dolphin/types.h"
class JKRAramBlock;
diff --git a/include/JSystem/JKernel/JKRDvdFile.h b/include/JSystem/JKernel/JKRDvdFile.h
index ecb722531a..a1b1295782 100644
--- a/include/JSystem/JKernel/JKRDvdFile.h
+++ b/include/JSystem/JKernel/JKRDvdFile.h
@@ -3,9 +3,12 @@
#include "JSystem/JKernel/JKRFile.h"
#include "dolphin/dvd/dvd.h"
-#include "dolphin/os/OS.h"
+#include "dolphin/os/OSMessage.h"
+#include "dolphin/os/OSMutex.h"
#include "dolphin/types.h"
+struct OSThread;
+
class JKRADCommand;
class JKRAramBlock;
class JSUFileInputStream;
diff --git a/include/JSystem/JKernel/JKRDvdRipper.h b/include/JSystem/JKernel/JKRDvdRipper.h
index 21f068e3dd..2afe449fb2 100644
--- a/include/JSystem/JKernel/JKRDvdRipper.h
+++ b/include/JSystem/JKernel/JKRDvdRipper.h
@@ -1,7 +1,7 @@
#ifndef JKRDVDRIPPER_H
#define JKRDVDRIPPER_H
-#include "JSystem/JKernel/JKRDecomp.h"
+#include "JSystem/JKernel/JKRCompression.h"
#include "dolphin/types.h"
enum JKRExpandSwitch {
diff --git a/include/JSystem/JKernel/JKRHeap.h b/include/JSystem/JKernel/JKRHeap.h
index 4d8f196f90..c12504d42f 100644
--- a/include/JSystem/JKernel/JKRHeap.h
+++ b/include/JSystem/JKernel/JKRHeap.h
@@ -2,7 +2,7 @@
#define JKRHEAP_H
#include "JSystem/JKernel/JKRDisposer.h"
-#include "dolphin/os/OS.h"
+#include "dolphin/os/OSMutex.h"
#include "dolphin/types.h"
class JKRHeap;
diff --git a/include/JSystem/JKernel/JKRThread.h b/include/JSystem/JKernel/JKRThread.h
index c4c294dcd5..12ed5241f6 100644
--- a/include/JSystem/JKernel/JKRThread.h
+++ b/include/JSystem/JKernel/JKRThread.h
@@ -4,7 +4,9 @@
#include "JSystem/JKernel/JKRDisposer.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JSupport/JSUList.h"
-#include "dolphin/os/OS.h"
+#include "dolphin/os/OSMessage.h"
+#include "dolphin/os/OSThread.h"
+#include "dolphin/os/OSTime.h"
#include "dolphin/types.h"
struct JKRThreadName_ {
@@ -13,7 +15,6 @@ struct JKRThreadName_ {
};
class JUTConsole;
-class JKRHeap;
class JKRThread : JKRDisposer {
public:
class TLoad {
diff --git a/include/JSystem/JMessage/processor.h b/include/JSystem/JMessage/processor.h
index f90f03264b..82a267bf74 100644
--- a/include/JSystem/JMessage/processor.h
+++ b/include/JSystem/JMessage/processor.h
@@ -2,7 +2,6 @@
#define JMESSAGE_PROCESSOR_H
#include "JSystem/JMessage/resource.h"
-#include "JSystem/JUtility/JUTFont.h"
#include "init.h"
namespace JMessage {
diff --git a/include/JSystem/JParticle/JPABaseShape.h b/include/JSystem/JParticle/JPABaseShape.h
index af687cbe3c..c8b6b48537 100644
--- a/include/JSystem/JParticle/JPABaseShape.h
+++ b/include/JSystem/JParticle/JPABaseShape.h
@@ -1,7 +1,8 @@
#ifndef JPABASESHAPE_H
#define JPABASESHAPE_H
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXEnum.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
class JPAEmitterWorkData;
diff --git a/include/JSystem/JParticle/JPAChildShape.h b/include/JSystem/JParticle/JPAChildShape.h
index d45b97a4e7..eaa45d0131 100644
--- a/include/JSystem/JParticle/JPAChildShape.h
+++ b/include/JSystem/JParticle/JPAChildShape.h
@@ -1,7 +1,7 @@
#ifndef JPACHILDSHAPE_H
#define JPACHILDSHAPE_H
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
struct JPAChildShapeData {
diff --git a/include/JSystem/JParticle/JPAParticle.h b/include/JSystem/JParticle/JPAParticle.h
index c8379df13e..62c4a90a87 100644
--- a/include/JSystem/JParticle/JPAParticle.h
+++ b/include/JSystem/JParticle/JPAParticle.h
@@ -1,7 +1,8 @@
#ifndef JPAPARTICLE_H
#define JPAPARTICLE_H
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXEnum.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
#include "JSystem/JGeometry.h"
diff --git a/include/JSystem/JParticle/JPAResourceManager.h b/include/JSystem/JParticle/JPAResourceManager.h
index c9ddb5c9c2..bded1482d5 100644
--- a/include/JSystem/JParticle/JPAResourceManager.h
+++ b/include/JSystem/JParticle/JPAResourceManager.h
@@ -2,7 +2,7 @@
#define JPARESOURCEMANAGER_H
#include "JSystem/JParticle/JPATexture.h"
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/types.h"
class JKRHeap;
diff --git a/include/JSystem/JParticle/JPATexture.h b/include/JSystem/JParticle/JPATexture.h
index dcb2c2ebaa..be671a9e0d 100644
--- a/include/JSystem/JParticle/JPATexture.h
+++ b/include/JSystem/JParticle/JPATexture.h
@@ -2,6 +2,7 @@
#define JPATEXTURE_H
#include "JSystem/JUtility/JUTTexture.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/types.h"
struct JPATextureData {
diff --git a/include/JSystem/JStage/JSGAmbientLight.h b/include/JSystem/JStage/JSGAmbientLight.h
index 7d0d183501..144d5af9c2 100644
--- a/include/JSystem/JStage/JSGAmbientLight.h
+++ b/include/JSystem/JStage/JSGAmbientLight.h
@@ -2,7 +2,7 @@
#define JSGAMBIENTLIGHT_H
#include "JSystem/JStage/JSGObject.h"
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXStruct.h"
namespace JStage {
struct TAmbientLight : public TObject {
diff --git a/include/JSystem/JStage/JSGFog.h b/include/JSystem/JStage/JSGFog.h
index beb8f761df..d5551cac1e 100644
--- a/include/JSystem/JStage/JSGFog.h
+++ b/include/JSystem/JStage/JSGFog.h
@@ -2,7 +2,8 @@
#define JSGFOG_H
#include "JSystem/JStage/JSGObject.h"
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXEnum.h"
+#include "dolphin/gx/GXStruct.h"
namespace JStage {
struct TFog : public TObject {
diff --git a/include/JSystem/JStage/JSGLight.h b/include/JSystem/JStage/JSGLight.h
index 7317c8845f..628e907de4 100644
--- a/include/JSystem/JStage/JSGLight.h
+++ b/include/JSystem/JStage/JSGLight.h
@@ -2,7 +2,9 @@
#define JSGLIGHT_H
#include "JSystem/JStage/JSGObject.h"
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXEnum.h"
+#include "dolphin/gx/GXStruct.h"
+#include "dolphin/mtx/vec.h"
namespace JStage {
enum TELight {};
diff --git a/include/JSystem/JStudio/JStudio/functionvalue.h b/include/JSystem/JStudio/JStudio/functionvalue.h
index 9db6ffee4f..a57f14f087 100644
--- a/include/JSystem/JStudio/JStudio/functionvalue.h
+++ b/include/JSystem/JStudio/JStudio/functionvalue.h
@@ -4,6 +4,7 @@
#include "JSystem/JGadget/search.h"
#include "JSystem/JGadget/vector.h"
#include "dolphin/types.h"
+#include "global.h"
extern u8 lit_652[];
diff --git a/include/JSystem/JStudio/JStudio/jstudio-control.h b/include/JSystem/JStudio/JStudio/jstudio-control.h
index e5c742b97f..a79ea8faea 100644
--- a/include/JSystem/JStudio/JStudio/jstudio-control.h
+++ b/include/JSystem/JStudio/JStudio/jstudio-control.h
@@ -6,6 +6,7 @@
#include "JSystem/JStudio/JStudio/stb.h"
#include "JSystem/JStudio/JStudio/ctb.h"
#include "dolphin/gx/GX.h"
+#include "dolphin/mtx/vec.h"
namespace JStudio {
struct TCreateObject {
diff --git a/include/JSystem/JStudio/JStudio/jstudio-object.h b/include/JSystem/JStudio/JStudio/jstudio-object.h
index b0da5a2045..12c6b0c8a5 100644
--- a/include/JSystem/JStudio/JStudio/jstudio-object.h
+++ b/include/JSystem/JStudio/JStudio/jstudio-object.h
@@ -5,7 +5,8 @@
#include "JSystem/JStudio/JStudio/stb.h"
#include "JSystem/JStudio/JStudio/ctb.h"
#include "JSystem/JStudio/JStudio/jstudio-control.h"
-#include "dolphin/gx/GX.h"
+
+typedef struct _GXColor GXColor;
namespace JStudio {
namespace data {
diff --git a/include/JSystem/JSupport/JSUFileStream.h b/include/JSystem/JSupport/JSUFileStream.h
index 44c3f4ed7a..4a20d8bf57 100644
--- a/include/JSystem/JSupport/JSUFileStream.h
+++ b/include/JSystem/JSupport/JSUFileStream.h
@@ -1,10 +1,11 @@
#ifndef JSUFILESTREAM_H
#define JSUFILESTREAM_H
-#include "JSystem/JKernel/JKRFile.h"
#include "JSystem/JSupport/JSURandomInputStream.h"
#include "dolphin/types.h"
+class JKRFile;
+
class JSUFileInputStream : public JSURandomInputStream {
public:
virtual ~JSUFileInputStream() {}
diff --git a/include/JSystem/JUtility/JUTCacheFont.h b/include/JSystem/JUtility/JUTCacheFont.h
index c244852aeb..f4802ad632 100644
--- a/include/JSystem/JUtility/JUTCacheFont.h
+++ b/include/JSystem/JUtility/JUTCacheFont.h
@@ -1,9 +1,12 @@
#ifndef JUTCACHEFONT_H
#define JUTCACHEFONT_H
-#include "dolphin/types.h"
#include "JSystem/JUtility/JUTResFont.h"
-#include "JSystem/JKernel/JKRAram.h"
+#include "dolphin/gx/GXEnum.h"
+#include "dolphin/types.h"
+#include "global.h"
+
+class JKRAramBlock;
class JUTCacheFont : public JUTResFont {
public:
diff --git a/include/JSystem/JUtility/JUTDbPrint.h b/include/JSystem/JUtility/JUTDbPrint.h
index 30b325183d..abb86b051c 100644
--- a/include/JSystem/JUtility/JUTDbPrint.h
+++ b/include/JSystem/JUtility/JUTDbPrint.h
@@ -1,10 +1,11 @@
#ifndef JUTDBPRINT_H
#define JUTDBPRINT_H
-#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JUtility/JUTFont.h"
#include "dolphin/types.h"
+class JKRHeap;
+
// TODO: fix struct
struct unk_print {
/* 0x00 */ unk_print* mNext;
diff --git a/include/JSystem/JUtility/JUTException.h b/include/JSystem/JUtility/JUTException.h
index e03079cd50..6fac9abae8 100644
--- a/include/JSystem/JUtility/JUTException.h
+++ b/include/JSystem/JUtility/JUTException.h
@@ -3,14 +3,18 @@
#include "JSystem/JKernel/JKRThread.h"
#include "JSystem/JSupport/JSUList.h"
-#include "JSystem/JUtility/JUTDirectPrint.h"
#include "JSystem/JUtility/JUTGamePad.h"
#include "Runtime.PPCEABI.H/__va_arg.h"
-#include "dolphin/gx/GX.h"
-#include "dolphin/os/OS.h"
+#include "dolphin/gx/GXEnum.h"
+#include "dolphin/os/OSError.h"
+#include "dolphin/os/OSMessage.h"
#include "dolphin/types.h"
#include "global.h"
+typedef struct _GXRenderModeObj GXRenderModeObj;
+typedef struct OSContext OSContext;
+class JUTDirectPrint;
+
class JUTExternalFB {
public:
/* 802E40CC */ JUTExternalFB(_GXRenderModeObj*, GXGamma, void*, u32);
diff --git a/include/JSystem/JUtility/JUTFont.h b/include/JSystem/JUtility/JUTFont.h
index 4cb04da538..dc6037c0f7 100644
--- a/include/JSystem/JUtility/JUTFont.h
+++ b/include/JSystem/JUtility/JUTFont.h
@@ -3,7 +3,6 @@
#include "JSystem/JUtility/TColor.h"
#include "MSL_C/string.h"
-#include "dolphin/gx/GX.h"
#include "dolphin/types.h"
struct ResFONT {
diff --git a/include/JSystem/JUtility/JUTGamePad.h b/include/JSystem/JUtility/JUTGamePad.h
index 707b63e2f8..322fd52aa9 100644
--- a/include/JSystem/JUtility/JUTGamePad.h
+++ b/include/JSystem/JUtility/JUTGamePad.h
@@ -3,7 +3,7 @@
#include "JSystem/JKernel/JKRDisposer.h"
#include "JSystem/JSupport/JSUList.h"
-#include "dolphin/os/OS.h"
+#include "dolphin/os/OSTime.h"
#include "dolphin/pad/Pad.h"
#include "dolphin/types.h"
diff --git a/include/JSystem/JUtility/JUTPalette.h b/include/JSystem/JUtility/JUTPalette.h
index 329ca6ff2e..9705458d01 100644
--- a/include/JSystem/JUtility/JUTPalette.h
+++ b/include/JSystem/JUtility/JUTPalette.h
@@ -1,7 +1,8 @@
#ifndef JUTPALETTE_H
#define JUTPALETTE_H
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXEnum.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
enum JUTTransparency { UNK0, UNK1 };
diff --git a/include/JSystem/JUtility/JUTProcBar.h b/include/JSystem/JUtility/JUTProcBar.h
index d5ecd5f0d1..c3edd4768e 100644
--- a/include/JSystem/JUtility/JUTProcBar.h
+++ b/include/JSystem/JUtility/JUTProcBar.h
@@ -1,10 +1,12 @@
#ifndef JUTPROCBAR_H
#define JUTPROCBAR_H
-#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JUtility/TColor.h"
+#include "dolphin/os/OSTime.h"
#include "dolphin/types.h"
+class JKRHeap;
+
class JUTProcBar {
public:
class CTime {
diff --git a/include/JSystem/JUtility/JUTResFont.h b/include/JSystem/JUtility/JUTResFont.h
index 3a7a067b46..3187947f2e 100644
--- a/include/JSystem/JUtility/JUTResFont.h
+++ b/include/JSystem/JUtility/JUTResFont.h
@@ -1,8 +1,11 @@
#ifndef JUTRESFONT_H
#define JUTRESFONT_H
-#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JUtility/JUTFont.h"
+#include "dolphin/gx/GXEnum.h"
+#include "dolphin/gx/GXStruct.h"
+
+class JKRHeap;
typedef bool (*IsLeadByte_func)(int);
diff --git a/include/JSystem/JUtility/JUTResource.h b/include/JSystem/JUtility/JUTResource.h
index 3447ca53af..3f4846caba 100644
--- a/include/JSystem/JUtility/JUTResource.h
+++ b/include/JSystem/JUtility/JUTResource.h
@@ -1,10 +1,11 @@
#ifndef JUTRESOURCE_H
#define JUTRESOURCE_H
-#include "JSystem/JKernel/JKRArchive.h"
-#include "JSystem/JSupport/JSUInputStream.h"
#include "dolphin/types.h"
+class JKRArchive;
+class JSUInputStream;
+
class JUTResReference {
private:
u8 unk_0x0[0x101];
diff --git a/include/JSystem/JUtility/JUTTexture.h b/include/JSystem/JUtility/JUTTexture.h
index c9ab2dd780..c9c179af1e 100644
--- a/include/JSystem/JUtility/JUTTexture.h
+++ b/include/JSystem/JUtility/JUTTexture.h
@@ -1,9 +1,12 @@
#ifndef JUTTEXTURE_H
#define JUTTEXTURE_H
-#include "JSystem/JUtility/JUTPalette.h"
+#include "dolphin/gx/GXEnum.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
+class JUTPalette;
+
/*
* Acts as the header to image data. Usually texture data immediately follows it,
* so any pointer arithmetic to go past the end of this structure is so that a
diff --git a/include/JSystem/JUtility/JUTVideo.h b/include/JSystem/JUtility/JUTVideo.h
index 319a8f2c7c..d031439eba 100644
--- a/include/JSystem/JUtility/JUTVideo.h
+++ b/include/JSystem/JUtility/JUTVideo.h
@@ -1,8 +1,9 @@
#ifndef JUTVIDEO_H
#define JUTVIDEO_H
-#include "dolphin/gx/GX.h"
-#include "dolphin/os/OS.h"
+#include "dolphin/gx/GXStruct.h"
+#include "dolphin/os/OSMessage.h"
+#include "dolphin/os/OSTime.h"
#include "dolphin/types.h"
#include "dolphin/vi/vi.h"
diff --git a/include/JSystem/JUtility/JUTXfb.h b/include/JSystem/JUtility/JUTXfb.h
index 5d3933cc71..2edd92761f 100644
--- a/include/JSystem/JUtility/JUTXfb.h
+++ b/include/JSystem/JUtility/JUTXfb.h
@@ -1,10 +1,12 @@
#ifndef JUTXFB_H
#define JUTXFB_H
-#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JUtility/JUTVideo.h"
#include "dolphin/types.h"
+typedef struct _GXRenderModeObj GXRenderModeObj;
+class JKRHeap;
+
class JUTXfb {
public:
enum EXfbNumber { // TODO: placeholder
diff --git a/include/JSystem/JUtility/TColor.h b/include/JSystem/JUtility/TColor.h
index 344a6cf10b..7e7e00f23f 100644
--- a/include/JSystem/JUtility/TColor.h
+++ b/include/JSystem/JUtility/TColor.h
@@ -1,7 +1,7 @@
#ifndef TCOLOR_H
#define TCOLOR_H
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
namespace JUtility {
diff --git a/include/SSystem/SComponent/c_bg_s_shdw_draw.h b/include/SSystem/SComponent/c_bg_s_shdw_draw.h
index ceb4a5e6bd..b6938b9368 100644
--- a/include/SSystem/SComponent/c_bg_s_shdw_draw.h
+++ b/include/SSystem/SComponent/c_bg_s_shdw_draw.h
@@ -3,11 +3,11 @@
#include "SSystem/SComponent/c_bg_s_chk.h"
#include "SSystem/SComponent/c_m3d_g_aab.h"
-#include "SSystem/SComponent/c_m3d_g_pla.h"
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/types.h"
struct cBgD_Vtx_t;
+class cM3dGPla;
typedef int (*cBgS_ShdwDraw_Callback)(class cBgS_ShdwDraw*, cBgD_Vtx_t*, int, int, int, cM3dGPla*);
diff --git a/include/SSystem/SComponent/c_cc_d.h b/include/SSystem/SComponent/c_cc_d.h
index 3b29c2f052..fe834acc38 100644
--- a/include/SSystem/SComponent/c_cc_d.h
+++ b/include/SSystem/SComponent/c_cc_d.h
@@ -1,16 +1,16 @@
#ifndef C_CC_D_H
#define C_CC_D_H
-#include "SSystem/SComponent/c_m3d.h"
#include "SSystem/SComponent/c_m3d_g_aab.h"
#include "SSystem/SComponent/c_m3d_g_cps.h"
#include "SSystem/SComponent/c_m3d_g_cyl.h"
#include "SSystem/SComponent/c_m3d_g_sph.h"
#include "SSystem/SComponent/c_m3d_g_tri.h"
-#include "dolphin/gx/GX.h"
-#include "f_op/f_op_actor.h"
#include "global.h"
+typedef struct _GXColor GXColor;
+class fopAc_ac_c;
+
enum CcG_Tg_HitMark {
CcG_Tg_UNK_MARK_6 = 6,
CcG_Tg_UNK_MARK_8 = 8,
diff --git a/include/SSystem/SComponent/c_cc_s.h b/include/SSystem/SComponent/c_cc_s.h
index 32c0cc8fb6..61b0f7622a 100644
--- a/include/SSystem/SComponent/c_cc_s.h
+++ b/include/SSystem/SComponent/c_cc_s.h
@@ -3,6 +3,7 @@
#include "SSystem/SComponent/c_cc_d.h"
#include "dolphin/types.h"
+#include "global.h"
enum WeightType {
WeightType_0 = 0,
diff --git a/include/SSystem/SComponent/c_list.h b/include/SSystem/SComponent/c_list.h
index aa1ae3274b..6f31efc593 100644
--- a/include/SSystem/SComponent/c_list.h
+++ b/include/SSystem/SComponent/c_list.h
@@ -1,9 +1,10 @@
#ifndef C_LIST_H
#define C_LIST_H
-#include "SSystem/SComponent/c_node.h"
#include "dolphin/types.h"
+typedef struct node_class node_class;
+
typedef struct node_list_class {
node_class* mpHead;
node_class* mpTail;
diff --git a/include/SSystem/SComponent/c_list_iter.h b/include/SSystem/SComponent/c_list_iter.h
index 39c653173c..57c544a9bf 100644
--- a/include/SSystem/SComponent/c_list_iter.h
+++ b/include/SSystem/SComponent/c_list_iter.h
@@ -1,10 +1,11 @@
#ifndef C_LIST_ITER_H
#define C_LIST_ITER_H
-#include "SSystem/SComponent/c_list.h"
#include "SSystem/SComponent/c_node_iter.h"
#include "dolphin/types.h"
+typedef struct node_list_class node_list_class;
+
int cLsIt_Method(node_list_class* pList, cNdIt_MethodFunc pMethod, void* pUserData);
void* cLsIt_Judge(node_list_class* pList, cNdIt_JudgeFunc pJudge, void* pUserData);
diff --git a/include/SSystem/SComponent/c_m3d_g_aab.h b/include/SSystem/SComponent/c_m3d_g_aab.h
index ba1a556ef1..d268ceb5d6 100644
--- a/include/SSystem/SComponent/c_m3d_g_aab.h
+++ b/include/SSystem/SComponent/c_m3d_g_aab.h
@@ -3,6 +3,7 @@
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/types.h"
+#include "global.h"
// Axis aligned bounding box
class cM3dGAab {
diff --git a/include/SSystem/SComponent/c_m3d_g_cps.h b/include/SSystem/SComponent/c_m3d_g_cps.h
index 20104043da..1454175021 100644
--- a/include/SSystem/SComponent/c_m3d_g_cps.h
+++ b/include/SSystem/SComponent/c_m3d_g_cps.h
@@ -5,6 +5,7 @@
#include "SSystem/SComponent/c_m3d_g_lin.h"
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/types.h"
+#include "global.h"
struct cM3dGCpsS {
/* 0x00 */ Vec mStart;
diff --git a/include/SSystem/SComponent/c_m3d_g_cyl.h b/include/SSystem/SComponent/c_m3d_g_cyl.h
index 12be442b34..8e8d393689 100644
--- a/include/SSystem/SComponent/c_m3d_g_cyl.h
+++ b/include/SSystem/SComponent/c_m3d_g_cyl.h
@@ -4,6 +4,7 @@
#include "SSystem/SComponent/c_m3d.h"
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/types.h"
+#include "global.h"
// Cylinder
struct cM3dGCylS {
diff --git a/include/SSystem/SComponent/c_m3d_g_sph.h b/include/SSystem/SComponent/c_m3d_g_sph.h
index cc00a53c8b..494521fa01 100644
--- a/include/SSystem/SComponent/c_m3d_g_sph.h
+++ b/include/SSystem/SComponent/c_m3d_g_sph.h
@@ -2,9 +2,11 @@
#define C_M3D_G_SPH_H_
#include "SSystem/SComponent/c_m3d.h"
-#include "SSystem/SComponent/c_m3d_g_cyl.h"
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/types.h"
+#include "global.h"
+
+class cM3dGCyl;
struct cM3dGSphS {
/* 0x0 */ Vec mCenter;
diff --git a/include/SSystem/SComponent/c_m3d_g_tri.h b/include/SSystem/SComponent/c_m3d_g_tri.h
index 5bab254ea0..24338c6582 100644
--- a/include/SSystem/SComponent/c_m3d_g_tri.h
+++ b/include/SSystem/SComponent/c_m3d_g_tri.h
@@ -2,11 +2,12 @@
#define C_M3D_G_TRI_H_
#include "SSystem/SComponent/c_m3d.h"
-#include "SSystem/SComponent/c_m3d_g_cyl.h"
#include "SSystem/SComponent/c_m3d_g_pla.h"
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/types.h"
+class cM3dGCyl;
+
class cM3dGTri : public cM3dGPla {
// private:
public:
diff --git a/include/SSystem/SComponent/c_malloc.h b/include/SSystem/SComponent/c_malloc.h
index 0732d73266..0a352b2186 100644
--- a/include/SSystem/SComponent/c_malloc.h
+++ b/include/SSystem/SComponent/c_malloc.h
@@ -1,9 +1,10 @@
#ifndef C_MALLOC_H
#define C_MALLOC_H
-#include "JSystem/JKernel/JKRHeap.h"
#include "dolphin/types.h"
+class JKRHeap;
+
struct cMl {
static JKRHeap* Heap;
/* 80263220 */ static void init(JKRHeap*);
diff --git a/include/SSystem/SComponent/c_node_iter.h b/include/SSystem/SComponent/c_node_iter.h
index c598fd96c8..92c4444296 100644
--- a/include/SSystem/SComponent/c_node_iter.h
+++ b/include/SSystem/SComponent/c_node_iter.h
@@ -1,9 +1,10 @@
#ifndef C_NODE_ITER_H
#define C_NODE_ITER_H
-#include "SSystem/SComponent/c_node.h"
#include "dolphin/types.h"
+typedef struct node_class node_class;
+
typedef int (*cNdIt_MethodFunc)(node_class* pNode, void* pUserData);
int cNdIt_Method(node_class* pNode, cNdIt_MethodFunc pMethod, void* pUserData);
diff --git a/include/SSystem/SComponent/c_request.h b/include/SSystem/SComponent/c_request.h
index 09ae61efae..c7fde53fb0 100644
--- a/include/SSystem/SComponent/c_request.h
+++ b/include/SSystem/SComponent/c_request.h
@@ -2,7 +2,6 @@
#define C_REQUEST_H
#include "dolphin/types.h"
-#include "f_pc/f_pc_base.h"
struct request_base_class {
u8 field_0x0;
diff --git a/include/SSystem/SComponent/c_tag.h b/include/SSystem/SComponent/c_tag.h
index 98296256dc..4c536cd7c5 100644
--- a/include/SSystem/SComponent/c_tag.h
+++ b/include/SSystem/SComponent/c_tag.h
@@ -1,11 +1,12 @@
#ifndef C_TAG_H
#define C_TAG_H
-#include "SSystem/SComponent/c_list.h"
#include "SSystem/SComponent/c_node.h"
-#include "SSystem/SComponent/c_tree.h"
#include "dolphin/types.h"
+typedef struct node_list_class node_list_class;
+typedef struct node_lists_tree_class node_lists_tree_class;
+
typedef struct create_tag_class {
node_class mpNode;
void* mpTagData;
diff --git a/include/SSystem/SComponent/c_tag_iter.h b/include/SSystem/SComponent/c_tag_iter.h
index b10aa3c942..3f00f5047d 100644
--- a/include/SSystem/SComponent/c_tag_iter.h
+++ b/include/SSystem/SComponent/c_tag_iter.h
@@ -2,9 +2,10 @@
#define C_TAG_ITER_H
#include "SSystem/SComponent/c_node_iter.h"
-#include "SSystem/SComponent/c_tag.h"
#include "dolphin/types.h"
+typedef struct create_tag_class create_tag_class;
+
typedef struct method_filter {
cNdIt_MethodFunc mpMethodFunc;
void* mpUserData;
diff --git a/include/SSystem/SComponent/c_tree.h b/include/SSystem/SComponent/c_tree.h
index 9edd738648..939a5e9417 100644
--- a/include/SSystem/SComponent/c_tree.h
+++ b/include/SSystem/SComponent/c_tree.h
@@ -1,10 +1,11 @@
#ifndef C_TREE_H
#define C_TREE_H
-#include "SSystem/SComponent/c_list.h"
-#include "SSystem/SComponent/c_node.h"
#include "dolphin/types.h"
+typedef struct node_class node_class;
+typedef struct node_list_class node_list_class;
+
typedef struct node_lists_tree_class {
node_list_class* mpLists;
int mNumLists;
diff --git a/include/SSystem/SComponent/c_tree_iter.h b/include/SSystem/SComponent/c_tree_iter.h
index a22151e06a..ead7c9d03b 100644
--- a/include/SSystem/SComponent/c_tree_iter.h
+++ b/include/SSystem/SComponent/c_tree_iter.h
@@ -2,9 +2,10 @@
#define C_TREE_ITER_H
#include "SSystem/SComponent/c_node_iter.h"
-#include "SSystem/SComponent/c_tree.h"
#include "dolphin/types.h"
+typedef struct node_lists_tree_class node_lists_tree_class;
+
int cTrIt_Method(node_lists_tree_class* pTree, cNdIt_MethodFunc pJudgeFunc, void* pUserData);
void* cTrIt_Judge(node_lists_tree_class* pTree, cNdIt_JudgeFunc pJudgeFunc, void* pUserData);
diff --git a/include/SSystem/SComponent/c_xyz.h b/include/SSystem/SComponent/c_xyz.h
index ada8df1193..5218f9d961 100644
--- a/include/SSystem/SComponent/c_xyz.h
+++ b/include/SSystem/SComponent/c_xyz.h
@@ -3,7 +3,6 @@
#include "MSL_C/math.h"
#include "dolphin/mtx/vec.h"
-#include "global.h"
struct cXyz : Vec {
static const cXyz Zero;
diff --git a/include/Z2AudioLib/Z2AudioMgr.h b/include/Z2AudioLib/Z2AudioMgr.h
index 9e3b540cc1..1d97542bf1 100644
--- a/include/Z2AudioLib/Z2AudioMgr.h
+++ b/include/Z2AudioLib/Z2AudioMgr.h
@@ -3,8 +3,6 @@
#include "JSystem/JAudio2/JAISound.h"
#include "JSystem/JAudio2/JASAudioReseter.h"
-#include "JSystem/JKernel/JKRArchive.h"
-#include "JSystem/JKernel/JKRSolidHeap.h"
#include "Z2AudioLib/Z2Audience.h"
#include "Z2AudioLib/Z2FxLineMgr.h"
#include "Z2AudioLib/Z2SceneMgr.h"
@@ -16,6 +14,10 @@
#include "Z2AudioLib/Z2SpeechMgr2.h"
#include "Z2AudioLib/Z2StatusMgr.h"
#include "dolphin/types.h"
+#include "global.h"
+
+class JKRArchive;
+class JKRSolidHeap;
class Z2AudioMgr {
public:
diff --git a/include/Z2AudioLib/Z2Creature.h b/include/Z2AudioLib/Z2Creature.h
index 5d4e90279d..f6dac02f0f 100644
--- a/include/Z2AudioLib/Z2Creature.h
+++ b/include/Z2AudioLib/Z2Creature.h
@@ -3,6 +3,7 @@
#include "SSystem/SComponent/c_xyz.h"
#include "Z2AudioLib/Z2SoundObject.h"
+#include "Z2AudioLib/Z2SoundStarter.h"
class Z2Creature {
public:
diff --git a/include/Z2AudioLib/Z2EnvSeMgr.h b/include/Z2AudioLib/Z2EnvSeMgr.h
index 34d04e70a5..4cf8ffd976 100644
--- a/include/Z2AudioLib/Z2EnvSeMgr.h
+++ b/include/Z2AudioLib/Z2EnvSeMgr.h
@@ -5,6 +5,7 @@
#include "Z2AudioLib/Z2Calc.h"
#include "Z2AudioLib/Z2SeMgr.h"
#include "dolphin/mtx/mtxvec.h"
+#include "global.h"
struct Z2EnvSeBase {
/* 802C589C */ Z2EnvSeBase(Vec*);
diff --git a/include/Z2AudioLib/Z2FxLineMgr.h b/include/Z2AudioLib/Z2FxLineMgr.h
index 9655f64517..ecf62b51e2 100644
--- a/include/Z2AudioLib/Z2FxLineMgr.h
+++ b/include/Z2AudioLib/Z2FxLineMgr.h
@@ -1,10 +1,11 @@
#ifndef Z2FXLINEMGR_H
#define Z2FXLINEMGR_H
-#include "JSystem/JKernel/JKRArchive.h"
-#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JAudio2/JASGadget.h"
+class JKRArchive;
+class JKRHeap;
+
struct Z2FxLineEditNode {};
struct Z2FxLineConfig {};
diff --git a/include/Z2AudioLib/Z2SeMgr.h b/include/Z2AudioLib/Z2SeMgr.h
index 3f70146733..01f18c87b0 100644
--- a/include/Z2AudioLib/Z2SeMgr.h
+++ b/include/Z2AudioLib/Z2SeMgr.h
@@ -2,6 +2,7 @@
#define Z2SEMGR_H
#include "JSystem/JAudio2/JAISound.h"
+#include "JSystem/JAudio2/JAISoundHandles.h"
#include "JSystem/JAudio2/JASGadget.h"
#include "dolphin/mtx/vec.h"
diff --git a/include/Z2AudioLib/Z2SeqMgr.h b/include/Z2AudioLib/Z2SeqMgr.h
index 97bc1fba37..acf6c3d2cf 100644
--- a/include/Z2AudioLib/Z2SeqMgr.h
+++ b/include/Z2AudioLib/Z2SeqMgr.h
@@ -2,6 +2,7 @@
#define Z2SEQMGR_H
#include "JSystem/JAudio2/JAISound.h"
+#include "JSystem/JAudio2/JAISoundHandles.h"
#include "JSystem/JAudio2/JASGadget.h"
// move TTransition / Z2SoundFader ?
diff --git a/include/Z2AudioLib/Z2SoundHandles.h b/include/Z2AudioLib/Z2SoundHandles.h
index 8e43695b6e..94a6f84fff 100644
--- a/include/Z2AudioLib/Z2SoundHandles.h
+++ b/include/Z2AudioLib/Z2SoundHandles.h
@@ -2,6 +2,7 @@
#define Z2SOUNDHANDLES_H
#include "JSystem/JAudio2/JAISound.h"
+#include "JSystem/JAudio2/JAISoundHandles.h"
#include "JSystem/JSupport/JSUList.h"
#include "dolphin/types.h"
diff --git a/include/Z2AudioLib/Z2SoundMgr.h b/include/Z2AudioLib/Z2SoundMgr.h
index 1aadd884f0..852acaf94f 100644
--- a/include/Z2AudioLib/Z2SoundMgr.h
+++ b/include/Z2AudioLib/Z2SoundMgr.h
@@ -6,6 +6,7 @@
#include "JSystem/JAudio2/JAISound.h"
#include "JSystem/JAudio2/JAIStreamMgr.h"
#include "JSystem/JAudio2/JASGadget.h"
+#include "global.h"
class Z2SoundMgr : public JASGlobalInstance<Z2SoundMgr> {
public:
diff --git a/include/Z2AudioLib/Z2SoundObjMgr.h b/include/Z2AudioLib/Z2SoundObjMgr.h
index 8dcf45feee..048fbd46d3 100644
--- a/include/Z2AudioLib/Z2SoundObjMgr.h
+++ b/include/Z2AudioLib/Z2SoundObjMgr.h
@@ -3,7 +3,8 @@
#include "JSystem/JAudio2/JASGadget.h"
#include "JSystem/JSupport/JSUList.h"
-#include "Z2AudioLib/Z2Creature.h"
+
+class Z2CreatureEnemy;
class Z2SoundObjMgr : protected JSUList<Z2CreatureEnemy>, public JASGlobalInstance<Z2SoundObjMgr> {
public:
diff --git a/include/Z2AudioLib/Z2SoundObject.h b/include/Z2AudioLib/Z2SoundObject.h
index c6bc6a1d90..80f42ea4c2 100644
--- a/include/Z2AudioLib/Z2SoundObject.h
+++ b/include/Z2AudioLib/Z2SoundObject.h
@@ -2,10 +2,11 @@
#define Z2SOUNDOBJECT_H
#include "Z2AudioLib/Z2SoundHandles.h"
-#include "Z2AudioLib/Z2SoundStarter.h"
#include "dolphin/mtx/mtxvec.h"
#include "dolphin/types.h"
+struct Z2SoundStarter;
+
struct JAUSoundAnimationSound {};
class Z2SoundObjBase : protected Z2SoundHandles {
diff --git a/include/Z2AudioLib/Z2SpeechMgr2.h b/include/Z2AudioLib/Z2SpeechMgr2.h
index 89480ee049..a262c768bf 100644
--- a/include/Z2AudioLib/Z2SpeechMgr2.h
+++ b/include/Z2AudioLib/Z2SpeechMgr2.h
@@ -6,6 +6,7 @@
#include "JSystem/JMath/random.h"
#include "Z2AudioLib/Z2SoundStarter.h"
#include "dolphin/mtx/vec.h"
+#include "global.h"
struct Z2SpeechStarter : public Z2SoundStarter {
/* 802CCFB8 */ Z2SpeechStarter();
diff --git a/include/Z2AudioLib/Z2StatusMgr.h b/include/Z2AudioLib/Z2StatusMgr.h
index d23b25485b..4c8e248b26 100644
--- a/include/Z2AudioLib/Z2StatusMgr.h
+++ b/include/Z2AudioLib/Z2StatusMgr.h
@@ -1,8 +1,8 @@
#ifndef Z2STATUSMGR_H
#define Z2STATUSMGR_H
-#include "dolphin/mtx/vec.h"
#include "JSystem/JAudio2/JASGadget.h"
+#include "dolphin/mtx/vec.h"
struct Z2StatusMgr : public JASGlobalInstance<Z2StatusMgr> {
Z2StatusMgr();
diff --git a/include/Z2AudioLib/Z2WolfHowlMgr.h b/include/Z2AudioLib/Z2WolfHowlMgr.h
index 8696774a5b..4851637fae 100644
--- a/include/Z2AudioLib/Z2WolfHowlMgr.h
+++ b/include/Z2AudioLib/Z2WolfHowlMgr.h
@@ -2,7 +2,7 @@
#define Z2WOLFHOWLMGR_H
#include "JSystem/JAudio2/JASGadget.h"
-#include "Z2AudioLib/Z2SoundObject.h"
+#include "JSystem/JAudio2/JAISoundHandles.h"
#include "dolphin/types.h"
/*
diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h
index d05a1591c6..f918ad216a 100644
--- a/include/d/a/d_a_alink.h
+++ b/include/d/a/d_a_alink.h
@@ -3,35 +3,38 @@
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
#include "JSystem/J3DGraphBase/J3DMatBlock.h"
+#include "JSystem/JParticle/JPAParticle.h"
#include "Z2AudioLib/Z2Creature.h"
#include "Z2AudioLib/Z2WolfHowlMgr.h"
#include "d/a/d_a_player.h"
-#include "d/bg/d_bg_s.h"
+#include "d/bg/d_bg_s_acch.h"
+#include "d/bg/d_bg_s_lin_chk.h"
+#include "d/bg/d_bg_w_base.h"
#include "d/cc/d_cc_d.h"
-#include "d/cc/d_cc_mass_s.h"
#include "d/d_attention.h"
-#include "d/d_drawlist.h"
#include "d/d_eye_hl.h"
#include "d/d_jnt_col.h"
-#include "d/kankyo/d_kankyo.h"
#include "d/meter/d_meter2_info.h"
#include "d/msg/d_msg_flow.h"
#include "d/particle/d_particle.h"
#include "d/particle/d_particle_copoly.h"
+#include "d/save/d_save.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
-#include "f_op/f_op_scene.h"
+#include "global.h"
#include "rel/d/a/kytag/d_a_kytag05/d_a_kytag05.h"
#include "rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h"
-class fopEn_enemy_c;
-class daAlinkHIO_anm_c;
-class J3DAnmTevRegKey;
-class dDemo_actor_c;
-class daScex_c;
+class J2DAnmColorKey;
+class J2DAnmTransformKey;
class J2DScreen;
class J2DPane;
class J2DAnmBase;
+class J3DAnmTevRegKey;
+class dDemo_actor_c;
+class daAlinkHIO_anm_c;
+class daScex_c;
+class fopEn_enemy_c;
class daAlink_lockCursor_c : public dDlst_base_c {
public:
diff --git a/include/d/a/d_a_horse_static.h b/include/d/a/d_a_horse_static.h
index d2b4f4223b..a9918b7af2 100644
--- a/include/d/a/d_a_horse_static.h
+++ b/include/d/a/d_a_horse_static.h
@@ -2,7 +2,7 @@
#define D_A_D_A_HORSE_STATIC_H
#include "dolphin/types.h"
-#include "rel/d/a/e/d_a_e_wb/d_a_e_wb.h"
+#include "f_op/f_op_actor.h"
class daTagHstop_c : public fopAc_ac_c {
public:
diff --git a/include/d/a/d_a_item_static.h b/include/d/a/d_a_item_static.h
index 16b521d874..9a19d3e2e1 100644
--- a/include/d/a/d_a_item_static.h
+++ b/include/d/a/d_a_item_static.h
@@ -2,9 +2,10 @@
#define D_A_D_A_ITEM_STATIC_H
#include "SSystem/SComponent/c_lib.h"
+#include "Z2AudioLib/Z2SoundObject.h"
#include "dolphin/types.h"
#include "d/a/d_a_itembase.h"
-#include "d/a/d_a_itembase_static.h"
+#include "d/cc/d_cc_d.h"
#include "d/particle/d_particle.h"
class daItem_c;
diff --git a/include/d/a/d_a_itembase_static.h b/include/d/a/d_a_itembase_static.h
index 3c7f96b55d..d44917a789 100644
--- a/include/d/a/d_a_itembase_static.h
+++ b/include/d/a/d_a_itembase_static.h
@@ -1,9 +1,10 @@
#ifndef D_A_D_A_ITEMBASE_STATIC_H
#define D_A_D_A_ITEMBASE_STATIC_H
-#include "d/a/d_a_itembase.h"
#include "dolphin/types.h"
+class fopAc_ac_c;
+
void CheckFieldItemCreateHeap(fopAc_ac_c* actor);
#endif /* D_A_D_A_ITEMBASE_STATIC_H */
diff --git a/include/d/a/d_a_npc.h b/include/d/a/d_a_npc.h
index a904b9e7b7..40620561ef 100644
--- a/include/d/a/d_a_npc.h
+++ b/include/d/a/d_a_npc.h
@@ -1,9 +1,12 @@
#ifndef D_A_D_A_NPC_H
#define D_A_D_A_NPC_H
+#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
+#include "Z2AudioLib/Z2Creature.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_path.h"
-#include "d/msg/d_msg_object.h"
+#include "d/msg/d_msg_flow.h"
+#include "d/particle/d_particle_copoly.h"
#include "dolphin/types.h"
#include "global.h"
diff --git a/include/d/a/d_a_obj_ss_base.h b/include/d/a/d_a_obj_ss_base.h
index 29bf74248a..2c25613874 100644
--- a/include/d/a/d_a_obj_ss_base.h
+++ b/include/d/a/d_a_obj_ss_base.h
@@ -1,7 +1,7 @@
#ifndef A_OBJ_D_A_OBJ_SS_BASE_H
#define A_OBJ_D_A_OBJ_SS_BASE_H
-#include "f_op/f_op_actor_mng.h"
+#include "f_op/f_op_actor.h"
class daObj_SSBase_c : public fopAc_ac_c {
public:
diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h
index 34b0ea5b88..ede65e9781 100644
--- a/include/d/a/d_a_player.h
+++ b/include/d/a/d_a_player.h
@@ -1,16 +1,12 @@
#ifndef D_A_D_A_PLAYER_H
#define D_A_D_A_PLAYER_H
-#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
-#include "JSystem/JUtility/JUTTexture.h"
-#include "SSystem/SComponent/c_bg_s_poly_info.h"
#include "d/d_drawlist.h"
-#include "d/d_resorce.h"
-#include "d/d_stage.h"
-#include "d/save/d_save.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
+struct ResTIMG;
+
class daPy_sightPacket_c : public dDlst_base_c {
public:
daPy_sightPacket_c() {}
diff --git a/include/d/bg/d_bg_plc.h b/include/d/bg/d_bg_plc.h
index fde627bb51..208448c179 100644
--- a/include/d/bg/d_bg_plc.h
+++ b/include/d/bg/d_bg_plc.h
@@ -1,9 +1,10 @@
#ifndef D_BG_D_BG_PLC_H
#define D_BG_D_BG_PLC_H
-#include "d/bg/d_bg_pc.h"
#include "dolphin/types.h"
+struct sBgPc;
+
enum {
/* 0x14 */ ZELDA_CODE_SIZE = 0x14
};
diff --git a/include/d/bg/d_bg_s.h b/include/d/bg/d_bg_s.h
index b2a7e66f56..befe2aed02 100644
--- a/include/d/bg/d_bg_s.h
+++ b/include/d/bg/d_bg_s.h
@@ -4,9 +4,12 @@
#include "SSystem/SComponent/c_bg_s_gnd_chk.h"
#include "SSystem/SComponent/c_bg_s_lin_chk.h"
#include "SSystem/SComponent/c_bg_s_poly_info.h"
-#include "d/bg/d_bg_w.h"
+#include "d/bg/d_bg_w_base.h"
#include "dolphin/types.h"
-#include "f_op/f_op_actor.h"
+#include "global.h"
+
+class dBgW;
+class fopAc_ac_c;
class cBgS_ChkElm {
public:
diff --git a/include/d/bg/d_bg_s_acch.h b/include/d/bg/d_bg_s_acch.h
index b2b4210101..8088837a38 100644
--- a/include/d/bg/d_bg_s_acch.h
+++ b/include/d/bg/d_bg_s_acch.h
@@ -6,13 +6,12 @@
#include "SSystem/SComponent/c_m3d_g_cyl.h"
#include "SSystem/SComponent/c_m3d_g_lin.h"
#include "SSystem/SComponent/c_m3d_g_pla.h"
-#include "d/a/d_a_player.h"
#include "d/bg/d_bg_s_gnd_chk.h"
-#include "d/bg/d_bg_s_lin_chk.h"
#include "d/bg/d_bg_s_roof_chk.h"
#include "d/bg/d_bg_s_wtr_chk.h"
#include "dolphin/types.h"
-//#include "d/bg/d_bg_s.h"
+
+class fopAc_ac_c;
class dBgS_AcchCir : public cBgS_PolyInfo {
private:
diff --git a/include/d/bg/d_bg_s_lin_chk.h b/include/d/bg/d_bg_s_lin_chk.h
index e00cb38caf..3b39c15779 100644
--- a/include/d/bg/d_bg_s_lin_chk.h
+++ b/include/d/bg/d_bg_s_lin_chk.h
@@ -4,7 +4,8 @@
#include "SSystem/SComponent/c_bg_s_lin_chk.h"
#include "d/bg/d_bg_s_chk.h"
#include "dolphin/types.h"
-#include "f_op/f_op_actor.h"
+
+class fopAc_ac_c;
class dBgS_LinChk : public cBgS_LinChk, public dBgS_Chk {
public:
diff --git a/include/d/bg/d_bg_s_movebg_actor.h b/include/d/bg/d_bg_s_movebg_actor.h
index 5393f1dff1..0623dd94e2 100644
--- a/include/d/bg/d_bg_s_movebg_actor.h
+++ b/include/d/bg/d_bg_s_movebg_actor.h
@@ -2,8 +2,8 @@
#define D_BG_D_BG_S_MOVEBG_ACTOR_H
#include "SSystem/SComponent/c_bg_s_poly_info.h"
-#include "d/bg/d_bg_w.h"
#include "dolphin/types.h"
+#include "f_op/f_op_actor.h"
class dBgW;
typedef void (*MoveBGActor_SetFunc)(dBgW*, void*, cBgS_PolyInfo const&, bool, cXyz*, csXyz*,
diff --git a/include/d/bg/d_bg_s_sph_chk.h b/include/d/bg/d_bg_s_sph_chk.h
index dfe60878d4..d6ed2b4712 100644
--- a/include/d/bg/d_bg_s_sph_chk.h
+++ b/include/d/bg/d_bg_s_sph_chk.h
@@ -1,6 +1,7 @@
#ifndef D_BG_D_BG_S_SPH_CHK_H
#define D_BG_D_BG_S_SPH_CHK_H
+#include "SSystem/SComponent/c_bg_s_chk.h"
#include "SSystem/SComponent/c_bg_s_poly_info.h"
#include "SSystem/SComponent/c_m3d_g_pla.h"
#include "SSystem/SComponent/c_m3d_g_sph.h"
diff --git a/include/d/bg/d_bg_w.h b/include/d/bg/d_bg_w.h
index e1b161626c..c2c9f23210 100644
--- a/include/d/bg/d_bg_w.h
+++ b/include/d/bg/d_bg_w.h
@@ -1,17 +1,15 @@
#ifndef D_BG_D_BG_W_H
#define D_BG_D_BG_W_H
-#include "JSystem/J3DGraphBase/J3DVertex.h"
-#include "SSystem/SComponent/c_bg_s_gnd_chk.h"
-#include "SSystem/SComponent/c_bg_s_lin_chk.h"
-#include "SSystem/SComponent/c_bg_s_poly_info.h"
-#include "SSystem/SComponent/c_m3d_g_tri.h"
-#include "d/bg/d_bg_s_acch.h"
-#include "d/bg/d_bg_s_grp_pass_chk.h"
-#include "d/bg/d_bg_s_poly_pass_chk.h"
+#include "SSystem/SComponent/c_m3d_g_aab.h"
+#include "SSystem/SComponent/c_m3d_g_pla.h"
#include "d/bg/d_bg_w_base.h"
+#include "dolphin/mtx/mtx.h"
#include "dolphin/types.h"
-#include "f_op/f_op_actor.h"
+
+class cBgS_GrpPassChk;
+class cBgS_PolyPassChk;
+class fopAc_ac_c;
struct dBgS_CaptPoly {};
diff --git a/include/d/bg/d_bg_w_base.h b/include/d/bg/d_bg_w_base.h
index d18386aeea..264af2e2e2 100644
--- a/include/d/bg/d_bg_w_base.h
+++ b/include/d/bg/d_bg_w_base.h
@@ -1,17 +1,20 @@
#ifndef D_BG_D_BG_W_BASE_H
#define D_BG_D_BG_W_BASE_H
-#include "SSystem/SComponent/c_bg_s_gnd_chk.h"
-#include "SSystem/SComponent/c_bg_s_lin_chk.h"
#include "SSystem/SComponent/c_bg_s_poly_info.h"
-#include "SSystem/SComponent/c_bg_s_shdw_draw.h"
#include "SSystem/SComponent/c_bg_w.h"
-#include "d/bg/d_bg_s_acch.h"
-#include "d/bg/d_bg_s_sph_chk.h"
+#include "SSystem/SComponent/c_m3d_g_pla.h"
#include "dolphin/types.h"
-#include "f_op/f_op_actor.h"
+class cBgS_GndChk;
+class cBgS_LinChk;
+class cBgS_ShdwDraw;
+class dBgS_Acch;
struct dBgS_CaptPoly;
+class dBgS_RoofChk;
+class dBgS_SphChk;
+class dBgS_SplGrpChk;
+class fopAc_ac_c;
class dBgW_Base : public cBgW_BgId {
public:
diff --git a/include/d/bg/d_bg_w_kcol.h b/include/d/bg/d_bg_w_kcol.h
index b3dee70ba3..12c5f303cc 100644
--- a/include/d/bg/d_bg_w_kcol.h
+++ b/include/d/bg/d_bg_w_kcol.h
@@ -1,10 +1,14 @@
#ifndef D_BG_D_BG_W_KCOL_H
#define D_BG_D_BG_W_KCOL_H
+#include "SSystem/SComponent/c_m3d_g_aab.h"
#include "d/bg/d_bg_plc.h"
#include "d/bg/d_bg_w_base.h"
#include "dolphin/types.h"
+class cBgS_GrpPassChk;
+class cBgS_PolyPassChk;
+struct dBgPc;
struct dBgS_CaptPoly;
struct KC_PrismData {
diff --git a/include/d/cc/d_cc_mass_s.h b/include/d/cc/d_cc_mass_s.h
index 9a0a0ec2cb..f420a789dd 100644
--- a/include/d/cc/d_cc_mass_s.h
+++ b/include/d/cc/d_cc_mass_s.h
@@ -3,6 +3,7 @@
#include "SSystem/SComponent/c_cc_d.h"
#include "dolphin/types.h"
+#include "global.h"
typedef void (*dCcMassS_ObjCallback)(fopAc_ac_c*, cXyz*, u32);
diff --git a/include/d/cc/d_cc_s.h b/include/d/cc/d_cc_s.h
index 7ad3000abe..d43a28bd5a 100644
--- a/include/d/cc/d_cc_s.h
+++ b/include/d/cc/d_cc_s.h
@@ -2,9 +2,12 @@
#define D_CC_D_CC_S_H
#include "SSystem/SComponent/c_cc_s.h"
-#include "d/cc/d_cc_d.h"
#include "d/cc/d_cc_mass_s.h"
#include "dolphin/types.h"
+#include "global.h"
+
+class dCcD_GObjInf;
+class dCcD_GStts;
class dCcS : public cCcS {
public:
diff --git a/include/d/cc/d_cc_uty.h b/include/d/cc/d_cc_uty.h
index 3e5cf8256a..7cab514f07 100644
--- a/include/d/cc/d_cc_uty.h
+++ b/include/d/cc/d_cc_uty.h
@@ -3,7 +3,8 @@
#include "d/com/d_com_inf_game.h"
#include "dolphin/types.h"
-#include "f_op/f_op_actor.h"
+
+class fopAc_ac_c;
enum dCcU_AtType {
/* 0x01 */ HIT_TYPE_LINK_NORMAL_ATTACK = 1,
diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h
index 88e1846ab2..852e262cdd 100644
--- a/include/d/com/d_com_inf_game.h
+++ b/include/d/com/d_com_inf_game.h
@@ -1,14 +1,11 @@
#ifndef D_COM_D_COM_INF_GAME_H
#define D_COM_D_COM_INF_GAME_H
-#include "d/a/d_a_alink.h"
#include "d/bg/d_bg_s.h"
#include "d/cc/d_cc_s.h"
#include "d/d_attention.h"
#include "d/d_drawlist.h"
-#include "d/d_procname.h"
#include "d/d_resorce.h"
-#include "d/d_simple_model.h"
#include "d/d_stage.h"
#include "d/d_vibration.h"
#include "d/event/d_event.h"
@@ -16,9 +13,13 @@
#include "d/particle/d_particle.h"
#include "d/save/d_save.h"
#include "f_op/f_op_camera_mng.h"
-#include "f_op/f_op_scene_mng.h"
+#include "global.h"
+class JKRAramArchive;
+class dSmplMdl_draw_c;
class dTimer_c;
+class daPy_py_c;
+class scene_class;
class __d_timer_info_c {
public:
diff --git a/include/d/d_attention.h b/include/d/d_attention.h
index ccf6630703..bb4782e1fd 100644
--- a/include/d/d_attention.h
+++ b/include/d/d_attention.h
@@ -2,11 +2,12 @@
#define D_D_ATTENTION_H
#include "SSystem/SComponent/c_angle.h"
-#include "d/a/d_a_player.h"
-#include "d/save/d_save.h"
#include "dolphin/types.h"
+#include "global.h"
#include "m_Do/m_Do_ext.h"
+class fopAc_ac_c;
+
class dAttHint_c {
public:
dAttHint_c() {}
diff --git a/include/d/d_bomb.h b/include/d/d_bomb.h
index 9b1760d693..e24ae1b0c8 100644
--- a/include/d/d_bomb.h
+++ b/include/d/d_bomb.h
@@ -3,6 +3,7 @@
#include "Z2AudioLib/Z2SoundObject.h"
#include "d/bg/d_bg_s_acch.h"
+#include "d/bg/d_bg_s_lin_chk.h"
#include "d/cc/d_cc_d.h"
#include "d/kankyo/d_kankyo.h"
#include "f_op/f_op_actor_mng.h"
diff --git a/include/d/d_camera.h b/include/d/d_camera.h
index 08c4fe7396..e379c716c7 100644
--- a/include/d/d_camera.h
+++ b/include/d/d_camera.h
@@ -5,10 +5,11 @@
#include "SSystem/SComponent/c_xyz.h"
#include "d/bg/d_bg_s_lin_chk.h"
#include "d/bg/d_bg_s_gnd_chk.h"
+#include "d/d_cam_param.h"
+#include "d/d_drawlist.h"
#include "d/d_stage.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
-#include "d/d_drawlist.h"
-#include "d/d_cam_param.h"
class fopAc_ac_c;
diff --git a/include/d/d_demo.h b/include/d/d_demo.h
index 82d79c0b63..2099bdb0b9 100644
--- a/include/d/d_demo.h
+++ b/include/d/d_demo.h
@@ -2,7 +2,6 @@
#define D_D_DEMO_H
#include "JSystem/JGadget/binary.h"
-#include "JSystem/JMessage/control.h"
#include "JSystem/JStage/JSGAmbientLight.h"
#include "JSystem/JStage/JSGCamera.h"
#include "JSystem/JStage/JSGFog.h"
@@ -11,13 +10,20 @@
#include "JSystem/JStudio/JStudio_JAudio2/control.h"
#include "JSystem/JStudio/JStudio_JParticle/object-particle.h"
#include "JSystem/JStudio/JStudio_JStage/object.h"
-#include "f_op/f_op_actor.h"
+#include "SSystem/SComponent/c_sxyz.h"
+#include "SSystem/SComponent/c_xyz.h"
+#include "dolphin/gx/GXEnum.h"
+#include "dolphin/gx/GXStruct.h"
+class J3DModel;
class dDemo_actor_c;
class dDemo_camera_c;
class dDemo_ambient_c;
class dDemo_light_c;
class dDemo_fog_c;
+class fopAc_ac_c;
+struct jmessage_tControl;
+
class dDemo_object_c {
public:
/* 80038F54 */ dDemo_object_c();
diff --git a/include/d/d_door_param2.h b/include/d/d_door_param2.h
index 0ae93871b8..398af65311 100644
--- a/include/d/d_door_param2.h
+++ b/include/d/d_door_param2.h
@@ -1,7 +1,9 @@
#ifndef D_D_DOOR_PARAM2_H
#define D_D_DOOR_PARAM2_H
-#include "f_op/f_op_actor_mng.h"
+#include "dolphin/types.h"
+
+class fopAc_ac_c;
class door_param2_c {
public:
diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h
index 1a7f1f00dc..5443d858f0 100644
--- a/include/d/d_drawlist.h
+++ b/include/d/d_drawlist.h
@@ -2,18 +2,21 @@
#define D_D_DRAWLIST_H
#include "JSystem/J2DGraph/J2DPicture.h"
-#include "JSystem/J2DGraph/J2DScreen.h"
-#include "JSystem/J3DGraphAnimator/J3DModel.h"
-#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
-#include "JSystem/J3DGraphBase/J3DPacket.h"
#include "SSystem/SComponent/c_m3d_g_pla.h"
#include "SSystem/SComponent/c_xyz.h"
-#include "d/kankyo/d_kankyo.h"
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXStruct.h"
+#include "dolphin/mtx/mtx.h"
#include "dolphin/mtx/mtx44.h"
-#include "dolphin/mtx/mtxvec.h"
#include "dolphin/types.h"
#include "f_op/f_op_view.h"
+#include "m_Do/m_Do_ext.h"
+#include "global.h"
+
+class J3DDrawBuffer;
+class J3DModel;
+class J3DPacket;
+class JUTFont;
+class dKy_tevstr_c;
class cM_rnd_c {
public:
diff --git a/include/d/d_eye_hl.h b/include/d/d_eye_hl.h
index 2976dfc113..dffddb10ac 100644
--- a/include/d/d_eye_hl.h
+++ b/include/d/d_eye_hl.h
@@ -1,10 +1,10 @@
#ifndef D_D_EYE_HL_H
#define D_D_EYE_HL_H
-#include "JSystem/J3DGraphAnimator/J3DModelData.h"
-#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
-#include "JSystem/JUtility/JUTTexture.h"
+#include "dolphin/types.h"
+class J3DModelData;
+struct ResTIMG;
class dEyeHL_c;
class dEyeHL_mng_c {
diff --git a/include/d/d_gameover.h b/include/d/d_gameover.h
index c3935e8159..80efa1f995 100644
--- a/include/d/d_gameover.h
+++ b/include/d/d_gameover.h
@@ -3,6 +3,7 @@
#include "SSystem/SComponent/c_phase.h"
#include "d/menu/d_menu_save.h"
+#include "dolphin/gx/GXStruct.h"
#include "f_op/f_op_msg.h"
#include "f_op/f_op_msg_mng.h"
#include "m_Do/m_Do_hostIO.h"
diff --git a/include/d/d_item.h b/include/d/d_item.h
index cab6dcbc38..cb9e78cdab 100644
--- a/include/d/d_item.h
+++ b/include/d/d_item.h
@@ -1,7 +1,6 @@
#ifndef D_D_ITEM_H
#define D_D_ITEM_H
-#include "d/com/d_com_inf_game.h"
#include "dolphin/types.h"
void execItemGet(u8 item_id);
diff --git a/include/d/d_jnt_col.h b/include/d/d_jnt_col.h
index 9e2ccfbc21..ac4717885d 100644
--- a/include/d/d_jnt_col.h
+++ b/include/d/d_jnt_col.h
@@ -3,8 +3,11 @@
#include "JSystem/J3DGraphAnimator/J3DModel.h"
#include "SSystem/SComponent/c_m3d_g_lin.h"
+#include "SSystem/SComponent/c_sxyz.h"
+#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/types.h"
-#include "f_op/f_op_actor.h"
+
+class fopAc_ac_c;
class dJntColData_c {
public:
diff --git a/include/d/d_kantera_icon_meter.h b/include/d/d_kantera_icon_meter.h
index ad0a52cf4b..5ddd37ec7a 100644
--- a/include/d/d_kantera_icon_meter.h
+++ b/include/d/d_kantera_icon_meter.h
@@ -1,11 +1,11 @@
#ifndef D_D_KANTERA_ICON_METER_H
#define D_D_KANTERA_ICON_METER_H
-#include "d/com/d_com_inf_game.h"
#include "d/d_drawlist.h"
-#include "d/pane/d_pane_class.h"
#include "dolphin/types.h"
+class CPaneMgr;
+
class dDlst_KanteraIcon_c : public dDlst_base_c {
public:
/* 801AECB8 */ virtual void draw();
diff --git a/include/d/d_ky_thunder.h b/include/d/d_ky_thunder.h
index ab099ac2a0..a66794cd09 100644
--- a/include/d/d_ky_thunder.h
+++ b/include/d/d_ky_thunder.h
@@ -1,10 +1,11 @@
#ifndef D_D_KY_THUNDER_H
#define D_D_KY_THUNDER_H
-#include "JSystem/JKernel/JKRSolidHeap.h"
#include "f_op/f_op_kankyo.h"
#include "m_Do/m_Do_ext.h"
+class JKRSolidHeap;
+
class dThunder_modelInfo_c {
public:
/* 0x00 */ J3DModel* mpModel;
diff --git a/include/d/d_lib.h b/include/d/d_lib.h
index 3c8f01c5cf..dddaaa9c5c 100644
--- a/include/d/d_lib.h
+++ b/include/d/d_lib.h
@@ -1,9 +1,11 @@
#ifndef D_D_LIB_H
#define D_D_LIB_H
+#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/mtx/quat.h"
-#include "dolphin/os/OS.h"
-#include "f_op/f_op_actor.h"
+#include "dolphin/os/OSTime.h"
+
+class fopAc_ac_c;
struct JKRAramArchive;
u32 dLib_getExpandSizeFromAramArchive(JKRAramArchive* arc, char const* resName);
diff --git a/include/d/d_model.h b/include/d/d_model.h
index 690dd1b570..2a68d5bf39 100644
--- a/include/d/d_model.h
+++ b/include/d/d_model.h
@@ -1,9 +1,12 @@
#ifndef D_D_MODEL_H
#define D_D_MODEL_H
-#include "d/com/d_com_inf_game.h"
+#include "JSystem/J3DGraphBase/J3DPacket.h"
#include "dolphin/types.h"
+class J3DModelData;
+class dKy_tevstr_c;
+
class dMdl_obj_c {
public:
MtxP getMtx() { return mMtx; }
diff --git a/include/d/d_name.h b/include/d/d_name.h
index b2a4101efd..d2150301ec 100644
--- a/include/d/d_name.h
+++ b/include/d/d_name.h
@@ -1,9 +1,18 @@
#ifndef D_D_NAME_H
#define D_D_NAME_H
-#include "d/com/d_com_inf_game.h"
+#include "d/d_drawlist.h"
#include "dolphin/types.h"
+class CPaneMgr;
+class CPaneMgrAlpha;
+class J2DAnmColorKey;
+class J2DAnmTextureSRTKey;
+class J2DTextBox;
+class JUTFont;
+struct STControl;
+class dSelect_cursor_c;
+
class dNm_HIO_c {
public:
/* 8024E3E0 */ dNm_HIO_c();
diff --git a/include/d/d_path.h b/include/d/d_path.h
index e7f58a88cd..96a51bd243 100644
--- a/include/d/d_path.h
+++ b/include/d/d_path.h
@@ -1,9 +1,11 @@
#ifndef D_D_PATH_H
#define D_D_PATH_H
-#include "d/d_stage.h"
+#include "dolphin/types.h"
-class dStage_dPnt_c;
+class cBgS_PolyInfo;
+struct cXyz;
+struct dStage_dPnt_c;
struct dPath {
/* 0x0 */ u16 m_num;
diff --git a/include/d/d_resorce.h b/include/d/d_resorce.h
index 1af4ce76bf..a8bd1b0dbb 100644
--- a/include/d/d_resorce.h
+++ b/include/d/d_resorce.h
@@ -1,13 +1,16 @@
#ifndef D_D_RESORCE_H
#define D_D_RESORCE_H
-#include "JSystem/JKernel/JKRArchive.h"
-#include "JSystem/JKernel/JKRHeap.h"
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/types.h"
+#include "global.h"
#include "m_Do/m_Do_dvd_thread.h"
#include "m_Do/m_Do_ext.h"
+class JKRArchive;
+class JKRHeap;
+class JKRSolidHeap;
+
class dRes_info_c {
public:
/* 8003A260 */ dRes_info_c();
diff --git a/include/d/d_select_cursor.h b/include/d/d_select_cursor.h
index 7c9d372d35..8d08fe368b 100644
--- a/include/d/d_select_cursor.h
+++ b/include/d/d_select_cursor.h
@@ -6,6 +6,8 @@
#include "d/d_drawlist.h"
#include "d/d_select_icon.h"
+class J2DAnmTransformKey;
+
class dSelect_cursorHIO_c {
public:
/* 801941E4 */ dSelect_cursorHIO_c();
diff --git a/include/d/d_simple_model.h b/include/d/d_simple_model.h
index 72ff3a98aa..04477ea16c 100644
--- a/include/d/d_simple_model.h
+++ b/include/d/d_simple_model.h
@@ -2,9 +2,10 @@
#define D_D_SIMPLE_MODEL_H
#include "JSystem/J3DGraphAnimator/J3DModel.h"
-#include "JSystem/JKernel/JKRSolidHeap.h"
#include "dolphin/types.h"
+class JKRSolidHeap;
+
class modelList_c {
public:
void init() {
diff --git a/include/d/d_spline_path.h b/include/d/d_spline_path.h
index b03f0c83ab..49d8c5aaf2 100644
--- a/include/d/d_spline_path.h
+++ b/include/d/d_spline_path.h
@@ -1,8 +1,10 @@
#ifndef D_D_SPLINE_PATH_H
#define D_D_SPLINE_PATH_H
+#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/types.h"
-#include "d/d_path.h"
+
+struct dPath;
struct dPathCurve {
/* 80097C5C */ void Init(dPath*);
diff --git a/include/d/d_stage.h b/include/d/d_stage.h
index daf9f20a8d..77a8dd91c8 100644
--- a/include/d/d_stage.h
+++ b/include/d/d_stage.h
@@ -1,13 +1,16 @@
#ifndef D_D_STAGE_H
#define D_D_STAGE_H
-#include "JSystem/JKernel/JKRExpHeap.h"
#include "SSystem/SComponent/c_lib.h"
#include "d/kankyo/d_kankyo.h"
#include "d/kankyo/d_kankyo_data.h"
#include "d/save/d_save.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
-#include "f_op/f_op_actor.h"
+#include "f_pc/f_pc_priority.h"
+#include "global.h"
+
+class JKRExpHeap;
struct stage_vrboxcol_info_class {
// VRB
diff --git a/include/d/d_timer.h b/include/d/d_timer.h
index 397de45ce7..d1eff06749 100644
--- a/include/d/d_timer.h
+++ b/include/d/d_timer.h
@@ -2,13 +2,17 @@
#define D_D_TIMER_H
#include "JSystem/J2DGraph/J2DPane.h"
-#include "JSystem/JKernel/JKRExpHeap.h"
#include "SSystem/SComponent/c_phase.h"
#include "SSystem/SComponent/c_xyz.h"
-#include "f_op/f_op_msg.h"
+#include "d/d_drawlist.h"
#include "d/msg/d_msg_object.h"
#include "dolphin/os/OSTime.h"
#include "dolphin/types.h"
+#include "f_op/f_op_msg.h"
+
+class CPaneMgr;
+class JKRArchive;
+class JKRExpHeap;
s32 dTimer_createStockTimer();
s32 dTimer_createTimer(s32 param_0, u32 param_1, u8 param_2, u8 param_3, f32 param_4, f32 param_5,
diff --git a/include/d/d_tresure.h b/include/d/d_tresure.h
index b8feddbd26..cd6232c2a9 100644
--- a/include/d/d_tresure.h
+++ b/include/d/d_tresure.h
@@ -1,7 +1,7 @@
#ifndef D_D_TRESURE_H
#define D_D_TRESURE_H
-#include "dolphin/mtx/mtxvec.h"
+#include "dolphin/mtx/vec.h"
#include "dolphin/types.h"
class dTres_c {
diff --git a/include/d/d_vibration.h b/include/d/d_vibration.h
index 26543a574a..2bc721a34d 100644
--- a/include/d/d_vibration.h
+++ b/include/d/d_vibration.h
@@ -1,7 +1,7 @@
#ifndef D_D_VIBRATION_H
#define D_D_VIBRATION_H
-#include "d/save/d_save.h"
+#include "SSystem/SComponent/c_xyz.h"
#include "d/d_vib_pattern.h"
#include "dolphin/types.h"
diff --git a/include/d/event/d_event.h b/include/d/event/d_event.h
index 56662ebb1e..6fdd117143 100644
--- a/include/d/event/d_event.h
+++ b/include/d/event/d_event.h
@@ -2,11 +2,11 @@
#define D_EVENT_D_EVENT_H
#include "d/a/d_a_itembase.h"
-#include "d/a/d_a_player.h"
-#include "d/d_stage.h"
-#include "d/event/d_event_manager.h"
-#include "d/save/d_save.h"
#include "dolphin/types.h"
+#include "global.h"
+
+struct dStage_MapEvent_dt_c;
+class fopAc_ac_c;
#if DEBUG
class dEvDb_bit_c {
diff --git a/include/d/event/d_event_data.h b/include/d/event/d_event_data.h
index 1b2d413e90..acf2561210 100644
--- a/include/d/event/d_event_data.h
+++ b/include/d/event/d_event_data.h
@@ -1,9 +1,9 @@
#ifndef D_EVENT_D_EVENT_DATA_H
#define D_EVENT_D_EVENT_DATA_H
-#include "d/d_stage.h"
-#include "f_op/f_op_msg.h"
-#include "d/save/d_save.h"
+#include "global.h"
+
+class msg_class;
struct event_binary_data_header {
/* 0x00 */ u32 eventTop; // offset to Event chunk
diff --git a/include/d/event/d_event_lib.h b/include/d/event/d_event_lib.h
index 5019a47c0a..7dc9f688c0 100644
--- a/include/d/event/d_event_lib.h
+++ b/include/d/event/d_event_lib.h
@@ -2,7 +2,8 @@
#define D_EVENT_D_EVENT_LIB_H
#include "dolphin/types.h"
-#include "f_op/f_op_actor.h"
+
+class fopAc_ac_c;
template <typename A0>
struct action_class {
diff --git a/include/d/event/d_event_manager.h b/include/d/event/d_event_manager.h
index 1d8177b925..3993688b76 100644
--- a/include/d/event/d_event_manager.h
+++ b/include/d/event/d_event_manager.h
@@ -1,9 +1,12 @@
#ifndef D_EVENT_D_EVENT_MANAGER_H
#define D_EVENT_D_EVENT_MANAGER_H
+#include "SSystem/SComponent/c_xyz.h"
#include "d/event/d_event_data.h"
#include "dolphin/types.h"
+class fopAc_ac_c;
+
class dEvent_exception_c {
public:
dEvent_exception_c() { mEventInfoIdx = -1; }
diff --git a/include/d/file/d_file_sel_info.h b/include/d/file/d_file_sel_info.h
index ac5a790d69..060b90517f 100644
--- a/include/d/file/d_file_sel_info.h
+++ b/include/d/file/d_file_sel_info.h
@@ -1,9 +1,12 @@
#ifndef D_FILE_D_FILE_SEL_INFO_H
#define D_FILE_D_FILE_SEL_INFO_H
-#include "d/com/d_com_inf_game.h"
+#include "d/d_drawlist.h"
#include "dolphin/types.h"
+class CPaneMgrAlpha;
+class dSv_save_c;
+
class dFile_info_c {
public:
/* 80192434 */ dFile_info_c(JKRArchive*, u8);
diff --git a/include/d/file/d_file_sel_warning.h b/include/d/file/d_file_sel_warning.h
index 8353dcdc79..d347b7ee86 100644
--- a/include/d/file/d_file_sel_warning.h
+++ b/include/d/file/d_file_sel_warning.h
@@ -1,7 +1,9 @@
#ifndef D_FILE_D_FILE_SEL_WARNING_H
#define D_FILE_D_FILE_SEL_WARNING_H
-#include "d/com/d_com_inf_game.h"
+#include "JSystem/JUtility/TColor.h"
+
+class JKRArchive;
class dFile_warning_c {
public:
diff --git a/include/d/file/d_file_select.h b/include/d/file/d_file_select.h
index f223124fcc..b1113c2011 100644
--- a/include/d/file/d_file_select.h
+++ b/include/d/file/d_file_select.h
@@ -2,13 +2,24 @@
#define D_FILE_D_FILE_SELECT_H
#include "dolphin/types.h"
-#include "d/com/d_com_inf_game.h"
-#include "m_Do/m_Do_MemCard.h"
-#include "d/file/d_file_sel_warning.h"
-#include "d/d_name.h"
-#include "d/msg/d_msg_string.h"
-#include "JSystem/J3DGraphLoader/J3DModelLoader.h"
-#include "JSystem/J3DGraphLoader/J3DAnmLoader.h"
+#include "global.h"
+
+class CPaneMgr;
+class CPaneMgrAlpha;
+class J2DAnmBase;
+class J2DAnmTransform;
+class J2DPane;
+class J2DPicture;
+class J2DScreen;
+class JKRArchive;
+class JUTFont;
+struct STControl;
+struct cXyz;
+class dFile_warning_c;
+class dMsgString_c;
+class dName_c;
+class dSelect_cursor_c;
+class dSv_save_c;
class dDlst_FileSel_c {
public:
diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h
index f9ca7ce440..6daa055ab8 100644
--- a/include/d/kankyo/d_kankyo.h
+++ b/include/d/kankyo/d_kankyo.h
@@ -1,17 +1,16 @@
#ifndef D_KANKYO_D_KANKYO_H
#define D_KANKYO_D_KANKYO_H
-#include "JSystem/J3DGraphAnimator/J3DModelData.h"
#include "JSystem/J3DGraphBase/J3DStruct.h"
-#include "JSystem/JParticle/JPAParticle.h"
#include "SSystem/SComponent/c_sxyz.h"
#include "SSystem/SComponent/c_xyz.h"
-#include "Z2AudioLib/Z2EnvSeMgr.h"
#include "d/kankyo/d_kankyo_wether.h"
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
+#include "global.h"
#include "m_Do/m_Do_ext.h"
+class JPABaseEmitter;
class cBgS_PolyInfo;
void dKankyo_DayProc();
diff --git a/include/d/kankyo/d_kankyo_wether.h b/include/d/kankyo/d_kankyo_wether.h
index f0f443fad2..2a99d418b5 100644
--- a/include/d/kankyo/d_kankyo_wether.h
+++ b/include/d/kankyo/d_kankyo_wether.h
@@ -4,6 +4,7 @@
#include "JSystem/J3DGraphBase/J3DPacket.h"
#include "SSystem/SComponent/c_sxyz.h"
#include "SSystem/SComponent/c_xyz.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
void dKyw_wether_draw();
diff --git a/include/d/map/d_map_path.h b/include/d/map/d_map_path.h
index 670b172441..2d0fef74e1 100644
--- a/include/d/map/d_map_path.h
+++ b/include/d/map/d_map_path.h
@@ -3,6 +3,7 @@
#include "d/d_drawlist.h"
#include "dolphin/types.h"
+#include "global.h"
class dDrawPath_c : public dDlst_base_c {
public:
diff --git a/include/d/map/d_map_path_dmap.h b/include/d/map/d_map_path_dmap.h
index 957afae8b6..08af8253fb 100644
--- a/include/d/map/d_map_path_dmap.h
+++ b/include/d/map/d_map_path_dmap.h
@@ -1,11 +1,13 @@
#ifndef D_MAP_D_MAP_PATH_DMAP_H
#define D_MAP_D_MAP_PATH_DMAP_H
-#include "d/d_stage.h"
#include "d/d_tresure.h"
#include "d/map/d_map_path.h"
#include "dolphin/types.h"
+class dStage_FileList2_dt_c;
+struct stage_tgsc_data_class;
+
class dMpath_c {
public:
/* 8003F758 */ static bool isExistMapPathData();
diff --git a/include/d/menu/d_menu_calibration.h b/include/d/menu/d_menu_calibration.h
index a937a01e51..4498fa3195 100644
--- a/include/d/menu/d_menu_calibration.h
+++ b/include/d/menu/d_menu_calibration.h
@@ -1,8 +1,12 @@
#ifndef D_MENU_D_MENU_CALIBRATION_H
#define D_MENU_D_MENU_CALIBRATION_H
-#include "d/com/d_com_inf_game.h"
-#include "d/msg/d_msg_string.h"
+#include "JSystem/J2DGraph/J2DTextBox.h"
+
+class CPaneMgr;
+class JKRExpHeap;
+class dMsgString_c;
+class dSelect_cursor_c;
class dMenu_Calibration_c {
public:
diff --git a/include/d/menu/d_menu_collect.h b/include/d/menu/d_menu_collect.h
index 264ffd7a1d..26ca21fb31 100644
--- a/include/d/menu/d_menu_collect.h
+++ b/include/d/menu/d_menu_collect.h
@@ -1,11 +1,13 @@
#ifndef D_MENU_D_MENU_COLLECT_H
#define D_MENU_D_MENU_COLLECT_H
-#include "JSystem/J2DGraph/J2DPicture.h"
-#include "d/d_lib.h"
-#include "d/d_select_cursor.h"
+#include "d/d_drawlist.h"
+#include "d/kankyo/d_kankyo.h"
#include "dolphin/types.h"
+class CPaneMgr;
+struct CSTControl;
+struct STControl;
class dMsgString_c;
class dMenu_save_c;
class dMenu_Option_c;
@@ -13,6 +15,7 @@ class dMenu_Letter_c;
class dMenu_Fishing_c;
class dMenu_Skill_c;
class dMenu_Insect_c;
+class dSelect_cursor_c;
class dMenu_Collect2D_c;
class dMenu_Collect2DTop_c : public dDlst_base_c {
diff --git a/include/d/menu/d_menu_dmap.h b/include/d/menu/d_menu_dmap.h
index 1bef68c63e..1b65c12d92 100644
--- a/include/d/menu/d_menu_dmap.h
+++ b/include/d/menu/d_menu_dmap.h
@@ -1,11 +1,18 @@
#ifndef D_MENU_D_MENU_DMAP_H
#define D_MENU_D_MENU_DMAP_H
-#include "JSystem/J2DGraph/J2DOrthoGraph.h"
-#include "d/d_lib.h"
#include "d/d_select_cursor.h"
+#include "dolphin/mtx/vec.h"
#include "dolphin/types.h"
+class CPaneMgr;
+struct CSTControl;
+class J2DOrthoGraph;
+class J2DPicture;
+class J2DScreen;
+class JKRArchive;
+class JKRExpHeap;
+struct STControl;
class dMenu_DmapMapCtrl_c;
class dMenu_DmapBg_c;
class mDoDvdThd_mountArchive_c;
diff --git a/include/d/menu/d_menu_fishing.h b/include/d/menu/d_menu_fishing.h
index a1f99185f6..45e2d7057d 100644
--- a/include/d/menu/d_menu_fishing.h
+++ b/include/d/menu/d_menu_fishing.h
@@ -1,14 +1,15 @@
#ifndef D_MENU_D_MENU_FISHING_H
#define D_MENU_D_MENU_FISHING_H
-#include "JSystem/J2DGraph/J2DPicture.h"
-#include "d/d_lib.h"
-#include "d/d_select_cursor.h"
+#include "d/d_drawlist.h"
#include "dolphin/types.h"
-#include "m_Do/m_Do_dvd_thread.h"
-#include "d/msg/d_msg_string.h"
-
+class CPaneMgr;
+struct CSTControl;
+class J2DTextBox;
+struct STControl;
+class dMsgString_c;
+class mDoDvdThd_mountArchive_c;
class dMenu_Fishing_c : public dDlst_base_c {
public:
diff --git a/include/d/menu/d_menu_fmap.h b/include/d/menu/d_menu_fmap.h
index fdd4e1228f..4b9dd93418 100644
--- a/include/d/menu/d_menu_fmap.h
+++ b/include/d/menu/d_menu_fmap.h
@@ -1,12 +1,16 @@
#ifndef D_MENU_D_MENU_FMAP_H
#define D_MENU_D_MENU_FMAP_H
-#include "d/d_drawlist.h"
-#include "d/d_lib.h"
+#include "SSystem/SComponent/c_xyz.h"
#include "d/msg/d_msg_flow.h"
-#include "d/pane/d_pane_class.h"
#include "dolphin/types.h"
+struct CSTControl;
+class J2DAnmTextureSRTKey;
+class JKRArchive;
+class JKRExpHeap;
+class JKRHeap;
+struct STControl;
class dMenu_Fmap_stage_data_c;
class dMenu_Fmap_world_data_c;
class dMenu_Fmap_region_data_c;
diff --git a/include/d/menu/d_menu_insect.h b/include/d/menu/d_menu_insect.h
index 40cc9ebf3f..5ae137e84c 100644
--- a/include/d/menu/d_menu_insect.h
+++ b/include/d/menu/d_menu_insect.h
@@ -1,13 +1,16 @@
#ifndef D_MENU_D_MENU_INSECT_H
#define D_MENU_D_MENU_INSECT_H
-#include "JSystem/J2DGraph/J2DPicture.h"
-#include "d/d_lib.h"
-#include "d/d_select_cursor.h"
+#include "d/d_drawlist.h"
#include "dolphin/types.h"
+class CPaneMgr;
+struct CSTControl;
+class J2DTextBox;
+struct STControl;
class dMsgScrn3Select_c;
class dMsgString_c;
+class dSelect_cursor_c;
class dMenu_Insect_c : public dDlst_base_c {
public:
diff --git a/include/d/menu/d_menu_letter.h b/include/d/menu/d_menu_letter.h
index f4c553562b..efe88ea01a 100644
--- a/include/d/menu/d_menu_letter.h
+++ b/include/d/menu/d_menu_letter.h
@@ -1,14 +1,17 @@
#ifndef D_MENU_D_MENU_LETTER_H
#define D_MENU_D_MENU_LETTER_H
-#include "JSystem/J2DGraph/J2DPicture.h"
-#include "d/d_lib.h"
-#include "d/d_select_cursor.h"
+#include "d/d_drawlist.h"
#include "dolphin/types.h"
+class CPaneMgr;
+struct CSTControl;
+class J2DTextBox;
+struct STControl;
class mDoDvdThd_mountArchive_c;
class dMsgString_c;
class dMsgScrnArrow_c;
+class dSelect_cursor_c;
class dMenu_Letter_c : public dDlst_base_c {
public:
diff --git a/include/d/menu/d_menu_option.h b/include/d/menu/d_menu_option.h
index 7018bc7526..666de957c5 100644
--- a/include/d/menu/d_menu_option.h
+++ b/include/d/menu/d_menu_option.h
@@ -1,16 +1,20 @@
#ifndef D_MENU_D_MENU_OPTION_H
#define D_MENU_D_MENU_OPTION_H
-#include "JSystem/J2DGraph/J2DPicture.h"
-#include "d/d_lib.h"
-#include "d/d_select_cursor.h"
+#include "d/d_drawlist.h"
#include "dolphin/types.h"
+class CPaneMgr;
+struct CSTControl;
+class J2DTextBox;
+class JUTFont;
+struct STControl;
class dFile_warning_c;
class dMenu_Calibration_c;
class mDoDvdThd_mountArchive_c;
class dMsgString_c;
class dMeterHaihai_c;
+class dSelect_cursor_c;
class dMenu_Option_c : public dDlst_base_c {
public:
diff --git a/include/d/menu/d_menu_ring.h b/include/d/menu/d_menu_ring.h
index fe7cd2e8a2..3d1e87f07a 100644
--- a/include/d/menu/d_menu_ring.h
+++ b/include/d/menu/d_menu_ring.h
@@ -1,14 +1,17 @@
#ifndef D_MENU_D_MENU_RING_H
#define D_MENU_D_MENU_RING_H
-#include "JSystem/J2DGraph/J2DPicture.h"
-#include "d/d_lib.h"
-#include "d/d_select_cursor.h"
+#include "d/d_drawlist.h"
#include "dolphin/types.h"
-class dMsgString_c;
+class CPaneMgr;
+struct CSTControl;
+class J2DTextBox;
+struct STControl;
class dKantera_icon_c;
+class dMsgString_c;
class dMenu_ItemExplain_c;
+class dSelect_cursor_c;
class dMenu_Ring_c : public dDlst_base_c {
public:
diff --git a/include/d/menu/d_menu_save.h b/include/d/menu/d_menu_save.h
index 201cb0a27b..e57da5ec3a 100644
--- a/include/d/menu/d_menu_save.h
+++ b/include/d/menu/d_menu_save.h
@@ -1,17 +1,23 @@
#ifndef D_MENU_D_MENU_SAVE_H
#define D_MENU_D_MENU_SAVE_H
-#include "JSystem/J2DGraph/J2DScreen.h"
-#include "d/d_lib.h"
-#include "d/d_select_cursor.h"
+#include "d/d_drawlist.h"
#include "dolphin/types.h"
-#include "m_Do/m_Do_dvd_thread.h"
#include "d/save/d_save.h"
+class CPaneMgr;
+class CPaneMgrAlpha;
+struct CSTControl;
+class J2DAnmColorKey;
+class J2DAnmTransformKey;
+class JUTFont;
+struct STControl;
class dMsgString_c;
class dFile_warning_c;
class dFile_info_c;
class dMsgScrnExplain_c;
+class dSelect_cursor_c;
+class mDoDvdThd_mountArchive_c;
class dDlst_MenuSaveExplain_c : public dDlst_base_c {
public:
diff --git a/include/d/menu/d_menu_skill.h b/include/d/menu/d_menu_skill.h
index 62a1f7a7d5..eb46672d0a 100644
--- a/include/d/menu/d_menu_skill.h
+++ b/include/d/menu/d_menu_skill.h
@@ -1,13 +1,16 @@
#ifndef D_MENU_D_MENU_SKILL_H
#define D_MENU_D_MENU_SKILL_H
-#include "JSystem/J2DGraph/J2DPicture.h"
-#include "d/d_lib.h"
-#include "d/d_select_cursor.h"
+#include "d/d_drawlist.h"
#include "dolphin/types.h"
+class CPaneMgr;
+struct CSTControl;
+class J2DTextBox;
+struct STControl;
class mDoDvdThd_mountArchive_c;
class dMsgString_c;
+class dSelect_cursor_c;
class dMenu_Skill_c : public dDlst_base_c {
public:
diff --git a/include/d/menu/d_menu_window.h b/include/d/menu/d_menu_window.h
index 0713418675..ac7cebce94 100644
--- a/include/d/menu/d_menu_window.h
+++ b/include/d/menu/d_menu_window.h
@@ -2,17 +2,22 @@
#define D_MENU_D_MENU_WINDOW_H
#include "d/d_drawlist.h"
-#include "d/menu/d_menu_collect.h"
-#include "d/meter/d_meter2_info.h"
#include "f_op/f_op_msg.h"
#include "dolphin/types.h"
-#include "m_Do/m_Do_controller_pad.h"
#include "m_Do/m_Do_graphic.h"
-#include "m_Do/m_Do_mtx.h"
-class dMenu_Ring_c;
+struct CSTControl;
+struct STControl;
+class dMenu_Collect_c;
class dMenu_Dmap_c;
+class dMenu_Fishing_c;
class dMenu_Fmap_c;
+class dMenu_Insect_c;
+class dMenu_Letter_c;
+class dMenu_Option_c;
+class dMenu_Ring_c;
+class dMenu_Skill_c;
+class dMenu_save_c;
class dDlst_MENU_CAPTURE_c : public dDlst_base_c {
public:
diff --git a/include/d/meter/d_meter2.h b/include/d/meter/d_meter2.h
index 087143a594..e705ccdfee 100644
--- a/include/d/meter/d_meter2.h
+++ b/include/d/meter/d_meter2.h
@@ -1,13 +1,17 @@
#ifndef D_METER_D_METER2_H
#define D_METER_D_METER2_H
-#include "JSystem/JKernel/JKRExpHeap.h"
-#include "d/com/d_com_inf_game.h"
-#include "d/meter/d_meter2_draw.h"
-#include "d/meter/d_meter_map.h"
+#include "d/d_drawlist.h"
#include "f_op/f_op_msg.h"
#include "dolphin/types.h"
+class CPaneMgr;
+class J2DAnmColor;
+class J2DAnmTextureSRTKey;
+class J2DAnmTransformKey;
+class JKRExpHeap;
+class JKRHeap;
+class dMeter2Draw_c;
class dMeterMap_c;
class dMeterSub_c : public dDlst_base_c {
diff --git a/include/d/meter/d_meter2_draw.h b/include/d/meter/d_meter2_draw.h
index 30676db42a..c1bc990ed5 100644
--- a/include/d/meter/d_meter2_draw.h
+++ b/include/d/meter/d_meter2_draw.h
@@ -1,14 +1,17 @@
#ifndef D_METER_D_METER2_DRAW_H
#define D_METER_D_METER2_DRAW_H
-#include "JSystem/J2DGraph/J2DAnimation.h"
-#include "JSystem/J2DGraph/J2DPicture.h"
-#include "JSystem/JKernel/JKRExpHeap.h"
#include "JSystem/JUtility/TColor.h"
#include "d/d_drawlist.h"
-#include "d/pane/d_pane_class.h"
#include "dolphin/types.h"
+class CPaneMgr;
+class CPaneMgrAlpha;
+class J2DAnmColorKey;
+class J2DAnmTransformKey;
+class JKRExpHeap;
+class JKRHeap;
+
enum dMeter2Draw_actionFlag {
/* 0x0 */ ACTION_FLG_DEFAULT,
/* 0x2 */ ACTION_FLG_EMPHASIS = 2,
diff --git a/include/d/meter/d_meter2_info.h b/include/d/meter/d_meter2_info.h
index 27a9d90192..4948d7b061 100644
--- a/include/d/meter/d_meter2_info.h
+++ b/include/d/meter/d_meter2_info.h
@@ -1,14 +1,12 @@
#ifndef D_METER_D_METER2_INFO_H
#define D_METER_D_METER2_INFO_H
-#include "JSystem/JUtility/JUTTexture.h"
-#include "d/d_resorce.h"
-#include "d/menu/d_menu_window.h"
-#include "d/meter/d_meter2.h"
-#include "d/msg/d_msg_class.h"
-#include "d/msg/d_msg_flow.h"
-#include "d/pane/d_pane_class.h"
-#include "f_op/f_op_actor.h"
+#include "SSystem/SComponent/c_xyz.h"
+
+class CPaneMgr;
+class J2DTextBox;
+class JMSMesgEntry_c;
+class JUTFont;
struct dMenu_LetterData {
u16 mSubject;
diff --git a/include/d/meter/d_meter_HIO.h b/include/d/meter/d_meter_HIO.h
index d58a06ecf4..01b77684e7 100644
--- a/include/d/meter/d_meter_HIO.h
+++ b/include/d/meter/d_meter_HIO.h
@@ -1,12 +1,13 @@
#ifndef D_METER_D_METER_HIO_H
#define D_METER_D_METER_HIO_H
-#include "JSystem/JKernel/JKRArchive.h"
#include "JSystem/JUtility/TColor.h"
#include "SSystem/SComponent/c_sxyz.h"
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/types.h"
-#include "m_Do/m_Do_ext.h"
+#include "global.h"
+
+class JKRArchive;
class dMeter_menuHIO_c {
public:
diff --git a/include/d/meter/d_meter_map.h b/include/d/meter/d_meter_map.h
index 33b0e506b1..dfdfea6e71 100644
--- a/include/d/meter/d_meter_map.h
+++ b/include/d/meter/d_meter_map.h
@@ -1,11 +1,11 @@
#ifndef D_METER_D_METER_MAP_H
#define D_METER_D_METER_MAP_H
-#include "JSystem/J2DGraph/J2DPicture.h"
-#include "JSystem/J2DGraph/J2DScreen.h"
#include "d/map/d_map_path_dmap.h"
#include "dolphin/types.h"
+class J2DPicture;
+
// move renderingAmap_c + dMap_c later
class renderingAmap_c : public renderingPlusDoorAndCursor_c {
public:
diff --git a/include/d/msg/d_msg_class.h b/include/d/msg/d_msg_class.h
index 1b04e9eaf8..ebd33b7940 100644
--- a/include/d/msg/d_msg_class.h
+++ b/include/d/msg/d_msg_class.h
@@ -3,8 +3,11 @@
#include "JSystem/JMessage/control.h"
#include "JSystem/JMessage/processor.h"
-#include "d/msg/d_msg_out_font.h"
-#include "f_op/f_op_msg.h"
+#include "SSystem/SComponent/c_xyz.h"
+
+class COutFont_c;
+class J2DTextBox;
+class JUTFont;
struct JMSMesgEntry_c {
/* 0x00 */ u32 mStringOffset;
diff --git a/include/d/msg/d_msg_flow.h b/include/d/msg/d_msg_flow.h
index 4e975d941b..6ea756bba7 100644
--- a/include/d/msg/d_msg_flow.h
+++ b/include/d/msg/d_msg_flow.h
@@ -1,7 +1,10 @@
#ifndef D_MSG_D_MSG_FLOW_H
#define D_MSG_D_MSG_FLOW_H
-#include "f_op/f_op_msg.h"
+#include "dolphin/types.h"
+
+class fopAc_ac_c;
+class msg_class;
// all mesg_flow_node structs members might be wrong
struct mesg_flow_node {
diff --git a/include/d/msg/d_msg_object.h b/include/d/msg/d_msg_object.h
index e82c0ecc33..99642f6463 100644
--- a/include/d/msg/d_msg_object.h
+++ b/include/d/msg/d_msg_object.h
@@ -1,15 +1,19 @@
#ifndef D_MSG_D_MSG_OBJECT_H
#define D_MSG_D_MSG_OBJECT_H
-#include "JSystem/J2DGraph/J2DTextBox.h"
#include "JSystem/JMessage/control.h"
-#include "JSystem/JMessage/processor.h"
#include "JSystem/JMessage/resource.h"
#include "d/com/d_com_inf_game.h"
-#include "d/msg/d_msg_class.h"
+#include "f_op/f_op_msg.h"
class COutFont_c;
+class J2DTextBox;
+class JUTFont;
class dMsgScrnBase_c;
+class dMsgString_c;
+struct jmessage_tReference;
+struct jmessage_tRenderingProcessor;
+struct jmessage_tSequenceProcessor;
class dMsgObject_c : public msg_class {
public:
diff --git a/include/d/msg/d_msg_out_font.h b/include/d/msg/d_msg_out_font.h
index e11307c730..5f55372c14 100644
--- a/include/d/msg/d_msg_out_font.h
+++ b/include/d/msg/d_msg_out_font.h
@@ -2,8 +2,9 @@
#define D_MSG_D_MSG_OUT_FONT_H
#include "dolphin/types.h"
-#include "JSystem/J2DGraph/J2DTextBox.h"
-#include "JSystem/J2DGraph/J2DPicture.h"
+
+class J2DPicture;
+class J2DTextBox;
class COutFontSet_c {
public:
diff --git a/include/d/msg/d_msg_string.h b/include/d/msg/d_msg_string.h
index d9943b8384..09ea58b379 100644
--- a/include/d/msg/d_msg_string.h
+++ b/include/d/msg/d_msg_string.h
@@ -2,7 +2,9 @@
#define D_MSG_D_MSG_STRING_H
#include "d/msg/d_msg_string_base.h"
-#include "d/msg/d_msg_out_font.h"
+
+class COutFont_c;
+class JUTFont;
class dMsgString_c : public dMsgStringBase_c {
public:
diff --git a/include/d/msg/d_msg_string_base.h b/include/d/msg/d_msg_string_base.h
index 0dcb053c29..838a7dbe66 100644
--- a/include/d/msg/d_msg_string_base.h
+++ b/include/d/msg/d_msg_string_base.h
@@ -1,8 +1,11 @@
#ifndef D_MSG_D_MSG_STRING_BASE_H
#define D_MSG_D_MSG_STRING_BASE_H
-#include "d/msg/d_msg_object.h"
+#include "JSystem/JMessage/resource.h"
+class COutFont_c;
+class J2DTextBox;
+class JUTFont;
struct jmessage_string_tControl;
struct jmessage_string_tReference;
struct jmessage_string_tSequenceProcessor;
diff --git a/include/d/pane/d_pane_class.h b/include/d/pane/d_pane_class.h
index 3265b1268e..1a6f716e9e 100644
--- a/include/d/pane/d_pane_class.h
+++ b/include/d/pane/d_pane_class.h
@@ -1,7 +1,7 @@
#ifndef D_PANE_D_PANE_CLASS_H
#define D_PANE_D_PANE_CLASS_H
-#include "JSystem/J2DGraph/J2DTextBox.h"
+#include "JSystem/JUtility/TColor.h"
#include "d/pane/d_pane_class_alpha.h"
#include "dolphin/types.h"
diff --git a/include/d/pane/d_pane_class_alpha.h b/include/d/pane/d_pane_class_alpha.h
index 79c67f6bf4..1ad577ef13 100644
--- a/include/d/pane/d_pane_class_alpha.h
+++ b/include/d/pane/d_pane_class_alpha.h
@@ -1,11 +1,13 @@
#ifndef D_PANE_D_PANE_CLASS_ALPHA_H
#define D_PANE_D_PANE_CLASS_ALPHA_H
-#include "JSystem/J2DGraph/J2DScreen.h"
-#include "JSystem/J2DGraph/J2DWindow.h"
-#include "JSystem/JKernel/JKRExpHeap.h"
+#include "JSystem/J2DGraph/J2DPane.h"
#include "dolphin/types.h"
+class J2DPane;
+class J2DScreen;
+class JKRExpHeap;
+
class CPaneMgrAlpha {
public:
/* 8025546C */ virtual ~CPaneMgrAlpha();
diff --git a/include/d/particle/d_particle.h b/include/d/particle/d_particle.h
index 94fd475066..0214eba663 100644
--- a/include/d/particle/d_particle.h
+++ b/include/d/particle/d_particle.h
@@ -2,9 +2,18 @@
#define D_PARTICLE_D_PARTICLE_H
#include "JSystem/JParticle/JPAParticle.h"
-#include "d/particle/d_particle_name.h"
+#include "SSystem/SComponent/c_sxyz.h"
+#include "SSystem/SComponent/c_xyz.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
-#include "f_op/f_op_actor.h"
+
+class J3DAnmTexPattern;
+class J3DModel;
+class J3DModelData;
+class JKRExpHeap;
+class JKRSolidHeap;
+class dKy_tevstr_c;
+class fopAc_ac_c;
class dPa_levelEcallBack : public JPAEmitterCallBack {
public:
diff --git a/include/d/particle/d_particle_copoly.h b/include/d/particle/d_particle_copoly.h
index 6364c0bee7..9919f70aa7 100644
--- a/include/d/particle/d_particle_copoly.h
+++ b/include/d/particle/d_particle_copoly.h
@@ -1,9 +1,11 @@
#ifndef D_PARTICLE_D_PARTICLE_COPOLY_H
#define D_PARTICLE_D_PARTICLE_COPOLY_H
-#include "d/bg/d_bg_s_acch.h"
+#include "SSystem/SComponent/c_sxyz.h"
+#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/types.h"
+class dBgS_Acch;
struct dKy_tevstr_c;
class dPaPo_c {
diff --git a/include/d/s/d_s_logo.h b/include/d/s/d_s_logo.h
index 8acfd8a38c..9f6502979c 100644
--- a/include/d/s/d_s_logo.h
+++ b/include/d/s/d_s_logo.h
@@ -1,9 +1,16 @@
#ifndef D_S_D_S_LOGO_H
#define D_S_D_S_LOGO_H
-#include "d/com/d_com_inf_game.h"
+#include "SSystem/SComponent/c_phase.h"
#include "dolphin/types.h"
-#include "SSystem/SComponent/c_lib.h"
+#include "f_op/f_op_scene.h"
+
+class JKRExpHeap;
+class JKRHeap;
+struct ResTIMG;
+class dDlst_2D_c;
+class mDoDvdThd_mountXArchive_c;
+class mDoDvdThd_toMainRam_c;
class dLog_HIO_c {
public:
diff --git a/include/d/s/d_s_play.h b/include/d/s/d_s_play.h
index 299e70f85f..1c85842d72 100644
--- a/include/d/s/d_s_play.h
+++ b/include/d/s/d_s_play.h
@@ -1,10 +1,14 @@
#ifndef D_S_D_S_PLAY_H
#define D_S_D_S_PLAY_H
-#include "d/com/d_com_inf_game.h"
+#include "SSystem/SComponent/c_phase.h"
+#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/types.h"
#include "f_op/f_op_scene.h"
+class mDoDvdThd_mountXArchive_c;
+class mDoDvdThd_toMainRam_c;
+
class dScnPly_reg_HIO_c {
public:
/* 8025AD78 */ virtual ~dScnPly_reg_HIO_c();
diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h
index 8acbe2582c..fa3f80cdea 100644
--- a/include/d/save/d_save.h
+++ b/include/d/save/d_save.h
@@ -3,8 +3,9 @@
#include "MSL_C/string.h"
#include "SSystem/SComponent/c_xyz.h"
-#include "dolphin/os/OS.h"
+#include "dolphin/os/OSTime.h"
#include "dolphin/types.h"
+#include "global.h"
#define DEFAULT_SELECT_ITEM_INDEX 0
#define MAX_SELECT_ITEM 4
diff --git a/include/d/shop/d_shop_item_ctrl.h b/include/d/shop/d_shop_item_ctrl.h
index 9a3e956c22..5a486dc093 100644
--- a/include/d/shop/d_shop_item_ctrl.h
+++ b/include/d/shop/d_shop_item_ctrl.h
@@ -1,7 +1,7 @@
#ifndef D_SHOP_D_SHOP_ITEM_CTRL_H
#define D_SHOP_D_SHOP_ITEM_CTRL_H
-#include "d/a/d_a_shop_item_static.h"
+#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/types.h"
class dShopItemCtrl_c {
diff --git a/include/d/shop/d_shop_system.h b/include/d/shop/d_shop_system.h
index e7d0c9db22..048398c6ad 100644
--- a/include/d/shop/d_shop_system.h
+++ b/include/d/shop/d_shop_system.h
@@ -5,6 +5,9 @@
#include "d/shop/d_shop_item_ctrl.h"
#include "dolphin/types.h"
+class dSelect_cursor_c;
+struct STControl;
+
typedef int (*ShopCam_actionFunc)(void);
class ShopCam_action_c {
diff --git a/include/dolphin/card/CARDPriv.h b/include/dolphin/card/CARDPriv.h
index 2e6df14132..3d46ecbe65 100644
--- a/include/dolphin/card/CARDPriv.h
+++ b/include/dolphin/card/CARDPriv.h
@@ -1,6 +1,8 @@
#ifndef CARDPRIV_H
#define CARDPRIV_H
+#include "dolphin/os/OSAlarm.h"
+#include "dolphin/os/OSThread.h"
#include "dolphin/types.h"
#ifdef __cplusplus
@@ -22,6 +24,8 @@ extern "C" {
#define CARD_MAX_MOUNT_STEP (CARD_NUM_SYSTEM_BLOCK + 2)
+typedef struct DVDDiskID DVDDiskID;
+
typedef struct CARDDir {
u8 gameName[4];
u8 company[2];
diff --git a/include/dolphin/dsp/dsp.h b/include/dolphin/dsp/dsp.h
index e45c5c11af..3b9db17a2b 100644
--- a/include/dolphin/dsp/dsp.h
+++ b/include/dolphin/dsp/dsp.h
@@ -1,7 +1,7 @@
#ifndef DSP_H
#define DSP_H
-#include "dolphin/os/OS.h"
+#include "dolphin/os/OSTime.h"
volatile u16 __DSPRegs[32] : 0xCC005000;
volatile u32 __AIRegs[8] : 0xCC006C00;
diff --git a/include/dolphin/exi/EXIBios.h b/include/dolphin/exi/EXIBios.h
index 71f91dcaff..00099f62b1 100644
--- a/include/dolphin/exi/EXIBios.h
+++ b/include/dolphin/exi/EXIBios.h
@@ -1,12 +1,14 @@
#ifndef EXIBIOS_H
#define EXIBIOS_H
-#include "dolphin/os/OS.h"
+#include "dolphin/types.h"
#ifdef __cplusplus
extern "C" {
#endif
+typedef struct OSContext OSContext;
+
vu32 __EXIRegs[16] : 0xCC006800;
#define EXI_MEMORY_CARD_59 0x00000004
diff --git a/include/dolphin/gd/GDGeometry.h b/include/dolphin/gd/GDGeometry.h
index 078eb39d70..715d27b743 100644
--- a/include/dolphin/gd/GDGeometry.h
+++ b/include/dolphin/gd/GDGeometry.h
@@ -1,13 +1,15 @@
#ifndef GDGEOMETRY_H
#define GDGEOMETRY_H
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/types.h"
#ifdef __cplusplus
extern "C" {
#endif
+typedef struct _GXVtxDescList GXVtxDescList;
+
void GDSetVtxDescv(GXVtxDescList*);
void GDSetArray(GXAttr attr, const void* data, u8 stride);
void GDSetArrayRaw(GXAttr attr, u32 data, u8 stride);
diff --git a/include/dolphin/gx/GXBump.h b/include/dolphin/gx/GXBump.h
index 29337920c7..ddb8d67749 100644
--- a/include/dolphin/gx/GXBump.h
+++ b/include/dolphin/gx/GXBump.h
@@ -2,7 +2,6 @@
#define GXBUMP_H
#include "dolphin/gx/GXEnum.h"
-#include "dolphin/mtx/mtx.h"
#ifdef __cplusplus
extern "C" {
diff --git a/include/dolphin/gx/GXFifo.h b/include/dolphin/gx/GXFifo.h
index 68f955e826..7bdfceee0d 100644
--- a/include/dolphin/gx/GXFifo.h
+++ b/include/dolphin/gx/GXFifo.h
@@ -3,7 +3,7 @@
#include "dolphin/gx/GXStruct.h"
#include "dolphin/gx/GXEnum.h"
-#include "dolphin/os/OS.h"
+#include "dolphin/os/OSThread.h"
#ifdef __cplusplus
extern "C" {
diff --git a/include/dolphin/os/OSAlarm.h b/include/dolphin/os/OSAlarm.h
index f628e20da8..658e988e62 100644
--- a/include/dolphin/os/OSAlarm.h
+++ b/include/dolphin/os/OSAlarm.h
@@ -1,8 +1,8 @@
#ifndef OSALARM_H
#define OSALARM_H
-#include "dolphin/os/OSTime.h"
#include "dolphin/os/OSError.h"
+#include "dolphin/os/OSTime.h"
#ifdef __cplusplus
extern "C" {
diff --git a/include/dolphin/os/OSError.h b/include/dolphin/os/OSError.h
index c2dcd5b9b8..833ce34633 100644
--- a/include/dolphin/os/OSError.h
+++ b/include/dolphin/os/OSError.h
@@ -1,12 +1,14 @@
#ifndef OSERROR_H
#define OSERROR_H
-#include "dolphin/os/OSContext.h"
+#include "dolphin/types.h"
#ifdef __cplusplus
extern "C" {
#endif
+typedef struct OSContext OSContext;
+
extern u32 __OSFpscrEnableBits;
typedef u16 OSError;
diff --git a/include/dolphin/os/OSInterrupt.h b/include/dolphin/os/OSInterrupt.h
index 7654dfd431..5726d44c6b 100644
--- a/include/dolphin/os/OSInterrupt.h
+++ b/include/dolphin/os/OSInterrupt.h
@@ -1,12 +1,14 @@
#ifndef OSINTERRUPT_H
#define OSINTERRUPT_H
-#include "dolphin/os/OSContext.h"
+#include "dolphin/types.h"
#ifdef __cplusplus
extern "C" {
#endif
+typedef struct OSContext OSContext;
+
typedef enum {
OS_INTR_MEM_0,
OS_INTR_MEM_1,
diff --git a/include/dolphin/os/OSMemory.h b/include/dolphin/os/OSMemory.h
index 92c5da07ae..bf05969177 100644
--- a/include/dolphin/os/OSMemory.h
+++ b/include/dolphin/os/OSMemory.h
@@ -1,7 +1,6 @@
#ifndef OSMEMORY_H
#define OSMEMORY_H
-#include "dolphin/types.h"
#include "dolphin/os/OSInterrupt.h"
#ifdef __cplusplus
diff --git a/include/dolphin/pad/Pad.h b/include/dolphin/pad/Pad.h
index 5fc625ff25..229e6457d1 100644
--- a/include/dolphin/pad/Pad.h
+++ b/include/dolphin/pad/Pad.h
@@ -1,12 +1,14 @@
#ifndef PAD_H
#define PAD_H
-#include "dolphin/os/OS.h"
+#include "dolphin/types.h"
#ifdef __cplusplus
extern "C" {
#endif
+typedef struct OSContext OSContext;
+
typedef enum PADMask {
PAD_CHAN3_BIT = (1 << 28),
PAD_CHAN2_BIT = (1 << 29),
diff --git a/include/dolphin/si/SIBios.h b/include/dolphin/si/SIBios.h
index 34f04fc2f6..af736a1431 100644
--- a/include/dolphin/si/SIBios.h
+++ b/include/dolphin/si/SIBios.h
@@ -1,7 +1,8 @@
#ifndef SIBIOS_H
#define SIBIOS_H
-#include "dolphin/os/OS.h"
+#include "dolphin/os/OSInterrupt.h"
+#include "dolphin/os/OSTime.h"
#ifdef __cplusplus
extern "C" {
diff --git a/include/dolphin/vi/vi.h b/include/dolphin/vi/vi.h
index cf1552d85c..23abbcc408 100644
--- a/include/dolphin/vi/vi.h
+++ b/include/dolphin/vi/vi.h
@@ -1,13 +1,14 @@
#ifndef VI_H
#define VI_H
-#include "dolphin/gx/GX.h"
#include "dolphin/types.h"
#ifdef __cplusplus
extern "C" {
#endif
+typedef struct _GXRenderModeObj GXRenderModeObj;
+
#define VI_TVMODE(format, interlace) (((format) << 2) + (interlace))
#define VI_INTERLACE 0
diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h
index cc38fa72db..dd29f9270c 100644
--- a/include/f_op/f_op_actor.h
+++ b/include/f_op/f_op_actor.h
@@ -6,6 +6,7 @@
#include "d/kankyo/d_kankyo.h"
#include "dolphin/mtx/mtx.h"
#include "f_pc/f_pc_leaf.h"
+#include "global.h"
struct actor_method_class {
/* 0x00 */ leafdraw_method_class base;
diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h
index 239d8e737a..a702fbf32c 100644
--- a/include/f_op/f_op_actor_mng.h
+++ b/include/f_op/f_op_actor_mng.h
@@ -1,21 +1,17 @@
#ifndef F_OP_ACTOR_MNG_H_
#define F_OP_ACTOR_MNG_H_
-#include "JSystem/J3DGraphAnimator/J3DModelData.h"
-#include "JSystem/JKernel/JKRHeap.h"
-#include "SSystem/SComponent/c_m3d_g_pla.h"
#include "SSystem/SComponent/c_sxyz.h"
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
#include "f_op/f_op_actor_iter.h"
-#include "f_pc/f_pc_executor.h"
-#include "f_pc/f_pc_fstcreate_req.h"
#include "f_pc/f_pc_manager.h"
#include "f_pc/f_pc_searcher.h"
-#include "f_pc/f_pc_stdcreate_req.h"
class J3DModelData; // placeholder
+class JKRHeap;
+class cM3dGPla;
struct fopAcM_prmBase_class {
/* 0x00 */ u32 field_0x00;
diff --git a/include/f_op/f_op_camera.h b/include/f_op/f_op_camera.h
index 5f37c4635f..9ae93e4b59 100644
--- a/include/f_op/f_op_camera.h
+++ b/include/f_op/f_op_camera.h
@@ -1,7 +1,9 @@
#ifndef F_F_OP_CAMERA_H_
#define F_F_OP_CAMERA_H_
-#include "f_op/f_op_camera_mng.h"
+#include "f_op/f_op_view.h"
+
+class camera_class;
struct camera_process_profile_definition {
/* 0x00 */ view_process_profile_definition mBase;
diff --git a/include/f_op/f_op_camera_mng.h b/include/f_op/f_op_camera_mng.h
index c16bf9728e..ba595396cd 100644
--- a/include/f_op/f_op_camera_mng.h
+++ b/include/f_op/f_op_camera_mng.h
@@ -4,11 +4,11 @@
#include "SSystem/SComponent/c_phase.h"
#include "SSystem/SComponent/c_sxyz.h"
#include "SSystem/SComponent/c_xyz.h"
+#include "d/d_camera.h"
#include "dolphin/types.h"
-#include "f_op/f_op_draw_tag.h"
#include "f_op/f_op_view.h"
-#include "f_pc/f_pc_leaf.h"
-#include "d/d_camera.h"
+
+typedef struct leafdraw_method_class leafdraw_method_class;
class camera_process_class : public view_class {
public:
diff --git a/include/f_op/f_op_draw_iter.h b/include/f_op/f_op_draw_iter.h
index a9e1048b60..1455b65aeb 100644
--- a/include/f_op/f_op_draw_iter.h
+++ b/include/f_op/f_op_draw_iter.h
@@ -1,7 +1,7 @@
#ifndef F_F_OP_DRAW_ITER_H_
#define F_F_OP_DRAW_ITER_H_
-#include "SSystem/SComponent/c_tag.h"
+typedef struct create_tag_class create_tag_class;
static create_tag_class* fopDwIt_GetTag(void);
create_tag_class* fopDwIt_Begin(void);
diff --git a/include/f_op/f_op_draw_tag.h b/include/f_op/f_op_draw_tag.h
index 2a37bd7458..281f9795ba 100644
--- a/include/f_op/f_op_draw_tag.h
+++ b/include/f_op/f_op_draw_tag.h
@@ -1,7 +1,9 @@
#ifndef F_F_OP_DRAW_TAG
#define F_F_OP_DRAW_TAG
-#include "SSystem/SComponent/c_tag.h"
+#include "SSystem/SComponent/c_tree.h"
+
+typedef struct create_tag_class create_tag_class;
extern node_lists_tree_class g_fopDwTg_Queue;
diff --git a/include/f_op/f_op_kankyo.h b/include/f_op/f_op_kankyo.h
index d309c83410..0f2be635fb 100644
--- a/include/f_op/f_op_kankyo.h
+++ b/include/f_op/f_op_kankyo.h
@@ -1,9 +1,9 @@
#ifndef F_OP_F_OP_KANKYO_H
#define F_OP_F_OP_KANKYO_H
+#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/types.h"
-#include "f_pc/f_pc_manager.h"
-#include "f_op/f_op_kankyo_mng.h"
+#include "f_pc/f_pc_leaf.h"
class kankyo_class : public leafdraw_class {
public:
diff --git a/include/f_op/f_op_msg.h b/include/f_op/f_op_msg.h
index 1e093473c6..f792aaa716 100644
--- a/include/f_op/f_op_msg.h
+++ b/include/f_op/f_op_msg.h
@@ -1,8 +1,10 @@
#ifndef F_OP_F_OP_MSG_H
#define F_OP_F_OP_MSG_H
+#include "SSystem/SComponent/c_xyz.h"
#include "f_pc/f_pc_leaf.h"
-#include "f_op/f_op_actor.h"
+
+class fopAc_ac_c;
class msg_class : public leafdraw_class {
public:
diff --git a/include/f_op/f_op_msg_mng.h b/include/f_op/f_op_msg_mng.h
index 15fa6eae40..7c7514ce9b 100644
--- a/include/f_op/f_op_msg_mng.h
+++ b/include/f_op/f_op_msg_mng.h
@@ -1,7 +1,13 @@
#ifndef F_F_OP_MSG_MNG_H_
#define F_F_OP_MSG_MNG_H_
-#include "f_op/f_op_msg.h"
+#include "SSystem/SComponent/c_xyz.h"
+#include "f_pc/f_pc_leaf.h"
+
+class JKRExpHeap;
+class JKRHeap;
+class fopAc_ac_c;
+class msg_class;
struct msg_process_profile_definition {
/* 0x00 */ leaf_process_profile_definition mBase;
diff --git a/include/f_op/f_op_overlap_mng.h b/include/f_op/f_op_overlap_mng.h
index ba420a3b53..897f832084 100644
--- a/include/f_op/f_op_overlap_mng.h
+++ b/include/f_op/f_op_overlap_mng.h
@@ -1,9 +1,10 @@
#ifndef F_F_OP_OVERLAP_MNG_H_
#define F_F_OP_OVERLAP_MNG_H_
-#include "SSystem/SComponent/c_request.h"
#include "f_pc/f_pc_leaf.h"
+struct request_base_class;
+
class overlap_task_class : public leafdraw_class {
public:
/* 0xC0 */ leafdraw_method_class* field_0xc0;
diff --git a/include/f_op/f_op_overlap_req.h b/include/f_op/f_op_overlap_req.h
index 0a88ab8cbe..db49882a72 100644
--- a/include/f_op/f_op_overlap_req.h
+++ b/include/f_op/f_op_overlap_req.h
@@ -2,9 +2,10 @@
#define F_F_OP_OVERLAP_REQ_H_
#include "SSystem/SComponent/c_phase.h"
-#include "SSystem/SComponent/c_request.h"
#include "dolphin/types.h"
-#include "f_pc/f_pc_layer.h"
+
+typedef struct layer_class layer_class;
+struct request_base_class;
class overlap_request_class {
public:
diff --git a/include/f_op/f_op_scene.h b/include/f_op/f_op_scene.h
index ee1e7ae5c9..6c045f62fb 100644
--- a/include/f_op/f_op_scene.h
+++ b/include/f_op/f_op_scene.h
@@ -1,12 +1,9 @@
#ifndef F_F_OP_SCENE_H_
#define F_F_OP_SCENE_H_
-#include "SSystem/SComponent/c_phase.h"
#include "dolphin/types.h"
#include "f_op/f_op_scene_tag.h"
-#include "f_pc/f_pc_base.h"
#include "f_pc/f_pc_node.h"
-#include "m_Do/m_Do_dvd_thread.h"
struct request_of_phase_process_class;
class mDoDvdThd_command_c;
diff --git a/include/f_op/f_op_scene_iter.h b/include/f_op/f_op_scene_iter.h
index b135a73f2d..76166b18c2 100644
--- a/include/f_op/f_op_scene_iter.h
+++ b/include/f_op/f_op_scene_iter.h
@@ -1,9 +1,6 @@
#ifndef F_F_OP_SCENE_ITER_H_
#define F_F_OP_SCENE_ITER_H_
-#include "dolphin/types.h"
-#include "f_pc/f_pc_base.h"
-
typedef void* (*fop_ScnItFunc)(void* pProc, void* pUserData);
void* fopScnIt_Judge(fop_ScnItFunc pFunc1, void* pUserData);
diff --git a/include/f_op/f_op_scene_mng.h b/include/f_op/f_op_scene_mng.h
index 1e645f11df..6be68ae1e7 100644
--- a/include/f_op/f_op_scene_mng.h
+++ b/include/f_op/f_op_scene_mng.h
@@ -2,7 +2,9 @@
#define F_F_OP_SCENE_MNG_H_
#include "f_pc/f_pc_manager.h"
-#include "f_op/f_op_scene_pause.h"
+#include "f_op/f_op_scene.h"
+
+typedef struct base_process_class base_process_class;
scene_class* fopScnM_SearchByID(unsigned int id);
int fopScnM_ChangeReq(scene_class*, s16, s16, u16);
diff --git a/include/f_op/f_op_scene_pause.h b/include/f_op/f_op_scene_pause.h
index d80452174e..da01d4779e 100644
--- a/include/f_op/f_op_scene_pause.h
+++ b/include/f_op/f_op_scene_pause.h
@@ -1,8 +1,7 @@
#ifndef F_F_OP_SCENE_PAUSE_H_
#define F_F_OP_SCENE_PAUSE_H_
-#include "dolphin/types.h"
-#include "f_op/f_op_scene.h"
+class scene_class;
int fopScnPause_Enable(scene_class* pScene);
int fopScnPause_Disable(scene_class* pScene);
diff --git a/include/f_op/f_op_scene_req.h b/include/f_op/f_op_scene_req.h
index 3968124dce..9b58c0b200 100644
--- a/include/f_op/f_op_scene_req.h
+++ b/include/f_op/f_op_scene_req.h
@@ -3,9 +3,10 @@
#include "SSystem/SComponent/c_phase.h"
#include "dolphin/types.h"
-#include "f_op/f_op_scene_pause.h"
#include "f_pc/f_pc_node_req.h"
+class scene_class;
+
extern "C" {
void fopScnRq_Handler__Fv(void);
void fopScnRq_ReRequest(void);
diff --git a/include/f_op/f_op_scene_tag.h b/include/f_op/f_op_scene_tag.h
index b12dd2db8c..dccd6c1d13 100644
--- a/include/f_op/f_op_scene_tag.h
+++ b/include/f_op/f_op_scene_tag.h
@@ -1,8 +1,8 @@
#ifndef F_F_OP_SCENE_TAG_H_
#define F_F_OP_SCENE_TAG_H_
+#include "SSystem/SComponent/c_list.h"
#include "dolphin/types.h"
-#include "f_pc/f_pc_node.h"
class scene_tag_class {
u8 _0[0x14];
diff --git a/include/f_pc/f_pc_base.h b/include/f_pc/f_pc_base.h
index e8719e83f0..b2a70e0e99 100644
--- a/include/f_pc/f_pc_base.h
+++ b/include/f_pc/f_pc_base.h
@@ -2,17 +2,16 @@
#ifndef F_PC_BASE_H_
#define F_PC_BASE_H_
-#include "SSystem/SComponent/c_tag.h"
#include "dolphin/types.h"
-// #include "f/f_pc/f_pc_method.h"
#include "f_pc/f_pc_delete_tag.h"
#include "f_pc/f_pc_layer_tag.h"
#include "f_pc/f_pc_line_tag.h"
#include "f_pc/f_pc_priority.h"
-#include "f_pc/f_pc_profile.h"
-struct create_request;
-struct profile_method_class;
+typedef struct create_request create_request;
+typedef struct process_method_class process_method_class;
+typedef struct process_profile_definition process_profile_definition;
+typedef struct profile_method_class profile_method_class;
typedef struct base_process_class {
/* 0x00 */ u32 mBsType;
diff --git a/include/f_pc/f_pc_create_iter.h b/include/f_pc/f_pc_create_iter.h
index abae733a53..cbe1ab3a74 100644
--- a/include/f_pc/f_pc_create_iter.h
+++ b/include/f_pc/f_pc_create_iter.h
@@ -2,10 +2,9 @@
#ifndef F_PC_CREATE_ITER_H_
#define F_PC_CREATE_ITER_H_
-#include "SSystem/SComponent/c_list_iter.h"
-#include "SSystem/SComponent/c_tag_iter.h"
#include "dolphin/types.h"
-#include "f_pc/f_pc_create_tag.h"
+
+typedef struct create_tag create_tag;
typedef int (*fpcCtIt_MethodFunc)(void*, void*);
typedef void* (*fpcCtIt_JudgeFunc)(void*, void*);
diff --git a/include/f_pc/f_pc_create_req.h b/include/f_pc/f_pc_create_req.h
index 45ee59045c..92ca88ef87 100644
--- a/include/f_pc/f_pc_create_req.h
+++ b/include/f_pc/f_pc_create_req.h
@@ -3,14 +3,13 @@
#define F_PC_CREATE_REQ_H_
#include "SSystem/SComponent/c_phase.h"
-#include "SSystem/SComponent/c_tag.h"
#include "dolphin/types.h"
#include "f_pc/f_pc_create_tag.h"
-#include "f_pc/f_pc_layer.h"
#include "f_pc/f_pc_method.h"
#include "f_pc/f_pc_method_tag.h"
-struct base_process_class;
+typedef struct base_process_class base_process_class;
+typedef struct layer_class layer_class;
typedef struct create_request_method_class {
cPhs__Handler mpHandler;
diff --git a/include/f_pc/f_pc_create_tag.h b/include/f_pc/f_pc_create_tag.h
index faa6d10249..57de2d5d59 100644
--- a/include/f_pc/f_pc_create_tag.h
+++ b/include/f_pc/f_pc_create_tag.h
@@ -2,6 +2,7 @@
#ifndef F_PC_CREATE_TAG_H_
#define F_PC_CREATE_TAG_H_
+#include "SSystem/SComponent/c_list.h"
#include "SSystem/SComponent/c_tag.h"
#include "dolphin/types.h"
diff --git a/include/f_pc/f_pc_creator.h b/include/f_pc/f_pc_creator.h
index ebae2011c4..582abf5f39 100644
--- a/include/f_pc/f_pc_creator.h
+++ b/include/f_pc/f_pc_creator.h
@@ -4,11 +4,11 @@
#include "dolphin/types.h"
-struct base_process_class;
+typedef struct base_process_class base_process_class;
BOOL fpcCt_IsCreatingByID(unsigned int id);
-s32 fpcCt_IsDoing(struct base_process_class* pProc);
-BOOL fpcCt_Abort(struct base_process_class* pProc);
+s32 fpcCt_IsDoing(base_process_class* pProc);
+BOOL fpcCt_Abort(base_process_class* pProc);
void fpcCt_Handler(void);
#endif
diff --git a/include/f_pc/f_pc_delete_tag.h b/include/f_pc/f_pc_delete_tag.h
index e7cf53fcec..c195ef6d1e 100644
--- a/include/f_pc/f_pc_delete_tag.h
+++ b/include/f_pc/f_pc_delete_tag.h
@@ -4,7 +4,8 @@
#include "SSystem/SComponent/c_tag.h"
#include "dolphin/types.h"
-#include "f_pc/f_pc_layer.h"
+
+typedef struct layer_class layer_class;
typedef int (*delete_tag_func)(void*);
diff --git a/include/f_pc/f_pc_deletor.h b/include/f_pc/f_pc_deletor.h
index 79185d966f..ebe81a41a9 100644
--- a/include/f_pc/f_pc_deletor.h
+++ b/include/f_pc/f_pc_deletor.h
@@ -2,9 +2,9 @@
#ifndef F_PC_DELETOR_H_
#define F_PC_DELETOR_H_
-#include "f_pc/f_pc_base.h"
+#include "dolphin/types.h"
-struct base_process_class;
+typedef struct base_process_class base_process_class;
BOOL fpcDt_IsComplete(void);
s32 fpcDt_ToDeleteQ(base_process_class* pProc);
diff --git a/include/f_pc/f_pc_draw.h b/include/f_pc/f_pc_draw.h
index cc3ba45602..b62024269f 100644
--- a/include/f_pc/f_pc_draw.h
+++ b/include/f_pc/f_pc_draw.h
@@ -1,9 +1,9 @@
#ifndef F_PC_DRAW_H_
#define F_PC_DRAW_H_
-#include "SSystem/SComponent/c_node_iter.h"
#include "dolphin/types.h"
-#include "f_pc/f_pc_base.h"
+
+typedef struct base_process_class base_process_class;
typedef int (*fpcDw_HandlerFunc)(void*, void*);
typedef int (*fpcDw_HandlerFuncFunc)(fpcDw_HandlerFunc);
diff --git a/include/f_pc/f_pc_executor.h b/include/f_pc/f_pc_executor.h
index d3999bf46f..a987a5fadb 100644
--- a/include/f_pc/f_pc_executor.h
+++ b/include/f_pc/f_pc_executor.h
@@ -2,11 +2,11 @@
#ifndef F_PC_EXECUTOR_H_
#define F_PC_EXECUTOR_H_
-#include "SSystem/SComponent/c_node_iter.h"
-#include "f_pc/f_pc_base.h"
#include "f_pc/f_pc_layer_iter.h"
#include "f_pc/f_pc_line_iter.h"
+typedef struct base_process_class base_process_class;
+
base_process_class* fpcEx_Search(fpcLyIt_JudgeFunc pFunc, void* pUserData);
base_process_class* fpcEx_SearchByID(unsigned int id);
BOOL fpcEx_IsExist(unsigned int id);
diff --git a/include/f_pc/f_pc_fstcreate_req.h b/include/f_pc/f_pc_fstcreate_req.h
index 7e5f88d7e8..ef08c5e6d6 100644
--- a/include/f_pc/f_pc_fstcreate_req.h
+++ b/include/f_pc/f_pc_fstcreate_req.h
@@ -2,9 +2,10 @@
#define F_PC_FSTCREATE_REQ_H_
#include "dolphin/types.h"
-#include "f_pc/f_pc_base.h"
#include "f_pc/f_pc_create_req.h"
-#include "f_pc/f_pc_layer.h"
+
+typedef struct base_process_class base_process_class;
+typedef struct layer_class layer_class;
typedef int (*fstCreateFunc)(void*, void*);
diff --git a/include/f_pc/f_pc_layer.h b/include/f_pc/f_pc_layer.h
index 0f4084b897..4f7e0046b7 100644
--- a/include/f_pc/f_pc_layer.h
+++ b/include/f_pc/f_pc_layer.h
@@ -2,12 +2,13 @@
#ifndef F_PC_LAYER_H_
#define F_PC_LAYER_H_
+#include "SSystem/SComponent/c_list.h"
#include "SSystem/SComponent/c_node.h"
-#include "SSystem/SComponent/c_tag.h"
#include "SSystem/SComponent/c_tree.h"
#include "dolphin/types.h"
-struct process_method_tag_class;
+typedef struct create_tag_class create_tag_class;
+typedef struct process_method_tag_class process_method_tag_class;
typedef struct process_node_class process_node_class;
typedef struct layer_class {
@@ -41,10 +42,10 @@ s32 fpcLy_ToQueue(layer_class* pLayer, int treeListIdx, create_tag_class* pTag);
s32 fpcLy_QueueTo(layer_class* pLayer, create_tag_class* pTag);
void fpcLy_Cancel(layer_class* pLayer);
-bool fpcLy_CancelMethod(struct process_method_tag_class* pLayer);
+bool fpcLy_CancelMethod(process_method_tag_class* pLayer);
-void fpcLy_CancelQTo(struct process_method_tag_class* pMthd);
-s32 fpcLy_ToCancelQ(layer_class* pLayer, struct process_method_tag_class* pMthd);
+void fpcLy_CancelQTo(process_method_tag_class* pMthd);
+s32 fpcLy_ToCancelQ(layer_class* pLayer, process_method_tag_class* pMthd);
void fpcLy_Create(layer_class* pLayer, void* pPcNode, node_list_class* pLists, int listNum);
diff --git a/include/f_pc/f_pc_layer_iter.h b/include/f_pc/f_pc_layer_iter.h
index 7ef1d11b44..25f75a0348 100644
--- a/include/f_pc/f_pc_layer_iter.h
+++ b/include/f_pc/f_pc_layer_iter.h
@@ -1,9 +1,9 @@
#ifndef F_PC_LAYER_ITER_H_
#define F_PC_LAYER_ITER_H_
-#include "SSystem/SComponent/c_node_iter.h"
#include "dolphin/types.h"
-#include "f_pc/f_pc_layer.h"
+
+typedef struct layer_class layer_class;
typedef struct layer_iter {
void* mpFunc;
diff --git a/include/f_pc/f_pc_layer_tag.h b/include/f_pc/f_pc_layer_tag.h
index cc67f9dadb..3621f8bf77 100644
--- a/include/f_pc/f_pc_layer_tag.h
+++ b/include/f_pc/f_pc_layer_tag.h
@@ -4,7 +4,8 @@
#include "SSystem/SComponent/c_tag.h"
#include "dolphin/types.h"
-#include "f_pc/f_pc_layer.h"
+
+typedef struct layer_class layer_class;
typedef struct layer_management_tag_class {
create_tag_class mCreateTag;
diff --git a/include/f_pc/f_pc_leaf.h b/include/f_pc/f_pc_leaf.h
index b2df5fa658..0f49a08590 100644
--- a/include/f_pc/f_pc_leaf.h
+++ b/include/f_pc/f_pc_leaf.h
@@ -6,6 +6,7 @@
#include "f_pc/f_pc_base.h"
#include "f_pc/f_pc_draw_priority.h"
#include "f_pc/f_pc_method.h"
+#include "f_pc/f_pc_profile.h"
typedef struct leafdraw_method_class {
/* 0x00 */ process_method_class mBase;
diff --git a/include/f_pc/f_pc_line_iter.h b/include/f_pc/f_pc_line_iter.h
index 4a63c1e5e5..97a2fe57e3 100644
--- a/include/f_pc/f_pc_line_iter.h
+++ b/include/f_pc/f_pc_line_iter.h
@@ -2,8 +2,6 @@
#ifndef F_PC_LINE_ITER_H_
#define F_PC_LINE_ITER_H_
-#include "SSystem/SComponent/c_node_iter.h"
-
typedef int (*fpcLnIt_QueueFunc)(void*, void*);
void fpcLnIt_Queue(fpcLnIt_QueueFunc pFunc);
diff --git a/include/f_pc/f_pc_manager.h b/include/f_pc/f_pc_manager.h
index 986e7da988..db6e8e467e 100644
--- a/include/f_pc/f_pc_manager.h
+++ b/include/f_pc/f_pc_manager.h
@@ -1,16 +1,14 @@
#ifndef F_PC_MANAGER_H_
#define F_PC_MANAGER_H_
-#include "SSystem/SComponent/c_node_iter.h"
-#include "SSystem/SComponent/c_tag.h"
#include "dolphin/types.h"
#include "f_pc/f_pc_base.h"
#include "f_pc/f_pc_create_iter.h"
-#include "f_pc/f_pc_node_req.h"
-#include "f_pc/f_pc_stdcreate_req.h"
#include "f_pc/f_pc_executor.h"
#include "f_pc/f_pc_leaf.h"
#include "f_pc/f_pc_layer_iter.h"
+#include "f_pc/f_pc_node.h"
+#include "f_pc/f_pc_stdcreate_req.h"
enum {
fpcM_ERROR_PROCESS_ID_e = -1,
diff --git a/include/f_pc/f_pc_method_iter.h b/include/f_pc/f_pc_method_iter.h
index 1c3ad4eec4..633aaced54 100644
--- a/include/f_pc/f_pc_method_iter.h
+++ b/include/f_pc/f_pc_method_iter.h
@@ -2,9 +2,10 @@
#ifndef F_PC_METHOD_ITER_H_
#define F_PC_METHOD_ITER_H_
-#include "SSystem/SComponent/c_list_iter.h"
#include "dolphin/types.h"
+typedef struct node_list_class node_list_class;
+
typedef int (*fpcMtdIt_MethodFunc)(void*);
void fpcMtdIt_Method(node_list_class* pList, fpcMtdIt_MethodFunc pMethod);
diff --git a/include/f_pc/f_pc_node.h b/include/f_pc/f_pc_node.h
index fa92560fd6..c3c8a8c897 100644
--- a/include/f_pc/f_pc_node.h
+++ b/include/f_pc/f_pc_node.h
@@ -5,6 +5,7 @@
#include "f_pc/f_pc_base.h"
#include "f_pc/f_pc_layer.h"
#include "f_pc/f_pc_method.h"
+#include "f_pc/f_pc_profile.h"
typedef struct nodedraw_method_class {
process_method_class mBase;
diff --git a/include/f_pc/f_pc_node_req.h b/include/f_pc/f_pc_node_req.h
index c5ca3045fb..a2c82824df 100644
--- a/include/f_pc/f_pc_node_req.h
+++ b/include/f_pc/f_pc_node_req.h
@@ -2,10 +2,13 @@
#define F_PC_NODE_REQ_H_
#include "SSystem/SComponent/c_phase.h"
+#include "SSystem/SComponent/c_tag.h"
#include "dolphin/types.h"
#include "f_pc/f_pc_method.h"
#include "f_pc/f_pc_method_tag.h"
-#include "f_pc/f_pc_node.h"
+
+typedef struct layer_class layer_class;
+typedef struct process_node_class process_node_class;
typedef struct node_create_request_method_class {
process_method_func mpExecuteFunc;
@@ -53,15 +56,15 @@ s32 fpcNdRq_Execute(node_create_request* pNodeCreateReq);
s32 fpcNdRq_Delete(node_create_request* pNodeCreateReq);
s32 fpcNdRq_Cancel(node_create_request* pNodeCreateReq);
s32 fpcNdRq_Handler(void);
-s32 fpcNdRq_IsPossibleTarget(struct process_node_class* pProcNode);
-s32 fpcNdRq_IsIng(struct process_node_class* pProcNode);
+s32 fpcNdRq_IsPossibleTarget(process_node_class* pProcNode);
+s32 fpcNdRq_IsIng(process_node_class* pProcNode);
node_create_request* fpcNdRq_Create(u32 pRequestSize);
-node_create_request* fpcNdRq_ChangeNode(u32 pRequestSize, struct process_node_class* pProcNode,
+node_create_request* fpcNdRq_ChangeNode(u32 pRequestSize, process_node_class* pProcNode,
s16 param_3, void* param_4);
-node_create_request* fpcNdRq_DeleteNode(u32 pRequestSize, struct process_node_class* pProcNode);
+node_create_request* fpcNdRq_DeleteNode(u32 pRequestSize, process_node_class* pProcNode);
node_create_request* fpcNdRq_CreateNode(u32 pRequestSize, s16 param_2, void* param_3);
node_create_request*
-fpcNdRq_Request(u32 param_1, int param_2, struct process_node_class* param_3, s16 param_4,
+fpcNdRq_Request(u32 param_1, int param_2, process_node_class* param_3, s16 param_4,
void* param_5, node_create_request_method_class* pNodeCreateRequestMethodClass);
s32 fpcNdRq_ReChangeNode(unsigned int pRequestId, s16 param_2, void* param_3);
s32 fpcNdRq_ReRequest(unsigned int pRequestId, s16 param_2, void* param_3);
diff --git a/include/f_pc/f_pc_pause.h b/include/f_pc/f_pc_pause.h
index d55e53d4ce..895b25af95 100644
--- a/include/f_pc/f_pc_pause.h
+++ b/include/f_pc/f_pc_pause.h
@@ -2,8 +2,6 @@
#define F_PC_PAUSE_
#include "dolphin/types.h"
-#include "f_pc/f_pc_base.h"
-#include "f_pc/f_pc_node.h"
s32 fpcPause_IsEnable(void* pProc, u8 expected);
s32 fpcPause_Enable(void* pProc, u8 pauseMask);
diff --git a/include/f_pc/f_pc_profile.h b/include/f_pc/f_pc_profile.h
index 6294ed032b..7c3dd68b2a 100644
--- a/include/f_pc/f_pc_profile.h
+++ b/include/f_pc/f_pc_profile.h
@@ -3,10 +3,10 @@
#define F_PC_PROFILE_H_
#include "dolphin/types.h"
-#include "f_pc/f_pc_method.h"
-struct nodedraw_method_class;
-struct leafdraw_method_class;
+typedef struct nodedraw_method_class nodedraw_method_class;
+typedef struct leafdraw_method_class leafdraw_method_class;
+typedef struct process_method_class process_method_class;
typedef struct process_profile_definition {
/* 0x00 */ s32 mLayerID;
diff --git a/include/f_pc/f_pc_stdcreate_req.h b/include/f_pc/f_pc_stdcreate_req.h
index 6eda04ed46..a418200378 100644
--- a/include/f_pc/f_pc_stdcreate_req.h
+++ b/include/f_pc/f_pc_stdcreate_req.h
@@ -3,7 +3,8 @@
#include "dolphin/types.h"
#include "f_pc/f_pc_create_req.h"
-#include "f_pc/f_pc_layer.h"
+
+typedef struct layer_class layer_class;
typedef int (*stdCreateFunc)(void*, void*);
diff --git a/include/m_Do/m_Do_DVDError.h b/include/m_Do/m_Do_DVDError.h
index 171f941715..0f51463465 100644
--- a/include/m_Do/m_Do_DVDError.h
+++ b/include/m_Do/m_Do_DVDError.h
@@ -1,7 +1,8 @@
#ifndef M_DO_M_DO_DVDERROR_H
#define M_DO_M_DO_DVDERROR_H
-#include "JSystem/JKernel/JKRThread.h"
+typedef struct OSAlarm OSAlarm;
+typedef struct OSContext OSContext;
void mDoDvdErr_ThdCleanup();
static void mDoDvdErr_Watch(void*);
diff --git a/include/m_Do/m_Do_MemCard.h b/include/m_Do/m_Do_MemCard.h
index 180e68c436..c6a12f0b55 100644
--- a/include/m_Do/m_Do_MemCard.h
+++ b/include/m_Do/m_Do_MemCard.h
@@ -1,10 +1,9 @@
#ifndef M_DO_M_DO_MEMCARD_H
#define M_DO_M_DO_MEMCARD_H
-#include "dolphin/os/OS.h"
+#include "dolphin/os/OSMutex.h"
#include "dolphin/types.h"
#include "global.h"
-#include "m_Do/m_Do_MemCardRWmng.h"
class mDoMemCd_Ctrl_c {
public:
diff --git a/include/m_Do/m_Do_MemCardRWmng.h b/include/m_Do/m_Do_MemCardRWmng.h
index 935ef9dd4a..bfaf2a5cbf 100644
--- a/include/m_Do/m_Do_MemCardRWmng.h
+++ b/include/m_Do/m_Do_MemCardRWmng.h
@@ -1,9 +1,10 @@
#ifndef M_DO_M_DO_MEMCARDRWMNG_H
#define M_DO_M_DO_MEMCARDRWMNG_H
-#include "dolphin/card/card.h"
#include "dolphin/types.h"
+typedef struct CARDFileInfo CARDFileInfo;
+
struct mDoMemCdRWm_HeaderData {
/* 0x0000 */ u8 mBannerTexData[0xC00];
/* 0x0C00 */ u8 mBannerPalData[0x200];
diff --git a/include/m_Do/m_Do_audio.h b/include/m_Do/m_Do_audio.h
index 58c70de4b2..5e8fd55189 100644
--- a/include/m_Do/m_Do_audio.h
+++ b/include/m_Do/m_Do_audio.h
@@ -1,13 +1,8 @@
#ifndef M_DO_M_DO_AUDIO_H
#define M_DO_M_DO_AUDIO_H
-#include "JSystem/JAudio2/JASGadget.h"
-#include "JSystem/JAudio2/JASTrack.h"
-#include "JSystem/JAudio2/JAUSoundTable.h"
#include "Z2AudioLib/Z2AudioMgr.h"
#include "Z2AudioLib/Z2EnvSeMgr.h"
-#include "Z2AudioLib/Z2SoundInfo.h"
-#include "Z2AudioLib/Z2WolfHowlMgr.h"
class mDoAud_zelAudio_c {
public:
diff --git a/include/m_Do/m_Do_controller_pad.h b/include/m_Do/m_Do_controller_pad.h
index cd2c82b5fd..c7b6fea361 100644
--- a/include/m_Do/m_Do_controller_pad.h
+++ b/include/m_Do/m_Do_controller_pad.h
@@ -4,7 +4,6 @@
#include "JSystem/JUtility/JUTGamePad.h"
#include "SSystem/SComponent/c_API_controller_pad.h"
#include "dolphin/types.h"
-#include "m_Do/m_Do_Reset.h"
// Controller Ports 1 - 4
enum { PAD_1, PAD_2, PAD_3, PAD_4 };
diff --git a/include/m_Do/m_Do_dvd_thread.h b/include/m_Do/m_Do_dvd_thread.h
index de4e2f567b..ba5e37e1ec 100644
--- a/include/m_Do/m_Do_dvd_thread.h
+++ b/include/m_Do/m_Do_dvd_thread.h
@@ -2,11 +2,15 @@
#define M_DO_M_DO_DVD_THREAD_H
#include "JSystem/JKernel/JKRArchive.h"
-#include "JSystem/JKernel/JKRHeap.h"
-#include "JSystem/JKernel/JKRMemArchive.h"
+#include "dolphin/os/OSMessage.h"
+#include "dolphin/os/OSMutex.h"
+#include "dolphin/os/OSThread.h"
#include "dolphin/types.h"
#include "f_pc/f_pc_node.h"
+class JKRHeap;
+class JKRMemArchive;
+
typedef void* (*mDoDvdThd_callback_func)(void*);
class mDoDvdThd_command_c : public node_class {
diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h
index 580ad36664..ab3d266745 100644
--- a/include/m_Do/m_Do_ext.h
+++ b/include/m_Do/m_Do_ext.h
@@ -3,13 +3,22 @@
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
#include "JSystem/J3DGraphAnimator/J3DModel.h"
-#include "JSystem/JKernel/JKRAssertHeap.h"
-#include "JSystem/JKernel/JKRExpHeap.h"
-#include "JSystem/JKernel/JKRSolidHeap.h"
+#include "SSystem/SComponent/c_sxyz.h"
+#include "SSystem/SComponent/c_xyz.h"
+#include "Z2AudioLib/Z2SoundObject.h"
+#include "dolphin/gx/GXStruct.h"
#include "global.h"
#include "m_Do/m_Do_audio.h"
#include "m_Do/m_Do_mtx.h"
+class JKRArchive;
+class JKRAssertHeap;
+class JKRExpHeap;
+class JKRHeap;
+class JKRSolidHeap;
+struct ResTIMG;
+class Z2Creature;
+
class mDoExt_baseAnm {
public:
mDoExt_baseAnm() {}
diff --git a/include/m_Do/m_Do_graphic.h b/include/m_Do/m_Do_graphic.h
index 71d79aa0e0..68ebab896b 100644
--- a/include/m_Do/m_Do_graphic.h
+++ b/include/m_Do/m_Do_graphic.h
@@ -2,10 +2,12 @@
#define M_DO_M_DO_GRAPHIC_H
#include "JSystem/JFramework/JFWDisplay.h"
-#include "JSystem/JUtility/JUTFader.h"
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXStruct.h"
+#include "dolphin/mtx/mtx.h"
#include "dolphin/types.h"
+class JUTFader;
+
int mDoGph_Create();
extern u8 mBlureFlag__13mDoGph_gInf_c; // Blure
diff --git a/include/m_Do/m_Do_lib.h b/include/m_Do/m_Do_lib.h
index b64756a219..42b303bee3 100644
--- a/include/m_Do/m_Do_lib.h
+++ b/include/m_Do/m_Do_lib.h
@@ -3,7 +3,11 @@
#include "JSystem/J3DU/J3DUClipper.h"
#include "dolphin/types.h"
-#include "JSystem/JUtility/JUTTexture.h"
+
+typedef struct _GXTexObj GXTexObj;
+typedef struct _GXTlutObj GXTlutObj;
+typedef struct Vec Vec;
+struct ResTIMG;
struct mDoLib_clipper {
/* 8001528C */ void setup(f32, f32, f32, f32);
diff --git a/include/m_Do/m_Do_machine.h b/include/m_Do/m_Do_machine.h
index 88cf77a4eb..cbdcdb7d6f 100644
--- a/include/m_Do/m_Do_machine.h
+++ b/include/m_Do/m_Do_machine.h
@@ -1,12 +1,11 @@
#ifndef M_DO_M_DO_MACHINE_H
#define M_DO_M_DO_MACHINE_H
-#include "JSystem/JUtility/JUTConsole.h"
-#include "JSystem/JUtility/JUTGamePad.h"
-#include "JSystem/JUtility/JUTVideo.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
-#include "m_Do/m_Do_Reset.h"
-#include "m_Do/m_Do_main.h"
+
+typedef struct OSContext OSContext;
+class JKRHeap;
void myHeapCheckRecursive(JKRHeap*);
BOOL mDoMch_IsProgressiveMode();
diff --git a/include/m_Do/m_Do_machine_exception.h b/include/m_Do/m_Do_machine_exception.h
index 6d81404a7c..1c98c7980e 100644
--- a/include/m_Do/m_Do_machine_exception.h
+++ b/include/m_Do/m_Do_machine_exception.h
@@ -2,7 +2,6 @@
#define M_DO_M_DO_MACHINE_EXCEPTION_H
#include "dolphin/types.h"
-#include "dolphin/gx/GX.h"
struct JUTConsole;
diff --git a/include/m_Do/m_Do_main.h b/include/m_Do/m_Do_main.h
index 83cd8645a0..81b89b31bf 100644
--- a/include/m_Do/m_Do_main.h
+++ b/include/m_Do/m_Do_main.h
@@ -2,9 +2,11 @@
#define M_DO_M_DO_MAIN_H
#include "JSystem/JKernel/JKRExpHeap.h"
-#include "dolphin/dvd/dvd.h"
+#include "dolphin/os/OSTime.h"
#include "dolphin/types.h"
+class JKRExpHeap;
+
void version_check();
s32 LOAD_COPYDATE(void*);
diff --git a/include/msg/scrn/d_msg_scrn_base.h b/include/msg/scrn/d_msg_scrn_base.h
index c4a6d36dea..9081f33fea 100644
--- a/include/msg/scrn/d_msg_scrn_base.h
+++ b/include/msg/scrn/d_msg_scrn_base.h
@@ -1,9 +1,11 @@
#ifndef MSG_SCRN_D_MSG_SCRN_BASE_H
#define MSG_SCRN_D_MSG_SCRN_BASE_H
-#include "d/msg/d_msg_out_font.h"
-#include "d/com/d_com_inf_game.h"
+#include "JSystem/J2DGraph/J2DTextBox.h"
+#include "d/d_drawlist.h"
+class COutFont_c;
+class CPaneMgr;
struct CharInfo_c;
class dMsgScrnBase_c : public dDlst_base_c {
diff --git a/include/msg/scrn/d_msg_scrn_explain.h b/include/msg/scrn/d_msg_scrn_explain.h
index ea0b2c2e0b..216e7004af 100644
--- a/include/msg/scrn/d_msg_scrn_explain.h
+++ b/include/msg/scrn/d_msg_scrn_explain.h
@@ -2,10 +2,12 @@
#define MSG_SCRN_D_MSG_SCRN_EXPLAIN_H
#include "msg/scrn/d_msg_scrn_base.h"
-#include "JSystem/J2DGraph/J2DOrthoGraph.h"
+class J2DOrthoGraph;
+struct STControl;
class dMsgScrnArrow_c;
class dMsgScrn3Select_c;
+class dMsgString_c;
class dMsgScrnExplain_c {
public:
diff --git a/include/rel/d/a/b/d_a_b_ob/d_a_b_ob.h b/include/rel/d/a/b/d_a_b_ob/d_a_b_ob.h
index d00d3ce40c..fde7bd6916 100644
--- a/include/rel/d/a/b/d_a_b_ob/d_a_b_ob.h
+++ b/include/rel/d/a/b/d_a_b_ob/d_a_b_ob.h
@@ -1,6 +1,7 @@
#ifndef D_A_B_OB_H
#define D_A_B_OB_H
+#include "Z2AudioLib/Z2Creature.h"
#include "d/cc/d_cc_uty.h"
#include "d/com/d_com_inf_game.h"
diff --git a/include/rel/d/a/d_a_arrow/d_a_arrow.h b/include/rel/d/a/d_a_arrow/d_a_arrow.h
index 31d7392100..ab04bdf1cd 100644
--- a/include/rel/d/a/d_a_arrow/d_a_arrow.h
+++ b/include/rel/d/a/d_a_arrow/d_a_arrow.h
@@ -1,12 +1,13 @@
#ifndef D_A_ARROW_H
#define D_A_ARROW_H
-#include "f_op/f_op_actor_mng.h"
+#include "d/a/d_a_player.h"
#include "d/d_procname.h"
#include "d/cc/d_cc_d.h"
#include "d/bg/d_bg_s_acch.h"
#include "d/bg/d_bg_s_lin_chk.h"
#include "d/particle/d_particle.h"
+#include "f_op/f_op_actor_mng.h"
class daArrow_c : public fopAc_ac_c {
public:
diff --git a/include/rel/d/a/d_a_boomerang/d_a_boomerang.h b/include/rel/d/a/d_a_boomerang/d_a_boomerang.h
index 93e99f7301..63cf4daeb9 100644
--- a/include/rel/d/a/d_a_boomerang/d_a_boomerang.h
+++ b/include/rel/d/a/d_a_boomerang/d_a_boomerang.h
@@ -4,6 +4,7 @@
#include "JSystem/J2DGraph/J2DScreen.h"
#include "Z2AudioLib/Z2SoundObject.h"
#include "d/bg/d_bg_s_acch.h"
+#include "d/bg/d_bg_s_lin_chk.h"
#include "d/cc/d_cc_d.h"
#include "d/particle/d_particle_copoly.h"
#include "f_op/f_op_actor_mng.h"
diff --git a/include/rel/d/a/d_a_cstaF/d_a_cstaF.h b/include/rel/d/a/d_a_cstaF/d_a_cstaF.h
index 4ae90e6271..bbd183c09b 100644
--- a/include/rel/d/a/d_a_cstaF/d_a_cstaF.h
+++ b/include/rel/d/a/d_a_cstaF/d_a_cstaF.h
@@ -1,8 +1,10 @@
#ifndef D_A_CSTAF_H
#define D_A_CSTAF_H
+#include "Z2AudioLib/Z2Creature.h"
#include "d/bg/d_bg_s_movebg_actor.h"
#include "d/com/d_com_inf_game.h"
+#include "d/particle/d_particle_copoly.h"
class daCstaF_c : public dBgS_MoveBgActor {
public:
diff --git a/include/rel/d/a/d_a_cstatue/d_a_cstatue.h b/include/rel/d/a/d_a_cstatue/d_a_cstatue.h
index 8b0135832a..3533acc1ce 100644
--- a/include/rel/d/a/d_a_cstatue/d_a_cstatue.h
+++ b/include/rel/d/a/d_a_cstatue/d_a_cstatue.h
@@ -2,6 +2,7 @@
#define D_A_CSTATUE_H
#include "SSystem/SComponent/c_phase.h"
+#include "Z2AudioLib/Z2Creature.h"
#include "d/bg/d_bg_s_acch.h"
#include "d/cc/d_cc_d.h"
#include "d/particle/d_particle_copoly.h"
diff --git a/include/rel/d/a/d_a_guard_mng/d_a_guard_mng.h b/include/rel/d/a/d_a_guard_mng/d_a_guard_mng.h
index 46e9113819..282cbc655b 100644
--- a/include/rel/d/a/d_a_guard_mng/d_a_guard_mng.h
+++ b/include/rel/d/a/d_a_guard_mng/d_a_guard_mng.h
@@ -1,9 +1,11 @@
#ifndef D_A_GUARD_MNG_H
#define D_A_GUARD_MNG_H
+#include "JSystem/JKernel/JKRHeap.h"
+#include "d/a/d_a_player.h"
+#include "d/com/d_com_inf_game.h"
#include "f_op/f_op_actor_mng.h"
#include "rel/d/a/tag/d_a_tag_guard/d_a_tag_guard.h"
-#include "d/com/d_com_inf_game.h"
class daGuardMng_c : public fopAc_ac_c {
public:
diff --git a/include/rel/d/a/d_a_horse/d_a_horse.h b/include/rel/d/a/d_a_horse/d_a_horse.h
index 4252b18e89..757eae2930 100644
--- a/include/rel/d/a/d_a_horse/d_a_horse.h
+++ b/include/rel/d/a/d_a_horse/d_a_horse.h
@@ -2,7 +2,10 @@
#define D_A_HORSE_H
#include "Z2AudioLib/Z2Creature.h"
+#include "d/a/d_a_player.h"
#include "d/bg/d_bg_s.h"
+#include "d/bg/d_bg_s_acch.h"
+#include "d/bg/d_bg_s_lin_chk.h"
#include "d/cc/d_cc_d.h"
#include "d/msg/d_msg_flow.h"
#include "dolphin/types.h"
diff --git a/include/rel/d/a/d_a_skip_2D/d_a_skip_2D.h b/include/rel/d/a/d_a_skip_2D/d_a_skip_2D.h
index 48fe2419d4..0663639130 100644
--- a/include/rel/d/a/d_a_skip_2D/d_a_skip_2D.h
+++ b/include/rel/d/a/d_a_skip_2D/d_a_skip_2D.h
@@ -3,6 +3,8 @@
#include "d/com/d_com_inf_game.h"
+class dMeterButton_c;
+
class daSkip2D_c : public fopAc_ac_c {
public:
daSkip2D_c() {
diff --git a/include/rel/d/a/d_a_spinner/d_a_spinner.h b/include/rel/d/a/d_a_spinner/d_a_spinner.h
index f139147ad6..31f85cc404 100644
--- a/include/rel/d/a/d_a_spinner/d_a_spinner.h
+++ b/include/rel/d/a/d_a_spinner/d_a_spinner.h
@@ -2,6 +2,7 @@
#define D_A_SPINNER_H
#include "d/com/d_com_inf_game.h"
+#include "d/particle/d_particle_copoly.h"
#include "dolphin/types.h"
class daSpinner_c : public fopAc_ac_c {
diff --git a/include/rel/d/a/e/d_a_e_yk/d_a_e_yk.h b/include/rel/d/a/e/d_a_e_yk/d_a_e_yk.h
index be52d7f2cd..9271288722 100644
--- a/include/rel/d/a/e/d_a_e_yk/d_a_e_yk.h
+++ b/include/rel/d/a/e/d_a_e_yk/d_a_e_yk.h
@@ -1,6 +1,7 @@
#ifndef D_A_E_YK_H
#define D_A_E_YK_H
+#include "Z2AudioLib/Z2Creature.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "d/com/d_com_inf_game.h"
diff --git a/include/rel/d/a/e/d_a_e_ym/d_a_e_ym.h b/include/rel/d/a/e/d_a_e_ym/d_a_e_ym.h
index 75ae6fd416..16ae6f8791 100644
--- a/include/rel/d/a/e/d_a_e_ym/d_a_e_ym.h
+++ b/include/rel/d/a/e/d_a_e_ym/d_a_e_ym.h
@@ -1,6 +1,7 @@
#ifndef D_A_E_YM_H
#define D_A_E_YM_H
+#include "Z2AudioLib/Z2Creature.h"
#include "d/cc/d_cc_uty.h"
#include "d/com/d_com_inf_game.h"
diff --git a/include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h b/include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h
index 9e225e4156..47be9da007 100644
--- a/include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h
+++ b/include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h
@@ -5,6 +5,7 @@
#include "d/bg/d_bg_s_acch.h"
#include "d/cc/d_cc_d.h"
#include "dolphin/types.h"
+#include "f_op/f_op_actor.h"
class daObjCarry_c : public fopAc_ac_c {
public:
diff --git a/include/rel/d/a/obj/d_a_obj_cboard/d_a_obj_cboard.h b/include/rel/d/a/obj/d_a_obj_cboard/d_a_obj_cboard.h
index eafbdabf4c..6bca7f1125 100644
--- a/include/rel/d/a/obj/d_a_obj_cboard/d_a_obj_cboard.h
+++ b/include/rel/d/a/obj/d_a_obj_cboard/d_a_obj_cboard.h
@@ -3,6 +3,7 @@
#include "d/bg/d_bg_s_movebg_actor.h"
#include "d/com/d_com_inf_game.h"
+#include "f_op/f_op_actor_mng.h"
class daObjBoard_c : public dBgS_MoveBgActor {
public:
diff --git a/include/rel/d/a/obj/d_a_obj_mgate/d_a_obj_mgate.h b/include/rel/d/a/obj/d_a_obj_mgate/d_a_obj_mgate.h
index 7f65865c11..ea7fd6691f 100644
--- a/include/rel/d/a/obj/d_a_obj_mgate/d_a_obj_mgate.h
+++ b/include/rel/d/a/obj/d_a_obj_mgate/d_a_obj_mgate.h
@@ -3,6 +3,7 @@
#include "d/bg/d_bg_s_movebg_actor.h"
#include "d/com/d_com_inf_game.h"
+#include "f_op/f_op_actor_mng.h"
class daObjMGate_c : public dBgS_MoveBgActor {
public:
diff --git a/include/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.h b/include/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.h
index fa880eb032..1d55238d52 100644
--- a/include/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.h
+++ b/include/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.h
@@ -3,6 +3,7 @@
#include "dolphin/types.h"
#include "d/com/d_com_inf_game.h"
+#include "f_op/f_op_actor_mng.h"
enum {
OBJ_STONE_TYPE_SMALL = 0,
diff --git a/include/rel/d/a/obj/d_a_obj_yobikusa/d_a_obj_yobikusa.h b/include/rel/d/a/obj/d_a_obj_yobikusa/d_a_obj_yobikusa.h
index 45b4e09a2f..d9d77a8fbf 100644
--- a/include/rel/d/a/obj/d_a_obj_yobikusa/d_a_obj_yobikusa.h
+++ b/include/rel/d/a/obj/d_a_obj_yobikusa/d_a_obj_yobikusa.h
@@ -2,6 +2,7 @@
#define D_A_OBJ_YOBIKUSA_H
#include "d/com/d_com_inf_game.h"
+#include "f_op/f_op_actor_mng.h"
class daObjYobikusa_c;
typedef void (daObjYobikusa_c::*actionFunc)();
diff --git a/include/rel/d/a/tag/d_a_tag_CstaSw/d_a_tag_CstaSw.h b/include/rel/d/a/tag/d_a_tag_CstaSw/d_a_tag_CstaSw.h
index e6992306e6..ae36097347 100644
--- a/include/rel/d/a/tag/d_a_tag_CstaSw/d_a_tag_CstaSw.h
+++ b/include/rel/d/a/tag/d_a_tag_CstaSw/d_a_tag_CstaSw.h
@@ -2,6 +2,7 @@
#define D_A_TAG_CSTASW_H
#include "d/com/d_com_inf_game.h"
+#include "f_op/f_op_actor_mng.h"
#include "m_Do/m_Do_hostIO.h"
class daTagCstaSw_c : public fopAc_ac_c {
diff --git a/include/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena.h b/include/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena.h
index 9101c69d51..cf10cb8a61 100644
--- a/include/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena.h
+++ b/include/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena.h
@@ -1,6 +1,7 @@
#ifndef D_A_TAG_ARENA_H
#define D_A_TAG_ARENA_H
+#include "JSystem/JKernel/JKRHeap.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
diff --git a/include/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.h b/include/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.h
index 977192f2f6..b315862a41 100644
--- a/include/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.h
+++ b/include/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.h
@@ -1,6 +1,7 @@
#ifndef D_A_TAG_ASSISTANCE_H
#define D_A_TAG_ASSISTANCE_H
+#include "JSystem/JKernel/JKRHeap.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "d/com/d_com_inf_game.h"
diff --git a/include/rel/d/a/tag/d_a_tag_gra/d_a_tag_gra.h b/include/rel/d/a/tag/d_a_tag_gra/d_a_tag_gra.h
index 07d779bb38..ca7fd78312 100644
--- a/include/rel/d/a/tag/d_a_tag_gra/d_a_tag_gra.h
+++ b/include/rel/d/a/tag/d_a_tag_gra/d_a_tag_gra.h
@@ -1,6 +1,7 @@
#ifndef D_A_TAG_GRA_H
#define D_A_TAG_GRA_H
+#include "JSystem/JKernel/JKRHeap.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "d/com/d_com_inf_game.h"
diff --git a/include/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.h b/include/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.h
index 9cca8d66cd..e77161af76 100644
--- a/include/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.h
+++ b/include/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.h
@@ -1,9 +1,8 @@
#ifndef D_A_TAG_HOWL_H
#define D_A_TAG_HOWL_H
-#include "d/com/d_com_inf_game.h"
#include "d/d_procname.h"
-#include "f_op/f_op_actor_mng.h"
+#include "f_op/f_op_actor.h"
class daTag_Howl_c : public fopAc_ac_c {
public:
diff --git a/include/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern.h b/include/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern.h
index eea9d27198..feadc9bc72 100644
--- a/include/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern.h
+++ b/include/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern.h
@@ -3,6 +3,8 @@
#include "f_op/f_op_actor_mng.h"
#include "d/com/d_com_inf_game.h"
+#include "d/msg/d_msg_flow.h"
+
class daTag_Lantern_c : public fopAc_ac_c {
public:
/* 8048ED28 */ int create();
diff --git a/include/rel/d/a/tag/d_a_tag_lv6CstaSw/d_a_tag_lv6CstaSw.h b/include/rel/d/a/tag/d_a_tag_lv6CstaSw/d_a_tag_lv6CstaSw.h
index 9f0dda433d..620595d744 100644
--- a/include/rel/d/a/tag/d_a_tag_lv6CstaSw/d_a_tag_lv6CstaSw.h
+++ b/include/rel/d/a/tag/d_a_tag_lv6CstaSw/d_a_tag_lv6CstaSw.h
@@ -2,6 +2,7 @@
#define D_A_TAG_LV6CSTASW_H
#include "d/com/d_com_inf_game.h"
+#include "f_op/f_op_actor_mng.h"
#include "m_Do/m_Do_hostIO.h"
class daLv6CstaSw_c : public fopAc_ac_c {
diff --git a/include/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h b/include/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h
index 675ce7214c..4f87877470 100644
--- a/include/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h
+++ b/include/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h
@@ -1,9 +1,8 @@
#ifndef D_A_TAG_MMSG_H
#define D_A_TAG_MMSG_H
-#include "d/a/d_a_player.h"
#include "dolphin/types.h"
-#include "f_op/f_op_actor_mng.h"
+#include "f_op/f_op_actor.h"
class daTagMmsg_c : public fopAc_ac_c {
public:
diff --git a/include/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule.h b/include/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule.h
index 71ef44e72c..4fc704f429 100644
--- a/include/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule.h
+++ b/include/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule.h
@@ -1,6 +1,7 @@
#ifndef D_A_TAG_SCHEDULE_H
#define D_A_TAG_SCHEDULE_H
+#include "JSystem/JKernel/JKRHeap.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
diff --git a/include/rel/d/a/tag/d_a_tag_spring/d_a_tag_spring.h b/include/rel/d/a/tag/d_a_tag_spring/d_a_tag_spring.h
index 90604ff928..8b2973bf39 100644
--- a/include/rel/d/a/tag/d_a_tag_spring/d_a_tag_spring.h
+++ b/include/rel/d/a/tag/d_a_tag_spring/d_a_tag_spring.h
@@ -2,6 +2,7 @@
#define D_A_TAG_SPRING_H
#include "d/com/d_com_inf_game.h"
+#include "f_op/f_op_actor_mng.h"
class daTagSpring_c : public fopAc_ac_c {
public:
diff --git a/include/rel/d/a/tag/d_a_tag_theB_hint/d_a_tag_theB_hint.h b/include/rel/d/a/tag/d_a_tag_theB_hint/d_a_tag_theB_hint.h
index 5e03effb42..e426670678 100644
--- a/include/rel/d/a/tag/d_a_tag_theB_hint/d_a_tag_theB_hint.h
+++ b/include/rel/d/a/tag/d_a_tag_theB_hint/d_a_tag_theB_hint.h
@@ -2,7 +2,10 @@
#define D_A_TAG_THEB_HINT_H
// #include "rel/d/a/npc/d_a_npc_theB/d_a_npc_theB.h"
+#include "JSystem/JKernel/JKRHeap.h"
#include "d/com/d_com_inf_game.h"
+#include "d/d_procname.h"
+#include "f_op/f_op_actor_mng.h"
// needs to be pulled from d_a_npc_theB.h eventually
struct daNpcTheB_c {