mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-08-03 08:33:20 -04:00
Attempt to decompile menuRenderItemMarquee
This commit is contained in:
+231
-96
@@ -35,10 +35,10 @@ const char var7f1adfb8[] = "";
|
||||
const char var7f1adfbc[] = "";
|
||||
const char var7f1adfc0[] = "%d\n";
|
||||
|
||||
u32 var80071190 = 0x00000000;
|
||||
u32 var80071194 = 0x00000000;
|
||||
u32 var80071198 = 0x00000000;
|
||||
u32 var8007119c = 0x00000000;
|
||||
s32 var80071190 = 0x00000000;
|
||||
s32 var80071194 = 0x00000000;
|
||||
s32 var80071198 = 0x00000000;
|
||||
s32 var8007119c = 0x00000000;
|
||||
u32 var800711a0 = 0x00000000;
|
||||
u32 var800711a4 = 0x00000000;
|
||||
u32 var800711a8 = 0x0000000b;
|
||||
@@ -58,96 +58,6 @@ u32 var800711dc = 0x32330000;
|
||||
u32 var800711e0 = 0x573a573b;
|
||||
u32 var800711e4 = 0x573c573d;
|
||||
u32 var800711e8 = 0x00000000;
|
||||
u32 var800711ec = 0x20000000;
|
||||
u32 var800711f0 = 0x00000002;
|
||||
u32 var800711f4 = 0x0000000c;
|
||||
u32 var800711f8 = 0x0000000a;
|
||||
u32 var800711fc = 0xffffffff;
|
||||
u32 var80071200 = 0x00000003;
|
||||
u32 var80071204 = 0x00000033;
|
||||
u32 var80071208 = 0x0000000a;
|
||||
u32 var8007120c = 0xffffffff;
|
||||
u32 var80071210 = 0x00000003;
|
||||
u32 var80071214 = 0x0000000c;
|
||||
u32 var80071218 = 0x00000003;
|
||||
u32 var8007121c = 0x0000004b;
|
||||
u32 var80071220 = 0xffffffff;
|
||||
u32 var80071224 = 0x00000037;
|
||||
u32 var80071228 = 0x00000013;
|
||||
u32 var8007122c = 0x00000040;
|
||||
u32 var80071230 = 0xffffffff;
|
||||
u32 var80071234 = 0x0000003f;
|
||||
u32 var80071238 = 0x00000013;
|
||||
u32 var8007123c = 0xffffffff;
|
||||
u32 var80071240 = 0x0000000a;
|
||||
u32 var80071244 = 0x0000003f;
|
||||
u32 var80071248 = 0x0000000a;
|
||||
u32 var8007124c = 0x0000004b;
|
||||
u32 var80071250 = 0xffffffff;
|
||||
u32 var80071254 = 0x00000033;
|
||||
u32 var80071258 = 0x00000017;
|
||||
u32 var8007125c = 0x00000037;
|
||||
u32 var80071260 = 0xffffffff;
|
||||
u32 var80071264 = 0x0000003b;
|
||||
u32 var80071268 = 0x00000017;
|
||||
u32 var8007126c = 0x00000044;
|
||||
u32 var80071270 = 0xffffffff;
|
||||
u32 var80071274 = 0x00000043;
|
||||
u32 var80071278 = 0x00000017;
|
||||
u32 var8007127c = 0xffffffff;
|
||||
u32 var80071280 = 0x00000011;
|
||||
u32 var80071284 = 0x00000043;
|
||||
u32 var80071288 = 0x00000011;
|
||||
u32 var8007128c = 0x0000004b;
|
||||
u32 var80071290 = 0xffffffff;
|
||||
u32 var80071294 = 0x00000037;
|
||||
u32 var80071298 = 0x0000001b;
|
||||
u32 var8007129c = 0x00000048;
|
||||
u32 var800712a0 = 0xffffffff;
|
||||
u32 var800712a4 = 0x00000047;
|
||||
u32 var800712a8 = 0x0000001b;
|
||||
u32 var800712ac = 0xffffffff;
|
||||
u32 var800712b0 = 0x00000018;
|
||||
u32 var800712b4 = 0x00000047;
|
||||
u32 var800712b8 = 0x00000018;
|
||||
u32 var800712bc = 0x0000004b;
|
||||
u32 var800712c0 = 0xffffffff;
|
||||
u32 var800712c4 = 0x00000031;
|
||||
u32 var800712c8 = 0x0000001f;
|
||||
u32 var800712cc = 0x0000004b;
|
||||
u32 var800712d0 = 0xffffffff;
|
||||
u32 var800712d4 = 0x0000002b;
|
||||
u32 var800712d8 = 0x0000001c;
|
||||
u32 var800712dc = 0xffffffff;
|
||||
u32 var800712e0 = 0x00000026;
|
||||
u32 var800712e4 = 0x0000002b;
|
||||
u32 var800712e8 = 0x00000026;
|
||||
u32 var800712ec = 0x0000004b;
|
||||
u32 var800712f0 = 0xffffffff;
|
||||
u32 var800712f4 = 0x0000001e;
|
||||
u32 var800712f8 = 0x00000023;
|
||||
u32 var800712fc = 0x00000025;
|
||||
u32 var80071300 = 0xffffffff;
|
||||
u32 var80071304 = 0x00000025;
|
||||
u32 var80071308 = 0x00000023;
|
||||
u32 var8007130c = 0xffffffff;
|
||||
u32 var80071310 = 0x0000002d;
|
||||
u32 var80071314 = 0x00000025;
|
||||
u32 var80071318 = 0x0000002d;
|
||||
u32 var8007131c = 0x0000004b;
|
||||
u32 var80071320 = 0xffffffff;
|
||||
u32 var80071324 = 0x00000022;
|
||||
u32 var80071328 = 0x00000034;
|
||||
u32 var8007132c = 0x0000004b;
|
||||
u32 var80071330 = 0xffffffff;
|
||||
u32 var80071334 = 0x0000000c;
|
||||
u32 var80071338 = 0x0000001e;
|
||||
u32 var8007133c = 0xffffffff;
|
||||
u32 var80071340 = 0x0000003b;
|
||||
u32 var80071344 = 0x0000000c;
|
||||
u32 var80071348 = 0x0000003b;
|
||||
u32 var8007134c = 0x0000004b;
|
||||
u32 var80071350 = 0xffffffff;
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f0e5ce0
|
||||
@@ -7526,7 +7436,7 @@ Gfx *menuRenderItemScrollable(Gfx *gdl, struct menurenderthing *thing)
|
||||
char *streams[2];
|
||||
char *inptr;
|
||||
s32 inheading;
|
||||
s16 *unk14 = thing->unk14;
|
||||
s16 *unk14 = thing->unk14.s16;
|
||||
u32 colour;
|
||||
s32 x;
|
||||
s32 y;
|
||||
@@ -10181,6 +10091,231 @@ glabel menuRenderItemMarquee
|
||||
/* f0eda30: 27bd0088 */ addiu $sp,$sp,0x88
|
||||
);
|
||||
|
||||
u32 var800711ec = 0x20000000;
|
||||
|
||||
// Mismatch at 718
|
||||
//Gfx *menuRenderItemMarquee(Gfx *gdl, struct menurenderthing *thing)
|
||||
//{
|
||||
// u16 *unk14 = thing->unk14.u16; // 84
|
||||
// char *text = menuResolveParam2Text(thing->item); // 80
|
||||
// s32 x; // 7c
|
||||
// s32 y; // 78
|
||||
// u32 colour; // 74
|
||||
// s32 i = 0; // 70
|
||||
// s32 textwidth; // 6c
|
||||
// s32 textheight; // 68
|
||||
// char string[] = {' ', '\0'}; // 64 - var800711ec
|
||||
// s32 hasmore;
|
||||
// u32 font2 = var8007fb0c; // 5c
|
||||
// u32 font1 = var8007fb10; // 58
|
||||
//
|
||||
// if (thing->item->param1 & 0x00000200) {
|
||||
// font2 = var8007fb04;
|
||||
// font1 = var8007fb08;
|
||||
// }
|
||||
//
|
||||
// if (!text) {
|
||||
// return gdl;
|
||||
// }
|
||||
//
|
||||
// // 5b8
|
||||
// if (thing->unk10->unk40 < 0) {
|
||||
// colour = g_MenuColourPalettes[thing->unk10->colour1index].unk18;
|
||||
// } else {
|
||||
// colour = colourBlend(
|
||||
// g_MenuColourPalettes[thing->unk10->colour2index].unk18,
|
||||
// g_MenuColourPalettes[thing->unk10->colour1index].unk18,
|
||||
// thing->unk10->colourweight);
|
||||
// }
|
||||
//
|
||||
// // 644
|
||||
// if (thing->unk10->unk0c) {
|
||||
// colour = colourBlend(colour, 0, 127) & 0xffffff00 | colour & 0xff;
|
||||
// }
|
||||
//
|
||||
// // 674
|
||||
// x = thing->x + thing->width - *unk14;
|
||||
// y = thing->y + 2;
|
||||
// hasmore = true;
|
||||
//
|
||||
// while (hasmore == true) {
|
||||
// if (text[i] == '\0') {
|
||||
// hasmore = false;
|
||||
// } else {
|
||||
// string[0] = text[i];
|
||||
// textMeasure(&textheight, &textwidth, string, font1, font2, 0);
|
||||
//
|
||||
// if (x + textwidth > thing->x) {
|
||||
// hasmore = false;
|
||||
// } else {
|
||||
// x += textwidth;
|
||||
// hasmore = true;
|
||||
// i++;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // 718
|
||||
// // thing->x is loaded into a0 but should be t4. Additionally, the loads of
|
||||
// // thing->x and g_ScreenWidthMultiplier are swapped.
|
||||
// var80071190 = thing->x * g_ScreenWidthMultiplier;
|
||||
// var80071194 = (thing->x + thing->width) * g_ScreenWidthMultiplier;
|
||||
// var80071198 = thing->y;
|
||||
// var8007119c = thing->y + thing->height - 1;
|
||||
//
|
||||
// if (var80071190 < 0) {
|
||||
// var80071190 = 0;
|
||||
// }
|
||||
//
|
||||
// if (var80071194 < 0) {
|
||||
// var80071194 = 0;
|
||||
// }
|
||||
//
|
||||
// if (var80071198 < 0) {
|
||||
// var80071198 = 0;
|
||||
// }
|
||||
//
|
||||
// if (var8007119c < 0) {
|
||||
// var8007119c = 0;
|
||||
// }
|
||||
//
|
||||
// if (var80071190 > viGetBufX()) {
|
||||
// var80071190 = viGetBufX();
|
||||
// }
|
||||
//
|
||||
// if (var80071194 > viGetBufX()) {
|
||||
// var80071194 = viGetBufX();
|
||||
// }
|
||||
//
|
||||
// if (var80071198 > viGetBufY()) {
|
||||
// var80071198 = viGetBufY();
|
||||
// }
|
||||
//
|
||||
// if (var8007119c > viGetBufY()) {
|
||||
// var8007119c = viGetBufY();
|
||||
// }
|
||||
//
|
||||
// if (var80071194 < var80071190) {
|
||||
// var80071194 = var80071190;
|
||||
// }
|
||||
//
|
||||
// if (var8007119c < var80071198) {
|
||||
// var8007119c = var80071198;
|
||||
// }
|
||||
//
|
||||
// gDPSetScissor(gdl++, G_SC_NON_INTERLACE, var80071190, var80071198, var80071194, var8007119c);
|
||||
//
|
||||
// func0f153d24();
|
||||
//
|
||||
// if (thing->item->param1 & 0x00000800) {
|
||||
// func0f153ce8(thing->x, thing->x + thing->width, 0xe);
|
||||
// } else {
|
||||
// func0f153ce8(thing->x, thing->x, 0xe);
|
||||
// }
|
||||
//
|
||||
// gdl = func0f153628(gdl);
|
||||
// gdl = textRenderWhite(gdl, &x, &y, &text[i], font1, font2,
|
||||
// colour, thing->width + thing->x - x, thing->height, 0, 0);
|
||||
// gdl = func0f153780(gdl);
|
||||
// gdl = func0f0f50fc(gdl);
|
||||
//
|
||||
// func0f153d3c();
|
||||
//
|
||||
// unk14[2] = thing->width;
|
||||
//
|
||||
// return gdl;
|
||||
//}
|
||||
|
||||
u32 var800711f0 = 0x00000002;
|
||||
u32 var800711f4 = 0x0000000c;
|
||||
u32 var800711f8 = 0x0000000a;
|
||||
u32 var800711fc = 0xffffffff;
|
||||
u32 var80071200 = 0x00000003;
|
||||
u32 var80071204 = 0x00000033;
|
||||
u32 var80071208 = 0x0000000a;
|
||||
u32 var8007120c = 0xffffffff;
|
||||
u32 var80071210 = 0x00000003;
|
||||
u32 var80071214 = 0x0000000c;
|
||||
u32 var80071218 = 0x00000003;
|
||||
u32 var8007121c = 0x0000004b;
|
||||
u32 var80071220 = 0xffffffff;
|
||||
u32 var80071224 = 0x00000037;
|
||||
u32 var80071228 = 0x00000013;
|
||||
u32 var8007122c = 0x00000040;
|
||||
u32 var80071230 = 0xffffffff;
|
||||
u32 var80071234 = 0x0000003f;
|
||||
u32 var80071238 = 0x00000013;
|
||||
u32 var8007123c = 0xffffffff;
|
||||
u32 var80071240 = 0x0000000a;
|
||||
u32 var80071244 = 0x0000003f;
|
||||
u32 var80071248 = 0x0000000a;
|
||||
u32 var8007124c = 0x0000004b;
|
||||
u32 var80071250 = 0xffffffff;
|
||||
u32 var80071254 = 0x00000033;
|
||||
u32 var80071258 = 0x00000017;
|
||||
u32 var8007125c = 0x00000037;
|
||||
u32 var80071260 = 0xffffffff;
|
||||
u32 var80071264 = 0x0000003b;
|
||||
u32 var80071268 = 0x00000017;
|
||||
u32 var8007126c = 0x00000044;
|
||||
u32 var80071270 = 0xffffffff;
|
||||
u32 var80071274 = 0x00000043;
|
||||
u32 var80071278 = 0x00000017;
|
||||
u32 var8007127c = 0xffffffff;
|
||||
u32 var80071280 = 0x00000011;
|
||||
u32 var80071284 = 0x00000043;
|
||||
u32 var80071288 = 0x00000011;
|
||||
u32 var8007128c = 0x0000004b;
|
||||
u32 var80071290 = 0xffffffff;
|
||||
u32 var80071294 = 0x00000037;
|
||||
u32 var80071298 = 0x0000001b;
|
||||
u32 var8007129c = 0x00000048;
|
||||
u32 var800712a0 = 0xffffffff;
|
||||
u32 var800712a4 = 0x00000047;
|
||||
u32 var800712a8 = 0x0000001b;
|
||||
u32 var800712ac = 0xffffffff;
|
||||
u32 var800712b0 = 0x00000018;
|
||||
u32 var800712b4 = 0x00000047;
|
||||
u32 var800712b8 = 0x00000018;
|
||||
u32 var800712bc = 0x0000004b;
|
||||
u32 var800712c0 = 0xffffffff;
|
||||
u32 var800712c4 = 0x00000031;
|
||||
u32 var800712c8 = 0x0000001f;
|
||||
u32 var800712cc = 0x0000004b;
|
||||
u32 var800712d0 = 0xffffffff;
|
||||
u32 var800712d4 = 0x0000002b;
|
||||
u32 var800712d8 = 0x0000001c;
|
||||
u32 var800712dc = 0xffffffff;
|
||||
u32 var800712e0 = 0x00000026;
|
||||
u32 var800712e4 = 0x0000002b;
|
||||
u32 var800712e8 = 0x00000026;
|
||||
u32 var800712ec = 0x0000004b;
|
||||
u32 var800712f0 = 0xffffffff;
|
||||
u32 var800712f4 = 0x0000001e;
|
||||
u32 var800712f8 = 0x00000023;
|
||||
u32 var800712fc = 0x00000025;
|
||||
u32 var80071300 = 0xffffffff;
|
||||
u32 var80071304 = 0x00000025;
|
||||
u32 var80071308 = 0x00000023;
|
||||
u32 var8007130c = 0xffffffff;
|
||||
u32 var80071310 = 0x0000002d;
|
||||
u32 var80071314 = 0x00000025;
|
||||
u32 var80071318 = 0x0000002d;
|
||||
u32 var8007131c = 0x0000004b;
|
||||
u32 var80071320 = 0xffffffff;
|
||||
u32 var80071324 = 0x00000022;
|
||||
u32 var80071328 = 0x00000034;
|
||||
u32 var8007132c = 0x0000004b;
|
||||
u32 var80071330 = 0xffffffff;
|
||||
u32 var80071334 = 0x0000000c;
|
||||
u32 var80071338 = 0x0000001e;
|
||||
u32 var8007133c = 0xffffffff;
|
||||
u32 var80071340 = 0x0000003b;
|
||||
u32 var80071344 = 0x0000000c;
|
||||
u32 var80071348 = 0x0000003b;
|
||||
u32 var8007134c = 0x0000004b;
|
||||
u32 var80071350 = 0xffffffff;
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f0eda34
|
||||
/* f0eda34: 27bdffa8 */ addiu $sp,$sp,-88
|
||||
@@ -13134,7 +13269,7 @@ Gfx *menuRenderItem(Gfx *gdl, struct menurenderthing *thing)
|
||||
case MENUITEMTYPE_SLIDER: return menuRenderItemSlider(gdl);
|
||||
case MENUITEMTYPE_CHECKBOX: return menuRenderItemCheckbox(gdl);
|
||||
case MENUITEMTYPE_SCROLLABLE: return menuRenderItemScrollable(gdl, thing);
|
||||
case MENUITEMTYPE_MARQUEE: return menuRenderItemMarquee(gdl);
|
||||
case MENUITEMTYPE_MARQUEE: return menuRenderItemMarquee(gdl, thing);
|
||||
case MENUITEMTYPE_LABEL: return menuRenderItemLabel(gdl);
|
||||
case MENUITEMTYPE_METER: return menuRenderItemMeter(gdl, thing);
|
||||
case MENUITEMTYPE_SEPARATOR: return menuRenderItemSeparator(gdl, thing);
|
||||
|
||||
@@ -139,10 +139,10 @@ extern struct hudmessageconfig g_HudMessageConfigs[];
|
||||
extern u32 var80071170;
|
||||
extern u32 var80071180;
|
||||
extern u32 var80071184;
|
||||
extern u32 var80071190;
|
||||
extern u32 var80071194;
|
||||
extern u32 var80071198;
|
||||
extern u32 var8007119c;
|
||||
extern s32 var80071190;
|
||||
extern s32 var80071194;
|
||||
extern s32 var80071198;
|
||||
extern s32 var8007119c;
|
||||
extern u32 var800711a0;
|
||||
extern u32 var800711a4;
|
||||
extern u32 var800711ac;
|
||||
|
||||
@@ -36,7 +36,7 @@ char *menuItemScrollableGetText(u32 type);
|
||||
Gfx *menuRenderItemScrollable(Gfx *gdl, struct menurenderthing *thing);
|
||||
u32 func0f0ed264(void);
|
||||
void func0f0ed514(u16 *arg0);
|
||||
Gfx *menuRenderItemMarquee(Gfx *gdl);
|
||||
Gfx *menuRenderItemMarquee(Gfx *gdl, struct menurenderthing *thing);
|
||||
u32 func0f0eda34(void);
|
||||
void func0f0edb50(u16 *arg0);
|
||||
Gfx *menuRenderItem07(Gfx *gdl);
|
||||
|
||||
@@ -47,7 +47,7 @@ void func0f0f372c(u8 *arg0, f32 x, f32 y, f32 arg3, f32 arg4, f32 arg5, f32 arg6
|
||||
void func0f0f37a4(u8 *arg0);
|
||||
u32 func0f0f38b0(void);
|
||||
u32 func0f0f5004(void);
|
||||
u32 func0f0f50fc(void);
|
||||
Gfx *func0f0f50fc(Gfx *gdl);
|
||||
u32 func0f0f5360(void);
|
||||
u32 func0f0f74a8(void);
|
||||
u32 func0f0f7594(void);
|
||||
|
||||
@@ -22,9 +22,9 @@ u32 func0f153b6c(void);
|
||||
void func0f153c20(s32 x, s32 y, f32 arg2, s32 arg3);
|
||||
u32 func0f153c50(void);
|
||||
u32 func0f153c88(void);
|
||||
u32 func0f153ce8(void);
|
||||
u32 func0f153d24(void);
|
||||
u32 func0f153d3c(void);
|
||||
void func0f153ce8(s32 x1, s32 x2, u32 arg2);
|
||||
void func0f153d24(void);
|
||||
void func0f153d3c(void);
|
||||
u32 func0f153d50(void);
|
||||
u32 func0f153d88(void);
|
||||
void func0f153e38(u32 colour1, u32 colour2);
|
||||
@@ -43,7 +43,7 @@ u32 func0f1566cc(void);
|
||||
u32 func0f156790(void);
|
||||
u32 func0f156a24(void);
|
||||
Gfx *textRender(Gfx *gdl, s32 *x, s32 *y, char *text, u32 arg4, u32 arg5, s32 arg6, u32 colour, s16 arg8, s16 arg9, u32 arg10, u32 arg11);
|
||||
void textMeasure(s32 *textheight, s32 *textwidth, char *text, u32 arg3, u32 arg4, u32 arg5);
|
||||
void textMeasure(s32 *textheight, s32 *textwidth, char *text, u32 font1, u32 font2, u32 arg5);
|
||||
void textWrap(s32 width, char *in, char *out, u32 font1, u32 font2);
|
||||
u32 func0f1577f0(void);
|
||||
u32 func0f1578c8(void);
|
||||
|
||||
+5
-1
@@ -6809,7 +6809,11 @@ struct menurenderthing {
|
||||
struct menuitem *item;
|
||||
bool focused;
|
||||
struct menurenderthing10 *unk10;
|
||||
s16 *unk14;
|
||||
|
||||
union {
|
||||
s16 *s16;
|
||||
u16 *u16;
|
||||
} unk14;
|
||||
};
|
||||
|
||||
struct menucolourpalette {
|
||||
|
||||
Reference in New Issue
Block a user