Skip to content

d_a_boomerang matching#936

Merged
LagoLunatic merged 104 commits intozeldaret:mainfrom
TheGreatB3:d_a_boomerang
Mar 4, 2026
Merged

d_a_boomerang matching#936
LagoLunatic merged 104 commits intozeldaret:mainfrom
TheGreatB3:d_a_boomerang

Conversation

@TheGreatB3
Copy link
Contributor

Closes #574

…er variables, and adjust structure layout in `d_a_boomerang.h`.
…field, update structure layout in `d_a_boomerang.h`.
…, modify array structure to use 2D layout, and adjust declarations in `d_a_boomerang.h`.
…ription, attribute format lists, and texture handling logic.
…g logic for modifying `field_0xF4` values.
…ent animation logic, replace `field_0xF4` with `arr_0xF4`, add `arr_0xF9`, and update structure in `d_a_boomerang.h`.
…hods; update image data logic in `d_a_boomerang.cpp` and `d_a_boomerang.h`.
… initialize `arr_0xF4` and reset `targetFlags`.
…pdate structure fields, and adjust logic in `setSight`, `play`, and related methods.
…scriptor/attribute format lists, texture handling, and sight rendering logic.
…l_sightMatDL` and `l_sightDL__d_a_boomerang`
…me checks to determine maximum flight distance.
…ng targeting logic, rename variables for clarity, update array structures, and adjust control flow.
…late angles, update position/rotation, handle water effects, and refine collision detection. Adjust structure fields in `d_a_boomerang.h`.
…, adjust distance-based normalization, and refine boomerang return handling.
…_DECL(32)` in `d_a_boomerang.cpp` for consistent memory alignment.
…th `yRotPerStep` variable for clarity and maintainability.
…`field_0xF2D` to `unused_0xF2D` for improved clarity.
…_c::SEGMENTS_PER_STEP` for improved readability and maintainability.
…tParam` for consistency with actor parameter retrieval methods.
…d values for improved readability and maintainability.
… for consistency with actor parameter setting methods.
…or improved readability and maintainability.
…ated variables and methods to lock-related for improved clarity and consistency.
…ng.cpp` to simplify and remove redundant casts.
@decomp-dev
Copy link

decomp-dev bot commented Mar 3, 2026

Report for GZLJ01 (60b0d94 - ae23b70)

📈 Matched code: 56.97% (+0.14%, +10656 bytes)
📈 Linked code: 38.61% (+0.14%, +10768 bytes)
📈 Matched data: 46.84% (+0.08%, +1804 bytes)
📈 Linked data: 41.60% (+0.08%, +1804 bytes)

✅ 42 new matches
Unit Item Bytes Before After
framework/d/actor/d_a_boomerang daBoomerang_c::procMove() +1873 0.21% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::procWait() +1028 0.39% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::daBoomerang_c() +940 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_blur_c::draw() +873 0.46% 100.00%
framework/d/actor/d_a_boomerang .data +764 46.06% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_blur_c::copyBlur(float(*)[4], short) +724 0.55% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::draw() +576 0.69% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_sightPacket_c::setSight(cXyz*, int) +548 0.72% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::create() +516 0.77% 100.00%
framework/d/actor/d_a_boomerang dBgS_BoomerangLinChk::~dBgS_BoomerangLinChk() +340 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_sightPacket_c::draw() +328 1.20% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_blur_c::initBlur(float(*)[4], short) +313 1.27% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::checkBgHit(cXyz*, cXyz*) +292 1.35% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::setLockActor(fopAc_ac_c*, int) +252 1.56% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::execute() +216 1.82% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_blur_c::~daBoomerang_blur_c() +204 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::createHeap() +196 2.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::setAimPos() +193 2.04% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::setKeepMatrix() +169 2.33% 100.00%
framework/d/actor/d_a_boomerang .sdata2 +160 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::setRoomInfo() +160 2.44% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::rockLineCallback(fopAc_ac_c*) +149 2.63% 100.00%
framework/d/actor/d_a_boomerang __sinit_d_a_boomerang_cpp +124 0.00% 100.00%
framework/d/actor/d_a_boomerang .bss +94 22.22% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_sightPacket_c::~daBoomerang_sightPacket_c() +92 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::getFlyMax() +89 4.35% 100.00%
framework/d/actor/d_a_boomerang .rodata +88 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::setAimActor(fopAc_ac_c*) +76 5.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_sightPacket_c::play(int) +57 6.67% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::resetLockActor() +53 7.14% 100.00%

...and 12 more new matches


Report for D44J01 (60b0d94 - ae23b70)

📈 Matched code: 46.20% (+0.13%, +9816 bytes)
📈 Matched data: 41.90% (+0.08%, +1804 bytes)

✅ 41 new matches
Unit Item Bytes Before After
framework/d/actor/d_a_boomerang daBoomerang_c::procMove() +1868 0.21% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::procWait() +1045 0.38% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::daBoomerang_c() +940 0.00% 100.00%
framework/d/actor/d_a_boomerang .data +764 46.06% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_blur_c::copyBlur(float(*)[4], short) +733 0.54% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::draw() +580 0.68% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_sightPacket_c::setSight(cXyz*, int) +548 0.72% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::create() +516 0.77% 100.00%
framework/d/actor/d_a_boomerang dBgS_BoomerangLinChk::~dBgS_BoomerangLinChk() +340 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_sightPacket_c::draw() +328 1.20% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_blur_c::initBlur(float(*)[4], short) +313 1.27% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::checkBgHit(cXyz*, cXyz*) +292 1.35% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::setLockActor(fopAc_ac_c*, int) +252 1.56% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::execute() +216 1.82% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_blur_c::~daBoomerang_blur_c() +204 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::createHeap() +196 2.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::setAimPos() +193 2.04% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::setKeepMatrix() +173 2.27% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::setRoomInfo() +169 2.33% 100.00%
framework/d/actor/d_a_boomerang .sdata2 +160 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::rockLineCallback(fopAc_ac_c*) +149 2.63% 100.00%
framework/d/actor/d_a_boomerang __sinit_d_a_boomerang_cpp +124 0.00% 100.00%
framework/d/actor/d_a_boomerang .bss +94 22.22% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_sightPacket_c::~daBoomerang_sightPacket_c() +92 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::getFlyMax() +89 4.35% 100.00%
framework/d/actor/d_a_boomerang .rodata +88 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::setAimActor(fopAc_ac_c*) +76 5.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_sightPacket_c::play(int) +57 6.67% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::resetLockActor() +53 7.14% 100.00%
framework/d/actor/d_a_boomerang daPy_lk_c::getLineTopPos() +44 0.00% 100.00%

...and 11 more new matches

📈 1 improvement in an unmatched item
Unit Item Bytes Before After
framework/d/actor/d_a_boomerang daBoomerang_blur_c::draw() +858 0.46% 98.40%

Report for GZLE01 (60b0d94 - ae23b70)

📈 Matched code: 58.68% (+0.14%, +10688 bytes)
📈 Linked code: 38.67% (+0.14%, +10800 bytes)
📈 Matched data: 48.49% (+0.08%, +1804 bytes)
📈 Linked data: 42.66% (+0.08%, +1804 bytes)

✅ 42 new matches
Unit Item Bytes Before After
framework/d/actor/d_a_boomerang daBoomerang_c::procMove() +1876 0.21% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::procWait() +1028 0.39% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::daBoomerang_c() +940 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_blur_c::draw() +900 0.44% 100.00%
framework/d/actor/d_a_boomerang .data +764 46.06% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_blur_c::copyBlur(float(*)[4], short) +724 0.55% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::draw() +576 0.69% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_sightPacket_c::setSight(cXyz*, int) +548 0.72% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::create() +516 0.77% 100.00%
framework/d/actor/d_a_boomerang dBgS_BoomerangLinChk::~dBgS_BoomerangLinChk() +340 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_sightPacket_c::draw() +328 1.20% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_blur_c::initBlur(float(*)[4], short) +313 1.27% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::checkBgHit(cXyz*, cXyz*) +292 1.35% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::setLockActor(fopAc_ac_c*, int) +252 1.56% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::execute() +216 1.82% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_blur_c::~daBoomerang_blur_c() +204 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::createHeap() +196 2.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::setAimPos() +193 2.04% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::setKeepMatrix() +169 2.33% 100.00%
framework/d/actor/d_a_boomerang .sdata2 +160 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::setRoomInfo() +160 2.44% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::rockLineCallback(fopAc_ac_c*) +149 2.63% 100.00%
framework/d/actor/d_a_boomerang __sinit_d_a_boomerang_cpp +124 0.00% 100.00%
framework/d/actor/d_a_boomerang .bss +94 22.22% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_sightPacket_c::~daBoomerang_sightPacket_c() +92 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::getFlyMax() +89 4.35% 100.00%
framework/d/actor/d_a_boomerang .rodata +88 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::setAimActor(fopAc_ac_c*) +76 5.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_sightPacket_c::play(int) +57 6.67% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::resetLockActor() +53 7.14% 100.00%

...and 12 more new matches


Report for GZLP01 (60b0d94 - ae23b70)

📈 Matched code: 56.91% (+0.14%, +10688 bytes)
📈 Linked code: 37.75% (+0.14%, +10800 bytes)
📈 Matched data: 47.04% (+0.08%, +1804 bytes)
📈 Linked data: 42.48% (+0.08%, +1804 bytes)

✅ 42 new matches
Unit Item Bytes Before After
framework/d/actor/d_a_boomerang daBoomerang_c::procMove() +1876 0.21% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::procWait() +1028 0.39% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::daBoomerang_c() +940 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_blur_c::draw() +900 0.44% 100.00%
framework/d/actor/d_a_boomerang .data +764 46.06% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_blur_c::copyBlur(float(*)[4], short) +724 0.55% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::draw() +576 0.69% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_sightPacket_c::setSight(cXyz*, int) +548 0.72% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::create() +516 0.77% 100.00%
framework/d/actor/d_a_boomerang dBgS_BoomerangLinChk::~dBgS_BoomerangLinChk() +340 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_sightPacket_c::draw() +328 1.20% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_blur_c::initBlur(float(*)[4], short) +313 1.27% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::checkBgHit(cXyz*, cXyz*) +292 1.35% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::setLockActor(fopAc_ac_c*, int) +252 1.56% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::execute() +216 1.82% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_blur_c::~daBoomerang_blur_c() +204 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::createHeap() +196 2.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::setAimPos() +193 2.04% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::setKeepMatrix() +169 2.33% 100.00%
framework/d/actor/d_a_boomerang .sdata2 +160 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::setRoomInfo() +160 2.44% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::rockLineCallback(fopAc_ac_c*) +149 2.63% 100.00%
framework/d/actor/d_a_boomerang __sinit_d_a_boomerang_cpp +124 0.00% 100.00%
framework/d/actor/d_a_boomerang .bss +94 22.22% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_sightPacket_c::~daBoomerang_sightPacket_c() +92 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::getFlyMax() +89 4.35% 100.00%
framework/d/actor/d_a_boomerang .rodata +88 0.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::setAimActor(fopAc_ac_c*) +76 5.00% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_sightPacket_c::play(int) +57 6.67% 100.00%
framework/d/actor/d_a_boomerang daBoomerang_c::resetLockActor() +53 7.14% 100.00%

...and 12 more new matches

@LagoLunatic
Copy link
Collaborator

Looks good. Any reason it's marked as a draft?

@LagoLunatic LagoLunatic marked this pull request as ready for review March 4, 2026 04:42
@LagoLunatic LagoLunatic merged commit d54d983 into zeldaret:main Mar 4, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

d_a_boomerang

2 participants