//
// Generated By: dol2asm
// Translation Unit: d_a_title
//

#include "rel/d/a/d_a_title/d_a_title.h"
#include "d/pane/d_pane_class_alpha.h"
#include "d/menu/d_menu_collect.h"
#include "m_Do/m_Do_Reset.h"
#include "m_Do/m_Do_controller_pad.h"

//
// Types:
//

class dDlst_daTitle_c : public dDlst_base_c {
public:
    /* 80D679C8 */ virtual void draw();
    /* 80D67B30 */ virtual ~dDlst_daTitle_c() {}

    /* 0x4 */ J2DScreen* Scr;
};

class daTitle_c : public fopAc_ac_c {
public:
    //daTitle_c() {}
    /* 80D66B54 */ int CreateHeap();
    /* 80D66CDC */ int create();
    /* 80D66E7C */ static int createHeapCallBack(fopAc_ac_c*);
    /* 80D66E9C */ int Execute();
    /* 80D66F34 */ void KeyWaitAnm();
    /* 80D67010 */ void loadWait_init();
    /* 80D6701C */ void loadWait_proc();
    /* 80D672E0 */ void logoDispWaitInit();
    /* 80D672EC */ void logoDispWait();
    /* 80D67350 */ void logoDispAnmInit();
    /* 80D6737C */ void logoDispAnm();
    /* 80D674A8 */ void keyWaitInit();
    /* 80D674B4 */ void keyWait();
    /* 80D67544 */ void nextScene_init();
    /* 80D67550 */ void nextScene_proc();
    /* 80D675EC */ void fastLogoDispInit();
    /* 80D676AC */ void fastLogoDisp();
    /* 80D676F4 */ int getDemoPrm();
    /* 80D67768 */ int Draw();
    /* 80D6786C */ int Delete();

private:
    /* 0x568 */ request_of_phase_process_class mPhaseReq;
    /* 0x570 */ JKRHeap* mpHeap;
    /* 0x574 */ J3DModel* mpModel;
    /* 0x578 */ mDoExt_bckAnm mBck;
    /* 0x594 */ mDoExt_bpkAnm mBpk;
    /* 0x5AC */ mDoExt_brkAnm mBrk;
    /* 0x5C4 */ mDoExt_btkAnm mBtk;
    /* 0x5DC */ JKRExpHeap* m2DHeap;
    /* 0x5E0 */ mDoDvdThd_mountArchive_c* mpMount;
    /* 0x5E4 */ dDlst_daTitle_c mTitle;
    /* 0x5EC */ JUTFont* mpFont;
    /* 0x5F0 */ u8 field_0x5f0[8];
    /* 0x5F8 */ u8 field_0x5f8;
    /* 0x5F9 */ u8 field_0x5f9;
    /* 0x5FA */ u8 field_0x5fa;
    /* 0x5FB */ u8 mProcID;
    /* 0x5FC */ u8 field_0x5fc;
    /* 0x600 */ CPaneMgrAlpha* field_0x600;
    /* 0x604 */ u8 field_0x604;
};  // Size: 0x608

typedef void (daTitle_c::*procFunc)();

class daTit_HIO_c {
public:
    /* 80D66B0C */ daTit_HIO_c();

    /* 80D67A08 */ virtual ~daTit_HIO_c();

    /* 0x04 */ s8 field_0x4;
    /* 0x08 */ f32 mPSScaleX;
    /* 0x0C */ f32 mPSScaleY;
    /* 0x10 */ f32 mPSPosX;
    /* 0x14 */ f32 mPSPosY;
    /* 0x18 */ u8 mAppear;
    /* 0x19 */ u8 mArrow;
    /* 0x1A */ u8 field_0x1a;
};

struct dDemo_object_c {
    /* 80039088 */ void getActor(u8);
};

struct dDemo_c {
    static u8 m_object[4];
};

//
// Forward References:
//

