Set names for menumodel symbols

This commit is contained in:
Ryan Dwyer
2023-08-22 08:03:17 +10:00
parent 09edfb8545
commit 38345c1672
16 changed files with 719 additions and 715 deletions
+26 -24
View File
@@ -122,7 +122,7 @@ struct creditsdata {
/*0x0008*/ u32 unk0008;
/*0x000c*/ struct particle particles[500];
/*0x2eec*/ u8 unk2eec;
/*0x2ef0*/ struct menu840 unk2ef0;
/*0x2ef0*/ struct menumodel menumodel;
/*0x34a8*/ u8 unk34a8[0xcac];
/**
@@ -1796,7 +1796,7 @@ Gfx *creditsDraw(Gfx *gdl)
g_CreditsScrollStarted = true;
scrolltimer240 = 0;
func0f0f37a4(&g_CreditsData->unk2ef0);
menuUnsetModel(&g_CreditsData->menumodel);
}
scrolltimer240 += g_Vars.diffframe240;
@@ -1805,19 +1805,22 @@ Gfx *creditsDraw(Gfx *gdl)
scrolltimer240 = 0;
}
g_CreditsData->unk2ef0.unk54c = 0;
g_CreditsData->unk2ef0.unk524 = 0;
g_CreditsData->unk2ef0.unk520 = g_CreditsData->unk2ef0.unk548 = -0.26175770163536;
g_CreditsData->unk2ef0.unk528 = g_CreditsData->unk2ef0.unk550 = 0;
g_CreditsData->unk2ef0.unk538 = 833.0f - (scrolltimer240 / TICKS(14400.0f)) * 2413.0f;
g_CreditsData->unk2ef0.unk53c = VERSION == VERSION_PAL_FINAL ? 65.86 : 70.86;
g_CreditsData->unk2ef0.unk540 = -2050;
g_CreditsData->unk2ef0.unk544 = 1.467;
g_CreditsData->unk2ef0.unk00c = 1200;
g_CreditsData->unk2ef0.unk5b1_07 = true;
g_CreditsData->unk2ef0.partvisibility = NULL;
g_CreditsData->menumodel.newroty = 0;
g_CreditsData->menumodel.curroty = 0;
gdl = menuRenderModels(gdl, &g_CreditsData->unk2ef0, 4);
g_CreditsData->menumodel.currotx = g_CreditsData->menumodel.newrotx = -0.26175770163536;
g_CreditsData->menumodel.currotz = g_CreditsData->menumodel.newrotz = 0;
g_CreditsData->menumodel.newposx = 833.0f - (scrolltimer240 / TICKS(14400.0f)) * 2413.0f;
g_CreditsData->menumodel.newposy = VERSION == VERSION_PAL_FINAL ? 65.86 : 70.86;
g_CreditsData->menumodel.newposz = -2050;
g_CreditsData->menumodel.newscale = 1.467;
g_CreditsData->menumodel.newparams = MENUMODELPARAMS_SET_FILENUM(FILE_PPDMENU);
g_CreditsData->menumodel.drawbehinddialog = true;
g_CreditsData->menumodel.partvisibility = NULL;
gdl = menuRenderModel(gdl, &g_CreditsData->menumodel, MENUMODELTYPE_CREDITSLOGO);
gSPMatrix(gdl++, osVirtualToPhysical(matrix), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
@@ -1912,19 +1915,18 @@ void creditsReset(void)
creditsResetParticles();
creditsResetSlides();
func0f0f8bb4(&g_CreditsData->unk2ef0, 0x25800, 1);
menuResetModel(&g_CreditsData->menumodel, 0x25800, true);
g_CreditsData->unk2ef0.unk580 = 0;
g_CreditsData->menumodel.removingpiece = false;
func0f0f372c(&g_CreditsData->unk2ef0, 0, 0, 0, 0, 0, 0, 1, 5);
menuConfigureModel(&g_CreditsData->menumodel, 0, 0, 0, 0, 0, 0, 1, MENUMODELFLAG_HASSCALE | MENUMODELFLAG_HASROTATION);
g_CreditsData->unk2ef0.unk53c = 90;
g_CreditsData->unk2ef0.unk510 = 8.2;
g_CreditsData->unk2ef0.unk514 = -4.1;
g_CreditsData->unk2ef0.unk51c = 0.00393;
g_CreditsData->unk2ef0.unk54c = 0;
g_CreditsData->unk2ef0.unk524 = g_CreditsData->unk2ef0.unk54c;
g_CreditsData->unk2ef0.unk578 = 60;
g_CreditsData->menumodel.newposy = 90;
g_CreditsData->menumodel.curposx = 8.2;
g_CreditsData->menumodel.curposy = -4.1;
g_CreditsData->menumodel.curscale = 0.00393;
g_CreditsData->menumodel.curroty = g_CreditsData->menumodel.newroty = 0;
g_CreditsData->menumodel.rottimer60 = 60;
g_CreditsUsingAltTitle = g_CreditsAltTitleRequested;
+14 -14
View File
@@ -432,19 +432,19 @@ struct menudialogdef *endscreenAdvance(void)
return &g_NextMissionMenuDialog;
}
void endscreen0f10d770(void)
void endscreenResetModels(void)
{
func0f0f8bb4(&g_Menus[0].unk840, bgunCalculateGunMemCapacity() - menugfxGetParticleArraySize(), 0);
g_Menus[0].unk840.unk004 = bgunGetGunMem() + menugfxGetParticleArraySize();
menuResetModel(&g_Menus[0].menumodel, bgunCalculateGunMemCapacity() - menugfxGetParticleArraySize(), false);
g_Menus[0].menumodel.allocstart = bgunGetGunMem() + menugfxGetParticleArraySize();
func0f0f8bb4(&g_Menus[1].unk840, bgunCalculateGunMemCapacity() - menugfxGetParticleArraySize(), 0);
g_Menus[1].unk840.unk004 = bgunGetGunMem() + menugfxGetParticleArraySize();
menuResetModel(&g_Menus[1].menumodel, bgunCalculateGunMemCapacity() - menugfxGetParticleArraySize(), false);
g_Menus[1].menumodel.allocstart = bgunGetGunMem() + menugfxGetParticleArraySize();
func0f0f8bb4(&g_Menus[2].unk840, bgunCalculateGunMemCapacity() - menugfxGetParticleArraySize(), 0);
g_Menus[2].unk840.unk004 = bgunGetGunMem() + menugfxGetParticleArraySize();
menuResetModel(&g_Menus[2].menumodel, bgunCalculateGunMemCapacity() - menugfxGetParticleArraySize(), false);
g_Menus[2].menumodel.allocstart = bgunGetGunMem() + menugfxGetParticleArraySize();
func0f0f8bb4(&g_Menus[3].unk840, bgunCalculateGunMemCapacity() - menugfxGetParticleArraySize(), 0);
g_Menus[3].unk840.unk004 = bgunGetGunMem() + menugfxGetParticleArraySize();
menuResetModel(&g_Menus[3].menumodel, bgunCalculateGunMemCapacity() - menugfxGetParticleArraySize(), false);
g_Menus[3].menumodel.allocstart = bgunGetGunMem() + menugfxGetParticleArraySize();
}
#if VERSION >= VERSION_NTSC_1_0
@@ -687,7 +687,7 @@ void endscreenContinue(s32 context)
menuPushDialog(&g_MissionContinueOrReplyMenuDialog);
}
} else {
endscreen0f10d770();
endscreenResetModels();
if (context == 1) {
menuPushRootDialog(endscreenAdvance(), MENUROOT_COOPCONTINUE);
@@ -746,7 +746,7 @@ MenuDialogHandlerResult endscreenHandle2PCompleted(s32 operation, struct menudia
&& !isStageDifficultyUnlocked(g_MissionConfig.stageindex + 1, g_MissionConfig.difficulty)))) {
menuPopDialog();
} else {
endscreen0f10d770();
endscreenResetModels();
menuPushDialog(endscreenAdvance());
}
#endif
@@ -789,7 +789,7 @@ MenuDialogHandlerResult endscreenHandle2PFailed(s32 operation, struct menudialog
|| g_Vars.stagenum == STAGE_CITRAINING) {
menuPopDialog();
} else {
endscreen0f10d770();
endscreenResetModels();
menuPushDialog(&g_RetryMissionMenuDialog);
}
}
@@ -1750,7 +1750,7 @@ void endscreenPushSolo(void)
#endif
{
// Failed or aborted
endscreen0f10d770();
endscreenResetModels();
menuPushRootDialog(&g_RetryMissionMenuDialog, MENUROOT_COOPCONTINUE);
} else {
// Completed
@@ -1760,7 +1760,7 @@ void endscreenPushSolo(void)
struct menudialogdef *definition = endscreenAdvance();
if (definition) {
endscreen0f10d770();
endscreenResetModels();
menuPushRootDialog(definition, MENUROOT_COOPCONTINUE);
}
#endif
+42 -43
View File
@@ -772,11 +772,11 @@ MenuDialogHandlerResult menudialog00103608(s32 operation, struct menudialogdef *
{
switch (operation) {
case MENUOP_OPEN:
g_Menus[g_MpPlayerNum].unk840.unk010 = 0;
g_Menus[g_MpPlayerNum].menumodel.curparams = 0;
setupLoadBriefing(g_MissionConfig.stagenum,
g_Menus[g_MpPlayerNum].unk840.unk004,
g_Menus[g_MpPlayerNum].unk840.unk008, &g_Briefing);
g_Menus[g_MpPlayerNum].menumodel.allocstart,
g_Menus[g_MpPlayerNum].menumodel.alloclen, &g_Briefing);
break;
case MENUOP_CLOSE:
langClearBank(g_Briefing.langbank);
@@ -3779,51 +3779,50 @@ void func0f105948(s32 weaponnum)
if (weaponHasFlag(weaponnum, WEAPONFLAG_HIDEMENUMODEL) == false && (u32)wantindex >= 0 && useindex >= 0) {
weapon = weaponFindById(weaponnum);
g_Menus[g_MpPlayerNum].unk840.unk000 = 8;
g_Menus[g_MpPlayerNum].unk840.unk010 = 0;
g_Menus[g_MpPlayerNum].unk840.unk00c = weaponGetFileNum(weaponnum);
g_Menus[g_MpPlayerNum].unk840.unk538 = 0;
g_Menus[g_MpPlayerNum].unk840.unk510 = 0;
g_Menus[g_MpPlayerNum].unk840.unk53c = 0;
g_Menus[g_MpPlayerNum].unk840.unk514 = 0;
g_Menus[g_MpPlayerNum].unk840.unk540 = 0;
g_Menus[g_MpPlayerNum].unk840.unk518 = 0;
g_Menus[g_MpPlayerNum].unk840.unk550 = 0;
g_Menus[g_MpPlayerNum].unk840.unk528 = 0;
g_Menus[g_MpPlayerNum].unk840.unk52c = gunconfig[useindex][0];
g_Menus[g_MpPlayerNum].unk840.unk530 = gunconfig[useindex][1];
g_Menus[g_MpPlayerNum].unk840.unk534 = gunconfig[useindex][2];
g_Menus[g_MpPlayerNum].unk840.unk548 = gunconfig[useindex][3];
g_Menus[g_MpPlayerNum].unk840.unk520 = gunconfig[useindex][3]; // @bug? Wrong index?
g_Menus[g_MpPlayerNum].menumodel.loaddelay = 8;
g_Menus[g_MpPlayerNum].menumodel.curparams = 0;
g_Menus[g_MpPlayerNum].menumodel.newparams = MENUMODELPARAMS_SET_FILENUM(weaponGetFileNum(weaponnum));
func0f0f372c(&g_Menus[g_MpPlayerNum].unk840, 0, 0, 0, 0, 0, 0, gunconfig[useindex][4], 1);
g_Menus[g_MpPlayerNum].menumodel.curposx = g_Menus[g_MpPlayerNum].menumodel.newposx = 0;
g_Menus[g_MpPlayerNum].menumodel.curposy = g_Menus[g_MpPlayerNum].menumodel.newposy = 0;
g_Menus[g_MpPlayerNum].menumodel.curposz = g_Menus[g_MpPlayerNum].menumodel.newposz = 0;
g_Menus[g_MpPlayerNum].unk840.unk51c = 0;
g_Menus[g_MpPlayerNum].unk840.partvisibility = weapon->partvisibility;
g_Menus[g_MpPlayerNum].unk840.unk554 = -1;
g_Menus[g_MpPlayerNum].menumodel.currotz = g_Menus[g_MpPlayerNum].menumodel.newrotz = 0;
g_Menus[g_MpPlayerNum].menumodel.displacex = gunconfig[useindex][0];
g_Menus[g_MpPlayerNum].menumodel.displacey = gunconfig[useindex][1];
g_Menus[g_MpPlayerNum].menumodel.displacez = gunconfig[useindex][2];
g_Menus[g_MpPlayerNum].menumodel.newrotx = gunconfig[useindex][3];
g_Menus[g_MpPlayerNum].menumodel.currotx = gunconfig[useindex][3];
menuConfigureModel(&g_Menus[g_MpPlayerNum].menumodel, 0, 0, 0, 0, 0, 0, gunconfig[useindex][4], MENUMODELFLAG_HASSCALE);
g_Menus[g_MpPlayerNum].menumodel.curscale = 0;
g_Menus[g_MpPlayerNum].menumodel.partvisibility = weapon->partvisibility;
g_Menus[g_MpPlayerNum].menumodel.zoom = -1;
// These indexes correspond to WEAPON_DISGUISE40 and WEAPON_DISGUISE41
if (wantindex == 0x3e || wantindex == 0x3f) {
if ((u32)wantindex == 0x3e) {
g_Menus[g_MpPlayerNum].unk840.unk00c = 0x0a01ffff;
g_Menus[g_MpPlayerNum].menumodel.newparams = MENUMODELPARAMS_SET_MP_HEADBODY(MPHEAD_DARK_FROCK, MPBODY_DARKLAB);
} else {
g_Menus[g_MpPlayerNum].unk840.unk00c = 0x0400ffff;
g_Menus[g_MpPlayerNum].menumodel.newparams = MENUMODELPARAMS_SET_MP_HEADBODY(MPHEAD_DARK_COMBAT, MPBODY_DARK_AF1);
}
g_Menus[g_MpPlayerNum].unk840.partvisibility = NULL;
g_Menus[g_MpPlayerNum].unk840.unk580 = 0;
g_Menus[g_MpPlayerNum].menumodel.partvisibility = NULL;
g_Menus[g_MpPlayerNum].menumodel.removingpiece = false;
func0f0f372c(&g_Menus[g_MpPlayerNum].unk840, 0, 0, 0, 0, 0, 0, 1, 1);
menuConfigureModel(&g_Menus[g_MpPlayerNum].menumodel, 0, 0, 0, 0, 0, 0, 1, MENUMODELFLAG_HASSCALE);
g_Menus[g_MpPlayerNum].unk840.unk578 = TICKS(60);
g_Menus[g_MpPlayerNum].unk840.unk574 = TICKS(120);
g_Menus[g_MpPlayerNum].unk840.unk54c = -0.2f;
g_Menus[g_MpPlayerNum].unk840.unk524 = -0.2f;
g_Menus[g_MpPlayerNum].menumodel.rottimer60 = TICKS(60);
g_Menus[g_MpPlayerNum].menumodel.zoomtimer60 = TICKS(120);
g_Menus[g_MpPlayerNum].menumodel.curroty = g_Menus[g_MpPlayerNum].menumodel.newroty = -0.2f;
}
} else {
g_Menus[g_MpPlayerNum].unk840.bodymodeldef = NULL;
g_Menus[g_MpPlayerNum].unk840.unk010 = 0;
g_Menus[g_MpPlayerNum].unk840.unk00c = 0;
g_Menus[g_MpPlayerNum].menumodel.bodymodeldef = NULL;
g_Menus[g_MpPlayerNum].menumodel.curparams = 0;
g_Menus[g_MpPlayerNum].menumodel.newparams = 0;
}
}
@@ -3831,11 +3830,11 @@ MenuDialogHandlerResult inventoryMenuDialog(s32 operation, struct menudialogdef
{
if (operation == MENUOP_TICK) {
if (g_Menus[g_MpPlayerNum].curdialog && g_Menus[g_MpPlayerNum].curdialog->definition == dialogdef) {
g_Menus[g_MpPlayerNum].unk840.unk574 -= g_Vars.diffframe60;
g_Menus[g_MpPlayerNum].unk840.unk54c = 18.849555969238f * g_20SecIntervalFrac;
g_Menus[g_MpPlayerNum].unk840.unk524 = 18.849555969238f * g_20SecIntervalFrac;
g_Menus[g_MpPlayerNum].unk840.unk528 = 0;
g_Menus[g_MpPlayerNum].unk840.unk550 = 0;
g_Menus[g_MpPlayerNum].menumodel.zoomtimer60 -= g_Vars.diffframe60;
g_Menus[g_MpPlayerNum].menumodel.newroty = 18.849555969238f * g_20SecIntervalFrac;
g_Menus[g_MpPlayerNum].menumodel.curroty = 18.849555969238f * g_20SecIntervalFrac;
g_Menus[g_MpPlayerNum].menumodel.currotz = 0;
g_Menus[g_MpPlayerNum].menumodel.newrotz = 0;
if (var80072d88 != g_InventoryWeapon) {
func0f105948(g_InventoryWeapon);
@@ -3843,9 +3842,9 @@ MenuDialogHandlerResult inventoryMenuDialog(s32 operation, struct menudialogdef
}
if (g_InventoryWeapon == WEAPON_DISGUISE40 || g_InventoryWeapon == WEAPON_DISGUISE41) {
g_Menus[g_MpPlayerNum].unk840.unk05c = ANIM_006A;
g_Menus[g_MpPlayerNum].unk840.unk578 = TICKS(60);
g_Menus[g_MpPlayerNum].unk840.unk574 = TICKS(120);
g_Menus[g_MpPlayerNum].menumodel.newanimnum = ANIM_006A;
g_Menus[g_MpPlayerNum].menumodel.rottimer60 = TICKS(60);
g_Menus[g_MpPlayerNum].menumodel.zoomtimer60 = TICKS(120);
}
} else {
var80072d88 = 255;
+390 -395
View File
File diff suppressed because it is too large Load Diff
+9 -9
View File
@@ -1401,7 +1401,7 @@ Gfx *menugfxRenderBgFailure(Gfx *gdl)
spb4 = M_TAU * g_20SecIntervalFrac;
var8009de98 = var8009de9c = 0;
g_MenuProjectFromX = g_MenuProjectFromY = 0;
gdl = func0f0d4a3c(gdl, 0);
@@ -1578,8 +1578,8 @@ Gfx *menugfxRenderBgCone(Gfx *gdl)
*/
Gfx *func0f0e458c(Gfx *gdl)
{
var8009de98 = 0;
var8009de9c = -20 - viGetHeight() / 2;
g_MenuProjectFromX = 0;
g_MenuProjectFromY = -20 - viGetHeight() / 2;
gdl = func0f0d4a3c(gdl, 0);
@@ -1590,15 +1590,15 @@ Gfx *func0f0e458c(Gfx *gdl)
gdl = menugfxDrawPlane(gdl, -1000, viGetHeight() + 10, 2000, viGetHeight() + 10, 0xffff00af, 0xffff00af, MENUPLANE_05);
gdl = func0f0d4c80(gdl);
var8009de98 = var8009de9c = 0;
g_MenuProjectFromX = g_MenuProjectFromY = 0;
return gdl;
}
Gfx *func0f0e46b0(Gfx *gdl, f32 arg1)
{
s32 y1 = (var8009de9c + 120) + arg1 * (0.0f - (var8009de9c + 120));
s32 y2 = (var8009de9c + 120) + arg1 * (240.0f - (var8009de9c + 120));
s32 y1 = (g_MenuProjectFromY + 120) + arg1 * (0.0f - (g_MenuProjectFromY + 120));
s32 y2 = (g_MenuProjectFromY + 120) + arg1 * (240.0f - (g_MenuProjectFromY + 120));
gdl = func0f0d4a3c(gdl, 0);
@@ -1634,7 +1634,7 @@ Gfx *menugfxRenderBgFailureCopy(Gfx *gdl)
spb4 = M_TAU * g_20SecIntervalFrac;
var8009de98 = var8009de9c = 0;
g_MenuProjectFromX = g_MenuProjectFromY = 0;
gdl = func0f0d4a3c(gdl, 0);
@@ -1809,8 +1809,8 @@ Gfx *menugfxRenderBgSuccess(Gfx *gdl)
f0 = menuGetLinearIntervalFrac(10.0f);
// Draw the two haze layers
var8009de98 = 0;
var8009de9c = 0;
g_MenuProjectFromX = 0;
g_MenuProjectFromY = 0;
gdl = func0f0d4a3c(gdl, 0);
+2 -2
View File
@@ -2748,8 +2748,8 @@ char *menuitemScrollableGetText(u32 type)
return challengeGetConfigDescription(g_Menus[g_MpPlayerNum].training.mpconfig);
case DESCRIPTION_MPCHALLENGE:
if (!challengeIsLoaded()) {
g_Menus[g_MpPlayerNum].unk840.unk010 = 0x4fac5ace;
challengeLoadAndStoreCurrent(g_Menus[g_MpPlayerNum].unk840.unk004, g_Menus[g_MpPlayerNum].unk840.unk008);
g_Menus[g_MpPlayerNum].menumodel.curparams = 0x4fac5ace;
challengeLoadAndStoreCurrent(g_Menus[g_MpPlayerNum].menumodel.allocstart, g_Menus[g_MpPlayerNum].menumodel.alloclen);
}
return challengeGetCurrentDescription();
case DESCRIPTION_CHRBIO: return ciGetChrBioDescription();
+2 -2
View File
@@ -690,9 +690,9 @@ void menuTick(void)
if (g_Vars.currentplayer->gunctrl.gunmemowner == GUNMEMOWNER_INVMENU && g_Vars.stagenum != STAGE_CITRAINING) {
g_MenuData.unk5d5_01 = true;
if (g_Menus[0].unk840.unk004) {
if (g_Menus[0].menumodel.allocstart) {
bgunFreeGunMem();
g_Menus[0].unk840.unk004 = NULL;
g_Menus[0].menumodel.allocstart = NULL;
}
}
}
+65 -59
View File
@@ -550,35 +550,35 @@ MenuItemHandlerResult func0f179d6c(s32 operation, struct menuitem *item, union h
/**
* This function is used by both player body selection and bot body selection.
*/
MenuItemHandlerResult mpCharacterBodyMenuHandler(s32 operation, struct menuitem *item, union handlerdata *data, s32 mpheadnum, s32 mpbodynum, bool isplayer)
MenuItemHandlerResult mpCharacterBodyMenuHandler(s32 operation, struct menuitem *item, union handlerdata *data, s32 mpbodynum, s32 mpheadnum, bool isplayer)
{
switch (operation) {
case MENUOP_GETOPTIONCOUNT:
data->carousel.value = mpGetNumBodies();
break;
case MENUOP_11:
g_Menus[g_MpPlayerNum].unk840.unk05c = 0x1fc;
g_Menus[g_MpPlayerNum].unk840.unk00c = mpbodynum << 16 | 0xffff | mpheadnum << 24;
g_Menus[g_MpPlayerNum].unk840.unk574 += g_Vars.diffframe60;
g_Menus[g_MpPlayerNum].menumodel.newanimnum = ANIM_01FC;
g_Menus[g_MpPlayerNum].menumodel.newparams = MENUMODELPARAMS_SET_MP_HEADBODY(mpheadnum, mpbodynum);
g_Menus[g_MpPlayerNum].menumodel.zoomtimer60 += g_Vars.diffframe60;
if (g_Menus[g_MpPlayerNum].unk840.unk574 > TICKS(480)) {
g_Menus[g_MpPlayerNum].unk840.unk574 -= TICKS(480);
if (g_Menus[g_MpPlayerNum].menumodel.zoomtimer60 > TICKS(480)) {
g_Menus[g_MpPlayerNum].menumodel.zoomtimer60 -= TICKS(480);
}
if (g_Menus[g_MpPlayerNum].unk840.unk578 > 0) {
g_Menus[g_MpPlayerNum].unk840.unk578 -= g_Vars.diffframe60;
if (g_Menus[g_MpPlayerNum].menumodel.rottimer60 > 0) {
g_Menus[g_MpPlayerNum].menumodel.rottimer60 -= g_Vars.diffframe60;
} else {
#if VERSION >= VERSION_PAL_BETA
f32 value = g_Menus[g_MpPlayerNum].unk840.unk524 + 0.01f * g_Vars.diffframe60freal;
f32 value = g_Menus[g_MpPlayerNum].menumodel.curroty + 0.01f * g_Vars.diffframe60freal;
#else
f32 value = g_Menus[g_MpPlayerNum].unk840.unk524 + 0.01f * g_Vars.diffframe60f;
f32 value = g_Menus[g_MpPlayerNum].menumodel.curroty + 0.01f * g_Vars.diffframe60f;
#endif
g_Menus[g_MpPlayerNum].unk840.unk54c = value;
g_Menus[g_MpPlayerNum].unk840.unk524 = value;
g_Menus[g_MpPlayerNum].menumodel.newroty = value;
g_Menus[g_MpPlayerNum].menumodel.curroty = value;
}
g_Menus[g_MpPlayerNum].unk840.partvisibility = NULL;
g_Menus[g_MpPlayerNum].unk840.unk554 = 30;
g_Menus[g_MpPlayerNum].menumodel.partvisibility = NULL;
g_Menus[g_MpPlayerNum].menumodel.zoom = 30;
break;
case MENUOP_21:
if (!challengeIsFeatureUnlocked(mpGetBodyRequiredFeature(data->carousel.value))) {
@@ -587,34 +587,36 @@ MenuItemHandlerResult mpCharacterBodyMenuHandler(s32 operation, struct menuitem
break;
#if VERSION >= VERSION_NTSC_1_0
case MENUOP_FOCUS:
g_Menus[g_MpPlayerNum].unk840.unk000 = 3;
g_Menus[g_MpPlayerNum].menumodel.loaddelay = 3;
break;
#endif
case MENUOP_GETSELECTEDINDEX:
data->carousel.value = mpheadnum;
data->carousel.value = mpbodynum;
break;
case MENUOP_SET:
case MENUOP_CHECKPREFOCUSED:
g_Menus[g_MpPlayerNum].unk840.unk580 = 0;
g_Menus[g_MpPlayerNum].menumodel.removingpiece = false;
func0f0f372c(&g_Menus[g_MpPlayerNum].unk840, 0, 0, 0, 0, 0, 0, 1, 1);
menuConfigureModel(&g_Menus[g_MpPlayerNum].menumodel, 0, 0, 0, 0, 0, 0, 1, MENUMODELFLAG_HASSCALE);
g_Menus[g_MpPlayerNum].unk840.unk510 = 8.2f;
g_Menus[g_MpPlayerNum].unk840.unk514 = -4.1f;
g_Menus[g_MpPlayerNum].unk840.unk53c = -4.1f;
g_Menus[g_MpPlayerNum].menumodel.curposx = 8.2f;
g_Menus[g_MpPlayerNum].menumodel.newposx = 8.2f;
g_Menus[g_MpPlayerNum].unk840.unk538 = 8.2f;
g_Menus[g_MpPlayerNum].unk840.unk51c = 0.002f;
g_Menus[g_MpPlayerNum].unk840.unk524 = -0.2f;
g_Menus[g_MpPlayerNum].unk840.unk54c = -0.2f;
g_Menus[g_MpPlayerNum].menumodel.curposy = -4.1f;
g_Menus[g_MpPlayerNum].menumodel.newposy = -4.1f;
g_Menus[g_MpPlayerNum].unk840.unk578 = TICKS(60);
g_Menus[g_MpPlayerNum].unk840.unk574 = TICKS(120);
g_Menus[g_MpPlayerNum].unk840.unk000 = 8;
g_Menus[g_MpPlayerNum].menumodel.curscale = 0.002f;
g_Menus[g_MpPlayerNum].menumodel.curroty = -0.2f;
g_Menus[g_MpPlayerNum].menumodel.newroty = -0.2f;
g_Menus[g_MpPlayerNum].menumodel.rottimer60 = TICKS(60);
g_Menus[g_MpPlayerNum].menumodel.zoomtimer60 = TICKS(120);
g_Menus[g_MpPlayerNum].menumodel.loaddelay = 8;
#if VERSION >= VERSION_NTSC_1_0
if (operation == MENUOP_CHECKPREFOCUSED) {
g_Menus[g_MpPlayerNum].unk840.unk000 = 16;
g_Menus[g_MpPlayerNum].menumodel.loaddelay = 16;
}
#endif
@@ -1879,30 +1881,30 @@ MenuItemHandlerResult mpCharacterHeadMenuHandler(s32 operation, struct menuitem
break;
case MENUOP_11:
#if VERSION >= VERSION_PAL_BETA
diffframe = g_Menus[g_MpPlayerNum].unk840.unk524 + 0.01f * g_Vars.diffframe60freal;
diffframe = g_Menus[g_MpPlayerNum].menumodel.curroty + 0.01f * g_Vars.diffframe60freal;
#else
diffframe = g_Menus[g_MpPlayerNum].unk840.unk524 + 0.01f * g_Vars.diffframe60f;
diffframe = g_Menus[g_MpPlayerNum].menumodel.curroty + 0.01f * g_Vars.diffframe60f;
#endif
g_Menus[g_MpPlayerNum].unk840.unk54c = diffframe;
g_Menus[g_MpPlayerNum].unk840.unk524 = diffframe;
g_Menus[g_MpPlayerNum].menumodel.newroty = diffframe;
g_Menus[g_MpPlayerNum].menumodel.curroty = diffframe;
if (mpheadnum < mpGetNumHeads2()) {
headnum = mpGetHeadId(mpheadnum);
g_Menus[g_MpPlayerNum].unk840.unk00c = g_HeadsAndBodies[headnum].filenum;
g_Menus[g_MpPlayerNum].unk840.unk5b1_01 = false;
g_Menus[g_MpPlayerNum].menumodel.newparams = MENUMODELPARAMS_SET_FILENUM(g_HeadsAndBodies[headnum].filenum);
g_Menus[g_MpPlayerNum].menumodel.isperfecthead = false;
} else {
headnum = mpGetBeauHeadId(func0f14a9f8(mpheadnum - mpGetNumHeads2()));
g_Menus[g_MpPlayerNum].unk840.unk00c = g_HeadsAndBodies[headnum].filenum;
g_Menus[g_MpPlayerNum].unk840.unk5b1_01 = true;
g_Menus[g_MpPlayerNum].unk840.unk5b0 = mpheadnum - mpGetNumHeads2();
g_Menus[g_MpPlayerNum].menumodel.newparams = MENUMODELPARAMS_SET_FILENUM(g_HeadsAndBodies[headnum].filenum);
g_Menus[g_MpPlayerNum].menumodel.isperfecthead = true;
g_Menus[g_MpPlayerNum].menumodel.perfectheadnum = mpheadnum - mpGetNumHeads2();
}
g_Menus[g_MpPlayerNum].unk840.unk574 = 0;
g_Menus[g_MpPlayerNum].unk840.partvisibility = visibility;
g_Menus[g_MpPlayerNum].unk840.unk554 = 30;
g_Menus[g_MpPlayerNum].menumodel.zoomtimer60 = 0;
g_Menus[g_MpPlayerNum].menumodel.partvisibility = visibility;
g_Menus[g_MpPlayerNum].menumodel.zoom = 30;
break;
case MENUOP_21:
if (!challengeIsFeatureUnlocked(mpGetHeadRequiredFeature(data->carousel.value))) {
@@ -1915,22 +1917,26 @@ MenuItemHandlerResult mpCharacterHeadMenuHandler(s32 operation, struct menuitem
case MENUOP_SET:
case MENUOP_FOCUS:
#if VERSION >= VERSION_NTSC_1_0
g_Menus[g_MpPlayerNum].unk840.unk000 = 3;
g_Menus[g_MpPlayerNum].menumodel.loaddelay = 3;
#endif
mpGetNumHeads2();
func0f0f372c(&g_Menus[g_MpPlayerNum].unk840, 0, 0, 0, 0, 0, 0, 1, 1);
menuConfigureModel(&g_Menus[g_MpPlayerNum].menumodel, 0, 0, 0, 0, 0, 0, 1, MENUMODELFLAG_HASSCALE);
g_Menus[g_MpPlayerNum].unk840.unk510 = 0;
g_Menus[g_MpPlayerNum].unk840.unk514 = 0;
g_Menus[g_MpPlayerNum].unk840.unk53c = -3;
g_Menus[g_MpPlayerNum].unk840.unk538 = 0;
g_Menus[g_MpPlayerNum].unk840.unk51c = 0.01f;
g_Menus[g_MpPlayerNum].unk840.unk524 = -0.3f;
g_Menus[g_MpPlayerNum].unk840.unk54c = -0.3f;
g_Menus[g_MpPlayerNum].unk840.unk544 = 1;
g_Menus[g_MpPlayerNum].unk840.unk554 = 30;
g_Menus[g_MpPlayerNum].menumodel.curposx = 0;
g_Menus[g_MpPlayerNum].menumodel.curposy = 0;
g_Menus[g_MpPlayerNum].menumodel.newposx = 0;
g_Menus[g_MpPlayerNum].menumodel.newposy = -3;
g_Menus[g_MpPlayerNum].menumodel.curscale = 0.01f;
g_Menus[g_MpPlayerNum].menumodel.curroty = -0.3f;
g_Menus[g_MpPlayerNum].menumodel.newroty = -0.3f;
g_Menus[g_MpPlayerNum].menumodel.newscale = 1;
g_Menus[g_MpPlayerNum].menumodel.zoom = 30;
break;
}
@@ -4051,12 +4057,12 @@ MenuDialogHandlerResult menudialog0017e3fc(s32 operation, struct menudialogdef *
{
switch (operation) {
case MENUOP_OPEN:
g_Menus[g_MpPlayerNum].unk840.unk010 = 0;
g_Menus[g_MpPlayerNum].menumodel.curparams = 0;
g_Menus[g_MpPlayerNum].training.mpconfig = challengeLoadBySlot(
g_Menus[g_MpPlayerNum].training.unke1c,
g_Menus[g_MpPlayerNum].unk840.unk004,
g_Menus[g_MpPlayerNum].unk840.unk008);
g_Menus[g_MpPlayerNum].menumodel.allocstart,
g_Menus[g_MpPlayerNum].menumodel.alloclen);
break;
case MENUOP_CLOSE:
break;
@@ -4628,16 +4634,16 @@ MenuDialogHandlerResult mpCombatChallengesMenuDialog(s32 operation, struct menud
&& g_Menus[g_MpPlayerNum].curdialog
&& g_Menus[g_MpPlayerNum].curdialog->definition == dialogdef
&& !challengeIsLoaded()) {
g_Menus[g_MpPlayerNum].unk840.unk010 = 0x4fac5ace;
g_Menus[g_MpPlayerNum].menumodel.curparams = 0x4fac5ace;
challengeLoadAndStoreCurrent(
g_Menus[g_MpPlayerNum].unk840.unk004,
g_Menus[g_MpPlayerNum].unk840.unk008);
g_Menus[g_MpPlayerNum].menumodel.allocstart,
g_Menus[g_MpPlayerNum].menumodel.alloclen);
}
}
if (operation == MENUOP_CLOSE) {
if (g_Menus[g_MpPlayerNum].unk840.unk010 == 0x4fac5ace) {
if (g_Menus[g_MpPlayerNum].menumodel.curparams == 0x4fac5ace) {
challengeUnsetCurrent();
}
}
+4 -4
View File
@@ -21,8 +21,8 @@ Vp var80070f10;
s32 var8009de90;
s32 var8009de94;
s32 var8009de98;
s32 var8009de9c;
s32 g_MenuProjectFromX;
s32 g_MenuProjectFromY;
void func0f0d4690(Mtxf *mtx)
{
@@ -317,8 +317,8 @@ Gfx *menugfxDrawPlane(Gfx *gdl, s32 x1, s32 y1, s32 x2, s32 y2, u32 colour1, u32
vertices[1].y = y2;
vertices[1].z = -10;
tmp1 = (f32) var8009de98 * a1 / scale;
tmp2 = (f32) var8009de9c * a1 / scale;
tmp1 = (f32) g_MenuProjectFromX * a1 / scale;
tmp2 = (f32) g_MenuProjectFromY * a1 / scale;
vertices[2].x = vertices[0].v[0] + (s16) tmp1;
vertices[2].y = vertices[0].v[1] + (s16) tmp2;
+77 -93
View File
@@ -229,11 +229,9 @@ MenuDialogHandlerResult frTrainingInfoMenuDialog(s32 operation, struct menudialo
break;
case MENUOP_TICK:
if (g_Menus[g_MpPlayerNum].curdialog && g_Menus[g_MpPlayerNum].curdialog->definition == dialogdef) {
g_Menus[g_MpPlayerNum].unk840.unk574 -= g_Vars.diffframe60;
g_Menus[g_MpPlayerNum].unk840.unk54c = 18.849555969238f * g_20SecIntervalFrac;
g_Menus[g_MpPlayerNum].unk840.unk524 = 18.849555969238f * g_20SecIntervalFrac;
g_Menus[g_MpPlayerNum].unk840.unk528 = 0;
g_Menus[g_MpPlayerNum].unk840.unk550 = 0;
g_Menus[g_MpPlayerNum].menumodel.zoomtimer60 -= g_Vars.diffframe60;
g_Menus[g_MpPlayerNum].menumodel.curroty = g_Menus[g_MpPlayerNum].menumodel.newroty = 18.849555969238f * g_20SecIntervalFrac;
g_Menus[g_MpPlayerNum].menumodel.currotz = g_Menus[g_MpPlayerNum].menumodel.newrotz = 0;
}
break;
case MENUOP_CLOSE:
@@ -1538,14 +1536,14 @@ MenuDialogHandlerResult ciCharacterProfileMenuDialog(s32 operation, struct menud
case MENUOP_OPEN:
if (bodynum == BODY_DRCAROLL) {
scale = 0.7f;
g_Menus[g_MpPlayerNum].unk840.unk554 = -1;
g_Menus[g_MpPlayerNum].menumodel.zoom = -1;
} else {
g_Menus[g_MpPlayerNum].unk840.unk554 = 30;
g_Menus[g_MpPlayerNum].menumodel.zoom = 30;
scale = 1.0f;
}
g_Menus[g_MpPlayerNum].unk840.unk574 = TICKS(120);
g_Menus[g_MpPlayerNum].unk840.unk580 = 0;
g_Menus[g_MpPlayerNum].menumodel.zoomtimer60 = TICKS(120);
g_Menus[g_MpPlayerNum].menumodel.removingpiece = false;
#if VERSION == VERSION_PAL_FINAL
if (g_ViRes != VIRES_HI) {
@@ -1585,14 +1583,15 @@ MenuDialogHandlerResult ciCharacterProfileMenuDialog(s32 operation, struct menud
scale = 0.8f;
}
func0f0f372c(&g_Menus[g_MpPlayerNum].unk840, x, y, 0, 0, 0, 0, scale, 7);
menuConfigureModel(&g_Menus[g_MpPlayerNum].menumodel, x, y, 0, 0, 0, 0, scale,
MENUMODELFLAG_HASSCALE | MENUMODELFLAG_HASPOSITION | MENUMODELFLAG_HASROTATION);
g_Menus[g_MpPlayerNum].unk840.unk510 = 8.2f;
g_Menus[g_MpPlayerNum].unk840.unk514 = -4.1f;
g_Menus[g_MpPlayerNum].unk840.unk51c = 0.00393f;
g_Menus[g_MpPlayerNum].unk840.unk524 = 0;
g_Menus[g_MpPlayerNum].unk840.unk54c = 0;
g_Menus[g_MpPlayerNum].unk840.unk578 = TICKS(60);
g_Menus[g_MpPlayerNum].menumodel.curposx = 8.2f;
g_Menus[g_MpPlayerNum].menumodel.curposy = -4.1f;
g_Menus[g_MpPlayerNum].menumodel.curscale = 0.00393f;
g_Menus[g_MpPlayerNum].menumodel.curroty = 0;
g_Menus[g_MpPlayerNum].menumodel.newroty = 0;
g_Menus[g_MpPlayerNum].menumodel.rottimer60 = TICKS(60);
break;
case MENUOP_CLOSE:
break;
@@ -1612,10 +1611,10 @@ MenuDialogHandlerResult ciCharacterProfileMenuDialog(s32 operation, struct menud
{ 255 },
};
g_Menus[g_MpPlayerNum].unk840.partvisibility = vis;
g_Menus[g_MpPlayerNum].unk840.unk05c = 318;
g_Menus[g_MpPlayerNum].menumodel.partvisibility = vis;
g_Menus[g_MpPlayerNum].menumodel.newanimnum = ANIM_013E;
} else {
g_Menus[g_MpPlayerNum].unk840.unk05c = 106;
g_Menus[g_MpPlayerNum].menumodel.newanimnum = ANIM_006A;
}
if (bodynum == BODY_THEKING) {
@@ -1624,23 +1623,21 @@ MenuDialogHandlerResult ciCharacterProfileMenuDialog(s32 operation, struct menud
{ 255 },
};
g_Menus[g_MpPlayerNum].unk840.partvisibility = vis;
g_Menus[g_MpPlayerNum].menumodel.partvisibility = vis;
}
g_Menus[g_MpPlayerNum].unk840.unk00c = 0xffff;
g_Menus[g_MpPlayerNum].unk840.unk00c |= (mpheadnum << 16);
g_Menus[g_MpPlayerNum].unk840.unk00c |= (mpbodynum << 24);
g_Menus[g_MpPlayerNum].menumodel.newparams = MENUMODELPARAMS_SET_MP_HEADBODY(mpheadnum, mpbodynum);
if (g_Menus[g_MpPlayerNum].unk840.unk578 > 0) {
g_Menus[g_MpPlayerNum].unk840.unk578 -= g_Vars.diffframe60;
if (g_Menus[g_MpPlayerNum].menumodel.rottimer60 > 0) {
g_Menus[g_MpPlayerNum].menumodel.rottimer60 -= g_Vars.diffframe60;
} else {
#if VERSION >= VERSION_PAL_BETA
f32 tmp = g_Menus[g_MpPlayerNum].unk840.unk524 + 0.01f * g_Vars.diffframe60freal;
f32 roty = g_Menus[g_MpPlayerNum].menumodel.curroty + 0.01f * g_Vars.diffframe60freal;
#else
f32 tmp = g_Menus[g_MpPlayerNum].unk840.unk524 + 0.01f * g_Vars.diffframe60f;
f32 roty = g_Menus[g_MpPlayerNum].menumodel.curroty + 0.01f * g_Vars.diffframe60f;
#endif
g_Menus[g_MpPlayerNum].unk840.unk54c = tmp;
g_Menus[g_MpPlayerNum].unk840.unk524 = tmp;
g_Menus[g_MpPlayerNum].menumodel.newroty = roty;
g_Menus[g_MpPlayerNum].menumodel.curroty = roty;
}
break;
@@ -1887,58 +1884,54 @@ MenuDialogHandlerResult dtTrainingDetailsMenuDialog(s32 operation, struct menudi
#if VERSION == VERSION_PAL_FINAL
if (g_ViRes == VIRES_HI) {
if (optionsGetScreenRatio() == SCREENRATIO_16_9) {
g_Menus[g_MpPlayerNum].unk840.unk538 = 84;
g_Menus[g_MpPlayerNum].unk840.unk510 = 84;
g_Menus[g_MpPlayerNum].menumodel.newposx = 84;
g_Menus[g_MpPlayerNum].menumodel.curposx = 84;
} else {
g_Menus[g_MpPlayerNum].unk840.unk538 = 104;
g_Menus[g_MpPlayerNum].unk840.unk510 = 104;
g_Menus[g_MpPlayerNum].menumodel.newposx = 104;
g_Menus[g_MpPlayerNum].menumodel.curposx = 104;
}
} else {
if (optionsGetScreenRatio() == SCREENRATIO_16_9) {
g_Menus[g_MpPlayerNum].unk840.unk538 = 64;
g_Menus[g_MpPlayerNum].unk840.unk510 = 64;
g_Menus[g_MpPlayerNum].menumodel.newposx = 64;
g_Menus[g_MpPlayerNum].menumodel.curposx = 64;
} else {
g_Menus[g_MpPlayerNum].unk840.unk538 = 84;
g_Menus[g_MpPlayerNum].unk840.unk510 = 84;
g_Menus[g_MpPlayerNum].menumodel.newposx = 84;
g_Menus[g_MpPlayerNum].menumodel.curposx = 84;
}
}
#elif VERSION == VERSION_PAL_BETA
if (optionsGetScreenRatio() == SCREENRATIO_16_9) {
g_Menus[g_MpPlayerNum].unk840.unk538 = 64;
g_Menus[g_MpPlayerNum].unk840.unk510 = 64;
g_Menus[g_MpPlayerNum].menumodel.newposx = 64;
g_Menus[g_MpPlayerNum].menumodel.curposx = 64;
} else {
g_Menus[g_MpPlayerNum].unk840.unk538 = 84;
g_Menus[g_MpPlayerNum].unk840.unk510 = 84;
g_Menus[g_MpPlayerNum].menumodel.newposx = 84;
g_Menus[g_MpPlayerNum].menumodel.curposx = 84;
}
#else
if (optionsGetScreenRatio() == SCREENRATIO_16_9) {
g_Menus[g_MpPlayerNum].unk840.unk538 = 70;
g_Menus[g_MpPlayerNum].unk840.unk510 = 70;
g_Menus[g_MpPlayerNum].menumodel.newposx = 70;
g_Menus[g_MpPlayerNum].menumodel.curposx = 70;
} else {
g_Menus[g_MpPlayerNum].unk840.unk538 = 90;
g_Menus[g_MpPlayerNum].unk840.unk510 = 90;
g_Menus[g_MpPlayerNum].menumodel.newposx = 90;
g_Menus[g_MpPlayerNum].menumodel.curposx = 90;
}
#endif
g_Menus[g_MpPlayerNum].unk840.unk544 /= 2.5f;
g_Menus[g_MpPlayerNum].menumodel.newscale /= 2.5f;
}
break;
case MENUOP_CLOSE:
break;
case MENUOP_TICK:
if (g_Menus[g_MpPlayerNum].curdialog && g_Menus[g_MpPlayerNum].curdialog->definition == dialogdef) {
s32 weaponnum = dtGetWeaponByDeviceIndex(dtGetIndexBySlot(g_DtSlot));
if (weaponnum == WEAPON_DISGUISE41) {
g_Menus[g_MpPlayerNum].unk840.unk05c = ANIM_006A;
g_Menus[g_MpPlayerNum].unk840.unk578 = TICKS(60);
g_Menus[g_MpPlayerNum].unk840.unk574 = TICKS(120);
if (dtGetWeaponByDeviceIndex(dtGetIndexBySlot(g_DtSlot)) == WEAPON_DISGUISE41) {
g_Menus[g_MpPlayerNum].menumodel.newanimnum = ANIM_006A;
g_Menus[g_MpPlayerNum].menumodel.rottimer60 = TICKS(60);
g_Menus[g_MpPlayerNum].menumodel.zoomtimer60 = TICKS(120);
}
g_Menus[g_MpPlayerNum].unk840.unk54c = 18.849555969238f * g_20SecIntervalFrac;
g_Menus[g_MpPlayerNum].unk840.unk524 = 18.849555969238f * g_20SecIntervalFrac;
g_Menus[g_MpPlayerNum].unk840.unk550 = 0;
g_Menus[g_MpPlayerNum].unk840.unk528 = 0;
g_Menus[g_MpPlayerNum].menumodel.curroty = g_Menus[g_MpPlayerNum].menumodel.newroty = 18.849555969238f * g_20SecIntervalFrac;
g_Menus[g_MpPlayerNum].menumodel.currotz = g_Menus[g_MpPlayerNum].menumodel.newrotz = 0;
}
break;
}
@@ -2651,15 +2644,11 @@ MenuDialogHandlerResult ciHangarHolographMenuDialog(s32 operation, struct menudi
switch (operation) {
case MENUOP_OPEN:
g_Menus[g_MpPlayerNum].unk840.unk548 = 0;
g_Menus[g_MpPlayerNum].unk840.unk520 = 0;
g_Menus[g_MpPlayerNum].unk840.unk54c = 0;
g_Menus[g_MpPlayerNum].unk840.unk524 = 0;
g_Menus[g_MpPlayerNum].unk840.unk538 = 0;
g_Menus[g_MpPlayerNum].unk840.unk510 = 0;
g_Menus[g_MpPlayerNum].unk840.unk53c = 0;
g_Menus[g_MpPlayerNum].unk840.unk514 = 0;
g_Menus[g_MpPlayerNum].unk840.unk51c = 0;
g_Menus[g_MpPlayerNum].menumodel.currotx = g_Menus[g_MpPlayerNum].menumodel.newrotx = 0;
g_Menus[g_MpPlayerNum].menumodel.curroty = g_Menus[g_MpPlayerNum].menumodel.newroty = 0;
g_Menus[g_MpPlayerNum].menumodel.curposx = g_Menus[g_MpPlayerNum].menumodel.newposx = 0;
g_Menus[g_MpPlayerNum].menumodel.curposy = g_Menus[g_MpPlayerNum].menumodel.newposy = 0;
g_Menus[g_MpPlayerNum].menumodel.curscale = 0;
break;
case MENUOP_CLOSE:
break;
@@ -2675,29 +2664,24 @@ MenuDialogHandlerResult ciHangarHolographMenuDialog(s32 operation, struct menudi
offset = items[index].y_offset;
size = items[index].size * 0.001f;
g_Menus[g_MpPlayerNum].unk840.unk544 = size;
g_Menus[g_MpPlayerNum].unk840.unk514 = offset;
g_Menus[g_MpPlayerNum].unk840.unk53c = offset;
g_Menus[g_MpPlayerNum].menumodel.newscale = size;
g_Menus[g_MpPlayerNum].menumodel.curposy = offset;
g_Menus[g_MpPlayerNum].menumodel.newposy = offset;
if (g_Menus[g_MpPlayerNum].unk840.unk00c != items[index].fileid) {
g_Menus[g_MpPlayerNum].unk840.unk000 = 8;
if (g_Menus[g_MpPlayerNum].menumodel.newparams != items[index].fileid) {
g_Menus[g_MpPlayerNum].menumodel.loaddelay = 8;
}
g_Menus[g_MpPlayerNum].unk840.unk00c = items[index].fileid;
g_Menus[g_MpPlayerNum].unk840.unk54c = g_Menus[g_MpPlayerNum].unk840.unk524 + 0.01f * g_Vars.diffframe60freal;
g_Menus[g_MpPlayerNum].unk840.unk524 += 0.01f * g_Vars.diffframe60freal;
g_Menus[g_MpPlayerNum].unk840.partvisibility = g_BioPartVisibility;
g_Menus[g_MpPlayerNum].menumodel.newparams = MENUMODELPARAMS_SET_FILENUM(items[index].fileid);
g_Menus[g_MpPlayerNum].menumodel.newroty = g_Menus[g_MpPlayerNum].menumodel.curroty + 0.01f * g_Vars.diffframe60freal;
g_Menus[g_MpPlayerNum].menumodel.curroty += 0.01f * g_Vars.diffframe60freal;
g_Menus[g_MpPlayerNum].menumodel.partvisibility = g_BioPartVisibility;
} else {
g_Menus[g_MpPlayerNum].unk840.unk548 = 0;
g_Menus[g_MpPlayerNum].unk840.unk520 = 0;
g_Menus[g_MpPlayerNum].unk840.unk54c = 0;
g_Menus[g_MpPlayerNum].unk840.unk524 = 0;
g_Menus[g_MpPlayerNum].unk840.unk538 = 0;
g_Menus[g_MpPlayerNum].unk840.unk510 = 0;
g_Menus[g_MpPlayerNum].unk840.unk53c = 0;
g_Menus[g_MpPlayerNum].unk840.unk514 = 0;
g_Menus[g_MpPlayerNum].unk840.unk544 = 0;
g_Menus[g_MpPlayerNum].unk840.unk51c = 0;
g_Menus[g_MpPlayerNum].menumodel.currotx = g_Menus[g_MpPlayerNum].menumodel.newrotx = 0;
g_Menus[g_MpPlayerNum].menumodel.curroty = g_Menus[g_MpPlayerNum].menumodel.newroty = 0;
g_Menus[g_MpPlayerNum].menumodel.curposx = g_Menus[g_MpPlayerNum].menumodel.newposx = 0;
g_Menus[g_MpPlayerNum].menumodel.curposy = g_Menus[g_MpPlayerNum].menumodel.newposy = 0;
g_Menus[g_MpPlayerNum].menumodel.curscale = g_Menus[g_MpPlayerNum].menumodel.newscale = 0;
}
#else
if (g_Menus[g_MpPlayerNum].curdialog->definition == dialogdef) {
@@ -2709,18 +2693,18 @@ MenuDialogHandlerResult ciHangarHolographMenuDialog(s32 operation, struct menudi
offset = items[index].y_offset;
size = items[index].size * 0.001f;
g_Menus[g_MpPlayerNum].unk840.unk544 = size;
g_Menus[g_MpPlayerNum].unk840.unk514 = offset;
g_Menus[g_MpPlayerNum].unk840.unk53c = offset;
g_Menus[g_MpPlayerNum].unk840.unk00c = items[index].fileid;
g_Menus[g_MpPlayerNum].menumodel.newscale = size;
g_Menus[g_MpPlayerNum].menumodel.curposy = offset;
g_Menus[g_MpPlayerNum].menumodel.newposy = offset;
g_Menus[g_MpPlayerNum].menumodel.newparams = MENUMODELPARAMS_SET_FILENUM(items[index].fileid);
#if VERSION >= VERSION_PAL_BETA
g_Menus[g_MpPlayerNum].unk840.unk54c = g_Menus[g_MpPlayerNum].unk840.unk524 + 0.01f * g_Vars.diffframe60freal;
g_Menus[g_MpPlayerNum].unk840.unk524 += 0.01f * g_Vars.diffframe60freal;
g_Menus[g_MpPlayerNum].menumodel.newroty = g_Menus[g_MpPlayerNum].menumodel.curroty + 0.01f * g_Vars.diffframe60freal;
g_Menus[g_MpPlayerNum].menumodel.curroty += 0.01f * g_Vars.diffframe60freal;
#else
g_Menus[g_MpPlayerNum].unk840.unk54c = g_Menus[g_MpPlayerNum].unk840.unk524 + 0.01f * g_Vars.diffframe60f;
g_Menus[g_MpPlayerNum].unk840.unk524 += 0.01f * g_Vars.diffframe60f;
g_Menus[g_MpPlayerNum].menumodel.newroty = g_Menus[g_MpPlayerNum].menumodel.curroty + 0.01f * g_Vars.diffframe60f;
g_Menus[g_MpPlayerNum].menumodel.curroty += 0.01f * g_Vars.diffframe60f;
#endif
g_Menus[g_MpPlayerNum].unk840.partvisibility = g_BioPartVisibility;
g_Menus[g_MpPlayerNum].menumodel.partvisibility = g_BioPartVisibility;
}
#endif
}
+2 -2
View File
@@ -163,8 +163,8 @@ extern s16 g_SpawnPoints[];
extern s32 g_NumSpawnPoints;
extern s32 var8009de90;
extern s32 var8009de94;
extern s32 var8009de98;
extern s32 var8009de9c;
extern s32 g_MenuProjectFromX;
extern s32 g_MenuProjectFromY;
extern u8 g_MpSelectedPlayersForStats[MAX_PLAYERS];
extern char g_CheatMarqueeString[];
extern u8 *g_BlurBuffer;
+19
View File
@@ -1683,6 +1683,25 @@
#define MENUITEMTYPE_CONTROLLER 0x19
#define MENUITEMTYPE_END 0x1a
#define MENUMODELFLAG_HASSCALE 0x01
#define MENUMODELFLAG_HASPOSITION 0x02
#define MENUMODELFLAG_HASROTATION 0x04
#define MENUMODELPARAMS_HAS_MASTER_HEADBODY(params) (((params) & 0x80000000) != 0)
#define MENUMODELPARAMS_GET_MASTER_HEADNUM(params) ((params) & 0x3ff)
#define MENUMODELPARAMS_GET_MASTER_BODYNUM(params) (((params) & 0xffc00) >> 10)
#define MENUMODELPARAMS_GET_MP_HEADNUM(params) (((params) >> 16) & 0xff)
#define MENUMODELPARAMS_GET_MP_BODYNUM(params) (((params) >> 24) & 0xff)
#define MENUMODELPARAMS_GET_FILENUM(params) ((params) & 0xffff)
#define MENUMODELPARAMS_SET_FILENUM(filenum) (filenum)
#define MENUMODELPARAMS_SET_MP_HEADBODY(mpheadnum, mpbodynum) (0xffff | ((mpheadnum) << 16) | ((mpbodynum) << 24))
#define MENUMODELTYPE_DEFAULT 0
#define MENUMODELTYPE_HUDPIECE 1
#define MENUMODELTYPE_2 2
#define MENUMODELTYPE_3 3
#define MENUMODELTYPE_CREDITSLOGO 4
#define MENUOP_GETOPTIONCOUNT 1
#define MENUOP_GETOPTGROUPCOUNT 2
#define MENUOP_GETOPTIONTEXT 3
+1 -1
View File
@@ -28,7 +28,7 @@ char *endscreenMenuTextCurrentStageName3(struct menuitem *item);
char *endscreenMenuTitleStageFailed(struct menuitem *item);
char *endscreenMenuTextMissionTime(struct menuitem *item);
struct menudialogdef *endscreenAdvance(void);
void endscreen0f10d770(void);
void endscreenResetModels(void);
void endscreenContinue(s32 context);
char *endscreenMenuTextTimedCheatName(struct menuitem *item);
char *endscreenMenuTextCompletionCheatName(struct menuitem *item);
+4 -4
View File
@@ -60,9 +60,9 @@ void menuCloseDialog(void);
void menuUpdateCurFrame(void);
void menuPopDialog(void);
void func0f0f3704(struct menudialogdef *dialogdef);
void func0f0f372c(struct menu840 *arg0, f32 x, f32 y, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, u8 flags);
void func0f0f37a4(struct menu840 *arg0);
Gfx *menuRenderModels(Gfx *gdl, struct menu840 *arg1, s32 arg2);
void menuConfigureModel(struct menumodel *menumodel, f32 x, f32 y, f32 z, f32 rotx, f32 roty, f32 rotz, f32 scale, u8 flags);
void menuUnsetModel(struct menumodel *menumodel);
Gfx *menuRenderModel(Gfx *gdl, struct menumodel *menumodel, s32 modeltype);
void menuGetTeamTitlebarColours(u32 *top, u32 *middle, u32 *bottom);
Gfx *menuApplyScissor(Gfx *gdl);
Gfx *dialogRender(Gfx *gdl, struct menudialog *dialog, struct menu *menu, bool lightweight);
@@ -85,7 +85,7 @@ void menuPushRootDialog(struct menudialogdef *dialogdef, s32 arg1);
void func0f0f85e0(struct menudialogdef *dialogdef, s32 root);
Gfx *menuRenderDialog(Gfx *gdl, struct menudialog *dialog, struct menu *menu, bool lightweight);
Gfx *menuRenderDialogs(Gfx *gdl);
void func0f0f8bb4(struct menu840 *arg0, u32 arg1, u32 arg2);
void menuResetModel(struct menumodel *menumodel, u32 allocationlen, bool allocate);
void menuReset(void);
void menuSwipe(s32 direction);
void dialogTick(struct menudialog *dialog, struct menuinputs *inputs, u32 tickflags);
+1 -1
View File
@@ -9,7 +9,7 @@ s16 mpChooseRandomStage(void);
MenuItemHandlerResult mpArenaMenuHandler(s32 operation, struct menuitem *item, union handlerdata *data);
char *mpMenuTextWeaponNameForSlot(struct menuitem *item);
char *mpMenuTextSetupName(struct menuitem *item);
MenuItemHandlerResult mpCharacterBodyMenuHandler(s32 operation, struct menuitem *item, union handlerdata *data, s32 mpheadnum, s32 mpbodynum, bool isplayer);
MenuItemHandlerResult mpCharacterBodyMenuHandler(s32 operation, struct menuitem *item, union handlerdata *data, s32 mpbodynum, s32 mpheadnum, bool isplayer);
MenuDialogHandlerResult menudialog0017a174(s32 operation, struct menudialogdef *dialogdef, union handlerdata *data);
MenuItemHandlerResult mpChallengesListHandler(s32 operation, struct menuitem *item, union handlerdata *data);
char *mpMenuTextKills(struct menuitem *item);
+61 -62
View File
@@ -3815,71 +3815,70 @@ struct perfectheadtexturelist {
struct textureconfig selectedtexture;
};
struct menu840 {
/*0x000*/ u8 unk000;
/*0x001*/ u8 unk001;
struct menumodel {
/*0x000*/ u8 loaddelay;
/*0x002*/ s16 headnum;
/*0x004*/ u8 *unk004;
/*0x008*/ u32 unk008;
/*0x00c*/ u32 unk00c;
/*0x010*/ s32 unk010;
/*0x014*/ Mtxf unk014;
/*0x004*/ u8 *allocstart;
/*0x008*/ u32 alloclen;
/*0x00c*/ u32 newparams;
/*0x010*/ u32 curparams;
/*0x014*/ Mtxf mtx;
/*0x054*/ struct modeldef *bodymodeldef;
/*0x058*/ struct modeldef *headmodeldef;
/*0x05c*/ s16 unk05c;
/*0x05e*/ s16 unk05e;
/*0x05c*/ s16 newanimnum;
/*0x05e*/ s16 curanimnum;
/*0x060*/ struct model bodymodel;
/*0x084*/ struct anim bodyanim;
/*0x110*/ u32 unk110[256];
/*0x510*/ f32 unk510;
/*0x514*/ f32 unk514;
/*0x518*/ f32 unk518;
/*0x51c*/ f32 unk51c;
/*0x520*/ f32 unk520;
/*0x524*/ f32 unk524;
/*0x528*/ f32 unk528;
/*0x52c*/ f32 unk52c;
/*0x530*/ f32 unk530;
/*0x534*/ f32 unk534;
/*0x538*/ f32 unk538;
/*0x53c*/ f32 unk53c;
/*0x540*/ f32 unk540;
/*0x544*/ f32 unk544;
/*0x548*/ f32 unk548;
/*0x54c*/ f32 unk54c;
/*0x550*/ f32 unk550;
/*0x554*/ f32 unk554;
/*0x558*/ f32 unk558;
/*0x55c*/ f32 unk55c;
/*0x560*/ s16 unk560;
/*0x564*/ f32 unk564;
/*0x568*/ u8 unk568;
/*0x110*/ u32 rwdata[256];
/*0x510*/ f32 curposx;
/*0x514*/ f32 curposy;
/*0x518*/ f32 curposz;
/*0x51c*/ f32 curscale;
/*0x520*/ f32 currotx;
/*0x524*/ f32 curroty;
/*0x528*/ f32 currotz;
/*0x52c*/ f32 displacex;
/*0x530*/ f32 displacey;
/*0x534*/ f32 displacez;
/*0x538*/ f32 newposx;
/*0x53c*/ f32 newposy;
/*0x540*/ f32 newposz;
/*0x544*/ f32 newscale;
/*0x548*/ f32 newrotx;
/*0x54c*/ f32 newroty;
/*0x550*/ f32 newrotz;
/*0x554*/ f32 zoom; // character selection: far = 100, near = 370
/*0x558*/ f32 unk558; // unused
/*0x55c*/ f32 unk55c; // unused
/*0x560*/ s16 unk560; // unused
/*0x564*/ f32 configurefrac;
/*0x568*/ u8 flags;
/*0x56a*/ s16 bodynum;
/*0x56c*/ u32 unk56c;
/*0x570*/ u32 unk570;
/*0x574*/ s32 unk574;
/*0x578*/ s32 unk578;
/*0x57c*/ u32 unk57c;
/*0x580*/ u32 unk580;
/*0x584*/ u32 unk584;
/*0x588*/ u32 unk588;
/*0x58c*/ u32 unk58c;
/*0x590*/ u32 unk590;
/*0x594*/ u32 unk594;
/*0x598*/ u32 unk598;
/*0x59c*/ u32 unk59c;
/*0x5a0*/ u32 unk5a0;
/*0x5a4*/ u32 unk5a4;
/*0x5a8*/ u32 unk5a8;
/*0x5ac*/ u32 unk5ac;
/*0x5b0*/ u8 unk5b0;
/*0x5b1*/ u8 unk5b1_01 : 1;
/*0x5b1*/ u8 unk5b1_02 : 1;
/*0x5b1*/ u8 unk5b1_03 : 1;
/*0x5b1*/ u8 unk5b1_04 : 1;
/*0x5b1*/ u8 unk5b1_05 : 1;
/*0x5b1*/ u8 unk5b1_06 : 1;
/*0x5b1*/ u8 unk5b1_07 : 1;
/*0x56c*/ s32 unk56c; // unused
/*0x570*/ s32 unk570; // unused
/*0x574*/ s32 zoomtimer60;
/*0x578*/ s32 rottimer60;
/*0x57c*/ s32 unk57c; // unused
/*0x580*/ bool removingpiece;
/*0x584*/ s32 unk584; // unused
/*0x588*/ s32 unk588; // unused
/*0x58c*/ s32 unk58c; // unused
/*0x590*/ s32 unk590; // unused
/*0x594*/ s32 unk594; // unused
/*0x598*/ s32 unk598; // unused
/*0x59c*/ s32 unk59c; // unused
/*0x5a0*/ s32 unk5a0; // unused
/*0x5a4*/ s32 unk5a4; // unused
/*0x5a8*/ s32 unk5a8; // unused
/*0x5ac*/ s32 unk5ac; // unused
/*0x5b0*/ u8 perfectheadnum;
/*0x5b1*/ u8 isperfecthead : 1;
/*0x5b1*/ u8 unk5b1_02 : 1; // unused
/*0x5b1*/ u8 unk5b1_03 : 1; // unused
/*0x5b1*/ u8 reverseanim : 1;
/*0x5b1*/ u8 configuring : 1;
/*0x5b1*/ u8 unk5b1_06 : 1; // unused
/*0x5b1*/ u8 drawbehinddialog : 1;
/*0x5b4*/ struct modelpartvisibility *partvisibility;
};
@@ -3924,7 +3923,7 @@ struct menu {
/*0x83d*/ u8 unk83d;
/*0x83e*/ u8 unk83e;
/*0x83f*/ u8 unk83f;
/*0x840*/ struct menu840 unk840;
/*0x840*/ struct menumodel menumodel;
/*0xdf8*/ s8 bannernum;
/*0xdfc*/ struct menudfc unkdfc[4];
@@ -4738,11 +4737,11 @@ struct menudata {
/*0x016*/ u8 screenshottimer;
/*0x017*/ u8 playerjoinalpha[MAX_PLAYERS];
/*0x01b*/ s8 bannernum;
/*0x01c*/ struct menu840 unk01c;
/*0x01c*/ struct menumodel hudpiece;
/*0x5d4*/ u8 unk5d4;
/*0x5d5*/ u8 unk5d5_01 : 1;
/*0x5d5*/ u8 unk5d5_02 : 1;
/*0x5d5*/ u8 unk5d5_03 : 1;
/*0x5d5*/ u8 usezbuf : 1;
/*0x5d5*/ u8 unk5d5_04 : 1;
/*0x5d5*/ u8 unk5d5_05 : 1;
/*0x5d5*/ u8 unk5d5_06 : 1;