//
// Generated By: dol2asm
// Translation Unit: d_a_obj_hata
//

#include "rel/d/a/obj/d_a_obj_hata/d_a_obj_hata.h"
#include "dol2asm.h"

//
// Types:
//

struct request_of_phase_process_class {};

struct csXyz {
    /* 80C18CCC */ ~csXyz();
    /* 80C18D64 */ csXyz();
};

struct mDoMtx_stack_c {
    /* 8000CF44 */ void ZXYrotM(csXyz const&);

    static u8 now[48];
};

struct fopAc_ac_c {
    /* 80018B64 */ fopAc_ac_c();
    /* 80018C8C */ ~fopAc_ac_c();
};

struct daObjHata_c {
    /* 80C18D08 */ daObjHata_c();
    /* 80C18D68 */ ~daObjHata_c();
    /* 80C18E00 */ void createHeap();
    /* 80C18E70 */ void create();
    /* 80C18F88 */ void Delete();
    /* 80C18FBC */ void draw();
    /* 80C19060 */ void execute();
    /* 80C19098 */ void setModelMtx();
    /* 80C190FC */ void init();
    /* 80C1919C */ void moveSwing();
};

struct dKy_tevstr_c {};

struct J3DModelData {};

struct cXyz {};

struct dScnKy_env_light_c {
    /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*);
    /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*);
};

struct dRes_info_c {};

struct dRes_control_c {
    /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
};

struct J3DSys {
    static u8 mCurrentMtx[48];
};

struct J3DModel {};

struct J3DJoint {};

//
// Forward References:
//

extern "C" static void daObjHata_c_createHeap__FP10fopAc_ac_c();
extern "C" static void nodeCallBack__FP8J3DJointi();
extern "C" void __dt__5csXyzFv();
extern "C" void __ct__11daObjHata_cFv();
extern "C" void __ct__5csXyzFv();
extern "C" void __dt__11daObjHata_cFv();
extern "C" void createHeap__11daObjHata_cFv();
extern "C" void create__11daObjHata_cFv();
extern "C" void Delete__11daObjHata_cFv();
extern "C" void draw__11daObjHata_cFv();
extern "C" void execute__11daObjHata_cFv();
extern "C" void setModelMtx__11daObjHata_cFv();
extern "C" void init__11daObjHata_cFv();
extern "C" void moveSwing__11daObjHata_cFv();
extern "C" static void daObjHata_create__FP11daObjHata_c();
extern "C" static void daObjHata_Delete__FP11daObjHata_c();
extern "C" static void daObjHata_execute__FP11daObjHata_c();
extern "C" static void daObjHata_draw__FP11daObjHata_c();
extern "C" extern char const* const d_a_obj_hata__stringBase0;

//
// External References:
//

extern "C" void mDoMtx_YrotM__FPA4_fs();
extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
extern "C" void fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData();
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void cM_rndF__Ff();
extern "C" void cM_rndFX__Ff();
extern "C" void cLib_chaseF__FPfff();
extern "C" void __dl__FPv();
extern "C" void PSMTXCopy();
extern "C" void PSMTXTrans();
extern "C" void __destroy_arr();
extern "C" void __construct_array();
extern "C" void _savegpr_21();
extern "C" void _savegpr_26();
extern "C" void _restgpr_21();
extern "C" void _restgpr_26();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_env_light[4880];
extern "C" extern u8 j3dSys[284];
extern "C" u8 mCurrentMtx__6J3DSys[48];

//
// Declarations:
//

/* 80C18BB8-80C18BD8 000078 0020+00 1/1 0/0 0/0 .text daObjHata_c_createHeap__FP10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjHata_c_createHeap(fopAc_ac_c* param_0) {
    nofralloc
#include "asm/rel/d/a/obj/d_a_obj_hata/d_a_obj_hata/daObjHata_c_createHeap__FP10fopAc_ac_c.s"
}
#pragma pop

/* 80C18BD8-80C18CCC 000098 00F4+00 1/1 0/0 0/0 .text            nodeCallBack__FP8J3DJointi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void nodeCallBack(J3DJoint* param_0, int param_1) {
    nofralloc
#include "asm/rel/d/a/obj/d_a_obj_hata/d_a_obj_hata/nodeCallBack__FP8J3DJointi.s"
}
#pragma pop

/* 80C18CCC-80C18D08 00018C 003C+00 2/2 0/0 0/0 .text            __dt__5csXyzFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm csXyz::~csXyz() {
    nofralloc
#include "asm/rel/d/a/obj/d_a_obj_hata/d_a_obj_hata/__dt__5csXyzFv.s"
}
#pragma pop

/* ############################################################################################## */
/* 80C194C0-80C194C0 000048 0000+00 0/0 0/0 0/0 .rodata          @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80C194C0 = "Hata";
#pragma pop

/* 80C194C8-80C194CC -00001 0004+00 3/3 0/0 0/0 .data            l_arcName */
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_hata__stringBase0;

