Commit Graph

778 Commits

Author SHA1 Message Date
Zeclos 814c70590c d_a_npc_jb1 matching (#991) 2026-05-10 16:00:47 -04:00
maimai0254 797be404b3 d_a_bdk demo OK (#985)
* demo OK

* Fix issues from code review
2026-05-09 19:18:03 -04:00
LagoLunatic fe76ad5a3b Demo work (#984) 2026-05-09 18:42:01 -04:00
LagoLunatic 0e98a9b636 d_a_bmdhand OK, misc matches 2026-05-08 23:07:57 -04:00
LagoLunatic a3dd6ac9e1 Cleanup 2026-05-08 21:51:18 -04:00
Maide f7cb58cbed d_a_tag_mk (#983) 2026-05-08 18:39:42 -04:00
LagoLunatic 897f043575 Document some more enum value names 2026-05-08 18:12:26 -04:00
123456789758 e0d06d07c5 Bosses: Demo matches + more cleanup (#972)
Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
2026-05-07 22:58:39 -04:00
LagoLunatic 0bff98c469 Merge pull request #980 from LagoLunatic/daobj
d_a_obj OK
2026-05-07 22:42:07 -04:00
LagoLunatic 333ea2f775 Cleanup 2026-05-07 16:54:44 -04:00
LagoLunatic e1f5b7e23b Rename fopAcM_SetupActor to fopAcM_ct 2026-05-07 15:59:23 -04:00
Maide ea80482679 d_a_hmlif (#877) 2026-05-07 15:34:28 -04:00
Maide 47c08e9f8a d_a_obj_bemos (#975)
* d_a_obj_bemos

* Improve d_particle for demo
2026-05-07 12:42:48 -04:00
LagoLunatic bcbbb282c1 swlight inline fixes 2026-05-07 12:33:26 -04:00
Maide c9ed4854de d_a_obj_swlight (#976) 2026-05-07 12:13:01 -04:00
LagoLunatic 7838465e48 d_a_tsubo OK, cleanup 2026-05-06 17:36:22 -04:00
Zeclos 800f53fc2a D_a_npc_hr matching (#973)
* progress push

* matching

* documentation and cleanup

* feedback from pr review
2026-05-06 13:33:33 -04:00
LagoLunatic def3445cc6 Fix particle_set inlines (#971) 2026-05-04 13:50:55 -04:00
123456789758 b46f2904d1 d_a_player - Add cut type enum (#966)
Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
2026-05-01 01:12:52 -04:00
LagoLunatic fdbac96f9a Demo work 2026-04-27 19:05:33 -04:00
Lord-McSweeney 24990ae11a d_a_npc_mk_static matching (#922)
* d_a_npc_mk_static matching

* Resolve review notes on d_a_npc_mk_static
2026-04-24 21:23:48 -04:00
Jason T 9901be8103 d_a_obj_gnndemotakis (#953)
* init

* configure and dComIfGp_event_runCheck usage

* reverted configure

* revert back to previous usage for _execute

* matched _execute

* match

---------

Co-authored-by: jaysc <9077125+jaysc@users.noreply.github.com>
2026-04-17 13:00:11 -04:00
LagoLunatic 51bb7d8130 d_a_obj_coming OK, d_a_coming2 OK
The barrel2 make_prm params were swapped around, making it seem impossible to match.
2026-04-17 12:55:19 -04:00
LagoLunatic 55a6be8b87 Misc demo matches (#952) 2026-04-14 20:33:05 -04:00
LagoLunatic d29477ca93 d_a_obj_gtaki matching only for demo, slightly closer on retail 2026-04-13 16:47:04 -04:00
Teotia444 217c89b76b d_a_obj_gtaki (#950)
* d_a_obj_gtaki - 99% matching

* d_a_obj_gtaki - 99% matching

* d_a_obj_gtaki - small mistakes
2026-04-13 16:41:59 -04:00
ThePlayerRolo 47edd9aec4 d_a_obj_msdan progress (#951)
* d_a_obj_msdan

* fixed extra 0x

* formatting
2026-04-13 16:25:55 -04:00
ThePlayerRolo c0205a02b5 d_a_nzg ok (#948)
* ngz progress

* d_a_nzg ok

* add todo notice about rodata

* apply changes

* link d_a_nzg
2026-04-12 19:30:12 -04:00
big zam fe4ca85c79 d_a_obj_plant equivalent (#945)
* d_a_obj_plant: Add headers, functions (nodeCallBack, CheckCreateHeap, CreateInit, set_mtx, daObjPlant_Delete)

* d_a_obj_plant: draw

* CreateHeap in progress, Moved NodeCallBack higher

* daObjPlant_c::CreateHeap 100% matching

* daObjPlant_Create 100% matching

* Fixed field 40A being unsigned, plant_execute() 99% matching

* Fixed floating point order of ops, daObjPlant_Execute 100% matching

* rename param

* Fixed checkCreateHeap not returning

* Marked as equivalent due to weak function ordering

* Fixed nodeCallBack function order

* PR Feedback: Removed nodeCallBack forward declaration, Moved all inline functions from h to cpp, Replaced magic numbers with enums

* d_a_obj_plant 100% matching

* d_a_obj_plant: Fixed matching for kiosk demo

* Update src/d/actor/d_a_obj_plant.cpp
2026-04-06 02:49:09 -04:00
LagoLunatic 2a75abb376 Use composition for d_a_ks 2026-04-02 18:52:28 -04:00
LagoLunatic 0342876722 Switch inheritance->composition for more C-style actors 2026-04-01 23:40:08 -04:00
LagoLunatic 36c9a1e4b4 d_a_wind_tag OK (#944) 2026-04-01 18:58:31 -04:00
LagoLunatic 63a3aa2399 ProcID cleanup 2026-04-01 18:50:20 -04:00
LagoLunatic 7df5ceeb49 d_a_fganon nearly matching for demo 2026-03-31 19:44:40 -04:00
LagoLunatic bf8e0b31cb Use composition instead of inheritance for fganon 2026-03-31 17:54:29 -04:00
maimai0254 9223937baf Bwds 100% (#941)
* bwds 100%

* configure.py debug

* Update NonMatching

* Fix function order

* Fix issues from code review
2026-03-26 04:17:48 -04:00
LagoLunatic 061fa893eb Replace particle enums with official names 2026-03-20 16:02:41 -04:00
LagoLunatic b7cc6fb693 Remove alignment padding comments 2026-03-14 19:04:03 -04:00
LagoLunatic ff60c624ce Clean up dComIfGp_evmng_getMyActIdx calls 2026-03-12 17:46:14 -04:00
LagoLunatic 37000df61b Make Proc_e enum values consistent across actors 2026-03-12 17:26:42 -04:00
LagoLunatic e580412bcf Fix missing returns and other warnings 2026-03-12 17:14:10 -04:00
Zeclos e70562699f D_a_npc_zl1 matching for retail (#900)
* should be fixed

* matching ?

* matching now

* matching for GZLE01 and GZLP01

* fixed  dDemo_setDemoData probably

* matching  except setfrontwalltype for demo
2026-03-12 16:53:07 -04:00
Zeclos cca42433ac D_a_fm matching (#917)
* 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
2026-03-12 16:48:04 -04:00
Zeclos 27793379ea D_a_obj_apzl matching (#923)
* 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
2026-03-11 23:29:25 -04:00
LagoLunatic 256b4eeb37 Fix some clangd errors 2026-03-04 13:47:40 -05:00
Zeclos dcf4862387 D_a_npc_tc matching for retail (#930)
* progress

* code matching non-demo

* cleanup for d_a_npc_tc and d_a_obj_smplbg
2026-03-04 13:25:59 -05:00
Briggs Baltzell d54d983a4a d_a_boomerang matching (#936)
* 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`.
2026-03-03 23:44:51 -05:00
Roland 60b0d94e2a d_a_obj_auzu (#935)
* 59% matching in .text

* d_a_obj_auzu 100% for demo and retail

* Named all fields of daObjAuzu::Act_c

* All fields named
2026-03-01 18:36:56 -05:00
Roland 034b90bfdc d_a_daiocta and d_a_daiocta_eye matching (#934)
* Initial work; 25% matching in .text

* 27% matching in .text

* Match daDaiocta_c::modeProc

* 56% matching in .text

* 61% matching in .text

* 69% matching in .text

* 74% matching in .text

* 84% matching in .text

* daDaiocta_Eye_c 31%

* Match daDaiocta_Eye_c node callbacks

* daDaiocta_Eye_c 69%

* daDaiocta_Eye_c 85%

* daDaiocta_Eye_c 100% for retail and demo

* daDaiocta_c 96%

* daDaiocta_c 100% for retail and demo

* Field name cleanup

* More field naming

* Implement {is_, to_, to_dis}appear daObjAuzu inlines

* Misc code formatting changes

* Use JntHitType enum (d_a_daiocta)

* Apply suggestions from code review

Co-authored-by: LagoLunatic <LagoLunatic@users.noreply.github.com>

* Use fopAcM_SetMtx inline

---------

Co-authored-by: LagoLunatic <LagoLunatic@users.noreply.github.com>
2026-02-27 14:04:36 -05:00
SuperDude88 1d96a4c988 d_a_fgmahou OK (#932)
* d_a_fgmahou OK

* Some Cleanup

- Add offset comments
- Name some class fields
- Use a couple inlines from the map
2026-02-26 14:46:54 -05:00