* initial progress
* more progress
* added `dComIfGp_clearItemTimeCount` inline
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress, all code matching except for `setSwimMoveAnime`
* resolving symbols, forgot to mention `changeSwimOutProc` is not matching as well
* PR changes made, only `setSwimMoveAnime` nonmatching
* fixed reference to old member name for `mItemTimeMax`
* 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
* d_wood (bushes) 73% matching
* d_wood::Unit_c::set_ground 100% match
Jasper pointed me to the fact that the complicated inv_sqrt function I wrote was indeed just std::sqrtf(), which unlocked the rest of the match
* Replace some bitshifts with multiplies based on PR feedback
* Remove all instances of "this->" from d_wood
* Add missing struct offset comment for mTevStr
* Cleaned up d_tree externs
* Use MTXIdentity instead of PSMTXIdentity
* Remove incorrect TODO rearding cCcD_ObjAtType enum
* Use the mDoAud_seStart inline function
* Remove unnecessary parenthesis
* Fix incorrect branching logic in d_wood::cc_hit_before_cut()
* d_wood data sections fixup
* Re-add "Nonmatching" comments to all nonmatching functions
* Formatting: reformat from 2 to 4 space indentation
This was a local system problem which slipped by me in a previous commit
* 100% match for d_wood::Anm_c::mode_norm()
Thanks Chippy! https://discord.com/channels/727908905392275526/873250400483024976/1298360716964790294
* Use cLib_*Bit() functions for flag checking and setting
Based on the inline functions from the .map
* d_wood: Use AnmID_e according to the .map file
* d_wood: add a couple AnmID_e related inlines from the .map
* d_wood: Name remaining unknowns related to animation
* d_wood: Match cc_hit_before_cut()
* d_wood: Match calc_cc() by using the dComIfGp_roomControl_getStayNo() inline
* d_wood: Match string table and search_anm() by using a constant in assert string
* d_wood: Match mode_to_norm()
Switching normAnim to a const* did most of the work
* d_wood: 100% match for L_attr and the .rodata section
* d_wood: Fill in .data section. Still some extra data from vtables
* d_wood: Match .sbss section
* d_wood: Match .sdata section
* d_wood: 98% match for Packet_c::draw()
The only error is that g_dTree_shadowTexCoord is still using a 32-bit load instead of 16. the only way I know of to fix that is to define the data in this compilation unit. But that can't be right
* d_wood: Various small formatting changes
- No one line function implementations
- Replaced instances of (SomeType*)0x0 (copy/pasted from Ghidra) with NULL
- Replaced a few instances of 0.0 with 0.0f
- Replaced one instance where a number was used instead of an enum value
* d_wood: More formatting fixes
- Removed unused variables from functions
- Removed unnecessary iVar1 loop variables (leftover Ghidra detritus)
- Fixed dtk function comments being wrapped by autoformatter. They now always appear on one line
* d_tree: 100% match of data which is used by d_wood
This moves g_dTree_shadowTexCoord into .sdata which allows d_wood::Packet_c::draw() to load its address with a single instruction. This makes a 100% match for draw()
* d_wood: Removed unnecessary comment now that draw() matches
g_dTree_shadowTexCoord now lives in the d_tree .sdata section, so its instruction can be loaded with a single instruction. This makes a 100% match with draw().
* d_wood: 100% match for mode_cut()
* d_wood: Match mode_push_into()
Also renamed mWindDir to mForceDir as it represents both wind and an actor pushing from a vector
* d_wood: Match mode_push_back
* d_wood: Match __sinit_d_wood_cpp
The l_matDL display list is dynamically patched to reference the l_Txa_swood_bTEX texture at static initialization time. Is there a better way to represent this?
* d_wood: Fix incorrect constant in set_ground()
* d_wood: Simplify dummy data at the top of .data section
* d_wood: Mark as matching in configure.py
Had to move Packet_c destructor to get the functions in the right order. See discussion: https://discord.com/channels/727908905392275526/873250400483024976/1300680009458913280
* d_wood: Add `d/d_cc_d.h` include as some enums have moved
* d_wood: Clean up some types at the top
* Mark d_wood as non-matching for the Japanese version