extern "C" void __ct__11daTit_HIO_cFv();
extern "C" void CreateHeap__9daTitle_cFv();
extern "C" void create__9daTitle_cFv();
extern "C" void createHeapCallBack__9daTitle_cFP10fopAc_ac_c();
extern "C" void Execute__9daTitle_cFv();
extern "C" void KeyWaitAnm__9daTitle_cFv();
extern "C" void loadWait_init__9daTitle_cFv();
extern "C" void loadWait_proc__9daTitle_cFv();
extern "C" void logoDispWaitInit__9daTitle_cFv();
extern "C" void logoDispWait__9daTitle_cFv();
extern "C" void logoDispAnmInit__9daTitle_cFv();
extern "C" void logoDispAnm__9daTitle_cFv();
extern "C" void keyWaitInit__9daTitle_cFv();
extern "C" void keyWait__9daTitle_cFv();
extern "C" void nextScene_init__9daTitle_cFv();
extern "C" void nextScene_proc__9daTitle_cFv();
extern "C" void fastLogoDispInit__9daTitle_cFv();
extern "C" void fastLogoDisp__9daTitle_cFv();
extern "C" void getDemoPrm__9daTitle_cFv();
extern "C" void Draw__9daTitle_cFv();
extern "C" void Delete__9daTitle_cFv();
extern "C" static void daTitle_Draw__FP9daTitle_c();
extern "C" static void daTitle_Execute__FP9daTitle_c();
extern "C" static void daTitle_Delete__FP9daTitle_c();
extern "C" static void daTitle_Create__FP10fopAc_ac_c();
extern "C" void draw__15dDlst_daTitle_cFv();
extern "C" void draw__12dDlst_base_cFv();
extern "C" void __dt__11daTit_HIO_cFv();
extern "C" void __sinit_d_a_title_cpp();
extern "C" void __dt__15dDlst_daTitle_cFv();
extern "C" void __dt__12J3DFrameCtrlFv();
extern "C" extern char const* const d_a_title__stringBase0;

//
// External References:
//

extern "C" void play__14mDoExt_baseAnmFv();
extern "C" void init__13mDoExt_bpkAnmFP16J3DMaterialTableP11J3DAnmColoriifss();
extern "C" void entry__13mDoExt_bpkAnmFP16J3DMaterialTablef();
extern "C" void init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss();
extern "C" void entry__13mDoExt_btkAnmFP16J3DMaterialTablef();
extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss();
extern "C" void entry__13mDoExt_brkAnmFP16J3DMaterialTablef();
extern "C" void init__13mDoExt_bckAnmFP15J3DAnmTransformiifssb();
extern "C" void entry__13mDoExt_bckAnmFP12J3DModelDataf();
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
extern "C" void mDoExt_getGameHeap__Fv();
extern "C" void mDoExt_setCurrentHeap__FP7JKRHeap();
extern "C" void mDoExt_getMesgFont__Fv();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
extern "C" void create__24mDoDvdThd_mountArchive_cFPCcUcP7JKRHeap();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
extern "C" void fopOvlpM_IsPeek__Fv();
extern "C" void fopScnM_SearchByID__FUi();
extern "C" void fopScnM_ChangeReq__FP11scene_classssUs();
extern "C" void fopMsgM_messageGet__FPcUl();
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
extern "C" void getActor__14dDemo_object_cFUc();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void set__12dDlst_list_cFRPP12dDlst_base_cRPP12dDlst_base_cP12dDlst_base_c();
extern "C" void __ct__13CPaneMgrAlphaFP9J2DScreenUxUcP10JKRExpHeap();
extern "C" void alphaAnime__13CPaneMgrAlphaFsUcUcUc();
extern "C" void alphaAnimeLoop__13CPaneMgrAlphaFsUcUcUc();
extern "C" void
getData__Q47JStudio3stb4data22TParse_TParagraph_dataCFPQ57JStudio3stb4data22TParse_TParagraph_data5TData();
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void becomeCurrentHeap__7JKRHeapFv();
extern "C" void destroy__7JKRHeapFv();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void create__10JKRExpHeapFUlP7JKRHeapb();
extern "C" void __ct__9J2DScreenFv();
extern "C" void setPriority__9J2DScreenFPCcUlP10JKRArchive();
extern "C" void draw__9J2DScreenFffPC14J2DGrafContext();
extern "C" void getStringPtr__10J2DTextBoxCFv();
extern "C" void setString__10J2DTextBoxFsPCce();
extern "C" void init__12J3DFrameCtrlFs();
extern "C" void __ptmf_scall();
extern "C" void _savegpr_26();
extern "C" void _savegpr_29();
extern "C" void _restgpr_26();
extern "C" void _restgpr_29();
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
extern "C" f32 mViewOffsetY__17dMenu_Collect3D_c[1 + 1 /* padding */];
extern "C" u8 mFader__13mDoGph_gInf_c[4];
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
extern "C" u8 mProcID__20dStage_roomControl_c[4];
extern "C" u8 m_object__7dDemo_c[4];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
extern "C" void __register_global_object();

