Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
8a860_len_3f30.c
Go to the documentation of this file.
1#include "common.h"
2#include "hud_element.h"
3#include "message_ids.h"
4
5#define LINE_HEIGHT 13
6
16
19
20#if VERSION_JP
21#define WINDOW_KEY_WIDTH 242
22#define ALREADY_PARTNER_HEIGHT 32
23#define EMPTY_BAR_X 67
24#define DIARY_PAGE_X 0
25#define PARTNER_LIST_X1 50
26#define PARTNER_LIST_X2 66
27#define BADGE_PRICE_X 108
28#define ITEM_PRICE_X 106
29#define MENU_OFFSET_Y1 9
30#define MENU_OFFSET_Y2 7
31#define POPUP_PARTNER_WIDTH 80
32#else
33#define WINDOW_KEY_WIDTH 280
34#define ALREADY_PARTNER_HEIGHT 40
35#define EMPTY_BAR_X 73
36#define DIARY_PAGE_X 8
37#define PARTNER_LIST_X1 85
38#define PARTNER_LIST_X2 91
39#define BADGE_PRICE_X 115
40#define ITEM_PRICE_X 121
41#define MENU_OFFSET_Y1 8
42#define MENU_OFFSET_Y2 6
43#define POPUP_PARTNER_WIDTH 100
44#endif
45
46#if !VERSION_JP
63
80#endif
81
122
124
140
141void popup_draw_menu_content(s32* userData, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening);
142void popup_draw_title_content(s32* userData, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening);
143void popup_draw_desc_content(s32* userData, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening);
144void popup_draw_prompt_content(s32* userData, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening);
145void popup_draw_dip_query_content(s32* userData, s32 x, s32 y);
146void popup_draw_cost_icon(s32* userData, s32 x, s32 y);
147void popup_draw_already_have_partner(s32* userData, s32 x, s32 y);
148void popup_draw_star_pieces_content(s32* userData, s32 x, s32 y);
149
150void hide_popup_menu(void) {
151 if (PopupNotBattle) {
152 switch (gPopupMenu->popupType) {
166 break;
171 break;
172 }
174 } else {
175 switch (gPopupMenu->popupType) {
189 break;
194 break;
195 }
196 }
197
201 }
204 }
208 }
211}
212
253
254void show_popup_menu(void) {
255 if (PopupNotBattle) {
256 switch (gPopupMenu->popupType) {
269 break;
275 break;
281 break;
282 }
284 } else {
285 switch (gPopupMenu->popupType) {
297 break;
302 break;
307 break;
308 }
309 }
310
314 }
317 }
320 }
326
330 }
334 }
337 }
340 }
344}
345
346#if VERSION_PAL
347s32 popup_menu_update(void);
348INCLUDE_ASM(s32, "8a860_len_3f30", popup_menu_update);
349#else
351 s32 posX;
352 s32 posY;
353 s32 width;
354 s32 height;
355 HudElemID hid;
356 s32 cond;
357 s32 buttons;
358 s32 msgID;
359 s32 i;
360
361 s32 var_s5 = 0;
362 s32 var_s6 = 0; // maybe 6 before 5
363 s32 msgWidth;
364 s32 width2;
365 s32 posX2;
366
367 switch (gPopupState) {
368 case POPUP_STATE_INIT:
369#if VERSION_JP
370 PopupWinX = 32;
371 PopupWinY = 72;
372 PopupDescX = 32;
374#else
375 PopupWinX = 20;
376 PopupWinY = 72;
377 PopupDescX = 20;
378#endif
379 PopupDescY = 186;
380 PopupPromptX = 16;
381 PopupPromptY = 88;
382#if !VERSION_JP
384#endif
386 if (PopupNotBattle) {
387#if VERSION_JP
388
389 switch (gPopupMenu->popupType) {
397 PopupWinX += 144;
398 break;
400 PopupWinX += 122;
401 break;
403 PopupWinX += 134;
404 break;
406 PopupWinX += 122;
407 break;
412 PopupWinX += 160;
413 break;
414 }
415#else
417#endif
418 }
420#if VERSION_JP
421 PopupWinY -= 10;
422#else
423 PopupWinY = 62;
424#endif
425 }
426 D_8010D68C = 0;
430 hud_element_set_tint(hid, 255, 255, 255);
433 }
434
437 hud_element_set_scale(hid, 0.45f);
439
443
447
451
456 hud_element_set_tint(hid, 255, 255, 255);
457 }
462 hud_element_set_tint(hid, 255, 255, 255);
463 }
468 hud_element_set_tint(hid, 255, 255, 255);
469 }
472 hid = PopupMenu_TimesHID;
474 hud_element_set_tint(hid, 255, 255, 255);
475 }
480 hud_element_set_tint(hid, 255, 255, 255);
481 }
482
483 D_8010D65A = -200;
485 if (!PopupNotBattle) {
486 PopupDelayTime = 1;
487 }
489
490 posX = PopupWinX;
491 posY = PopupWinY;
492
493#if VERSION_PAL
494 gPopupMenu->unk_338 = 0;
495 gPopupMenu->unk_340 = 0;
496
497 switch (gPopupMenu->popupType) {
499 gPopupMenu->unk_33C = MSG_Menus_0061;
500 switch (gPopupMenu->dipMode) {
501 case 0:
502 gPopupMenu->unk_330 = MSG_Menus_Items;
503 break;
504 case 1:
505 gPopupMenu->unk_330 = MSG_Menus_DoubleDip;
506 break;
507 case 2:
508 gPopupMenu->unk_330 = MSG_Menus_TripleDip;
509 break;
510 }
512 gPopupMenu->unk_330 = MSG_Menus_Items;
513 gPopupMenu->unk_33C = MSG_Menus_0064;
515 gPopupMenu->unk_330 = MSG_Menus_Items;
516 gPopupMenu->unk_33C = MSG_Menus_0066;
518 gPopupMenu->unk_330 = MSG_Menus_Items;
519 gPopupMenu->unk_33C = MSG_Menus_0067;
521 var_s6 = 145;
522 var_s5 = 145;
523 gPopupMenu->unk_33C = MSG_Menus_0062;
524 gPopupMenu->unk_330 = MSG_Menus_Items;
525 break;
527 var_s6 = 139;
528 var_s5 = 139;
529 gPopupMenu->unk_330 = MSG_Menus_PartyMember;
530 gPopupMenu->unk_338 = 1;
531 gPopupMenu->unk_33C = MSG_Menus_0063;
532 break;
534 var_s6 = 162;
535 var_s5 = 140;
536 gPopupMenu->unk_340 = -16;
537 gPopupMenu->unk_330 = MSG_MenuTip_0032;
538 gPopupMenu->unk_33C = MSG_Menus_0070;
539 break;
541 var_s6 = 146;
542 var_s5 = 140;
543 gPopupMenu->unk_340 = -8;
544 gPopupMenu->unk_330 = MSG_Menus_PartyMember;
545 gPopupMenu->unk_338 = 1;
546 gPopupMenu->unk_33C = MSG_Menus_006A;
547 break;
549 var_s6 = 167;
550 var_s5 = 145;
551 gPopupMenu->unk_340 = -24;
552 gPopupMenu->unk_330 = MSG_Menus_Items;
553 gPopupMenu->unk_33C = MSG_Menus_0065;
554 break;
556 var_s6 = 170;
557 var_s5 = 170;
558 gPopupMenu->unk_340 = -32;
559 gPopupMenu->unk_330 = MSG_MenuTip_0033;
560 gPopupMenu->unk_33C = MSG_Menus_006D;
561 break;
563 var_s6 = 145;
564 var_s5 = 145;
565 gPopupMenu->unk_330 = MSG_Menus_00D7;
566 gPopupMenu->unk_33C = MSG_Menus_00D6;
567 break;
569 var_s6 = 140;
570 var_s5 = 140;
571 gPopupMenu->unk_340 = -16;
572 gPopupMenu->unk_330 = MSG_Menus_00CE;
573 gPopupMenu->unk_33C = MSG_Menus_006C;
574 break;
576 var_s6 = 149;
577 var_s5 = 149;
578 gPopupMenu->unk_340 = -16;
579 gPopupMenu->unk_330 = MSG_Menus_00D0;
580 gPopupMenu->unk_33C = MSG_Menus_006D;
581 break;
583 var_s6 = 131;
584 var_s5 = 131;
585 gPopupMenu->unk_330 = MSG_Menus_PartyMember;
586 gPopupMenu->unk_338 = 1;
587 gPopupMenu->unk_33C = MSG_Menus_006F;
588 break;
589 }
590 msgWidth = get_msg_width(gPopupMenu->unk_330, 0);
591 width2 = msgWidth + (((var_s5 - msgWidth) * 2) / 5);
592 posX2 = (var_s5 - width2) / 2;
593 gPopupMenu->unk_334 = (width2 - msgWidth) / 2;
595 width2 = 125;
596 posX2 = (var_s5 - width2) / 2;
597 gPopupMenu->unk_334 = (80 - msgWidth) / 2;
598 }
601 if (gPopupMenu->unk_338 == 0) {
606 } else {
611 }
612#elif VERSION_JP
613 switch (gPopupMenu->popupType) {
624 break;
630 break;
636 break;
642 break;
648 break;
654 break;
660 break;
666 break;
672 break;
673 }
674#else
675 switch (gPopupMenu->popupType) {
682 if (gPopupMenu->dipMode == 0) {
684 } else {
686 }
689 break;
695 break;
701 break;
707 break;
713 break;
719 break;
725 break;
731 break;
737 break;
743 break;
744 }
745#endif
746
747#if VERSION_JP
748 switch (gPopupMenu->popupType) {
751 break;
754 break;
757 break;
758 }
759#else
760 switch (gPopupMenu->popupType) {
763 break;
766 break;
767 }
768#endif
769
774 }
775
776 do {
777 cond = FALSE;
784 }
785 } else {
786 cond = TRUE;
787 }
788 }
789 } while (cond);
790
795 {
796 posX = PopupDescX;
797 posY = PopupDescY;
799 }
800
801 posX = PopupPromptX;
802 posY = PopupPromptY;
803
804#if VERSION_PAL
805 height = 32;
806 if (get_msg_lines(gPopupMenu->unk_33C) == 2) {
807 height = 40;
808 }
810#else
811 switch (gPopupMenu->popupType) {
812#if VERSION_JP
824 switch (gPopupMenu->dipMode) {
825 case 0:
827 break;
828 case 1:
830 break;
831 case 2:
833 break;
834 }
835 break;
838 break;
841 break;
844 break;
845#else
852 break;
857 break;
862 break;
865 break;
868 break;
871 break;
872#endif
873 }
874#endif
875
876 if (!PopupNotBattle) {
877 switch (gPopupMenu->popupType) {
889 break;
894 break;
899 break;
900 }
901 } else {
902 switch (gPopupMenu->popupType) {
915 break;
921 break;
927 break;
928 }
930 }
931
935 }
938 }
941 }
943 break;
945 if (PopupDelayTime != 0) {
947 } else {
949
950 // change selection on up input
953 {
955 }
956
957 // change selection on down input
960 {
962 }
963
964 // wrap selected index
965 if (PopupMenu_SelectedIndex < 0) {
967 }
970 }
971
974 }
975
976 // ensure one option is displayed above the selected index, if applicable
977 // shift up to 4 entries at a time on list wrap
978 for (i = 0; i < 4; i++) {
983 }
984 }
985 }
986
987 // ensure one option is displayed after the selected index, if applicable
988 // shift up to 4 entries at a time on list wrap
989 for (i = 0; i < 4; i++) {
996 }
997 }
998 }
1000 }
1001
1002 // make selection on A button input
1004 switch (gPopupMenu->popupType) {
1007 if (!PopupNotBattle) {
1009 } else {
1011 }
1012 break;
1015 if (!PopupNotBattle) {
1017 } else {
1019 }
1020 break;
1021 default:
1024 if (!PopupNotBattle) {
1026 } else {
1028 }
1029 break;
1030 }
1034 break;
1035 }
1038 }
1039 break;
1040 }
1041 } else {
1042 switch (gPopupMenu->popupType) {
1049 case POPUP_MENU_USEKEY:
1050 if (PopupNotBattle) {
1052 } else {
1053 buttons = BUTTON_B;
1054 }
1055 break;
1058 if (PopupNotBattle) {
1060 } else {
1061 buttons = BUTTON_B;
1062 }
1063 break;
1069 buttons = BUTTON_B;
1070 break;
1071 default:
1072 buttons = 0;
1073 break;
1074 }
1075
1078 if (PopupNotDipping) {
1079 if (!PopupNotBattle) {
1081 } else {
1083 }
1084 } else {
1085 if (PopupDipMode == 0) {
1087 } else {
1089 }
1090 }
1091 break;
1092 }
1093
1094 switch (gPopupMenu->popupType) {
1095 default:
1096 buttons = 0;
1097 break;
1100 break;
1103 break;
1104 }
1105
1109 break;
1110 }
1111 }
1112 }
1113 break;
1124 }
1128 }
1131 }
1134 }
1136
1138 return PopupMenu_SelectedIndex + 1;
1141 return PopupMenu_SelectedIndex + 1;
1143 switch (gPopupMenu->popupType) {
1152 case POPUP_MENU_USEKEY:
1155 break;
1160 break;
1165 break;
1166 }
1171 return 255;
1176 return 255;
1179 return 255;
1183 return 255;
1184 case POPUP_STATE_10:
1186 if (PopupDelayTime == 0) {
1189 return PopupMenu_SelectedIndex + 1;
1190 }
1191 break;
1192 case POPUP_STATE_20:
1197 return PopupMenu_SelectedIndex + 1;
1198 }
1199 break;
1203 return 0;
1207 if (PopupNotBattle) {
1209 }
1210#if VERSION_PAL
1211 width = get_msg_width(MSG_Menus_006B, 0) + 32;
1212 if (get_msg_lines(MSG_Menus_006B) == 1) {
1213 posY = 76;
1214 } else {
1215 posY = 72;
1216 }
1218#else
1219 width = get_msg_width(MSG_Menus_006B, 0) + 23;
1221#endif
1223 PopupDelayTime = 60;
1225 return 0;
1228 PopupDelayTime = 0;
1229 }
1230 if (PopupDelayTime != 0) {
1232 return 0;
1233 }
1237 if (PopupNotBattle) {
1239 }
1242 break;
1250
1254 }
1258 }
1261 }
1264 }
1265
1266 switch (gPopupMenu->popupType) {
1275 case POPUP_MENU_USEKEY:
1278 break;
1283 break;
1288 break;
1289 }
1290
1292 if (PopupDipMode == 1) {
1293 msgID = MSG_Menus_0068;
1294 } else {
1295 msgID = MSG_Menus_0069;
1296 }
1297#if VERSION_PAL
1298 width = get_msg_width(msgID, 0) + 32;
1299 if (get_msg_lines(msgID) == 1) {
1300 height = 32;
1301 posY = 76;
1302 } else {
1303 height = 40;
1304 posY = 72;
1305 }
1306 set_window_properties(WIN_POPUP_PROMPT, 160 - (width / 2), posY, width, height, WINDOW_PRIORITY_19, popup_draw_dip_query_content, NULL, -1);
1307#else
1308 width = get_msg_width(msgID, 0) + 23;
1310#endif
1315 break;
1317 if (D_8010D6A4 == 1) {
1319 switch (D_8010D6A0->curOption) {
1320 case 0:
1322 break;
1323 case 1:
1325 break;
1326 }
1327 }
1328 break;
1331 break;
1341 }
1345 }
1348 }
1351 }
1353
1354 switch (gPopupMenu->popupType) {
1363 case POPUP_MENU_USEKEY:
1366 break;
1371 break;
1376 break;
1377 }
1380 break;
1381 }
1383 return 0;
1384}
1385#endif
1386
1387void popup_draw_menu_content(s32* userData, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) {
1388 s32 x, y;
1389 s32 x1, y1;
1390 s32 offset;
1391 s32 sp28;
1392 s32 dy;
1393 s32 i, j;
1394 s32 id;
1395 s32 msgPal;
1396 s32 a0;
1397 s32 v0;
1398 s32 t;
1399
1400 switch (gPopupState) {
1401 case POPUP_STATE_10:
1410 case POPUP_STATE_20:
1415 case POPUP_STATE_104:
1416 case POPUP_STATE_105:
1417 break;
1418 default:
1419 return;
1420 }
1421
1422 baseX += 2;
1423 baseY += 15;
1425 y1 = D_8010D658;
1426 dy = y - y1;
1427
1428 if (dy < 130) {
1429 dy *= 0.5;
1430 } else {
1431 dy = dy * 100 / 150;
1432 }
1433 if (dy != 0) {
1434 y1 += dy;
1435 } else {
1436 y1 = y;
1437 }
1438 D_8010D658 = y1;
1440
1441 x = baseX;
1442 y = baseY;
1444 switch (gPopupMenu->popupType) {
1446#if VERSION_JP
1448#endif
1457 case POPUP_MENU_USEKEY:
1459 gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x, y, x + 112, y1);
1460 break;
1464 break;
1465#if !VERSION_JP
1467 gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x, y, x + 160, y1);
1468 break;
1469#endif
1470 }
1471
1472 y = baseY + D_8010D658 + 8;
1474 y = baseY + D_8010D658 + 21;
1475 }
1481 }
1482 x = baseX;
1483 y = baseY + 2;
1486 y = baseY;
1487 y1++;
1488 }
1489
1490#if VERSION_JP
1491 switch (gPopupMenu->popupType) {
1500 case POPUP_MENU_USEKEY:
1502 gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x, y, x + 112, y1);
1503 break;
1506 break;
1508 gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x, y, x + 144, y1);
1509 break;
1511 gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x, y, x + 144, y1);
1512 break;
1514 gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x, y, x + 140, y1);
1515 break;
1516 }
1517#else
1519#endif
1520
1521 x = baseX + 32;
1522 y = baseY + D_8010D658 + 2;
1523 offset = 0;
1525 y = baseY + D_8010D658;
1526 offset = 2;
1527 }
1528
1529 t = 0;
1530 for (i = 0; i < gPopupMenu->numEntries; i++, t++) {
1531 if (sp28 - 1 > i || sp28 + PopupMenu_DisplayedEntryCount < i) {
1532 y += LINE_HEIGHT;
1533 if (i == 0) {
1534 y += offset;
1535 }
1536 } else {
1540 }
1541 if (gPopupMenu->enabled[t] == 0) {
1543 }
1544 switch (gPopupMenu->popupType) {
1552 case POPUP_MENU_USEKEY:
1555 break;
1559 break;
1561 if (gPopupMenu->enabled[t] == 2) {
1563 }
1565 break;
1567 if (gPopupMenu->value[t] != 0) {
1569 } else {
1571 }
1574 break;
1576 if (gPopupMenu->value[t] != 0) {
1578 } else {
1580 }
1581 a0 = gPopupMenu->nameMsg[t];
1583 break;
1584 }
1585 switch (gPopupMenu->popupType) {
1588 for (j = 0; j < ARRAY_COUNT(D_80109890); j++) {
1590
1591 if (gPopupMenu->enabled[i]) {
1593 } else {
1595 }
1597 hud_element_set_render_pos(id, x + PARTNER_LIST_X1 + j * 13, y + 10);
1598 } else {
1599 hud_element_set_render_pos(id, x + PARTNER_LIST_X2 + j * 13, y + 10);
1600 }
1601 if (j < gPopupMenu->value[i]) {
1603 }
1604 }
1605 break;
1608 break;
1611 break;
1612 }
1613 y += LINE_HEIGHT;
1614 if (i == 0) {
1615 y += offset;
1616 }
1617 }
1618 }
1619
1620 x = baseX + 24;
1622 offset = 0;
1625 offset = 2;
1626 }
1627
1628 switch (gPopupMenu->popupType) {
1639 case POPUP_MENU_USEKEY:
1641 for (i = 0; i < gPopupMenu->numEntries; i++) {
1642 if (sp28 - 1 > i || sp28 + PopupMenu_DisplayedEntryCount < i) {
1643 y += LINE_HEIGHT;
1644 if (i == 0) {
1645 y += offset;
1646 }
1647 } else {
1652 hud_element_set_scale(id, 0.45f);
1654 y += LINE_HEIGHT;
1655 if (i == 0) {
1656 y += offset;
1657 }
1658 }
1659 }
1660 break;
1662 for (i = 0; i < gPopupMenu->numEntries; i++) {
1663 if (sp28 - 1 > i || sp28 + PopupMenu_DisplayedEntryCount < i) {
1664 y += LINE_HEIGHT;
1665 if (i == 0) {
1666 y += offset;
1667 }
1668 } else {
1673 hud_element_set_scale(id, 0.45f);
1675 y += LINE_HEIGHT;
1676 if (i == 0) {
1677 y += offset;
1678 }
1679 }
1680 }
1681 break;
1683 for (i = 0; i < gPopupMenu->numEntries; i++) {
1684 if (sp28 - 1 > i || sp28 + PopupMenu_DisplayedEntryCount < i) {
1685 y += LINE_HEIGHT;
1686 if (i == 0) {
1687 y += offset;
1688 }
1689 } else {
1694 hud_element_set_scale(id, 0.45f);
1696 y += LINE_HEIGHT;
1697 if (i == 0) {
1698 y += offset;
1699 }
1700 }
1701 }
1702 break;
1703 }
1704
1706 x = baseX + 8;
1707 y = baseY + 9 + v0;
1709
1711 y -= 2;
1712 }
1716
1717 x = baseX;
1718 y = baseY - 6;
1720 switch (gPopupMenu->popupType) {
1731 case POPUP_MENU_USEKEY:
1733 gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x, y, x + 112, y1);
1734 break;
1738 break;
1739 }
1740
1741 switch (gPopupMenu->popupType) {
1742#if VERSION_JP
1744 offset = 31;
1745 break;
1747 offset = 32;
1748 break;
1750 offset = 31;
1751 break;
1752 default:
1753 offset = 31;
1754 break;
1758 offset = 31;
1759 break;
1760 case POPUP_MENU_USEKEY:
1761 offset = 31;
1762 break;
1764 offset = 13;
1765 break;
1767 offset = 21;
1768 break;
1771 offset = 14;
1772 break;
1773#else
1775 offset = 35;
1776 break;
1779 offset = 35;
1780 break;
1782 offset = 31;
1783 break;
1785 offset = 31;
1786 break;
1790 offset = 31;
1791 break;
1792 default:
1793 offset = 37;
1794 break;
1796 offset = 29;
1797 break;
1799 offset = 21;
1800 break;
1803 offset = 30;
1804 break;
1805#endif
1806 }
1807
1810 x = baseX + offset;
1811 y = baseY;
1812 hud_element_set_render_pos(id, x + 35, y - 1);
1815 }
1816
1819 x = baseX + offset;
1820 y = baseY;
1822 hud_element_set_render_pos(id, x + 35, y + 5);
1825 }
1826}
1827
1828#if VERSION_PAL
1829void popup_draw_title_content(s32* userData, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) {
1831
1832 switch (gPopupMenu->popupType) {
1838 switch (gPopupMenu->dipMode) {
1839 case 1:
1845 break;
1846 case 2:
1852 break;
1853 }
1854 break;
1855 }
1856}
1857#else
1858
1859#if VERSION_JP
1860#define POPUP_ITEM_X 35
1861#define POPUP_ITEMDIP_NUMBER_X 82
1862#define POPUP_ITEMDIP_X 102
1863#define POPUP_TRIPLE_DIP_X 4
1864#define POPUP_BADGE_X 38
1865#define POPUP_CHEST_X 31
1866#define POPUP_POSTCARD_X 16
1867#define POPUP_ITEM_KEY_X 35
1868#define POPUP_POSTOFFICE_X 23
1869#else
1870#define POPUP_ITEM_X 26
1871#define POPUP_ITEMDIP_NUMBER_X 94
1872#define POPUP_ITEMDIP_X 114
1873#define POPUP_TRIPLE_DIP_X 6
1874#define POPUP_BADGE_X 27
1875#define POPUP_CHEST_X 4
1876#define POPUP_POSTCARD_X 6
1877#define POPUP_ITEM_KEY_X 27
1878#define POPUP_POSTOFFICE_X 8
1879#endif
1880
1882 s32* userData, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
1883{
1884 switch (gPopupMenu->popupType) {
1890 switch (gPopupMenu->dipMode) {
1891 case 0:
1892#if VERSION_JP
1894#else
1896#endif
1897 break;
1898 case 1:
1903 break;
1904 case 2:
1910 break;
1911 }
1912 break;
1915 break;
1916#if VERSION_JP
1919 break;
1920#endif
1923 break;
1926 break;
1929 break;
1932 break;
1933 case POPUP_MENU_USEKEY:
1934#if VERSION_JP
1936#else
1938#endif
1939 break;
1941#if !VERSION_JP
1943#endif
1946 break;
1947 }
1948}
1949#endif
1950
1951void popup_draw_desc_content(s32* userData, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) {
1953}
1954
1955#if VERSION_PAL
1956void popup_draw_prompt_content(s32* userData, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) {
1957 s32 x = baseX;
1958 s32 y = baseY + 7;
1959
1960 if (PopupNotBattle) {
1961 s32 msgWidth = get_msg_width(gPopupMenu->unk_33C, 0);
1963
1964 x += ((gPopupMenu->unk_340 + 144) / 2) - (msgWidth / 2);
1965
1966 draw_msg(gPopupMenu->unk_33C, x, msgLines != 1 ? y - 4 : y, 255, MSG_PAL_0F, 0);
1967 }
1968}
1969#else
1970void popup_draw_prompt_content(s32* userData, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) {
1971 s32 msgWidth;
1972
1973#if VERSION_JP
1974 baseY += 6;
1975
1976 if (PopupNotBattle) {
1977 switch (gPopupMenu->popupType) {
1979 msgWidth = get_msg_width(MSG_Menus_0061, 0) + 18;
1980 baseX += 76 - (msgWidth / 2);
1981 draw_msg(MSG_Menus_0061, baseX + 6, baseY + 2, 255, MSG_PAL_0F, 0);
1982 break;
1984 msgWidth = get_msg_width(MSG_Menus_0063, 0) + 18;
1985 baseX += 76 - (msgWidth / 2);
1986 draw_msg(MSG_Menus_0063, baseX + 8, baseY + 2, 255, MSG_PAL_0F, 0);
1987 break;
1989 msgWidth = get_msg_width(MSG_Menus_0064, 0) + 18;
1990 baseX += 76 - (msgWidth / 2);
1991 draw_msg(MSG_Menus_0064, baseX + 4, baseY + 2, 255, MSG_PAL_0F, 0);
1992 break;
1994 msgWidth = get_msg_width(MSG_Menus_0070, 0) + 18;
1995 baseX += 76 - (msgWidth / 2);
1996 draw_msg(MSG_Menus_0070, baseX + 4, baseY + 2, 255, MSG_PAL_0F, 0);
1997 break;
1999 msgWidth = get_msg_width(MSG_Menus_006A, 0) + 18;
2000 baseX += 76 - (msgWidth / 2);
2001 draw_msg(MSG_Menus_006A, baseX + 4, baseY + 2, 255, MSG_PAL_0F, 0);
2002 break;
2004 msgWidth = get_msg_width(MSG_Menus_0065, 0) + 18;
2005 baseX += 76 - (msgWidth / 2);
2006 draw_msg(MSG_Menus_0065, baseX - 4, baseY + 2, 255, MSG_PAL_0F, 0);
2007 break;
2009 msgWidth = get_msg_width(MSG_Menus_0066, 0) + 18;
2010 baseX += 76 - (msgWidth / 2);
2011 draw_msg(MSG_Menus_0066, baseX + 6, baseY + 2, 255, MSG_PAL_0F, 0);
2012 break;
2014 msgWidth = get_msg_width(MSG_Menus_0067, 0) + 18;
2015 baseX += 76 - (msgWidth / 2);
2016 draw_msg(MSG_Menus_0067, baseX + 6, baseY + 2, 255, MSG_PAL_0F, 0);
2017 break;
2019 msgWidth = get_msg_width(MSG_Menus_JP_0081, 0) + 18;
2020 baseX += 76 - (msgWidth / 2);
2021 draw_msg(MSG_Menus_JP_0081, baseX + 6, baseY + 2, 255, MSG_PAL_0F, 0);
2022 break;
2024 msgWidth = get_msg_width(MSG_Menus_00D6, 0) + 18;
2025 baseX += 76 - (msgWidth / 2);
2026 draw_msg(MSG_Menus_00D6, baseX + 6, baseY + 2, 255, MSG_PAL_0F, 0);
2027 break;
2029 msgWidth = get_msg_width(MSG_Menus_006C, 0) + 18;
2030 baseX += 76 - (msgWidth / 2);
2031 draw_msg(MSG_Menus_006C, baseX + 6, baseY + 2, 255, MSG_PAL_0F, 0);
2032 break;
2034 msgWidth = get_msg_width(MSG_Menus_006D, 0) + 18;
2035 baseX += 76 - (msgWidth / 2);
2036 draw_msg(MSG_Menus_006D, baseX + 6, baseY + 2, 255, MSG_PAL_0F, 0);
2037 break;
2038 case POPUP_MENU_USEKEY:
2039 msgWidth = get_msg_width(MSG_Menus_0062, 0) + 18;
2040 baseX += 76 - (msgWidth / 2);
2041 draw_msg(MSG_Menus_0062, baseX + 6, baseY + 2, 255, MSG_PAL_0F, 0);
2042 break;
2044 msgWidth = get_msg_width(MSG_Menus_006F, 0) + 18;
2045 baseX += 76 - (msgWidth / 2);
2046 draw_msg(MSG_Menus_006F, baseX + 6, baseY + 2, 255, MSG_PAL_0F, 0);
2047 break;
2048 }
2049 }
2050#else
2051 baseY += 7;
2052
2053 if (PopupNotBattle) {
2054 switch (gPopupMenu->popupType) {
2056 msgWidth = get_msg_width(MSG_Menus_0061, 0);
2057 baseX += 72 - (msgWidth / 2);
2059 break;
2061 msgWidth = get_msg_width(MSG_Menus_0063, 0);
2062 baseX += 72 - (msgWidth / 2);
2064 break;
2066 msgWidth = get_msg_width(MSG_Menus_0064, 0);
2067 baseX += 72 - (msgWidth / 2);
2069 break;
2071 msgWidth = get_msg_width(MSG_Menus_0070, 0);
2072 baseX += 64 - (msgWidth / 2);
2074 break;
2076 msgWidth = get_msg_width(MSG_Menus_006A, 0);
2077 baseX += 68 - (msgWidth / 2);
2079 break;
2081 msgWidth = get_msg_width(MSG_Menus_0065, 0);
2082 baseX += 60 - (msgWidth / 2);
2084 break;
2086 msgWidth = get_msg_width(MSG_Menus_0066, 0);
2087 baseX += 72 - (msgWidth / 2);
2089 break;
2091 msgWidth = get_msg_width(MSG_Menus_0067, 0);
2092 baseX += 72 - (msgWidth / 2);
2094 break;
2096 msgWidth = get_msg_width(MSG_Menus_006F, 0);
2097 baseX += 72 - (msgWidth / 2);
2099 break;
2101 msgWidth = get_msg_width(MSG_Menus_006D, 0);
2102 baseX += 56 - (msgWidth / 2);
2104 break;
2106 msgWidth = get_msg_width(MSG_Menus_00D6, 0);
2107 baseX += 72 - (msgWidth / 2);
2109 break;
2111 msgWidth = get_msg_width(MSG_Menus_006C, 0);
2112 baseX += 64 - (msgWidth / 2);
2114 break;
2116 msgWidth = get_msg_width(MSG_Menus_006D, 0);
2117 baseX += 64 - (msgWidth / 2);
2119 break;
2120 case POPUP_MENU_USEKEY:
2121 msgWidth = get_msg_width(MSG_Menus_0062, 0);
2122 baseX += 72 - (msgWidth / 2);
2124 break;
2125 }
2126 }
2127#endif
2128}
2129#endif
2130
2131#if VERSION_PAL
2132#define X_800F4C1C 16
2133#else
2134#define X_800F4C1C 11
2135#endif
2136
2138 s32 xPos = x + X_800F4C1C;
2139 s32 yPos = y + 8;
2140 s32 msg;
2141
2142 if (PopupDipMode == 1) {
2144 } else {
2146 }
2147
2148#if VERSION_PAL
2149 if (get_msg_lines(msg) != 1) {
2150 yPos -= 4;
2151 }
2152#endif
2153 draw_msg(msg, xPos, yPos, 255, MSG_PAL_0F, 0);
2154}
2155
2156void popup_draw_cost_icon(s32* userData, s32 x, s32 y) {
2157 HudElemID hid;
2158 s32 xPos;
2159 s32 yPos;
2160
2161 switch (gPopupMenu->popupType) {
2163 xPos = x + 16;
2165 yPos = y + 16;
2166 break;
2167#if VERSION_JP
2170 return;
2171#endif
2173 xPos = x + 17;
2175 yPos = y + 17;
2176 break;
2177 default:
2178 return;
2179 }
2180
2184}
2185
2187#if VERSION_JP
2188 draw_msg(MSG_Menus_006B, x + 11, y + 8, 255, MSG_PAL_0F, 0);
2189#else
2190 draw_msg(MSG_Menus_006B, x + 16, y + 2, 255, MSG_PAL_0F, 0);
2191#endif
2192}
2193
2221
2224 s8 entryCount;
2225 s32 initialPos;
2226 s32 numEntries;
2227
2231 gPopupMenu = popup;
2233 popup->dipMode = 0;
2234 popup->titleNumber = 0;
2235 PopupDipMode = 0;
2237 if (popup->popupType >= POPUP_MENU_DOUBLE_DIP) {
2238 popup->popupType -= POPUP_MENU_DOUBLE_DIP;
2239 PopupDipMode = 1;
2240 if (popup->popupType >= POPUP_MENU_DOUBLE_DIP) {
2241 popup->popupType -= POPUP_MENU_DOUBLE_DIP;
2242 PopupDipMode = 2;
2243 }
2245 }
2246
2250
2251 initialPos = gPopupMenu->initialPos;
2252 numEntries = gPopupMenu->numEntries;
2253 PopupMenu_SelectedIndex = initialPos;
2254 if (initialPos >= numEntries) {
2255 PopupMenu_SelectedIndex = numEntries - 1;
2256 }
2259
2260 entryCount = gPopupMenu->numEntries;
2261 PopupMenu_DisplayedEntryCount = entryCount;
2262 if (PopupMenu_MaxDisplayableEntryCount < entryCount) {
2264 }
2265
2269 }
2270
2271 PopupMenu_Alpha = 255;
2272 D_8010D691 = 4;
2273 PopupDelayLength = 6;
2275}
2276
2278 gPopupMenu = popup;
2279
2281 popup->dipMode = 0;
2282 popup->titleNumber = 0;
2284 PopupDipMode = 0;
2288 PopupDipMode = 1;
2291 PopupDipMode = 2;
2292 }
2294 }
2295
2302 }
2306
2309 }
2310
2314 }
2315
2316 PopupMenu_Alpha = 255;
2317 D_8010D691 = 4;
2318 PopupDelayLength = 6;
2320}
2321
2323 gPopupMenu = popup;
2324
2326 D_8010D693 = popup->titleNumber;
2328 PopupDipMode = 0;
2332 PopupDipMode = 1;
2335 PopupDipMode = 2;
2336 }
2338 }
2339
2346 }
2350
2353 }
2354
2358 }
2359
2360 PopupMenu_Alpha = 255;
2361 D_8010D691 = 9;
2362 PopupDelayLength = 2;
2364}
2365
2366// forces an update step for the popup menu
2369}
BSS s8 D_8010D690
#define POPUP_ITEMDIP_X
#define WINDOW_KEY_WIDTH
void create_battle_popup_menu(PopupMenu *popup)
HudScript HES_EmptyBar
s16 PopupContentScissorWidths[]
BSS s16 D_8010D68C
BSS s16 PopupWinY
BSS s32 PopupMenu_PrevSelectedIndex
HudScript HES_HandPointer
#define POPUP_POSTOFFICE_X
#define DIARY_PAGE_X
BSS s8 PopupNotBattle
BSS s32 PopupMenu_Alpha
void popup_draw_desc_content(s32 *userData, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
void popup_draw_dip_query_content(s32 *userData, s32 x, s32 y)
void hide_popup_menu(void)
void popup_draw_title_content(s32 *userData, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
BSS s16 PopupMenu_StarPieceCounterPosY
#define BADGE_PRICE_X
#define POPUP_TRIPLE_DIP_X
BSS MessagePrintState * D_8010D6A0
BSS HudElemID PopupMenu_TitleIconHID
#define MENU_OFFSET_Y1
#define ALREADY_PARTNER_HEIGHT
#define EMPTY_BAR_X
#define PARTNER_LIST_X2
void popup_draw_menu_content(s32 *userData, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
BSS s8 PopupMenu_FirstDisplayIndex
BSS s16 PopupPromptY
BSS s8 PopupMenu_DisplayedEntryCount
BSS HudElemID PopupMenu_CursorHID
#define POPUP_BADGE_X
HudScript HES_GreenArrowDown
s32 popup_menu_update(void)
HudScript HES_PartnerRank1B
BSS s8 PopupDipMode
BSS s8 PopupDelayLength
BSS s16 PopupWinX
HudScript HES_PartnerRank2B
BSS s32 PopupDelayTime
#define POPUP_ITEM_X
#define ITEM_PRICE_X
BSS s8 PopupNotDipping
void destroy_popup_menu(void)
#define X_800F4C1C
HudScript * D_80109890[]
BSS HudElemID PopupMenu_EmptybarHID
PopupTypes
@ POPUP_TYPE_READ_POSTCARD
@ POPUP_TYPE_SWITCH_PARTNER
@ POPUP_TYPE_TAKE_FROM_CHEST
@ POPUP_TYPE_USE_KEY
@ POPUP_TYPE_TRADE_FOR_BADGE
@ POPUP_TYPE_USE_ITEM
@ POPUP_TYPE_CLAIM_ITEM
@ POPUP_TYPE_THROW_AWAY_ITEM
@ POPUP_TYPE_UPGRADE_PARTNER
@ POPUP_TYPE_SELL_ITEM
@ POPUP_TYPE_CHECK_ITEM
@ POPUP_TYPE_READ_LETTER
@ POPUP_TYPE_READ_DIARY_PAGE
void create_standard_popup_menu(PopupMenu *popup)
void popup_draw_cost_icon(s32 *userData, s32 x, s32 y)
#define POPUP_POSTCARD_X
HudScript HES_GreenArrowUp
BSS s16 PopupMenu_StarPieceCounterPosX
HudScript HES_PartnerRank1A
void flush_popup_menu(void)
BSS HudElemID PopupMenu_DownArrowHID
#define LINE_HEIGHT
BSS s16 PopupDescY
BSS s16 D_8010D658
BSS s16 D_8010D65A
HudScript HES_PartnerRank2A
#define POPUP_CHEST_X
BSS s32 gPopupWorker
#define POPUP_ITEM_KEY_X
#define PARTNER_LIST_X1
BSS HudElemID PopupMenu_EntryIconHID
void popup_draw_prompt_content(s32 *userData, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
BSS s8 PopupMenu_LastDisplayIndex
#define POPUP_ITEMDIP_NUMBER_X
void popup_draw_star_pieces_content(s32 *userData, s32 x, s32 y)
s8 status_bar_is_ignoring_changes(void)
Definition inventory.c:1522
BSS s8 D_8010D691
void show_popup_menu(void)
void popup_draw_already_have_partner(s32 *userData, s32 x, s32 y)
BSS HudElemID PopupMenu_PartnerLevelHID
void create_shop_popup_menu(PopupMenu *popup)
BSS s32 D_8010D6A4
BSS HudElemID PopupMenu_TimesHID
BSS s16 PopupPromptX
HudScript * D_80109898[]
BSS s32 gPopupState
HudScript HES_StatusStarPiece
BSS s32 PopupMenu_SelectedIndex
BSS HudElemID PopupMenu_UpArrowHID
BSS s16 PopupDescX
#define MENU_OFFSET_Y2
BSS s8 PopupMenu_WasStatusBarIgnoringChanges
BSS PopupMenu * gPopupMenu
#define POPUP_PARTNER_WIDTH
BSS s8 PopupMenu_MaxDisplayableEntryCount
BSS s8 D_8010D693
s16 PopupWorldStartX[]
u32 pressedButtons[4]
s32 HudElemID
#define get_msg_width
#define draw_msg
@ DRAW_MSG_STYLE_MENU
Definition enums.h:4970
@ DRAW_NUMBER_STYLE_ALIGN_RIGHT
drawn to the left of posX
Definition enums.h:4978
@ DRAW_NUMBER_STYLE_MONOSPACE
Definition enums.h:4979
@ DRAW_NUMBER_STYLE_MONOSPACE_RIGHT
Definition enums.h:4980
@ BUTTON_A
Definition enums.h:2776
@ BUTTON_R
Definition enums.h:2767
@ BUTTON_STICK_UP
Definition enums.h:2777
@ BUTTON_STICK_DOWN
Definition enums.h:2778
@ BUTTON_B
Definition enums.h:2775
@ BUTTON_C_RIGHT
Definition enums.h:2763
@ BUTTON_C_LEFT
Definition enums.h:2764
@ BUTTON_Z
Definition enums.h:2774
@ POPUP_MENU_TRADE_FOR_BADGE
Definition enums.h:3168
@ POPUP_MENU_READ_DIARY_PAGE
Definition enums.h:3175
@ POPUP_MENU_SELL_ITEM
Definition enums.h:3170
@ POPUP_MENU_CHECK_ITEM
Definition enums.h:3171
@ POPUP_MENU_POST_OFFICE
Definition enums.h:3178
@ POPUP_MENU_DOUBLE_DIP
Definition enums.h:3179
@ POPUP_MENU_USE_ITEM
Definition enums.h:3165
@ POPUP_MENU_TAKE_FROM_CHEST
Definition enums.h:3174
@ POPUP_MENU_USEKEY
Definition enums.h:3177
@ POPUP_MENU_CLAIM_ITEM
Definition enums.h:3172
@ POPUP_MENU_READ_LETTER
Definition enums.h:3173
@ POPUP_MENU_UPGRADE_PARTNER
Definition enums.h:3169
@ POPUP_MENU_THROW_AWAY_ITEM
Definition enums.h:3167
@ POPUP_MENU_SWITCH_PARTNER
Definition enums.h:3166
@ POPUP_MENU_READ_POSTCARD
Definition enums.h:3176
@ WINDOW_PRIORITY_21
Definition enums.h:3221
@ WINDOW_PRIORITY_19
Definition enums.h:3219
@ WINDOW_PRIORITY_20
Definition enums.h:3220
@ MSG_PAL_0F
Definition enums.h:5005
@ MSG_PAL_22
Definition enums.h:5024
@ MSG_PAL_34
Definition enums.h:5042
@ MSG_PAL_0D
Definition enums.h:5003
@ MSG_PAL_STANDARD
Definition enums.h:5000
@ MSG_PAL_0B
Definition enums.h:5001
@ MSG_PAL_32
Definition enums.h:5040
@ WINDOW_UPDATE_SHOW
Definition enums.h:4896
@ WINDOW_UPDATE_HIDE
Definition enums.h:4897
@ DRAW_NUMBER_CHARSET_THIN
Definition enums.h:4986
@ POPUP_RESULT_CANCEL
Definition enums.h:3212
@ POPUP_RESULT_CHOOSING
Definition enums.h:3211
@ POPUP_RESULT_INVALID
Definition enums.h:3209
@ POPUP_RESULT_SWAP_MENU
Definition enums.h:3210
@ CONTEXT_WORLD
Definition enums.h:3562
@ SOUND_OPEN_POPUP_1
Definition enums.h:551
@ SOUND_MENU_BACK
Definition enums.h:704
@ SOUND_OPEN_POPUP_2
Definition enums.h:552
@ SOUND_MENU_CHANGE_SELECTION
Definition enums.h:701
@ SOUND_MENU_NEXT
Definition enums.h:703
@ SOUND_MENU_ERROR
Definition enums.h:936
@ POPUP_STATE_CHOSE_SWAP
Definition enums.h:3203
@ POPUP_STATE_MINUS_8
Definition enums.h:3205
@ POPUP_STATE_10
Definition enums.h:3186
@ POPUP_STATE_104
Definition enums.h:3196
@ POPUP_STATE_CHOSE_WORLD
Definition enums.h:3198
@ POPUP_STATE_11
Definition enums.h:3187
@ POPUP_STATE_MINUS_4
Definition enums.h:3201
@ POPUP_STATE_MINUS_3
Definition enums.h:3200
@ POPUP_STATE_ALREADY_HAVE_PARTNER_SHOW
Definition enums.h:3190
@ POPUP_STATE_INIT
Definition enums.h:3184
@ POPUP_STATE_105
Definition enums.h:3197
@ POPUP_STATE_CHOOSING
Definition enums.h:3185
@ POPUP_STATE_ALREADY_HAVE_PARTNER_BEGIN
Definition enums.h:3189
@ POPUP_STATE_ALREADY_HAVE_PARTNER_AWAIT
Definition enums.h:3191
@ POPUP_STATE_CANCEL_DIP
Definition enums.h:3192
@ POPUP_STATE_CANCEL_DIP_DECLINE
Definition enums.h:3195
@ POPUP_STATE_CANCEL_DIP_AWAIT_CHOICE
Definition enums.h:3193
@ POPUP_STATE_CHOSE_BATTLE
Definition enums.h:3199
@ POPUP_STATE_MINUS_7
Definition enums.h:3204
@ POPUP_STATE_MINUS_5
Definition enums.h:3202
@ POPUP_STATE_20
Definition enums.h:3188
@ POPUP_STATE_CANCEL_DIP_ACCEPT
Definition enums.h:3194
@ WIN_CURRENCY_COUNTER
Definition enums.h:4846
@ WIN_POPUP_DESC
Definition enums.h:4845
@ WIN_POPUP_CONTENT
Definition enums.h:4840
@ WIN_BTL_POPUP
Definition enums.h:4835
@ WIN_POPUP_TITLE_A
Definition enums.h:4841
@ WIN_POPUP_TITLE_B
Definition enums.h:4843
@ WIN_POPUP_COST
Definition enums.h:4842
@ WIN_POPUP_PROMPT
Definition enums.h:4847
@ WIN_PARTNER_COST
Definition enums.h:4844
void msg_printer_set_origin_pos(MessagePrintState *msgPrintState, s32 x, s32 y)
Definition msg.c:1495
void basic_hidden_window_update(s32 windowIndex, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
Definition windows.c:184
void status_bar_ignore_changes(void)
Definition inventory.c:1507
void set_window_update(s32 panelID, s32)
Definition windows.c:434
void open_status_bar_quickly(void)
Definition inventory.c:1440
void basic_window_update(s32 windowIndex, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
Definition windows.c:161
void close_status_bar(void)
Definition inventory.c:1450
void free_worker(s32)
Definition worker.c:176
MessagePrintState * msg_get_printer_for_msg(s32 msgID, s32 *a1)
Definition msg.c:1430
void set_message_int_var(s32 value, s32 index)
Definition msg.c:1556
void set_window_properties(s32 panelID, s32 posX, s32 posY, s32 width, s32 height, u8, void *drawContents, void *drawContentsArg, s8 parent)
Definition windows.c:373
s32 create_worker_frontUI(void(*updateFunc)(void), void(*drawFunc)(void))
Definition worker.c:63
void draw_number(s32 value, s32 x, s32 y, s32 variableWidthChars, s32 palette, s32 opacity, u16 style)
Definition msg.c:2229
void status_bar_respond_to_changes(void)
Definition inventory.c:1518
s32 get_msg_lines(s32 messageID)
Definition msg.c:1985
HudScript HES_AnimatedHandPointer
HudScript HES_StatusCoin
HudScript HES_MenuTimes
void hud_element_set_scale(s32 index, f32 scale)
void hud_element_set_alpha(s32 id, s32 opacity)
void hud_element_draw_without_clipping(s32 id)
void hud_element_set_script(s32 id, HudScript *anim)
void hud_element_draw_next(s32 id)
void hud_element_set_tint(s32 id, s32 r, s32 g, s32 b)
void hud_element_set_render_pos(s32 id, s32 x, s32 y)
s32 hud_element_create(HudScript *anim)
Creates a new HUD element and returns its ID.
void hud_element_set_flags(s32 id, s32 flags)
Turns on the given flags.
void hud_element_draw_clipped(s32 id)
void hud_element_free(s32 id)
s32 userIndex[32]
s32 nameMsg[32]
@ HUD_ELEMENT_FLAG_DISABLED
Definition hud_element.h:72
@ HUD_ELEMENT_FLAG_DROP_SHADOW
Definition hud_element.h:97
@ HUD_ELEMENT_FLAG_MANUAL_RENDER
Definition hud_element.h:78
@ HUD_ELEMENT_FLAG_FILTER_TEX
Definition hud_element.h:86
s32 titleNumber
HudScript * ptrIcon[32]
b32 enabled[32]
s32 value[32]
s32 HudScript[]
Definition hud_element.h:9
s32 descMsg[32]
#define INCLUDE_ASM(TYPE, FOLDER, NAME, ARGS...)
Definition include_asm.h:21
void sfx_play_sound(s32 soundID)
#define BSS
Definition macros.h:7
#define ARRAY_COUNT(arr)
Definition macros.h:40
GameStatus * gGameStatusPtr
Definition main_loop.c:31
Gfx * gMainGfxPos
Definition cam_main.c:14
PlayerData gPlayerData
Definition 77480.c:39