summaryrefslogtreecommitdiff
path: root/include/d
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2022-06-29 13:19:09 -0700
committerGitHub <noreply@github.com>2022-06-29 22:19:09 +0200
commit046d178003035ea87d3042a61917c2d482c68c74 (patch)
tree4240e760d8d40201ca4ec96634da8abff211f6bb /include/d
parentcd5b02450cf278cbeb2c8bb90be1ad22518938c7 (diff)
work on daalink, fop actor, mDo machine, msg_scrn, + various (#201)
* work on fop actor / actor mng, daalink, d_a_obj_item * d_a_title mostly decompiled * daalink / d_event / JMessage / dmsg_out_font work * msg_scrn_base / msg_scrn_boss * some work on mDo machine, d_menu_save, d_tresure, and various * remove asm * progress
Diffstat (limited to 'include/d')
-rw-r--r--include/d/a/d_a_alink.h841
-rw-r--r--include/d/a/d_a_horse_static.h16
-rw-r--r--include/d/a/d_a_item_static.h141
-rw-r--r--include/d/a/d_a_itembase.h27
-rw-r--r--include/d/a/d_a_itembase_static.h2
-rw-r--r--include/d/a/d_a_npc.h3
-rw-r--r--include/d/a/d_a_npc_cd.h6
-rw-r--r--include/d/a/d_a_npc_cd2.h6
-rw-r--r--include/d/a/d_a_obj_item.h24
-rw-r--r--include/d/a/d_a_obj_ss_base.h21
-rw-r--r--include/d/a/d_a_player.h38
-rw-r--r--include/d/bg/d_bg_s.h6
-rw-r--r--include/d/bg/d_bg_s_acch.h14
-rw-r--r--include/d/bg/d_bg_w.h12
-rw-r--r--include/d/bg/d_bg_w_base.h6
-rw-r--r--include/d/bg/d_bg_w_kcol.h4
-rw-r--r--include/d/cc/d_cc_d.h20
-rw-r--r--include/d/com/d_com_inf_actor.h12
-rw-r--r--include/d/com/d_com_inf_game.h202
-rw-r--r--include/d/com/d_com_static.h2
-rw-r--r--include/d/d_camera.h56
-rw-r--r--include/d/d_demo.h59
-rw-r--r--include/d/d_drawlist.h2
-rw-r--r--include/d/d_item.h3
-rw-r--r--include/d/d_item_data.h4
-rw-r--r--include/d/d_lib.h24
-rw-r--r--include/d/d_model.h2
-rw-r--r--include/d/d_path.h2
-rw-r--r--include/d/d_stage.h25
-rw-r--r--include/d/d_tresure.h41
-rw-r--r--include/d/event/d_event.h69
-rw-r--r--include/d/event/d_event_manager.h4
-rw-r--r--include/d/file/d_file_sel_warning.h21
-rw-r--r--include/d/kankyo/d_kankyo.h4
-rw-r--r--include/d/map/d_map_path_dmap.h2
-rw-r--r--include/d/menu/d_menu_save.h175
-rw-r--r--include/d/menu/d_menu_window.h60
-rw-r--r--include/d/meter/d_meter2.h3
-rw-r--r--include/d/meter/d_meter2_info.h71
-rw-r--r--include/d/msg/d_msg_class.h4
-rw-r--r--include/d/msg/d_msg_object.h231
-rw-r--r--include/d/msg/d_msg_out_font.h58
-rw-r--r--include/d/msg/d_msg_string.h22
-rw-r--r--include/d/msg/d_msg_string_base.h37
-rw-r--r--include/d/pane/d_pane_class_alpha.h1
-rw-r--r--include/d/particle/d_particle.h28
-rw-r--r--include/d/s/d_s_logo.h4
-rw-r--r--include/d/save/d_save.h7
-rw-r--r--include/d/save/d_save_HIO.h3
49 files changed, 1914 insertions, 511 deletions
diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h
index 1513caf469..f146bda476 100644
--- a/include/d/a/d_a_alink.h
+++ b/include/d/a/d_a_alink.h
@@ -26,7 +26,7 @@ class fopEn_enemy_c;
class daAlinkHIO_anm_c;
class J3DAnmTevRegKey;
class dDemo_actor_c;
-
+class daScex_c;
class J2DScreen;
class J2DPane;
class J2DAnmBase;
@@ -57,10 +57,10 @@ private:
/* 0x20 */ J2DAnmTevRegKey* field_0x20;
/* 0x24 */ J2DAnmColorKey* field_0x24;
/* 0x28 */ J2DAnmTransformKey* field_0x28;
- /* 0x2C */ float field_0x2c;
- /* 0x30 */ float field_0x30;
- /* 0x34 */ float field_0x34;
- /* 0x38 */ float field_0x38;
+ /* 0x2C */ f32 field_0x2c;
+ /* 0x30 */ f32 field_0x30;
+ /* 0x34 */ f32 field_0x34;
+ /* 0x38 */ f32 field_0x38;
};
class daAlink_sight_c : public daPy_sightPacket_c {
@@ -88,7 +88,7 @@ public:
/* 80125BF4 */ virtual void draw();
/* 800CFD58 */ virtual ~daAlink_blur_c();
-private:
+// private:
/* 0x010 */ void* m_blurTex;
/* 0x014 */ int field_0x14;
/* 0x018 */ u8 field_0x18[4];
@@ -116,7 +116,7 @@ public:
private:
/* 0x04 */ s16 mHitFlg;
/* 0x06 */ s16 mAppearFlg;
- /* 0x08 */ float mKeepMinY;
+ /* 0x08 */ f32 mKeepMinY;
/* 0x0C */ cXyz mHitPos;
}; // Size = 0x18
@@ -172,6 +172,9 @@ struct daAlink_WlAnmData {
/* 0x7 */ u8 field_0x7;
}; // Size: 0x8
+class daAlink_c;
+typedef int (daAlink_c::*daAlink_procFunc)();
+
class daAlink_c : public daPy_py_c {
public:
enum daAlink_ANM {
@@ -198,8 +201,13 @@ public:
/* 0xFD */ ANM_TRANSFORM_WOLF = 0xFD, // verify
+ /* 0x188 */ ANM_DUNGEON_WARP_READY_INIT = 0x188,
+
/* 0x18D */ ANM_CUT_JUMP_LARGE = 0x18D, // verify
- ANM_GANON_FINISH = 408 // name probably wrong, fix later
+ /* 0x18F */ ANM_MASTER_SWORD_STICK_INIT = 0x18F,
+ /* 0x190 */ ANM_MASTER_SWORD_STICK,
+ /* 0x191 */ ANM_MASTER_SWORD_PULL_INIT,
+ /* 0x198 */ ANM_GANON_FINISH = 408, // name probably wrong, fix later
};
enum daAlink_UPPER {
@@ -251,165 +259,358 @@ public:
};
enum daAlink_PROC {
- /* 0x000 */ PREACTION_UNEQUIP,
- /* 0x001 */ SERVICE_WAIT,
- /* 0x003 */ HUMAN_WAIT = 3,
- /* 0x004 */ HUMAN_MOVE,
- /* 0x005 */ HUMAN_ATN_MOVE,
- /* 0x006 */ HUMAN_ATN_ACTOR_WAIT,
- /* 0x007 */ HUMAN_ATN_ACTOR_MOVE,
- /* 0x008 */ HUMAN_WAIT_TURN,
- /* 0x009 */ HUMAN_MOVE_TURN,
- /* 0x00A */ HUMAN_SIDESTEP,
- /* 0x00B */ HUMAN_SIDESTEP_LAND,
- /* 0x00C */ HUMAN_SLIDE,
- /* 0x00D */ HUMAN_SLIDE_LAND,
- /* 0x00E */ FRONT_ROLL,
- /* 0x00F */ FRONT_ROLL_CRASH,
- /* 0x010 */ HUMAN_KNOCKBACK,
- /* 0x011 */ SIDE_ROLL,
- /* 0x012 */ BACK_JUMP,
- /* 0x013 */ BACK_JUMP_LAND,
- /* 0x014 */ SLIP,
- /* 0x015 */ HUMAN_AUTOJUMP,
- /* 0x016 */ DIVE_JUMP,
- /* 0x017 */ ROLL_JUMP,
- /* 0x018 */ FALL,
- /* 0x019 */ LAND,
- /* 0x01A */ SMALL_JUMP,
- /* 0x01B */ STEP_MOVE,
- /* 0x01D */ GUARD_SLIP = 29,
- /* 0x01E */ GUARD_ATTACK,
- /* 0x01F */ GUARD_BREAK,
- /* 0x020 */ TURN_MOVE,
- /* 0x021 */ CUT_NORMAL,
- /* 0x022 */ CUT_FINISH,
- /* 0x023 */ CUT_FINISH_JUMP_UP,
- /* 0x024 */ CUT_FINISH_JUMP_UP_LAND,
- /* 0x025 */ CUT_REVERSE,
- /* 0x026 */ CUT_JUMP,
- /* 0x027 */ CUT_JUMP_LAND,
- /* 0x028 */ COMBO_CUT_TURN,
- /* 0x029 */ CUT_CHARGE,
- /* 0x02A */ CUT_TURN_MOVE,
- /* 0x02B */ CUT_DOWN,
- /* 0x02C */ CUT_DOWN_LAND,
- /* 0x02D */ CUT_HEAD,
- /* 0x02E */ CUT_HEAD_LAND,
- /* 0x02F */ CUT_LARGE_JUMP_CHARGE,
- /* 0x030 */ CUT_LARGE_JUMP,
- /* 0x031 */ CUT_LARGE_JUMP_LAND,
- /* 0x032 */ DAMAGE,
- /* 0x034 */ LAND_DAMAGE = 52,
- /* 0x035 */ CRAWL_START,
- /* 0x036 */ CRAWL_MOVE,
- /* 0x037 */ CRAWL_AUTOMOVE,
- /* 0x038 */ CRAWL_END,
- /* 0x039 */ PULL_MOVE,
- /* 0x03A */ HORSE_RIDE,
- /* 0x03B */ HORSE_GETOFF,
- /* 0x03D */ HORSE_TURN = 61,
- /* 0x03E */ HORSE_JUMP,
- /* 0x03F */ HORSE_LAND,
- /* 0x040 */ HORSE_SUBJECTIVITY,
- /* 0x041 */ HORSE_CUT,
- /* 0x042 */ HORSE_CUT_CHARGE_READY,
- /* 0x043 */ HORSE_CUT_TURN,
- /* 0x044 */ HORSE_DAMAGE,
- /* 0x045 */ RIDE_BOW_READY,
- /* 0x04C */ HORSE_BOTTLE_DRINK = 76,
- /* 0x04E */ HORSE_KANDELAAR_POUR = 78,
- /* 0x04F */ HORSE_RUN,
- /* 0x050 */ HORSE_HANG,
- /* 0x053 */ BOAR_RUN = 83,
- /* 0x055 */ HANG_START = 85,
- /* 0x056 */ HANG_FALL_START,
- /* 0x057 */ HANG_UP,
- /* 0x058 */ HANG_WAIT,
- /* 0x059 */ HANG_MOVE,
- /* 0x065 */ COPY_ROD_SWING = 101,
- /* 0x06B */ CLIMB_MOVE_LADDER = 107,
- /* 0x06C */ GRAB_READY = 108,
- /* 0x06D */ GRAB_UP,
- /* 0x06F */ GRAB_THROW = 111,
- /* 0x070 */ GRAB_DOWN,
- /* 0x072 */ GRAB_REBOUND = 114,
- /* 0x073 */ GRAB_STAND,
- /* 0x074 */ INSECT_CATCH,
- /* 0x075 */ PICK_UP,
- /* 0x076 */ PICK_PUT,
- /* 0x077 */ HUMAN_ST_ESCAPE,
- /* 0x082 */ CLIMB_MOVE_VERTICAL = 130,
- /* 0x083 */ CLIMB_MOVE_HORIZONTAL,
- /* 0x084 */ CLIMB_HANG,
- /* 0x08C */ CANOE_RIDE = 140,
- /* 0x08D */ CANOE_JUMP_RIDE,
- /* 0x08E */ CANOE_GETOFF,
- /* 0x090 */ CANOE_ROW = 144,
- /* 0x091 */ CANOE_PADDLE_SHIFT,
- /* 0x092 */ CANOE_PADDLE_PUT,
- /* 0x093 */ CANOE_PADDLE_GRAB,
- /* 0x094 */ CANOE_ROD_GRAB,
- /* 0x096 */ CANOE_FISHING_REEL = 150,
- /* 0x097 */ CANOE_FISHING_GET,
- /* 0x098 */ CANOE_SUBJECTIVITY,
- /* 0x0A0 */ CANOE_BOTTLE_DRINK = 160,
- /* 0x0A1 */ CANOE_KANDELAAR_POUR,
- /* 0x0A3 */ FISHING_FOOD = 163,
- /* 0x0AD */ BOARD_CUT_TURN = 173,
- /* 0x0AF */ FM_CHAIN_UP,
- /* 0x0B3 */ BOTTLE_DRINK = 179,
- /* 0x0B5 */ BOTTLE_SWING = 181,
- /* 0x0BA */ GRASS_WHISTLE = 186,
- /* 0x0BC */ HAWK_WAIT = 188,
- /* 0x0BD */ FLOOR_DOWN_REBOUND = 189,
- /* 0x0BE */ GORON_RIDE_WAIT,
- /* 0x0C0 */ GOAT_THROW = 192,
- /* 0x0C1 */ GOAT_STROKE,
- /* 0x0CC */ MAGNE_BOOTS_FLY = 204,
- /* 0x0CD */ BOOTS_EQUIP,
- /* 0x0CF */ SUMOU_PUSH = 207,
- /* 0x0D0 */ SUMOU_SIDE_MOVE,
- /* 0x0D1 */ SUMOU_ACTION,
- /* 0x0D2 */ SUMOU_STAGGER,
- /* 0x0D3 */ SUMOU_WIN_LOSE,
- /* 0x0DC */ BOSS_ENEMY_HANG = 220,
- /* 0x0DE */ SCREAM_WAIT = 222,
- /* 0x0EA */ DUNGEON_WARP_READY = 234,
- /* 0x0ED */ WOLF_HOWL = 237,
- /* 0x0F1 */ WOLF_WAIT = 241,
- /* 0x0F2 */ WOLF_MOVE,
- /* 0x0F3 */ WOLF_DASH,
- /* 0x0F4 */ WOLF_KNOCKBACK,
- /* 0x0F6 */ WOLF_ATN_WAIT = 246,
- /* 0x0F7 */ WOLF_SIDESTEP,
- /* 0x0F8 */ WOLF_SIDESTEP_LAND,
- /* 0x0F9 */ WOLF_BACKFLIP,
- /* 0x0FA */ WOLF_BACKFLIP_LAND,
- /* 0x0FC */ WOLF_AUTOJUMP = 252,
- /* 0x0FF */ WOLF_RSIT = 255,
- /* 0x107 */ WOLF_DAMAGE = 263,
- /* 0x10F */ WOLF_SLIDE = 271,
- /* 0x114 */ WOLF_ROPE_HANG = 276,
- /* 0x118 */ WOLF_TAGLOCK_JUMP = 280,
- /* 0x119 */ WOLF_TAGLOCK_LAND,
- /* 0x11C */ WOLF_JUMPATTACK = 284,
- /* 0x121 */ WOLF_ST_ESCAPE = 289,
- /* 0x123 */ WOLF_DOWNATTACK_PULLOUT = 291,
- /* 0x131 */ WOLF_CHAIN = 305,
- /* 0x132 */ WOLF_DIG,
- /* 0x136 */ WOLF_ENEMY_HANG_BITE = 310,
- /* 0x13E */ SUBJECTIVITY = 318,
- /* 0x141 */ POLY_DAMAGE = 321,
- /* 0x142 */ ELEC_DAMAGE,
- /* 0x143 */ PUSH_PULL_WAIT,
- /* 0x144 */ PUSH_MOVE,
- /* 0x148 */ TRESURE_STAND = 328,
- /* 0x14D */ METAMORPHOSE = 333,
- /* 0x14F */ WARP = 335,
- /* 0x150 */ DEAD,
- /* 0x159 */ LARGE_DAMAGE = 345,
- /* 0x15A */ LARGE_DAMAGE_WALL,
+ /* 0x000 */ PROC_PREACTION_UNEQUIP,
+ /* 0x001 */ PROC_SERVICE_WAIT,
+ /* 0x002 */ PROC_TIRED_WAIT,
+ /* 0x003 */ PROC_WAIT,
+ /* 0x004 */ PROC_MOVE,
+ /* 0x005 */ PROC_ATN_MOVE,
+ /* 0x006 */ PROC_ATN_ACTOR_WAIT,
+ /* 0x007 */ PROC_ATN_ACTOR_MOVE,
+ /* 0x008 */ PROC_WAIT_TURN,
+ /* 0x009 */ PROC_MOVE_TURN,
+ /* 0x00A */ PROC_SIDESTEP,
+ /* 0x00B */ PROC_SIDESTEP_LAND,
+ /* 0x00C */ PROC_SLIDE,
+ /* 0x00D */ PROC_SLIDE_LAND,
+ /* 0x00E */ PROC_FRONT_ROLL,
+ /* 0x00F */ PROC_FRONT_ROLL_CRASH,
+ /* 0x010 */ PROC_FRONT_ROLL_SUCCESS,
+ /* 0x011 */ PROC_SIDE_ROLL,
+ /* 0x012 */ PROC_BACK_JUMP,
+ /* 0x013 */ PROC_BACK_JUMP_LAND,
+ /* 0x014 */ PROC_SLIP,
+ /* 0x015 */ PROC_AUTO_JUMP,
+ /* 0x016 */ PROC_DIVE_JUMP,
+ /* 0x017 */ PROC_ROLL_JUMP,
+ /* 0x018 */ PROC_FALL,
+ /* 0x019 */ PROC_LAND,
+ /* 0x01A */ PROC_SMALL_JUMP,
+ /* 0x01B */ PROC_STEP_MOVE,
+ /* 0x01C */ PROC_CROUCH,
+ /* 0x01D */ PROC_GUARD_SLIP,
+ /* 0x01E */ PROC_GUARD_ATTACK,
+ /* 0x01F */ PROC_GUARD_BREAK,
+ /* 0x020 */ PROC_TURN_MOVE,
+ /* 0x021 */ PROC_CUT_NORMAL,
+ /* 0x022 */ PROC_CUT_FINISH,
+ /* 0x023 */ PROC_CUT_FINISH_JUMP_UP,
+ /* 0x024 */ PROC_CUT_FINISH_JUMP_UP_LAND,
+ /* 0x025 */ PROC_CUT_REVERSE,
+ /* 0x026 */ PROC_CUT_JUMP,
+ /* 0x027 */ PROC_CUT_JUMP_LAND,
+ /* 0x028 */ PROC_CUT_TURN,
+ /* 0x029 */ PROC_CUT_TURN_CHARGE,
+ /* 0x02A */ PROC_CUT_TURN_MOVE,
+ /* 0x02B */ PROC_CUT_DOWN,
+ /* 0x02C */ PROC_CUT_DOWN_LAND,
+ /* 0x02D */ PROC_CUT_HEAD,
+ /* 0x02E */ PROC_CUT_HEAD_LAND,
+ /* 0x02F */ PROC_CUT_LARGE_JUMP_CHARGE,
+ /* 0x030 */ PROC_CUT_LARGE_JUMP,
+ /* 0x031 */ PROC_CUT_LARGE_JUMP_LAND,
+ /* 0x032 */ PROC_DAMAGE,
+ /* 0x033 */ PROC_LARGE_DAMAGE_UP,
+ /* 0x034 */ PROC_LAND_DAMAGE,
+ /* 0x035 */ PROC_CRAWL_START,
+ /* 0x036 */ PROC_CRAWL_MOVE,
+ /* 0x037 */ PROC_CRAWL_AUTO_MOVE,
+ /* 0x038 */ PROC_CRAWL_END,
+ /* 0x039 */ PROC_PULL_MOVE,
+ /* 0x03A */ PROC_HORSE_RIDE,
+ /* 0x03B */ PROC_HORSE_GETOFF,
+ /* 0x03C */ PROC_HORSE_WAIT,
+ /* 0x03D */ PROC_HORSE_TURN,
+ /* 0x03E */ PROC_HORSE_JUMP,
+ /* 0x03F */ PROC_HORSE_LAND,
+ /* 0x040 */ PROC_HORSE_SUBJECTIVITY,
+ /* 0x041 */ PROC_HORSE_CUT,
+ /* 0x042 */ PROC_HORSE_CUT_CHARGE_READY,
+ /* 0x043 */ PROC_HORSE_CUT_TURN,
+ /* 0x044 */ PROC_HORSE_DAMAGE,
+ /* 0x045 */ PROC_HORSE_BOW_SUBJECT,
+ /* 0x046 */ PROC_HORSE_BOW_MOVE,
+ /* 0x047 */ PROC_HORSE_GRAB_MOVE,
+ /* 0x048 */ PROC_HORSE_BOOMERANG_SUBJECT,
+ /* 0x049 */ PROC_HORSE_BOOMERANG_MOVE,
+ /* 0x04A */ PROC_HORSE_HOOKSHOT_SUBJECT,
+ /* 0x04B */ PROC_HORSE_HOOKSHOT_MOVE,
+ /* 0x04C */ PROC_HORSE_BOTTLE_DRINK,
+ /* 0x04D */ PROC_HORSE_COMEBACK,
+ /* 0x04E */ PROC_HORSE_KANDELAAR_POUR,
+ /* 0x04F */ PROC_HORSE_RUN,
+ /* 0x050 */ PROC_HORSE_HANG,
+ /* 0x051 */ PROC_HORSE_GET_KEY,
+ /* 0x052 */ PROC_HORSE_LOOK_DOWN,
+ /* 0x053 */ PROC_BOAR_RUN,
+ /* 0x054 */ PROC_SWORD_UNEQUIP_SP,
+ /* 0x055 */ PROC_HANG_START,
+ /* 0x056 */ PROC_HANG_FALL_START,
+ /* 0x057 */ PROC_HANG_UP,
+ /* 0x058 */ PROC_HANG_WAIT,
+ /* 0x059 */ PROC_HANG_MOVE,
+ /* 0x05A */ PROC_HANG_CLIMB,
+ /* 0x05B */ PROC_HANG_WALL_CATCH,
+ /* 0x05C */ PROC_HANG_READY,
+ /* 0x05D */ PROC_HANG_LEVER_DOWN,
+ /* 0x05E */ PROC_BOW_SUBJECT,
+ /* 0x05F */ PROC_BOW_MOVE,
+ /* 0x060 */ PROC_BOOMERANG_SUBJECT,
+ /* 0x061 */ PROC_BOOMERANG_MOVE,
+ /* 0x062 */ PROC_BOOMERANG_CATCH,
+ /* 0x063 */ PROC_COPY_ROD_SUBJECT,
+ /* 0x064 */ PROC_COPY_ROD_MOVE,
+ /* 0x065 */ PROC_COPY_ROD_SWING,
+ /* 0x066 */ PROC_COPY_ROD_REVIVE,
+ /* 0x067 */ PROC_LADDER_UP_START,
+ /* 0x068 */ PROC_LADDER_UP_END,
+ /* 0x069 */ PROC_LADDER_DOWN_START,
+ /* 0x06A */ PROC_LADDER_DOWN_END,
+ /* 0x06B */ PROC_LADDER_MOVE,
+ /* 0x06C */ PROC_GRAB_READY,
+ /* 0x06D */ PROC_GRAB_UP,
+ /* 0x06E */ PROC_GRAB_MISS,
+ /* 0x06F */ PROC_GRAB_THROW,
+ /* 0x070 */ PROC_GRAB_PUT,
+ /* 0x071 */ PROC_GRAB_WAIT,
+ /* 0x072 */ PROC_GRAB_REBOUND,
+ /* 0x073 */ PROC_GRAB_STAND,
+ /* 0x074 */ PROC_INSECT_CATCH,
+ /* 0x075 */ PROC_PICK_UP,
+ /* 0x076 */ PROC_PICK_PUT,
+ /* 0x077 */ PROC_HUMAN_ST_ESCAPE,
+ /* 0x078 */ PROC_DK_CAUGHT,
+ /* 0x079 */ PROC_SWIM_UP,
+ /* 0x07A */ PROC_SWIM_WAIT,
+ /* 0x07B */ PROC_SWIM_MOVE,
+ /* 0x07C */ PROC_SWIM_DIVE,
+ /* 0x07D */ PROC_SWIM_HOOKSHOT_SUBJECT,
+ /* 0x07E */ PROC_SWIM_HOOKSHOT_MOVE,
+ /* 0x07F */ PROC_SWIM_DAMAGE,
+ /* 0x080 */ PROC_CLIMB_UP_START,
+ /* 0x081 */ PROC_CLIMB_DOWN_START,
+ /* 0x082 */ PROC_CLIMB_MOVE_UPDOWN,
+ /* 0x083 */ PROC_CLIMB_MOVE_SIDE,
+ /* 0x084 */ PROC_CLIMB_WAIT,
+ /* 0x085 */ PROC_CLIMB_TO_ROOF,
+ /* 0x086 */ PROC_ROOF_HANG_START,
+ /* 0x087 */ PROC_ROOF_HANG_WAIT,
+ /* 0x088 */ PROC_ROOF_HANG_FRONT_MOVE,
+ /* 0x089 */ PROC_ROOF_HANG_SIDE_MOVE,
+ /* 0x08A */ PROC_ROOF_HANG_TURN,
+ /* 0x08B */ PROC_ROOF_SWITCH_HANG,
+ /* 0x08C */ PROC_CANOE_RIDE,
+ /* 0x08D */ PROC_CANOE_JUMP_RIDE,
+ /* 0x08E */ PROC_CANOE_GETOFF,
+ /* 0x08F */ PROC_CANOE_WAIT,
+ /* 0x090 */ PROC_CANOE_ROW,
+ /* 0x091 */ PROC_CANOE_PADDLE_SHIFT,
+ /* 0x092 */ PROC_CANOE_PADDLE_PUT,
+ /* 0x093 */ PROC_CANOE_PADDLE_GRAB,
+ /* 0x094 */ PROC_CANOE_ROD_GRAB,
+ /* 0x095 */ PROC_CANOE_FISHING_WAIT,
+ /* 0x096 */ PROC_CANOE_FISHING_REEL,
+ /* 0x097 */ PROC_CANOE_FISHING_GET,
+ /* 0x098 */ PROC_CANOE_SUBJECTIVITY,
+ /* 0x099 */ PROC_CANOE_BOW_SUBJECT,
+ /* 0x09A */ PROC_CANOE_BOW_MOVE,
+ /* 0x09B */ PROC_CANOE_GRAB_MOVE,
+ /* 0x09C */ PROC_CANOE_BOOMERANG_SUBJECT,
+ /* 0x09D */ PROC_CANOE_BOOMERANG_MOVE,
+ /* 0x09E */ PROC_CANOE_HOOKSHOT_SUBJECT,
+ /* 0x09F */ PROC_CANOE_HOOKSHOT_MOVE,
+ /* 0x0A0 */ PROC_CANOE_BOTTLE_DRINK,
+ /* 0x0A1 */ PROC_CANOE_KANDELAAR_POUR,
+ /* 0x0A2 */ PROC_FISHING_CAST,
+ /* 0x0A3 */ PROC_FISHING_FOOD,
+ /* 0x0A4 */ PROC_SPINNER_READY,
+ /* 0x0A5 */ PROC_SPINNER_WAIT,
+ /* 0x0A6 */ PROC_BOARD_RIDE,
+ /* 0x0A7 */ PROC_BOARD_WAIT,
+ /* 0x0A8 */ PROC_BOARD_ROW,
+ /* 0x0A9 */ PROC_BOARD_TURN,
+ /* 0x0AA */ PROC_BOARD_JUMP,
+ /* 0x0AB */ PROC_BOARD_SUBJECTIVITY,
+ /* 0x0AC */ PROC_BOARD_CUT,
+ /* 0x0AD */ PROC_BOARD_CUT_TURN,
+ /* 0x0AE */ PROC_CHAIN_UP,
+ /* 0x0AF */ PROC_CHAIN_STRONG_PULL,
+ /* 0x0B0 */ PROC_DOOR_OPEN,
+ /* 0x0B1 */ PROC_MONKEY_MOVE,
+ /* 0x0B2 */ PROC_DEMO_BOOMERANG_CATCH,
+ /* 0x0B3 */ PROC_BOTTLE_DRINK,
+ /* 0x0B4 */ PROC_BOTTLE_OPEN,
+ /* 0x0B5 */ PROC_BOTTLE_SWING,
+ /* 0x0B6 */ PROC_BOTTLE_GET,
+ /* 0x0B7 */ PROC_KANDELAAR_SWING,
+ /* 0x0B8 */ PROC_KANDELAAR_POUR,
+ /* 0x0B9 */ PROC_GRASS_WHISTLE_GET,
+ /* 0x0BA */ PROC_GRASS_WHISTLE_WAIT,
+ /* 0x0BB */ PROC_HAWK_CATCH,
+ /* 0x0BC */ PROC_HAWK_SUBJECT,
+ /* 0x0BD */ PROC_FLOOR_DOWN_REBOUND,
+ /* 0x0BE */ PROC_GORON_RIDE_WAIT,
+ /* 0x0BF */ PROC_GOAT_MOVE,
+ /* 0x0C0 */ PROC_GOAT_CATCH,
+ /* 0x0C1 */ PROC_GOAT_STROKE,
+ /* 0x0C2 */ PROC_GORON_MOVE,
+ /* 0x0C3 */ PROC_BOSS_ATN_WAIT,
+ /* 0x0C4 */ PROC_HOOKSHOT_SUBJECT,
+ /* 0x0C5 */ PROC_HOOKSHOT_MOVE,
+ /* 0x0C6 */ PROC_HOOKSHOT_FLY,
+ /* 0x0C7 */ PROC_HOOKSHOT_ROOF_WAIT,
+ /* 0x0C8 */ PROC_HOOKSHOT_ROOF_SHOOT,
+ /* 0x0C9 */ PROC_HOOKSHOT_ROOF_BOOTS,
+ /* 0x0CA */ PROC_HOOKSHOT_WALL_WAIT,
+ /* 0x0CB */ PROC_HOOKSHOT_WALL_SHOOT,
+ /* 0x0CC */ PROC_MAGNE_BOOTS_FLY,
+ /* 0x0CD */ PROC_BOOTS_EQUIP,
+ /* 0x0CE */ PROC_SUMOU_READY,
+ /* 0x0CF */ PROC_SUMOU_MOVE,
+ /* 0x0D0 */ PROC_SUMOU_SIDE_MOVE,
+ /* 0x0D1 */ PROC_SUMOU_ACTION,
+ /* 0x0D2 */ PROC_SUMOU_STAGGER,
+ /* 0x0D3 */ PROC_SUMOU_WIN_LOSE,
+ /* 0x0D4 */ PROC_SUMOU_SHIKO,
+ /* 0x0D5 */ PROC_LOOK_UP,
+ /* 0x0D6 */ PROC_LOOK_UP_TO_GET_ITEM,
+ /* 0x0D7 */ PROC_HAND_PAT,
+ /* 0x0D8 */ PROC_IRON_BALL_SUBJECT,
+ /* 0x0D9 */ PROC_IRON_BALL_MOVE,
+ /* 0x0DA */ PROC_IRON_BALL_THROW,
+ /* 0x0DB */ PROC_IRON_BALL_RETURN,
+ /* 0x0DC */ PROC_BOSS_BODY_HANG,
+ /* 0x0DD */ PROC_OCTAIEAL_SPIT,
+ /* 0x0DE */ PROC_SCREAM_WAIT,
+ /* 0x0DF */ PROC_GOAT_STOP_READY,
+ /* 0x0E0 */ PROC_ZORA_MOVE,
+ /* 0x0E1 */ PROC_LOOK_AROUND_TURN,
+ /* 0x0E2 */ PROC_TRADE_ITEM_OUT,
+ /* 0x0E3 */ PROC_NOT_USE_ITEM,
+ /* 0x0E4 */ PROC_SWORD_READY,
+ /* 0x0E5 */ PROC_SWORD_PUSH,
+ /* 0x0E6 */ PROC_GANON_FINISH,
+ /* 0x0E7 */ PROC_CUT_FAST_READY,
+ /* 0x0E8 */ PROC_MASTER_SWORD_STICK,
+ /* 0x0E9 */ PROC_MASTER_SWORD_PULL,
+ /* 0x0EA */ PROC_DUNGEON_WARP_READY,
+ /* 0x0EB */ PROC_DUNEGON_WARP,
+ /* 0x0EC */ PROC_DUNEGON_WARP_SCN_START,
+ /* 0x0ED */ PROC_WOLF_HOWL_DEMO,
+ /* 0x0EE */ PROC_WOLF_SERVICE_WAIT,
+ /* 0x0EF */ PROC_WOLF_TIRED_WAIT,
+ /* 0x0F0 */ PROC_WOLF_MIDNA_RIDE_SHOCK,
+ /* 0x0F1 */ PROC_WOLF_WAIT,
+ /* 0x0F2 */ PROC_WOLF_MOVE,
+ /* 0x0F3 */ PROC_WOLF_DASH,
+ /* 0x0F4 */ PROC_WOLF_DASH_REVERSE,
+ /* 0x0F5 */ PROC_WOLF_WAIT_TURN,
+ /* 0x0F6 */ PROC_WOLF_ATN_AC_MOVE,
+ /* 0x0F7 */ PROC_WOLF_SIDESTEP,
+ /* 0x0F8 */ PROC_WOLF_SIDESTEP_LAND,
+ /* 0x0F9 */ PROC_WOLF_BACKJUMP,
+ /* 0x0FA */ PROC_WOLF_BACKJUMP_LAND,
+ /* 0x0FB */ PROC_WOLF_HOWL,
+ /* 0x0FC */ PROC_WOLF_AUTO_JUMP,
+ /* 0x0FD */ PROC_WOLF_FALL,
+ /* 0x0FE */ PROC_WOLF_LAND,
+ /* 0x0FF */ PROC_WOLF_SIT,
+ /* 0x100 */ PROC_WOLF_LIE_START,
+ /* 0x101 */ PROC_WOLF_LIE_MOVE,
+ /* 0x102 */ PROC_WOLF_LIE_AUTO_MOVE,
+ /* 0x103 */ PROC_WOLF_HANG_READY,
+ /* 0x104 */ PROC_WOLF_STEP_MOVE,
+ /* 0x105 */ PROC_WOLF_HANG_WALL_CATCH,
+ /* 0x106 */ PROC_WOLF_HANG_FALL_START,
+ /* 0x107 */ PROC_WOLF_DAMAGE,
+ /* 0x108 */ PROC_WOLF_LARGE_DAMAGE_UP,
+ /* 0x109 */ PROC_WOLF_LAND_DAMAGE,
+ /* 0x10A */ PROC_WOLF_SCREAM_WAIT,
+ /* 0x10B */ PROC_WOLF_SLIP,
+ /* 0x10C */ PROC_WOLF_SLIP_TURN,
+ /* 0x10D */ PROC_WOLF_SLIP_TURN_LAND,
+ /* 0x10E */ PROC_WOLF_SLIDE_READY,
+ /* 0x10F */ PROC_WOLF_SLIDE,
+ /* 0x110 */ PROC_WOLF_SLIDE_LAND,
+ /* 0x111 */ PROC_WOLF_WAIT_SLIP,
+ /* 0x112 */ PROC_WOLF_SLOPE_START,
+ /* 0x113 */ PROC_WOLF_ROPE_MOVE,
+ /* 0x114 */ PROC_WOLF_ROPE_HANG,
+ /* 0x115 */ PROC_WOLF_ROPE_TURN,
+ /* 0x116 */ PROC_WOLF_ROPE_STAGGER,
+ /* 0x117 */ PROC_WOLF_ROPE_SUBJECTIVITY,
+ /* 0x118 */ PROC_WOLF_TAG_JUMP,
+ /* 0x119 */ PROC_WOLF_TAG_JUMP_LAND,
+ /* 0x11A */ PROC_WOLF_ROLL_ATTACK_CHARGE,
+ /* 0x11B */ PROC_WOLF_ROLL_ATTACK_MOVE,
+ /* 0x11C */ PROC_WOLF_JUMP_ATTACK,
+ /* 0x11D */ PROC_WOLF_JUMP_AT_KICK,
+ /* 0x11E */ PROC_WOLF_JUMP_AT_SLIDE_LAND,
+ /* 0x11F */ PROC_WOLF_JUMP_AT_NORMAL_LAND,
+ /* 0x120 */ PROC_WOLF_WAIT_ATTACK,
+ /* 0x121 */ PROC_WOLF_ROLL_ATTACK,
+ /* 0x122 */ PROC_WOLF_DOWN_ATTACK,
+ /* 0x123 */ PROC_WOLF_DOWN_AT_LAND,
+ /* 0x124 */ PROC_WOLF_DOWN_AT_MISS_LAND,
+ /* 0x125 */ PROC_WOLF_LOCK_ATTACK,
+ /* 0x126 */ PROC_WOLF_LOCK_ATTACK_TURN,
+ /* 0x127 */ PROC_WOLF_SWIM_UP,
+ /* 0x128 */ PROC_WOLF_SWIM_WAIT,
+ /* 0x129 */ PROC_WOLF_SWIM_MOVE,
+ /* 0x12A */ PROC_WOLF_SWIM_END_WAIT,
+ /* 0x12B */ PROC_WOLF_GRAB_UP,
+ /* 0x12C */ PROC_WOLF_GRAB_PUT,
+ /* 0x12D */ PROC_WOLF_GRAB_THROW,
+ /* 0x12E */ PROC_WOLF_CHAIN_UP,
+ /* 0x12F */ PROC_WOLF_PUSH,
+ /* 0x130 */ PROC_WOLF_CHAIN_READY,
+ /* 0x131 */ PROC_WOLF_CHAIN_WAIT,
+ /* 0x132 */ PROC_WOLF_DIG,
+ /* 0x133 */ PROC_WOLF_DIG_THROUGH,
+ /* 0x134 */ PROC_WOLF_ATTACK_REVERSE,
+ /* 0x135 */ PROC_WOLF_ENEMY_THROW,
+ /* 0x136 */ PROC_WOLF_ENEMY_HANG_BITE,
+ /* 0x137 */ PROC_WOLF_GIANT_PUZZLE,
+ /* 0x138 */ PROC_WOLF_CARGO_CARRY,
+ /* 0x139 */ PROC_WOLF_GET_SMELL,
+ /* 0x13A */ PROC_WOLF_SMELL_WAIT,
+ /* 0x13B */ PROC_WOLF_SNOW_ESCAPE,
+ /* 0x13C */ PROC_WOLF_GANON_CATCH,
+ /* 0x13D */ PROC_TOOL_DEMO,
+ /* 0x13E */ PROC_SUBJECTIVITY,
+ /* 0x13F */ PROC_SWIM_SUBJECTIVITY,
+ /* 0x140 */ PROC_PEEP_SUBJECTIVITY,
+ /* 0x141 */ PROC_POLY_DAMAGE,
+ /* 0x142 */ PROC_ELEC_DAMAGE,
+ /* 0x143 */ PROC_PUSH_PULL_WAIT,
+ /* 0x144 */ PROC_PUSH_MOVE,
+ /* 0x145 */ PROC_TALK,
+ /* 0x146 */ PROC_OPEN_TREASURE,
+ /* 0x147 */ PROC_UNEQUIP,
+ /* 0x148 */ PROC_GET_ITEM,
+ /* 0x149 */ PROC_TURN_BACK,
+ /* 0x14A */ PROC_LOOK_WAIT,
+ /* 0x14B */ PROC_DEMO_PUSH_PULL_WAIT,
+ /* 0x14C */ PROC_DEMO_PUSH_MOVE,
+ /* 0x14D */ PROC_METAMORPHOSE,
+ /* 0x14E */ PROC_METAMORPHOSE_ONLY,
+ /* 0x14F */ PROC_WARP,
+ /* 0x150 */ PROC_DEAD,
+ /* 0x151 */ PROC_FOG_DEAD,
+ /* 0x152 */ PROC_LOOK_AROUND,
+ /* 0x153 */ PROC_CAUGHT,
+ /* 0x154 */ PROC_SAND_WALL_HIT,
+ /* 0x155 */ PROC_LAVA_RETURN,
+ /* 0x156 */ PROC_SWIM_FREEZE_RETURN,
+ /* 0x157 */ PROC_GET_READY_SIT,
+ /* 0x158 */ PROC_TW_GATE,
+ /* 0x159 */ PROC_LARGE_DAMAGE,
+ /* 0x15A */ PROC_LARGE_DAMAGE_WALL,
+ /* 0x15B */ PROC_NOD,
+ /* 0x15C */ PROC_EYE_AWAY,
+ /* 0x15D */ PROC_GLARE,
+ /* 0x15E */ PROC_HORSE_CALL_WAIT,
+ /* 0x15F */ PROC_QUAKE_WAIT,
};
// this might be one of the above enums, but not clear yet
@@ -421,6 +622,16 @@ public:
ANM_WOLF_ENEMY_THROW_RIGHT,
};
+ enum daAlink_ITEM_BTN {
+ /* 0x01 */ BTN_X = (1 << 0),
+ /* 0x02 */ BTN_Y = (1 << 1),
+ /* 0x04 */ BTN_Z = (1 << 2),
+ /* 0x08 */ BTN_B = (1 << 3),
+ /* 0x10 */ BTN_A = (1 << 4),
+ /* 0x20 */ BTN_L = (1 << 5),
+ /* 0x40 */ BTN_R = (1 << 6),
+ };
+
class firePointEff_c {
public:
/* 800CFC3C */ ~firePointEff_c();
@@ -481,14 +692,14 @@ public:
/* 800A3E98 */ void initModelEnv(u16, u32);
/* 800A3F00 */ void initDemoModel(J3DModel**, char const*, u32);
/* 800A3F98 */ void initDemoBck(mDoExt_bckAnm**, char const*);
- /* 800A4068 */ static void createHeap();
+ /* 800A4068 */ int createHeap();
/* 800A4910 */ void setSelectEquipItem(int);
/* 800A4BC8 */ BOOL checkBoarStart();
/* 800A4C40 */ BOOL checkCanoeStart();
/* 800A4CB4 */ void playerInit();
/* 800A54F4 */ BOOL checkHorseStart(u32, int);
- /* 800A551C */ void setStartProcInit();
- /* 800A5CC8 */ void create();
+ /* 800A551C */ int setStartProcInit();
+ /* 800A5CC8 */ int create();
/* 800A662C */ void setRoomInfo();
/* 800A67E0 */ void setShapeAngleOnGround();
/* 800A6B0C */ void setStepsOffset();
@@ -503,7 +714,7 @@ public:
/* 800A8310 */ void setBodyPartPos();
/* 800A87F8 */ void setAttentionPos();
/* 800A8CE4 */ void setMatrix();
- /* 800A9248 */ void simpleAnmPlay(J3DAnmBase*);
+ /* 800A9248 */ static void simpleAnmPlay(J3DAnmBase*);
/* 800A92F0 */ void setSwordPos();
/* 800A9450 */ void setItemMatrix(int);
/* 800A9F4C */ void setWolfItemMatrix();
@@ -619,8 +830,8 @@ public:
/* 800B477C */ void checkRequestTalkActor(dAttList_c*, fopAc_ac_c*);
/* 800B47B4 */ void checkServiceWaitMode();
/* 800B48D0 */ void setJumpMode();
- /* 800B4908 */ float getMetamorphoseNearDis() const;
- /* 800B4918 */ float getMetamorphoseFarDis() const;
+ /* 800B4908 */ f32 getMetamorphoseNearDis() const;
+ /* 800B4918 */ f32 getMetamorphoseFarDis() const;
/* 800B4928 */ s16 getMetamorphoseFarAngle() const;
/* 800B4938 */ void setMidnaMsg();
/* 800B4950 */ bool notTalk();
@@ -676,7 +887,7 @@ public:
/* 800BA6A0 */ void commonChangeItem();
/* 800BA914 */ void setItemAction();
/* 800BAF08 */ void checkNextActionFromCrouch(int);
- /* 800BAF80 */ void checkUpperReadyThrowAnime() const;
+ /* 800BAF80 */ int checkUpperReadyThrowAnime() const;
/* 800BB020 */ void getBodyAngleXBasePos(cXyz*);
/* 800BB084 */ void getBodyAngleXAtnActor(int);
/* 800BB2B0 */ void setBodyAngleXReadyAnime(int);
@@ -696,8 +907,8 @@ public:
/* 800BE26C */ void checkCoachGuardGame();
/* 800BE2C0 */ void checkRoofRestart();
/* 800BE3E4 */ void checkRestartRoom();
- /* 800BE9D4 */ void getSceneExitMoveAngle();
- /* 800BEAF8 */ void checkSceneChange(int);
+ /* 800BE9D4 */ s16 getSceneExitMoveAngle();
+ /* 800BEAF8 */ int checkSceneChange(int);
/* 800BF0B8 */ void voiceStartLevel(u32);
/* 800BF0EC */ void seStartSwordCut(u32);
/* 800BF194 */ void seStartMapInfo(u32);
@@ -720,12 +931,12 @@ public:
/* 800BFFCC */ void loadAramItemBtk(u16, J3DModel*);
/* 800C0028 */ void loadAramItemBtp(u16, J3DModel*);
/* 800C0084 */ void changeItemBck(u16, f32);
- /* 800C0114 */ void checkGroupItem(int, int) const;
- /* 800C0164 */ void checkSetItemTrigger(int);
- /* 800C0208 */ void checkItemSetButton(int);
- /* 800C0284 */ void checkField();
- /* 800C02C8 */ void checkBossRoom();
- /* 800C0310 */ void checkDungeon();
+ /* 800C0114 */ int checkGroupItem(int, int) const;
+ /* 800C0164 */ int checkSetItemTrigger(int);
+ /* 800C0208 */ int checkItemSetButton(int);
+ /* 800C0284 */ static bool checkField();
+ /* 800C02C8 */ static bool checkBossRoom();
+ /* 800C0310 */ static bool checkDungeon();
/* 800C0358 */ static bool checkCastleTown();
/* 800C03A0 */ static bool checkCloudSea();
/* 800C03E8 */ static bool checkRoomOnly();
@@ -1098,16 +1309,16 @@ public:
/* 800E23FC */ void concatMagneBootMtx();
/* 800E243C */ void concatMagneBootInvMtx();
/* 800E247C */ void multVecMagneBootInvMtx(cXyz*);
- /* 800E24B0 */ void commonMagneLineCheck(cXyz*, cXyz*);
+ /* 800E24B0 */ int commonMagneLineCheck(cXyz*, cXyz*);
/* 800E251C */ void checkBootsMoveAnime(int);
/* 800E2580 */ void setHeavyBoots(int);
- /* 800E2738 */ void getMagneBootsLocalAngleY(s16, int);
+ /* 800E2738 */ s16 getMagneBootsLocalAngleY(s16, int);
/* 800E2808 */ void setMagneBootsMtx(cBgS_PolyInfo*, int);
/* 800E2DC4 */ void cancelMagneBootsOn();
- /* 800E2F88 */ void checkMagneBootsFly();
+ /* 800E2F88 */ int checkMagneBootsFly();
/* 800E3048 */ void procBootsEquipInit();
/* 800E30DC */ void procBootsEquip();
- /* 800E3218 */ void procMagneBootsFlyInit();
+ /* 800E3218 */ int procMagneBootsFlyInit();
/* 800E3454 */ void procMagneBootsFly();
/* 800E3760 */ s16 getBombExplodeTime() const;
/* 800E3770 */ f32 getBombGravity() const;
@@ -1185,7 +1396,7 @@ public:
/* 800E8148 */ void checkPullBehindWall();
/* 800E8298 */ void offGoatStopGame();
/* 800E82B0 */ BOOL checkGoatCatchActor(fopAc_ac_c*);
- /* 800E8314 */ float getGoatCatchDistance2();
+ /* 800E8314 */ f32 getGoatCatchDistance2();
/* 800E8334 */ void endPushPull();
/* 800E8354 */ void getPushPullAnimeSpeed();
/* 800E8428 */ void procCoPushPullWaitInit(int);
@@ -1511,7 +1722,7 @@ public:
/* 8010163C */ void setRoofHangSwitch();
/* 801016AC */ void procRoofSwitchHangInit(fopAc_ac_c*);
/* 801017AC */ void procRoofSwitchHang();
- /* 80101890 */ void checkZoraWearMaskDraw();
+ /* 80101890 */ BOOL checkZoraWearMaskDraw();
/* 801018E4 */ void checkAcceptUseItemInWater(u16) const;
/* 80101934 */ void swimDeleteItem();
/* 801019B8 */ void getZoraSwim() const;
@@ -1739,7 +1950,7 @@ public:
/* 80118AD0 */ void checkFinalBattle();
/* 80118B34 */ void checkRestartDead(int, int);
/* 80118BF4 */ void setDeadRideSyncPos();
- /* 80118C98 */ void checkDeadHP();
+ /* 80118C98 */ BOOL checkDeadHP();
/* 80118D7C */ void checkDeadAction(int);
/* 80118FF8 */ void setHighModelBck(mDoExt_bckAnm*, u16);
/* 801190A4 */ void setHighModelFaceBtk(u16);
@@ -1817,15 +2028,15 @@ public:
/* 8011EA78 */ bool procGanonFinish();
/* 8011EAE8 */ void procCutFastReadyInit();
/* 8011EB8C */ void procCutFastReady();
- /* 8011EBDC */ void procMasterSwordStickInit();
- /* 8011EC60 */ void procMasterSwordStick();
- /* 8011ED18 */ bool procMasterSwordPullInit();
+ /* 8011EBDC */ int procMasterSwordStickInit();
+ /* 8011EC60 */ int procMasterSwordStick();
+ /* 8011ED18 */ int procMasterSwordPullInit();
/* 8011ED8C */ void procMasterSwordPull();
/* 8011EE40 */ static BOOL checkLv7DungeonShop();
- /* 8011EE94 */ void procDungeonWarpReadyInit();
+ /* 8011EE94 */ int procDungeonWarpReadyInit();
/* 8011EFB8 */ void procDungeonWarpReady();
/* 8011F084 */ void procDungeonWarpInit();
- /* 8011F0F4 */ void procDungeonWarp();
+ /* 8011F0F4 */ int procDungeonWarp();
/* 8011F360 */ void procDungeonWarpSceneStartInit();
/* 8011F460 */ void procDungeonWarpSceneStart();
/* 8011F658 */ bool checkAcceptWarp();
@@ -2202,7 +2413,7 @@ public:
virtual BOOL checkBoarRun() const;
virtual f32 getBaseAnimeFrameRate() const;
virtual f32 getBaseAnimeFrame() const;
- virtual void setAnimeFrame(float);
+ virtual void setAnimeFrame(f32);
virtual bool checkWolfLock(fopAc_ac_c*) const;
virtual bool cancelWolfLock(fopAc_ac_c*);
virtual s32 getAtnActorID() const;
@@ -2215,8 +2426,8 @@ public:
virtual void voiceStart(u32);
virtual void seStartOnlyReverb(u32);
virtual void seStartOnlyReverbLevel(u32);
- virtual void setOutPower(float, short, int);
- virtual void setGrabCollisionOffset(float, float, cBgS_PolyInfo*);
+ virtual void setOutPower(f32, short, int);
+ virtual void setGrabCollisionOffset(f32, f32, cBgS_PolyInfo*);
virtual void onFrollCrashFlg(u8, int);
virtual MtxP getModelJointMtx(u16);
virtual MtxP getHeadMtx();
@@ -2228,10 +2439,10 @@ public:
virtual void setClothesChange(int);
virtual void setPlayerPosAndAngle(cXyz const*, short, int);
virtual void setPlayerPosAndAngle(cXyz const*, csXyz const*);
- virtual void setPlayerPosAndAngle(float (*)[4]);
- virtual bool setThrowDamage(short, float, float, int, int, int);
+ virtual void setPlayerPosAndAngle(f32 (*)[4]);
+ virtual bool setThrowDamage(short, f32, f32, int, int, int);
virtual bool checkSetNpcTks(cXyz*, int, int);
- virtual bool setRollJump(float, float, short);
+ virtual int setRollJump(f32, f32, short);
virtual void playerStartCollisionSE(u32, u32);
virtual void cancelDungeonWarpReadyNeck();
virtual void onSceneChangeArea(u8, u8, fopAc_ac_c*);
@@ -2259,7 +2470,7 @@ public:
virtual bool onWolfEnemyBiteAll(fopAc_ac_c*, daPy_FLG2);
virtual bool checkWolfEnemyBiteAllOwn(fopAc_ac_c const*) const;
virtual void setWolfEnemyHangBiteAngle(short);
- virtual void setKandelaarMtx(float (*)[4], int, int);
+ virtual void setKandelaarMtx(f32 (*)[4], int, int);
virtual bool getStickAngleFromPlayerShape(short*) const;
virtual bool checkSpinnerPathMove();
virtual bool checkSpinnerTriggerAttack();
@@ -2299,7 +2510,7 @@ public:
virtual BOOL checkBootsOrArmorHeavy() const;
virtual s32 getBottleOpenAppearItem() const;
virtual bool checkItemSwordEquip() const;
- virtual float getSinkShapeOffset() const;
+ virtual f32 getSinkShapeOffset() const;
virtual BOOL checkSinkDead() const;
virtual BOOL checkHorseStart();
virtual Z2WolfHowlMgr* getWolfHowlMgrP();
@@ -2327,6 +2538,7 @@ public:
BOOL checkBoomerangReadyAnime() const {
return (mEquipItem == BOOMERANG || mEquipItem == 0x102) && checkUpperAnime(0x54);
}
+ bool checkDkCaught2Anime() const { return checkUpperAnime(0x262); }
s16 checkWolfEyeUp() const { return mWolfEyeUp; }
void onModeFlg(u32 flag) { mModeFlg |= flag; }
@@ -2352,9 +2564,41 @@ public:
}
s32 checkPlayerDemoMode() const { return mDemo.getDemoType(); }
u16 getMidnaMsgNum() const { return mMidnaMsgNum; }
+ u32 getStartEvent() { return fopAcM_GetParam(this) >> 0x18; }
+ const daAlink_AnmData* getAnmData(daAlink_ANM anmID) const { return &m_anmDataTable[anmID]; }
BOOL i_checkReinRide() const { return mRideStatus == 1 || mRideStatus == 2; }
+ bool checkFishingCastMode() const {
+ bool var_r4 = 1;
+ bool var_r3 = 0;
+
+ if (mProcID == PROC_FISHING_CAST) {
+ bool var_r5 = 0;
+
+ if (mItemActor.getActor() != NULL && mItemActor.getActor()->mEvtInfo.i_checkCommandDemoAccrpt() != 0) {
+ var_r5 = 1;
+ }
+
+ if (!var_r5) {
+ var_r3 = 1;
+ }
+ }
+
+ if (!var_r3) {
+ bool var_r3_2 = 0;
+ if (mProcID != PROC_FISHING_CAST && i_checkNoResetFlg2(FLG2_UNK_20000000)) {
+ var_r3_2 = 1;
+ }
+
+ if (!var_r3_2) {
+ var_r4 = 0;
+ }
+ }
+
+ return var_r4;
+ }
+
inline void startRestartRoomFromOut(int, u32, int);
inline u16 getReadyItem();
@@ -2373,14 +2617,12 @@ public:
static u8 m_fEffParamProc[72];
private:
- /* 0x0062C */ void* field_0x062C;
- /* 0x00630 */ int field_0x0630;
+ /* 0x0062C */ request_of_phase_process_class mPhaseReq;
/* 0x00634 */ char* mArcName;
- /* 0x00638 */ JKRExpHeap** field_0x0638;
- /* 0x0063C */ void* field_0x063C;
- /* 0x00640 */ int field_0x0640;
+ /* 0x00638 */ JKRExpHeap* field_0x0638;
+ /* 0x0063C */ request_of_phase_process_class mShieldPhaseReq;
/* 0x00644 */ char* mShieldArcName;
- /* 0x00648 */ JKRExpHeap** field_0x0648;
+ /* 0x00648 */ JKRExpHeap* field_0x0648;
/* 0x0064C */ J3DModelData* field_0x064C;
/* 0x00650 */ J3DModel* field_0x0650;
/* 0x00654 */ J3DModel* field_0x0654;
@@ -2411,18 +2653,18 @@ private:
/* 0x006B8 */ J3DModel* mSwordModel;
/* 0x006BC */ J3DModel* field_0x06bc;
/* 0x006C0 */ J3DModelData* field_0x06c0;
- /* 0x006C4 */ J3DAnmBase* m_nSwordBtk;
- /* 0x006C8 */ J3DAnmBase* m_mSwordBtk;
- /* 0x006CC */ J3DAnmBase* m_mSwordBck;
+ /* 0x006C4 */ J3DAnmTextureSRTKey* m_nSwordBtk;
+ /* 0x006C8 */ J3DAnmTextureSRTKey* m_mSwordBtk;
+ /* 0x006CC */ J3DAnmTevRegKey* m_mSwordBrk;
/* 0x006D0 */ void* field_0x06d0;
/* 0x006D4 */ void* field_0x06d4;
/* 0x006D8 */ void* field_0x06d8;
/* 0x006DC */ void* field_0x06dc;
/* 0x006E0 */ void* field_0x06e0;
- /* 0x006E4 */ void* field_0x06e4;
+ /* 0x006E4 */ J3DShape* field_0x06e4;
/* 0x006E8 */ void* field_0x06e8;
- /* 0x006EC */ void* field_0x06ec;
- /* 0x006F0 */ void* field_0x06f0;
+ /* 0x006EC */ J3DShape* field_0x06ec;
+ /* 0x006F0 */ J3DShape* field_0x06f0;
/* 0x006F4 */ J3DAnmBase* field_0x06f4;
/* 0x006F8 */ J3DAnmBase* field_0x06f8;
/* 0x006FC */ J3DModel* field_0x06fc;
@@ -2464,7 +2706,7 @@ private:
/* 0x01C98 */ dBgS_ArrowLinChk mArrowLinChk;
/* 0x01D08 */ dBgS_LinkGndChk mLinkGndChk;
/* 0x01D5C */ dBgS_LinkRoofChk mLinkRoofChk;
- /* 0x01DAC */ dBgS_LinkLinChk mLinkLinChk2;
+ /* 0x01DAC */ dBgS_LinkLinChk mMagneLineChk;
/* 0x01E1C */ cBgS_PolyInfo mPolyInfo1;
/* 0x01E2C */ cBgS_PolyInfo mPolyInfo2;
/* 0x01E3C */ cBgS_PolyInfo mPolyInfo3;
@@ -2504,7 +2746,7 @@ private:
/* 0x027FC */ fopAc_ac_c* field_0x27fc;
/* 0x02800 */ daTagMmsg_c* mMidnaMsg;
/* 0x02804 */ fopAc_ac_c* field_0x2804;
- /* 0x02808 */ fopAc_ac_c* field_0x2808;
+ /* 0x02808 */ daScex_c* mpScnChg;
/* 0x0280C */ daPy_actorKeep_c field_0x280c;
/* 0x02814 */ daPy_actorKeep_c mRideActor; // daspinnerc?
/* 0x0281C */ daPy_actorKeep_c field_0x281c;
@@ -2517,26 +2759,26 @@ private:
/* 0x02854 */ daPy_actorKeep_c mCargoCarryActor;
/* 0x0285C */ daPy_actorKeep_c field_0x285c;
/* 0x02864 */ dMsgFlow_c mMsgFlow;
- /* 0x028B0 */ u8 field_0x28b0[0x40];
+ /* 0x028B0 */ int field_0x28b0[0x10];
/* 0x028F0 */ int field_0x28f0;
/* 0x028F4 */ int mAtnActorID;
/* 0x028F8 */ int field_0x28f8;
/* 0x028FC */ int field_0x28fc;
- /* 0x02900 */ void* field_0x2900;
+ /* 0x02900 */ u32 field_0x2900;
/* 0x02904 */ daAlink_footData_c mFootData1[2];
/* 0x02A4C */ daAlink_footData_c mFootData2[2];
- /* 0x02B94 */ float* field_0x2b94;
- /* 0x02B98 */ float* field_0x2b98;
- /* 0x02B98 */ float* field_0x2b9c;
- /* 0x02BA0 */ float* field_0x2ba0;
- /* 0x02BA4 */ float* field_0x2ba4;
+ /* 0x02B94 */ f32* field_0x2b94;
+ /* 0x02B98 */ f32 field_0x2b98;
+ /* 0x02B98 */ f32* field_0x2b9c;
+ /* 0x02BA0 */ f32* field_0x2ba0;
+ /* 0x02BA4 */ f32* field_0x2ba4;
/* 0x02BA8 */ f32 mSinkShapeOffset;
/* 0x02BAC */ cXyz field_0x2bac;
/* 0x02BB8 */ Mtx mInvMtx;
/* 0x02BE8 */ Mtx field_0x2be8;
/* 0x02C18 */ Mtx mRootMtx;
- /* 0x02C48 */ Mtx field_0x2c48;
- /* 0x02C78 */ Mtx field_0x2c78;
+ /* 0x02C48 */ Mtx mMagneBootMtx;
+ /* 0x02C78 */ Mtx mMagneBootInvMtx;
/* 0x02CA8 */ Z2CreatureLink mZ2Link;
/* 0x02D78 */ void* field_0x2d78;
/* 0x02D7C */ daPy_frameCtrl_c* field_0x2d7c;
@@ -2585,7 +2827,7 @@ private:
/* 0x02FA9 */ u8 field_0x2fa9;
/* 0x02FAA */ u8 mRideStatus;
/* 0x02FAB */ u8 field_0x2fab;
- /* 0x02FAC */ u8 field_0x2fac;
+ /* 0x02FAC */ u8 mExitDirection;
/* 0x02FAD */ u8 field_0x2fad;
/* 0x02FAE */ u8 field_0x2fae;
/* 0x02FAF */ u8 field_0x2faf;
@@ -2594,7 +2836,7 @@ private:
/* 0x02FB2 */ u8 mMidnaTalkDelayTimer;
/* 0x02FB3 */ u8 field_0x2fb3;
/* 0x02FB4 */ u8 field_0x2fb4;
- /* 0x02FB5 */ u8 field_0x2fb5;
+ /* 0x02FB5 */ u8 mDamageColorTime;
/* 0x02FB6 */ u8 field_0x2fb6;
/* 0x02FB7 */ u8 field_0x2fb7;
/* 0x02FB8 */ u8 field_0x2fb8;
@@ -2637,7 +2879,7 @@ private:
/* 0x02FE2 */ s16 field_0x2fe2;
/* 0x02FE4 */ s16 field_0x2fe4;
/* 0x02FE6 */ s16 field_0x2fe6;
- /* 0x02FE8 */ u16 mActionID;
+ /* 0x02FE8 */ u16 mProcID;
/* 0x02FEA */ u16 field_0x2fea;
/* 0x02FEC */ s16 field_0x2fec;
/* 0x02FEE */ s16 field_0x2fee;
@@ -2772,7 +3014,7 @@ private:
/* 0x0310C */ s16 field_0x310c;
/* 0x0310E */ s16 field_0x310e;
/* 0x03110 */ s16 field_0x3110;
- /* 0x03112 */ u16 field_0x3112;
+ /* 0x03112 */ u16 mExitID;
/* 0x03114 */ s16 field_0x3114;
/* 0x03116 */ s16 field_0x3116;
/* 0x03118 */ s16 field_0x3118;
@@ -2797,7 +3039,7 @@ private:
/* 0x0317C */ int field_0x317c;
/* 0x03180 */ int field_0x3180;
/* 0x03184 */ int field_0x3184;
- /* 0x03184 */ int field_0x3188;
+ /* 0x03188 */ int field_0x3188;
/* 0x0318C */ int field_0x318c;
/* 0x03190 */ int field_0x3190;
/* 0x03194 */ int field_0x3194;
@@ -2849,70 +3091,70 @@ private:
/* 0x032D0 */ u32 field_0x32d0;
/* 0x032D4 */ u32 field_0x32d4;
/* 0x032D8 */ firePointEff_c field_0x32d8[4];
- /* 0x03398 */ float mNormalSpeed;
- /* 0x0339C */ float mSpeedModifier;
- /* 0x033A0 */ float field_0x33a0;
- /* 0x033A4 */ float field_0x33a4;
- /* 0x033A8 */ float field_0x33a8;
- /* 0x033AC */ float field_0x33ac;
- /* 0x033B0 */ float field_0x33b0;
- /* 0x033B4 */ float mWaterY;
- /* 0x033B8 */ float field_0x33b8;
- /* 0x033BC */ float field_0x33bc;
- /* 0x033C0 */ float field_0x33c0;
- /* 0x033C4 */ float mFallHeight;
- /* 0x033C8 */ float field_0x33c8;
- /* 0x033CC */ float field_0x33cc;
- /* 0x033D0 */ float field_0x33d0;
- /* 0x033D4 */ float field_0x33d4;
- /* 0x033D8 */ float field_0x33d8;
- /* 0x033DC */ float field_0x33dc;
- /* 0x033E0 */ float field_0x33e0;
- /* 0x033E4 */ float field_0x33e4;
- /* 0x033E8 */ float field_0x33e8;
- /* 0x033EC */ float field_0x33ec;
- /* 0x033F0 */ float field_0x33f0;
- /* 0x033F4 */ float field_0x33f4;
- /* 0x033F8 */ float field_0x33f8;
- /* 0x033FC */ float field_0x33fc;
- /* 0x03400 */ float field_0x3400;
- /* 0x03404 */ float field_0x3404;
- /* 0x03408 */ float field_0x3408;
- /* 0x0340C */ float field_0x340c;
- /* 0x03410 */ float field_0x3410;
- /* 0x03414 */ float field_0x3414;
- /* 0x03418 */ float field_0x3418;
- /* 0x0341C */ float field_0x341c;
- /* 0x03420 */ float field_0x3420;
- /* 0x03424 */ float field_0x3424;
- /* 0x03428 */ float field_0x3428;
- /* 0x0342C */ float field_0x342c;
- /* 0x03430 */ float field_0x3430;
- /* 0x03434 */ float mHeavySpeedMultiplier;
- /* 0x03438 */ float field_0x3438;
- /* 0x0343C */ float field_0x343c;
- /* 0x03440 */ float field_0x3440;
- /* 0x03444 */ float field_0x3444;
- /* 0x03448 */ float field_0x3448;
- /* 0x0344C */ float field_0x344c;
+ /* 0x03398 */ f32 mNormalSpeed;
+ /* 0x0339C */ f32 mSpeedModifier;
+ /* 0x033A0 */ f32 field_0x33a0;
+ /* 0x033A4 */ f32 field_0x33a4;
+ /* 0x033A8 */ f32 field_0x33a8;
+ /* 0x033AC */ f32 field_0x33ac;
+ /* 0x033B0 */ f32 field_0x33b0;
+ /* 0x033B4 */ f32 mWaterY;
+ /* 0x033B8 */ f32 field_0x33b8;
+ /* 0x033BC */ f32 field_0x33bc;
+ /* 0x033C0 */ f32 field_0x33c0;
+ /* 0x033C4 */ f32 mFallHeight;
+ /* 0x033C8 */ f32 field_0x33c8;
+ /* 0x033CC */ f32 field_0x33cc;
+ /* 0x033D0 */ f32 field_0x33d0;
+ /* 0x033D4 */ f32 field_0x33d4;
+ /* 0x033D8 */ f32 field_0x33d8;
+ /* 0x033DC */ f32 field_0x33dc;
+ /* 0x033E0 */ f32 field_0x33e0;
+ /* 0x033E4 */ f32 field_0x33e4;
+ /* 0x033E8 */ f32 field_0x33e8;
+ /* 0x033EC */ f32 field_0x33ec;
+ /* 0x033F0 */ f32 field_0x33f0;
+ /* 0x033F4 */ f32 field_0x33f4;
+ /* 0x033F8 */ f32 field_0x33f8;
+ /* 0x033FC */ f32 field_0x33fc;
+ /* 0x03400 */ f32 field_0x3400;
+ /* 0x03404 */ f32 field_0x3404;
+ /* 0x03408 */ f32 field_0x3408;
+ /* 0x0340C */ f32 field_0x340c;
+ /* 0x03410 */ f32 field_0x3410;
+ /* 0x03414 */ f32 field_0x3414;
+ /* 0x03418 */ f32 field_0x3418;
+ /* 0x0341C */ f32 field_0x341c;
+ /* 0x03420 */ f32 field_0x3420;
+ /* 0x03424 */ f32 field_0x3424;
+ /* 0x03428 */ f32 field_0x3428;
+ /* 0x0342C */ f32 field_0x342c;
+ /* 0x03430 */ f32 field_0x3430;
+ /* 0x03434 */ f32 mHeavySpeedMultiplier;
+ /* 0x03438 */ f32 field_0x3438;
+ /* 0x0343C */ f32 field_0x343c;
+ /* 0x03440 */ f32 field_0x3440;
+ /* 0x03444 */ f32 field_0x3444;
+ /* 0x03448 */ f32 field_0x3448;
+ /* 0x0344C */ f32 field_0x344c;
/* 0x03450 */ u8 field_0x3450[4];
- /* 0x03454 */ float field_0x3454;
- /* 0x03458 */ float field_0x3458;
- /* 0x0345C */ float field_0x345c;
- /* 0x03460 */ float field_0x3460;
- /* 0x03464 */ float field_0x3464;
- /* 0x03468 */ float field_0x3468;
- /* 0x0346C */ float field_0x346c;
- /* 0x03470 */ float field_0x3470;
- /* 0x03474 */ float mSwordUpColorIntensity;
- /* 0x03478 */ float field_0x3478;
- /* 0x0347C */ float field_0x347c;
- /* 0x03480 */ float field_0x3480;
- /* 0x03484 */ float field_0x3484;
- /* 0x03488 */ float field_0x3488;
- /* 0x0348C */ float field_0x348c;
- /* 0x03490 */ float mSearchBallScale;
- /* 0x03494 */ float field_0x3494;
+ /* 0x03454 */ f32 field_0x3454;
+ /* 0x03458 */ f32 field_0x3458;
+ /* 0x0345C */ f32 field_0x345c;
+ /* 0x03460 */ f32 field_0x3460;
+ /* 0x03464 */ f32 field_0x3464;
+ /* 0x03468 */ f32 field_0x3468;
+ /* 0x0346C */ f32 field_0x346c;
+ /* 0x03470 */ f32 field_0x3470;
+ /* 0x03474 */ f32 mSwordUpColorIntensity;
+ /* 0x03478 */ f32 field_0x3478;
+ /* 0x0347C */ f32 field_0x347c;
+ /* 0x03480 */ f32 field_0x3480;
+ /* 0x03484 */ f32 field_0x3484;
+ /* 0x03488 */ f32 field_0x3488;
+ /* 0x0348C */ f32 field_0x348c;
+ /* 0x03490 */ f32 mSearchBallScale;
+ /* 0x03494 */ f32 field_0x3494;
/* 0x03498 */ cXyz field_0x3498;
/* 0x034A4 */ cXyz field_0x34a4;
/* 0x034B0 */ cXyz field_0x34b0;
@@ -2978,11 +3220,9 @@ private:
/* 0x03840 */ cXyz* mIronBallChainPos;
/* 0x03844 */ csXyz* mIronBallChainAngle;
/* 0x03848 */ void* field_0x3848;
- /* 0x0384C */ float* field_0x384c;
- /* 0x03850 */ u32 field_0x3850;
- /* 0x03854 */ u32 field_0x3854;
- /* 0x03858 */ u32 field_0x3858;
-};
+ /* 0x0384C */ f32* field_0x384c;
+ /* 0x03850 */ daAlink_procFunc mpProcFunc;
+}; // Size: 0x38BC
struct daAlinkHIO_anm_c {
/* 0x00 */ s16 field_0x00; // end f?
@@ -4556,4 +4796,9 @@ private:
/* 0x09C4 */ cXyz field_0x9c4;
};
+static void* daAlink_searchPortal(fopAc_ac_c* param_0, void* param_1);
+static void* daAlink_searchCanoe(fopAc_ac_c* param_0, void* param_1);
+static void* daAlink_searchBoar(fopAc_ac_c* param_0, void* param_1);
+static fopAc_ac_c* daAlink_searchLightBall(fopAc_ac_c* p_actor, void* param_1);
+
#endif /* D_A_D_A_ALINK_H */ \ No newline at end of file
diff --git a/include/d/a/d_a_horse_static.h b/include/d/a/d_a_horse_static.h
index a2873bdfba..d2b4f4223b 100644
--- a/include/d/a/d_a_horse_static.h
+++ b/include/d/a/d_a_horse_static.h
@@ -4,7 +4,21 @@
#include "dolphin/types.h"
#include "rel/d/a/e/d_a_e_wb/d_a_e_wb.h"
-class daTagHstop_c {
+class daTagHstop_c : public fopAc_ac_c {
+public:
+ static daTagHstop_c* getTop() { return m_top; }
+
+ daTagHstop_c* getNext() { return mpNext; }
+ bool getActiveFlg() const { return mActive; }
+
+ /* 0x568 */ daTagHstop_c* mpNext;
+ /* 0x56C */ daTagHstop_c* field_0x56c;
+ /* 0x570 */ u8 field_0x570;
+ /* 0x571 */ bool mActive;
+ /* 0x572 */ u8 field_0x572;
+ /* 0x573 */ u8 field_0x573;
+ /* 0x574 */ int field_0x574;
+
static daTagHstop_c* m_top;
};
diff --git a/include/d/a/d_a_item_static.h b/include/d/a/d_a_item_static.h
index 5fb0b88a16..51296740f8 100644
--- a/include/d/a/d_a_item_static.h
+++ b/include/d/a/d_a_item_static.h
@@ -3,20 +3,145 @@
#include "SSystem/SComponent/c_lib.h"
#include "dolphin/types.h"
+#include "d/a/d_a_itembase.h"
+#include "d/a/d_a_itembase_static.h"
+#include "d/particle/d_particle.h"
-class daItem_c {
+class daItem_c;
+typedef void (daItem_c::*procFunc)();
+
+class daItem_c : public daItemBase_c {
public:
+ daItem_c() : field_0x998(0, 0) {}
+ /* 8015B0C4 */ void initBaseMtx();
+ /* 8015B108 */ void setBaseMtx();
+ /* 8015B190 */ void setBaseMtx_0();
+ /* 8015B1C8 */ void setBaseMtx_1();
+ /* 8015B3D8 */ void CreateInit();
+ /* 8015B7BC */ void setCullInfo();
+ /* 8015B7D4 */ int _daItem_create();
+ /* 8015BA9C */ void _daItem_execute();
+ /* 8015BD84 */ int _daItem_draw();
+ /* 8015BDE8 */ int _daItem_delete();
+ /* 8015BE60 */ void procInitNormal();
+ /* 8015BEA4 */ void procMainNormal();
+ /* 8015BFE8 */ void procMainEnemyCarry();
+ /* 8015BFEC */ void procInitForceGet();
+ /* 8015C038 */ void procMainForceGet();
+ /* 8015C058 */ void procInitSimpleGetDemo();
+ /* 8015C134 */ void procMainSimpleGetDemo();
+ /* 8015C200 */ void procInitGetDemoEvent();
+ /* 8015C2A4 */ void procWaitGetDemoEvent();
+ /* 8015C3BC */ void procMainGetDemoEvent();
+ /* 8015C41C */ void procInitBoomerangCarry();
+ /* 8015C514 */ void procMainBoomerangCarry();
+ /* 8015C5F4 */ void procInitSwOnWait();
+ /* 8015C648 */ void procMainSwOnWait();
+ /* 8015C708 */ void procInitBoomHitWait();
+ /* 8015C738 */ void procMainBoomHitWait();
+ /* 8015CAB8 */ void move_proc_call();
+ /* 8015CC4C */ void mode_wait_init();
+ /* 8015CC88 */ void mode_water_init();
+ /* 8015CCD0 */ void mode_wait();
+ /* 8015CDCC */ void mode_water();
+ /* 8015CEEC */ void itemGetNextExecute();
+ /* 8015D0A8 */ void itemGet();
+ /* 8015D370 */ BOOL checkCountTimer();
+ /* 8015D3CC */ bool checkPlayerGet();
+ /* 8015D410 */ void checkYogan();
+ /* 8015D480 */ void deleteItem();
+ /* 8015D4AC */ int itemActionForRupee();
+ /* 8015D56C */ void itemActionForHeart();
+ /* 8015D688 */ void itemActionForArrow();
+ /* 8015D700 */ void itemActionForBoomerang();
+ /* 8015D734 */ void bg_check();
+ /* 8015D834 */ void set_bound_se();
+ /* 8015D95C */ int CountTimer();
+ /* 8015D9F0 */ int initAction();
+ /* 8015DAAC */ void initFlag();
+ /* 8015DBF0 */ void initScale();
+ /* 8015DC40 */ void initSpeed(int);
+ /* 8015DE38 */ void initAngle();
u32 startCtrl();
u32 startControl();
u32 endControl();
- void setFlag(u8 pFlag) { cLib_onBit(unk2376, pFlag); }
+ /* 8015CE94 */ virtual void setTevStr();
+ virtual void unk0() = 0;
+ virtual void unk1() = 0;
+ virtual void unk2() = 0;
+ virtual void unk3() = 0;
+ virtual void unk4() = 0;
+ virtual void unk5() = 0;
+ virtual void unk6() = 0;
+ virtual void unk7() = 0;
+ virtual void unk8() = 0;
+ virtual void unk9() = 0;
+ virtual void unk10() = 0;
+ virtual void unk11() = 0;
+ virtual void unk12() = 0;
+ virtual void unk13() = 0;
+ virtual void unk14() = 0;
+ virtual void unk15() = 0;
+ virtual void unk16() = 0;
+ virtual void unk17() = 0;
+ virtual void unk18() = 0;
+ virtual void unk19() = 0;
+ virtual void unk20() = 0;
+ virtual void unk21() = 0;
+ virtual void unk22() = 0;
+ virtual void unk23() = 0;
+ virtual void unk24() = 0;
+ virtual void unk25() = 0;
+ virtual void unk26() = 0;
+ virtual void unk27() = 0;
+ virtual void unk28() = 0;
+ virtual void unk29() = 0;
+ virtual void unk30() = 0;
+ virtual void unk31() = 0;
+ virtual void unk32() = 0;
+ virtual void unk33() = 0;
+ virtual void unk34() = 0;
+ virtual void unk35() = 0;
+
+ void setFlag(u8 pFlag) { cLib_onBit(mFlag, pFlag); }
+ void setStatus(u8 status) { mStatus = status; }
+ u8 getStatus() { return mStatus; }
+ bool checkFlag(u8 flag) { return cLib_checkBit(mFlag, flag); }
+ void clrFlag(u8 flag) { cLib_offBit(mFlag, flag); }
+
+ static u8 mFuncPtr[120];
+ //static procFunc mFuncPtr[9];
+ static u8 m_cyl_src[68];
+ static s32 m_timer_max;
-private:
- u8 unk0[0x948];
- u8 unk2376;
- u8 unk2377;
- u8 unk2378;
-};
+ /* 0x92C */ s16 field_0x92c;
+ /* 0x92E */ u16 field_0x92e;
+ /* 0x930 */ cXyz field_0x930;
+ /* 0x93C */ u32 field_0x93c;
+ /* 0x940 */ u16 field_0x940;
+ /* 0x942 */ s16 field_0x942;
+ /* 0x944 */ s16 field_0x944;
+ /* 0x946 */ s16 field_0x946;
+ /* 0x948 */ u8 mFlag;
+ /* 0x949 */ u8 field_0x949;
+ /* 0x94A */ u8 mStatus;
+ /* 0x94B */ u8 field_0x94b;
+ /* 0x94C */ u32 m_item_id;
+ /* 0x950 */ cXyz field_0x950;
+ /* 0x95C */ u8 field_0x95c;
+ /* 0x95D */ bool field_0x95d;
+ /* 0x95E */ u8 mBoomWindTgTimer;
+ /* 0x95F */ u8 field_0x95f;
+ /* 0x960 */ u8 field_0x960[0xC];
+ /* 0x96C */ cXyz field_0x96c;
+ /* 0x978 */ Z2SoundObjSimple field_0x978;
+ /* 0x998 */ dPa_followEcallBack field_0x998;
+ /* 0x9AC */ cXyz field_0x9ac;
+ /* 0x9B8 */ u32 field_0x9b8;
+ /* 0x9BC */ u8 field_0x9bc[4];
+ /* 0x9C0 */ u8 field_0x9c0;
+ /* 0x9C1 */ u8 field_0x9c1;
+}; // Size: 0x9C4
#endif /* D_A_D_A_ITEM_STATIC_H */
diff --git a/include/d/a/d_a_itembase.h b/include/d/a/d_a_itembase.h
index 9b29d6dd72..071a962f68 100644
--- a/include/d/a/d_a_itembase.h
+++ b/include/d/a/d_a_itembase.h
@@ -8,7 +8,7 @@
#include "f_op/f_op_actor.h"
struct daItemBase_data {
- /* 0x00 */ f32 field_0x0;
+ /* 0x00 */ f32 mGravity;
/* 0x04 */ f32 field_0x4;
/* 0x08 */ f32 field_0x8;
/* 0x0C */ f32 field_0xc;
@@ -41,7 +41,7 @@ public:
int DeleteBase(char const*);
void setListEnd();
void animPlay(f32, f32, f32, f32, f32, f32);
- daItemBase_data& getData();
+ const daItemBase_data& getData();
virtual int DrawBase();
virtual void setListStart();
@@ -61,20 +61,21 @@ public:
static daItemBase_data const m_data;
-private:
/* 0x56C */ request_of_phase_process_class mPhase;
/* 0x574 */ J3DModel* mpModel;
- /* 0x578 */ mDoExt_btkAnm* field_0x578;
- /* 0x57C */ mDoExt_bpkAnm* field_0x57c;
- /* 0x580 */ mDoExt_brkAnm* field_0x580;
- /* 0x584 */ mDoExt_bckAnm* field_0x584;
- /* 0x588 */ mDoExt_btpAnm* field_0x588;
- /* 0x58C */ dBgS_ObjAcch field_0x58c;
- /* 0x764 */ dBgS_AcchCir field_0x764;
- /* 0x7A4 */ dCcD_Stts field_0x7a4;
- /* 0x7E0 */ dCcD_Cyl field_0x7e0;
+ /* 0x578 */ mDoExt_btkAnm* mpBtkAnm;
+ /* 0x57C */ mDoExt_bpkAnm* mpBpkAnm;
+ /* 0x580 */ mDoExt_brkAnm* mpBrkAnm;
+ /* 0x584 */ mDoExt_bckAnm* mpBckAnm;
+ /* 0x588 */ mDoExt_btpAnm* mpBtpAnm;
+ /* 0x58C */ dBgS_ObjAcch mAcch;
+ /* 0x764 */ dBgS_AcchCir mAcchCir;
+ /* 0x7A4 */ dCcD_Stts mColStatus;
+ /* 0x7E0 */ dCcD_Cyl mCollider;
/* 0x91C */ u32 field_0x91c;
- /* 0x920 */ u8 field_0x920[0xA];
+ /* 0x920 */ u32 field_0x920;
+ /* 0x924 */ int field_0x924;
+ /* 0x928 */ s16 field_0x928;
/* 0x92A */ u8 m_itemNo;
/* 0x92B */ u8 field_0x92b;
};
diff --git a/include/d/a/d_a_itembase_static.h b/include/d/a/d_a_itembase_static.h
index bc8924fa93..3c7f96b55d 100644
--- a/include/d/a/d_a_itembase_static.h
+++ b/include/d/a/d_a_itembase_static.h
@@ -4,4 +4,6 @@
#include "d/a/d_a_itembase.h"
#include "dolphin/types.h"
+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 ab76ef43d1..082622f526 100644
--- a/include/d/a/d_a_npc.h
+++ b/include/d/a/d_a_npc.h
@@ -514,4 +514,7 @@ public:
STATIC_ASSERT(sizeof(daNpcF_c) == 0xB48);
+void daNpcF_getPlayerInfoFromPlayerList(int param_0, int param_1, cXyz& param_2,
+ csXyz& param_3);
+
#endif /* D_A_D_A_NPC_H */
diff --git a/include/d/a/d_a_npc_cd.h b/include/d/a/d_a_npc_cd.h
new file mode 100644
index 0000000000..9b1b945142
--- /dev/null
+++ b/include/d/a/d_a_npc_cd.h
@@ -0,0 +1,6 @@
+#ifndef A_NPC_D_A_NPC_CD_H
+#define A_NPC_D_A_NPC_CD_H
+
+#include "dolphin/types.h"
+
+#endif /* A_NPC_D_A_NPC_CD_H */
diff --git a/include/d/a/d_a_npc_cd2.h b/include/d/a/d_a_npc_cd2.h
new file mode 100644
index 0000000000..91962a66d4
--- /dev/null
+++ b/include/d/a/d_a_npc_cd2.h
@@ -0,0 +1,6 @@
+#ifndef A_NPC_D_A_NPC_CD2_H
+#define A_NPC_D_A_NPC_CD2_H
+
+#include "dolphin/types.h"
+
+#endif /* A_NPC_D_A_NPC_CD2_H */
diff --git a/include/d/a/d_a_obj_item.h b/include/d/a/d_a_obj_item.h
new file mode 100644
index 0000000000..b139320fd9
--- /dev/null
+++ b/include/d/a/d_a_obj_item.h
@@ -0,0 +1,24 @@
+#ifndef A_OBJ_D_A_OBJ_ITEM_H
+#define A_OBJ_D_A_OBJ_ITEM_H
+
+#include "d/a/d_a_item_static.h"
+
+namespace daItem_prm {
+ static inline u8 getItemNo(daItem_c* item) {
+ return fopAcM_GetParam(item);
+ }
+
+ static inline u32 getItemBitNo(daItem_c* item) {
+ return (fopAcM_GetParam(item) >> 8) & 0xFF;
+ }
+
+ static inline u16 getSwOnWaitTimer(daItem_c* item) {
+ return item->field_0x92e & 0x3F;
+ }
+
+ static inline u8 checkInWater(daItem_c* item) {
+ return fopAcM_GetParamBit(item, 0x1C, 4);
+ }
+};
+
+#endif /* A_OBJ_D_A_OBJ_ITEM_H */
diff --git a/include/d/a/d_a_obj_ss_base.h b/include/d/a/d_a_obj_ss_base.h
new file mode 100644
index 0000000000..29bf74248a
--- /dev/null
+++ b/include/d/a/d_a_obj_ss_base.h
@@ -0,0 +1,21 @@
+#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"
+
+class daObj_SSBase_c : public fopAc_ac_c {
+public:
+ /* 8015E3F8 */ daObj_SSBase_c();
+
+ /* 8015E450 */ virtual ~daObj_SSBase_c();
+ /* 8015E4C8 */ virtual void setSoldOut();
+ /* 8015E4B0 */ virtual u32 getProcessID();
+
+private:
+ /* 0x56C */ void* mpParentPtr;
+ /* 0x570 */ u16 field_0x570;
+ /* 0x572 */ u16 mFlowNodeNum;
+ /* 0x574 */ u16 mValueNum;
+};
+
+#endif /* A_OBJ_D_A_OBJ_SS_BASE_H */
diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h
index 5d19bbbc74..7f70be553a 100644
--- a/include/d/a/d_a_player.h
+++ b/include/d/a/d_a_player.h
@@ -46,7 +46,13 @@ private:
class daPy_anmHeap_c {
public:
- enum daAlinkHEAP_TYPE {};
+ enum daAlinkHEAP_TYPE {
+ HEAP_TYPE_1 = 1,
+ HEAP_TYPE_2,
+ HEAP_TYPE_3,
+ HEAP_TYPE_4,
+ HEAP_TYPE_5,
+ };
/* 80140DCC */ void __defctor(); // supposed to be the ctor?
@@ -67,6 +73,8 @@ public:
void resetArcNo() { mArcNo = 0xffff; }
bool checkNoSetArcNo() const { return mArcNo == 0xFFFF; }
void setBufferSize(u32 size) { mBufferSize = size; }
+ void setBuffer(u8* buf) { mBuffer = buf; }
+ u8* getBuffer() { return mBuffer; }
private:
/* 0x00 */ u16 mIdx;
@@ -74,7 +82,7 @@ private:
/* 0x04 */ u16 mArcNo;
/* 0x06 */ u16 field_0x06;
/* 0x08 */ u32 mBufferSize;
- /* 0x0C */ void* mBuffer;
+ /* 0x0C */ u8* mBuffer;
/* 0x10 */ JKRSolidHeap* mAnimeHeap;
}; // Size = 0x14
@@ -130,7 +138,11 @@ public:
void setDemoMode(u32 mode) { mDemoMode = mode; }
u32 getDemoMode() const { return mDemoMode; }
int getParam1() const { return mParam1; }
+ void setOriginalDemoType() { setDemoType(3); }
void i_setSpecialDemoType() { setDemoType(5); }
+ void setStick(f32 stick) { mStick = stick; }
+ void setMoveAngle(s16 angle) { mDemoMoveAngle = angle; }
+ s16 getMoveAngle() const { return mDemoMoveAngle; }
private:
/* 0x00 */ u16 mDemoType;
@@ -164,9 +176,10 @@ public:
/* 0x058C */ u32 mEndResetFlg1;
/* 0x0590 */ u32 mEndResetFlg2;
/* 0x0594 */ f32 field_0x594;
- /* 0x0598 */ u8 field_0x598[0x4];
+ /* 0x0598 */ f32 field_0x598;
/* 0x059C */ s16 mLookAngleY;
- /* 0x059E */ u8 field_0x59e[0x6];
+ /* 0x059E */ s16 field_0x59e;
+ /* 0x05A0 */ u8 field_0x5a0[0x4];
/* 0x05A4 */ cXyz mHeadTopPos;
/* 0x05B0 */ cXyz mItemPos;
/* 0x05BC */ cXyz mSwordTopPos;
@@ -187,6 +200,7 @@ public:
FLG0_UNK_80000 = 0x80000,
FLG0_UNK_20000 = 0x20000,
FLG0_UNK_8000 = 0x8000,
+ FLG0_UNK_4000 = 0x4000,
MAGNE_BOOTS_ON = 0x1000,
FLG0_UNK_80 = 0x80,
FLG0_UNK_40 = 0x40,
@@ -199,16 +213,20 @@ public:
};
enum daPy_FLG1 { IS_WOLF = 0x2000000, FLG1_UNK_10000 = 0x10000, THROW_DAMAGE = 0x4000 };
enum daPy_FLG2 {
+ FLG2_UNK_20000000 = 0x20000000,
FLG2_UNK_4080000 = 0x4080000,
FLG2_UNK_2080000 = 0x2080000,
BOAR_SINGLE_BATTLE = 0x1800000,
STATUS_WINDOW_DRAW = 0x400000,
UNK_ARMOR = 0x80000,
+ SCENE_CHANGE_START = 0x8000,
+ FLG2_UNK_4000 = 0x4000,
UNK_FLG2_2 = 2,
UNK_DAPY_FLG2_1 = 1
};
enum daPy_FLG3 {
FLG3_UNK_2000000 = 0x2000000,
+ FLG3_UNK_1000000 = 0x1000000,
FLG3_UNK_100000 = 0x100000,
COPY_ROD_THROW_AFTER = 0x40000
};
@@ -337,6 +355,15 @@ public:
/* 80182AC4 */ void checkCopyRodThrowAfter() const;
/* 80182AD8 */ void checkRide() const;
/* 80182B9C */ void getRightHandPos() const;
+ /* 8015DFD8 */ const cXyz getItemPos() const;
+ /* 8015DFF4 */ const cXyz& getLeftHandPos() const;
+
+ /* const cXyz* getItemPos() const {
+ return &mItemPos;
+ }
+ const cXyz* getLeftHandPos() const {
+ return &mLeftHandPos;
+ } */
virtual cXyz* getMidnaAtnPos() const;
virtual void setMidnaMsgNum(fopAc_ac_c*, u16);
@@ -526,6 +553,7 @@ public:
u8 getCutType() const { return mCutType; }
u16 getSwordAtUpTime() const { return mSwordUpTimer; }
bool checkWaterInMove() const { return i_checkNoResetFlg0(UNDER_WATER_MOVEMENT); }
+ bool checkSceneChangeAreaStart() const { return i_checkNoResetFlg2(SCENE_CHANGE_START); }
// some functions use these function as an inline
// is there a better way to handle this?
@@ -555,12 +583,14 @@ public:
void i_onPlayerNoDraw() { i_onNoResetFlg0(PLAYER_NO_DRAW); }
void i_offPlayerNoDraw() { i_offNoResetFlg0(PLAYER_NO_DRAW); }
+ inline static u32 i_getLastSceneMode();
inline static u32 getLastSceneMode();
inline static bool checkWoodSwordEquip();
inline BOOL i_checkSwordGet();
inline bool i_checkShieldGet() const;
inline static BOOL checkNowWolf();
inline bool checkZoraWearFlg() const;
+ inline bool checkMagicArmorWearFlg() const;
static daMidna_c* getMidnaActor() { return m_midnaActor; }
diff --git a/include/d/bg/d_bg_s.h b/include/d/bg/d_bg_s.h
index 5d9565e561..4d253890ba 100644
--- a/include/d/bg/d_bg_s.h
+++ b/include/d/bg/d_bg_s.h
@@ -74,13 +74,13 @@ public:
bool ChkMoveBG_NoDABg(cBgS_PolyInfo const&);
s32 GetExitId(cBgS_PolyInfo const&);
s32 GetPolyColor(cBgS_PolyInfo const&);
- bool GetHorseNoEntry(cBgS_PolyInfo const&);
+ BOOL GetHorseNoEntry(cBgS_PolyInfo const&);
bool GetSpecialCode(cBgS_PolyInfo const&);
- bool GetMagnetCode(cBgS_PolyInfo const&);
+ int GetMagnetCode(cBgS_PolyInfo const&);
bool GetMonkeyBarsCode(cBgS_PolyInfo const&);
bool GetUnderwaterRoofCode(cBgS_PolyInfo const&);
s32 GetWallCode(cBgS_PolyInfo const&);
- bool GetPolyAtt0(cBgS_PolyInfo const&);
+ BOOL GetPolyAtt0(cBgS_PolyInfo const&);
bool GetPolyAtt1(cBgS_PolyInfo const&);
bool GetGroundCode(cBgS_PolyInfo const&);
s32 GetCamMoveBG(cBgS_PolyInfo const&);
diff --git a/include/d/bg/d_bg_s_acch.h b/include/d/bg/d_bg_s_acch.h
index 7d14297fd1..7aec8fd20b 100644
--- a/include/d/bg/d_bg_s_acch.h
+++ b/include/d/bg/d_bg_s_acch.h
@@ -62,6 +62,7 @@ public:
/* 0x000080 */ GROUND_LANDING = (1 << 7),
/* 0x000100 */ GROUND_AWAY = (1 << 8),
/* 0x000200 */ ROOF_HIT = (1 << 9),
+ /* 0x000400 */ WATER_NONE = (1 << 10),
/* 0x000800 */ WATER_HIT = (1 << 11),
/* 0x001000 */ WATER_IN = (1 << 12),
/* 0x002000 */ LINE_CHECK = (1 << 13),
@@ -139,6 +140,14 @@ public:
void SetGroundAway() { m_flags |= GROUND_AWAY; }
const u32 MaskWaterHit() { return m_flags & WATER_HIT; }
const bool ChkWaterHit() { return MaskWaterHit(); }
+ void ClrWaterNone() { m_flags &= ~WATER_NONE; }
+ void SetWaterCheckOffset(f32 offset) { m_wtr_chk_offset = offset; }
+ void OnLineCheck() { m_flags |= LINE_CHECK; }
+ void ClrRoofNone() { m_flags &= ~ROOF_NONE; }
+ void SetRoofCrrHeight(f32 height) { m_roof_crr_height = height; }
+ void SetWtrChkMode(int mode) { m_wtr_mode = mode; }
+ void SetGrndNone() { m_flags |= GRND_NONE; }
+ void ClrGrndNone() { m_flags &= ~GRND_NONE; }
// inline dupe
void i_ClrGroundHit() { m_flags &= ~GROUND_HIT; }
@@ -187,6 +196,11 @@ public:
};
class dBgS_ObjAcch : public dBgS_Acch {
+public:
+ dBgS_ObjAcch() {
+ SetObj();
+ }
+
/* 80BB336C */ virtual ~dBgS_ObjAcch();
};
diff --git a/include/d/bg/d_bg_w.h b/include/d/bg/d_bg_w.h
index d2d37fab17..ba45b4412f 100644
--- a/include/d/bg/d_bg_w.h
+++ b/include/d/bg/d_bg_w.h
@@ -109,10 +109,10 @@ public:
/* 8007B0E4 */ virtual s32 GetGrpRoomIndex(cBgS_PolyInfo const&) const;
virtual s32 GetExitId(cBgS_PolyInfo const&) = 0;
virtual s32 GetPolyColor(cBgS_PolyInfo const&) = 0;
- virtual bool GetHorseNoEntry(cBgS_PolyInfo const&) = 0;
+ virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const&) = 0;
virtual bool GetSpecialCode(cBgS_PolyInfo const&) = 0;
virtual void GetSpecialCode(int) = 0;
- virtual bool GetMagnetCode(cBgS_PolyInfo const&) = 0;
+ virtual int GetMagnetCode(cBgS_PolyInfo const&) = 0;
virtual void GetPolyObjThrough(int) = 0;
virtual void GetPolyCamThrough(int) = 0;
virtual void GetPolyLinkThrough(int) = 0;
@@ -125,7 +125,7 @@ public:
virtual bool GetUnderwaterRoofCode(int) = 0;
virtual bool GetMonkeyBarsCode(cBgS_PolyInfo const&) = 0;
virtual s32 GetWallCode(cBgS_PolyInfo const&) = 0;
- virtual bool GetPolyAtt0(cBgS_PolyInfo const&) = 0;
+ virtual BOOL GetPolyAtt0(cBgS_PolyInfo const&) = 0;
virtual bool GetPolyAtt1(cBgS_PolyInfo const&) = 0;
virtual bool GetGroundCode(cBgS_PolyInfo const&) = 0;
virtual void GetIronBallThrough(int) = 0;
@@ -208,10 +208,10 @@ public:
/* 8007DF00 */ virtual void SphChk(dBgS_SphChk*, virtual void*);
/* 8007B3AC */ virtual s32 GetExitId(cBgS_PolyInfo const&);
/* 8007B3D8 */ virtual s32 GetPolyColor(cBgS_PolyInfo const&);
- /* 8007B404 */ virtual bool GetHorseNoEntry(cBgS_PolyInfo const&);
+ /* 8007B404 */ virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const&);
/* 8007B430 */ virtual bool GetSpecialCode(cBgS_PolyInfo const&);
/* 8007B460 */ virtual void GetSpecialCode(int);
- /* 8007B488 */ virtual bool GetMagnetCode(cBgS_PolyInfo const&);
+ /* 8007B488 */ virtual int GetMagnetCode(cBgS_PolyInfo const&);
/* 8007B4E0 */ virtual void GetPolyObjThrough(int);
/* 8007B504 */ virtual void GetPolyCamThrough(int);
/* 8007B52C */ virtual void GetPolyLinkThrough(int);
@@ -225,7 +225,7 @@ public:
/* 8007B4B4 */ virtual bool GetMonkeyBarsCode(cBgS_PolyInfo const&);
/* 8007B6AC */ virtual void GetLinkNo(cBgS_PolyInfo const&);
/* 8007B6D8 */ virtual s32 GetWallCode(cBgS_PolyInfo const&);
- /* 8007B704 */ virtual bool GetPolyAtt0(cBgS_PolyInfo const&);
+ /* 8007B704 */ virtual BOOL GetPolyAtt0(cBgS_PolyInfo const&);
/* 8007B734 */ virtual bool GetPolyAtt1(cBgS_PolyInfo const&);
/* 8007B760 */ virtual bool GetGroundCode(cBgS_PolyInfo const&);
/* 8007B7DC */ virtual void GetIronBallThrough(int);
diff --git a/include/d/bg/d_bg_w_base.h b/include/d/bg/d_bg_w_base.h
index 5da858ca4f..6f30556ce2 100644
--- a/include/d/bg/d_bg_w_base.h
+++ b/include/d/bg/d_bg_w_base.h
@@ -49,10 +49,10 @@ public:
virtual s32 GetGrpRoomIndex(cBgS_PolyInfo const&) const = 0;
virtual s32 GetExitId(cBgS_PolyInfo const&) = 0;
virtual s32 GetPolyColor(cBgS_PolyInfo const&) = 0;
- virtual bool GetHorseNoEntry(cBgS_PolyInfo const&) = 0;
+ virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const&) = 0;
virtual bool GetSpecialCode(cBgS_PolyInfo const&) = 0;
virtual void GetSpecialCode(int) = 0;
- virtual bool GetMagnetCode(cBgS_PolyInfo const&) = 0;
+ virtual int GetMagnetCode(cBgS_PolyInfo const&) = 0;
virtual void GetPolyObjThrough(int) = 0;
virtual void GetPolyCamThrough(int) = 0;
virtual void GetPolyLinkThrough(int) = 0;
@@ -66,7 +66,7 @@ public:
virtual bool GetMonkeyBarsCode(cBgS_PolyInfo const&) = 0;
virtual void GetLinkNo(cBgS_PolyInfo const&) = 0;
virtual s32 GetWallCode(cBgS_PolyInfo const&) = 0;
- virtual bool GetPolyAtt0(cBgS_PolyInfo const&) = 0;
+ virtual BOOL GetPolyAtt0(cBgS_PolyInfo const&) = 0;
virtual bool GetPolyAtt1(cBgS_PolyInfo const&) = 0;
virtual bool GetGroundCode(cBgS_PolyInfo const&) = 0;
virtual void GetIronBallThrough(int) = 0;
diff --git a/include/d/bg/d_bg_w_kcol.h b/include/d/bg/d_bg_w_kcol.h
index 93a055df04..76263d508d 100644
--- a/include/d/bg/d_bg_w_kcol.h
+++ b/include/d/bg/d_bg_w_kcol.h
@@ -48,7 +48,7 @@ public:
/* 80082A80 */ virtual void GetHorseNoEntry(cBgS_PolyInfo const&);
/* 80082AB0 */ virtual void GetSpecialCode(cBgS_PolyInfo const&);
/* 80082AE0 */ virtual void GetSpecialCode(int);
- /* 80082B0C */ virtual void GetMagnetCode(cBgS_PolyInfo const&);
+ /* 80082B0C */ virtual int GetMagnetCode(cBgS_PolyInfo const&);
/* 80082B6C */ virtual void GetPolyObjThrough(int);
/* 80082B98 */ virtual void GetPolyCamThrough(int);
/* 80082BC4 */ virtual void GetPolyLinkThrough(int);
@@ -62,7 +62,7 @@ public:
/* 80082B3C */ virtual void GetMonkeyBarsCode(cBgS_PolyInfo const&);
/* 80082D24 */ virtual void GetLinkNo(cBgS_PolyInfo const&);
/* 80082D54 */ virtual s32 GetWallCode(cBgS_PolyInfo const&);
- /* 80082D84 */ virtual void GetPolyAtt0(cBgS_PolyInfo const&);
+ /* 80082D84 */ virtual BOOL GetPolyAtt0(cBgS_PolyInfo const&);
/* 80082DB4 */ virtual void GetPolyAtt1(cBgS_PolyInfo const&);
/* 80082DE4 */ virtual void GetGroundCode(cBgS_PolyInfo const&);
/* 80082E14 */ virtual void GetIronBallThrough(int);
diff --git a/include/d/cc/d_cc_d.h b/include/d/cc/d_cc_d.h
index 51bf27fc4f..5a7813a55b 100644
--- a/include/d/cc/d_cc_d.h
+++ b/include/d/cc/d_cc_d.h
@@ -91,13 +91,13 @@ enum dCcG_At_Spl {
};
class dCcD_GObjInf;
-typedef void (*dCcD_AtHitCallback)(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
+typedef void (*dCcD_HitCallback)(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
class dCcD_GAtTgCoCommonBase {
public:
/* 0x00 */ u32 mGFlag;
/* 0x04 */ u32 mRPrm;
- /* 0x08 */ dCcD_AtHitCallback mHitCallback;
+ /* 0x08 */ dCcD_HitCallback mHitCallback;
/* 0x0C */ u32 mApid;
/* 0x10 */ fopAc_ac_c* mAc;
/* 0x14 */ s8 mEffCounter;
@@ -124,7 +124,7 @@ public:
void OnSPrm(u32 flag) { mGFlag |= flag; }
void OffSPrm(u32 flag) { mGFlag &= ~flag; }
bool ChkRPrm(u32 flag) const { return MskRPrm(flag); }
- void SetHitCallback(dCcD_AtHitCallback callback) { mHitCallback = callback; }
+ void SetHitCallback(dCcD_HitCallback callback) { mHitCallback = callback; }
}; // Size = 0x1C
class dCcD_GObjAt : public dCcD_GAtTgCoCommonBase {
@@ -157,6 +157,8 @@ public:
/* 80083BE8 */ virtual ~dCcD_GObjTg() {}
void SetVec(cXyz& vec) { mVec = vec; }
cXyz& GetVec() { return mVec; }
+ void SetShieldFrontRangeYAngle(s16* angle) { mShieldFrontRangeYAngle = angle; }
+ void SetMtrl(u8 mtrl) { mMtrl = mtrl; }
private:
/* 0x1C */ u8 mSe;
@@ -186,7 +188,7 @@ public:
/* 800843A8 */ cCcD_GObjInf* GetAtHitGObj();
/* 800843DC */ bool ChkAtNoGuard();
/* 800843FC */ void ClrTgHit();
- /* 80084460 */ bool ChkTgHit();
+ /* 80084460 */ u32 ChkTgHit();
/* 800844B8 */ void ResetTgHit();
/* 800844F8 */ cCcD_Obj* GetTgHitObj();
/* 80084548 */ dCcD_GObjInf* GetTgHitGObj();
@@ -202,21 +204,27 @@ public:
bool ChkAtNoMass() const { return mGObjAt.ChkSPrm(8); }
void OnAtNoHitMark() { mGObjAt.OnSPrm(2); }
void OffAtNoHitMark() { mGObjAt.OffSPrm(2); }
+ void OnTgNoHitMark() { mGObjTg.OnSPrm(4); }
void OnAtNoConHit() { mGObjAt.OnSPrm(1); }
void OffAtNoConHit() { mGObjAt.OffSPrm(1); }
+ void OnTgNoConHit() { mGObjTg.OnSPrm(2); }
void SetAtHitMark(u8 mark) { mGObjAt.SetHitMark(mark); }
void SetAtSe(u8 se) { mGObjAt.SetSe(se); }
void SetAtMtrl(u8 mtrl) { mGObjAt.SetMtrl(mtrl); }
+ void SetTgMtrl(u8 mtrl) { mGObjTg.SetMtrl(mtrl); }
fopAc_ac_c* GetAtHitAc() { return mGObjAt.GetAc(); }
bool ChkAtShieldHit() { return mGObjAt.ChkRPrm(1); }
cXyz* GetAtVecP() { return mGObjAt.GetVecP(); }
void SetAtSpl(dCcG_At_Spl spl) { mGObjAt.SetAtSpl(spl); }
- void SetAtHitCallback(dCcD_AtHitCallback callback) { mGObjAt.SetHitCallback(callback); }
+ void SetAtHitCallback(dCcD_HitCallback callback) { mGObjAt.SetHitCallback(callback); }
+ void SetTgHitCallback(dCcD_HitCallback callback) { mGObjTg.SetHitCallback(callback); }
+ void SetCoHitCallback(dCcD_HitCallback callback) { mGObjCo.SetHitCallback(callback); }
u8 GetAtSe() { return mGObjAt.GetSe(); }
s32 GetAtSpl() { return mGObjAt.GetSpl(); }
u8 GetAtMtrl() { return mGObjAt.GetMtrl(); }
fopAc_ac_c* GetTgHitAc() { return mGObjTg.GetAc(); }
-
+ void SetTgShieldFrontRangeYAngle(s16* angle) { mGObjTg.SetShieldFrontRangeYAngle(angle); }
+
static u32 const m_hitSeID[24];
protected:
diff --git a/include/d/com/d_com_inf_actor.h b/include/d/com/d_com_inf_actor.h
index 2b45039390..ca9321197f 100644
--- a/include/d/com/d_com_inf_actor.h
+++ b/include/d/com/d_com_inf_actor.h
@@ -3,4 +3,16 @@
#include "dolphin/types.h"
+class dComIfAc_info_c {
+public:
+ /* 0x0 */ int field_0x0;
+ /* 0x4 */ bool mPause;
+};
+
+extern dComIfAc_info_c g_dComIfAc_gameInfo;
+
+inline bool dComIfA_PauseCheck() {
+ return g_dComIfAc_gameInfo.mPause;
+}
+
#endif /* D_COM_D_COM_INF_ACTOR_H */
diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h
index 022784b66c..58b15bb758 100644
--- a/include/d/com/d_com_inf_game.h
+++ b/include/d/com/d_com_inf_game.h
@@ -52,7 +52,9 @@ public:
/* 0x00 */ camera_class* mCamera;
/* 0x04 */ u8 field_0x4;
- /* 0x05 */ u8 field_0x5[3];
+ /* 0x05 */ u8 field_0x5;
+ /* 0x06 */ s8 field_0x6;
+ /* 0x07 */ u8 field_0x7;
/* 0x08 */ u32 mCameraAttentionStatus;
/* 0x0C */ f32 mCameraZoomScale;
/* 0x10 */ f32 mCameraZoomForcus;
@@ -326,8 +328,11 @@ public:
JKRExpHeap* getMsgExpHeap() { return mMsgExpHeap; }
JKRExpHeap* getSubExpHeap2D(int idx) { return mSubExpHeap2D[idx]; }
void setSubExpHeap2D(int idx, void* heap) { mSubExpHeap2D[idx] = (JKRExpHeap*)heap; }
+ void setExpHeap2D(void* heap) { mExpHeap2D = (JKRExpHeap*)heap; }
+ void setMsgExpHeap(void* heap) { mMsgExpHeap = (JKRExpHeap*)heap; }
JKRArchive* getMsgDtArchive(int idx) { return mMsgDtArchive[idx]; }
+ JKRArchive* getMsgArchive(int idx) { return mMsgArchive[idx]; }
JKRArchive* getMain2DArchive() { return mMain2DArchive; }
JKRArchive* getAnmArchive() { return mAnmArchive; }
JKRArchive* getCollectResArchive() { return mCollectResArchive; }
@@ -355,8 +360,11 @@ public:
void setRubyArchive(JKRArchive* arc) { mRubyArchive = arc; }
void setMain2DArchive(JKRArchive* arc) { mMain2DArchive = arc; }
void setItemTable(void* data) { mItemTable = data; }
+ void* getItemTable() { return mItemTable; }
+ void setPlayerPtr(int i, fopAc_ac_c* ptr) { mPlayerPtr[i] = ptr; }
void setPlayer(int i, fopAc_ac_c* player) { mPlayer[i] = (daAlink_c*)player; }
+ void setPlayerInfo(int i, fopAc_ac_c* ptr, int camIdx) { mPlayer[i] = (daAlink_c*)ptr; mPlayerCameraID[camIdx] = 0; }
void setPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[i] |= flag; }
void clearPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[i] &= ~flag; }
bool checkPlayerStatus(int param_0, int i, u32 flag) { return flag & mPlayerStatus[i]; }
@@ -368,12 +376,21 @@ public:
BOOL checkCameraAttentionStatus(int i, u32 flag) {
return mCameraInfo[i].mCameraAttentionStatus & flag;
}
+ void setCameraAttentionStatus(int i, u32 flag) { mCameraInfo[i].mCameraAttentionStatus = flag; }
+ void setCameraInfo(int camIdx, camera_class* p_cam, int param_2, int param_3, int param_4) {
+ mCameraInfo[camIdx].mCamera = p_cam;
+ mCameraInfo[camIdx].field_0x4 = param_2;
+ mCameraInfo[camIdx].field_0x5 = param_3;
+ mCameraInfo[camIdx].field_0x6 = param_4;
+ setCameraAttentionStatus(camIdx, 0);
+ }
void setStatus(u16 status) { mStatus = status; }
s32 checkStatus(u16 flags) { return flags & mStatus; }
bool& isPauseFlag() { return mPauseFlag; }
void offPauseFlag() { mPauseFlag = false; }
+ void onPauseFlag() { mPauseFlag = true; }
void show2dOn() { mShow2D = 1; }
s8 getLayerOld() { return mLayerOld; }
void setMesgCancelButton(u8 button) { mMesgCancelButton = button; }
@@ -389,6 +406,10 @@ public:
mWindow[i].setMode(mode);
}
+ void setLastPlayStageName(char* name) {
+ strncpy(mLastPlayStageName, name, 7);
+ mLastPlayStageName[7] = 0;
+ }
char* getLastPlayStageName() { return mLastPlayStageName; }
u8 getGameoverStatus() { return mGameoverStatus; }
@@ -440,7 +461,7 @@ public:
/* 0x04E3C */ dComIfG_camera_info_class mCameraInfo[1];
/* 0x04E74 */ daAlink_c* mPlayer[1];
/* 0x04E78 */ s8 mPlayerCameraID[4];
- /* 0x04E7C */ void* mPlayerPtr[2]; // 0: Player, 1: Horse ; type may be wrong
+ /* 0x04E7C */ fopAc_ac_c* mPlayerPtr[2]; // 0: Player, 1: Horse ; type may be wrong
/* 0x04E84 */ dMsgObject_c* mMsgObjectClass;
/* 0x04E88 */ f32 mItemLifeCount;
/* 0x04E8C */ s32 mItemRupeeCount;
@@ -656,9 +677,7 @@ void dComIfG_get_timelayer(int* layer);
int dComIfG_resDelete(request_of_phase_process_class* i_phase, char const* resName);
int dComIfG_changeOpeningScene(scene_class* scene, s16 procName);
int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* arc_name);
-BOOL dComIfGs_isStageSwitch(int i_stageNo, int i_no);
-void dComIfGs_onStageSwitch(int i_stageNo, int i_no);
-void dComIfGs_offStageSwitch(int i_stageNo, int i_no);
+int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* resName, JKRHeap* heap);
inline void dComIfG_setBrightness(u8 brightness) {
g_dComIfG_gameInfo.mFadeBrightness = brightness;
@@ -765,6 +784,17 @@ void dComIfGs_offOneZoneSwitch(int param_0, int param_1);
s8 dComIfGp_getReverb(int roomNo);
void dComIfGs_gameStart();
int dComIfGs_wolfeye_effect_check();
+BOOL dComIfGs_Wolf_Change_Check();
+void dComIfGs_onVisitedRoom(int param_0);
+void dComIfGs_setWarpItemData(char const* stage, cXyz pos, s16 angle, s8 roomNo, u8 param_4,
+ u8 param_5);
+BOOL dComIfGs_isStageSwitch(int i_stageNo, int i_no);
+void dComIfGs_onStageSwitch(int i_stageNo, int i_no);
+void dComIfGs_offStageSwitch(int i_stageNo, int i_no);
+
+inline void dComIfGs_init() {
+ g_dComIfG_gameInfo.info.init();
+}
inline void dComIfGs_onDungeonItemMap() {
g_dComIfG_gameInfo.info.getMemory().getBit().onDungeonItemMap();
@@ -866,6 +896,10 @@ inline void dComIfGs_setEmptyBombBagItemIn(u8 newBomb, bool setNum) {
g_dComIfG_gameInfo.info.getPlayer().getItem().setEmptyBombBagItemIn(newBomb, setNum);
}
+inline void dComIfGs_setEmptyBombBagItemIn(u8 newBomb, u8 bombNum, bool setNum) {
+ g_dComIfG_gameInfo.info.getPlayer().getItem().setEmptyBombBagItemIn(newBomb, bombNum, setNum);
+}
+
inline void dComIfGs_setEmptyBottle() {
g_dComIfG_gameInfo.info.getPlayer().getItem().setEmptyBottle();
}
@@ -1051,6 +1085,10 @@ inline s32 dComIfGs_isDungeonItemWarp() {
return g_dComIfG_gameInfo.info.getMemory().getBit().isDungeonItemWarp();
}
+inline s32 dComIfGs_isStageBossEnemy() {
+ return g_dComIfG_gameInfo.info.getMemory().getBit().isStageBossEnemy();
+}
+
inline void dComIfGs_setKeyNum(u8 keyNum) {
g_dComIfG_gameInfo.info.getMemory().getBit().setKeyNum(keyNum);
}
@@ -1369,6 +1407,38 @@ inline void* dComIfGs_getPEventBit() {
return g_dComIfG_gameInfo.info.getEvent().getPEventBit();
}
+inline bool dComIfGs_isItem(int bitNo, int roomNo) {
+ return g_dComIfG_gameInfo.info.isItem(bitNo, roomNo);
+}
+
+inline void dComIfGs_onItem(int bitNo, int roomNo) {
+ g_dComIfG_gameInfo.info.onItem(bitNo, roomNo);
+}
+
+inline void dComIfGs_onActor(int bitNo, int roomNo) {
+ g_dComIfG_gameInfo.info.onActor(bitNo, roomNo);
+}
+
+inline void dComIfGs_setLastWarpAcceptStage(s8 param_0) {
+ g_dComIfG_gameInfo.info.getPlayer().getPlayerLastMarkInfo().setWarpAcceptStage(param_0);
+}
+
+inline void dComIfGs_setOptPointer(u8 i_pointer) {
+ g_dComIfG_gameInfo.info.getPlayer().getConfig().setPointer(i_pointer);
+}
+
+inline u8 dComIfGs_getNewFile() {
+ return g_dComIfG_gameInfo.info.getNewFile();
+}
+
+inline void dComIfGs_setInitDataToCard(u8* p_saveData, int dataNum) {
+ g_dComIfG_gameInfo.info.initdata_to_card((char*)p_saveData, dataNum);
+}
+
+inline void dComIfGs_setMemoryToCard(u8* p_saveData, int dataNum) {
+ g_dComIfG_gameInfo.info.memory_to_card((char*)p_saveData, dataNum);
+}
+
void dComIfGp_setItemLifeCount(f32 amount, u8 type);
void dComIfGp_setItemRupeeCount(long amount);
void dComIfGp_setSelectItem(int index);
@@ -1396,6 +1466,7 @@ u8 dComIfGp_world_dark_get();
JKRExpHeap* dComIfGp_getSubHeap2D(int flag);
void dComIfGp_world_dark_set(u8);
u8 dComIfGp_getNowLevel();
+void dComIfGp_calcNowRegion();
inline dStage_startStage_c* dComIfGp_getStartStage() {
return g_dComIfG_gameInfo.play.getStartStage();
@@ -1457,6 +1528,10 @@ inline JKRArchive* dComIfGp_getMsgDtArchive(int idx) {
return g_dComIfG_gameInfo.play.getMsgDtArchive(idx);
}
+inline JKRArchive* dComIfGp_getMsgArchive(int idx) {
+ return g_dComIfG_gameInfo.play.getMsgArchive(idx);
+}
+
inline void dComIfGp_setFieldMapArchive2(JKRArchive* arc) {
g_dComIfG_gameInfo.play.setFieldMapArchive2(arc);
}
@@ -1537,6 +1612,10 @@ inline void dComIfGp_setItemTable(void* data) {
g_dComIfG_gameInfo.play.setItemTable(data);
}
+inline void* dComIfGp_getItemTable() {
+ return g_dComIfG_gameInfo.play.getItemTable();
+}
+
inline JKRExpHeap* dComIfGp_getExpHeap2D() {
return g_dComIfG_gameInfo.play.getExpHeap2D();
}
@@ -1605,6 +1684,10 @@ inline s16 dComIfGp_getNextStagePoint() {
return g_dComIfG_gameInfo.play.getNextStagePoint();
}
+inline void dComIfGp_setLastPlayStageName(char* name) {
+ g_dComIfG_gameInfo.play.setLastPlayStageName(name);
+}
+
inline u32 dComIfGp_getNowVibration() {
return g_dComIfG_gameInfo.play.getNowVibration();
}
@@ -1801,6 +1884,14 @@ inline void dComIfGp_setSubExpHeap2D(int idx, void* heap) {
g_dComIfG_gameInfo.play.setSubExpHeap2D(idx, heap);
}
+inline void dComIfGp_setExpHeap2D(void* heap) {
+ g_dComIfG_gameInfo.play.setExpHeap2D(heap);
+}
+
+inline void dComIfGp_setMsgExpHeap(void* heap) {
+ g_dComIfG_gameInfo.play.setMsgExpHeap(heap);
+}
+
inline void dComIfGp_offEnableNextStage() {
g_dComIfG_gameInfo.play.offEnableNextStage();
}
@@ -1825,10 +1916,22 @@ inline void dComIfGp_setStatus(u16 status) {
g_dComIfG_gameInfo.play.setStatus(status);
}
+inline void dComIfGp_setLinkPlayer(fopAc_ac_c* ptr) {
+ g_dComIfG_gameInfo.play.setPlayerPtr(0, ptr);
+}
+
+inline void dComIfGp_setPlayerPtr(int i, fopAc_ac_c* ptr) {
+ g_dComIfG_gameInfo.play.setPlayerPtr(i, ptr);
+}
+
inline void dComIfGp_setPlayer(int i, fopAc_ac_c* player) {
g_dComIfG_gameInfo.play.setPlayer(i, player);
}
+inline void dComIfGp_setPlayerInfo(int plyrIdx, fopAc_ac_c* ptr, int camIdx) {
+ g_dComIfG_gameInfo.play.setPlayerInfo(plyrIdx, ptr, camIdx);
+}
+
inline void dComIfGp_setPlayerStatus0(int param_0, u32 flag) {
g_dComIfG_gameInfo.play.setPlayerStatus(param_0, 0, flag);
}
@@ -1841,6 +1944,10 @@ inline BOOL dComIfGp_checkCameraAttentionStatus(int i, u32 flag) {
return g_dComIfG_gameInfo.play.checkCameraAttentionStatus(i, flag);
}
+inline void dComIfGp_setCameraInfo(int camIdx, camera_class* p_cam, int param_2, int param_3, int param_4) {
+ g_dComIfG_gameInfo.play.setCameraInfo(camIdx, p_cam, param_2, param_3, param_4);
+}
+
inline void dComIfGp_clearPlayerStatus0(int param_0, u32 flag) {
g_dComIfG_gameInfo.play.clearPlayerStatus(param_0, 0, flag);
}
@@ -2015,6 +2122,14 @@ inline JKRAramArchive* dComIfGp_getFieldMapArchive2() {
return g_dComIfG_gameInfo.play.getFieldMapArchive2();
}
+inline void dComIfGp_onPauseFlag() {
+ g_dComIfG_gameInfo.play.onPauseFlag();
+}
+
+inline void dComIfGp_createSimpleModel() {
+ g_dComIfG_gameInfo.play.createSimpleModel();
+}
+
inline s32 dComIfGp_roomControl_getStayNo() {
return dStage_roomControl_c::getStayNo();
}
@@ -2063,10 +2178,55 @@ inline BOOL dComIfGp_event_compulsory(void* param_0, const char* param_1, u16 pa
return g_dComIfG_gameInfo.play.getEvent().compulsory(param_0, param_1, param_2);
}
+inline int dComIfGp_event_moveApproval(void* actor) {
+ return g_dComIfG_gameInfo.play.getEvent().moveApproval(actor);
+}
+
+inline int dComIfGp_event_order(u16 eventType, u16 priority, u16 flag, u16 param_3, void* param_4,
+ void* param_5, s16 eventID, u8 infoIdx) {
+ return g_dComIfG_gameInfo.play.getEvent().order(eventType, priority, flag, param_3, param_4, param_5, eventID, infoIdx);
+}
+
+inline void dComIfGp_event_setGtItm(int i_itemNo) {
+ g_dComIfG_gameInfo.play.getEvent().setGtItm(i_itemNo);
+}
+
inline void dComIfGp_evmng_cutEnd(int param_0) {
dComIfGp_getPEvtManager()->cutEnd(param_0);
}
+inline BOOL dComIfGp_evmng_endCheck(const char* event) {
+ return g_dComIfG_gameInfo.play.getEvtManager().endCheckOld(event);
+}
+
+inline void dComIfGp_event_setItemPartnerId(unsigned int id) {
+ g_dComIfG_gameInfo.play.getEvent().setPtI_Id(id);
+}
+
+inline int dComIfGp_evmng_startDemo(int param_0) {
+ return dComIfGp_getPEvtManager()->setStartDemo(param_0);
+}
+
+inline void* dComIfGp_event_getTalkPartner() {
+ u32 t = g_dComIfG_gameInfo.play.getEvent().mPtT;
+ return g_dComIfG_gameInfo.play.getEvent().convPId(t);
+}
+
+inline void* dComIfGp_event_getItemPartner() {
+ u32 i = g_dComIfG_gameInfo.play.getEvent().mPtI;
+ return g_dComIfG_gameInfo.play.getEvent().convPId(i);
+}
+
+inline void* dComIfGp_event_getPt1() {
+ u32 pt1 = g_dComIfG_gameInfo.play.getEvent().mPt1;
+ return g_dComIfG_gameInfo.play.getEvent().convPId(pt1);
+}
+
+inline void* dComIfGp_event_getPt2() {
+ u32 pt2 = g_dComIfG_gameInfo.play.getEvent().mPt2;
+ return g_dComIfG_gameInfo.play.getEvent().convPId(pt2);
+}
+
inline int i_dComIfGp_evmng_getMyStaffId(const char* pName, fopAc_ac_c* pActor, int param_2) {
return dComIfGp_getPEvtManager()->getMyStaffId(pName, pActor, param_2);
}
@@ -2111,6 +2271,10 @@ inline void dComIfGp_particle_create() {
g_dComIfG_gameInfo.play.createParticle();
}
+inline void dComIfGp_particle_createScene(const void* param_0) {
+ g_dComIfG_gameInfo.play.getParticle()->createScene(param_0);
+}
+
inline JKRExpHeap* dComIfGp_particle_getResHeap() {
return g_dComIfG_gameInfo.play.getParticle()->getResHeap();
}
@@ -2145,6 +2309,15 @@ inline u32 dComIfGp_particle_set(u32 param_0, u16 param_1, const cXyz* param_2,
param_10, param_11, 1.0f);
}
+inline u32 dComIfGp_particle_set(u32 param_0, u16 param_1, const cXyz* param_2, const csXyz* param_3,
+ const cXyz* param_4, u8 param_5, dPa_levelEcallBack* param_6,
+ s8 param_7, const GXColor* param_8, const GXColor* param_9,
+ const cXyz* param_10) {
+ return g_dComIfG_gameInfo.play.getParticle()->setNormal(
+ param_0, param_1, param_2, NULL, param_3, param_4, param_5, param_6, param_7, param_8,
+ param_9, param_10, 1.0f);
+}
+
inline u32 dComIfGp_particle_set(u16 param_1, const cXyz* param_2, const dKy_tevstr_c* param_3,
const csXyz* param_4, const cXyz* param_5, u8 param_6,
dPa_levelEcallBack* param_7, s8 param_8, const GXColor* param_9,
@@ -2160,11 +2333,23 @@ inline u32 dComIfGp_particle_set(u16 param_0, const cXyz* param_1, const csXyz*
NULL, NULL);
}
+inline u32 dComIfGp_particle_set(u16 param_0, const cXyz* param_1, const dKy_tevstr_c* param_2, const csXyz* param_3,
+ const cXyz* param_4) {
+ return dComIfGp_particle_set(param_0, param_1, param_2, param_3, param_4, 0xFF, NULL, -1, NULL,
+ NULL, NULL);
+}
+
+inline u32 dComIfGp_particle_set(u32 param_0, u16 param_1, const cXyz* param_2, const csXyz* param_3,
+ const cXyz* param_4) {
+ return dComIfGp_particle_set(param_0, param_1, param_2, param_3, param_4, 0xFF, NULL, -1, NULL,
+ NULL, NULL);
+}
+
inline void dComIfGp_particle_levelEmitterOnEventMove(u32 param_0) {
g_dComIfG_gameInfo.play.getParticle()->forceOnEventMove(param_0);
}
-inline dPa_control_c::level_c::emitter_c* dComIfGp_particle_getEmitter(u32 param_0) {
+inline JPABaseEmitter* dComIfGp_particle_getEmitter(u32 param_0) {
return g_dComIfG_gameInfo.play.getParticle()->getEmitter(param_0);
}
@@ -2232,6 +2417,11 @@ inline void dComIfGd_setList() {
g_dComIfG_gameInfo.drawlist.setXluList();
}
+inline void dComIfGd_setListItem3D() {
+ g_dComIfG_gameInfo.drawlist.setOpaListItem3D();
+ g_dComIfG_gameInfo.drawlist.setXluListItem3D();
+}
+
inline void dComIfGd_setXluList2DScreen() {
g_dComIfG_gameInfo.drawlist.setXluList2DScreen();
}
diff --git a/include/d/com/d_com_static.h b/include/d/com/d_com_static.h
index 80bf69ee89..2268d3081a 100644
--- a/include/d/com/d_com_static.h
+++ b/include/d/com/d_com_static.h
@@ -29,7 +29,7 @@ public:
/* 80031248 */ void newData(s8, cXyz const&, cXyz const&, u8, u8, u8);
/* 800313BC */ void reset();
- /* 800314D4 */ void check(fopAc_ac_c*);
+ /* 800314D4 */ static void check(fopAc_ac_c*);
/* 80031434 */ static bool check(s8, cXyz const&);
/* 800315A4 */ static void execute();
diff --git a/include/d/d_camera.h b/include/d/d_camera.h
index a82d9e1459..3787acb30c 100644
--- a/include/d/d_camera.h
+++ b/include/d/d_camera.h
@@ -14,11 +14,20 @@ struct dCamMapToolData {
/* 8015FEB8 */ void Set(s32, s32, fopAc_ac_c*, u16, u8);
};
-struct dCamera_c {
- struct dCamInfo_c {
+class dCamera_c {
+public:
+ class dCamInfo_c {
+ public:
/* 8018291C */ dCamInfo_c();
/* 80182920 */ ~dCamInfo_c();
- };
+
+ private:
+ /* 0x00 */ cXyz field_0x0;
+ /* 0x0C */ cXyz field_0xc;
+ /* 0x18 */ f32 field_0x18;
+ /* 0x1C */ cSAngle field_0x1c;
+ /* 0x1E */ s16 field_0x1e;
+ }; // Size: 0x20
/* 8008908C */ void getEvIntData(int*, char*, int);
/* 80088CB0 */ void getEvIntData(int*, char*);
@@ -185,9 +194,50 @@ struct dCamera_c {
/* 80182980 */ void chkFlag(u32);
/* 801829AC */ void Bank();
+ bool Active() { return field_0x24 == 0; }
+
static u8 engine_tbl[240];
+
+ /* 0x000 */ cXyz field_0x0;
+ /* 0x00C */ cXyz field_0xc;
+ /* 0x018 */ f32 field_0x18;
+ /* 0x01C */ cSAngle field_0x1c;
+ /* 0x01E */ s16 field_0x1e;
+ /* 0x020 */ u8 field_0x20;
+ /* 0x021 */ u8 field_0x21;
+ /* 0x022 */ u8 field_0x22[0x24 - 0x22];
+ /* 0x024 */ int field_0x24;
+ /* 0x028 */ u8 field_0x28[0x30 - 0x28];
+ /* 0x030 */ cXyz field_0x30;
+ /* 0x03C */ cXyz field_0x3c;
+ /* 0x048 */ cXyz field_0x48;
+ /* 0x054 */ cSAngle field_0x54;
+ /* 0x058 */ f32 field_0x58;
+ class {
+ public:
+ /* 0x00 */ cSGlobe field_0x0;
+ /* 0x08 */ cXyz field_0x8;
+ /* 0x14 */ cXyz field_0x14;
+ /* 0x20 */ cSAngle field_0x20;
+ }
+ /* 0x05C */ field_0x5c;
+ /* 0x07C */ u8 field_0x7c[0x8C - 0x7C];
+ /* 0x08C */ cSAngle field_0x8c;
+ /* 0x090 */ cXyz field_0x90;
+ /* 0x09C */ cXyz field_0x9c;
+ /* 0x0A8 */ u8 field_0xa8[0xB0 - 0xA8];
+ /* 0x0B0 */ dCamInfo_c field_0xb0;
+ /* 0x0D0 */ dCamInfo_c field_0xd0[2];
+ class {
+ public:
+ /* 0x00 */ u8 field_0x0[8];
+ /* 0x08 */ dCamInfo_c field_0x8;
+ /* 0x28 */ cXyz field_0x28;
+ }
+ /* 0x110 */ field_0x110;
};
dCamera_c* dCam_getBody();
+dCamera_c* dCam_getCamera();
#endif /* D_D_CAMERA_H */
diff --git a/include/d/d_demo.h b/include/d/d_demo.h
index 842508ea5c..0800616e31 100644
--- a/include/d/d_demo.h
+++ b/include/d/d_demo.h
@@ -4,18 +4,65 @@
#include "JSystem/JStudio/JStudio/stb.h"
#include "dolphin/types.h"
-class cXyz;
-struct dDemo_c {
- /* 80039678 */ void create();
+struct cXyz;
+struct Vec;
+struct fopAc_ac_c;
+class dDemo_actor_c;
+
+class dDemo_object_c {
+public:
+ /* 80038F54 */ dDemo_object_c();
+ /* 80038F70 */ ~dDemo_object_c();
+ /* 80038FC0 */ void appendActor(fopAc_ac_c*);
+ /* 80039088 */ static dDemo_actor_c* getActor(u8);
+ /* 800390AC */ void createCamera();
+ /* 80039128 */ void getActiveCamera();
+ /* 8003913C */ void createAmbient();
+ /* 800391B8 */ void appendLight();
+ /* 80039258 */ void createFog();
+ /* 800392D4 */ void remove();
+};
+
+class dDemo_actor_c {
+public:
+ /* 80038020 */ dDemo_actor_c();
+ /* 80038098 */ ~dDemo_actor_c();
+ /* 80038128 */ void getActor();
+ /* 8003815C */ void setActor(fopAc_ac_c*);
+ /* 8003819C */ void getPrm_Morf();
+ /* 80038338 */ void getDemoIDData(int*, int*, int*, u16*, u8*);
+ /* 800387EC */ void JSGSetData(u32, void const*, u32);
+ /* 80038920 */ void JSGSetTranslation(Vec const&);
+ /* 80038980 */ void JSGSetScaling(Vec const&);
+ /* 800389A8 */ void JSGSetRotation(Vec const&);
+ /* 80038A0C */ void JSGSetShape(u32);
+ /* 80038A20 */ void JSGSetAnimation(u32);
+ /* 80038A40 */ void JSGSetAnimationFrame(f32);
+ /* 80038A54 */ void JSGSetAnimationTransition(f32);
+ /* 80038A68 */ void JSGSetTextureAnimation(u32);
+ /* 80038A7C */ void JSGSetTextureAnimationFrame(f32);
+ /* 8003A05C */ void JSGFindNodeID(char const*) const;
+ /* 8003A088 */ void JSGGetNodeTransformation(u32, f32 (*)[4]) const;
+ /* 8003A0C8 */ void JSGGetAnimationFrameMax() const;
+ /* 8003A0D0 */ void JSGGetTextureAnimationFrameMax() const;
+ /* 8003A0D8 */ void JSGGetTranslation(Vec*) const;
+ /* 8003A0F4 */ void JSGGetScaling(Vec*) const;
+ /* 8003A110 */ void JSGGetRotation(Vec*) const;
+};
+
+class dDemo_c {
+public:
+ /* 80039678 */ static void create();
/* 80039910 */ void remove();
- /* 80039B6C */ static void start(u8 const*, cXyz*, f32);
+ /* 80039B6C */ void start(u8 const*, cXyz*, f32);
/* 80039CF8 */ static void end();
/* 80039D4C */ void branch();
- /* 80039DA4 */ void update();
+ /* 80039DA4 */ static void update();
/* 80039EDC */ void setBranchType(u16);
/* 80039EEC */ void setBranchId(u16, s16);
/* 80039F04 */ void reset();
+ static dDemo_actor_c* getActor(u8 param_0) { return m_object->getActor(param_0); }
static u32 getFrameNoMsg() { return m_frameNoMsg; }
static s32 getMode() { return m_mode; }
static JStudio::stb::TControl* getControl() { return m_control; }
@@ -29,7 +76,7 @@ struct dDemo_c {
static u8 m_message[4];
static u8 m_factory[4];
static u8 m_mesgControl[4];
- static u8 m_object[4];
+ static dDemo_object_c* m_object;
static u8 m_data[4];
static u8 m_frame[4];
static u8 m_translation[4];
diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h
index f175a6a3bc..ddbd6ea7ea 100644
--- a/include/d/d_drawlist.h
+++ b/include/d/d_drawlist.h
@@ -239,6 +239,8 @@ public:
void setOpaListDark() { setOpaDrawList(mOpaListDark); }
void setOpaList() { setOpaDrawList(mOpaList); }
void setXluList() { setXluDrawList(mXluList); }
+ void setOpaListItem3D() { setOpaDrawList(mOpaListItem3d); }
+ void setXluListItem3D() { setXluDrawList(mXluListItem3d); }
void setXluListBG() { setXluDrawList(mXluListBG); }
void setOpaListBG() { setOpaDrawList(mOpaListBG); }
void setXluList2DScreen() { setXluDrawList(mList2DScreen); }
diff --git a/include/d/d_item.h b/include/d/d_item.h
index 860f370b52..cab6dcbc38 100644
--- a/include/d/d_item.h
+++ b/include/d/d_item.h
@@ -385,8 +385,9 @@ s32 item_getcheck_func_KEY_OF_FILONE();
s32 item_getcheck_func_noentry();
s32 checkItemGet(u8, int);
+BOOL isHeart(u8 item_no);
s32 isBomb(u8);
s32 isArrow(u8);
-void addBombCount(u8, u8);
+int addBombCount(u8, u8);
#endif /* D_D_ITEM_H */
diff --git a/include/d/d_item_data.h b/include/d/d_item_data.h
index 976bf716b8..7ae58debf3 100644
--- a/include/d/d_item_data.h
+++ b/include/d/d_item_data.h
@@ -54,6 +54,8 @@ struct dItem_data {
static s8 getBtpFrm(u8 index) { return item_resource[index].mBtpFrm; }
+ static s16 getTexture(u8 index) { return item_resource[index].mTexture; }
+
static char* getFieldArc(u8 index) { return field_item_res[index].mFieldArc; }
static s16 getItemBmdName(u8 index) { return field_item_res[index].mItemBmdName; }
@@ -78,6 +80,8 @@ struct dItem_data {
static u8 getR(u8 index) { return item_info[index].mR; }
+ static u16 getFieldHeapSize(u8 index) { return field_item_res[index].mHeapSize; }
+
static dItem_itemResource item_resource[255];
static dItem_fieldItemResource field_item_res[255];
static dItem_itemInfo item_info[255];
diff --git a/include/d/d_lib.h b/include/d/d_lib.h
index 769e80635b..121bff182e 100644
--- a/include/d/d_lib.h
+++ b/include/d/d_lib.h
@@ -12,14 +12,26 @@ struct STControl {
init();
}
- /* 80032044 */ STControl(s16, s16, s16, s16, f32, f32, s16, s16);
+ enum EStickDir {
+ TRIG_LEFT = 1,
+ TRIG_RIGHT,
+ TRIG_UP = 4,
+ TRIG_UP_LEFT,
+ TRIG_UP_RIGHT,
+ TRIG_DOWN = 8,
+ TRIG_DOWN_LEFT,
+ TRIG_DOWN_RIGHT,
+ };
+
+ /* 80032044 */ STControl(s16 delayY, s16 delayX, s16 param_2, s16 param_3, f32 threshold,
+ f32 param_5, s16 param_6, s16 param_7);
/* 80032088 */ void setWaitParm(s16, s16, s16, s16, f32, f32, s16, s16);
/* 800320AC */ void init();
/* 800320FC */ void Xinit();
/* 8003212C */ void Yinit();
/* 8003215C */ virtual f32 getValueStick();
/* 8003216C */ virtual s16 getAngleStick();
- /* 8003219C */ void checkTrigger();
+ /* 8003219C */ u8 checkTrigger();
/* 8003242C */ bool checkLeftTrigger();
/* 800324A8 */ bool checkRightTrigger();
/* 80032524 */ bool checkUpTrigger();
@@ -27,14 +39,14 @@ struct STControl {
void setFirstWaitTime(s16 time) { mFirstWaitTime = time; }
- /* 0x04 */ f32 field_0x04;
+ /* 0x04 */ f32 mThreshold;
/* 0x08 */ f32 field_0x08;
- /* 0x0C */ u8 field_0x0c;
+ /* 0x0C */ u8 mDirectionTrig;
/* 0x0D */ u8 field_0x0d;
/* 0x0E */ s16 field_0x0e;
/* 0x10 */ s16 field_0x10;
- /* 0x12 */ s16 field_0x12;
- /* 0x14 */ s16 field_0x14;
+ /* 0x12 */ s16 mRepeatDelayY;
+ /* 0x14 */ s16 mRepeatDelayX;
/* 0x16 */ s16 field_0x16;
/* 0x18 */ s16 mXwaitTimer;
/* 0x1A */ s16 mYwaitTimer;
diff --git a/include/d/d_model.h b/include/d/d_model.h
index d1ef64481d..690dd1b570 100644
--- a/include/d/d_model.h
+++ b/include/d/d_model.h
@@ -41,7 +41,7 @@ public:
/* 8009C6DC */ dMdl_c* search(J3DModelData*, u16, dKy_tevstr_c*);
/* 8009C724 */ dMdl_c* entry(J3DModelData*, u16, dKy_tevstr_c*);
/* 8009C8D8 */ dMdl_c* entry(J3DModelData*, u16, int);
- /* 8009C7AC */ void create();
+ /* 8009C7AC */ static void create();
/* 8009C864 */ void remove();
/* 8009C8C0 */ void reset();
diff --git a/include/d/d_path.h b/include/d/d_path.h
index 8ecf6b83d9..3731b66a4e 100644
--- a/include/d/d_path.h
+++ b/include/d/d_path.h
@@ -3,4 +3,6 @@
#include "dolphin/types.h"
+u16* dPath_GetRoomPath(int param_0, int param_1);
+
#endif /* D_D_PATH_H */
diff --git a/include/d/d_stage.h b/include/d/d_stage.h
index db454c2d19..835b4bbd8f 100644
--- a/include/d/d_stage.h
+++ b/include/d/d_stage.h
@@ -210,6 +210,7 @@ public:
/* 0x0C */ f32 field_0xc;
/* 0x10 */ u8 field_0x10[10];
/* 0x1A */ u8 mDefaultCamera;
+ /* 0x1B */ u8 mBitSw;
/* 0x1C */ u16 mMsg;
}; // Size: 0x20
@@ -244,7 +245,9 @@ struct dStage_MapEvent_dt_c {
u8 mType;
u8 field_0x1[3 - 1];
u8 field_0x3;
- u8 field_0x4[7 - 4];
+ u8 field_0x4;
+ u8 field_0x5;
+ u8 field_0x6;
u8 field_0x7;
u8 field_0x8;
u8 field_0x9;
@@ -715,6 +718,7 @@ public:
static void offNoChangeRoom() { data_80450D68 = false; }
static void setProcID(u32 id) { mProcID = id; }
static u32 getProcID() { return mProcID; }
+ static int getStatusProcID(int i_roomNo) { return mStatus[i_roomNo].mProcID; }
static void setFileList2(int i_roomNo, dStage_FileList2_dt_c* list) {
mStatus[i_roomNo].mRoomDt.mFileList2Info = list;
}
@@ -855,6 +859,10 @@ s8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class&, int);
int dStage_changeScene(int, f32, u32, s8, s16, int);
void dStage_infoCreate();
u8 dStage_stagInfo_GetParticleNo(stage_stag_info_class* p_info, int layer);
+int dStage_changeSceneExitId(cBgS_PolyInfo& param_0, f32 speed, u32 mode, s8 roomNo, s16 angle);
+int dStage_changeScene4Event(int i_exitId, s8 room_no, int i_wipe, bool param_3, f32 speed,
+ u32 mode, s16 angle, int param_7);
+void dStage_Create();
inline s32 dStage_roomRead_dt_c_GetVrboxswitch(roomRead_data_class& data) {
return data.field_0x2 & 8;
@@ -895,11 +903,16 @@ inline s16 dStage_stagInfo_GetUpButton(stage_stag_info_class* p_info) {
inline u32 dStage_stagInfo_GetArg0(stage_stag_info_class* p_info) {
return (p_info->field_0x0c >> 0x14) & 0xFF;
}
+
+inline int dStage_stagInfo_GetMsgGroup(stage_stag_info_class* p_info) {
+ return p_info->mMsgGroup;
+}
+
inline u32 dStage_sclsInfo_getSceneLayer(stage_scls_info_class* p_info) {
return p_info->field_0xb & 0xF;
}
-inline s8 dStage_sclsInfo_getWipe(stage_scls_info_class* p_info) {
+inline s32 dStage_sclsInfo_getWipe(stage_scls_info_class* p_info) {
return p_info->mWipe;
}
@@ -915,6 +928,14 @@ inline u32 dStage_FileList_dt_getMiniMap(dStage_FileList_dt_c* p_fList) {
return p_fList->mParameters >> 3 & 7;
}
+inline u32 dStage_FileList_dt_GetEnemyAppear1Flag(dStage_FileList_dt_c* p_fList) {
+ return p_fList->mParameters & 0x20000000;
+}
+
+inline int dStage_FileList_dt_GetBitSw(dStage_FileList_dt_c* p_fList) {
+ return p_fList->mBitSw;
+}
+
inline int dStage_MapEvent_dt_c_getEventSCutSW(dStage_MapEvent_dt_c* event) {
return event->field_0x8 & 1;
}
diff --git a/include/d/d_tresure.h b/include/d/d_tresure.h
index 3494a350e5..cc9567ad82 100644
--- a/include/d/d_tresure.h
+++ b/include/d/d_tresure.h
@@ -21,8 +21,17 @@ public:
class typeGroupData_c {
public:
data_s* getDataPointer() { return &mData; }
+ typeGroupData_c* getNextDataPointer() const { return mNextData; }
void setNextDataPointer(typeGroupData_c* data) { mNextData = data; }
void setTypeGroupNo(u8 no) { mTypeGroupNo = no; }
+ u8 getNo() const { return mData.mNo; }
+ u8 getStatus() const { return mData.mStatus; }
+ void setStatus(u8 status) { mData.mStatus = status; }
+ void setRoomNo(s8 roomNo) { mData.mRoomNo = roomNo; }
+ s8 getRoomNo() const { return mData.mRoomNo; }
+ void setPos(const Vec& pos) { mData.mPos = pos; }
+ u8 getSwBit() const { return mData.mSwBit; }
+ const Vec* getPos() const { return &mData.mPos; }
/* 0x00 */ data_s mData;
/* 0x14 */ typeGroupData_c* mNextData;
@@ -30,28 +39,32 @@ public:
}; // Size: 0x1C
struct list_class {
- /* 0x0 */ int field_0x0;
+ /* 0x0 */ typeGroupData_c* field_0x0;
/* 0x4 */ typeGroupData_c* field_0x4;
- /* 0x8 */ u8 field_0x8;
+ /* 0x8 */ u8 mNumber;
};
/* 8009BBD8 */ static int createWork();
/* 8009BC18 */ static void create();
- /* 8009BC60 */ void remove();
+ /* 8009BC60 */ static void remove();
/* 8009BC6C */ static void reset();
/* 8009BCB4 */ static void addData(dTres_c::list_class*, s8);
/* 8009BE28 */ static void checkTreasureBox(dTres_c::data_s*);
- /* 8009C168 */ void onStatus(u8, int, int);
- /* 8009C1F0 */ void offStatus(u8, int, int);
- /* 8009C27C */ void getBossIconFloorNo(int*);
- /* 8009C360 */ void getFirstData(u8);
- /* 8009C39C */ void getNextData(dTres_c::typeGroupData_c*);
- /* 8009C3B4 */ void getNextData(dTres_c::typeGroupData_c const*);
- /* 8009C3CC */ void setPosition(int, u8, Vec const*, int);
- /* 8009C49C */ void getTypeGroupNoToType(u8);
- /* 8009C4B0 */ static u8 getTypeToTypeGroupNo(u8);
-
- static u8 const typeToTypeGroup[34];
+ /* 8009C168 */ static void onStatus(u8, int, int);
+ /* 8009C1F0 */ static void offStatus(u8, int, int);
+ /* 8009C27C */ static int getBossIconFloorNo(int*);
+ /* 8009C360 */ static typeGroupData_c* getFirstData(u8);
+ /* 8009C39C */ static typeGroupData_c* getNextData(dTres_c::typeGroupData_c*);
+ /* 8009C3B4 */ static typeGroupData_c* getNextData(dTres_c::typeGroupData_c const*);
+ /* 8009C3CC */ static void setPosition(int, u8, Vec const*, int);
+ /* 8009C49C */ static int getTypeGroupNoToType(u8);
+ /* 8009C4B0 */ static int getTypeToTypeGroupNo(u8);
+
+ static int getTypeGroupNumber(int index) {
+ return mTypeGroupListAll[index].mNumber;
+ }
+
+ static u8 const typeToTypeGroup[17][2];
static list_class mTypeGroupListAll[17];
static typeGroupData_c* mTypeGroupData;
static u16 mNum;
diff --git a/include/d/event/d_event.h b/include/d/event/d_event.h
index 3559a31f4d..7557d3cb3f 100644
--- a/include/d/event/d_event.h
+++ b/include/d/event/d_event.h
@@ -13,15 +13,15 @@ public:
~dEvt_order_c() {}
dEvt_order_c();
- /* 0x00 */ u16 mEventType;
- /* 0x02 */ u16 mFlag;
- /* 0x04 */ s16 field_0x04;
- /* 0x08 */ fopAc_ac_c* mActor1;
- /* 0x0C */ fopAc_ac_c* mActor2;
- /* 0x10 */ s16 mEventId;
- /* 0x12 */ s16 mPriority;
- /* 0x14 */ u8 mNextOrderIdx;
- /* 0x15 */ u8 mEventInfoIdx;
+ /* 0x00 */ u16 mEventType;
+ /* 0x02 */ u16 mFlag;
+ /* 0x04 */ u16 field_0x04;
+ /* 0x08 */ fopAc_ac_c* mActor1;
+ /* 0x0C */ fopAc_ac_c* mActor2;
+ /* 0x10 */ s16 mEventId;
+ /* 0x12 */ u16 mPriority;
+ /* 0x14 */ s8 mNextOrderIdx;
+ /* 0x15 */ u8 mEventInfoIdx;
}; // Size = 0x18
STATIC_ASSERT(sizeof(dEvt_order_c) == 0x18);
@@ -31,24 +31,25 @@ typedef int (*SkipFunc)(void*, int);
class dEvt_control_c {
public:
dEvt_control_c();
- bool orderOld(u16, u16, u16, u16, void*, void*, void const*);
- bool order(u16, u16, u16, u16, void*, void*, s16, u8);
+ s32 orderOld(u16, u16, u16, u16, void*, void*, void const*);
+ s32 order(u16 eventType, u16 priority, u16 flag, u16 param_3, void* param_4,
+ void* param_5, s16 eventID, u8 infoIdx);
void setParam(dEvt_order_c*);
s32 beforeFlagProc(dEvt_order_c*);
void afterFlagProc(dEvt_order_c*);
int commonCheck(dEvt_order_c*, u16, u16);
- void talkCheck(dEvt_order_c*);
- void talkXyCheck(dEvt_order_c*);
- void catchCheck(dEvt_order_c*);
+ int talkCheck(dEvt_order_c*);
+ int talkXyCheck(dEvt_order_c*);
+ int catchCheck(dEvt_order_c*);
void talkEnd();
- void demoCheck(dEvt_order_c*);
+ int demoCheck(dEvt_order_c*);
void demoEnd();
- s32 potentialCheck(dEvt_order_c*);
- void doorCheck(dEvt_order_c*);
+ int potentialCheck(dEvt_order_c*);
+ int doorCheck(dEvt_order_c*);
int itemCheck(dEvt_order_c*);
int endProc();
- void change();
- void entry();
+ int change();
+ int entry();
void reset(void*);
void reset();
void clearSkipSystem();
@@ -57,9 +58,9 @@ public:
void setSkipZev(void*, char*);
void onSkipFade();
void offSkipFade();
- void skipper();
- void Step();
- void moveApproval(void*);
+ bool skipper();
+ int Step();
+ int moveApproval(void*);
BOOL compulsory(void*, char const*, u16);
void remove();
dStage_MapEvent_dt_c* getStageEventDt();
@@ -80,17 +81,23 @@ public:
void isOrderOK();
u16 chkFlag2(u16 flag) { return flag & mFlag2; }
- bool runCheck() { return field_0xe5 != 0; }
+ bool runCheck() { return mEventStatus != 0; }
u16 chkEventFlag(u16 flag) { return flag & mEventFlag; }
void onEventFlag(u16 flag) { mEventFlag |= flag; }
+ void offEventFlag(u16 flag) { mEventFlag &= ~flag; }
u8 getMode() const { return mMode; }
u16 checkHind(u16 flag) { return flag & mHindFlag; }
u8 checkCompulsory() { return mCompulsory; }
+ u8 getMapToolId() { return mMapToolId; }
+ void onFlag2(u16 flag) { mFlag2 |= flag; }
+ void offFlag2(u16 flag) { mFlag2 &= ~flag; }
void setCullRate(f32 f) { mCullRate = f; }
- bool i_isOrderOK() { return field_0xe5 == 0 || field_0xe5 == 2; }
+ bool i_isOrderOK() { return mEventStatus == 0 || mEventStatus == 2; }
void* getPt1() { return convPId(mPt1); }
void* getPt2() { return convPId(mPt2); }
+ void* getPtT() { return convPId(mPtT); }
+ bool isChangeOK(void* param_0) { return mChangeOK == param_0; }
public:
/* 0x000 */ u8 field_0x0[4];
@@ -105,10 +112,10 @@ public:
/* 0x0DC */ u16 mHindFlag;
/* 0x0DE */ s16 mSpecifiedEvent; // name maybe wrong
/* 0x0E0 */ s16 field_0xe0;
- /* 0x0E2 */ u8 mNum;
- /* 0x0E3 */ u8 field_0xe3;
+ /* 0x0E2 */ s8 mNum;
+ /* 0x0E3 */ s8 field_0xe3;
/* 0x0E4 */ u8 mMode;
- /* 0x0E5 */ u8 field_0xe5;
+ /* 0x0E5 */ u8 mEventStatus;
/* 0x0E6 */ u8 field_0xe6;
/* 0x0E7 */ u8 field_0xe7;
/* 0x0E8 */ u8 field_0xe8;
@@ -119,19 +126,19 @@ public:
/* 0x0ED */ u8 field_0xed;
/* 0x0EE */ u8 mPreItemNo;
/* 0x0EF */ u8 mGtItm;
- /* 0x0F0 */ float mCullRate;
+ /* 0x0F0 */ f32 mCullRate;
/* 0x0F4 */ dStage_MapEvent_dt_c* mStageEventDt;
/* 0x0F8 */ void* mChangeOK;
/* 0x0FC */ u8 field_0xfc[4];
/* 0x100 */ SkipFunc mSkipFunc;
/* 0x104 */ u32 field_0x104;
- /* 0x108 */ u32 field_0x108;
- /* 0x10C */ u32 field_0x10c;
+ /* 0x108 */ int mSkipTimer;
+ /* 0x10C */ int field_0x10c;
/* 0x110 */ int mSkipFade;
/* 0x114 */ char mSkipEventName[20];
/* 0x128 */ u8 mCompulsory;
/* 0x129 */ bool field_0x129;
- /* 0x12C */ int field_0x12c;
+ /* 0x12C */ int mRoomNo;
}; // Size = 0x130
int dEv_defaultSkipProc(void* param_0, int param_1);
diff --git a/include/d/event/d_event_manager.h b/include/d/event/d_event_manager.h
index 116876a27c..74f48b1a0e 100644
--- a/include/d/event/d_event_manager.h
+++ b/include/d/event/d_event_manager.h
@@ -67,11 +67,11 @@ public:
int ChkPresentEnd();
int checkStartDemo();
- void setStartDemo(int param_0) { mEventException.setStartDemo(param_0); }
+ int setStartDemo(int param_0) { return mEventException.setStartDemo(param_0); }
void setCameraPlay(int status) { mCameraPlay = status; }
dEvDtBase_c& getBase() { return mEventList[mCurrentEventType]; }
-
void setFlag(int flag) { mFlags.flagSet(flag); }
+ bool dataLoaded() { return mDataLoaded; }
int flagCheck(int flag) { return mFlags.flagCheck(flag); }
static int getIndexCompositId(s16 param_0) { return param_0 != -1 ? (u8)param_0 : -1; }
diff --git a/include/d/file/d_file_sel_warning.h b/include/d/file/d_file_sel_warning.h
index 40521900fa..01af1edf80 100644
--- a/include/d/file/d_file_sel_warning.h
+++ b/include/d/file/d_file_sel_warning.h
@@ -1,6 +1,25 @@
#ifndef D_FILE_D_FILE_SEL_WARNING_H
#define D_FILE_D_FILE_SEL_WARNING_H
-#include "dolphin/types.h"
+#include "d/com/d_com_inf_game.h"
+
+class dFile_warning_c {
+public:
+ /* 80191BAC */ dFile_warning_c(JKRArchive*, u8);
+ /* 80191CF4 */ void screenSet();
+ /* 80191F18 */ void _move();
+ /* 80191F90 */ void modeWait();
+ /* 80191F94 */ void modeMove();
+ /* 80191FD4 */ void baseMoveAnm();
+ /* 801920B8 */ void openInit();
+ /* 8019210C */ void closeInit();
+ /* 80192160 */ void init();
+ /* 80192190 */ void _draw();
+ /* 801921CC */ void drawSelf();
+ /* 801921F8 */ void setText(u32);
+ /* 80192240 */ void setFontColor(JUtility::TColor, JUtility::TColor);
+
+ /* 80191C18 */ virtual ~dFile_warning_c();
+};
#endif /* D_FILE_D_FILE_SEL_WARNING_H */
diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h
index ccdd271eaa..b5393ddcab 100644
--- a/include/d/kankyo/d_kankyo.h
+++ b/include/d/kankyo/d_kankyo.h
@@ -24,6 +24,7 @@ s32 dKy_daynight_check();
void dKy_clear_game_init();
void dKy_setLight_init();
u8 dKy_pol_sound_get(cBgS_PolyInfo const* param_0);
+void dKy_depth_dist_set(void* param_0);
void dKy_instant_rainchg();
void dKy_instant_timechg(f32);
@@ -507,5 +508,8 @@ void dKy_setLight_nowroom(char);
void dKy_setLight_nowroom_actor(dKy_tevstr_c*);
void dKy_setLight_again();
void dKy_GxFog_tevstr_set(dKy_tevstr_c*);
+void dKy_plight_set(LIGHT_INFLUENCE* param_0);
+void dKy_tevstr_init(dKy_tevstr_c* param_0, s8 param_1, u8 param_2);
+SND_INFLUENCE* dKy_Sound_get();
#endif /* D_KANKYO_D_KANKYO_H */
diff --git a/include/d/map/d_map_path_dmap.h b/include/d/map/d_map_path_dmap.h
index d3467a3ad2..37c2da358a 100644
--- a/include/d/map/d_map_path_dmap.h
+++ b/include/d/map/d_map_path_dmap.h
@@ -13,7 +13,7 @@ public:
/* 8003F7E8 */ static void createWork();
/* 8003FA40 */ void setPointer(s8, void*, int);
/* 8003F810 */ void setPointer(dDrawPath_c::room_class*, s8*, s8*);
- /* 8003FB70 */ void create();
+ /* 8003FB70 */ static void create();
/* 8003FBD0 */ void reset();
/* 8003FC70 */ void remove();
diff --git a/include/d/menu/d_menu_save.h b/include/d/menu/d_menu_save.h
index 74c25cf4fb..e141f1de06 100644
--- a/include/d/menu/d_menu_save.h
+++ b/include/d/menu/d_menu_save.h
@@ -5,37 +5,133 @@
#include "d/d_lib.h"
#include "d/d_select_cursor.h"
#include "dolphin/types.h"
+#include "m_Do/m_Do_dvd_thread.h"
class dMsgString_c;
-class mDoDvdThd_command_c;
class dFile_warning_c;
class dFile_info_c;
class dMsgScrnExplain_c;
class dDlst_MenuSaveExplain_c : public dDlst_base_c {
public:
+ dDlst_MenuSaveExplain_c() { mpScrn = NULL; }
+
/* 801F6ADC */ virtual void draw();
/* 801F6B8C */ virtual ~dDlst_MenuSaveExplain_c();
+ void setScrnExplain(dMsgScrnExplain_c* p_scrn) { mpScrn = p_scrn; }
+
private:
- /* 0x4 */ int field_0x4;
+ /* 0x4 */ dMsgScrnExplain_c* mpScrn;
};
class dDlst_MenuSave_c : public dDlst_base_c {
public:
+ dDlst_MenuSave_c() {
+ Scr = NULL;
+ mMsgString = NULL;
+ }
+
/* 801F6B0C */ virtual void draw();
/* 801F6B44 */ virtual ~dDlst_MenuSave_c();
+
+ /* 0x04 */ J2DScreen* Scr;
+ /* 0x08 */ JUTFont* font[2];
+ /* 0x10 */ dMsgString_c* mMsgString;
+};
+
+class dMs_HIO_c {
+public:
+ /* 801EF654 */ dMs_HIO_c();
+ /* 801F6BD4 */ virtual ~dMs_HIO_c();
+
+ /* 0x4 */ s8 field_0x4;
+ /* 0x5 */ u8 mDisplayWaitFrames;
+ /* 0x6 */ u8 mCardWaitFrames;
+ /* 0x7 */ u8 mEffectDispFrames;
+ /* 0x8 */ u8 mCharSwitchFrames;
+ /* 0x9 */ u8 mSelectIcon;
+ /* 0xA */ u8 mSelectFrames;
+ /* 0xB */ u8 mFadeOutTimer;
+ /* 0xC */ bool mTitleMsgCheck;
+ /* 0xD */ u8 field_0xd;
+ /* 0xE */ bool mErrorMsgCheck;
+ /* 0xF */ u8 field_0xf;
};
class dMenu_save_c {
public:
+ enum {
+ /* 0x00 */ PROC_SAVE_QUESTION,
+ /* 0x01 */ PROC_SAVE_QUESTION2,
+ /* 0x02 */ PROC_SAVE_QUESTION21,
+ /* 0x03 */ PROC_SAVE_QUESTION3,
+ /* 0x04 */ PROC_SAVE_QUESTION4,
+ /* 0x05 */ PROC_SAVE_GUIDE,
+ /* 0x06 */ PROC_MEMCARD_CHECK,
+ /* 0x07 */ PROC_BACK_SAVE_QUESTION,
+ /* 0x08 */ PROC_BACK_SAVE_QUESTION2,
+ /* 0x09 */ PROC_MEMCARD_ERRMSG_WAIT_KEY,
+ /* 0x0A */ PROC_IPL_SELECT_DISP1,
+ /* 0x0B */ PROC_IPL_SELECT_DISP2,
+ /* 0x0C */ PROC_MEMCARD_ERR_GO_IPL_SEL,
+ /* 0x0D */ PROC_IPL_SELECT2_DISP,
+ /* 0x0E */ PROC_MEMCARD_ERR_GO_IPL_SEL2,
+ /* 0x0F */ PROC_MEMCARD_ERR_GOTO_IPL,
+ /* 0x10 */ PROC_MEMCARD_ERRMSG_WAIT_FORMAT_SEL,
+ /* 0x11 */ PROC_CARD_FORMAT_YES_SEL_DISP,
+ /* 0x12 */ PROC_CARD_FORMAT_NO_SEL_DISP,
+ /* 0x13 */ PROC_MEMCARD_ERRMSG_WAIT_FORMAT_SEL2,
+ /* 0x14 */ PROC_CARD_FORMAT_YES_SEL2_DISP,
+ /* 0x15 */ PROC_MEMCARD_FORMAT,
+ /* 0x16 */ PROC_MEMCARD_FORMAT_WAIT,
+ /* 0x17 */ PROC_MAKE_GAME_FILE_SEL_DISP,
+ /* 0x18 */ PROC_MEMCARD_MAKE_GAME_FILE_SEL,
+ /* 0x19 */ PROC_MAKE_GAME_FILE_DISP,
+ /* 0x1A */ PROC_MEMCARD_MAKE_GAME_FILE,
+ /* 0x1B */ PROC_MEMCARD_MAKE_GAME_FILE_WAIT,
+ /* 0x1C */ PROC_MEMCARD_COMMAND_END,
+ /* 0x1D */ PROC_MEMCARD_COMMAND_END2,
+ /* 0x1E */ PROC_MEMCARD_DATA_LOAD_WAIT,
+ /* 0x1F */ PROC_MEMCARD_DATA_SAVE_WAIT,
+ /* 0x20 */ PROC_MEMCARD_DATA_SAVE_WAIT2,
+ /* 0x21 */ PROC_GAME_CONTINUE_DISP,
+ /* 0x22 */ PROC_GAME_CONTINUE,
+ /* 0x23 */ PROC_GAME_CONTINUE2,
+ /* 0x24 */ PROC_GAME_CONTINUE3,
+ /* 0x25 */ PROC_SAVE_END,
+ /* 0x26 */ PROC_ENDING_NO_SAVE,
+ /* 0x27 */ PROC_ENDING_NO_SAVE2,
+ /* 0x28 */ PROC_ENDING_DATA_CHECK,
+ /* 0x29 */ PROC_SAVE_WAIT,
+ /* 0x2A */ PROC_MESSAGE_CHANGE,
+ /* 0x2B */ PROC_RETRY_QUESTION0,
+ /* 0x2C */ PROC_RETRY_QUESTION1,
+ /* 0x2D */ PROC_RETRY_QUESTION2,
+ /* 0x2E */ PROC_OPEN_SAVE_SELECT,
+ /* 0x2F */ PROC_OPEN_SAVE_SELECT2,
+ /* 0x30 */ PROC_OPEN_SAVE_SELECT3,
+ /* 0x31 */ PROC_SAVE_SELECT,
+ /* 0x32 */ PROC_SAVE_SELECT_MOVE_ANM,
+ /* 0x33 */ PROC_SELECT_DATA_OPEN_MOVE,
+ /* 0x34 */ PROC_SAVE_YES_NO_SELECT,
+ /* 0x35 */ PROC_YES_NO_CURSOR_MOVE_ANM,
+ /* 0x36 */ PROC_SAVE_YES_NO_CANCEL_MOVE,
+ /* 0x37 */ PROC_SAVE_MOVE_DISP,
+ /* 0x38 */ PROC_SAVE_MOVE_DISP2,
+ /* 0x39 */ PROC_MSG_WINDOW_INIT_OPEN,
+ /* 0x3A */ PROC_MSG_WINDOW_OPEN,
+ /* 0x3B */ PROC_MSG_WINDOW_CLOSE,
+ /* 0x3C */ PROC_ERR_YES_NO_CURSOR_MOVE_ANM,
+ };
+
/* 801EF6A0 */ dMenu_save_c();
/* 801EF7AC */ void _create();
/* 801EF904 */ void screenSet();
/* 801F0938 */ void initialize();
/* 801F0958 */ void displayInit();
/* 801F09AC */ bool _open();
- /* 801F0B10 */ void _close();
+ /* 801F0B10 */ int _close();
/* 801F0B28 */ void _delete();
/* 801F1048 */ void _move();
/* 801F1100 */ void saveSelAnm();
@@ -96,7 +192,7 @@ public:
/* 801F30B8 */ void restartInit();
/* 801F31B0 */ void saveWait();
/* 801F31B4 */ void messageChange();
- /* 801F328C */ void YesNoSelect();
+ /* 801F328C */ int YesNoSelect();
/* 801F34BC */ void msgTxtSet(u16, bool);
/* 801F3588 */ void openSaveSelect();
/* 801F36B4 */ void openSaveSelect2();
@@ -120,11 +216,11 @@ public:
/* 801F4B84 */ void msgWindowInitOpen();
/* 801F4D10 */ void msgWindowOpen();
/* 801F4DAC */ void msgWindowClose();
- /* 801F4E48 */ void errYesNoSelect(u8, u8);
+ /* 801F4E48 */ bool errYesNoSelect(u8, u8);
/* 801F4FB4 */ void errCurMove(u8, u8);
/* 801F5054 */ void errYesNoCursorMoveAnm();
/* 801F50C4 */ void errorTxtSet(u16);
- /* 801F5190 */ void errorTxtChangeAnm();
+ /* 801F5190 */ bool errorTxtChangeAnm();
/* 801F5278 */ void saveSelectOpenInit();
/* 801F533C */ void selectDataBaseMoveAnmInitSet(int, int);
/* 801F53D4 */ void selectDataBaseMoveAnm();
@@ -132,7 +228,7 @@ public:
/* 801F5508 */ void selectDataMoveAnmInitSet(int, int);
/* 801F5600 */ void selectDataMoveAnm();
/* 801F5744 */ void yesnoMenuMoveAnmInitSet(int, int, u8);
- /* 801F58C8 */ void yesnoMenuMoveAnm();
+ /* 801F58C8 */ bool yesnoMenuMoveAnm();
/* 801F5AE4 */ void yesnoSelectMoveAnm(u8);
/* 801F5D84 */ void yesnoCursorShow();
/* 801F5EF4 */ void errorMoveAnmInitSet(int, int);
@@ -140,7 +236,7 @@ public:
/* 801F60A4 */ void modoruTxtDispAnmInit(u8);
/* 801F6120 */ void modoruTxtDispAnm();
/* 801F61FC */ void ketteiTxtDispAnmInit(u8);
- /* 801F6278 */ void ketteiTxtDispAnm();
+ /* 801F6278 */ bool ketteiTxtDispAnm();
/* 801F6354 */ void selectWakuAlpahAnmInit(u8, u8, u8, u8);
/* 801F6390 */ void selectWakuAlpahAnm(u8);
/* 801F6458 */ void selFileCursorShow();
@@ -157,38 +253,33 @@ public:
u8 getSaveStatus() { return mSaveStatus; }
void setUseType(u8 type) { mUseType = type; }
- struct SaveSel {
- /* 0x00 */ J2DScreen* Scr;
- /* 0x04 */ JUTFont* font[2];
- /* 0x0C */ dMsgString_c* mMsgString;
- }; // Size: 0x10
-
private:
- /* 0x0004 */ JKRArchive* field_0x4;
- /* 0x0008 */ mDoDvdThd_command_c* field_0x8;
+ /* 0x0004 */ JKRArchive* mpArchive;
+ /* 0x0008 */ mDoDvdThd_mountArchive_c* mpMount;
/* 0x000C */ STControl* stick;
- /* 0x0010 */ dDlst_MenuSaveExplain_c field_0x10;
- /* 0x0018 */ dDlst_MenuSave_c field_0x18;
- /* 0x001C */ SaveSel mSaveSel;
+ /* 0x0010 */ dDlst_MenuSaveExplain_c mMenuSaveExplain;
+ /* 0x0018 */ dDlst_MenuSave_c mMenuSave;
/* 0x002C */ dSelect_cursor_c* mSelIcon;
- /* 0x0030 */ dFile_warning_c* field_0x30;
- /* 0x0034 */ dFile_info_c* field_0x34[3];
- /* 0x0040 */ void* field_0x40;
- /* 0x0044 */ void* field_0x44;
- /* 0x0048 */ void* field_0x48;
- /* 0x004C */ void* field_0x4c;
+ /* 0x0030 */ dFile_warning_c* mWarning;
+ /* 0x0034 */ dFile_info_c* mFileInfo[3];
+ /* 0x0040 */ J2DAnmTransformKey* field_0x40;
+ /* 0x0044 */ J2DAnmTransformKey* field_0x44;
+ /* 0x0048 */ J2DAnmTransformKey* field_0x48;
+ /* 0x004C */ J2DAnmTransformKey* field_0x4c;
/* 0x0050 */ s32 field_0x50;
/* 0x0054 */ u8 field_0x54;
/* 0x0058 */ CPaneMgr* field_0x58;
/* 0x005C */ int field_0x5c;
/* 0x0060 */ int field_0x60;
/* 0x0064 */ u8 field_0x64;
- /* 0x0064 */ u8 field_0x65;
+ /* 0x0065 */ u8 field_0x65;
/* 0x0068 */ CPaneMgr* field_0x68[3];
/* 0x0074 */ u8 field_0x74[0x10];
/* 0x0084 */ CPaneMgr* field_0x84[2];
/* 0x008C */ u8 field_0x8c[0x10];
/* 0x009C */ u8 field_0x9c;
+ /* 0x009D */ u8 field_0x9d;
+ /* 0x009E */ u8 field_0x9e;
/* 0x00A0 */ int field_0xa0;
/* 0x00A4 */ u8 field_0xa4[0x10];
/* 0x00B4 */ J2DPane* field_0xb4;
@@ -197,7 +288,7 @@ private:
/* 0x00C0 */ CPaneMgr* field_0xc0[2];
/* 0x00C8 */ char* field_0xc8[2];
/* 0x00D0 */ u8 field_0xd0;
- /* 0x00D2 */ u8 field_0xd1;
+ /* 0x00D1 */ u8 field_0xd1;
/* 0x00D2 */ u8 field_0xd2;
/* 0x00D3 */ u8 field_0xd3;
/* 0x00D4 */ CPaneMgr* field_0xd4[3];
@@ -215,22 +306,24 @@ private:
/* 0x0132 */ u8 field_0x132[2];
/* 0x0134 */ u8 field_0x134[2];
/* 0x0138 */ CPaneMgr* field_0x138[2];
- /* 0x0140 */ void* field_0x140;
+ /* 0x0140 */ J2DAnmColorKey* field_0x140;
/* 0x0144 */ int field_0x144;
- /* 0x0148 */ void* field_0x148;
+ /* 0x0148 */ J2DAnmTextureSRTKey* field_0x148;
/* 0x014C */ int field_0x14c;
- /* 0x0150 */ void* field_0x150;
+ /* 0x0150 */ J2DAnmColorKey* field_0x150;
/* 0x0154 */ int field_0x154;
- /* 0x0158 */ void* field_0x158;
+ /* 0x0158 */ J2DAnmTextureSRTKey* field_0x158;
/* 0x015C */ int field_0x15c;
- /* 0x0160 */ void* field_0x160;
+ /* 0x0160 */ J2DAnmTevRegKey* field_0x160;
/* 0x0164 */ int field_0x164;
/* 0x0168 */ CPaneMgr* field_0x168[2];
- /* 0x0170 */ u8 field_0x170[8];
+ /* 0x0170 */ char* field_0x170[2];
/* 0x0178 */ u8 field_0x178;
/* 0x0179 */ u8 field_0x179;
/* 0x017A */ u8 field_0x17a;
- /* 0x017B */ u8 field_0x17b[0x19];
+ /* 0x017B */ u8 field_0x17b;
+ /* 0x017C */ CPaneMgr* field_0x17c[3];
+ /* 0x0188 */ CPaneMgr* field_0x188[3];
/* 0x0194 */ CPaneMgr* field_0x194;
/* 0x0198 */ CPaneMgr* field_0x198;
/* 0x019C */ u8 field_0x19c;
@@ -243,7 +336,7 @@ private:
/* 0x01AD */ u8 field_0x1ad[3];
/* 0x01B0 */ u8 field_0x1b0;
/* 0x01B1 */ u8 field_0x1b1;
- /* 0x01B2 */ u8 field_0x1b2;
+ /* 0x01B2 */ u8 mMenuProc;
/* 0x01B3 */ u8 field_0x1b3;
/* 0x01B4 */ u8 field_0x1b4;
/* 0x01B5 */ u8 field_0x1b5;
@@ -254,21 +347,19 @@ private:
/* 0x01BA */ u8 mSaveStatus;
/* 0x01BB */ u8 mEndStatus;
/* 0x01BC */ u8 mUseType;
- /* 0x01BD */ u8 field_0x1bd;
+ /* 0x01BD */ u8 mWaitTimer;
/* 0x01BE */ u8 field_0x1be;
/* 0x01BF */ u8 field_0x1bf;
/* 0x01C0 */ u8 field_0x1c0;
- /* 0x01C4 */ int field_0x1c4;
- /* 0x01C8 */ int field_0x1c8;
- /* 0x01CC */ void* field_0x1cc;
- /* 0x01D0 */ u8 field_0x1d0[0xA94 * 3];
+ /* 0x01CC */ void (dMenu_save_c::*field_0x1cc)();
+ /* 0x01D0 */ u8 mSaveBuffer[0xA94 * 3];
/* 0x218C */ dMsgScrnExplain_c* mpScrnExplain;
/* 0x2190 */ u8 field_0x2190;
/* 0x2192 */ u16 field_0x2192;
/* 0x2194 */ u8 field_0x2194;
/* 0x2195 */ u8 field_0x2195;
- /* 0x2198 */ int field_0x2198;
- /* 0x219C */ u8 field_0x219c;
+ /* 0x2198 */ int mCmdState;
+ /* 0x219C */ bool field_0x219c;
/* 0x219D */ u8 field_0x219d;
/* 0x219E */ u8 field_0x219e;
/* 0x219F */ u8 field_0x219f;
diff --git a/include/d/menu/d_menu_window.h b/include/d/menu/d_menu_window.h
index 08ea875b53..5462f54c37 100644
--- a/include/d/menu/d_menu_window.h
+++ b/include/d/menu/d_menu_window.h
@@ -8,6 +8,7 @@
#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;
class dMenu_Dmap_c;
@@ -15,7 +16,62 @@ class dMenu_Fmap_c;
class dDlst_MENU_CAPTURE_c : public dDlst_base_c {
public:
- /* 801FDFCC */ virtual void draw();
+ /* 801FDFCC */ virtual void draw();/* {
+ if (getDrawFlag() == 1) {
+ setDrawFlag();
+ dComIfGp_onPauseFlag();
+ GXSetTexCopySrc(0, 0, 608, 448);
+ GXSetTexCopyDst(304, 224, (GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_ENABLE);
+ GXCopyTex(mDoGph_gInf_c::getFrameBufferTex(), GX_FALSE);
+ GXPixModeSync();
+ } else {
+ GXTexObj tex;
+ GXInitTexObj(&tex, mDoGph_gInf_c::getFrameBufferTex(), 304, 224,
+ (GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_CLAMP, GX_CLAMP, GX_FALSE);
+ GXInitTexObjLOD(&tex, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
+ GXLoadTexObj(&tex, GX_TEXMAP0);
+ GXSetNumChans(0);
+ GXSetNumTexGens(1);
+ GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 60, GX_FALSE, 125);
+ GXSetNumTevStages(1);
+ GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
+ GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC);
+ GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
+ GXColor color = {0xFF, 0xFF, 0xFF, mAlpha};
+ GXSetTevColor(GX_TEVREG0, color);
+ GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0);
+ GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
+ GXSetZCompLoc(GX_TRUE);
+ GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE);
+ GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_OR);
+ GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0);
+ GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor);
+ GXSetFogRangeAdj(GX_FALSE, 0, NULL);
+ GXSetCullMode(GX_CULL_NONE);
+ GXSetDither(GX_TRUE);
+ GXLoadPosMtxImm(g_mDoMtx_identity, GX_PNMTX0);
+ GXSetCurrentMtx(0);
+ GXClearVtxDesc();
+ GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
+ GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
+ GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_RGBA4, 0);
+ GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGB8, 0);
+
+ GXBegin(GX_QUADS, GX_VTXFMT0, 4);
+ GXPosition3s16(mDoGph_gInf_c::getMinX(), mDoGph_gInf_c::getMinY(), 0);
+ GXTexCoord2s8(0, 0);
+
+ GXPosition3s16(mDoGph_gInf_c::getMaxX(), mDoGph_gInf_c::getMinY(), 0);
+ GXTexCoord2s8(1, 0);
+
+ GXPosition3s16(mDoGph_gInf_c::getMaxX(), mDoGph_gInf_c::getMaxY(), 0);
+ GXTexCoord2s8(1, 1);
+
+ GXPosition3s16(mDoGph_gInf_c::getMinX(), mDoGph_gInf_c::getMaxY(), 0);
+ GXTexCoord2s8(0, 1);
+ GXEnd();
+ }
+ } */
/* 801FE2E8 */ virtual ~dDlst_MENU_CAPTURE_c();
dDlst_MENU_CAPTURE_c() {
@@ -28,6 +84,8 @@ public:
bool checkDraw() { return mFlag; }
u8 getAlpha() { return mAlpha; }
u8 getTopFlag() { return mTopFlag; }
+ u8 getDrawFlag() { return mFlag; }
+ void setDrawFlag() { mFlag = 3; }
private:
/* 0x4 */ u8 mFlag;
diff --git a/include/d/meter/d_meter2.h b/include/d/meter/d_meter2.h
index eb711581b8..de6d979ed5 100644
--- a/include/d/meter/d_meter2.h
+++ b/include/d/meter/d_meter2.h
@@ -222,6 +222,9 @@ public:
void onRupeeSoundBit(int bit) { mRupeeSound |= (1 << bit); }
void offRupeeSoundBit(int bit) { mRupeeSound &= ~(1 << bit); }
bool isRupeeSoundBit(int bit) { return mRupeeSound & (1 << bit); }
+ s16 getNowLifeGauge() { return mNowLifeGauge; }
+ u8 getSubContents() { return mSubContents; }
+ u16 getSubContentsStringType() { return mSubContentsStringType; }
private:
/* 0x100 */ JKRExpHeap* mpHeap;
diff --git a/include/d/meter/d_meter2_info.h b/include/d/meter/d_meter2_info.h
index 0a052d2e5a..dd61939d35 100644
--- a/include/d/meter/d_meter2_info.h
+++ b/include/d/meter/d_meter2_info.h
@@ -65,7 +65,7 @@ public:
virtual ~dMeter2Info_c();
void init(void);
int setFloatingMessage(u16, s16, bool);
- void setFloatingFlow(u16, s16, bool);
+ int setFloatingFlow(u16, s16, bool);
int isFloatingMessageVisible(void);
int decFloatingMessageTimer(void);
void resetFloatingMessage(void);
@@ -73,8 +73,8 @@ public:
void getString(u32, char*, JMSMesgEntry_c*); // define JMSMesgEntry
void getStringKana(u32, char*, JMSMesgEntry_c*);
void getStringKanji(u32, char*, JMSMesgEntry_c*);
- double getStringLength(J2DTextBox*, char*); // define J2DTextBox
- dMeter2Info_c* getStringLength(JUTFont*, f32, f32, char*);
+ f32 getStringLength(J2DTextBox*, char*);
+ f32 getStringLength(JUTFont*, f32, f32, char*);
void onDirectUseItem(int);
bool isDirectUseItem(int);
int setMeterString(s32);
@@ -84,12 +84,12 @@ public:
void resetMeterString(void);
void setWarpInfo(const char*, const cXyz&, s16, u8, u8, u8);
u8 getItemType(u8);
- u8 readItemTexture(u8, void*, J2DPicture*, void*, J2DPicture*, void*, J2DPicture*, void*,
- J2DPicture*, int); // define J2DPicture
+ int readItemTexture(u8, void*, J2DPicture*, void*, J2DPicture*, void*, J2DPicture*, void*,
+ J2DPicture*, int);
void setItemColor(u8, J2DPicture*, J2DPicture*, J2DPicture*, J2DPicture*);
- s8 get2ndTexture(u8);
- s8 get3rdTexture(u8);
- s8 get4thTexture(u8);
+ s16 get2ndTexture(u8);
+ s16 get3rdTexture(u8);
+ s16 get4thTexture(u8);
void set1stColor(u8, J2DPicture*);
void set2ndColor(u8, J2DPicture*);
void set3rdColor(u8, J2DPicture*);
@@ -150,8 +150,11 @@ public:
const char* getSaveStageName() { return mSaveStageName; }
void onShopTalkFlag() { mShopTalkFlag = true; }
void setLightDropGetFlag(int index, u8 flag) { mLightDropGetFlag[index] = flag; }
- u8 getRentalBombBag() { return mRentalBombBag; }
+ u8 getRentalBombBag() { return mRentalBombBagIdx; }
void setTableMapRegionNo(u8 regionNo) { mTableMapRegionNo = regionNo; }
+ dMeter2_c* getMeterClass() { return mMeterClass; }
+ u8 getMiniGameItemSetFlag() { return mMiniGameItemSetFlag; }
+ s16 getMsgKeyWaitTimer() { return mMsgKeyWaitTimer; }
public:
/* 0x04 */ u8 unk4[4];
@@ -178,7 +181,7 @@ public:
/* 0x80 */ f32 unk128;
/* 0x84 */ u32 mTimeMs;
/* 0x88 */ u32 mMsgTimeMs;
- /* 0x8C */ u32 mMeterString;
+ /* 0x8C */ s32 mMeterString;
/* 0x90 */ u32 mTempBits;
/* 0x94 */ s16 mMsgKeyWaitTimer;
/* 0x96 */ u16 mHorseLifeCount;
@@ -207,19 +210,19 @@ public:
/* 0xC1 */ u8 mPauseStatus;
/* 0xC2 */ u8 mGameOverType;
/* 0xC3 */ u8 mInsectSelectType;
- /* 0xC4 */ u8 unk196[4];
- /* 0xC8 */ u8 unk200[4];
- /* 0xCC */ u8 unk204;
- /* 0xCD */ u8 unk205; // arrow num
- /* 0xCE */ u8 unk206; // item 1
- /* 0xCF */ u8 unk207; // item 2
- /* 0xD0 */ u8 unk208[4];
- /* 0xD4 */ u8 unk212[4];
- /* 0xD8 */ u8 unk216; // bomb num
- /* 0xD9 */ u8 unk217; // arrow num?
- /* 0xDA */ u8 unk218; // item 1?
- /* 0xDB */ u8 unk219; // item 2
- /* 0xDC */ u8 mRentalBombBag;
+ /* 0xC4 */ u8 mSaveSelItemIdx[4];
+ /* 0xC8 */ u8 mSaveMixItemIdx[4];
+ /* 0xCC */ u8 mSaveBombNum;
+ /* 0xCD */ u8 mSaveArrowNum;
+ /* 0xCE */ u8 mSaveBowItem;
+ /* 0xCF */ u8 mSaveBombItem;
+ /* 0xD0 */ u8 mSaveSelItemIdxMG[4];
+ /* 0xD4 */ u8 mSaveMixItemIdxMG[4];
+ /* 0xD8 */ u8 mSaveBombNumMG;
+ /* 0xD9 */ u8 mSaveArrowNumMG;
+ /* 0xDA */ u8 mSaveBowItemMG;
+ /* 0xDB */ u8 mSaveBombItemMG;
+ /* 0xDC */ u8 mRentalBombBagIdx;
/* 0xDD */ u8 mMiniGameItemSetFlag; // 1: rented in game, 3: rented not in game
/* 0xDE */ u8 mMiniGameCount;
/* 0xDF */ u8 mCollectCursorPosX;
@@ -239,6 +242,8 @@ public:
extern dMeter2Info_c g_meter2_info;
void dMeter2Info_setSword(u8, bool);
+void dMeter2Info_setCloth(u8 i_clothId, bool param_1);
+void dMeter2Info_setShield(u8 i_itemId, bool param_1);
void dMeter2Info_set2DVibration();
void dMeter2Info_set2DVibrationM();
@@ -446,6 +451,10 @@ inline u8 dMeter2Info_getRentalBombBag() {
return g_meter2_info.getRentalBombBag();
}
+inline u8 dMeter2Info_getMiniGameItemSetFlag() {
+ return g_meter2_info.getMiniGameItemSetFlag();
+}
+
inline void dMeter2Info_resetMiniGameItem(bool param_0) {
g_meter2_info.resetMiniGameItem(param_0);
}
@@ -458,6 +467,22 @@ inline void dMeter2Info_changeWater(u8 bottleIdx) {
g_meter2_info.changeWater(bottleIdx);
}
+inline void dMeter2Info_warpInProc() {
+ g_meter2_info.warpInProc();
+}
+
+inline void dMeter2Info_warpOutProc() {
+ g_meter2_info.warpOutProc();
+}
+
+inline dMeter2_c* dMeter2Info_getMeterClass() {
+ return g_meter2_info.getMeterClass();
+}
+
+inline s16 dMeter2Info_getMsgKeyWaitTimer() {
+ return g_meter2_info.getMsgKeyWaitTimer();
+}
+
char* dMeter2Info_getNumberTextureName(int pIndex);
void dMeter2Info_recieveLetter();
u8 dMeter2Info_getNewLetterNum();
diff --git a/include/d/msg/d_msg_class.h b/include/d/msg/d_msg_class.h
index 9c76a8a165..71593d6de3 100644
--- a/include/d/msg/d_msg_class.h
+++ b/include/d/msg/d_msg_class.h
@@ -4,10 +4,8 @@
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
-class msg_class {
+class msg_class : public leafdraw_class {
public:
- /* 0x00 */ base_process_class field_0x0;
- /* 0xB8 */ u8 field_0xb8[8];
/* 0xC0 */ int field_0xc0;
/* 0xC4 */ create_tag_class field_0xc4;
/* 0xD8 */ leafdraw_method_class* field_0xd8;
diff --git a/include/d/msg/d_msg_object.h b/include/d/msg/d_msg_object.h
index 741538ae21..6b4383f8ba 100644
--- a/include/d/msg/d_msg_object.h
+++ b/include/d/msg/d_msg_object.h
@@ -10,6 +10,7 @@
#include "dolphin/types.h"
class COutFont_c;
+class dMsgScrnBase_c;
class dMsgObject_c : public msg_class {
public:
@@ -23,7 +24,7 @@ public:
/* 80233FD8 */ void getRevoMessageIndex(u32);
/* 802340D4 */ void getMessageIndexAlways(u32);
/* 80234128 */ void getMessageIDAlways(u32);
- /* 8023413C */ void getMessageGroup(u32);
+ /* 8023413C */ static s16 getMessageGroup(u32);
/* 80234150 */ void waitProc();
/* 80234318 */ void openProc();
/* 802349D8 */ void outnowProc();
@@ -50,9 +51,9 @@ public:
/* 80236D0C */ void changeGroupLocal(s16);
/* 80236DE4 */ void getStringLocal(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, char*,
char*, char*, s16*);
- /* 802370A8 */ void isGetItemMessage();
- /* 802370BC */ void isKanbanMessage();
- /* 802370E8 */ void isHowlMessage();
+ /* 802370A8 */ BOOL isGetItemMessage();
+ /* 802370BC */ BOOL isKanbanMessage();
+ /* 802370E8 */ BOOL isHowlMessage();
/* 802370FC */ bool isMidonaMessage();
/* 80237138 */ void isMidonaNormalTalkWait();
/* 802371B0 */ void isMidonaTalkWait();
@@ -78,19 +79,19 @@ public:
/* 8023759C */ void getBombBuyPriceLocal(u8);
/* 802375E4 */ void addSelectBomBag(u8);
/* 80237610 */ void resetSelectBomBag();
- /* 8023763C */ void getSelectBombBagIDLocal();
- /* 8023768C */ void getSelectBombPriceLocal();
+ /* 8023763C */ u8 getSelectBombBagIDLocal();
+ /* 8023768C */ s16 getSelectBombPriceLocal();
/* 8023773C */ void setEquipBombInfoLocal();
/* 80237748 */ void updateEquipBombInfoLocal();
/* 802378B8 */ static void setShopWaitTimer(u8);
/* 802378CC */ void setSelectWordFlagLocal(u8);
- /* 802378D4 */ void isHowlHearingModeLocal();
+ /* 802378D4 */ bool isHowlHearingModeLocal();
/* 80237934 */ void isCameraCancelFlag();
/* 80237950 */ void onCameraCancelFlag();
/* 80237968 */ void offCameraCancelFlag();
/* 80237980 */ static bool isKillMessageFlag();
/* 80237994 */ static void onKillMessageFlag();
- /* 802379AC */ void setKillMessageFlag();
+ /* 802379AC */ static void setKillMessageFlag();
/* 802379D8 */ void setKillMessageFlagLocal();
/* 80237A74 */ void setTalkPartner(fopAc_ac_c*);
/* 80237A88 */ void setNowTalkFlowNo(s16);
@@ -109,9 +110,11 @@ public:
/* 80237F10 */ void setTalkActorLocal(fopAc_ac_c*);
/* 8023800C */ static void readMessageGroup(mDoDvdThd_mountXArchive_c**);
/* 8023803C */ static void changeFlowGroup(s32);
+ /* 8023806C */ void demoMessageGroup();
+ /* 80238098 */ static void endFlowGroup();
+ /* 802380C4 */ static void changeGroup(s16);
/* 8023806C */ static void demoMessageGroup();
/* 80238098 */ void endFlowGroup();
- /* 802380C4 */ void changeGroup(s16);
/* 802380F4 */ void getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, char*,
char*, char*, s16*);
/* 80238174 */ static u8* getMsgDtPtr();
@@ -146,19 +149,21 @@ public:
/* 80238528 */ void getSelectWord(int);
/* 80238544 */ void setSelectWordFlag(u8);
/* 80238574 */ void getSelectWordFlag();
- /* 80238588 */ void isHowlHearingMode();
+ /* 80238588 */ bool isHowlHearingMode();
/* 802385B4 */ static u8 getSelectBombBagID();
/* 802385E0 */ static s16 getSelectBombPrice();
/* 8023860C */ void setEquipBombInfo();
- /* 80238638 */ void getItemEquipButton();
+ /* 80238638 */ u8 getItemEquipButton();
/* 8023864C */ static void setSelectCancelPos(u8);
void setShopWaitTimerLocal(u8 timer) { mShopWaitTimer = timer; }
+ void setSelectCancelPosLocal(u8 pos) { mSelectCancelPos = pos; }
+ u8 getItemEquipButtonLocal() { return mItemEquipButton; }
u8 getSelectPushFlag() { return mSelectPushFlag; }
u8 getSelectCancelPos() { return mSelectCancelPos; }
/* 0x100 */ msg_class* field_0x100;
- /* 0x104 */ int mpScrnDraw;
+ /* 0x104 */ dMsgScrnBase_c* mpScrnDraw;
/* 0x108 */ dMsgString_c* mpMsgString;
/* 0x10C */ COutFont_c* mpOutFont;
/* 0x110 */ JMessage::TResourceContainer* mpResCont;
@@ -282,4 +287,206 @@ inline void dMsgObject_setTalkActor(fopAc_ac_c* actor) {
}
}
+inline void dMsgObject_onKillMessageFlag() {
+ dMsgObject_c::onKillMessageFlag();
+}
+
+inline void dMsgObject_setKillMessageFlag() {
+ dMsgObject_c::setKillMessageFlag();
+}
+
+inline void dMsgObject_endFlowGroup() {
+ dMsgObject_c::endFlowGroup();
+}
+
+
+class dMsgObject_HowlHIO_c {
+public:
+ /* 80232AEC */ dMsgObject_HowlHIO_c();
+ /* 80238B94 */ virtual ~dMsgObject_HowlHIO_c() {}
+
+ /* 0x04 */ s8 field_0x4;
+ /* 0x08 */ JUtility::TColor mHowlLineStartCol;
+ /* 0x0C */ JUtility::TColor mHowlLineEndCol;
+ /* 0x10 */ f32 mHighlightScale;
+ /* 0x14 */ JUtility::TColor mHighlightMoyaR0;
+ /* 0x18 */ JUtility::TColor mHighlightMoyaR1;
+ /* 0x1C */ JUtility::TColor mHighlightMoyabsR0;
+ /* 0x20 */ JUtility::TColor mHighlightMoyabsR1;
+ /* 0x24 */ JUtility::TColor mHighlightPikaR0;
+ /* 0x28 */ JUtility::TColor mHighlightPikaR1;
+ /* 0x2C */ f32 mAnmSpeed;
+ /* 0x30 */ JUtility::TColor mGuideUpperBlack;
+ /* 0x34 */ JUtility::TColor mGuideUpperWhite;
+ /* 0x38 */ JUtility::TColor mGuideMidBlack;
+ /* 0x3C */ JUtility::TColor mGuideMidWhite;
+ /* 0x40 */ JUtility::TColor mGuideLowerBlack;
+ /* 0x44 */ JUtility::TColor mGuideLowerWhite;
+ /* 0x48 */ JUtility::TColor mAnswerUpperBlack;
+ /* 0x4C */ JUtility::TColor mAnswerUpperWhite;
+ /* 0x50 */ JUtility::TColor mAnswerMidBlack;
+ /* 0x54 */ JUtility::TColor mAnswerMidWhite;
+ /* 0x58 */ JUtility::TColor mAnswerLowerBlack;
+ /* 0x5C */ JUtility::TColor mAnswerLowerWhite;
+ /* 0x60 */ JUtility::TColor mDotBlack;
+ /* 0x64 */ JUtility::TColor mDotWhite;
+ /* 0x68 */ f32 mDotScale;
+ /* 0x6C */ f32 mDrawInterval;
+ /* 0x70 */ f32 mLineThickness;
+ /* 0x74 */ f32 mCrossPosX;
+ /* 0x78 */ f32 mCrossPosY;
+ /* 0x7C */ f32 mCrossScale;
+ /* 0x80 */ f32 mWindowPosX;
+ /* 0x84 */ f32 mWindowPosY;
+ /* 0x88 */ f32 mWindowScale;
+ /* 0x8C */ f32 mInputStartPoint;
+ /* 0x90 */ f32 mGuideUpperAlpha;
+ /* 0x94 */ f32 mGuideMidAlpha;
+ /* 0x98 */ f32 mGuideLowerAlpha;
+ /* 0x9C */ f32 mAnswerUpperAlpha;
+ /* 0xA0 */ f32 mAnswerMidAlpha;
+ /* 0xA4 */ f32 mAnswerLowerAlpha;
+ /* 0xA8 */ f32 mLineSpaceOffset;
+ /* 0xAC */ u16 mWaveformThickness;
+ /* 0xAE */ u16 mWaveformLineLen;
+ /* 0xB0 */ u16 mWaveformDotLen;
+};
+
+class dMsgObject_HIO_c {
+public:
+ /* 80232D6C */ dMsgObject_HIO_c();
+ /* 80238BDC */ virtual ~dMsgObject_HIO_c() {}
+
+ /* 0x004 */ s8 field_0x4;
+ /* 0x008 */ f32 mBoxMidna_fontSizeX;
+ /* 0x00C */ f32 field_0xc;
+ /* 0x010 */ f32 mBoxMidna_fontSizeY;
+ /* 0x014 */ f32 field_0x14;
+ /* 0x018 */ f32 mBoxTalkAlphaP;
+ /* 0x01C */ f32 mBoxNaviAlphaP;
+ /* 0x020 */ f32 mBoxMidnaAlphaP;
+ /* 0x024 */ f32 mBoxItemAlphaP;
+ /* 0x028 */ f32 mBoxStoneAlphaP;
+ /* 0x02C */ f32 mBoxWoodAlphaP;
+ /* 0x030 */ f32 mBoxBookAlphaP;
+ /* 0x034 */ f32 mBoxWolfAlphaP;
+ /* 0x038 */ f32 mSubtitleAlphaP;
+ /* 0x03C */ f32 field_0x3c;
+ /* 0x040 */ f32 mBoxNaviAnmSpeed;
+ /* 0x044 */ f32 field_0x44;
+ /* 0x048 */ f32 mBoxItemAnmSpeed;
+ /* 0x04C */ f32 field_0x4c;
+ /* 0x050 */ f32 field_0x50;
+ /* 0x054 */ f32 field_0x54;
+ /* 0x058 */ f32 mBoxWolfAnmSpeed;
+ /* 0x05C */ f32 mBoxItemHaloAlpha;
+ /* 0x060 */ f32 mBoxNaviHaloAlpha;
+ /* 0x064 */ f32 mBoxMidnaHaloAlpha;
+ /* 0x068 */ f32 mBoxWolfHaloAlpha;
+ /* 0x06C */ f32 mBoxTalkHaloAlpha;
+ /* 0x070 */ f32 mBoxTalkScaleX;
+ /* 0x074 */ f32 mBoxNaviScaleX;
+ /* 0x078 */ f32 mBoxMidnaScaleX;
+ /* 0x07C */ f32 mBoxItemScaleX;
+ /* 0x080 */ f32 mBoxStoneScaleX;
+ /* 0x084 */ f32 mBoxWoodScaleX;
+ /* 0x088 */ f32 mBoxBookScaleX;
+ /* 0x08C */ f32 mBoxWolfScaleX;
+ /* 0x090 */ f32 mStageTitleScaleX;
+ /* 0x094 */ f32 mSubtitleScaleX;
+ /* 0x098 */ f32 mBossNameScaleX;
+ /* 0x09C */ f32 mBoxTalkScaleY;
+ /* 0x0A0 */ f32 mBoxNaviScaleY;
+ /* 0x0A4 */ f32 mBoxMidnaScaleY;
+ /* 0x0A8 */ f32 mBoxItemScaleY;
+ /* 0x0AC */ f32 mBoxStoneScaleY;
+ /* 0x0B0 */ f32 mBoxWoodScaleY;
+ /* 0x0B4 */ f32 mBoxBookScaleY;
+ /* 0x0B8 */ f32 mBoxWolfScaleY;
+ /* 0x0BC */ f32 mStageTitleScaleY;
+ /* 0x0C0 */ f32 mSubtitleScaleY;
+ /* 0x0C4 */ f32 mBossNameScaleY;
+ /* 0x0C8 */ f32 mBoxItemSizeX;
+ /* 0x0CC */ f32 mBoxItemSizeY;
+ /* 0x0D0 */ f32 mBoxItemPosX;
+ /* 0x0D4 */ f32 mBoxItemPosY;
+ /* 0x0D8 */ f32 mBoxItemTextSizeX;
+ /* 0x0DC */ f32 mBoxItemTextSizeY;
+ /* 0x0E0 */ f32 mBoxItemTextPosX;
+ /* 0x0E4 */ f32 mBoxItemTextPosY;
+ /* 0x0E8 */ JUtility::TColor mBoxStartBlack[10]; // talk, navi, midna, item, stone, wood, book, wolf,
+ /* 0x110 */ JUtility::TColor mBoxEndBlack[10];
+ /* 0x138 */ JUtility::TColor mBoxStartWhite[10];
+ /* 0x160 */ JUtility::TColor mBoxEndWhite[10];
+ /* 0x188 */ JUtility::TColor mSelMsgInactiveCol;
+ /* 0x18C */ f32 mStageTitleCharPosX;
+ /* 0x190 */ f32 mBossNameCharPosX;
+ /* 0x194 */ f32 mStageTitleCharPosY;
+ /* 0x198 */ f32 mBossNameCharPosY;
+ /* 0x19C */ f32 mStageTitleCharSizeX;
+ /* 0x1A0 */ f32 mBossNameCharSizeX;
+ /* 0x1A4 */ f32 mStageTitleCharSizeY;
+ /* 0x1A8 */ f32 mBossNameCharSizeY;
+ /* 0x1AC */ f32 mStageTitleBasePosX;
+ /* 0x1B0 */ f32 mBossNameBasePosX;
+ /* 0x1B4 */ f32 mStageTitleBasePosY;
+ /* 0x1B8 */ f32 mBossNameBasePosY;
+ /* 0x1BC */ f32 mStageTitleBaseSizeX;
+ /* 0x1C0 */ f32 mBossNameBaseSizeX;
+ /* 0x1C4 */ f32 mStageTitleBaseSizeY;
+ /* 0x1C8 */ f32 mBossNameBaseSizeY;
+ /* 0x1CC */ f32 mStageTitleBaseAlpha;
+ /* 0x1D0 */ f32 mBossNameBaseAlpha;
+ /* 0x1D4 */ f32 mChoicePos[3][10]; // down, mid, top
+ /* 0x24C */ f32 mBoxPos[3][10]; // down, mid, top // talk, navi, midna, item, stone, wood, book, wolf,
+ /* 0x2C4 */ f32 mPortalIconScale;
+ /* 0x2C8 */ f32 mTextPosX;
+ /* 0x2CC */ f32 mTextPosY;
+ /* 0x2D0 */ f32 mPikariScale;
+ /* 0x2D4 */ JUtility::TColor mPikariMoyaR0;
+ /* 0x2D8 */ JUtility::TColor mPikariMoyaR1;
+ /* 0x2DC */ JUtility::TColor mPikariMoyabsR0;
+ /* 0x2E0 */ JUtility::TColor mPikariMoyabsR1;
+ /* 0x2E4 */ JUtility::TColor mPikariPikaR0;
+ /* 0x2E8 */ JUtility::TColor mPikariPikaR1;
+ /* 0x2EC */ f32 mPikariAnmSpeed;
+ /* 0x2F0 */ u16 mPikariHaloDelay_spirit;
+ /* 0x2F2 */ u8 mStageTitleDisplayType;
+ /* 0x2F4 */ u16 mMsgIndex;
+ /* 0x2F6 */ u16 mFlowIndex;
+ /* 0x2F8 */ u16 mSaveSeqMsgIndex;
+ /* 0x2FA */ u16 mSelWeightFrame;
+ /* 0x2FC */ u16 mBoxAppearBound;
+ /* 0x2FE */ u16 mBoxAppearFrame;
+ /* 0x300 */ u16 mWaitFrame;
+ /* 0x302 */ u16 mLightAppearFrame;
+ /* 0x304 */ u16 field_0x304;
+ /* 0x306 */ u16 mStageTitleFadeIn;
+ /* 0x308 */ u16 mStageTitleFadeOut;
+ /* 0x30A */ u16 mBossNameFadeIn;
+ /* 0x30C */ u16 mBossNameFadeOut;
+ /* 0x30E */ u16 mStageTitleDisplayTime;
+ /* 0x310 */ u16 mBossNameDisplayTime;
+ /* 0x312 */ u16 mBatchDisplayWeight_3;
+ /* 0x314 */ u16 mCharDisplayWeight_5;
+ /* 0x316 */ u16 mBatchDisplayWeight_8;
+ /* 0x318 */ u16 mBatchDisplayWeight_9;
+ /* 0x31A */ u16 mHaloDelayFrame;
+ /* 0x31C */ u16 mHaloDelayFrameSpirit;
+ /* 0x31E */ bool mSaveSeqMsgDebug;
+ /* 0x31F */ bool mMsgDebug;
+ /* 0x320 */ u8 field_0x320;
+ /* 0x320 */ bool mTextColorDebug;
+ /* 0x321 */ u8 mTextColorUpperR[9]; // Default, Red, Green, Blue, Yellow, L.Blue, Purple, Grey, Orange,
+ /* 0x32A */ u8 mTextColorUpperG[9];
+ /* 0x333 */ u8 mTextColorUpperB[9];
+ /* 0x33C */ u8 mTextColorLowerR[9]; // Default, Red, Green, Blue, Yellow, L.Blue, Purple, Grey, Orange,
+ /* 0x345 */ u8 mTextColorLowerG[9];
+ /* 0x34E */ u8 mTextColorLowerB[9];
+ /* 0x357 */ u8 mDisplaySpeed;
+ /* 0x358 */ u8 mDisplaySpeedSpirit;
+ /* 0x359 */ u8 mMessageDisplay;
+ /* 0x35C */ dMsgObject_HowlHIO_c mHowlHIO;
+};
+
#endif /* D_MSG_D_MSG_OBJECT_H */
diff --git a/include/d/msg/d_msg_out_font.h b/include/d/msg/d_msg_out_font.h
index 815a1e0848..e11307c730 100644
--- a/include/d/msg/d_msg_out_font.h
+++ b/include/d/msg/d_msg_out_font.h
@@ -2,5 +2,63 @@
#define D_MSG_D_MSG_OUT_FONT_H
#include "dolphin/types.h"
+#include "JSystem/J2DGraph/J2DTextBox.h"
+#include "JSystem/J2DGraph/J2DPicture.h"
+
+class COutFontSet_c {
+public:
+ /* 80225BB8 */ COutFontSet_c();
+ /* 80225C3C */ void initialize();
+ /* 80225C70 */ void drawFont(J2DTextBox*, u8, f32, f32, f32, f32, u32, u8);
+
+ /* 80225BF4 */ virtual ~COutFontSet_c();
+
+ u8 getType() { return mType; }
+ u32 getColor() { return mColor; }
+ f32 getPosX() { return mPosX; }
+ f32 getPosY() { return mPosY; }
+ f32 getSizeX() { return mSizeX; }
+ f32 getSizeY() { return mSizeY; }
+ J2DTextBox* getTextBoxPtr() { return mpTextBoxPtr; }
+ void setTextBoxPtr(J2DTextBox* p_textBox) { mpTextBoxPtr = p_textBox; }
+ void resetType() { mType = 0x47; }
+
+private:
+ /* 0x04 */ J2DTextBox* mpTextBoxPtr;
+ /* 0x08 */ f32 mPosX;
+ /* 0x0C */ f32 mPosY;
+ /* 0x10 */ f32 mSizeX;
+ /* 0x14 */ f32 mSizeY;
+ /* 0x18 */ u32 mColor;
+ /* 0x1C */ u8 mAlpha;
+ /* 0x1D */ u8 mType;
+};
+
+class COutFont_c {
+public:
+ /* 80225C94 */ COutFont_c(u8);
+ /* 80226CF8 */ void initialize();
+ /* 80228490 */ void setBlendAnime(J2DPicture*, s16);
+ /* 80228530 */ const char* getBtiName(int);
+
+ /* 80225D60 */ virtual ~COutFont_c();
+ /* 80225E7C */ virtual void setPane(J2DPicture*);
+ /* 80225EA8 */ virtual void createPane();
+ /* 80226DB0 */ virtual void draw(J2DTextBox*, f32, f32, f32);
+ /* 80228448 */ virtual void reset(J2DTextBox*);
+ /* 80226D4C */ virtual void drawFont(J2DTextBox*, u8, f32, f32, f32, f32, u32, u8);
+ /* 80226DA8 */ virtual void setAlphaRatio(f32);
+
+private:
+ /* 0x004 */ COutFontSet_c* mpOfs[35];
+ /* 0x090 */ J2DPicture* mpPane[70];
+ /* 0x1A8 */ f32 mAlphaRatio;
+ /* 0x1AC */ f32 field_0x1ac;
+ /* 0x1B0 */ f32 field_0x1b0;
+ /* 0x1B4 */ s16 field_0x1b4[70];
+ /* 0x240 */ bool field_0x240;
+ /* 0x241 */ u8 mRupeeColor;
+ /* 0x242 */ u8 field_0x242;
+};
#endif /* D_MSG_D_MSG_OUT_FONT_H */
diff --git a/include/d/msg/d_msg_string.h b/include/d/msg/d_msg_string.h
index c596bde84f..7c2d8eafe4 100644
--- a/include/d/msg/d_msg_string.h
+++ b/include/d/msg/d_msg_string.h
@@ -1,6 +1,26 @@
#ifndef D_MSG_D_MSG_STRING_H
#define D_MSG_D_MSG_STRING_H
-#include "dolphin/types.h"
+#include "d/msg/d_msg_string_base.h"
+#include "d/msg/d_msg_out_font.h"
+
+class dMsgString_c {
+public:
+
+ /* 80249C20 */ dMsgString_c();
+ /* 80249CA0 */ dMsgString_c(u8);
+ /* 80249D28 */ ~dMsgString_c();
+
+ /* 80191B6C */ virtual void getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, u8);
+ /* 801E1D10 */ virtual void getStringPage(u32, u8, u8, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*,
+ u8);
+ /* 80249DB4 */ virtual void resetStringLocal(J2DTextBox*);
+ /* 80249DE4 */ virtual void drawOutFontLocal(J2DTextBox*, f32);
+ /* 80249ED0 */ virtual void drawFontLocal(J2DTextBox*, u8, f32, f32, f32, f32, u32, u8);
+
+private:
+ /* 0x24 */ COutFont_c* mpOutFont;
+ /* 0x28 */ u8 field_0x28;
+};
#endif /* D_MSG_D_MSG_STRING_H */
diff --git a/include/d/msg/d_msg_string_base.h b/include/d/msg/d_msg_string_base.h
index 596f9156ea..0dcb053c29 100644
--- a/include/d/msg/d_msg_string_base.h
+++ b/include/d/msg/d_msg_string_base.h
@@ -1,6 +1,41 @@
#ifndef D_MSG_D_MSG_STRING_BASE_H
#define D_MSG_D_MSG_STRING_BASE_H
-#include "dolphin/types.h"
+#include "d/msg/d_msg_object.h"
+
+struct jmessage_string_tControl;
+struct jmessage_string_tReference;
+struct jmessage_string_tSequenceProcessor;
+struct jmessage_string_tRenderingProcessor;
+
+class dMsgStringBase_c {
+public:
+ /* 802493B4 */ dMsgStringBase_c();
+ /* 80249528 */ ~dMsgStringBase_c();
+ /* 80249700 */ void getResource();
+ /* 80249768 */ void getStringLocal(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, u8);
+ /* 802498D8 */ void getStringPageLocal(u32, u8, u8, J2DTextBox*, J2DTextBox*, JUTFont*,
+ COutFont_c*, u8);
+ /* 80249A48 */ void getPageMax(int);
+ /* 80249A70 */ void getMessageLocal(u32, char*);
+
+ /* 80249BB0 */ virtual void getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, u8);
+ /* 80249BD0 */ virtual void getStringPage(u32, u8, u8, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*,
+ u8);
+ /* 80249BF8 */ virtual void getMessage(u32, char*);
+ /* 80249C18 */ virtual void resetStringLocal(J2DTextBox*);
+ /* 80249C1C */ virtual void drawOutFontLocal(J2DTextBox*, f32);
+ /* 80249BAC */ virtual void drawFontLocal(J2DTextBox*, u8, f32, f32, f32, f32, u32, u8);
+
+private:
+ /* 0x04 */ JMessage::TResourceContainer* mpResCont;
+ /* 0x08 */ jmessage_string_tControl* mpCtrl;
+ /* 0x0C */ jmessage_string_tReference* mpRefer;
+ /* 0x10 */ jmessage_string_tSequenceProcessor* mpSeqProc;
+ /* 0x14 */ jmessage_string_tRenderingProcessor* mpRenProc;
+ /* 0x18 */ JMessage::TParse* mpParse;
+ /* 0x1C */ void* field_0x1c;
+ /* 0x20 */ u16 field_0x20;
+};
#endif /* D_MSG_D_MSG_STRING_BASE_H */
diff --git a/include/d/pane/d_pane_class_alpha.h b/include/d/pane/d_pane_class_alpha.h
index a016a31110..5034f6c99d 100644
--- a/include/d/pane/d_pane_class_alpha.h
+++ b/include/d/pane/d_pane_class_alpha.h
@@ -39,6 +39,7 @@ public:
J2DPane* getPanePtr() { return (J2DPane*)mWindow; }
u8 getAlpha() { return getPanePtr()->getAlpha(); }
s16 getAlphaTimer() { return mAlphaTimer; }
+ void alphaAnimeStart(s16 start) { mAlphaTimer = start; }
/* 0x04 */ J2DWindow* mWindow;
/* 0x08 */ JKRExpHeap* heap;
diff --git a/include/d/particle/d_particle.h b/include/d/particle/d_particle.h
index a154b9975d..5abca2df63 100644
--- a/include/d/particle/d_particle.h
+++ b/include/d/particle/d_particle.h
@@ -53,6 +53,28 @@ public:
/* 0x10 */ void* mData;
}; // Size: 0x14
+class dPa_followEcallBack : public dPa_levelEcallBack {
+public:
+ /* 80049580 */ dPa_followEcallBack(u8, u8);
+
+ /* 80050200 */ virtual ~dPa_followEcallBack();
+ /* 800495BC */ virtual void execute(JPABaseEmitter*);
+ /* 800496B0 */ virtual void draw(JPABaseEmitter*);
+ /* 800496B4 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
+ /* 80050284 */ virtual void cleanup();
+ /* 8004974C */ virtual void end();
+
+ void remove() { end(); }
+
+ /* 0x04 */ JPABaseEmitter* mpEmitter;
+ /* 0x08 */ cXyz* field_0x8;
+ /* 0x0C */ csXyz* field_0xc;
+ /* 0x10 */ u8 field_0x10;
+ /* 0x11 */ u8 field_0x11;
+ /* 0x12 */ u8 field_0x12;
+ /* 0x13 */ u8 field_0x13;
+};
+
extern u8 data_80450EC4;
class dPa_control_c {
@@ -66,6 +88,8 @@ public:
/* 8004B5AC */ void cleanup();
/* 8004FBFC */ emitter_c();
+ JPABaseEmitter* getEmitter() { return mEmitter; }
+
private:
/* 0x00 */ u32 mId;
/* 0x04 */ u16 mNameId;
@@ -83,7 +107,7 @@ public:
/* 8004B874 */ void get(u32);
/* 8004B8B4 */ void forceOnEventMove(u32);
/* 8004B8E8 */ void allForceOnEventMove();
- /* 8004B918 */ emitter_c* getEmitter(u32);
+ /* 8004B918 */ JPABaseEmitter* getEmitter(u32);
/* 8004B94C */ void entry(u16, JPABaseEmitter*, dPa_levelEcallBack*);
/* 8004BA40 */ void addTable(dPa_control_c::level_c::emitter_c*);
/* 8004BA74 */ void cutTable(dPa_control_c::level_c::emitter_c*);
@@ -136,7 +160,7 @@ public:
dKy_tevstr_c const*, u32, u32, csXyz const*, cXyz const*, s8);
void forceOnEventMove(u32 param_0) { field_0x210.forceOnEventMove(param_0); }
- level_c::emitter_c* getEmitter(u32 param_0) { return field_0x210.getEmitter(param_0); }
+ JPABaseEmitter* getEmitter(u32 param_0) { return field_0x210.getEmitter(param_0); }
u32 setNormal(u32 param_0, u16 param_1, const cXyz* param_2, const dKy_tevstr_c* param_3,
const csXyz* param_4, const cXyz* param_5, u8 param_6,
diff --git a/include/d/s/d_s_logo.h b/include/d/s/d_s_logo.h
index 086b209115..0627e86dd1 100644
--- a/include/d/s/d_s_logo.h
+++ b/include/d/s/d_s_logo.h
@@ -3,6 +3,7 @@
#include "d/com/d_com_inf_game.h"
#include "dolphin/types.h"
+#include "SSystem/SComponent/c_lib.h"
class dLog_HIO_c {
public:
@@ -119,7 +120,4 @@ static int phase_0(dScnLogo_c* logo);
static int phase_1(dScnLogo_c* logo);
static int phase_2(dScnLogo_c* logo);
-template <typename T>
-T cLib_calcTimer(T* val);
-
#endif /* D_S_D_S_LOGO_H */
diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h
index 5cac4e2acc..17a72a4811 100644
--- a/include/d/save/d_save.h
+++ b/include/d/save/d_save.h
@@ -384,7 +384,7 @@ public:
int isMagicFlag(u8 i_magic) const;
u16 getMaxLife() { return mMaxLife; }
- u16 getLife() { return mLife; }
+ u16 getLife() const { return mLife; }
u16 getRupee() { return mRupee; }
u16 getOil() { return mOil; }
u16 getMaxOil() const { return mMaxOil; }
@@ -515,6 +515,7 @@ public:
s8 getRoomNo() { return mRoomNo; }
char getWarpAcceptStage() { return mWarpAcceptStage; }
void resetWarpAcceptStage() { mWarpAcceptStage = -1; }
+ void setWarpAcceptStage(s8 accept) { mWarpAcceptStage = accept; }
private:
/* 0x00 */ cXyz mPos;
@@ -522,7 +523,7 @@ private:
/* 0x0E */ char mName[8];
/* 0x16 */ u8 mSpawnId;
/* 0x17 */ s8 mRoomNo;
- /* 0x18 */ char mWarpAcceptStage;
+ /* 0x18 */ s8 mWarpAcceptStage;
/* 0x19 */ u8 unk25[3];
}; // Size: 0x1C
@@ -813,6 +814,7 @@ public:
onDungeonItem(STAGE_BOSS_ENEMY);
onDungeonItem(OOCCOO_NOTE);
}
+ s32 isStageBossEnemy() const { return isDungeonItem(STAGE_BOSS_ENEMY); }
s32 isDungeonItemWarp() const { return isDungeonItem(OOCCOO_NOTE); }
void onStageLife() { onDungeonItem(STAGE_LIFE); }
@@ -1085,6 +1087,7 @@ public:
u8 getDataNum() const { return mDataNum; }
void removeZone(int zoneNo) { mZone[zoneNo].reset(); }
void setNoFile(u8 file) { mNoFile = file; }
+ u8 getNewFile() const { return mNewFile; }
static const int MEMORY_SWITCH = 0x80;
static const int DAN_SWITCH = 0x40;
diff --git a/include/d/save/d_save_HIO.h b/include/d/save/d_save_HIO.h
index ef4b049302..dfa7c8b147 100644
--- a/include/d/save/d_save_HIO.h
+++ b/include/d/save/d_save_HIO.h
@@ -201,8 +201,7 @@ public:
/* 8025C6FC */ virtual ~dSvBit_HIO_c();
-private:
- /* 0x004 */ u8 field_0x4;
+ /* 0x004 */ s8 field_0x4;
/* 0x008 */ dSvBit_childSwitchHIO_c mSwitch;
/* 0x210 */ dSvBit_childItemHIO_c mItem;
/* 0x3D8 */ dSvBit_childTreasureHIO_c mTreasure;