* 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
* 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
* daNpc_Cb1_c Almost OK
Down to regswaps/minor instruction issues
* Oops
That inline was fake
* Some Cleanup
- Fill in more inlines
- Reorganize daNpc_Cb1_c inlines
- Use inlines more
- Some naming and typing consistency
* Naming, Consistency Tweaks
- TRUE/FALSE macros for all cases of BOOL, use int -> BOOL sometimes
- Rename HIO to be consistent with other NPCs
- Animation enum
* Some HIO Names
* Clarity Tweaks
- NULL in more asserts
- Squared constants
Union members with non-trivial ctors/dtors is undefined behavior and clangd normally throws a fit and refuses to parse the whole union, but it seems to be possible to ifdef the problematic ctors out for non-mwerks compilers and explicitly tell modern compilers to use the defaults instead. Thanks to encounter for this fix.
* Add helper functions for d_attention
* Copy and adapt code from TP
* Move for better matching layout
* Clean up includes for d_attention.cpp
* Give dAttention_c::nextAttention a return
* Use enums in dAttention_c::getActionBtnB and slight reformat
* Change return types for comparison code to match
I don't love this
* Implement dAttList_c::calcWeight
* Implement dAttention_c::sortList
* Implement dAttDraw_c::draw
* Implement dAttDraw_c::setAnm
* Implement dAttention_c::chaseAttention
* Implement judgement related functions
* Implement dAttention_c::Run and runDrawProc
* Implement dAttention_c::Draw
Actually finish Draw
* Looks like dAttention_c::stockAttention had an unused return value
* Give d_Attention_c::mLockOnState an enum
* Rename field_0x02c to mDrawAttnPos based on TP
* Add comments for fields of d_attention
* Give d_attention's flags an enum (although without names)
* Undo type change for dAttention_c::{chk,set,clr}Flag
Co-Authored-By: LagoLunatic <LagoLunatic@users.noreply.github.com>
* Do not spell the `this` pointer
Co-Authored-By: LagoLunatic <LagoLunatic@users.noreply.github.com>
* Deal with resource enums and inlines
* Move PLAYER_STATUS_FLAG_MAGIC_JUDGEMENT to daPy__PlayerStatus0 enum
* Use inlines and macros
* Add mDoCPd_L_LOCK_BUTTON inline, debug maps claim it exists
Nothing else uses it
* Update TODO comments
* Debug maps claim runXyCheckCB was used but it only makes sense if modified
* Use dComIfGp_getPlayer instead of directly indexing the array
* Locate a few more inlines
* Do not cast to AttentionFlags enum type
* Update configure script
---------
Co-authored-by: LagoLunatic <LagoLunatic@users.noreply.github.com>
* f_op_msg_mng work
* Fix Some Conflicts
Haven't had much chance to work on actual progress, still looking to do more matching before merge
* Tiny bit of Work
Little bit of cleanup, start on a couple more functions
* More Matches
Also add back some missing nonmatch comments
* Fixes
* JPN ifdefs
* Inline Fix
Also force one match (there's no way that casting is real)
* Reorder Strings
Fix rodata, I think this order is also slightly more accurate to the function (but I'm not really trying to match it right now anyways)
* initial progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* fix outdated member names
* more progress
* more progress
* more progress
* more progress
* more progress
* more progress
* fixed deprecated member references
* more progress
* more progress
* more progress
* fix deprecated member references
* more progress
* more progress
* more progress
* more progress
* more progress
* check in for review
* remove comment
* initial PR changes
* more PR changes
* more PR changes
* added anonymous struct as class member
* reverted changes to `stage_camera2_data_class`
* added `dCamera_event_data`, `dCamera_monitoring_things` and `dCamera_DMC_system` from debug maps
* more progress
* more progress
* realmatch for `camera_draw`
* PR changes
* fix broken merge
* formatting
* Reverted change to `camSphChkdata` that caused `sph_chk_callback` match to regress
* Reverted change to `BG` struct that caused ctor and dtor match to regress