Commit Graph

1780 Commits

Author SHA1 Message Date
LagoLunatic 4e7634a693 Cleanup 2026-04-02 19:33:05 -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 765f88e4f3 Move extern forward decls from cpps to headers 2026-04-01 19:38:51 -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 899cd54394 Fix TPosition3 header wrong file ext 2026-04-01 00:06:34 -04:00
LagoLunatic a4de4f08fb Remove some unnecessary version ifdefs 2026-03-31 22:27:13 -04:00
LagoLunatic 207f6e911f Add default arguments to anm init functions to simplify calls 2026-03-31 22:11:01 -04:00
LagoLunatic 85c97022df Implement inlines for d_menu_window 2026-03-31 21:00:57 -04:00
LagoLunatic 7f19fc0312 Fix d_menu_window func order 2026-03-31 20:14:11 -04:00
LagoLunatic 14d60a3daa Fix some clangd errors in d_menu_window 2026-03-31 20:06:13 -04:00
Briggs Baltzell 547284c1de Equivalent d_menu_window (#943)
* Add definitions for `l_dMs_Method` and `g_profile_MENUWINDOW` in `d_menu_window` and update includes.

* Update `d_menu_window` to include `d_meter` and implement `dMs_IsDelete` function.

* Update `d_menu_window` to add `mButtonsPressed` field and implement button bit manipulation functions.

* Match dMs_isPush_L_Button and dMs_isPush_R_Button

* Match `dMs_childHeap_freeAll`

* Extend `sub_ms_screen_class` from `msg_class` in `d_menu_window`.

* Implement `draw` methods for `dDlst_MENU_CAPTURE_c` and `dDlst_MENU_CLOTH_c` in `d_menu_window`.

* Implement non-matching portions of `dDlst_MENU_CLOTH_c::draw` in `d_menu_window` and update includes.

* Extend `dMw_HIO_c` and `dMw_DHIO_c` from `JORReflexible` in `d_menu_window` and add virtual destructors.

* Match `dMs_isButtonBit` and use TRUE and FALSE in other methods

* Add `dMenu_setMenuStatus` declaration to `d_meter` header

* Refactor `d_menu_window` to expand `sub_ms_screen_class` fields and add external `dMw_HIO_c` and `dMw_DHIO_c` instances.

* Initialize new fields in `d_menu_window`, add font-related setup in `dMs_Create`, and update heap and timer logic.

* Add `getItemResArchive` method to `d_com_inf_game`

* Expand `sub_ms_screen_class` with new fields and initialize them in `dMs_item_create`.

* Abstract menu functionality into a new `dMenu_base_c` class and update `dMenu_Collect_c` and `dMenu_Item_c` to inherit from it.

* Add `dMenu_Item_c` instance and include in `d_menu_window`

* Add new menu-related includes and static instances to `d_menu_window`

* Reorder `d_menu_window` static instances and adjust font-related declarations.

* Initialize `dMi_c` instance in `d_menu_window`.

* Extend `dMenu_Dmap_c` to inherit from `dMenu_base_c` and update methods to be virtual.

* Refactor vertex setup in `d_menu_window` to use 3D positions and texture coordinates with new attribute formats.

* Add `dMenu_Fmap2_c` instance and related updates to `dMenu_Fmap_c`

* Add `dDlst_FMAP2_c` and `dDlst_FMAP2GS_c` instances to `dMenu_Fmap2_c` and adjust structure padding

* Update include path for `d_menu_fmap2.h` in `d_menu_fmap.h`

* Add `dComIfGp_event_photoCheck` inline function to `d_com_inf_game`

* Update `d_menu_window` structure: replace `field_0x108` with `mMsgID` and modify `field_0x1B0` type to `u16`

* Match `dMs_telescopeMove`

* Match `dMs_placenameMove` logic

* Make `dMi_HIO_c` inherit from `JORReflexible` and add a virtual destructor.

* Introduce global instance `g_miHIO` of `dMi_HIO_c` in `d_menu_item`.

* Declare new member variables in `dMi_HIO_c`.

* Set `g_miHIO.mNo` with child HIO creation for "Item Screen" in `dMenu_Item_c::_create`.

* Expand `dMi_HIO_c` with new member variables and define `ARR_SIZE` constant.

* Match `dMi_HIO_c` constructor logic and update structure to include `mColor0`.

* Correct `mColor0` type casting in `dMi_HIO_c` constructor.

* Replace `mColor0` and `field_0x50` with `JUtility::TColor` members in `dMi_HIO_c` and update initialization logic.

* Retrieve colors from `g_miHIO` for `GXColor` initialization in `dMenu_Window_c`.

* Rename `mColor1`/`mColor2` to `mClothColor`/`mShadowColor` in `dMenu_Item_c` and update references accordingly.

* Match `dDlst_MENU_CLOTH_c::draw`

* Expand `dMw_HIO_c` structure with new member variables and update padding/array definitions.

* Expand `dMw_DHIO_c` structure with new array and padding definitions.

* Match `dMw_DHIO_c` constructor logic by initializing `arr_0x05` elements to zero.

* Match `dMw_HIO_c::dMw_HIO_c`: expand `dMw_HIO_c` structure with additional member variables and initialize them in the constructor.

* Add `setPictureStatus` function and its inline wrapper `dComIfGp_setPictureStatus`.

* Add `mDoExt_getCurrentHeap` function declaration to `m_Do_ext.h`.

* Match `dMs_Delete` function logic.

* Match `dMs_Delete` function logic by updating conditions and removing obsolete comments.

* Add `dMenu_getMenuStatus` function declaration to `d_meter.h`.

* Match `dMenu_Fmap_c::draw` logic by calling `_draw()`.

* Match `dMs_Draw` function logic by updating conditions and adding new menu status handling.

* Expand `d_menu_window` structure by adding `dMw_Status` enum and `mMenuProc` member variable.

* Add `fmapOpenCheck`, `fmapOpenOff` functions and their inline wrappers

* Add `dMenu_setMenuStatusOld` function declaration to `d_meter.h`.

* Update `noteCheck` return type to `u32` in `d_menu_dmap`.

* Expand `d_menu_dmap` structure by adding new fields and member variables.

* Change `noteCheck` return type to `bool` and update logic to match field condition

* Rename `field_0x4952` to `mNameOpen` and update related functions. Add inline wrappers for `nameOpenOn` and `nameOpenCheck`.

* Change `mMenuCollect` type to `bool` and add corresponding inline wrapper functions

* Change `mFmapOpen` type to `u8` and update related functions and inline wrappers

* Expand `d_menu_item` structure by adding new fields and member variables.

* Expand `d_menu_collect` structure by adding new fields and member variables.

* Add `dMenu_getCollectMode`, `dMenu_setCollectMode`, `dMenu_getItemMode`, and `dMenu_setItemMode` function declarations to `d_meter.h`.

* Change `_open` methods to return `bool` in `d_menu_collect`, `d_menu_dmap`, and `d_menu_item` classes and update virtual declarations.

* Change `_open3` and `_close2` return types to `bool` in `d_menu_collect` and update virtual declarations.

* Update `_open2` and `_close2` methods in `d_menu_collect` and `d_menu_item` to return `bool` and adjust related declarations and structures.

* Rename `field_0x4952` to `mNameOpen` in `d_menu_window` for consistency with updated naming conventions.

* Change `noteCheck` return type to `u8` in `d_menu_item` and update related structure fields and declarations. Add `dMeter_subWinFlag` function declaration.

* Update `dMw_Status` enum in `d_menu_window` to replace placeholder names with descriptive identifiers.

* Match `dMs_Execute` method in `d_menu_window` 50.00%

* Implement `MW_STATUS_UNK_36`, `MW_STATUS_UNK_37`, and `MW_STATUS_UNK_38` logic in `d_menu_window`.

* Update `dMw_Status` enum and replace placeholder names with descriptive identifiers in `d_menu_window`.

* Update `dMw_Status` enum in `d_menu_window` with descriptive identifiers and replace usages accordingly

* Update `dMw_Status` enum by replacing unknown placeholder names with descriptive identifiers and adjust related logic

* Replace hardcoded timer threshold `0xF6` with `g_menuHIO.field_0x90` in `d_menu_window` logic.

* Change `_close` method return type to `bool` in `d_menu_collect`, `d_menu_dmap`, and `d_menu_item`, and update related declarations.

* Implement logic for `MW_STATUS_UNK_5` and `MW_STATUS_UNK_16/19` in `d_menu_window`

* Change `_open` and `_close` methods return type to `bool` in `d_menu_fmap` and update related declarations.

* Change `_open` methods return type to `bool` in `d_menu_fmap` and update related declarations and implementations.

* Implement `_open` logic for various `MW_STATUS_FMAP` states in `d_menu_window`.

* Change `isFmapClose` return type to `bool` in `d_menu_fmap` and update its implementation.

* Implement movement and close logic for various `MW_STATUS_FMAP` states in `d_menu_window`.

* Add `nameOpenChangeOff` and `nameOpenCancelOff` methods to manage `mNameOpen` state

* Implement `_open`, `_move`, and `_close` logic for `MW_STATUS_NAME_*` states in `d_menu_window`.

* Update button lock logic in `d_menu_window` to use `mDoCPd_L_LOCK_BUTTON`.

* Refactor `dMenu_setCollectMode` logic in `d_menu_window` for clarity and consistency.

* Add `STATIC_ASSERT` for `dMenu_Collect_c` size and fix `m27A0` to `m2780`

* Update button bit handling logic in `d_menu_window` and clean up redundant code

* Decrease item record timer conditionally in `d_menu_window`.

* Implement `decItemTimer` logic in `d_com_inf_game` and integrate with `dComIfGp_decItemTimer`.

* Integrate `dComIfGp_decItemTimer` call in `d_menu_window`.

* Change `getButtonIconMode` return type to `u8` and implement placeholder return value.

* Move `dMeter_Info` declaration from `d_msg.cpp` to `d_meter.h`.

* Set `dMeter_Info.field_0x1` based on `dMf_c` state in `d_menu_window`.

* Rename `field_0x1` to `mButtonIconMode` in `dMeter_Info` for clarity and consistency.

* Update `MW_STATUS_FMAP_MOVE_WALLPAPER` logic to handle additional button triggers and call `_move` when applicable. Clean up redundant code.

* Handle `MW_STATUS_DMAP_CLOSE` in `d_menu_window` by invoking `_close` and cleaning up related resources.

* Update `MW_STATUS_DMAP_MOVE` button triggers and replace `_close` with `_move` in `d_menu_window`.

* Handle `MW_STATUS_DMAP_OPEN` logic by invoking `_open` and transitioning to `MW_STATUS_DMAP_MOVE` in `d_menu_window`.

* Change `_close3` return type from `void` to `bool` in `dMenu_Collect_c`.

* Handle `MW_STATUS_UNK_20` logic by invoking `_close3`, cleaning up resources, and resetting menu state in `d_menu_window`.

* Refactor redundant condition checks in `d_menu_window` by introducing `CAN_PROCEED` macro for clarity and reuse.

* Simplify condition checks in `d_menu_window` by consolidating `CAN_PROCEED` logic into a single `if-else` chain.

* Update `event_wait_frame` type to signed and adjust condition checks in `d_menu_window` for better logic clarity.

* Handle `MW_STATUS_ITEM_OPEN1_1` logic by initializing heap, creating item, and updating menu state in `d_menu_window`.

* Handle `MW_STATUS_FMAP_OPEN` and `MW_STATUS_DMAP_OPEN` logic by introducing button checks, creating menu states, and playing audio cues in `d_menu_window`.

* Update `noteCheck` return type to `u8` and adjust struct layout in `dMenu_Collect_c`.

* Handle button press logic and update menu state transitions in `MW_STATUS_UNK_13` within `d_menu_window`.

* Simplify button press handling logic by restructuring nested conditionals in `d_menu_window`.

* Handle `MW_STATUS_UNK_14` logic by adding button checks, updating menu state, and playing audio cues in `d_menu_window`.

* Handle `MW_STATUS_UNK_15` logic by adding condition checks, updating menu state, initializing heap, and triggering audio cues in `d_menu_window`.

* Refactor `mMenuProc` handling by replacing `switch-case` statements with `if-else` chains in `d_menu_window`.

* Initialize `timer` to 0 in `dMs_Execute` and add a newline for readability in `d_menu_window`.

* Refactor `mMenuProc` handling by introducing a `menuProc` local variable for improved readability and reduced redundancy in `d_menu_window`.

* Simplify conditionals and improve menu handling logic in `d_menu_window`.

* Replace `menuProc` variable usage with direct access to `i_Ms->mMenuProc` to reduce redundancy in `d_menu_window`.

* Refactor conditional checks and streamline button press handling in `d_menu_window`.

* Refactor conditional checks and improve readability in button press handling logic within `d_menu_window`.

* Match `dMs_Execute`

* Refactor `dMw_Status` enum to `MENU_STATE`, clarify naming conventions, and update all references in `d_menu_window`.

* Refactor `fwaterTimer` logic by replacing direct member access with helper functions for improved readability in `d_menu_window`.

* Add `dMenu_FmapSv_c` class definition to `d_menu_fmap` header.

* Initialize fields in `dMenu_FmapSv_c` constructor in `d_menu_fmap` header.

* Add `dMenu_FmapSv_c` declaration and definition to `d_menu_window`.

* Replace `TODO` with initialization of `dMv_CIO_c` using `dMenu_FmapSv_c` in `d_menu_window`.

* Adjust initialization value of `field_0x9` in `d_menu_fmap` header.

* Fix incorrect assertion parameter in `d_menu_window` for `rfonttype`.

* Add `dummy_arr` array and remove non-matching comment in `d_menu_window`

* Add padding fields and `mSvPtr` member to `dMenu_Fmap_c` with a size assertion

* Set `mSvPtr` in `setSvPtr` method in `d_menu_fmap` header.

* Move `dDlst_FMAP_c` class definition and integrate into `dMenu_Fmap_c`.

* Replace padding with `J2DScreen* scrn` in `dMenu_Fmap_c`.

* Introduce `MenuStatus` enum and replace menu status magic numbers with enum constants.

* Update `mMsgID` initialization to use `fpcM_ERROR_PROCESS_ID_e` in `d_menu_window`

* Replace direct `g_dComIfG_gameInfo.play` calls with new `dComIfGp_` helper functions in `d_menu_window`.

* Match `dMs_name_create`

* Match `dMs_name_delete`

* Add new button bit function declarations, initialize `dMenu_Item_c` fields, and update `d_menu_item` structure with new members

* Refactor `d_menu_item` structure to use arrays for `name`, `note`, and `dummy` fields instead of individual members.

* Update `d_menu_item` methods to initialize member variables instead of using empty bodies.

* Refactor `dMs_item_create` to use setter methods for `dMenu_Item_c` initialization.

* Update `setTextArea` to assign parameters to arrays and refactor structure to include `name`, `note`, and `dummy` arrays

* Refactor `setTextArea` to initialize arrays and update structure with `name`, `note`, and `dummy` fields.

* Refactor `setTextArea_New` to initialize arrays and update `dMenu_Fmap_c` structure with `name`, `note`, and `dummy` fields.

* Match `dMs_save_delete`

* Refactor `setFont` method and update member variables `m2470` and `m2474` to `mFont` and `mRFont` respectively

* Refactor `setFont` method to assign `mFont` and `mRFont`, and update `d_menu_dmap_c` structure to include new font-related members

* Update `setArchive` method to assign `mpArc` and modify `d_menu_dmap_c` structure to include `mpArc` member

* Add static assert to verify `dMenu_Dmap_c` structure size

* Refactor `setFont` method to assign `mFont` and `mRFont`, and update `dMenu_Fmap_c` structure to include new font-related members

* Add `getDmapResArchive` method to retrieve `mpDmapResArchive`

* Refactor `d_menu_dmap_c` structure to replace padding with `arr_0x1AFC` array and update `mMsgProc` definition.

* Match `dMs_dmap_create` implementation to initialize required buffers, fields, and objects.

* Match `dMs_dmap_delete` implementation to properly free allocated resources and reset pointers.

* Match `dMs_item_delete` implementation to properly free allocated resources and reset pointers.

* Add parameter names to `dMs_collect_create`, `dMs_collect_create2`, `dMs_collect_delete`, `dMs_fmap_create`, and `dMs_fmap_delete` functions.

* Add getter methods for `CollectResArchive`, `OptionResArchive`, and `SaveResArchive`

* Refactor `d_menu_collect` structure to update archive and texture buffer setters, and adjust member definitions

* Match `dMs_collect_create` implementation to initialize resources, allocate buffers, and set up archives and objects.

* Refactor `d_menu_collect` to update texture buffer setters, adjust resource handling, and clean up formatting.

* Refactor `d_menu_window` to use texture buffer setter methods instead of direct member assignments.

* Refactor `d_menu_collect` to rename texture buffer variables and update related member definitions and methods.

* Refactor `d_menu_collect` to clean up formatting

* Add `tact_beat` array to define the number of beats for each baton song in `d_menu_collect`.

* Refactor `d_menu_collect` to replace alpha assignments with `show` method calls for improved readability.

* Refactor `d_menu_collect` to standardize hexadecimal offsets with consistent padding.

* Refactor `d_menu_collect` to use `alphaChange` method for modifying alpha values

* Refactor `d_menu_collect` to add `setTimer` method and replace direct `m27E2` assignments with method calls.

* Refactor `d_menu_collect` to use local `archive` variable for consistent resource handling and improved readability.

* Refactor `d_menu_collect` to update text pane color values for consistency.

* Change `d_menu_collect` to use different pane data array.

* Refactor `d_menu_collect` to simplify `m18F8` pane data handling and improve readability.

* Refactor `d_menu_collect` to replace pointer with fixed-size array for `print_format` variable.

* Match `dMenu_Collect_c::screenSet`.

* Refactor `dMenu_Collect_c::screenSet` to relocate `print_format` declaration for improved code clarity.

* Match `dMs_collect_create2`.

* Match `dMs_collect_delete`.

* Refactor fields in `dMenu_Fmap_c` and `dMenu_Fmap2_c`.

* Match `dMs_fmap_create`.

* Match `dMs_fmap_delete`.

* Match `dMenu_FmapSv_c` constructor and destructor usage. Refactor `dMv_CIO_c` initialization for explicit field assignment.

* Match `dMenu_FmapSv_c` destructor and expand class with placeholder accessor methods.

* Refactor `dMenu_Fmap_c` to rename `mSvPtr` field to `fmapSv` for consistency.

* Remove unused padding field `padding_0xC5` from `d_menu_window.h`.

* Add `dDlst_NameIN_c` destructor.

* Add static assert for `dName_c` size validation.

* Add placeholder `genMessage` method in `dNm_HIO_c`.

* Add default constructor to `dName_c`.

* Refactor dummy functions in `d_menu_cloth.cpp` and `d_menu_window.cpp` for clarity.

* Match `dMenu_Window_c` for GZLJ01, GZLE01, and GZLP01.

* Match `dMenu_Window_c` and refactor `dDlst_MENU_CLOTH_c` and `dDlst_MENU_CAPTURE_c` methods for improved clarity and update comments for initialization consistency.

* Refactor `dDlst_MENU_CAPTURE_c` to improve clarity by adding draw flag helper methods and simplifying `draw` logic.

* Refactor `d_menu_window.cpp` to replace direct `mStatus` access with draw flag helper methods for improved clarity.

* Extract `dMenu_base_c` to a new header file for improved modularity and update includes accordingly.

* Extract `dDlst_MENU_CLOTH_c` and `dDlst_MENU_CAPTURE_c` into a new header file for improved modularity and update includes.

* Update includes in `d_menu_capture.h` and remove unused include from `d_menu_window.cpp` for consistency and cleanup.

* Extract `dMenu_FmapSv_c` to a new header file for improved modularity and update includes.

* Restrict `dMenu_Window_c` matching to GZLE01 only.

* Add `title_p` field to `dMenu_Window_c` for PAL version and allocate memory in `d_menu_window.cpp`.

* Update `d/d_menu_window.cpp` to use `Equivalent` instead of `MatchingFor("GZLE01")`.

* Rename `nameOpen` methods to `InputPasswordOpen` in `d/d_menu_window.cpp` and `d_com_inf_game.h` for clarity.

* Make `dummy` functions static in `d_menu_cloth.cpp` and `d_menu_window.cpp` to limit their scope.

* Update `g_profile_MENUWINDOW` definitions in `d/d_menu_window.cpp` for consistency with type usage and naming conventions.

* Remove outdated comments from `d_menu_fmap.h` and `d_menu_item.cpp`.

* Restore `InputPasswordOpen` methods in `d_com_inf_game.h`.
2026-03-31 19:54:00 -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 73c7b44d57 Misc cleanup 2026-03-14 19:09:22 -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
Briggs Baltzell ea7c107eb7 d_menu_cloth matching (#937)
* Add `l_matDL` symbols and assets to config files for all regions for d_menu_cloth

* Extend `daCLOTH_HIO_c` with `JORReflexible` and add static instance `l_HIO` in `d_menu_cloth`

* Refactor `d_menu_cloth.h` to improve naming consistency for member variables.

* Initialize `dMCloth_c` member variables and create HIO child in constructor

* Include `l_matDL` in `d_menu_cloth` and call it in `dMCloth_c::draw`.

* Add private member variables to `daCLOTH_HIO_c` in `d_menu_cloth.h`

* Add virtual destructor to `daCLOTH_HIO_c` in `d_menu_cloth.h`

* Swap `daCLOTH_HIO_c` and `daCLOTH_ChildHIO_c` class definitions and adjust member variables in `d_menu_cloth.h`.

* Remove non-matching comments from `daCLOTH_ChildHIO_c` constructor and destructor in `d_menu_cloth.cpp`.

* Initialize `daCLOTH_HIO_c` member variables and update `daCLOTH_ChildHIO_c` access modifiers in `d_menu_cloth`.

* Remove unused member variables from `daCLOTH_HIO_c` and `daCLOTH_ChildHIO_c` in `d_menu_cloth.h`.

* Match dMCloth_c::dMCloth_c

* Match `dMCloth_c::init`.

* Match `dMCloth_c` destructor.

* Refactor `dMCloth_c` to use `mCurArr` for indexing and update structure definitions in `d_menu_cloth`.

* Define `ARR_SIZE` constant and replace hardcoded array sizes in `d_menu_cloth`.

* Match dMCloth_c::TevSetting

* Match dMCloth_c::TevSettingMenu

* Match `dMCloth_c::TevSettingMenu` and `dMCloth_c::TevSettingFileSelect`.

* Match `dMCloth_c::lightSet1`

* Start matching `dMCloth_c::cloth_init` and update structure definitions to use `INNER_SIZE` constant, optimize initialization logic, and replace redundant assignments with consolidated methods.

* Match `dMCloth_c::setNrmVtx` implementation and update header declaration.

* Match `daCLOTH_HIO_c` destructor implementation.

* Match `dMenu_ClothCreate`, `dMenu_ClothDelete`, `dMenu_ClothExecute`, `dMenu_ClothDraw`, and `dMenu_ClothIsDelete` implementations and update related structure definitions.

* Update `g_fopAc_Method` reference to `g_fopMsg_Method` in cloth menu structure.

* Match `dMCloth_c::cloth_move` implementation and update type definitions for `field_0xa` and `field_0x34` to `s16`.

* Start matching `dMCloth_c::cloth_move_sin` and `dMCloth_c::cloth_move_simple` implementations.

* Match `dMCloth_c::ShadowTevSetting` implementation.

* Match `dMCloth_c::ShadowTevSettingMenu` and `dMCloth_c::ShadowTevSettingFileSelect` implementations.

* Match `dMCloth_c::alpha_out` implementation.

* Match `dMCloth_c::plot` implementation and minor formatting fix in `dMCloth_c::ShadowTevSettingMenu`.

* Refactor `d_menu_cloth` to replace s16 color fields with `GXColorS10` and `GXColor` structures. Update all related logic and structure definitions accordingly.

* Match `dMCloth_c::draw` implementation, refactor initialization of `field_0x10`, and update associated structure definitions.

* Match `dMCloth_c::plot_shadow` implementation and update parameter names in `plot` and `plot_shadow` declarations.

* Update `d_menu_cloth` to use `msg_method_class` and `msg_process_profile_definition`. Refactor structure definitions and add TODO comment for size clarification.

* Add member comments in `dMenu_ClothMethodTable`

* Refactor `d_menu_cloth` to improve pointer arithmetic in `plot` loop and add missing implementations for `getOffsetVec` and `getShadowPos`.

* Refactor `dMCloth_c::plot` to improve naming consistency for loop variables and pointer arithmetic.

* Refactor `d_menu_cloth` to replace repeated member accesses with `HIO_CHILD` macro for improved readability and maintainability.

* Rename fields in `d_menu_cloth`

* Add clarifying comments in `dMenu_ClothMethodTable` about function order and usage

* Use `TRUE` and `FALSE` macros instead of literal values in `d_menu_cloth` methods for consistency.

* Replace numeric cloth type values with `MenuClothType` enum for improved readability and maintainability in `d_menu_cloth`.

* Refactor `dMCloth_c::cloth_init`: replace raw pointer arithmetic with `set` calls for improved clarity and maintainability.

* Refactor `MENU_CLOTH_TYPE_2` logic: replace hardcoded rotation calculation with `cM_deg2s` for clarity and maintainability.

* Change `wavePreSteps` type from `u16` to `s16` in `d_menu_cloth` for alignment with signed calculations.

* Replace hardcoded angle conversion with `cM_deg2s` in `MENU_CLOTH_TYPE_0` logic for improved clarity and maintainability.

* Change `mWaveProgress` type from `u16` to `s16` in `d_menu_cloth` for consistency with signed calculations.

* Match `cloth_init` in `d_menu_cloth`

* Fix `INNER_SIZE` iteration in `d_menu_cloth` to properly handle loop bounds.

* Update vertex attribute formats in `d_menu_cloth` for improved correctness.

* Add inline utility function `GXColor4x8` to `GX.h` for streamlined color input handling

* Refactor triangle strip generation in `d_menu_cloth` for improved readability and maintainability.

* Refactor vertex and texture coordinate handling in `dMCloth_c::plot_shadow` for improved clarity and correctness.

* Refactor vertex handling in `d_menu_cloth` to group vertex and texture operations for improved readability and structure.

* Add `GXNormal1x16` and `GXColor3x8` inline utility functions to `GX.h` for simplified normal and color input handling.

* Update vertex format in `d_menu_cloth` to use `GXPosition1x16` and `GXNormal1x16` for improved attribute handling.

* Add `dMs_clothOnly_create` and `dMs_clothOnly_delete` implementations in `d_menu_window`

* Implement `dMs_cloth_create` and `dMs_cloth_delete` functions in `d_menu_window` and update related structure definitions.

* Replace hardcoded cloth type with `MENU_CLOTH_TYPE_2` constant in `d_menu_window`.

* Refactor `MENU_CLOTH_TYPE` enum names for clarity and update all references across `d_menu_cloth`, `d_s_name`, and `d_menu_window`.

* Refactor `mChildren` array indexing in `daCLOTH_HIO_c` constructor to use `MENU_CLOTH_TYPE` constants for improved readability and maintainability.

* Refactor `color1` and `color2` fields to `clothColor` and `shadowColor` for improved clarity in `d_menu_cloth` structure and related logic.

* Simplify alpha blending logic by removing redundant variables in `d_menu_cloth`.

* Refactor `mColor1`/`mColor2` to `mClothColor`/`mShadowColor` for improved clarity in `d_menu_cloth` and update all related logic.

* Add temporary `dummy0` function in `d_menu_window` for placeholder debug strings.

* Refactor position array access in `d_menu_cloth` to use `getPos()` result for better clarity and maintainability.

* Change `waveFreqX` and `waveFreqY` types from `u16` to `s16` in `d_menu_cloth` structure for consistency.

* Add demo version-specific mipmap handling logic in `d_menu_cloth` initialization.

* Remove demo version-specific mipmap handling logic in `d_menu_cloth` initialization.

* Match `cloth_move_sin` and `cloth_move_simple`.

* Refactor loop variable initialization in `d_menu_cloth` for improved clarity.

* Refactor variable names in alpha calculation for improved clarity in `d_menu_cloth`.

* Inline vertex index calculations in `d_menu_cloth` to simplify code and reduce redundant variables.

* Match `plot` and `plot_shadow`.

* Refactor `lightDistance` variable in `d_menu_cloth` for improved clarity.

* Inline empty destructor for `daCLOTH_HIO_c` in `d_menu_cloth` to simplify code.

* Match `plot` and `plot_shadow` in demo build.

* Update vertex attribute formats and streamline vertex function calls in `d_cloth_packet`.

* Match `cloth_init` for JP version

* Match `init` for JP version

* Match `draw` for JP version

* Add TODO note to identify superclass for correct size in `menu_cloth_class`.

* Match `d_menu_cloth` for specific regions: GZLJ01, GZLE01, GZLP01.

* Adjust `plot_shadow` parameters in `d_menu_cloth` for consistent shadow scaling.

* Add dummy functions to ensure correct float order in `d_menu_cloth`.

* Use version-specific scale values for `MENU_CLOTH_TYPE_DEFAULT` in `d_menu_cloth`.

* Normalize hex color and value formatting in `d_menu_cloth`.

* Add `STATIC_ASSERT` checks for struct size validation in `d_menu_cloth`.

* Rename ambiguous `field` members to `padding` in `d_menu_cloth` and update struct size.

* Replace `menu_cloth_class` size calculation with `sizeof(dMCloth_c)` in `d_menu_cloth`.

* Revert "Replace `menu_cloth_class` size calculation with `sizeof(dMCloth_c)` in `d_menu_cloth`."

This reverts commit 3920b07e1a.

* Revert "Rename ambiguous `field` members to `padding` in `d_menu_cloth` and update struct size."

This reverts commit 153ee490bf.

* Rename placeholder fields to `padding_*` in `d_menu_cloth` for clarity.

* Update `menu_cloth_class` size handling with `STATIC_ASSERT` and padding.

* Clarify comment for `dMenu_ClothMethodTable` initialization.

* Replace hardcoded offsets with calculated `INNER_SIZE`-based sizes in `d_menu_cloth`.

* Remove stray comments in `setClothType` definition and invocation.

* Annotate `mStatus` with offset comment in `dDlst_MENU_CAPTURE_c`.

* Replace `g_dComIfG_gameInfo.play` calls with `dComIfGp_` equivalents in `d_menu_window`.
2026-03-11 23:54:58 -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
TetrisGG 847a5e98bf d_a_obj_mkie - matching retail (#931)
* d_a_obj_mkie - matching

* review changes
2026-02-15 10:23:06 -05:00
Briggs Baltzell ca9481dcc9 d_cloth_packet matching (#928)
* Match dCloth_packet_c::setMtx

* Match dCloth_packet_c::setGlobalWind

* Match dCloth_packet_c::dCloth_packet_c constructor implementation

* Match dCloth_packet_c::getFactor and get_cloth_anim_sub_factor implementation

* Match dCloth_packet_c::cloth_move implementation

* Match dCloth_packet_c::setNrm implementation

* Match dCloth_packet_c::init and default_factor_checkCB implementation

* Match dCloth_packet_c::draw implementation

* Match dCloth_packet_c::cloth_draw implementation

* Match dCloth_packet_c::plot implementation

* Match dCloth_packet_c::TexObjLoad implementation

* Match dCloth_packet_c::TexObjInit implementation

* Match dCloth_packet_c::TevSetting implementation

* Match dCloth_packet_c::dCloth_packet_create implementation

* Match dCloth_packet_c::TevSetting implementation

* Match dCloth_packetXlu_c::TevSetting implementation and make dCloth_packet_c members protected

* Match dCloth_packetXlu_c::cloth_draw implementation

* Match dClothVobj03_c::cloth_copy implementation and update member definitions

* Match dClothVobj04_c, dClothVobj05_c, and dClothVobj07_0_c::cloth_copy implementations and update member definitions

* Match dClothVobj03_c::init implementation, update cloth_counter definitions, and add new member variables

* Match `dClothVobj04_c::init`, `dClothVobj05_c::init`, and `dClothVobj07_0_c::init` implementations, and add new member variables.

* Match `dClothVobj03_c::dClothVobj03_create` and constructor implementations, update member definitions, and add new logic checks.

* Match `dClothVobj03_c::cloth_move` implementation

* Match `dClothVobj04_c`, `dClothVobj05_c`, and `dClothVobj07_0_c::cloth_move` implementations

* Match `dClothVobj03_c`, `dClothVobj04_c`, `dClothVobj05_c`, and `dClothVobj07_0_c::TexObjInit` implementations, update member definitions, and initialize `mTlutObj`.

* Match `TexObjLoad` implementations for `dClothVobj03_c`, `dClothVobj04_c`, `dClothVobj05_c`, and `dClothVobj07_0_c`.

* Fix `dClothVobj04_c::cloth_move`

* Match `dClothVobj04_create`, `dClothVobj05_create`, and `dClothVobj07_0_create` implementations, update parameter definitions, and add new constructor logic.

* Update parameter names in `dClothVobj05_VtxFactorCB` and `dClothVobj07_0_VtxFactorCB` for consistency.

* Adjust parameter values in `dClothVobj05_create` and `dClothVobj07_0_create` for consistency with expected behavior.

* Match `dClothVobj05_VtxFactorCB` and `dClothVobj07_0_VtxFactorCB` implementations and update return logic.

* Fix constructors

* Refactor repetitive parameter assignments in `dCloth_packet_c` with `setParam` and `setWindPower` for cleaner and more maintainable code.

* Add `setFactorCheckCB` call in `dCloth_packet_c` initialization

* Refactor `dCloth_packet_c` and related classes to eliminate redundant success checks with `chkCreateBuff` helper method.

* Refactor `dCloth_packet_c` and related classes to use getter methods for cleaner access and rename methods for improved clarity.

* Simplify constructors for `dClothVobj03_c`, `dClothVobj04_c`, `dClothVobj05_c`, and `dClothVobj07_0_c` by removing redundant parameters.

* Replace `field_0x109` with `mIsIndoors` for improved clarity and consistency across `dCloth_packet_c` and related classes.

* Replace `VECDotProduct` with `inprod` method in `dCloth_packet_c` for improved readability and modern syntax usage.

* Make `top_pointer` and `cloth_counter` members private in multiple `dClothVobjXX_c` classes for encapsulation.

* Match cloth creation functions

* Add `l_alpha_matDL` assets and update `GXCallDisplayList` usage in `dCloth_packetXlu_c`

* Match dCloth_packet_c::init

* Match dCloth_packet_c::setNrm

* Refactor dCloth_packet_c to use mDoMtx_stack_c methods

* Match `get_cloth_anim_sub_factor` implementation in `dCloth_packet_c`.

* Refactor `getFactor` in `dCloth_packet_c` to use a bitmask for neighbor checks, enhancing code clarity and efficiency.

* Match dCloth_packet_c::cloth_move

* Match dCloth_packet_c::setGlobalWind

* Match dCloth_packet_c::plot implementation

* Remove unused virtual function declarations

* Update `d/d_cloth_packet.cpp` to Matching in configure.py

* Refactor field_0x108 and mIsIndoors to boolean types, rename, and add explanatory comments.

* Update `d/d_cloth_packet.cpp` to `MatchingFor("GZLE01")` in configure.py

* Add new material and alpha material configurations for `d_cloth_packet` across GZLP01, GZLJ01, and D44J01

* Update `d/d_cloth_packet.cpp` to `Matching` in configure.py

* Update `d/d_cloth_packet.cpp` to `MatchingFor("GZLE01", "GZLP01")` in configure.py

* Add conditional GXSetNumIndStages and resetVcdVatCache for non-JPN versions in `dCloth_packet_c::draw`

* Update `d/d_cloth_packet.cpp` to `MatchingFor("GZLJ01", "GZLE01", "GZLP01")` in configure.py

* Matched dCloth_packet_c::dCloth_packet_c for `VERSION_DEMO` in `d/d_cloth_packet.cpp`

* Matched dCloth_packet_c::cloth_move for `VERSION_DEMO` in `d/d_cloth_packet.cpp`

* Matched dCloth_packet_c::draw for `VERSION_DEMO` in `d/d_cloth_packet.cpp`

* Matched dCloth_packet_c::TexObjInit for `VERSION_DEMO` in `d/d_cloth_packet.cpp`

* Matched dClothVobjXX_c::TexObjInit for `VERSION_DEMO` in `d/d_cloth_packet.cpp`

* Update `d/d_cloth_packet.cpp` to `Matching` in configure.py

* Replaced direct member access with getter methods in `d/d_cloth_packet.cpp`

* Added `f` suffix to floating-point literals in `d/d_cloth_packet.cpp` for consistency.
2026-02-12 01:42:21 -05:00
ssorenson130 579931b72c d_a_obj_volcano matching (#924)
* start

* startfire

* some partial matches

* matching

* cleanup

* demo matching
2026-02-11 22:45:53 -05:00
Roland 2168699559 d_a_npc_rsh1 matching (#927)
* 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
2026-02-11 22:40:15 -05:00
Roland c79fa65efd d_a_npc_ls1 matching (#925)
* 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
2026-02-11 22:31:05 -05:00
Roland 1763262970 d_a_oship matching (#929)
* 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
2026-02-11 22:24:08 -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
Roland ba4a7b481c d_a_obj_buoyrace - matching (#921)
* 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
2026-01-12 14:17:01 -05:00
Roland 6893c2588e d_a_goal_flag - matching (#918)
* 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
2026-01-09 13:09:23 -05:00
Lord-McSweeney ca83b5d1ae d_file_error matching (#915)
* d_file_error decompiled

* Use dComIfGs_getPalLanguage

* Resolve review comments

* d_file_error matching for non-debug
2026-01-01 14:14:13 -05:00
LagoLunatic a0d59ce00e Add const to TVec2 ctor to match TVec3 2025-12-29 14:12:14 -05:00
LagoLunatic 10a6460011 J3DCluster almost matching 2025-12-29 14:09:54 -05:00
LagoLunatic a7421f5f66 Add UNUSED macro, enable clangd unused parameter warnings 2025-12-29 13:39:55 -05:00
LagoLunatic ab23a2693d msgStatus cleanup 2025-12-29 13:34:48 -05:00
LagoLunatic d272deb179 ospbox OK for demo 2025-12-29 13:28:29 -05:00
LagoLunatic 1c3762cf14 Move daPy methods into d_a_player headers 2025-12-29 13:20:45 -05:00
LagoLunatic 8651f98984 Make getEvent return a pointer instead of a reference, resolve tbox fakematch 2025-12-29 13:05:34 -05:00
LagoLunatic e095de7b01 Fix d_a_obj_gnnbtltaki and d_a_obj_gnndemotakie create_heap 2025-12-29 12:59:43 -05:00