//
// Declarations:
//

/* 80D67D8C-80D67DA8 000014 001C+00 4/4 0/0 0/0 .bss             g_daTitHIO */
static daTit_HIO_c g_daTitHIO;

/* ############################################################################################## */
/* 80D67BD4-80D67BE0 000000 000C+00 2/2 0/0 0/0 .rodata          @3772 */
SECTION_RODATA static u8 const lit_3772[12] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80D67BD4, &lit_3772);

/* 80D67BE0-80D67BE8 00000C 0006+02 3/3 0/0 0/0 .rodata          l_arcName */
SECTION_RODATA static char const l_arcName[6] = "Title";
COMPILER_STRIP_GATE(0x80D67BE0, &l_arcName);

/* 80D67C40-80D67C4C 000000 000C+00 1/1 0/0 0/0 .data            cNullVec__6Z2Calc */
SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};

/* 80D67C4C-80D67C60 00000C 0004+10 0/0 0/0 0/0 .data            @1787 */
#pragma push
#pragma force_active on
SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
    0x02000201,
    /* padding */
    0x40080000,
    0x00000000,
    0x3FE00000,
    0x00000000,
};
#pragma pop

SECTION_DATA static procFunc daTitleProc[6] = {
    &daTitle_c::loadWait_proc, &daTitle_c::logoDispWait, &daTitle_c::logoDispAnm,
    &daTitle_c::keyWait, &daTitle_c::nextScene_proc, &daTitle_c::fastLogoDisp,
};

/* 80D67CF0-80D67D10 -00001 0020+00 1/0 0/0 0/0 .data            l_daTitle_Method */
SECTION_DATA static void* l_daTitle_Method[8] = {
    (void*)daTitle_Create__FP10fopAc_ac_c,
    (void*)daTitle_Delete__FP9daTitle_c,
    (void*)daTitle_Execute__FP9daTitle_c,
    (void*)NULL,
    (void*)daTitle_Draw__FP9daTitle_c,
    (void*)NULL,
    (void*)NULL,
    (void*)NULL,
};

/* 80D67D10-80D67D40 -00001 0030+00 0/0 0/0 1/0 .data            g_profile_TITLE */
SECTION_DATA extern void* g_profile_TITLE[12] = {
    (void*)0xFFFFFFFD, (void*)0x0007FFFD,
    (void*)0x02E10000, (void*)&g_fpcLf_Method,
    (void*)0x00000608, (void*)NULL,
    (void*)NULL,       (void*)&g_fopAc_Method,
    (void*)0x000A0000, (void*)&l_daTitle_Method,
    (void*)0x00044000, (void*)0x000E0000,
};

