#ifndef D_T_SHIP_WINDOW_H
#define D_T_SHIP_WINDOW_H

#include "d/t/d_tg.h"
#include "s/s_State.hpp"
#include "toBeSorted/actor_event.h"

class dTgShipWindow_c : public dTg_c {
public:
    dTgShipWindow_c() : mStateMgr(*this), mEvent(*this, nullptr) {}
    virtual ~dTgShipWindow_c() {}
    virtual int create() override;
    virtual int actorExecute() override;
    virtual int actorExecuteInEvent() override;
    virtual int draw() override;
    virtual int doDelete() override;

    STATE_FUNC_DECLARE(dTgShipWindow_c, On);
    STATE_FUNC_DECLARE(dTgShipWindow_c, Off);

private:
    STATE_MGR_DECLARE(dTgShipWindow_c);
    ActorEventRelated mEvent;
    u8 mInitialStateFlag;
    u8 mOutputStateFlagBase;
    u8 mOffEventId;
    u8 mOnEventId;
    u8 mHasPlayedOffEvent;
    u8 mHasPlayedOnEvent;
    u8 mAlwaysPlayEvent;
};

#endif