/* 80C194CC-80C194EC -00001 0020+00 1/0 0/0 0/0 .data            daObjHata_METHODS */
SECTION_DATA static void* daObjHata_METHODS[8] = {
    (void*)daObjHata_create__FP11daObjHata_c,
    (void*)daObjHata_Delete__FP11daObjHata_c,
    (void*)daObjHata_execute__FP11daObjHata_c,
    (void*)NULL,
    (void*)daObjHata_draw__FP11daObjHata_c,
    (void*)NULL,
    (void*)NULL,
    (void*)NULL,
};

/* 80C194EC-80C1951C -00001 0030+00 0/0 0/0 1/0 .data            g_profile_Obj_Hata */
SECTION_DATA extern void* g_profile_Obj_Hata[12] = {
    (void*)0xFFFFFFFD, (void*)0x0007FFFD,
    (void*)0x01A80000, (void*)&g_fpcLf_Method,
    (void*)0x000005C4, (void*)NULL,
    (void*)NULL,       (void*)&g_fopAc_Method,
    (void*)0x02EB0000, (void*)&daObjHata_METHODS,
    (void*)0x00040180, (void*)0x030E0000,
};

/* 80C1951C-80C19528 000054 000C+00 2/2 0/0 0/0 .data            __vt__11daObjHata_c */
SECTION_DATA extern void* __vt__11daObjHata_c[3] = {
    (void*)NULL /* RTTI */,
    (void*)NULL,
    (void*)__dt__11daObjHata_cFv,
};

/* 80C18D08-80C18D64 0001C8 005C+00 2/2 0/0 0/0 .text            __ct__11daObjHata_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daObjHata_c::daObjHata_c() {
    nofralloc
#include "asm/rel/d/a/obj/d_a_obj_hata/d_a_obj_hata/__ct__11daObjHata_cFv.s"
}
#pragma pop

/* 80C18D64-80C18D68 000224 0004+00 1/1 0/0 0/0 .text            __ct__5csXyzFv */
csXyz::csXyz() {
    /* empty function */
}

/* 80C18D68-80C18E00 000228 0098+00 1/0 0/0 0/0 .text            __dt__11daObjHata_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daObjHata_c::~daObjHata_c() {
    nofralloc
#include "asm/rel/d/a/obj/d_a_obj_hata/d_a_obj_hata/__dt__11daObjHata_cFv.s"
}
#pragma pop

/* 80C18E00-80C18E70 0002C0 0070+00 1/1 0/0 0/0 .text            createHeap__11daObjHata_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjHata_c::createHeap() {
    nofralloc
#include "asm/rel/d/a/obj/d_a_obj_hata/d_a_obj_hata/createHeap__11daObjHata_cFv.s"
}
#pragma pop

/* 80C18E70-80C18F88 000330 0118+00 1/1 0/0 0/0 .text            create__11daObjHata_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjHata_c::create() {
    nofralloc
#include "asm/rel/d/a/obj/d_a_obj_hata/d_a_obj_hata/create__11daObjHata_cFv.s"
}
#pragma pop

/* 80C18F88-80C18FBC 000448 0034+00 1/1 0/0 0/0 .text            Delete__11daObjHata_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjHata_c::Delete() {
    nofralloc
#include "asm/rel/d/a/obj/d_a_obj_hata/d_a_obj_hata/Delete__11daObjHata_cFv.s"
}
#pragma pop

/* 80C18FBC-80C19060 00047C 00A4+00 1/1 0/0 0/0 .text            draw__11daObjHata_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjHata_c::draw() {
    nofralloc
#include "asm/rel/d/a/obj/d_a_obj_hata/d_a_obj_hata/draw__11daObjHata_cFv.s"
}
#pragma pop

/* 80C19060-80C19098 000520 0038+00 1/1 0/0 0/0 .text            execute__11daObjHata_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjHata_c::execute() {
    nofralloc
#include "asm/rel/d/a/obj/d_a_obj_hata/d_a_obj_hata/execute__11daObjHata_cFv.s"
}
#pragma pop

/* 80C19098-80C190FC 000558 0064+00 2/2 0/0 0/0 .text            setModelMtx__11daObjHata_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjHata_c::setModelMtx() {
    nofralloc
#include "asm/rel/d/a/obj/d_a_obj_hata/d_a_obj_hata/setModelMtx__11daObjHata_cFv.s"
}
#pragma pop

/* ############################################################################################## */
/* 80C19478-80C1947C 000000 0004+00 2/2 0/0 0/0 .rodata          @3788 */
SECTION_RODATA static f32 const lit_3788 = 1280.0f;
COMPILER_STRIP_GATE(0x80C19478, &lit_3788);