/* 80D66B0C-80D66B54 0000EC 0048+00 1/1 0/0 0/0 .text            __ct__11daTit_HIO_cFv */
daTit_HIO_c::daTit_HIO_c() {
    mPSScaleX = 1.0f;
    mPSScaleY = 1.0f;
    mPSPosX = 303.0f;
    mPSPosY = 347.0f;
    mAppear = 15;
    mArrow = 60;
    field_0x1a = 15;
}

/* 80D66B54-80D66CDC 000134 0188+00 1/1 0/0 0/0 .text            CreateHeap__9daTitle_cFv */
int daTitle_c::CreateHeap() {
    J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 10);
    mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000285);

    if (mpModel == NULL) {
        return 0;
    }

    void* res = dComIfG_getObjectRes(l_arcName, 7);
    mBck.init((J3DAnmTransform*)res, 1, 0, 2.0f, 0, -1, false);

    res = dComIfG_getObjectRes(l_arcName, 13);
    mBpk.init(modelData, (J3DAnmColor*)res, 1, 0, 2.0f, 0, -1);

    res = dComIfG_getObjectRes(l_arcName, 16);
    mBrk.init(modelData, (J3DAnmTevRegKey*)res, 1, 0, 2.0f, 0, -1);

    res = dComIfG_getObjectRes(l_arcName, 19);
    mBtk.init(modelData, (J3DAnmTextureSRTKey*)res, 1, 0, 2.0f, 0, -1);

    return 1;
}

/* 80D66CDC-80D66E7C 0002BC 01A0+00 1/1 0/0 0/0 .text            create__9daTitle_cFv */
int daTitle_c::create() {
    fopAcM_SetupActor(this, daTitle_c);
    
    int phase_state = dComIfG_resLoad(&mPhaseReq, l_arcName);
    if (phase_state != cPhs_COMPLEATE_e) {
        return phase_state;
    }

    if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0x4000)) {
        return cPhs_ERROR_e;
    }

    mpMount = mDoDvdThd_mountArchive_c::create("/res/Layout/Title2D.arc", 0, NULL);
    field_0x5f8 = 0;
    field_0x5f9 = 0;

    m2DHeap = JKRExpHeap::create(0x8000, mDoExt_getGameHeap(), false);
    loadWait_init();
    g_daTitHIO.field_0x4 = -1;

    return phase_state;
}

/* 80D66E7C-80D66E9C 00045C 0020+00 1/1 0/0 0/0 .text createHeapCallBack__9daTitle_cFP10fopAc_ac_c
 */
int daTitle_c::createHeapCallBack(fopAc_ac_c* title) {
    return ((daTitle_c*)title)->CreateHeap();
}

/* 80D66E9C-80D66F34 00047C 0098+00 1/1 0/0 0/0 .text            Execute__9daTitle_cFv */
int daTitle_c::Execute() {
    if (fopOvlpM_IsPeek()) {
        return 1;
    }

    dMenu_Collect3D_c::mViewOffsetY = 0.0f;

    if (mDoRst::isReset()) {
        return 1;
    }

    (this->*daTitleProc[mProcID])();
    KeyWaitAnm();
    return 1;
}

/* 80D66F34-80D67010 000514 00DC+00 1/1 0/0 0/0 .text            KeyWaitAnm__9daTitle_cFv */
void daTitle_c::KeyWaitAnm() {
    if (field_0x5f9 != 0) {
        if (field_0x604 == 0) {
            if (field_0x5fa != 0) {
                field_0x600->alphaAnime(g_daTitHIO.mArrow, 0, 255, 0);
            } else {
                field_0x600->alphaAnimeLoop(g_daTitHIO.mArrow, 255, 128, 0);
            }

            if (field_0x600->getAlpha() == 255) {
                if (field_0x5fa != 0) {
                    field_0x5fa = 0;
                }
                field_0x604 = g_daTitHIO.field_0x1a;
            }
        }

        if (field_0x604 != 0) {
            field_0x604--;
        }
    }
}

