summaryrefslogtreecommitdiff
path: root/src/d/d_menu_ring.cpp
diff options
context:
space:
mode:
authorLuke Street <luke@street.dev>2026-02-28 21:19:17 -0700
committerGitHub <noreply@github.com>2026-02-28 20:19:17 -0800
commit6a48380461bc9baabe1706ba57ca0cedfa2d0c51 (patch)
tree593e054cfcb0250e63917c58b445a7e1f025a023 /src/d/d_menu_ring.cpp
parentb5d3b8c059c10711370437f7db7539cd90f1cb29 (diff)
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
Diffstat (limited to 'src/d/d_menu_ring.cpp')
-rw-r--r--src/d/d_menu_ring.cpp108
1 files changed, 54 insertions, 54 deletions
diff --git a/src/d/d_menu_ring.cpp b/src/d/d_menu_ring.cpp
index 92e81fa350..efb8e0c4fd 100644
--- a/src/d/d_menu_ring.cpp
+++ b/src/d/d_menu_ring.cpp
@@ -48,34 +48,34 @@ static procFunc stick_proc[] = {
dMenu_Ring_c::dMenu_Ring_c(JKRExpHeap* i_heap, STControl* i_stick, CSTControl* i_cStick,
u8 i_ringOrigin) {
static const u64 xy_text[5] = {
- 'yx_text', 'yx_te_s1', 'yx_te_s2', 'yx_te_s3', 'yx_te_s4',
+ MULTI_CHAR('yx_text'), MULTI_CHAR('yx_te_s1'), MULTI_CHAR('yx_te_s2'), MULTI_CHAR('yx_te_s3'), MULTI_CHAR('yx_te_s4'),
};
static const u64 fxy_text[5] = {
- 'fyx_tex', 'fyx_te_1', 'fyx_te_2', 'fyx_te_3', 'fyx_te_4',
+ MULTI_CHAR('fyx_tex'), MULTI_CHAR('fyx_te_1'), MULTI_CHAR('fyx_te_2'), MULTI_CHAR('fyx_te_3'), MULTI_CHAR('fyx_te_4'),
};
static const u64 c_text[5] = {
- 'c_text', 'c_te_s1', 'c_te_s2', 'c_te_s3', 'c_te_s4',
+ MULTI_CHAR('c_text'), MULTI_CHAR('c_te_s1'), MULTI_CHAR('c_te_s2'), MULTI_CHAR('c_te_s3'), MULTI_CHAR('c_te_s4'),
};
static const u64 fc_text[5] = {
- 'fc_text', 'fc_te_s1', 'fc_te_s2', 'fc_te_s3', 'fc_te_s4',
+ MULTI_CHAR('fc_text'), MULTI_CHAR('fc_te_s1'), MULTI_CHAR('fc_te_s2'), MULTI_CHAR('fc_te_s3'), MULTI_CHAR('fc_te_s4'),
};
static const u64 c_text1[5] = {
- 'c_text1', 'c_texs1', 'c_texs2', 'c_texs3', 'c_texs4',
+ MULTI_CHAR('c_text1'), MULTI_CHAR('c_texs1'), MULTI_CHAR('c_texs2'), MULTI_CHAR('c_texs3'), MULTI_CHAR('c_texs4'),
};
static const u64 fc_text1[5] = {
- 'fc_text1', 'fc_texs1', 'fc_texs2', 'fc_texs3', 'fc_texs4',
+ MULTI_CHAR('fc_text1'), MULTI_CHAR('fc_texs1'), MULTI_CHAR('fc_texs2'), MULTI_CHAR('fc_texs3'), MULTI_CHAR('fc_texs4'),
};
static const u64 t_on[5] = {
- 'gr_t_on', 'g_tof_s5', 'g_tof_s6', 'g_tof_s7', 'g_tof_s8',
+ MULTI_CHAR('gr_t_on'), MULTI_CHAR('g_tof_s5'), MULTI_CHAR('g_tof_s6'), MULTI_CHAR('g_tof_s7'), MULTI_CHAR('g_tof_s8'),
};
static const u64 ft_on[5] = {
- 'fr_t_on', 'f_tof_s5', 'f_tof_s6', 'f_tof_s7', 'f_tof_s8',
+ MULTI_CHAR('fr_t_on'), MULTI_CHAR('f_tof_s5'), MULTI_CHAR('f_tof_s6'), MULTI_CHAR('f_tof_s7'), MULTI_CHAR('f_tof_s8'),
};
static const u64 t_off[5] = {
- 'gr_t_of', 'g_tof_s1', 'g_tof_s2', 'g_tof_s3', 'g_tof_s4',
+ MULTI_CHAR('gr_t_of'), MULTI_CHAR('g_tof_s1'), MULTI_CHAR('g_tof_s2'), MULTI_CHAR('g_tof_s3'), MULTI_CHAR('g_tof_s4'),
};
static const u64 ft_off[5] = {
- 'fr_t_of', 'f_tof_s1', 'f_tof_s2', 'f_tof_s3', 'f_tof_s4',
+ MULTI_CHAR('fr_t_of'), MULTI_CHAR('f_tof_s1'), MULTI_CHAR('f_tof_s2'), MULTI_CHAR('f_tof_s3'), MULTI_CHAR('f_tof_s4'),
};
mpHeap = i_heap;
@@ -264,12 +264,12 @@ dMenu_Ring_c::dMenu_Ring_c(JKRExpHeap* i_heap, STControl* i_stick, CSTControl* i
"SCRN/zelda_item_select_icon_message_ver2.blo", 0x20000,
dComIfGp_getRingResArchive());
dPaneClass_showNullPane(mpScreen);
- mpMessageParent = new CPaneMgrAlpha(mpScreen, 'n_all', 2, NULL);
+ mpMessageParent = new CPaneMgrAlpha(mpScreen, MULTI_CHAR('n_all'), 2, NULL);
mpTextParent[0] = new CPaneMgr(mpScreen, 'r_n', 0, NULL);
mpTextParent[1] = new CPaneMgr(mpScreen, 'c_n', 2, NULL);
mpTextParent[1]->setAlphaRate(1.0f);
mpTextParent[2] = NULL;
- mpTextParent[3] = new CPaneMgr(mpScreen, 'c_sen_n', 2, NULL);
+ mpTextParent[3] = new CPaneMgr(mpScreen, MULTI_CHAR('c_sen_n'), 2, NULL);
mpTextParent[4] = new CPaneMgr(mpScreen, 'gr_n', 2, NULL);
mpTextParent[4]->hide();
for (int i = 5; i < 10; i++) {
@@ -301,20 +301,20 @@ dMenu_Ring_c::dMenu_Ring_c(JKRExpHeap* i_heap, STControl* i_stick, CSTControl* i
mItemSlotParam2[i] = (mpItemBuf[i][0]->height / 48.0f * (texScale / 100.0f));
}
}
- mpScreen->search('r_btn_n')->hide();
+ mpScreen->search(MULTI_CHAR('r_btn_n'))->hide();
if (mPlayerIsWolf) {
- mpScreen->search('yx_te_s1')->hide();
- mpScreen->search('yx_te_s2')->hide();
- mpScreen->search('yx_te_s3')->hide();
- mpScreen->search('yx_te_s4')->hide();
- mpScreen->search('yx_text')->hide();
- mpScreen->search('fyx_te_1')->hide();
- mpScreen->search('fyx_te_2')->hide();
- mpScreen->search('fyx_te_3')->hide();
- mpScreen->search('fyx_te_4')->hide();
- mpScreen->search('fyx_tex')->hide();
- mpScreen->search('x_btn_n')->hide();
- mpScreen->search('y_btn_n')->hide();
+ mpScreen->search(MULTI_CHAR('yx_te_s1'))->hide();
+ mpScreen->search(MULTI_CHAR('yx_te_s2'))->hide();
+ mpScreen->search(MULTI_CHAR('yx_te_s3'))->hide();
+ mpScreen->search(MULTI_CHAR('yx_te_s4'))->hide();
+ mpScreen->search(MULTI_CHAR('yx_text'))->hide();
+ mpScreen->search(MULTI_CHAR('fyx_te_1'))->hide();
+ mpScreen->search(MULTI_CHAR('fyx_te_2'))->hide();
+ mpScreen->search(MULTI_CHAR('fyx_te_3'))->hide();
+ mpScreen->search(MULTI_CHAR('fyx_te_4'))->hide();
+ mpScreen->search(MULTI_CHAR('fyx_tex'))->hide();
+ mpScreen->search(MULTI_CHAR('x_btn_n'))->hide();
+ mpScreen->search(MULTI_CHAR('y_btn_n'))->hide();
}
mpString = new dMsgString_c();
for (i = 0; i < 5; i++) {
@@ -387,38 +387,38 @@ dMenu_Ring_c::dMenu_Ring_c(JKRExpHeap* i_heap, STControl* i_stick, CSTControl* i
"SCRN/zelda_item_select_icon3_spot.blo", 0x20000,
dComIfGp_getRingResArchive());
dPaneClass_showNullPane(mpSpotScreen);
- mpSpotParent = new CPaneMgrAlpha(mpSpotScreen, 'n_all', 2, NULL);
+ mpSpotParent = new CPaneMgrAlpha(mpSpotScreen, MULTI_CHAR('n_all'), 2, NULL);
mpCenterScreen = new J2DScreen();
dPaneClass_setPriority(&mpResData[2], mpHeap, mpCenterScreen,
"SCRN/zelda_item_select_icon3_center_parts.blo", 0x20000,
dComIfGp_getRingResArchive());
dPaneClass_showNullPane(mpCenterScreen);
- mpCenterParent = new CPaneMgrAlpha(mpCenterScreen, 'center_n', 2, NULL);
- mpNameParent = new CPaneMgr(mpCenterScreen, 'label_n', 1, NULL);
- mpCircle = new CPaneMgr(mpCenterScreen, 'circle_n', 2, NULL);
+ mpCenterParent = new CPaneMgrAlpha(mpCenterScreen, MULTI_CHAR('center_n'), 2, NULL);
+ mpNameParent = new CPaneMgr(mpCenterScreen, MULTI_CHAR('label_n'), 1, NULL);
+ mpCircle = new CPaneMgr(mpCenterScreen, MULTI_CHAR('circle_n'), 2, NULL);
J2DTextBox* textBox[4];
#if VERSION == VERSION_GCN_JPN
- textBox[0] = (J2DTextBox*)mpCenterScreen->search('item_n04');
- textBox[1] = (J2DTextBox*)mpCenterScreen->search('item_n05');
- textBox[2] = (J2DTextBox*)mpCenterScreen->search('item_n06');
- textBox[3] = (J2DTextBox*)mpCenterScreen->search('item_n07');
- J2DPane* pane = mpCenterScreen->search('fitem_n1');
+ textBox[0] = (J2DTextBox*)mpCenterScreen->search(MULTI_CHAR('item_n04'));
+ textBox[1] = (J2DTextBox*)mpCenterScreen->search(MULTI_CHAR('item_n05'));
+ textBox[2] = (J2DTextBox*)mpCenterScreen->search(MULTI_CHAR('item_n06'));
+ textBox[3] = (J2DTextBox*)mpCenterScreen->search(MULTI_CHAR('item_n07'));
+ J2DPane* pane = mpCenterScreen->search(MULTI_CHAR('fitem_n1'));
pane->mVisible = false;
- pane = mpCenterScreen->search('fitem_n2');
+ pane = mpCenterScreen->search(MULTI_CHAR('fitem_n2'));
pane->mVisible = false;
- pane = mpCenterScreen->search('fitem_n3');
+ pane = mpCenterScreen->search(MULTI_CHAR('fitem_n3'));
pane->mVisible = false;
- pane = mpCenterScreen->search('fitem_n4');
+ pane = mpCenterScreen->search(MULTI_CHAR('fitem_n4'));
pane->mVisible = false;
#else
- textBox[0] = (J2DTextBox*)mpCenterScreen->search('fitem_n1');
- textBox[1] = (J2DTextBox*)mpCenterScreen->search('fitem_n2');
- textBox[2] = (J2DTextBox*)mpCenterScreen->search('fitem_n3');
- textBox[3] = (J2DTextBox*)mpCenterScreen->search('fitem_n4');
- mpCenterScreen->search('item_n04');
- mpCenterScreen->search('item_n05');
- mpCenterScreen->search('item_n06');
- mpCenterScreen->search('item_n07');
+ textBox[0] = (J2DTextBox*)mpCenterScreen->search(MULTI_CHAR('fitem_n1'));
+ textBox[1] = (J2DTextBox*)mpCenterScreen->search(MULTI_CHAR('fitem_n2'));
+ textBox[2] = (J2DTextBox*)mpCenterScreen->search(MULTI_CHAR('fitem_n3'));
+ textBox[3] = (J2DTextBox*)mpCenterScreen->search(MULTI_CHAR('fitem_n4'));
+ mpCenterScreen->search(MULTI_CHAR('item_n04'));
+ mpCenterScreen->search(MULTI_CHAR('item_n05'));
+ mpCenterScreen->search(MULTI_CHAR('item_n06'));
+ mpCenterScreen->search(MULTI_CHAR('item_n07'));
#endif
for (int i = 0; i < 4; i++) {
textBox[i]->setFont(mDoExt_getMesgFont());
@@ -614,7 +614,7 @@ void dMenu_Ring_c::_draw() {
if (mStatus != STATUS_EXPLAIN && mPikariFlashingSpeed > 0.0f) {
Vec pos;
CPaneMgr paneMgr;
- pos = paneMgr.getGlobalVtxCenter(mpScreen->search('gr_btn'), true, 0);
+ pos = paneMgr.getGlobalVtxCenter(mpScreen->search(MULTI_CHAR('gr_btn')), true, 0);
dMeter2Info_getMeterClass()->getMeterDrawPtr()->drawPikari(
pos.x, pos.y, &mPikariFlashingSpeed, g_ringHIO.mPikariScale, g_ringHIO.mPikariFrontOuter,
g_ringHIO.mPikariFrontInner, g_ringHIO.mPikariBackOuter, g_ringHIO.mPikariBackInner,
@@ -1102,15 +1102,15 @@ void dMenu_Ring_c::setScale() {
void dMenu_Ring_c::setNameString(u32 i_stringID) {
J2DTextBox* textBox[4];
#if VERSION == VERSION_GCN_JPN
- textBox[0] = (J2DTextBox*)mpCenterScreen->search('item_n04');
- textBox[1] = (J2DTextBox*)mpCenterScreen->search('item_n05');
- textBox[2] = (J2DTextBox*)mpCenterScreen->search('item_n06');
- textBox[3] = (J2DTextBox*)mpCenterScreen->search('item_n07');
+ textBox[0] = (J2DTextBox*)mpCenterScreen->search(MULTI_CHAR('item_n04'));
+ textBox[1] = (J2DTextBox*)mpCenterScreen->search(MULTI_CHAR('item_n05'));
+ textBox[2] = (J2DTextBox*)mpCenterScreen->search(MULTI_CHAR('item_n06'));
+ textBox[3] = (J2DTextBox*)mpCenterScreen->search(MULTI_CHAR('item_n07'));
#else
- textBox[0] = (J2DTextBox*)mpCenterScreen->search('fitem_n1');
- textBox[1] = (J2DTextBox*)mpCenterScreen->search('fitem_n2');
- textBox[2] = (J2DTextBox*)mpCenterScreen->search('fitem_n3');
- textBox[3] = (J2DTextBox*)mpCenterScreen->search('fitem_n4');
+ textBox[0] = (J2DTextBox*)mpCenterScreen->search(MULTI_CHAR('fitem_n1'));
+ textBox[1] = (J2DTextBox*)mpCenterScreen->search(MULTI_CHAR('fitem_n2'));
+ textBox[2] = (J2DTextBox*)mpCenterScreen->search(MULTI_CHAR('fitem_n3'));
+ textBox[3] = (J2DTextBox*)mpCenterScreen->search(MULTI_CHAR('fitem_n4'));
#endif
if (mNameStringID != i_stringID) {
for (int i = 0; i < 4; i++) {