Commit Graph

110 Commits

Author SHA1 Message Date
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
Mike Lester 9cc61c4058 Fix up a shadow-related variable/parameter names (#920)
* Fix up a shadow-related variable/parameter names

* Fix compilation errors in d_a_obj_barrel.cpp
2026-01-13 01:01:35 -05:00
LagoLunatic 1c3762cf14 Move daPy methods into d_a_player headers 2025-12-29 13:20:45 -05:00
LagoLunatic 729f81babf Fix HIO load issues for d_a_player_main 2025-12-10 17:31:47 -05:00
123456789758 f989efc581 d_a_himo2 - 94% matching ( + misc. cleanup) (#866)
Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
2025-08-25 19:01:22 -04:00
LagoLunatic 1afef8f35f Fix weak func order for d_a_player_main 2025-08-22 01:12:46 -04:00
LagoLunatic 2eaf012e4f Fix some version differences (#852)
* Fix some version differences

* Found real inline name for checkBowMiniGame
2025-08-12 16:30:44 -04:00
SuperDude88 4adfd27155 daNpc_Cb1_c Almost OK (#822)
* daNpc_Cb1_c Almost OK

Down to regswaps/minor instruction issues

* Oops

That inline was fake

* Some Cleanup

- Fill in more inlines
- Reorganize daNpc_Cb1_c inlines
- Use inlines more
- Some naming and typing consistency

* Naming, Consistency Tweaks

- TRUE/FALSE macros for all cases of BOOL, use int -> BOOL sometimes
- Rename HIO to be consistent with other NPCs
- Animation enum

* Some HIO Names

* Clarity Tweaks

- NULL in more asserts
- Squared constants
2025-07-29 21:04:42 -04:00
LagoLunatic efc33c5fc4 Various inline cleanup 2025-06-19 19:03:11 -04:00
LagoLunatic 264ee5d6e1 Clean up some inlines and field names 2025-06-18 19:29:02 -04:00
LagoLunatic 0146d0b91f d_a_player_main cleanup and inlines 2025-06-15 13:59:16 -04:00
LagoLunatic 3bd775e04d Misc demo matches 2025-06-13 15:14:08 -04:00
LagoLunatic bd917524ba Demo work, d_a_kytag02 and d_a_ff OK 2025-05-31 20:09:14 -04:00
LagoLunatic c484eb490d More demo work, fix some fakematches in retail 2025-05-25 19:20:08 -04:00
LagoLunatic 0ee416c538 Match daPy_lk_c::checkPlayerGuard, switch all of daPy_lk_c's inlines to return BOOL instead of bool 2025-05-25 17:28:35 -04:00
LagoLunatic 4a54a410b1 More player_main match fixes 2025-05-14 16:00:12 -04:00
LagoLunatic cbbd4c2dc0 Match more player_main regalloc/stack/etc issues 2025-05-08 23:00:19 -04:00
123456789758 224b83ed8c d_a_player_main - 96% matching (#750)
Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
2025-05-07 19:08:04 -04:00
LagoLunatic 2690304a74 player_main cleanup and a few matches 2025-04-29 15:44:49 -04:00
123456789758 eef20535ac d_a_player_main - 70% Matching. (#742)
Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
2025-04-27 19:32:36 -04:00
LagoLunatic ce8d17ec08 Add an enum for action button icon status 2025-04-20 20:06:40 -04:00
LagoLunatic ad22472b1a player misc cleanup and various match fixes 2025-04-16 20:26:40 -04:00
LagoLunatic 3a9eebd7ea player_sword 100%, cleanup 2025-04-16 17:39:21 -04:00
LagoLunatic 38a6e76657 player checkFlg inline fix, player_pushpull cleanup 2025-04-16 16:50:11 -04:00
LagoLunatic be81e109e9 One more player inline 2025-04-16 15:07:00 -04:00
LagoLunatic ce1468c108 player enum and inlines and goto cleanup 2025-04-16 15:02:18 -04:00
123456789758 70d9f5df10 d_a_player_main - 48% Matching. (#739)
Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
2025-04-14 17:17:47 -04:00
LagoLunatic 6aeaaef643 Added enum for Link's movement direction 2025-04-11 15:02:53 -04:00
LagoLunatic 309158e274 J3DModel inlines cleanup, procBottleSwing_init match, etc 2025-04-10 19:30:51 -04:00
123456789758 072cb3a441 d_a_player_misc - Several matches/close matches across several files. (#736)
Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
2025-04-08 17:41:27 -04:00
‎ ‎ ‎ d3c253dcef d_a_player_rope.inc - Almost all matching except minor issues (also extra matches in d_a_player_vomit). 2025-04-05 22:14:32 -04:00
LagoLunatic 6d7550f14a player_whide 100%, player_ship fixes 2025-04-04 15:37:16 -04:00
LagoLunatic 924e87029d d_a_player_sword cleanup and small match fixes 2025-04-04 13:19:42 -04:00
LagoLunatic cda3f0c302 d_a_player_battle 100% 2025-04-03 17:56:52 -04:00
LagoLunatic 4f6533b871 hookshot and player_hook cleanup, inlines 2025-04-01 23:25:03 -04:00
LagoLunatic f2ff19c83e player_fan 99% 2025-04-01 20:46:23 -04:00
LagoLunatic bc4c7dd5f9 Match Link's HIO class constructor
The constructor and section ordering of the constructor both seem to match now.
2025-04-01 16:03:06 -04:00
123456789758 ecd9b48113 d_a_player_sword.inc - Several matching with minor issues. (#731)
Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
Co-authored-by: LagoLunatic <LagoLunatic@users.noreply.github.com>
2025-04-01 14:39:22 -04:00
123456789758 53dfbaa55a d_a_player_bottle.inc - Several matching with minor issues. (#729)
Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
Co-authored-by: LagoLunatic <LagoLunatic@users.noreply.github.com>
2025-04-01 14:38:18 -04:00
123456789758 d4ef6a86c9 d_a_player_climb.inc - All matching except floats. (#716)
Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
Co-authored-by: LagoLunatic <LagoLunatic@users.noreply.github.com>
2025-04-01 14:38:02 -04:00
123456789758 3bb407642a d_a_player_ship.inc - Several close to matching except minor issues. (#721)
Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
2025-04-01 14:31:12 -04:00
123456789758 340a15feb3 d_a_player_grab.inc - Almost all matching except a few with minor issues. (#719)
Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
2025-04-01 14:31:00 -04:00
123456789758 cc76f98a2c d_a_player_ladder.inc - All matching except floats. (#714)
Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
2025-04-01 14:30:06 -04:00
123456789758 cceb1ca57d d_a_player_fan.inc - Almost all matching except floats. (#725)
* d_a_player_fan.inc - Almost all matching except floats.

* procFanSwing and procFanGlide close to matching.

---------

Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
2025-03-31 18:48:51 -04:00
123456789758 d4bbb4fb43 d_a_player_battle.inc - All close to matching with minor issues. (#720)
Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
2025-03-31 18:44:43 -04:00
123456789758 221f6e8033 d_a_player_crawl.inc - Some matching except floats, others close to matching, (#718)
Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
2025-03-31 18:15:22 -04:00
123456789758 95c813aad2 d_a_player_bow.inc - Almost all matching with only minor issues. (#723)
Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
2025-03-31 18:12:17 -04:00
123456789758 a69b604b01 d_a_player_pushpull.inc - Almost all matching except minor issues. (#728)
Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
2025-03-31 18:10:34 -04:00
123456789758 0b883c50c6 d_a_player_boomerang.inc - All fully matching. (#722)
Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
2025-03-31 17:58:45 -04:00
123456789758 26f1b0c8f0 d_a_player_whide.inc - Almost all matching except floats, (#717)
Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
2025-03-31 17:56:25 -04:00