/* 80D67010-80D6701C 0005F0 000C+00 1/1 0/0 0/0 .text            loadWait_init__9daTitle_cFv */
void daTitle_c::loadWait_init() {
    mProcID = 0;
}

/* 80D6701C-80D672E0 0005FC 02C4+00 1/0 0/0 0/0 .text            loadWait_proc__9daTitle_cFv */
void daTitle_c::loadWait_proc() {
    if (mpMount->sync()) {
        JKRHeap* heap = mDoExt_setCurrentHeap(m2DHeap);
        mpHeap = heap;

        mpFont = mDoExt_getMesgFont();
        mTitle.Scr = new J2DScreen();

        mTitle.Scr->setPriority("zelda_press_start.blo", 0x100000, mpMount->getArchive());

        J2DTextBox* text[7];
        text[0] = (J2DTextBox*)mTitle.Scr->search('t_s_00');
        text[1] = (J2DTextBox*)mTitle.Scr->search('t_s_01');
        text[2] = (J2DTextBox*)mTitle.Scr->search('t_s_02');
        text[3] = (J2DTextBox*)mTitle.Scr->search('t_s_03');
        text[4] = (J2DTextBox*)mTitle.Scr->search('t_s_04');
        text[5] = (J2DTextBox*)mTitle.Scr->search('t_s_05');
        text[6] = (J2DTextBox*)mTitle.Scr->search('t_o');

        for (int i = 0; i < 7; i++) {
            text[i]->setFont(mpFont);
            text[i]->setString(0x80, "");
            fopMsgM_messageGet(text[i]->getStringPtr(), 100);
        }

        field_0x600 = new CPaneMgrAlpha(mTitle.Scr, 'n_all', 2, NULL);
        field_0x600->setAlpha(0);
        J2DPane* pane = mTitle.Scr->search('n_all');
        pane->translate(g_daTitHIO.mPSPosX, g_daTitHIO.mPSPosY);
        pane->scale(g_daTitHIO.mPSScaleX, g_daTitHIO.mPSScaleY);
        mpHeap->becomeCurrentHeap();
        logoDispWaitInit();
    }
}

/* 80D672E0-80D672EC 0008C0 000C+00 1/1 0/0 0/0 .text            logoDispWaitInit__9daTitle_cFv */
void daTitle_c::logoDispWaitInit() {
    mProcID = 1;
}

/* 80D672EC-80D67350 0008CC 0064+00 1/0 0/0 0/0 .text            logoDispWait__9daTitle_cFv */
void daTitle_c::logoDispWait() {
    if (mDoCPd_c::getTrigA(PAD_1) || mDoCPd_c::getTrigStart(PAD_1)) {
        fastLogoDispInit();
    } else if (getDemoPrm() == 1) {
        logoDispAnmInit();
    }
}

/* 80D67350-80D6737C 000930 002C+00 1/1 0/0 0/0 .text            logoDispAnmInit__9daTitle_cFv */
void daTitle_c::logoDispAnmInit() {
    mBck.setPlaySpeed(1.0f);
    mBpk.setPlaySpeed(1.0f);
    mBrk.setPlaySpeed(1.0f);
    mBtk.setPlaySpeed(1.0f);
    field_0x5f8 = 1;
    mProcID = 2;
}

/* 80D6737C-80D674A8 00095C 012C+00 1/0 0/0 0/0 .text            logoDispAnm__9daTitle_cFv */
void daTitle_c::logoDispAnm() {
    mBck.play();
    mBpk.play();
    mBrk.play();
    mBtk.play();

    if (mBrk.isStop() && mBtk.isStop() && mBck.isStop() && mBpk.isStop()) {
        field_0x600->alphaAnimeStart(0);
        field_0x604 = 0;
        field_0x5f9 = 1;
        field_0x5fa = 1;
        keyWaitInit();
    }
}

