* Wrap >4-char literals in a MULTI_CHAR macro
Modern compilers do not support CW's non-standard behavior with
>4 char literals. We can, however, use a constexpr function to
compute the u64 values directly. This leaves <=4 char literals
unchanged.
* Replace non-pointer usages of NULL with 0
* Define NULL to nullptr on C++11 and above
* Fix more -Wpointer-arith and -Woverflow warnings
* Replace u32/s32 with uintptr_t/intptr_t where appropriate
* JSUOutputStream: Overload all standard int types
* 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.
There are a few places where JASGlobalInstance have their sInstance storage implemented via template specialization. The problem is that these have no initializer, which means that they are not proper definitions (only declarations) in standards-compliant C++. MSVC and (evidently) MWCC accept this, but modern Clang and GCC do not and won't emit symbols.
I've added a macro that properly initializes these outside MWCC.
Also, JASGlobalInstance<JAUSectionHeap> was only being declared in each actor file that used it, which sounds incorrect? Not sure about this but I added it to m_Do_main too, again behind MWERKS check.
* 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
* J3D debug work
* Clean up JSystem GXColor ctors, remove a couple fakematches
* Update symbols.txt
* Fix res include syntax
* Remove fakematch that isn't necessary anymore
* Fix some Shield regressions
* Improving compatibility with standard cpp compiler
* Add __REGISTER macro for non mwcc compatibility
* Fix for PR comments
* fix missing define for revolution
* Simplifying cSAngle conversion
* Misc debug matches
* Fix JASBasicWaveBank weak func order
* Remove more dol2asm stuff, fix missing includes
* Some data fixes
* Update comments
* d_file_sel_warning is already OK
* Fix Z2 splits
* Fix movebox namespace
* Fix inlining issue in m_Do_ext
* Fix Z2 splits for P and J
* Misc matches
* Remove more old dol2asm stuff
* Remove dCcS::SetMass-related fakematches
No longer necessary with the PCH for some reason.
* Use attention types enum in more places
* Remove more dol2asm stuff
* Clean up matDL_dis.py
* Misc debug matches
* Fix d_map weak function order
* Remove old nonmatching comments
* d_menu_dmap and JASAudioThread OK, fix weak func order and rodata alignment
* More misc matches
* Debug work + some retail regalloc fixes
* Use AUDIO_INSTANCES in places it's missing, link d_a_e_bee
* Link m_Do_machine
* Fix clang putting other includes before the pchs
* Link some more debug TUs that already match