/* 80C1947C-80C19480 000004 0004+00 1/2 0/0 0/0 .rodata          @3789 */
SECTION_RODATA static f32 const lit_3789 = 1.0f;
COMPILER_STRIP_GATE(0x80C1947C, &lit_3789);

/* 80C190FC-80C1919C 0005BC 00A0+00 1/1 0/0 0/0 .text            init__11daObjHata_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjHata_c::init() {
    nofralloc
#include "asm/rel/d/a/obj/d_a_obj_hata/d_a_obj_hata/init__11daObjHata_cFv.s"
}
#pragma pop

/* ############################################################################################## */
/* 80C19480-80C1948C 000008 000C+00 0/1 0/0 0/0 .rodata          SING$3793 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const SING[12] = {
    0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01,
};
COMPILER_STRIP_GATE(0x80C19480, &SING);
#pragma pop

/* 80C1948C-80C19498 000014 000C+00 0/1 0/0 0/0 .rodata          AIM_ANGLE_X$3794 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const AIM_ANGLE_X[12] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xBC, 0x00, 0x00, 0x02, 0xBC,
};
COMPILER_STRIP_GATE(0x80C1948C, &AIM_ANGLE_X);
#pragma pop

/* 80C19498-80C194A4 000020 000C+00 0/1 0/0 0/0 .rodata          STEP_ANGLE_X$3795 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const STEP_ANGLE_X[12] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x5A,
};
COMPILER_STRIP_GATE(0x80C19498, &STEP_ANGLE_X);
#pragma pop

/* 80C194A4-80C194A8 00002C 0004+00 0/1 0/0 0/0 .rodata          @3823 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3823 = 50.0f;
COMPILER_STRIP_GATE(0x80C194A4, &lit_3823);
#pragma pop

/* 80C194A8-80C194AC 000030 0004+00 0/1 0/0 0/0 .rodata          @3824 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3824 = 1500.0f;
COMPILER_STRIP_GATE(0x80C194A8, &lit_3824);
#pragma pop

/* 80C194AC-80C194B0 000034 0004+00 0/1 0/0 0/0 .rodata          @3825 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3825 = 1.0f / 10.0f;
COMPILER_STRIP_GATE(0x80C194AC, &lit_3825);
#pragma pop

/* 80C194B0-80C194B8 000038 0004+04 0/1 0/0 0/0 .rodata          @3826 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3826[1 + 1 /* padding */] = {
    0.5f,
    /* padding */
    0.0f,
};
COMPILER_STRIP_GATE(0x80C194B0, &lit_3826);
#pragma pop

/* 80C194B8-80C194C0 000040 0008+00 0/1 0/0 0/0 .rodata          @3828 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3828[8] = {
    0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80C194B8, &lit_3828);
#pragma pop

/* 80C1919C-80C193BC 00065C 0220+00 1/1 0/0 0/0 .text            moveSwing__11daObjHata_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjHata_c::moveSwing() {
    nofralloc
#include "asm/rel/d/a/obj/d_a_obj_hata/d_a_obj_hata/moveSwing__11daObjHata_cFv.s"
}
#pragma pop

/* 80C193BC-80C19410 00087C 0054+00 1/0 0/0 0/0 .text            daObjHata_create__FP11daObjHata_c
 */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjHata_create(daObjHata_c* param_0) {
    nofralloc
#include "asm/rel/d/a/obj/d_a_obj_hata/d_a_obj_hata/daObjHata_create__FP11daObjHata_c.s"
}
#pragma pop

/* 80C19410-80C19430 0008D0 0020+00 1/0 0/0 0/0 .text            daObjHata_Delete__FP11daObjHata_c
 */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjHata_Delete(daObjHata_c* param_0) {
    nofralloc
#include "asm/rel/d/a/obj/d_a_obj_hata/d_a_obj_hata/daObjHata_Delete__FP11daObjHata_c.s"
}
#pragma pop

/* 80C19430-80C19450 0008F0 0020+00 1/0 0/0 0/0 .text            daObjHata_execute__FP11daObjHata_c
 */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjHata_execute(daObjHata_c* param_0) {
    nofralloc
#include "asm/rel/d/a/obj/d_a_obj_hata/d_a_obj_hata/daObjHata_execute__FP11daObjHata_c.s"
}
#pragma pop

/* 80C19450-80C19470 000910 0020+00 1/0 0/0 0/0 .text            daObjHata_draw__FP11daObjHata_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjHata_draw(daObjHata_c* param_0) {
    nofralloc
#include "asm/rel/d/a/obj/d_a_obj_hata/d_a_obj_hata/daObjHata_draw__FP11daObjHata_c.s"
}
#pragma pop

/* 80C194C0-80C194C0 000048 0000+00 0/0 0/0 0/0 .rodata          @stringBase0 */