/* 80D674A8-80D674B4 000A88 000C+00 2/2 0/0 0/0 .text            keyWaitInit__9daTitle_cFv */
void daTitle_c::keyWaitInit() {
    mProcID = 3;
}

/* 80D674B4-80D67544 000A94 0090+00 1/0 0/0 0/0 .text            keyWait__9daTitle_cFv */
void daTitle_c::keyWait() {
    if (mDoCPd_c::getTrigA(PAD_1) || mDoCPd_c::getTrigStart(PAD_1)) {
        mDoAud_seStart(Z2SE_TITLE_ENTER, NULL, 0, 0);
        nextScene_init();
    }
}

/* 80D67544-80D67550 000B24 000C+00 1/1 0/0 0/0 .text            nextScene_init__9daTitle_cFv */
void daTitle_c::nextScene_init() {
    mProcID = 4;
}

/* 80D67550-80D675EC 000B30 009C+00 1/0 0/0 0/0 .text            nextScene_proc__9daTitle_cFv */
void daTitle_c::nextScene_proc() {
    if (!fopOvlpM_IsPeek() && !mDoRst::isReset()) {
        scene_class* playScene = fopScnM_SearchByID(dStage_roomControl_c::getProcID());
        fopScnM_ChangeReq(playScene, 13, 0, 5);
        mDoGph_gInf_c::setFadeColor(*(JUtility::TColor*)&g_blackColor);
    }
}

/* 80D675EC-80D676AC 000BCC 00C0+00 1/1 0/0 0/0 .text            fastLogoDispInit__9daTitle_cFv */
void daTitle_c::fastLogoDispInit() {
    mBck.setFrame(mBck.getEndFrame() - 1.0f);
    mBpk.setFrame(mBpk.getEndFrame() - 1.0f);
    mBrk.setFrame(mBrk.getEndFrame() - 1.0f);
    mBtk.setFrame(mBtk.getEndFrame() - 1.0f);

    field_0x600->alphaAnimeStart(0);
    field_0x604 = 0;
    field_0x5fc = 30;
    mProcID = 5;
}

/* 80D676AC-80D676F4 000C8C 0048+00 1/0 0/0 0/0 .text            fastLogoDisp__9daTitle_cFv */
void daTitle_c::fastLogoDisp() {
    if (field_0x5fc != 0) {
        field_0x5fc--;
        return;
    }

    field_0x5f9 = 1;
    field_0x5fa = 1;
    field_0x5f8 = 1;
    keyWaitInit();
}

/* 80D676F4-80D67768 000CD4 0074+00 1/1 0/0 0/0 .text            getDemoPrm__9daTitle_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm int daTitle_c::getDemoPrm() {
    nofralloc
#include "asm/rel/d/a/d_a_title/d_a_title/getDemoPrm__9daTitle_cFv.s"
}
#pragma pop

/* 80D67768-80D6786C 000D48 0104+00 1/1 0/0 0/0 .text            Draw__9daTitle_cFv */
int daTitle_c::Draw() {
    J3DModelData* modelData = mpModel->getModelData();
    MTXTrans(mpModel->getBaseTRMtx(), 0.0f, 0.0f, -430.0f);
    mpModel->getBaseScale()->x = -1.0f;

    mBck.entry(modelData);
    mBpk.entry(modelData);
    mBrk.entry(modelData);
    mBtk.entry(modelData);

    dComIfGd_setListItem3D();
    mDoExt_modelUpdateDL(mpModel);
    dComIfGd_setList();

    if (field_0x5f8) {
        dComIfGd_set2DOpaTop(&mTitle);
    }

    return 1;
}

