d_a_ship 95% (#706)

* Initial Progress

Basic functions at 100% matching

100% Matching:
- `daShip_Draw`
- `daShip_Execute`
- `daShip_IsDelete`
- `daShip_Delete`
- `daShip_createHeap`
- `daShip_Create`

* implemented `getJointPos` inlines in `daTornado_c` needed for d_a_ship

* implemented `Center()` inline in `dCamera_c` needed for d_a_ship

* added `setTranslationX` inline to `J3DTexMtx` needed for match in d_a_ship

* parameters set to `const` for certain inlines in `m_Do_mtx.h`

* added `dComIfGp_onMenuCollect` inline

* changed `shipSpecialDemoStart` return type to `BOOL`

* added member functions to `dPa_waveEcallBack`, `dPa_splashEcallBack `, `dPa_trackEcallBack`

also modified member type of `mRotMtx` of `dPa_waveEcallBack`  and `mPos` of `dPa_trackEcallBack`

* added member to `daGrid_c` that is used in d_a_ship

* added `mDoAud_setShipSailState` and `mDoAud_shipCruiseSePlay` inline functions

* added `fopAcM_seenPlayerAngleY` inline

* d_a_ship mostly matching

approx. 90% matching, mostly regalloc issues. , `checkNextMode`, `setRopePos`, `setHeadAnm`, and `execute` need to have their logic fixer

* replace `unknown_inline_TODO ` from `daShip_c` with `checkForceMove`

* .data match

* .rodata matching

* more inline return type changes from `bool` to `BOOL`

Also changed the array size of `mPlayerStatus`

* implemented `force_calc_wind_rel_angle` inline in `daGrid_c`

* fix `d_a_ship_static`

* fixed `getEmitterAxis`, might need review but works for now

* more progress

* reverted change to `getEmitterAxis`, moved casts to function call in `dPa_waveEcallBack::executeAfter`

* more progress

* change return types of certain inlines from `BOOL` to `u32`

`dComIfGp_checkCameraAttentionStatus`, `dComIfGp_checkPlayerStatus0`, `dComIfGp_checkPlayerStatus1` needed for match in d_a_ship

* fixed memory addresses in `daGrid_c`

* more progress

* resolving symbols

* Initial PR changes

* Removed unnecessary cast

* replaced instances of `PSVECSquareMag` with corresponding inline functions

* update memory layout in `d_a_grid` for consistency

* More PR changes

`checkNextMode` and `procZevDemo` now at 100% matching
This commit is contained in:
mattias-blum
2025-03-28 14:17:21 -04:00
committed by GitHub
parent 4a2d7dd320
commit d945c14cac
17 changed files with 4706 additions and 297 deletions
+1 -1
View File
@@ -1815,7 +1815,7 @@ BOOL daPy_lk_c::changeDamageProc() {
mCurProc == daPyProc_SHIP_READY_e ||
(
dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e) &&
ship && ship->unknown_inline_TODO()
ship && ship->checkForceMove()
)
) {
offNoResetFlg0(daPyFlg0_SHIP_DROP);
+1 -1
View File
@@ -15,7 +15,7 @@
#include "d/d_com_inf_game.h"
/* 8013F848-8013F8AC .text shipSpecialDemoStart__9daPy_lk_cFv */
void daPy_lk_c::shipSpecialDemoStart() {
BOOL daPy_lk_c::shipSpecialDemoStart() {
/* Nonmatching */
}
+4398 -167
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -11,14 +11,14 @@ void daShip_c::initStartPos(const cXyz* pos, short rotY) {
old.pos = *pos;
shape_angle.y = rotY;
current.angle.y = shape_angle.y;
m0358 &= ~0x10;
offStateFlg(daSFLG_UNK10_e);
gravity = -2.5f;
mWaveL.remove();
mWaveR.remove();
mSplash.remove();
mTrack.remove();
m1970.end();
mRipple.end();
m1984.end();
m1998.end();
m19AC.end();
+1 -1
View File
@@ -984,7 +984,7 @@ void dPa_waveEcallBack::remove() {
/* 8007E2BC-8007E484 .text executeAfter__17dPa_waveEcallBackFP14JPABaseEmitter */
void dPa_waveEcallBack::executeAfter(JPABaseEmitter* emitter) {
emitter->getEmitterAxis(mRotMtx[0], mRotMtx[1], mRotMtx[2]);
emitter->getEmitterAxis(reinterpret_cast<JGeometry::TVec3<f32>&>(mRotMtx[0]), reinterpret_cast<JGeometry::TVec3<f32>&>(mRotMtx[1]), reinterpret_cast<JGeometry::TVec3<f32>&>(mRotMtx[2]));
if (mState != 0) {
emitter->setDirectionalSpeed(0.0f);