Split cheat config out of setup_0160b0

This commit is contained in:
Ryan Dwyer 2020-01-20 19:43:24 +10:00
parent e05111dccf
commit 503ed2abec
9 changed files with 1410 additions and 1314 deletions

View File

@ -317,6 +317,8 @@ SECTIONS
src/setup/setup_000000.o (.data);
src/setup/inventory.o (.data);
src/setup/setup_0160b0.o (.data);
src/setup/cheats.o (.data);
src/setup/setup_01a3a0.o (.data);
src/setup/ailists.o (.data);
src/setup/setup_020df0.o (.data);
}

View File

@ -489,7 +489,7 @@ char *cheatGetMarquee(struct menu_item *arg0)
if (g_MenuStack[g_MpPlayerNum].unk00 && g_MenuStack[g_MpPlayerNum].unk00->item && g_MenuStack[g_MpPlayerNum].unk00->item->type == MENUITEMTYPE_CHECKBOX) {
cheat_id = g_MenuStack[g_MpPlayerNum].unk00->item->param;
if (g_MenuStack[g_MpPlayerNum].unk00->dialog == &menudialog_cheats_buddies && g_MenuStack[g_MpPlayerNum].unk00->item == &menuitems_cheats_buddies[0]) {
if (g_MenuStack[g_MpPlayerNum].unk00->dialog == &g_CheatsBuddiesMenuDialog && g_MenuStack[g_MpPlayerNum].unk00->item == &g_CheatsBuddiesMenuItems[0]) {
// Velvet
sprintf(g_CheatMarqueeString, "%s: %s", textGet(0x548f), textGet(0x5475)); // "Buddy Available", "Velvet Dark"
return g_CheatMarqueeString;
@ -498,7 +498,7 @@ char *cheatGetMarquee(struct menu_item *arg0)
if (cheatIsUnlocked(cheat_id)) {
// Show cheat name
sprintf(g_CheatMarqueeString, "%s: %s\n",
g_MenuStack[g_MpPlayerNum].unk00->dialog == &menudialog_cheats_buddies ? textGet(0x548f) : textGet(0x5488), // "Buddy Available", "Cheat available"
g_MenuStack[g_MpPlayerNum].unk00->dialog == &g_CheatsBuddiesMenuDialog ? textGet(0x548f) : textGet(0x5488), // "Buddy Available", "Cheat available"
textGet(g_Cheats[cheat_id].nametextid)
);
return g_CheatMarqueeString;

View File

@ -38123,9 +38123,9 @@ glabel func0f086f40
/* f0870a0: 2401000f */ addiu $at,$zero,0xf
/* f0870a4: 14410008 */ bne $v0,$at,.L0f0870c8
/* f0870a8: 240e0001 */ addiu $t6,$zero,0x1
/* f0870ac: 3c048007 */ lui $a0,%hi(menudialog_cheats)
/* f0870ac: 3c048007 */ lui $a0,%hi(g_CheatsMenuDialog)
/* f0870b0: a3ae002b */ sb $t6,0x2b($sp)
/* f0870b4: 24844368 */ addiu $a0,$a0,%lo(menudialog_cheats)
/* f0870b4: 24844368 */ addiu $a0,$a0,%lo(g_CheatsMenuDialog)
/* f0870b8: 0fc3e178 */ jal func0f0f85e0
/* f0870bc: 2405000d */ addiu $a1,$zero,0xd
/* f0870c0: 1000001e */ beqz $zero,.L0f08713c

View File

@ -0,0 +1,10 @@
#ifndef IN_SETUP_CHEATS_H
#define IN_SETUP_CHEATS_H
#include <ultra64.h>
extern struct cheat g_Cheats[NUM_CHEATS];
extern struct menu_item g_CheatsBuddiesMenuItems[];
extern struct menu_dialog g_CheatsBuddiesMenuDialog;
extern struct menu_dialog g_CheatsMenuDialog;
#endif

View File

@ -180,6 +180,8 @@ extern u16 g_SoundModeOptions[];
extern u16 g_ScreenSizeOptions[];
extern u16 g_ScreenRatioOptions[];
extern u16 g_ScreenSplitOptions[];
extern struct menu_dialog menudialog_briefing;
extern struct menu_dialog menudialog_changeagent;
extern struct menu_dialog g_ObjectivesMenuDialog;
extern struct menu_dialog g_PdModeSettingsDialog;
extern struct menu_dialog menudialog_selectdifficulty;
@ -208,8 +210,8 @@ extern u16 mainmenulabels_withcheats[];
extern struct menu_dialog g_MainMenuMenuDialog;
extern struct menu_dialog g_MainMenu4MbMenuDialog;
extern struct cheat g_Cheats[NUM_CHEATS];
extern struct menu_item menuitems_cheats_buddies[];
extern struct menu_dialog menudialog_cheats_buddies;
extern struct menu_item g_CheatsBuddiesMenuItems[];
extern struct menu_dialog g_CheatsBuddiesMenuDialog;
extern u16 iomessages[];
extern struct menu_dialog menudialog_1a410;
extern u16 savelocations2[];

View File

@ -0,0 +1,73 @@
#ifndef IN_SETUP_01A3A0_H
#define IN_SETUP_01A3A0_H
#include <ultra64.h>
extern u16 iomessages[];
extern struct menu_dialog menudialog_1a410;
extern u16 savelocations2[];
extern u16 iomessages2[];
extern u16 filetypenames[];
extern struct menu_dialog menudialog_filesaved;
extern struct menu_dialog menudialog_saveerror;
extern struct menu_dialog menudialog_savelost;
extern struct menu_dialog g_SaveElsewhereMenuDialog;
extern struct menu_dialog menudialog_1a654;
extern u32 var8007464c;
extern struct menu_dialog menudialog_changefilename;
extern struct menu_dialog menudialog_duplicatefilename;
extern u16 savelocations3[];
extern struct menu_dialog menudialog_selectlocation;
extern struct menu_dialog menudialog_confirmdelete;
extern struct menu_dialog menudialog_1a984;
extern struct menu_dialog menudialog_deletefile;
extern struct menu_dialog menudialog_copyfile;
extern u32 var80074a4c;
extern struct menu_dialog menudialog_deletegamenote;
extern struct menu_dialog menudialog_gamenotes;
extern struct menu_dialog menudialog_controllerpakmenu;
extern struct menu_dialog menudialog_enteragentname;
extern struct menu_dialog menudialog_fileselect;
extern struct menu_dialog menudialog_fileselect2;
extern struct menu_dialog menudialog_mpquickgo2;
extern struct menu_dialog menudialog_1b1bc;
extern struct menu_dialog g_4MbMainMenu;
extern struct menu_dialog menudialog_mpdropout;
extern struct menu_dialog g_MpEditSimulant4MbMenuDialog;
extern struct menu_dialog g_4MbAdvancedSetupMenuDialog;
extern struct menu_dialog menudialog_1b5c0;
extern struct menu_dialog menudialog_promptnextmission;
extern struct menu_dialog menudialog_1b7a4;
extern u32 var80075968;
extern struct menu_dialog menudialog_1bb44;
extern struct menu_dialog menudialog_1bb5c;
extern struct menu_dialog menudialog_1bb74;
extern struct menu_dialog menudialog_1bb8c;
extern struct menu_dialog menudialog_1bba4;
extern struct menu_dialog menudialog_1bbbc;
extern struct savelocation *g_SaveLocations[];
extern u32 var80075bd0;
extern u32 var80075be0;
extern u32 var80075c00;
extern u32 var80075c30;
extern u32 var80075c3c;
extern u32 var80075c48;
extern u32 var80075c54;
extern u32 var80075c94;
extern u32 var80075ca0;
extern char var80075cb4[];
extern char var80075cc0[];
extern u32 var80075ce0;
extern u32 var80075ce4;
extern u32 var80075ce8;
extern u32 var80075cec;
extern u32 var80075cf0;
extern u32 var80075cf4;
extern u32 var80075cf8;
extern u32 var80075d08;
extern u32 var80075d10;
extern u32 var80075d18;
extern u32 var80075d2c;
extern u32 var80075d40;
extern u32 var80075d54;
#endif

243
src/setup/cheats.c Normal file
View File

@ -0,0 +1,243 @@
#include <ultra64.h>
#include "game/chr/chraicommands.h"
#include "game/game_0f09f0.h"
#include "game/game_102240.h"
#include "game/cheats.h"
#include "game/game_107fb0.h"
#include "game/game_10ccd0.h"
#include "game/game_176d70.h"
#include "game/game_1a3340.h"
#include "gvars/gvars.h"
#include "setup/cheats.h"
#include "stagesetup.h"
#include "types.h"
struct cheat g_Cheats[NUM_CHEATS] = {
// name, time, stage index, difficulty, flags
{ 0x544b, 123, 2, DIFF_A, CHEATFLAG_TIMED | CHEATFLAG_TRANSFERPAK }, // Hurricane Fists
{ 0x544c, 100, 5, DIFF_A, CHEATFLAG_TIMED | CHEATFLAG_TRANSFERPAK }, // Cloaking Device
{ 0x544d, 230, 8, DIFF_A, CHEATFLAG_TIMED }, // Invincible
{ 0x544e, 331, 16, DIFF_PA, CHEATFLAG_TIMED | CHEATFLAG_TRANSFERPAK }, // All Guns in Solo
{ 0x544f, 427, 12, DIFF_SA, CHEATFLAG_TIMED }, // Unlimited Ammo
{ 0x5450, 191, 9, DIFF_SA, CHEATFLAG_TIMED }, // Unlimited Ammo, No Reloads
{ 0x5451, 0, 1, DIFF_A, CHEATFLAG_COMPLETION }, // Slo-mo Single Player
{ 0x5452, 0, 4, DIFF_A, CHEATFLAG_COMPLETION }, // DK Mode
{ 0x5453, 170, 11, DIFF_A, CHEATFLAG_TIMED }, // Trent's Magnum
{ 0x5454, 447, 13, DIFF_PA, CHEATFLAG_TIMED }, // FarSight
{ 0x5455, 0, 5, DIFF_A, CHEATFLAG_COMPLETION }, // Small Jo
{ 0x5456, 0, 6, DIFF_A, CHEATFLAG_COMPLETION }, // Small Characters
{ 0x5457, 0, 14, DIFF_A, CHEATFLAG_COMPLETION }, // Enemy Shields
{ 0x5458, 0, 13, DIFF_A, CHEATFLAG_COMPLETION }, // Jo Shield
{ 0x5459, 105, 14, DIFF_A, CHEATFLAG_TIMED }, // Super Shield
{ 0x545a, 0, 0, DIFF_A, CHEATFLAG_COMPLETION }, // Classic Sight
{ 0x545b, 0, 9, DIFF_A, CHEATFLAG_COMPLETION }, // Team Heads Only
{ 0x545c, 479, 7, DIFF_PA, CHEATFLAG_TIMED }, // Play as Elvis
{ 0x545d, 0, 12, DIFF_A, CHEATFLAG_COMPLETION }, // Enemy Rockets
{ 0x545e, 235, 10, DIFF_PA, CHEATFLAG_TIMED }, // Unlimited Ammo - Laptop Sentry Gun
{ 0x545f, 90, 0, DIFF_SA, CHEATFLAG_TIMED }, // Marquis of Queensbury Rules
{ 0x5460, 0, 11, DIFF_A, CHEATFLAG_COMPLETION }, // Perfect Darkness
{ 0x5461, 390, 1, DIFF_PA, CHEATFLAG_TIMED }, // Pugilist
{ 0x5462, 300, 6, DIFF_SA, CHEATFLAG_TIMED }, // Hotshot
{ 0x5463, 150, 3, DIFF_SA, CHEATFLAG_TIMED }, // Hit and Run
{ 0x5464, 317, 15, DIFF_SA, CHEATFLAG_TIMED }, // Alien
{ 0x5465, 0, 16, DIFF_A, CHEATFLAG_COMPLETION | CHEATFLAG_TRANSFERPAK }, // R-Tracker/Weapon Cache Locations
{ 0x5466, 0, 2, DIFF_A, CHEATFLAG_COMPLETION }, // Rocket Launcher
{ 0x5467, 0, 3, DIFF_A, CHEATFLAG_COMPLETION }, // Sniper Rifle
{ 0x5468, 0, 7, DIFF_A, CHEATFLAG_COMPLETION }, // X-Ray Scanner
{ 0x5469, 0, 8, DIFF_A, CHEATFLAG_COMPLETION }, // SuperDragon
{ 0x546a, 0, 10, DIFF_A, CHEATFLAG_COMPLETION }, // Laptop Gun
{ 0x546b, 0, 15, DIFF_A, CHEATFLAG_COMPLETION }, // Phoenix
{ 0x546c, 120, 4, DIFF_PA, CHEATFLAG_TIMED }, // Psychosis Gun
{ 0x546d, 36, 0, DIFF_A, CHEATFLAG_FIRINGRANGE }, // PP9i
{ 0x546e, 37, 0, DIFF_A, CHEATFLAG_FIRINGRANGE }, // CC13
{ 0x546f, 38, 0, DIFF_A, CHEATFLAG_FIRINGRANGE }, // KLO1313
{ 0x5470, 39, 0, DIFF_A, CHEATFLAG_FIRINGRANGE }, // KF7 Special
{ 0x5471, 40, 0, DIFF_A, CHEATFLAG_FIRINGRANGE }, // ZZT (9mm)
{ 0x5472, 41, 0, DIFF_A, CHEATFLAG_FIRINGRANGE }, // DMC
{ 0x5473, 42, 0, DIFF_A, CHEATFLAG_FIRINGRANGE }, // AR53
{ 0x5474, 43, 0, DIFF_A, CHEATFLAG_FIRINGRANGE }, // RC-P45
};
struct menu_item g_CheatWarningMenuItems[] = {
{ MENUITEMTYPE_LABEL, 0, 0x00000000, 0x000051df, 0x00000000, NULL }, // "If you activate any cheats, then you will be unable to progress further in the game while those cheats are active."
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000028, 0x000051e0, 0x00000000, NULL }, // "OK"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000028, 0x000051e1, 0x00000000, NULL }, // "Cancel"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog g_CheatWarningMenuDialog = {
MENUDIALOGTYPE_SUCCESS,
0x51de, // "Warning"
g_CheatWarningMenuItems,
NULL,
0x00000000,
NULL,
};
struct menu_item g_CheatsFunMenuItems[] = {
{ MENUITEMTYPE_CHECKBOX, 7, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 10, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 11, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 16, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 17, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 6, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL },
{ MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32) &cheatGetMarquee, 0x00000000, NULL },
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000028, 0x000051dd, 0x00000000, NULL }, // "Done"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog g_CheatsFunMenuDialog = {
MENUDIALOGTYPE_DEFAULT,
0x5476, // "Fun"
g_CheatsFunMenuItems,
cheatMenuHandleDialog,
0x00000000,
NULL,
};
struct menu_item g_CheatsGameplayMenuItems[] = {
{ MENUITEMTYPE_CHECKBOX, 2, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 1, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 20, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 13, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 14, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 12, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 18, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 21, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL },
{ MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32) &cheatGetMarquee, 0x00000000, NULL },
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000028, 0x000051dd, 0x00000000, NULL }, // "Done"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog g_CheatsGameplayMenuDialog = {
MENUDIALOGTYPE_DEFAULT,
0x5477, // "Gameplay"
g_CheatsGameplayMenuItems,
cheatMenuHandleDialog,
0x00000000,
NULL,
};
struct menu_item g_CheatsSoloWeaponsMenuItems[] = {
{ MENUITEMTYPE_CHECKBOX, 27, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 28, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 30, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 31, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 32, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 33, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 8, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 9, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL },
{ MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32) &cheatGetMarquee, 0x00000000, NULL },
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000028, 0x000051dd, 0x00000000, NULL }, // "Done"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog g_CheatsSoloWeaponsMenuDialog = {
MENUDIALOGTYPE_DEFAULT,
0x547a, // "Weapons for Jo in Solo"
g_CheatsSoloWeaponsMenuItems,
cheatMenuHandleDialog,
0x00000000,
NULL,
};
struct menu_item g_CheatsClassicWeaponsMenuItems[] = {
{ MENUITEMTYPE_CHECKBOX, 34, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 35, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 36, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 37, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 38, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 39, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 40, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 41, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x000000c8, 0x00000000, NULL },
{ MENUITEMTYPE_MARQUEE, 0, 0x00000a00, 0x00005490, 0x00000000, NULL },
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x000000c8, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000028, 0x000051dd, 0x00000000, NULL },
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog g_CheatsClassicWeaponsMenuDialog = {
MENUDIALOGTYPE_DEFAULT,
0x547b, // "Classic Weapons for Jo in Solo"
g_CheatsClassicWeaponsMenuItems,
cheatMenuHandleDialog,
0x00000000,
NULL,
};
struct menu_item g_CheatsWeaponsMenuItems[] = {
{ MENUITEMTYPE_CHECKBOX, 15, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 19, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 4, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 5, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 29, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 26, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_CHECKBOX, 3, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleCheatCheckbox },
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL },
{ MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32) &cheatGetMarquee, 0x00000000, NULL },
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000028, 0x000051dd, 0x00000000, NULL }, // "Done"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog g_CheatsWeaponsMenuDialog = {
MENUDIALOGTYPE_DEFAULT,
0x5478, // "Weapons"
g_CheatsWeaponsMenuItems,
cheatMenuHandleDialog,
0x00000000,
NULL,
};
struct menu_item g_CheatsBuddiesMenuItems[] = {
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x00005475, 0x00000000, cheatMenuHandleBuddyCheckbox }, // "Velvet Dark"
{ MENUITEMTYPE_CHECKBOX, 22, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleBuddyCheckbox },
{ MENUITEMTYPE_CHECKBOX, 23, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleBuddyCheckbox },
{ MENUITEMTYPE_CHECKBOX, 24, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleBuddyCheckbox },
{ MENUITEMTYPE_CHECKBOX, 25, 0x00000000, (u32) &cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleBuddyCheckbox },
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL },
{ MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32) &cheatGetMarquee, 0x00000000, NULL },
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000028, 0x000051dd, 0x00000000, NULL }, // "Done"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog g_CheatsBuddiesMenuDialog = {
MENUDIALOGTYPE_DEFAULT,
0x5479, // "Buddies"
g_CheatsBuddiesMenuItems,
cheatMenuHandleDialog,
0x00000000,
NULL,
};
struct menu_item g_CheatsMenuItems[] = {
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000004, 0x00005476, 0x00000000, &g_CheatsFunMenuDialog }, // "Fun"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000004, 0x00005477, 0x00000000, &g_CheatsGameplayMenuDialog }, // "Gameplay"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000004, 0x0000547a, 0x00000000, &g_CheatsSoloWeaponsMenuDialog }, // "Weapons for Jo in Solo"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000004, 0x0000547b, 0x00000000, &g_CheatsClassicWeaponsMenuDialog }, // "Classic Weapons for Jo in Solo"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000004, 0x00005478, 0x00000000, &g_CheatsWeaponsMenuDialog }, // "Weapons"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000004, 0x00005479, 0x00000000, &g_CheatsBuddiesMenuDialog }, // "Buddies"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, 0x000054d9, 0x00000000, cheatMenuHandleTurnOffAllCheats }, // "Turn of all Cheats"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000028, 0x000051dd, 0x00000000, NULL }, // "Done"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog g_CheatsMenuDialog = {
MENUDIALOGTYPE_DEFAULT,
0x51dc, // "Cheats"
g_CheatsMenuItems,
cheatMenuHandleDialog,
0x00000000,
NULL,
};

File diff suppressed because it is too large Load Diff

1072
src/setup/setup_01a3a0.c Normal file

File diff suppressed because it is too large Load Diff