/* 80D6786C-80D67948 000E4C 00DC+00 1/1 0/0 0/0 .text            Delete__9daTitle_cFv */
int daTitle_c::Delete() {
    dComIfG_resDelete(&mPhaseReq, l_arcName);
    delete mTitle.Scr;
    delete field_0x600;
    
    mpMount->getArchive()->removeResourceAll();
    mpMount->getArchive()->unmount();
    delete mpMount;

    if (m2DHeap != NULL) {
        m2DHeap->destroy();
    }

    return 1;
}

/* 80D67948-80D67968 000F28 0020+00 1/0 0/0 0/0 .text            daTitle_Draw__FP9daTitle_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTitle_Draw(daTitle_c* param_0) {
    nofralloc
#include "asm/rel/d/a/d_a_title/d_a_title/daTitle_Draw__FP9daTitle_c.s"
}
#pragma pop

/* 80D67968-80D67988 000F48 0020+00 1/0 0/0 0/0 .text            daTitle_Execute__FP9daTitle_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTitle_Execute(daTitle_c* param_0) {
    nofralloc
#include "asm/rel/d/a/d_a_title/d_a_title/daTitle_Execute__FP9daTitle_c.s"
}
#pragma pop

/* 80D67988-80D679A8 000F68 0020+00 1/0 0/0 0/0 .text            daTitle_Delete__FP9daTitle_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTitle_Delete(daTitle_c* param_0) {
    nofralloc
#include "asm/rel/d/a/d_a_title/d_a_title/daTitle_Delete__FP9daTitle_c.s"
}
#pragma pop

/* 80D679A8-80D679C8 000F88 0020+00 1/0 0/0 0/0 .text            daTitle_Create__FP10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTitle_Create(fopAc_ac_c* param_0) {
    nofralloc
#include "asm/rel/d/a/d_a_title/d_a_title/daTitle_Create__FP10fopAc_ac_c.s"
}
#pragma pop

/* 80D679C8-80D67A04 000FA8 003C+00 1/0 0/0 0/0 .text            draw__15dDlst_daTitle_cFv */
void dDlst_daTitle_c::draw() {
    J2DGrafContext* ctx = dComIfGp_getCurrentGrafPort();
    Scr->draw(0.0f, 0.0f, ctx);
}

/* 80D67A04-80D67A08 000FE4 0004+00 1/0 0/0 0/0 .text            draw__12dDlst_base_cFv */
void dDlst_base_c::draw() {
    /* empty function */
}

/* 80D67A08-80D67A50 000FE8 0048+00 2/1 0/0 0/0 .text            __dt__11daTit_HIO_cFv */
daTit_HIO_c::~daTit_HIO_c() {}

/* 80D67A50-80D67B30 001030 00E0+00 0/0 1/0 0/0 .text            __sinit_d_a_title_cpp */
/* #pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __sinit_d_a_title_cpp() {
    nofralloc
#include "asm/rel/d/a/d_a_title/d_a_title/__sinit_d_a_title_cpp.s"
}
#pragma pop

#pragma push
#pragma force_active on
REGISTER_CTORS(0x80D67A50, __sinit_d_a_title_cpp);
#pragma pop */

/* 80D67B30-80D67B78 001110 0048+00 1/0 0/0 0/0 .text            __dt__15dDlst_daTitle_cFv */
/* #pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dDlst_daTitle_c::~dDlst_daTitle_c() {
    nofralloc
#include "asm/rel/d/a/d_a_title/d_a_title/__dt__15dDlst_daTitle_cFv.s"
}
#pragma pop */

/* 80D67B78-80D67BC0 001158 0048+00 1/0 0/0 0/0 .text            __dt__12J3DFrameCtrlFv */
/* #pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
//asm J3DFrameCtrl::~J3DFrameCtrl() {
extern "C" asm void __dt__12J3DFrameCtrlFv() {
    nofralloc
#include "asm/rel/d/a/d_a_title/d_a_title/__dt__12J3DFrameCtrlFv.s"
}
#pragma pop */

/* 80D67C10-80D67C10 00003C 0000+00 0/0 0/0 0/0 .rodata          @stringBase0 */
