* should be fixed
* matching ?
* matching now
* matching for GZLE01 and GZLP01
* fixed dDemo_setDemoData probably
* matching except setfrontwalltype for demo
* small progress push
* bit of progress
* most funcs done
* mostly matching
* debug drawr matching
* cleanup and matching
* bit of cleanup, matching for GZLE01 and GZLP01
* accidentally changed the wrong actor in configure.py
* even more cleanup
* removed changed configure.py
* fully matching
* version select jut assert
* bit too difficult for me for now, might go back later
* progress
* getmsg
* logic matching data isnt
* data section matches
* mathubcg 100%
* cleanup
* revert this change
* final cleanup and configure.py
* nevermind cleanup
* Equivalent onstead of matching
* removed padding
* cleanup code comments and a bit more
* matching
* cleanup
* matching for retail
* matching
* documentation
* changed field name
* matching for GZLE01, GZLP01
* GZLJ01 and D44J01
* verion select for jutassert
* tiny bit of cleanup and moving enums to header
* feedback from pr
* itemNo renamed to enum
* Added constructor implementation for `daBoomerang_c`.
* Extend `daBoomerang_sightPacket_c` with `dDlst_base_c` base class.
* Refactor `d_a_boomerang.h`: reorganize class definitions and update member layout in `daBoomerang_c`.
* Extend `daBoomerang_c`: add new arrays, members, and static assertions for structure validation.
* Extend `daBoomerang_c`: add `dBgS_BoomerangLinChk` member and update padding fields.
* Extend `daBoomerang_c`: implement `create` method, add new members, and update function signatures.
* Refactor `daBoomerang_c`: update `createHeap` function to return `BOOL` and adjust related calls.
* Extend `daBoomerang_c`: implement `execute` method logic, update member variables, and adjust structure layout in `d_a_boomerang.h`.
* Extend `daBoomerang_c`: add static blur vector definitions for `l_blur_top` and `l_blur_root`.
* Add fields to `daBoomerang_blur_c`.
* Refactor `daBoomerang_blur_c`: implement `initBlur` logic, add `pos` field, update structure layout in `d_a_boomerang.h`.
* Refactor `daBoomerang_blur_c`: update `initBlur` and `copyBlur` logic, modify array structure to use 2D layout, and adjust declarations in `d_a_boomerang.h`.
* Match `copyBlur`
* Update `config.yml`: add symbol `l_matDL` for `daBoomerang_blur_c`.
* Extend `daBoomerang_blur_c`: implement `draw` method, add vertex description, attribute format lists, and texture handling logic.
* Add fields to `daBoomerang_sightPacket_c`
* Update `play` method in `daBoomerang_sightPacket_c`: implement looping logic for modifying `field_0xF4` values.
* Refactor `setSight` and `play` in `daBoomerang_sightPacket_c`: implement animation logic, replace `field_0xF4` with `arr_0xF4`, add `arr_0xF9`, and update structure in `d_a_boomerang.h`.
* Refactor `daBoomerang_sightPacket_c`: add `setTex` and `setImage` methods; update image data logic in `d_a_boomerang.cpp` and `d_a_boomerang.h`.
* Update `initFrame` and `resetSightOn` in `daBoomerang_sightPacket_c`: initialize `arr_0xF4` and reset `targetFlags`.
* Replace hardcoded array size with `BOOM_TARGET_MAX` in `d_a_boomerang.cpp` and `d_a_boomerang.h`
* Refactor `daBoomerang_sightPacket_c`: rename variables for clarity, update structure fields, and adjust logic in `setSight`, `play`, and related methods.
* Implement `draw` method in `daBoomerang_sightPacket_c`: add vertex descriptor/attribute format lists, texture handling, and sight rendering logic.
* Adjust vertex attribute formats in `d_a_boomerang.cpp`: update position to `GX_S8` and texture to `GX_U8`.
* Reorder includes in `d_a_boomerang.cpp` to resolve dependencies for `l_sightMatDL` and `l_sightDL__d_a_boomerang`
* Update `getFlyMax` in `daBoomerang_c`: add player status and stage name checks to determine maximum flight distance.
* Refactor `procMove` and `execute` in `daBoomerang_c`: improve boomerang targeting logic, rename variables for clarity, update array structures, and adjust control flow.
* Implement enhanced boomerang movement logic in `daBoomerang_c`: calculate angles, update position/rotation, handle water effects, and refine collision detection. Adjust structure fields in `d_a_boomerang.h`.
* Refactor `daBoomerang_c` control flow: reorder player retrieval logic, adjust distance-based normalization, and refine boomerang return handling.
* Change return type of `returnBoomerang` from `int` to `BOOL` in `d_a_player_main.h` and `d_a_player_boomerang.inc`.
* Change `setItemWaterEffect` return type from `u32` to `BOOL` and refactor its parameters and logic for clarity and behavior adjustment.
* Adjust `setItemWaterEffect` call in `d_a_boomerang.cpp` to use explicit `BOOL` comparison for clarity.
* Refactor `daBoomerang_c` control flow and targeting logic: introduce `mTargetRayEnd`, enhance position/angle calculations, integrate player sight checks, and update camera handling. Adjust includes and structure definitions for consistency.
* Match `rockLineCallback`
* Rename `param_1` to `pHitActor` in `rockLineCallback` for clarity.
* Match `setAimActor` in `d_a_boomerang.cpp`.
* Refactor `daBoomerang_c`: update `setLockActor` to use `BOOL` type, modify related logic for clarity, and ensure consistent parameter usage across `d_a_boomerang.cpp`.
* Match `resetLockActor` in `d_a_boomerang.cpp`: initialize target arrays and reset counters for consistency.
* Refactor `daBoomerang_c`: Fix struct offsets, update instance size
* Match `setRoomInfo` in `d_a_boomerang.cpp`: update position handling, ground checks, room ID assignment, and environment override logic.
* Match `create` in `d_a_boomerang.cpp`: update matrix handling, target ID initialization, callback setup, and clean up unused code.
* Match `setKeepMatrix` in `d_a_boomerang.cpp`: update transformation logic to align boomerang with Link's hand.
* Refactor `d_a_player_main` boomerang logic: rename `m36F4` to `mBoomerangCatchPos`, implement `getBoomerangCatchPos` accessor
* Match `setAimPos` in `d_a_boomerang.cpp`: implement target position logic based on current target index and player catch position.
* Match `checkBgHit` in `d_a_boomerang.cpp`: implement background collision logic, position updates, sound effects, and behavior adjustments.
* Continue matching `procWait` in `d_a_boomerang.cpp`
* Refactor `d_a_boomerang.cpp`: rename `field_0xF3A` to `mModelRotY` for clarity, update all associated references, and adjust struct definition in the header file.
* Continue matching `procWait` in `d_a_boomerang.cpp`
* Match `procWait` in `d_a_boomerang.cpp`
* Continue matching `procMove` in `d_a_boomerang.cpp`
* Refactor `d_a_boomerang.cpp`: convert `u8` fields to `bool` for clarity and better type usage, update header and references accordingly.
* Match `draw` in `d_a_boomerang.cpp`: implement drawing logic with model updates, light settings, shadow handling, and target sight management. Update struct definition to include `mGroundY`.
* Refactor `procMove` in `d_a_boomerang.cpp`: simplify angle calculations, update `mInWater` to `u8`, and improve readability by reducing nested logic.
* Fix `at_offset` initialization in `procMove` in `d_a_boomerang.cpp`
* Match `procMove` in `d_a_boomerang.cpp`
* Refine `draw` in `d_a_boomerang.cpp`: inline comments for quads setup, add light yellow trail color definition.
* Refactor `d_a_boomerang.cpp` and header: rename `field_0x14` to `numTrailSegments` for improved clarity and update all related references.
* Refactor `draw` in `d_a_boomerang.cpp`: reorganize quads initialization and alpha blending loops for improved structure and readability.
* Refactor `draw` in `d_a_boomerang.cpp`: combine alpha variable declarations for improved local scope and clarity.
* Refactor `draw` in `d_a_boomerang.cpp`: introduce `QUAD_VERT` macro to streamline quad vertex setup and improve code readability.
* Refactor `draw` in `d_a_boomerang.cpp`: rename `alpha` variables to `uCoord` for improved clarity and consistency with their purpose.
* Refactor `d_a_boomerang.cpp` and header: introduce `SEGMENTS_PER_STEP` constant for improved clarity and consistency, update related loops and data structures.
* Refactor `d_a_boomerang.cpp` and header: rename trail arrays for improved clarity and consistency, update all related references.
* Refactor `d_a_boomerang.cpp` and header: simplify trail vertex array indexing by flattening multidimensional arrays and updating all related code.
* Refactor `d_a_boomerang.cpp`: mark `se_flg` array as `const` for improved immutability and clarity.
* Refactor `d_a_boomerang.cpp`: relocate `l_at_cps_src` definition for improved organization and consistency.
* Refactor `d_a_boomerang.cpp` and header: rename and clarify multiple variables (e.g., `field_0xF2C` to `mIsReturning`) for improved readability and consistency, update all related references and logic.
* Refactor `d_a_boomerang.h`: add destructors to `daBoomerang_blur_c` and `daBoomerang_sightPacket_c` for proper ordering.
* Refactor `daBoomerang_blur_c::draw` in `d_a_boomerang.cpp`: reorder variable initialization, streamline loops, and adjust `QUAD_VERT` macro usage for improved clarity and consistency.
* Add inline geometry utility functions to `GFGeometry.h`
* Refactor `d_a_boomerang.cpp`: simplify geometry rendering by updating `QUAD_VERT` macro implementation and replacing manual vertex management with `GFBegin`/`GFEnd`.
* Refactor `d_a_boomerang.cpp`: simplify trail rendering by streamlining `uCoord` handling, reducing redundant variables, and improving clarity in loops.
* Refactor `d_a_boomerang.cpp`: rename `QUAD_VERT` to `QUAD_VTX` for clarity and update all related references.
* Add `l_matDL$4438` entry to config files for `daBoomerang_blur_c` rendering assets.
* Add version check around `j3dSys.reinitGX()` in `d_a_boomerang.cpp` to limit execution to non-demo builds.
* Refactor `d_a_boomerang.cpp`: replace direct `current.roomNo` usage with `roomNo` variable for improved clarity and consistency.
* Add version-specific asserts in `d_a_boomerang.cpp` for demo and non-demo builds
* Add version-specific asserts and adjust version check logic in `d_a_boomerang.cpp` for Japanese build
* Align `GXVtxDescList` and `GXVtxAttrFmtList` declarations with `ALIGN_DECL(32)` in `d_a_boomerang.cpp` for consistent memory alignment.
* Update `d_a_boomerang` to use `MatchingFor` in configuration
* Remove outdated `FIXME` comment in `d_a_boomerang.cpp`.
* Refactor `d_a_boomerang.cpp`: replace hardcoded rotation constants with `yRotPerStep` variable for clarity and maintainability.
* Update `d_a_boomerang.cpp` configuration to use `Matching` instead of `MatchingFor`.
* Refactor `d_a_boomerang.cpp`: rename `field_0xF2E` to `mJustHit` and `field_0xF2D` to `unused_0xF2D` for improved clarity.
* Replace hardcoded value in `d_a_boomerang.cpp` with `daBoomerang_blur_c::SEGMENTS_PER_STEP` for improved readability and maintainability.
* Refactor `d_a_boomerang.cpp`: replace `fpcM_GetParam` with `fopAcM_GetParam` for consistency with actor parameter retrieval methods.
* Introduce `Mode` enum in `d_a_boomerang` and replace related hardcoded values for improved readability and maintainability.
* Refactor `setAimActor` in `d_a_boomerang.cpp`: rename parameter for improved clarity.
* Replace `fpcM_SetParam` with `fopAcM_SetParam` in `d_a_boomerang.cpp` for consistency with actor parameter setting methods.
* Replace hardcoded `0` with `dEvtMode_NONE_e` in `d_a_boomerang.cpp` for improved readability and maintainability.
* Replace `BOOM_TARGET_MAX` with `BOOMERANG_LOCK_MAX` in `d_a_boomerang` for consistency.
* Refactor `d_a_boomerang.cpp` and `d_a_boomerang.h`: rename target-related variables and methods to lock-related for improved clarity and consistency.
* Refactor `daBoomerang_Draw` and `daBoomerang_Execute` in `d_a_boomerang.cpp` to simplify and remove redundant casts.
* Replace `Mode_0` and `Mode_1` with `Mode_Wait` and `Mode_Throw` in `d_a_boomerang`
* Simplify boolean assignment in boomerang lock condition in `d_a_boomerang.cpp`.
* Rename variable `b` to `isAiming` in `d_a_boomerang.cpp` for improved readability.
* Refactor draw methods in `d_a_boomerang.cpp` to streamline list-setting logic.
* Refactor particle effect in `d_a_boomerang.cpp` to use `dComIfGp_particle_setP1` for improved clarity and maintainability.
* Replace `g_dComIfG_gameInfo` camera getter with `dComIfGp` equivalents in `d_a_boomerang.cpp` for consistency.
* Simplify version-specific `JUT_ASSERT` calls in `d_a_boomerang.cpp` with `VERSION_SELECT` for improved maintainability.
* Replace direct model matrix assignment with `fopAcM_SetMtx` in `d_a_boomerang.cpp` for consistency.
* Update matching logic for `d_a_boomerang.cpp` to use `MatchingFor`.
* Initial work
* 14% matching in .text
- Add some of the static data
- Match sinit function
- Match HIO constructor
- Match _create
- Match some other trivial functions
* Match CreateHeap
* 20% matching in .text
* 31% matching in .text
* 34% matching in .text
* 38% matching in .text
* 51% matching in .text
* createShopList work
* More createShopList work
* 54% matching in .text: Match createShopList
* 57% matching in .text
* 68% matching in .text
* Variable name updates
* 75% matching in .text
* 81% matching in .text
* Match lookBack
* d_a_npc_rsh1 100% for demo and retail
* Replace magic constants with applicable enums
* Give some member fields trivial names and name some method parameters
* Fix a few renaming errors
* More renaming work
* Rename HIO fields and rest of actor fields
* Replace magic numbers associated with mItemNo
* Match daNpc_Ls1_c::create, decideType, and ctor
* 16% matching in .text
-Match daNpc_Ls1_c::CreateHeap
-Match daNpc_Ls1_c::itemCreateHeap
-Match daNpc_Ls1_c::handCreateHeap
-Match daNpc_Ls1_c::_delete
-Match other trivial functions
* Add hio_prm_c
* 27% matching in .text
-Add some static data
-Match daNpc_Ls1_c::endEvent
-Match daNpc_Ls1_c::isEventEntry
-Match daNpc_Ls1_c::execute
-Match daNpc_Ls1_c::bodyCreateHeap
-Match some more trivial funcs
* 33% matching in .text
-Match daNpc_Ls1_c::create_init
-Match daNpc_Ls1_c::chngAnmTag
-Match daNpc_Ls1_c::ctrlAnmTag
-Match init_LS1_#n() funcs
-Match searchActor funcs
* Add daNpc_Ls1_c::anm_prm_c struct and associated static data
* 39% matching in .text
- Matched daNpc_Ls1_matAnm_c::calc
- Matched static node callbacks
- Matched daNpc_Ls1_c::setAnm_anm
- Matched daNpc_Ls1_c::setAnm_NUM
- Matched daNpc_Ls1_c::chngAnmAtr
- Misc code formatting changes
* 52% matching in .text
- Match daNpc_Ls1_c::play_animation
- Match daNpc_Ls1_c::set_mtx
- Match ResID funcs
- Match daNpc_Ls1_c::setBtp
- Match daNpc_Ls1_c::setMat
- Match daNpc_Ls1_c::setBtk
- Match daNpc_Ls1_c::init_texPttrnAnm
- Match daNpc_Ls1_c::play_btp_anm
- Match daNpc_Ls1_c::play_btk_anm
- Match daNpc_Ls1_c::ctrlAnmAtr
- Match daNpc_Ls1_c::setAnm_ATR
- Match daNpc_Ls1_c::chk_parts_notMov
- Match daNpc_Ls1_c::cut_init_LOK_PLYER
- Match daNpc_Ls1_c::cut_move_WAI
- Match daNpc_Ls1_c::cut_init_ANM_CHG
- Match daNpc_Ls1_c::set_action
* Update comments
* Match daNpc_Ls1_c::_draw
* 63% matching in .text
- Match member J3D node callbacks
- Match daNpc_Ls1_c::eye_ctrl
- Match daNpc_Ls1_c::next_msgStatus
- Match daNpc_Ls1_c::getMsg
- Match daNpc_Ls1_c::chk_talk
- Match daNpc_Ls1_c::setEyeCtrl
- Match daNpc_Ls1_c::clrEyeCtrl
- Match daNpc_Ls1_c::setAttention
- Add misc enums
- Add a_cut_tbl
* 66% matching in .text
- Matched daNpc_Ls1_c::searchByID
- Matched daNpc_Ls1_c::partner_search_sub
- Matched daNpc_Ls1_c::partner_search
- Matched daNpc_Ls1_c::chkAttention
- Marched daNpc_Ls1_c::shadowDraw
* 75% matching in .text
- Match daNpc_Ls1_c::anmAtr
- Match daNpc_Ls1_c::getMsg_LS1_0
- Match daNpc_Ls1_c::chk_talk
- Match daNpc_Ls1_c::setStt
- Match daNpc_Ls1_c::get_playerEvnPos
- Match daNpc_Ls1_c::chkTelescope
- Match daNpc_Ls1_c::wait_1
- Match daNpc_Ls1_c::wait_4
- Match daNpc_Ls1_c::talk_1
- Match daNpc_Ls1_c::demo_action1
* Match daNpc_Ls1_c::wait_3
* 100% matching for both demo and retail
* Update comments
* Initial refactoring work
* Renaming work & declaring functions in f_op_msg_mng header
* Refactoring continued
* Last bit of renaming work
* Add missing include
* 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
* 13% matching in .text
* 32% matching in .text
* d_a_obj_buoyrace 98%
* d_a_obj_buoyrace demo 98%
* link d_a_obj_buoyrace
* Small refactor
* More refactoring
* Small renaming work
* Fix errors
* Variable name cleanup
* initial work on d_a_goal_flag
* Update config.yml to extract symbols from d_a_goal_flag; also add l_pos and l_texCoord
* 17% matching in .text
* daGoal_Flag_c::CreateHeap matched
* RopeMove 99%
* Update d_a_goal_flag.cpp
* getRacePath 100%
* 31% in .text
* 47% matching in .text
* 56% matching in .text
* 70% matching in .text
Add definitions to inlines in daGFlag_packet_c and fully matched some daGFlag_packet_c methods.
* 84% matching in .text
Match daGFlag_packet_c::draw
* 91% matching in .text
- Formatting tweaks
- Match TimerExecute
- Add fopMsgM_MiniGameTerminater_create inline
- Move daGoal_Flag_c::_create in the correct place to match .data
* d_a_goal_flag matching 100% for retail
* d_a_goal_flag demo 99%
* Resolve _create fakematch
* d_a_goal_flag demo matching 100%
* link d_a_goal_flag for demo
* Renaming of fields/variables and some refactoring
* Refactoring continued
- Change direct calls to VECDotProduct to cXyz::getDotProduct
* Named more HIO fields and packet fields
* Implement fopMsgM_MiniGameStarter_create
* Name all used HIO fields
* Named all fields in daGoal_Flag_c
* Finishing touches
* initial work on d_a_obj_ajav
* matched Act_c::_create and Part_c::init_data
* initialized cXyz arrays
* 44% matching in .text
* more work on d_a_obj_ajav
* 73% matching in .text
* 83% matching in .text
* 99% of .text matching
* 100% .data matching
* fakematch _execute and link d_a_obj_ajav
* demo matching
* initial code cleanup
* named all fields in Act_c and some Part_c fields
* more documentation
* make a fakematch slightly less fake
* fix _execute for demo
* named more fields in Part_c
* named most fields and parameters
* finishing touches
* update d_a_obj_ajav .cpp and .h
* Commit review suggestions
* initial work on daWarpgn_c
* 76% of .text matching
* d_a_warpgn matching for retail
* fixed initWarpArrive for GZLJ01
* d_a_warpgn matching for both demo and retail; reformat field names
* Update configure.py
* Update d_a_warpgn.cpp
* unlink from demo and commit suggestions from review
* bit too difficult for me for now, might go back later
* progress
* getmsg
* logic matching data isnt
* data section matches
* mathubcg 100%
* cleanup
* revert this change
* final cleanup and configure.py
* nevermind cleanup
* Equivalent onstead of matching
* removed padding
* cleanup code comments and a bit more
* matching
* cleanup
* matching for retail
* little bit of cleanup
* d_a_obj_gnnbtltaki OK
* d_a_obj_gnnbtltaki Cleanup
* set d_a_obj_gnnbtltaki as matching.
* d_a_obj_gnnbtltaki OK for GZLJ01, GZLE01, GZLP01
* Update d_a_obj_gnnbtltaki.cpp
* d_a_obj_gnnbtltaki Retail and Demo OK