More GCC compatibility/warning fixes (#3118)

* 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
This commit is contained in:
Luke Street
2026-02-28 21:19:17 -07:00
committed by GitHub
parent b5d3b8c059
commit 6a48380461
169 changed files with 1849 additions and 1818 deletions
+23 -23
View File
@@ -165,18 +165,18 @@ int daBalloon2D_c::createHeap() {
JKRArchive* arc = resInfo->getArchive();
mScreen->setPriority("zelda_balloon_game.blo", 0x20000, arc);
dPaneClass_showNullPane(mScreen);
field_0x578 = new CPaneMgr(mScreen, 'n_all', 2, NULL);
field_0x57c = new CPaneMgr(mScreen, 'score_tn', 0, NULL);
field_0x580 = new CPaneMgr(mScreen, 'suji_n', 2, NULL);
field_0x584 = new CPaneMgr(mScreen, 's_set_n', 0, NULL);
field_0x588 = new CPaneMgr(mScreen, 'tas_n', 0, NULL);
field_0x58c = new CPaneMgr(mScreen, 'combo_tn', 0, NULL);
field_0x590 = new CPaneMgr(mScreen, 'num_n', 0, NULL);
field_0x594 = new CPaneMgr(mScreen, 'co_set_n', 2, NULL);
field_0x598 = new CPaneMgr(mScreen, 'bal_3_n', 2, NULL);
field_0x59c = new CPaneMgr(mScreen, 'bal_2_n', 2, NULL);
field_0x5a0 = new CPaneMgr(mScreen, 'bal_1_n', 2, NULL);
field_0x5a4 = new CPaneMgr(mScreen, 'ba_com_n', 2, NULL);
field_0x578 = new CPaneMgr(mScreen, MULTI_CHAR('n_all'), 2, NULL);
field_0x57c = new CPaneMgr(mScreen, MULTI_CHAR('score_tn'), 0, NULL);
field_0x580 = new CPaneMgr(mScreen, MULTI_CHAR('suji_n'), 2, NULL);
field_0x584 = new CPaneMgr(mScreen, MULTI_CHAR('s_set_n'), 0, NULL);
field_0x588 = new CPaneMgr(mScreen, MULTI_CHAR('tas_n'), 0, NULL);
field_0x58c = new CPaneMgr(mScreen, MULTI_CHAR('combo_tn'), 0, NULL);
field_0x590 = new CPaneMgr(mScreen, MULTI_CHAR('num_n'), 0, NULL);
field_0x594 = new CPaneMgr(mScreen, MULTI_CHAR('co_set_n'), 2, NULL);
field_0x598 = new CPaneMgr(mScreen, MULTI_CHAR('bal_3_n'), 2, NULL);
field_0x59c = new CPaneMgr(mScreen, MULTI_CHAR('bal_2_n'), 2, NULL);
field_0x5a0 = new CPaneMgr(mScreen, MULTI_CHAR('bal_1_n'), 2, NULL);
field_0x5a4 = new CPaneMgr(mScreen, MULTI_CHAR('ba_com_n'), 2, NULL);
field_0x578->setAlphaRate(0.0f);
field_0x5a4->setAlphaRate(0.0f);
for (s32 i = 0; i < 10; i++) {
@@ -197,17 +197,17 @@ int daBalloon2D_c::createHeap() {
}
J2DTextBox* combos[2];
J2DTextBox* scores[2];
combos[0] = (J2DTextBox*)mScreen->search('combo_ts');
combos[1] = (J2DTextBox*)mScreen->search('combo_t');
scores[0] = (J2DTextBox*)mScreen->search('score_ts');
scores[1] = (J2DTextBox*)mScreen->search('score_t');
field_0x5a8[0] = (J2DPicture*)mScreen->search('suji_4');
field_0x5a8[1] = (J2DPicture*)mScreen->search('suji_3');
field_0x5a8[2] = (J2DPicture*)mScreen->search('suji_2');
field_0x5a8[3] = (J2DPicture*)mScreen->search('suji_1');
field_0x5a8[4] = (J2DPicture*)mScreen->search('suji_0');
field_0x5a8[5] = (J2DPicture*)mScreen->search('num_1');
field_0x5a8[6] = (J2DPicture*)mScreen->search('num_0');
combos[0] = (J2DTextBox*)mScreen->search(MULTI_CHAR('combo_ts'));
combos[1] = (J2DTextBox*)mScreen->search(MULTI_CHAR('combo_t'));
scores[0] = (J2DTextBox*)mScreen->search(MULTI_CHAR('score_ts'));
scores[1] = (J2DTextBox*)mScreen->search(MULTI_CHAR('score_t'));
field_0x5a8[0] = (J2DPicture*)mScreen->search(MULTI_CHAR('suji_4'));
field_0x5a8[1] = (J2DPicture*)mScreen->search(MULTI_CHAR('suji_3'));
field_0x5a8[2] = (J2DPicture*)mScreen->search(MULTI_CHAR('suji_2'));
field_0x5a8[3] = (J2DPicture*)mScreen->search(MULTI_CHAR('suji_1'));
field_0x5a8[4] = (J2DPicture*)mScreen->search(MULTI_CHAR('suji_0'));
field_0x5a8[5] = (J2DPicture*)mScreen->search(MULTI_CHAR('num_1'));
field_0x5a8[6] = (J2DPicture*)mScreen->search(MULTI_CHAR('num_0'));
for (int i = 0; i < 2; i++) {
combos[i]->setString(32, "");
scores[i]->setString(32, "");