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`.
This commit is contained in:
Briggs Baltzell
2026-03-31 18:54:00 -05:00
committed by GitHub
parent 7df5ceeb49
commit 547284c1de
23 changed files with 2448 additions and 370 deletions
+200 -129
View File
@@ -11,6 +11,16 @@
static dMc_HIO_c g_mcHIO;
// Number of beats in each baton song.
static const u32 tact_beat[] = {
/* Wind's Requiem */ 3,
/* Ballad of Gales */ 4,
/* Command Melody */ 4,
/* Earth God's Lyric */ 6,
/* Wind God's Aria */ 6,
/* Song of Passing */ 3,
};
/* 8019BE8C-8019BF14 .text __ct__9dMc_HIO_cFv */
dMc_HIO_c::dMc_HIO_c() {
m46 = 40;
@@ -29,102 +39,149 @@ dMc_HIO_c::dMc_HIO_c() {
/* 8019BF14-8019CB5C .text screenSet__15dMenu_Collect_cFv */
void dMenu_Collect_c::screenSet() {
/* Nonmatching */
char* print_format;
static const u32 l_ft[] = {
'ft00', 'ft01', 'ft02', 'ft03', 'ft04', 'ft05', 'ft06', 'ft07',
'ft08', 'ft09', 'ft10', 'ft11', 'ft12', 'ft13', 'ft14',
'ft00',
'ft01',
'ft02',
'ft03',
'ft04',
'ft05',
'ft06',
'ft07',
'ft08',
'ft09',
'ft10',
'ft11',
'ft12',
'ft13',
'ft14',
};
static const u32 l_fd[] = {
'fd00', 'fd01', 'fd02', 'fd03', 'fd04', 'fd05', 'fd06', 'fd07',
'fd08', 'fd09', 'fd10', 'fd11', 'fd12', 'fd13', 'fd14',
'fd00',
'fd01',
'fd02',
'fd03',
'fd04',
'fd05',
'fd06',
'fd07',
'fd08',
'fd09',
'fd10',
'fd11',
'fd12',
'fd13',
'fd14',
};
static const u32 l_car[] = {
'car1', 'car2', 'car3', 'car4',
'car1',
'car2',
'car3',
'car4',
};
static const u32 l_tri[] = {
'tri0', 'tri1', 'tri2', 'tri3', 'tri4', 'tri5', 'tri6', 'tri7',
'tri0',
'tri1',
'tri2',
'tri3',
'tri4',
'tri5',
'tri6',
'tri7',
};
static const u32 l_sit[] = {
'it16', 'it14', 'it15',
'it16',
'it14',
'it15',
};
static const u32 l_sik[] = {
'ik16', 'ik14', 'ik15',
'ik16',
'ik14',
'ik15',
};
static const u32 l_ci[] = {
'ci10', 'ci09', 'ci08', 'ci07', 'ci06', 'ci05',
'ci04', 'ci03', 'ci02', 'ci01', 'ci00',
'ci10',
'ci09',
'ci08',
'ci07',
'ci06',
'ci05',
'ci04',
'ci03',
'ci02',
'ci01',
'ci00',
};
static const u32 l_htp[] = {
'htp2', 'htp1', 'htp3',
'htp2',
'htp1',
'htp3',
};
static const u32 l_tit[] = {
'it08', 'it09', 'it10', 'it11', 'it12', 'it13',
'it08',
'it09',
'it10',
'it11',
'it12',
'it13',
};
static const u32 l_tik[] = {
'ik08', 'ik09', 'ik10', 'ik11', 'ik12', 'ik13'
};
static const u32 l_tik[] = {'ik08', 'ik09', 'ik10', 'ik11', 'ik12', 'ik13'};
static const u32 l_cn[] = {
'cn01', 'cn02', 'cn03', 'cn04', 'cn05', 'cn06'
};
static const u32 l_cn[] = {'cn01', 'cn02', 'cn03', 'cn04', 'cn05', 'cn06'};
static const u32 l_wn[] = {
'wn01', 'wn02', 'wn03', 'wn04', 'wn05', 'wn06'
};
static const u32 l_wn[] = {'wn01', 'wn02', 'wn03', 'wn04', 'wn05', 'wn06'};
static const u32 l_i0[] = {
'i011', 'i021', 'i031', 'i041', 'i051',
'i061'
};
static const u32 l_i0[] = {'i011', 'i021', 'i031', 'i041', 'i051', 'i061'};
static const u32 l_i1[] = {
'i012', 'i022', 'i032', 'i042', 'i052', 'i062'
};
static const u32 l_i1[] = {'i012', 'i022', 'i032', 'i042', 'i052', 'i062'};
static const u32 l_bs[] = {
'bs01', 'bs02', 'bs03', 'bs04', 'bs05', 'bs06'
};
static const u32 l_bs[] = {'bs01', 'bs02', 'bs03', 'bs04', 'bs05', 'bs06'};
static const u32 l_hmb[] = {
'hmb1', 'hmb2', 'hmb3', 'hmb4', 'hmb5', 'hmb6'
};
static const u32 l_hmb[] = {'hmb1', 'hmb2', 'hmb3', 'hmb4', 'hmb5', 'hmb6'};
static const u32 l_wit[] = {
'it00', 'it01', 'it02', 'it03', 'it04'
};
static const u32 l_wit[] = {'it00', 'it01', 'it02', 'it03', 'it04'};
static const u32 l_wik[] = {
'ik00', 'ik01', 'ik02', 'ik03', 'ik04'
};
static const u32 l_wik[] = {'ik00', 'ik01', 'ik02', 'ik03', 'ik04'};
static const u32 l_ip[] = {
'ip09', 'ip07', 'ip05', 'ip03', 'ip01'
};
static const u32 l_ip[] = {'ip09', 'ip07', 'ip05', 'ip03', 'ip01'};
static const u32 l_wk[] = {
'wk00', 'wk01', 'wk02', 'wk03',
'wk00',
'wk01',
'wk02',
'wk03',
};
static char* triTex[8] = {
"triforce_00.bti", "triforce_01.bti", "triforce_02.bti", "triforce_03.bti",
"triforce_04.bti", "triforce_05.bti", "triforce_06.bti", "triforce_07.bti",
"triforce_00.bti",
"triforce_01.bti",
"triforce_02.bti",
"triforce_03.bti",
"triforce_04.bti",
"triforce_05.bti",
"triforce_06.bti",
"triforce_07.bti",
};
static char* symTex[3] = {
"god_symbol_02.bti", "god_symbol_00.bti", "god_symbol_01.bti",
"god_symbol_02.bti",
"god_symbol_00.bti",
"god_symbol_01.bti",
};
static char* wepTex[5] = {
"sword_00.bti", "shield_00.bti", "gloves_00.bti", "amulet_00.bti", "amulet_01.bti",
"sword_00.bti",
"shield_00.bti",
"gloves_00.bti",
"amulet_00.bti",
"amulet_01.bti",
};
J2DPane* mPane = m004->search('ROOT');
@@ -149,31 +206,30 @@ void dMenu_Collect_c::screenSet() {
m820.mUserArea = m820.pane->mRotation;
if (m820.mUserArea > 180) m820.mUserArea -= 360;
if (m820.mUserArea > 180)
m820.mUserArea -= 360;
((J2DTextBox*)(m740).pane)->setFont(m2474);
((J2DTextBox*)(m778).pane)->setFont(m2470);
((J2DTextBox*)(m740).pane)->setFont(mRFont);
((J2DTextBox*)(m778).pane)->setFont(mFont);
// Couple of functions missing here
((J2DTextBox*)(m740).pane)->setWhite(0xFFFFFFFF);
((J2DTextBox*)(m740).pane)->setCharColor(0xFFFFFFFF);
((J2DTextBox*)(m740).pane)->setGradColor(0xFFFFFFFF);
((J2DTextBox*)(m740).pane)->setCharColor(0x000000FF);
((J2DTextBox*)(m740).pane)->setGradColor(0x000000FF);
((J2DTextBox*)(m778).pane)->setWhite(0xFFFFFFFF);
((J2DTextBox*)(m778).pane)->setCharColor(0xFFFFFFFF);
((J2DTextBox*)(m778).pane)->setGradColor(0xFFFFFFFF);
((J2DTextBox*)(m778).pane)->setCharColor(0x000000FF);
((J2DTextBox*)(m778).pane)->setGradColor(0x000000FF);
fopMsgM_setPaneData(&m858, m004, 'wd');
((J2DTextBox*)(m858).pane)->setFont(m2470);
((J2DTextBox*)(m858).pane)->setFont(mFont);
m2460->setPane(m2470, &m858, &m008, &m040, &m078);
m2460->setPane(mFont, &m858, &m008, &m040, &m078);
fopMsgM_setPaneData(&m890, m004, 'nm00');
((J2DTextBox*)(m890).pane)->setFont(m2470);
((J2DTextBox*)(m890).pane)->setFont(mFont);
fopMsgM_setPaneData(&m8C8, m004, 'nm01');
((J2DTextBox*)(m8C8).pane)->setFont(m2470);
((J2DTextBox*)(m8C8).pane)->setFont(mFont);
fopMsgM_setPaneData(&m900, m004, 'itnm');
fopMsgM_setPaneData(&m938, m004, 'itnk');
@@ -181,17 +237,17 @@ void dMenu_Collect_c::screenSet() {
fopMsgM_setPaneData(&m9A8, m004, 'tl00');
fopMsgM_setPaneData(&m9E0, m004, 'tk00');
for(int i = 0; i < 4; i++) {
for (int i = 0; i < 4; i++) {
fopMsgM_setPaneData(&mA18[i], m004, l_car[i]);
}
fopMsgM_setPaneData(&mAF8, m004, 'wdsv');
fopMsgM_setPaneData(&mB30, m004, 'wdop');
for(int i = 0; i < 4; i++) {
for (int i = 0; i < 4; i++) {
fopMsgM_setPaneData(&mB68[i], m004, l_wk[i]);
}
fopMsgM_setPaneData(&mC48, m004, 'num1');
fopMsgM_setPaneData(&mC80, m004, 'num2');
fopMsgM_setPaneData(&mCB8, m004, 'numc');
@@ -200,61 +256,60 @@ void dMenu_Collect_c::screenSet() {
fopMsgM_setPaneData(&mD60, m004, 'wk0');
fopMsgM_setPaneData(&mD98, m004, 'trim');
fopMsgM_setPaneData(&mDD0, m004, 'tril');
mD98.pane->mDrawAlpha = 1;
mDD0.pane->mDrawAlpha = 1;
for(int i = 0; i < 8; i++) {
mD98.pane->show();
mDD0.pane->show();
for (int i = 0; i < 8; i++) {
fopMsgM_setPaneData(&mE08[i], m004, l_tri[i]);
}
fopMsgM_setPaneData(&mFC8, m004, 'trib');
for(int i = 0; i < 3; i++) {
fopMsgM_setPaneData(&m10A8[i], m004, l_sit[i]);
fopMsgM_setPaneData(&m3F8[i], m004, l_sik[i]);
for (int i = 0; i < 3; i++) {
fopMsgM_setPaneData(&m1000[i], m004, l_sit[i]);
fopMsgM_setPaneData(&m10A8[i], m004, l_sik[i]);
}
if (dComIfGs_isEventBit(dSv_event_flag_c::PLACED_DINS_PEARL)) {
m1000[1].mInitAlpha *= 0.5f;
m10A8[1].mInitAlpha *= 0.5f;
alphaChange(&m1000[1], 0.5f);
alphaChange(&m10A8[1], 0.5f);
}
if (dComIfGs_isEventBit(dSv_event_flag_c::PLACED_FARORES_PEARL)) {
m1000[2].mInitAlpha *= 0.5f;
m10A8[2].mInitAlpha *= 0.5f;
alphaChange(&m1000[2], 0.5f);
alphaChange(&m10A8[2], 0.5f);
}
if (dComIfGs_isEventBit(dSv_event_flag_c::PLACED_NAYRUS_PEARL)) {
m1000[0].mInitAlpha *= 0.5f;
m10A8[0].mInitAlpha *= 0.5f;
alphaChange(&m1000[0], 0.5f);
alphaChange(&m10A8[0], 0.5f);
}
for(int i = 0; i < 11; i++) {
for (int i = 0; i < 11; i++) {
fopMsgM_setPaneData(&m1150[i], m004, l_ci[i]);
}
for(int i = 0; i < 3; i++) {
fopMsgM_setPaneData(&m10A8[i], m004, l_htp[i]);
for (int i = 0; i < 3; i++) {
fopMsgM_setPaneData(&m13B8[i], m004, l_htp[i]);
}
fopMsgM_setPaneData(&m1460, m004, 'htpb');
fopMsgM_setPaneData(&m1460, m004, 'htpb');
for(int i = 0; i < 6; i++) {
for (int i = 0; i < 6; i++) {
fopMsgM_setPaneData(&m1498[i], m004, l_tit[i]);
fopMsgM_setPaneData(&m15E8[i], m004, l_tik[i]);
fopMsgM_setPaneData(&m17A8[i], m004, l_cn[i]);
fopMsgM_pane_class* pPane = &m18F8[i];
fopMsgM_setPaneData(pPane, m004, l_wn[i]);
fopMsgM_setPaneData(&m18F8[i], m004, l_wn[i]);
fopMsgM_setPaneData(&m1A48[i], m004, l_i0[i]);
fopMsgM_setPaneData(&m1B98[i], m004, l_i1[i]);
fopMsgM_setPaneData(&m1CE8[i], m004, l_bs[i]);
fopMsgM_setPaneData(&m1E38[i], m004, l_hmb[i]);
pPane->mPosCenterOrig.x -= 4.0f;
pPane->mPosCenterOrig.y -= 4.0f;
m18F8[i].mPosCenterOrig.x -= 4.0f;
m18F8[i].mPosCenterOrig.y -= 4.0f;
fopMsgM_paneTrans(pPane, 0.0f, 0.0f);
fopMsgM_paneTrans(&m18F8[i], 0.0f, 0.0f);
}
fopMsgM_setPaneData(&m1738, m004, 'i111');
@@ -266,8 +321,8 @@ void dMenu_Collect_c::screenSet() {
for (int i = 0; i < 5; i++) {
fopMsgM_setPaneData(&m2030[i], m004, l_wit[i]);
fopMsgM_setPaneData(&m2148[i], m004, l_wik[i]);
}
}
for (int i = 0; i < 5; i++) {
fopMsgM_setPaneData(&m2260[i], m004, l_ip[i]);
}
@@ -276,50 +331,60 @@ void dMenu_Collect_c::screenSet() {
fopMsgM_setPaneData(&m23B0, m004, 'cc14');
fopMsgM_setPaneData(&m23E8, m004, 'cc07');
fopMsgM_setPaneData(&m2420, m004, 'cc00');
JKRArchive::readTypeResource(m2498, 0xc00, 'TIMG', "baton.bti", dComIfGp_getItemIconArchive());
DCStoreRangeNoSync(m2498, 0xc00);
JKRArchive::readTypeResource(m249C, 0xc00, 'TIMG', "cmap_treasure2.bti", dComIfGp_getItemIconArchive());
DCStoreRangeNoSync(m249C, 0xc00);
for(int i = 0; i < 6; i++) {
((J2DPicture*)m1498[i].pane)->changeTexture(m2498, 0);
((J2DPicture*)m15E8[i].pane)->changeTexture(m2498, 0);
{
JKRArchive* archive = dComIfGp_getItemIconArchive();
JKRArchive::readTypeResource(mTactTexBuffer, 0xc00, 'TIMG', "baton.bti", archive);
DCStoreRangeNoSync(mTactTexBuffer, 0xc00);
}
((J2DPicture*)mCF0.pane)->changeTexture(m249C, 0);
for(int i = 0; i < 8; i++) {
JKRArchive::readTypeResource(m24A0[i], 0xc00, 'TIMG', triTex[i], dComIfGp_getItemIconArchive());
DCStoreRangeNoSync(m24A0[i], 0xc00);
((J2DPicture*)mE08[i].pane)->changeTexture(m24A0[i], 0);
{
JKRArchive* archive = dComIfGp_getItemIconArchive();
JKRArchive::readTypeResource(mMapTexBuffer, 0xc00, 'TIMG', "cmap_treasure2.bti", archive);
DCStoreRangeNoSync(mMapTexBuffer, 0xc00);
}
for (int i = 0; i < 6; i++) {
((J2DPicture*)m1498[i].pane)->changeTexture(mTactTexBuffer, 0);
((J2DPicture*)m15E8[i].pane)->changeTexture(mTactTexBuffer, 0);
}
((J2DPicture*)mCF0.pane)->changeTexture(mMapTexBuffer, 0);
for (int i = 0; i < 8; i++) {
JKRArchive* archive = dComIfGp_getItemIconArchive();
JKRArchive::readTypeResource(mTriforceTexBuffer[i], 0xc00, 'TIMG', triTex[i], archive);
DCStoreRangeNoSync(mTriforceTexBuffer[i], 0xc00);
((J2DPicture*)mE08[i].pane)->changeTexture(mTriforceTexBuffer[i], 0);
}
mE08[4].mUserArea = -1;
m27A8 = mE08[4].mPosCenterOrig.x - mFC8.mPosCenterOrig.x;
m27AC = mE08[4].mPosCenterOrig.y - mFC8.mPosCenterOrig.y;
for(int i = 0; i < 3; i++) {
JKRArchive::readTypeResource(m24A0[i], 0xc00, 'TIMG', symTex[i], dComIfGp_getItemIconArchive());
DCStoreRangeNoSync(m24A0[i], 0xc00);
((J2DPicture*)m1000[i].pane)->changeTexture(m24A0[i], 0);
((J2DPicture*)m10A8[i].pane)->changeTexture(m24A0[i], 0);
}
for (int i = 0; i < 3; i++) {
JKRArchive* archive = dComIfGp_getItemIconArchive();
JKRArchive::readTypeResource(mSymbolTexBuffer[i], 0xc00, 'TIMG', symTex[i], archive);
DCStoreRangeNoSync(mSymbolTexBuffer[i], 0xc00);
((J2DPicture*)m1000[i].pane)->changeTexture((ResTIMG*)mSymbolTexBuffer[i], 0);
((J2DPicture*)m10A8[i].pane)->changeTexture((ResTIMG*)mSymbolTexBuffer[i], 0);
}
for(int i = 0; i < 5; i++) {
JKRArchive::readTypeResource(m24A0[i], 0xc00, 'TIMG', wepTex[i], dComIfGp_getItemIconArchive());
DCStoreRangeNoSync(m24A0[i], 0xc00);
((J2DPicture*)m2030[i].pane)->changeTexture(m24A0[i], 0);
((J2DPicture*)m2148[i].pane)->changeTexture(m24A0[i], 0);
}
for (int i = 0; i < 5; i++) {
JKRArchive* archive = dComIfGp_getItemIconArchive();
JKRArchive::readTypeResource(mItemTexBuffer[i], 0xc00, 'TIMG', wepTex[i], archive);
DCStoreRangeNoSync(mItemTexBuffer[i], 0xc00);
((J2DPicture*)m2030[i].pane)->changeTexture((ResTIMG*)mItemTexBuffer[i], 0);
((J2DPicture*)m2148[i].pane)->changeTexture((ResTIMG*)mItemTexBuffer[i], 0);
}
char print_format[0x10];
sprintf(print_format, "rupy_num_%02d.bti", dComIfGs_getCollectMapNum() / 10);
((J2DPicture*)mC48.pane)->changeTexture(print_format, 0);
sprintf(print_format, "rupy_num_%02d.bti", dComIfGs_getCollectMapNum() % 10);
((J2DPicture*)mC80.pane)->changeTexture(print_format, 0);
return;
}
/* 8019CB5C-8019CD40 .text initialize__15dMenu_Collect_cFv */
@@ -343,8 +408,9 @@ void dMenu_Collect_c::cursorMainMove() {
}
/* 8019E570-8019E584 .text noteCheck__15dMenu_Collect_cFv */
void dMenu_Collect_c::noteCheck() {
u8 dMenu_Collect_c::noteCheck() {
/* Nonmatching */
return 0;
}
/* 8019E584-8019E624 .text noteInit__15dMenu_Collect_cFv */
@@ -548,22 +614,25 @@ void dMenu_Collect_c::_draw() {
}
/* 801A68EC-801A6B28 .text _open__15dMenu_Collect_cFv */
void dMenu_Collect_c::_open() {
bool dMenu_Collect_c::_open() {
/* Nonmatching */
return false;
}
/* 801A6B28-801A6CC8 .text _open3__15dMenu_Collect_cFv */
void dMenu_Collect_c::_open3() {
bool dMenu_Collect_c::_open3() {
/* Nonmatching */
return false;
}
/* 801A6CC8-801A71EC .text _close__15dMenu_Collect_cFv */
void dMenu_Collect_c::_close() {
bool dMenu_Collect_c::_close() {
/* Nonmatching */
return false;
}
/* 801A71EC-801A7710 .text _close3__15dMenu_Collect_cFv */
void dMenu_Collect_c::_close3() {
bool dMenu_Collect_c::_close3() {
/* Nonmatching */
}
@@ -588,11 +657,13 @@ void dMenu_Collect_c::animeStep4(short, short) {
}
/* 801A7D60-801A7F88 .text _open2__15dMenu_Collect_cFv */
void dMenu_Collect_c::_open2() {
bool dMenu_Collect_c::_open2() {
/* Nonmatching */
return false;
}
/* 801A7F88-801A84B4 .text _close2__15dMenu_Collect_cFv */
void dMenu_Collect_c::_close2() {
bool dMenu_Collect_c::_close2() {
/* Nonmatching */
return false;
}