* initial progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* fix outdated member names
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* fixed deprecated member references
* more progress
* more progress
* more progress
* fix deprecated member references
* more progress
* more progress
* more progress
* more progress
* more progress
* check in for review
* remove comment
* initial PR changes
* more PR changes
* more PR changes
* added anonymous struct as class member
* reverted changes to `stage_camera2_data_class`
* added `dCamera_event_data`, `dCamera_monitoring_things` and `dCamera_DMC_system` from debug maps
* more progress
* more progress
* realmatch for `camera_draw`
* PR changes
* fix broken merge
* formatting
* Reverted change to `camSphChkdata` that caused `sph_chk_callback` match to regress
* Reverted change to `BG` struct that caused ctor and dtor match to regress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* PR changes
* corrected size comment
* fixed broken member references
* Add helper functions for d_attention
* Copy and adapt code from TP
* Move for better matching layout
* Clean up includes for d_attention.cpp
* Give dAttention_c::nextAttention a return
* Use enums in dAttention_c::getActionBtnB and slight reformat
* Change return types for comparison code to match
I don't love this
* Implement dAttList_c::calcWeight
* Implement dAttention_c::sortList
* Implement dAttDraw_c::draw
* Implement dAttDraw_c::setAnm
* Implement dAttention_c::chaseAttention
* Implement judgement related functions
* Implement dAttention_c::Run and runDrawProc
* Implement dAttention_c::Draw
Actually finish Draw
* Looks like dAttention_c::stockAttention had an unused return value
* Give d_Attention_c::mLockOnState an enum
* Rename field_0x02c to mDrawAttnPos based on TP
* Add comments for fields of d_attention
* Give d_attention's flags an enum (although without names)
* Undo type change for dAttention_c::{chk,set,clr}Flag
Co-Authored-By: LagoLunatic <LagoLunatic@users.noreply.github.com>
* Do not spell the `this` pointer
Co-Authored-By: LagoLunatic <LagoLunatic@users.noreply.github.com>
* Deal with resource enums and inlines
* Move PLAYER_STATUS_FLAG_MAGIC_JUDGEMENT to daPy__PlayerStatus0 enum
* Use inlines and macros
* Add mDoCPd_L_LOCK_BUTTON inline, debug maps claim it exists
Nothing else uses it
* Update TODO comments
* Debug maps claim runXyCheckCB was used but it only makes sense if modified
* Use dComIfGp_getPlayer instead of directly indexing the array
* Locate a few more inlines
* Do not cast to AttentionFlags enum type
* Update configure script
---------
Co-authored-by: LagoLunatic <LagoLunatic@users.noreply.github.com>
* f_op_msg_mng work
* Fix Some Conflicts
Haven't had much chance to work on actual progress, still looking to do more matching before merge
* Tiny bit of Work
Little bit of cleanup, start on a couple more functions
* More Matches
Also add back some missing nonmatch comments
* Fixes
* JPN ifdefs
* Inline Fix
Also force one match (there's no way that casting is real)
* Reorder Strings
Fix rodata, I think this order is also slightly more accurate to the function (but I'm not really trying to match it right now anyways)
* initial progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* fix outdated member names
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* fixed deprecated member references
* more progress
* more progress
* more progress
* fix deprecated member references
* more progress
* more progress
* more progress
* more progress
* more progress
* check in for review
* remove comment
* initial PR changes
* more PR changes
* more PR changes
* added anonymous struct as class member
* reverted changes to `stage_camera2_data_class`
* added `dCamera_event_data`, `dCamera_monitoring_things` and `dCamera_DMC_system` from debug maps
* more progress
* more progress
* realmatch for `camera_draw`
* PR changes
* fix broken merge
* formatting
* Reverted change to `camSphChkdata` that caused `sph_chk_callback` match to regress
* Reverted change to `BG` struct that caused ctor and dtor match to regress
* 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