mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-12-28 05:11:34 +00:00
Update the SP menu stuff to use MAXSKINS
Co-authoered-by: Steel Titanium (steeltitanium1@gmail.com>
This commit is contained in:
parent
fad341b0e9
commit
0d1c501664
3 changed files with 54 additions and 74 deletions
|
@ -435,11 +435,12 @@ static void readAnimTex(MYFILE *f, INT32 num)
|
||||||
static boolean findFreeSlot(INT32 *num)
|
static boolean findFreeSlot(INT32 *num)
|
||||||
{
|
{
|
||||||
// Send the character select entry to a free slot.
|
// Send the character select entry to a free slot.
|
||||||
while (*num < 32 && PlayerMenu[*num].status != IT_DISABLED)
|
while (*num < MAXSKINS && PlayerMenu[*num].status != IT_DISABLED)
|
||||||
*num = *num+1;
|
*num = *num+1;
|
||||||
|
CONS_Printf("%d\n", *num);
|
||||||
|
|
||||||
// No more free slots. :(
|
// No more free slots. :(
|
||||||
if (*num >= 32)
|
if (*num >= MAXSKINS)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Found one! ^_^
|
// Found one! ^_^
|
||||||
|
|
119
src/m_menu.c
119
src/m_menu.c
|
@ -112,41 +112,8 @@ typedef enum
|
||||||
const char *quitmsg[NUM_QUITMESSAGES];
|
const char *quitmsg[NUM_QUITMESSAGES];
|
||||||
|
|
||||||
// Stuff for customizing the player select screen Tails 09-22-2003
|
// Stuff for customizing the player select screen Tails 09-22-2003
|
||||||
description_t description[32] =
|
description_t description[MAXSKINS];
|
||||||
{
|
|
||||||
{"\x82Sonic\x80 is the fastest of the three, but also the hardest to control. Beginners beware, but experts will find Sonic very powerful.\n\n\x82""Ability:\x80 Speed Thok\nDouble jump to zoom forward with a huge burst of speed.\n\n\x82Tip:\x80 Simply letting go of forward does not slow down in SRB2. To slow down, hold the opposite direction.", "", "sonic"},
|
|
||||||
{"\x82Tails\x80 is the most mobile of the three, but has the slowest speed. Because of his mobility, he's well-\nsuited to beginners.\n\n\x82""Ability:\x80 Fly\nDouble jump to start flying for a limited time. Repetitively hit the jump button to ascend.\n\n\x82Tip:\x80 To quickly descend while flying, hit the spin button.", "", "tails"},
|
|
||||||
{"\x82Knuckles\x80 is well-\nrounded and can destroy breakable walls simply by touching them, but he can't jump as high as the other two.\n\n\x82""Ability:\x80 Glide & Climb\nDouble jump to glide in the air as long as jump is held. Glide into a wall to climb it.\n\n\x82Tip:\x80 Press spin while climbing to jump off the wall; press jump instead to jump off\nand face away from\nthe wall.", "", "knuckles"},
|
|
||||||
{"\x82Sonic & Tails\x80 team up to take on Dr. Eggman!\nControl Sonic while Tails desperately struggles to keep up.\n\nPlayer 2 can control Tails directly by setting the controls in the options menu.\nTails's directional controls are relative to Player 1's camera.\n\nTails can pick up Sonic while flying and carry him around.", "CHRS&T", "sonic&tails"},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""},
|
|
||||||
{"???", "", ""}
|
|
||||||
};
|
|
||||||
static char *char_notes = NULL;
|
static char *char_notes = NULL;
|
||||||
static fixed_t char_scroll = 0;
|
static fixed_t char_scroll = 0;
|
||||||
|
|
||||||
|
@ -842,41 +809,7 @@ static menuitem_t SP_LevelStatsMenu[] =
|
||||||
// A rare case.
|
// A rare case.
|
||||||
// External files modify this menu, so we can't call it static.
|
// External files modify this menu, so we can't call it static.
|
||||||
// And I'm too lazy to go through and rename it everywhere. ARRGH!
|
// And I'm too lazy to go through and rename it everywhere. ARRGH!
|
||||||
menuitem_t PlayerMenu[32] =
|
menuitem_t PlayerMenu[MAXSKINS];
|
||||||
{
|
|
||||||
{IT_CALL, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_CALL, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_CALL, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_CALL, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0},
|
|
||||||
{IT_DISABLED, NULL, NULL, M_ChoosePlayer, 0}
|
|
||||||
};
|
|
||||||
|
|
||||||
// -----------------------------------
|
// -----------------------------------
|
||||||
// Multiplayer and all of its submenus
|
// Multiplayer and all of its submenus
|
||||||
|
@ -2809,6 +2742,8 @@ void M_Ticker(void)
|
||||||
//
|
//
|
||||||
void M_Init(void)
|
void M_Init(void)
|
||||||
{
|
{
|
||||||
|
UINT8 i;
|
||||||
|
|
||||||
CV_RegisterVar(&cv_nextmap);
|
CV_RegisterVar(&cv_nextmap);
|
||||||
CV_RegisterVar(&cv_newgametype);
|
CV_RegisterVar(&cv_newgametype);
|
||||||
CV_RegisterVar(&cv_chooseskin);
|
CV_RegisterVar(&cv_chooseskin);
|
||||||
|
@ -2850,6 +2785,50 @@ void M_Init(void)
|
||||||
quitmsg[QUIT3MSG5] = M_GetText("You'll be back to play soon, though...\n......right?\n\n(Press 'Y' to quit)");
|
quitmsg[QUIT3MSG5] = M_GetText("You'll be back to play soon, though...\n......right?\n\n(Press 'Y' to quit)");
|
||||||
quitmsg[QUIT3MSG6] = M_GetText("Aww, is Egg Rock Zone too\ndifficult for you?\n\n(Press 'Y' to quit)");
|
quitmsg[QUIT3MSG6] = M_GetText("Aww, is Egg Rock Zone too\ndifficult for you?\n\n(Press 'Y' to quit)");
|
||||||
|
|
||||||
|
// Setup PlayerMenu table
|
||||||
|
for (i = 0; i < MAXSKINS; i++)
|
||||||
|
{
|
||||||
|
PlayerMenu[i].status = (i < 4 ? IT_CALL : IT_DISABLED);
|
||||||
|
PlayerMenu[i].patch = PlayerMenu[i].text = NULL;
|
||||||
|
PlayerMenu[i].itemaction = M_ChoosePlayer;
|
||||||
|
PlayerMenu[i].alphaKey = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Setup description table
|
||||||
|
for (i = 0; i < MAXSKINS; i++)
|
||||||
|
{
|
||||||
|
if (i == 0)
|
||||||
|
{
|
||||||
|
strcpy(description[i].notes, "\x82Sonic\x80 is the fastest of the three, but also the hardest to control. Beginners beware, but experts will find Sonic very powerful.\n\n\x82""Ability:\x80 Speed Thok\nDouble jump to zoom forward with a huge burst of speed.\n\n\x82Tip:\x80 Simply letting go of forward does not slow down in SRB2. To slow down, hold the opposite direction.");
|
||||||
|
strcpy(description[i].picname, "");
|
||||||
|
strcpy(description[i].skinname, "sonic");
|
||||||
|
}
|
||||||
|
else if (i == 1)
|
||||||
|
{
|
||||||
|
strcpy(description[i].notes, "\x82Tails\x80 is the most mobile of the three, but has the slowest speed. Because of his mobility, he's well-\nsuited to beginners.\n\n\x82""Ability:\x80 Fly\nDouble jump to start flying for a limited time. Repetitively hit the jump button to ascend.\n\n\x82Tip:\x80 To quickly descend while flying, hit the spin button.");
|
||||||
|
strcpy(description[i].picname, "");
|
||||||
|
strcpy(description[i].skinname, "tails");
|
||||||
|
}
|
||||||
|
else if (i == 2)
|
||||||
|
{
|
||||||
|
strcpy(description[i].notes, "\x82Knuckles\x80 is well-\nrounded and can destroy breakable walls simply by touching them, but he can't jump as high as the other two.\n\n\x82""Ability:\x80 Glide & Climb\nDouble jump to glide in the air as long as jump is held. Glide into a wall to climb it.\n\n\x82Tip:\x80 Press spin while climbing to jump off the wall; press jump instead to jump off\nand face away from\nthe wall.");
|
||||||
|
strcpy(description[i].picname, "");
|
||||||
|
strcpy(description[i].skinname, "knuckles");
|
||||||
|
}
|
||||||
|
else if (i == 3)
|
||||||
|
{
|
||||||
|
strcpy(description[i].notes, "\x82Sonic & Tails\x80 team up to take on Dr. Eggman!\nControl Sonic while Tails desperately struggles to keep up.\n\nPlayer 2 can control Tails directly by setting the controls in the options menu.\nTails's directional controls are relative to Player 1's camera.\n\nTails can pick up Sonic while flying and carry him around.");
|
||||||
|
strcpy(description[i].picname, "CHRS&T");
|
||||||
|
strcpy(description[i].skinname, "sonic&tails");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
strcpy(description[i].notes, "???");
|
||||||
|
strcpy(description[i].picname, "");
|
||||||
|
strcpy(description[i].skinname, "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef HWRENDER
|
#ifdef HWRENDER
|
||||||
// Permanently hide some options based on render mode
|
// Permanently hide some options based on render mode
|
||||||
if (rendermode == render_soft)
|
if (rendermode == render_soft)
|
||||||
|
|
|
@ -151,7 +151,7 @@ typedef struct menuitem_s
|
||||||
UINT8 alphaKey;
|
UINT8 alphaKey;
|
||||||
} menuitem_t;
|
} menuitem_t;
|
||||||
|
|
||||||
extern menuitem_t PlayerMenu[32];
|
extern menuitem_t PlayerMenu[MAXSKINS];
|
||||||
|
|
||||||
typedef struct menu_s
|
typedef struct menu_s
|
||||||
{
|
{
|
||||||
|
@ -206,7 +206,7 @@ typedef struct
|
||||||
UINT8 netgame;
|
UINT8 netgame;
|
||||||
} saveinfo_t;
|
} saveinfo_t;
|
||||||
|
|
||||||
extern description_t description[32];
|
extern description_t description[MAXSKINS];
|
||||||
|
|
||||||
extern consvar_t cv_newgametype, cv_nextmap, cv_chooseskin, cv_serversort;
|
extern consvar_t cv_newgametype, cv_nextmap, cv_chooseskin, cv_serversort;
|
||||||
extern CV_PossibleValue_t gametype_cons_t[];
|
extern CV_PossibleValue_t gametype_cons_t[];
|
||||||
|
|
Loading…
Reference in a new issue