mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-08 13:46:21 -04:00
d_a_oship matching (#929)
* Initial work, 30% matching in .text * 42% matching in .text * 51% matching in .text * 72% matching in .text * 75% matching in .text * 93% matching in .text * d_a_oship 100% for both demo and retail
This commit is contained in:
+1
-1
@@ -1761,7 +1761,7 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_obj_vyasi"),
|
||||
ActorRel(Matching, "d_a_obj_xfuta"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_zouK"),
|
||||
ActorRel(NonMatching, "d_a_oship"),
|
||||
ActorRel(Matching, "d_a_oship"),
|
||||
ActorRel(NonMatching, "d_a_ph"),
|
||||
ActorRel(NonMatching, "d_a_pt"),
|
||||
ActorRel(NonMatching, "d_a_pw"),
|
||||
|
||||
+84
-27
@@ -1,6 +1,7 @@
|
||||
#ifndef D_A_OSHIP_H
|
||||
#define D_A_OSHIP_H
|
||||
|
||||
#include "d/d_s_play.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_bg_s_lin_chk.h"
|
||||
@@ -9,29 +10,47 @@
|
||||
#include "SSystem/SComponent/c_phase.h"
|
||||
#include "d/d_path.h"
|
||||
#include "d/d_lib.h"
|
||||
#include "m_Do/m_Do_hostIO.h"
|
||||
|
||||
class daOship_c : public fopAc_ac_c {
|
||||
public:
|
||||
enum Proc_e {
|
||||
|
||||
PROC_INIT = 0,
|
||||
PROC_EXEC = 1
|
||||
};
|
||||
#if VERSION == VERSION_DEMO
|
||||
u8 getSw() { return m295; }
|
||||
#else
|
||||
|
||||
enum Mode_e {
|
||||
MODE_WAIT = 0x0,
|
||||
MODE_ATTACK = 0x1,
|
||||
MODE_DAMAGE = 0x2,
|
||||
MODE_DELETE = 0x3,
|
||||
MODE_RANGE_A = 0x4,
|
||||
MODE_RANGE_B = 0x5,
|
||||
MODE_RANGE_C = 0x6,
|
||||
MODE_RANGE_D = 0x7,
|
||||
MODE_NULL
|
||||
};
|
||||
|
||||
struct ModeEntry {
|
||||
typedef void (daOship_c::*ModeProcFunc)(void);
|
||||
ModeProcFunc mInitFunc;
|
||||
ModeProcFunc mUpdFunc;
|
||||
char* mModeName;
|
||||
};
|
||||
|
||||
u8 getSw() { return mSwitchA; }
|
||||
#endif
|
||||
void isSpecial() {}
|
||||
void modeProcInit(int) {}
|
||||
bool isSpecial() { return mModelType != 0xFF || REG12_S(0) != 0; }
|
||||
void modeProcInit(int i_newMode) { modeProc(PROC_INIT, i_newMode); }
|
||||
|
||||
void _nodeControl(J3DNode*, J3DModel*);
|
||||
void _pathMove(cXyz*, cXyz*, cXyz*);
|
||||
BOOL _pathMove(cXyz*, cXyz*, cXyz*);
|
||||
void pathMove();
|
||||
void plFireRepeat();
|
||||
void lineCheck(cXyz*, cXyz*);
|
||||
bool plFireRepeat();
|
||||
bool lineCheck(cXyz*, cXyz*);
|
||||
void changeModeByRange();
|
||||
void createWave();
|
||||
void setWave();
|
||||
void checkTgHit();
|
||||
bool checkTgHit();
|
||||
void setAttention();
|
||||
void setCollision();
|
||||
void attackCannon(int);
|
||||
@@ -56,17 +75,19 @@ public:
|
||||
bool _execute();
|
||||
bool _draw();
|
||||
void createInit();
|
||||
void _createHeap();
|
||||
BOOL _createHeap();
|
||||
void getArg();
|
||||
cPhs_State _create();
|
||||
bool _delete();
|
||||
|
||||
static const dCcD_SrcCyl m_cyl_src;
|
||||
static const char m_arc_name[];
|
||||
static const s32 m_heapsize;
|
||||
|
||||
public:
|
||||
/* 0x290 */ u8 m290[0x295 - 0x290];
|
||||
/* 0x295 */ u8 m295;
|
||||
/* 0x296 */ u8 m296[0x2AC - 0x296];
|
||||
#if VERSION > VERSION_DEMO
|
||||
/* 0x296 */ u8 m296[0x2AC - 0x290];
|
||||
#endif
|
||||
/* 0x2AC */ int mCurrentProc;
|
||||
/* 0x2B0 */ u8 mSubMode;
|
||||
/* 0x2B1 */ u8 mSwitchA;
|
||||
@@ -79,7 +100,7 @@ public:
|
||||
/* 0x2B8 */ cXyz mOrigPos;
|
||||
/* 0x2C4 */ u8 m2C4[0x2C8 - 0x2C4];
|
||||
/* 0x2C8 */ cXyz mPathP0;
|
||||
/* 0x2D4 */ u8 m2D4;
|
||||
/* 0x2D4 */ s8 m2D4;
|
||||
/* 0x2D5 */ u8 m2D5[0x2D8 - 0x2D5];
|
||||
/* 0x2D8 */ dPath* mpPath;
|
||||
/* 0x2DC */ u8 m2DC[0x2E0 - 0x2DC];
|
||||
@@ -102,7 +123,7 @@ public:
|
||||
/* 0x4B0 */ J3DModel* mpModel;
|
||||
/* 0x4B4 */ dCcD_Stts mStts;
|
||||
/* 0x4F0 */ dCcD_Cyl mCyl[5];
|
||||
/* 0xAE0 */ dBgS_Acch mAcch;
|
||||
/* 0xAE0 */ dBgS_ObjAcch mAcch;
|
||||
/* 0xCA4 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0xCE4 */ dLib_wave_c mWave;
|
||||
/* 0xCF0 */ cXyz mTargetPos;
|
||||
@@ -111,8 +132,7 @@ public:
|
||||
/* 0xD14 */ cXyz mFlagOffset;
|
||||
/* 0xD20 */ Mtx mFlagMtx;
|
||||
/* 0xD50 */ fpc_ProcID mFlagPcId;
|
||||
/* 0xD54 */ fpc_ProcID mBombPcId[1];
|
||||
/* 0xD58 */ u8 mD58[0xD68 - 0xD58];
|
||||
/* 0xD54 */ fpc_ProcID mBombPcId[5];
|
||||
/* 0xD68 */ f32 mVelocityFwdTarget;
|
||||
/* 0xD6C */ int mAimCounter;
|
||||
/* 0xD70 */ int mHitTimer;
|
||||
@@ -125,17 +145,54 @@ public:
|
||||
/* 0xD86 */ s16 mAimRotYTarget;
|
||||
/* 0xD88 */ s16 mAimRotX;
|
||||
/* 0xD8A */ s16 mAimRotXTarget;
|
||||
/* 0xD8C */ u8 mBombAlloc[1];
|
||||
/* 0xD8D */ u8 mD8D[0xD94 - 0xD8D];
|
||||
/* 0xD94 */ dBgS_LinChk mLinChk;
|
||||
};
|
||||
/* 0xD8C */ bool mBombAlloc[5];
|
||||
/* 0xD91 */ u8 mD91[0xD94 - 0xD91];
|
||||
/* 0xD94 */ dBgS_ObjLinChk mLinChk;
|
||||
}; // Size: 0xE00
|
||||
|
||||
class daOship_HIO_c {
|
||||
class daOship_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
daOship_HIO_c();
|
||||
|
||||
virtual ~daOship_HIO_c() {}
|
||||
public:
|
||||
/* Place member variables here */
|
||||
};
|
||||
/* 0x04 */ u8 m04;
|
||||
/* 0x05 */ bool m05;
|
||||
/* 0x06 */ bool m06;
|
||||
/* 0x07 */ bool m07;
|
||||
/* 0x08 */ bool m08;
|
||||
/* 0x09 */ u8 m09[0x0C - 0x09];
|
||||
/* 0x0C */ f32 mAttentionOffsY;
|
||||
/* 0x10 */ f32 mEyeOffsY;
|
||||
/* 0x14 */ f32 mWaveOffsZ;
|
||||
/* 0x18 */ f32 mTrackOffsZ;
|
||||
/* 0x1C */ cXyz mBombOffset;
|
||||
/* 0x28 */ f32 mDistRangeA;
|
||||
/* 0x2C */ f32 mDistRangeB;
|
||||
/* 0x30 */ f32 mDistRangeC;
|
||||
/* 0x34 */ s16 mAttackDelayA;
|
||||
/* 0x36 */ s16 mAttackDelayB;
|
||||
/* 0x38 */ f32 mPathSpeed;
|
||||
/* 0x3C */ f32 mSpecScale;
|
||||
/* 0x40 */ f32 mTrackOffsY;
|
||||
/* 0x44 */ f32 mTrackScaleY;
|
||||
/* 0x48 */ f32 mSplashScaleTimerTarget;
|
||||
/* 0x4C */ f32 mSplashMaxScaleTimer;
|
||||
/* 0x50 */ f32 mWaveVelFade1;
|
||||
/* 0x54 */ f32 mTrackVel;
|
||||
/* 0x58 */ f32 mWaveVelSpeed;
|
||||
/* 0x5C */ f32 mWaveVelFadeOffs;
|
||||
/* 0x60 */ f32 mWaveMaxVelocity;
|
||||
/* 0x64 */ cXyz mWaveCollapsePos0;
|
||||
/* 0x70 */ cXyz mWaveCollapsePos1;
|
||||
/* 0x7C */ f32 mBombSpeed;
|
||||
/* 0x80 */ f32 mBombAcceleration;
|
||||
/* 0x84 */ s16 mBombNoGravityTime;
|
||||
/* 0x86 */ u8 m86[0x88 - 0x86];
|
||||
/* 0x88 */ f32 mBadAimAdjustDistanceStart;
|
||||
/* 0x8C */ s16 mBadAimMax;
|
||||
/* 0x8E */ s16 field_0x8E;
|
||||
/* 0x90 */ s16 field_0x90;
|
||||
/* 0x92 */ s16 mNode2RotZ;
|
||||
}; // Size: 0x94
|
||||
|
||||
#endif /* D_A_OSHIP_H */
|
||||
|
||||
+875
-54
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user