mirror of
https://github.com/zeldaret/tww.git
synced 2026-09-29 10:41:39 -04:00
188 lines
4.4 KiB
C++
188 lines
4.4 KiB
C++
#ifndef D_OPERATE_WIND_H
|
|
#define D_OPERATE_WIND_H
|
|
|
|
#include "d/d_drawlist.h"
|
|
#include "f_op/f_op_msg.h"
|
|
#include "f_op/f_op_msg_mng.h"
|
|
#include "m_Do/m_Do_hostIO.h"
|
|
#include "JSystem/JUtility/TColor.h"
|
|
|
|
struct fopMsgM_pane_class;
|
|
class JKRExpHeap;
|
|
class J2DScreen;
|
|
class STControl;
|
|
|
|
class dOw_HIO_c : public mDoHIO_entry_c {
|
|
public:
|
|
dOw_HIO_c();
|
|
~dOw_HIO_c() {}
|
|
|
|
void genMessage(JORMContext* ctx) { UNUSED(ctx); }
|
|
|
|
public:
|
|
/* 0x04 */ f32 field_0x04;
|
|
/* 0x08 */ s16 field_0x08;
|
|
/* 0x0A */ s16 field_0x0a;
|
|
/* 0x0C */ s16 field_0x0c;
|
|
/* 0x0E */ s16 field_0x0e;
|
|
/* 0x10 */ s16 field_0x10;
|
|
/* 0x12 */ s16 field_0x12;
|
|
/* 0x14 */ s16 field_0x14;
|
|
/* 0x16 */ s16 field_0x16;
|
|
/* 0x18 */ u8 field_0x18;
|
|
};
|
|
|
|
class dDlst_Ow_main_c : public dDlst_base_c {
|
|
public:
|
|
~dDlst_Ow_main_c() {}
|
|
|
|
void drawLine(int i, f32 x1, f32 y1, f32 x2, f32 y2) {
|
|
mX1[i] = x1;
|
|
mY1[i] = y1;
|
|
mX2[i] = x2;
|
|
mY2[i] = y2;
|
|
}
|
|
void setLineColor(JUtility::TColor c) { color = c; }
|
|
void setLineMax(int v) { mLineMax = v; }
|
|
void setScreen(J2DScreen* s) { scrn = s; }
|
|
|
|
void draw();
|
|
|
|
public:
|
|
/* 0x004 */ J2DScreen* scrn;
|
|
/* 0x008 */ JUtility::TColor color;
|
|
/* 0x00C */ int mLineMax;
|
|
/* 0x010 */ f32 mX1[50];
|
|
/* 0x0D8 */ f32 mY1[50];
|
|
/* 0x1A0 */ f32 mX2[50];
|
|
/* 0x268 */ f32 mY2[50];
|
|
};
|
|
|
|
class dDlst_Ow_mask_c : public dDlst_base_c {
|
|
public:
|
|
~dDlst_Ow_mask_c() {}
|
|
|
|
void setScreen(J2DScreen* s) { scrn = s; }
|
|
|
|
void draw();
|
|
|
|
public:
|
|
/* 0x004 */ J2DScreen* scrn;
|
|
};
|
|
|
|
class dOperate_wind_c {
|
|
public:
|
|
dOperate_wind_c() {}
|
|
virtual ~dOperate_wind_c() {}
|
|
void setTimer(s16 i_timer) {
|
|
mTimer = i_timer;
|
|
}
|
|
|
|
int dOw_angleRegular(f32);
|
|
int dOw_stickControl(int, s16);
|
|
void screenSet();
|
|
void alphaSet(f32);
|
|
void arrowColor1();
|
|
void arrowColor2();
|
|
void maskColor();
|
|
void arrowDirection();
|
|
void windSet();
|
|
void ringScale(f32);
|
|
void directionTrans(f32);
|
|
void lineInit(f32);
|
|
void lineDraw();
|
|
void arrowRotate(fopMsgM_pane_class*, s16);
|
|
void initialize();
|
|
void _create();
|
|
void _delete();
|
|
void _move();
|
|
void _draw();
|
|
bool _open();
|
|
bool _close();
|
|
|
|
public:
|
|
/* 0x004 */ J2DScreen* scrn1;
|
|
/* 0x008 */ J2DScreen* scrn2;
|
|
/* 0x00C */ fopMsgM_pane_class field_0x0c;
|
|
/* 0x044 */ fopMsgM_pane_class field_0x44;
|
|
/* 0x07C */ fopMsgM_pane_class field_0x7c;
|
|
/* 0x0B4 */ fopMsgM_pane_class field_0xb4;
|
|
/* 0x0EC */ fopMsgM_pane_class field_0xec;
|
|
/* 0x124 */ fopMsgM_pane_class field_0x124[2];
|
|
/* 0x194 */ fopMsgM_pane_class field_0x194;
|
|
/* 0x1CC */ fopMsgM_pane_class field_0x1cc[4];
|
|
/* 0x2AC */ fopMsgM_pane_class field_0x2ac[8];
|
|
/* 0x46C */ fopMsgM_pane_class field_0x46c[4];
|
|
/* 0x54C */ fopMsgM_pane_alpha_class field_0x54c;
|
|
/* 0x554 */ fopMsgM_pane_alpha_class field_0x554;
|
|
/* 0x55C */ STControl* stick;
|
|
/* 0x560 */ dDlst_Ow_main_c* mMain;
|
|
/* 0x564 */ dDlst_Ow_mask_c* mMask;
|
|
#if VERSION == VERSION_PAL
|
|
/* 0x568 */ ResTIMG* shipfontTimg;
|
|
#endif
|
|
/* 0x568 */ J2DPicture::TCornerColor field_0x568;
|
|
/* 0x578 */ J2DPicture::TCornerColor field_0x578;
|
|
/* 0x588 */ J2DPicture::TCornerColor field_0x588;
|
|
/* 0x598 */ f32 field_0x598[50];
|
|
/* 0x660 */ f32 field_0x660[50];
|
|
/* 0x728 */ f32 field_0x728[50];
|
|
/* 0x7F0 */ f32 field_0x7f0[50];
|
|
/* 0x8B8 */ f32 field_0x8b8;
|
|
/* 0x8BC */ u8 field_0x8BC[0x8C0 - 0x8BC];
|
|
/* 0x8C0 */ f32 mPosX;
|
|
/* 0x8C4 */ f32 mPosY;
|
|
/* 0x8C8 */ s16 mTimer;
|
|
/* 0x8CA */ s16 field_0x8ca;
|
|
/* 0x8CC */ s16 mDeg;
|
|
/* 0x8CE */ s16 field_0x8ce;
|
|
/* 0x8D0 */ int field_0x8d0;
|
|
/* 0x8D4 */ u8 field_0x8d4;
|
|
};
|
|
|
|
class dOw_c : public msg_class {
|
|
public:
|
|
bool _open() {
|
|
return dOw_scrn->_open();
|
|
}
|
|
bool _close() {
|
|
return dOw_scrn->_close();
|
|
}
|
|
void _draw() {
|
|
dOw_scrn->_draw();
|
|
}
|
|
void _move() {
|
|
dOw_scrn->_move();
|
|
}
|
|
|
|
JKRExpHeap* getHeap() {
|
|
return heap;
|
|
}
|
|
|
|
u8 getStatus() {
|
|
return status;
|
|
}
|
|
|
|
void setHeap(JKRExpHeap* h) {
|
|
heap = h;
|
|
}
|
|
|
|
void setStatus(u8 i_status) {
|
|
status = i_status;
|
|
}
|
|
|
|
void setTimer(s16 i_timer) {
|
|
dOw_scrn->setTimer(i_timer);
|
|
}
|
|
|
|
void _create();
|
|
void _delete();
|
|
|
|
private:
|
|
/* 0x0FC */ JKRExpHeap* heap;
|
|
/* 0x100 */ dOperate_wind_c* dOw_scrn;
|
|
/* 0x104 */ u8 status;
|
|
};
|
|
|
|
#endif /* D_OPERATE_WIND_H */
|