Merge pull request #546 from SuperDude88/ghostship

d_a_ghostship Mostly Done
This commit is contained in:
Jasper St. Pierre
2023-12-03 19:04:54 -08:00
committed by GitHub
9 changed files with 653 additions and 118 deletions
+57 -9
View File
@@ -2,24 +2,30 @@
#define D_A_GHOSTSHIP_H
#include "f_op/f_op_actor.h"
#include "SSystem/SComponent/c_phase.h"
#include "m_Do/m_Do_hostIO.h"
#include "m_Do/m_Do_ext.h"
#include "d/d_cloth_packet.h"
#include "d/d_bg_s_acch.h"
#include "d/d_lib.h"
class daGhostship_c : public fopAc_ac_c {
public:
bool checkInShip() { return mbInShip; }
bool checkInShip() { return mbCanEnterShip; }
void getAlpha() {}
void setMtx() {}
inline s32 _create();
inline BOOL _delete();
inline BOOL _draw();
inline BOOL _execute();
inline bool _delete();
inline bool _draw();
inline bool _execute();
void _createHeap();
BOOL _createHeap();
void pathMove();
void modeWaitInit();
void modeWait();
void modeRealize();
void _pathMove(cXyz*, cXyz*, cXyz*);
bool _pathMove(cXyz*, cXyz*, cXyz*);
void modePathMoveInit();
void modePathMove();
void modeProcCall();
@@ -27,9 +33,51 @@ public:
void getArg();
public:
/* Place member variables here */
/* 0x290 */ u8 m290[0x708 - 0x290];
/* 0x708 */ bool mbInShip;
/* 0x290 */ u32 mMode;
/* 0x294 */ s32 pathId;
/* 0x298 */ u8 moonPhase;
/* 0x29C */ cXyz mCurPntPos;
/* 0x2A8 */ s8 mPathPntNo;
/* 0x2AC */ dPath* mPath;
/* 0x2B0 */ u32 field_0x2B0;
/* 0x2B4 */ cXyz mNextPntPos;
/* 0x2C0 */ u32 field_0x2C0;
/* 0x2C4 */ u32 field_0x2C4;
/* 0x2C8 */ u32 field_0x2C8;
/* 0x2CC */ request_of_phase_process_class mPhs;
/* 0x2D4 */ request_of_phase_process_class mClothPhs;
/* 0x2DC */ dCloth_packet_c* mpCloth;
/* 0x2E0 */ dCloth_packet_c* mpCloth2;
/* 0x2E4 */ J3DModel* mpModel;
/* 0x2E8 */ mDoExt_btkAnm mBtk;
/* 0x2FC */ f32 mAlpha;
/* 0x300 */ dBgS_ObjAcch mAcch;
/* 0x4C4 */ dBgS_AcchCir mCir;
/* 0x504 */ dLib_wave_c mWave;
/* 0x510 */ bool mbEnteredShip;
/* 0x514 */ dLib_circle_path_c mPaths[0xC];
/* 0x6C4 */ f32 field_0x6C4[0xC];
/* 0x6F4 */ cXyz mPathPos;
/* 0x700 */ u32 field_0x700;
/* 0x704 */ f32 mPathSpeed;
/* 0x708 */ bool mbCanEnterShip;
static const u32 m_heapsize;
static const char m_arc_name[];
static const char m_cloth_arc_name[];
};
class daGhostship_HIO_c : public mDoHIO_entry_c {
public:
daGhostship_HIO_c();
~daGhostship_HIO_c() {}
/* 0x04 */ u8 field_0x04;
/* 0x05 */ bool hideShip;
/* 0x08 */ f32 shipAlpha;
/* 0x0C */ f32 field_0x0C;
/* 0x10 */ f32 shipHideDist;
/* 0x14 */ f32 shipEnterDist;
};
#endif /* D_A_GHOSTSHIP_H */
+20 -11
View File
@@ -6,7 +6,8 @@
class daTag_Gship_c : public fopAc_ac_c {
public:
enum Proc_e {
CLEAR_WAIT = 0,
CLEAR_EVENT
};
void modeProcInit(int) {}
@@ -16,20 +17,28 @@ public:
void modeClearEventInit();
void modeClearEvent();
void modeProc(Proc_e, int);
BOOL _execute();
BOOL _draw();
bool _execute();
bool _draw();
void getArg();
s32 _create();
BOOL _delete();
bool _delete();
public:
/* 0x290 */ int mMode;
/* 0x294 */ s8 m294;
/* 0x295 */ s8 m295;
/* 0x296 */ s8 m296;
/* 0x297 */ s8 m297;
/* 0x298 */ f32 m298;
/* 0x29C */ u8 m29C[0x2A4 - 0x29C];
};
/* 0x294 */ s8 field_0x294;
/* 0x298 */ f32 field_0x298;
/* 0x29C */ u8 field_0x29C[0x2A4 - 0x29C];
}; // Size: 0x2A4
class daTag_Gship_HIO_c {
public:
daTag_Gship_HIO_c();
virtual ~daTag_Gship_HIO_c() {}
/* 0x04 */ s8 field_0x04;
/* 0x05 */ u8 field_0x05;
/* 0x08 */ u32 field_0x08;
/* 0x0C */ u32 field_0x0C;
}; // Size: 0x10
#endif /* D_A_TAG_GHOSTSHIP_H */
+24 -1
View File
@@ -9,12 +9,14 @@
class dKy_tevstr_c;
class dCloth_packet_c : public J3DPacket {
typedef int (*FactorCheck)(dCloth_packet_c*, int, int);
/* 0x10 */ s32 mFlyGridSize;
/* 0x14 */ s32 mHoistGridSize;
/* 0x18 */ f32 mFlyLength;
/* 0x1C */ f32 mHoistLength;
/* 0x20 */ dKy_tevstr_c* mpTevstr;
/* 0x24 */ u32 mpFactorCheckCB;
/* 0x24 */ FactorCheck mpFactorCheckCB;
/* 0x28 */ cXyz* mpPosArr[2];
/* 0x30 */ cXyz* mpNrmArr[2];
/* 0x38 */ cXyz* mpNrmArrBack[2];
@@ -52,6 +54,25 @@ public:
void setScale(cXyz scale) { mScale = scale; }
void setMtx(Mtx mtx);
void setFactorCheckCB(FactorCheck cb) { mpFactorCheckCB = cb; }
void setWindPower(f32 wind, f32 windWave) {
mWindSpeed = wind;
mWindSpeedWave = windWave;
}
void setParam(f32 spring, f32 grav, f32 drag, f32 flyFlex, f32 hoistFlex, s16 wave, s16 param_1, s16 ripple, s16 rotate, f32 wind, f32 windWave) {
mSpring = spring;
mGravity = grav;
mDrag = drag;
mFlyFlex = flyFlex;
mHoistFlex = hoistFlex;
mWaveSpeed = wave;
field_0xF2 = param_1;
mRipple = ripple;
mRotateY = rotate;
setWindPower(wind, windWave);
}
void setGlobalWind(cXyz*);
}; // Size: 0xFC
dCloth_packet_c* dClothVobj03_create(ResTIMG*, ResTIMG*, dKy_tevstr_c*, cXyz**);
@@ -59,4 +80,6 @@ dCloth_packet_c* dClothVobj04_create(ResTIMG*, ResTIMG*, dKy_tevstr_c*, cXyz**);
dCloth_packet_c* dClothVobj05_create(ResTIMG*, ResTIMG*, dKy_tevstr_c*, cXyz**);
dCloth_packet_c* dClothVobj07_0_create(ResTIMG*, ResTIMG*, dKy_tevstr_c*, cXyz**);
dCloth_packet_c* dCloth_packetXlu_create(ResTIMG*, ResTIMG*, int, int, float, float, dKy_tevstr_c*, cXyz**);
#endif /* D_A_CLOTH_PACKET_H */
+2
View File
@@ -1533,6 +1533,8 @@ inline dSv_player_status_c_c* dComIfGs_getpPlayerStatusC(int i_idx) {
u8 dComIfGs_checkGetItemNum(u8 i_itemNo);
stage_scls_info_class* dComIfGd_getMeshSceneList(Vec& vec);
BOOL dComIfGs_checkSeaLandingEvent(s8 i_roomNo);
/**
+3 -1
View File
@@ -386,7 +386,7 @@ enum dKy_dice_wether_state {
int dKy_getdaytime_hour();
int dKy_getdaytime_minute();
int dKy_get_dayofweek();
u32 dKy_moon_type_chk();
s32 dKy_moon_type_chk();
BOOL dKy_checkEventNightStop();
void dKy_set_nexttime(f32);
void dKy_instant_timechg(f32);
@@ -416,6 +416,8 @@ void dKy_Sound_init();
void dKy_change_colset(u8 param_0, u8 param_1, f32 param_2);
void dKy_change_colpat(u8 param_0);
void dKy_custom_colset(u8 param_0, u8 param_1, f32 i_blend);
void dKy_pship_existense_set();
void dKy_pship_existense_cut();
u8 dKy_pship_existense_chk();
void dKy_Itemgetcol_chg_off();
void dKy_Itemgetcol_chg_move();