* Fix remaining <string> -> <cstring> for GCC compilation (#3114 follow-up)
MWerks' <string> header transitively includes C string functions
(memcpy, strlen, strcmp, etc.), but GCC/Clang's <string> is the C++
std::string header. These files all use C string functions and should
include <cstring> instead.
* Use std::isnan instead of isnan for GCC compilation
GCC's <cmath> places isnan in the std namespace. Using the unqualified
isnan fails to compile with GCC/Clang.
* Fix cCcD_Src types: s32 -> u32 for bitmask fields
cCcD_SrcObjCommonBase::mSPrm, cCcD_SrcObjTg::mType, and
cCcD_SrcObjAt::mType are used as bitmasks (SetType/SetSPrm take u32,
MskType/MskSPrm use u32, values like 0xFFFFFFFF are common in
aggregate inits). Change from s32 to u32 to match usage.
Also fix AT_TYPE_WOLF_ATTACK/AT_TYPE_UNK to use unsigned literals,
and remove now-unnecessary (s32) casts on hex literals in collision
source data.
* Mark dummy() functions as static to avoid multiple definition errors
These decomp artifact functions have the same name and signature across
TUs, causing linker errors when building as a single binary.
* move math to cmath
* replace stdarg to cstdarg
* change stdint to stdint.h
* minor fixes
* change stdio to cstdio
* change stdlib to stdlib
* renamed ctype to cctype
* fix missing argument for UNSET_FLAG
* first round of constants cleanup
* move m_PI_D definition
* remove compatibility comment
* add future version of angle subtracting with/without cast
* whitespace change to run builds again
* Last fix for standard compiler error
* adding define guards around headers
* rename cmath.h and climits.h to cmath and climits respectively
* renaming cstdarg.h to cstdarg
* renaming cstdlib.h to cstdlib
* renaming cstring.h to cstring
* renaming cstdio.h to cstdio
* renaming cmath locale ctype
* renaming stdarg string and va_list
* renaming cstddef
* renaming stdio stddef stdlib
* renaming algorithm, functional, iterator, memory, and utility
* renaming bitset, cstdint, limits, and stdint
* renaming new and type_traits
* update quote includes for standard library headers to angle bracket includes
* Debug matches
* Match daAlink_c::procGrassWhistleWait
* Match JASAramStream::channelProc
* More debug matches
* Match JAUStreamStaticAramMgr_::deleteStreamAram and bitset inlines
* Fix some fakematches
* Fix gameinfo player info not being a struct
* Update bug comments
* Fix procids in alink
* d_a_scene_exit OK
* Remove d_a_npc3.cpp
This file appears to not actually be real and the asserts in its
functions all reference d_a_npc2.cpp instead.
* d_a_npc debug almost matching
* Fix GetPolyIndex and GetBgIndex, fixing a couple regallocs
* Match daNpcCd2_c::checkFearSituation and daNpcCd2_c::getAnmP
* Match daAlink_c::jointControll
* Clean up float class checks
* Move float constants to global.h
* Fix clang union handling (affects all TUs including d_camera.h)
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.
* Link all TUs that already match on debug
In order to link TUs for debug, most functions seem to need to have their alignment set to 16 in symbols.txt. There are a few hundred functions that seem to be the exception and break when their alignment is set to 16, but I don't know the reason for this.
* Remove some fakematches (nosyminline/sym off) for weak func order in retail
* Fix clang not knowing that MSL_C++ is C++
* Link more debug TUs
* Fix missing PAL split
* Fix wrong slashes being used in includes
* RZDE01_00: Fix incorrect capitalization in config.yml
* Add RZDE01_00 to configure task
* Revert configure.py to use MatchingFor
* Fix PAL splits and symbols, link matching PAL TUs
* d_save debug cleanup / d_s_menu debug
* gameinfo / kankyo struct debug fixes
* pal building ok
* jp building ok
* some tests with jp
* some more pal/jp tests
* Fix missing arg to JUT_ASSERT
* Fix some MWCC version diff errors
* Compile m_Do_ext, d_demo, actor_mng
* Add VSCode task to quickly switch between versions
* Unlink magLift for debug
* Update the hash of the debug dol
The old cbea5fa... hash here was for the dol generated by the alf2dol.py script, which produces incorrect alignment.
The dol with the new hash can be obtained by using `dtk elf2dol` to convert the debug .alf file to a dol.
The DOL now builds OK.
* Fix all debug REL dtor splits
All RELs now also build OK, meaning `ninja build/ShieldD/ok` now succeeds.
* Add genMessage declarations to all HIO subclasses
* Fixing more compilation errors
* m_Do_mtx 100% on debug
Cannot be linked due to weak function name mangling?
* Improve various matches
* Fix all remaining compilation errors
* Fix new compilation errors from main
* Fix retail regression
* Link f_pc_profile_lst