mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-26 12:01:47 +00:00
Merge branch 'no-way-unlocks' into 'master'
R_GetLocalRandomSkin See merge request KartKrew/Kart!1135
This commit is contained in:
commit
da28707fe1
3 changed files with 42 additions and 12 deletions
|
|
@ -456,7 +456,7 @@ void F_IntroTicker(void)
|
||||||
else if (finalecount == 47)
|
else if (finalecount == 47)
|
||||||
{
|
{
|
||||||
// Need to use M_Random otherwise it always uses the same sound
|
// Need to use M_Random otherwise it always uses the same sound
|
||||||
INT32 rskin = M_RandomKey(numskins);
|
UINT32 rskin = R_GetLocalRandomSkin();
|
||||||
UINT8 rtaunt = M_RandomKey(2);
|
UINT8 rtaunt = M_RandomKey(2);
|
||||||
sfxenum_t rsound = skins[rskin].soundsid[SKSKBST1+rtaunt];
|
sfxenum_t rsound = skins[rskin].soundsid[SKSKBST1+rtaunt];
|
||||||
S_StartSound(NULL, rsound);
|
S_StartSound(NULL, rsound);
|
||||||
|
|
@ -2282,7 +2282,7 @@ void F_StartWaitingPlayers(void)
|
||||||
{
|
{
|
||||||
#ifdef NOWAY
|
#ifdef NOWAY
|
||||||
INT32 i;
|
INT32 i;
|
||||||
INT32 randskin;
|
UINT32 randskin;
|
||||||
spritedef_t *sprdef;
|
spritedef_t *sprdef;
|
||||||
spriteframe_t *sprframe;
|
spriteframe_t *sprframe;
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -2291,7 +2291,7 @@ void F_StartWaitingPlayers(void)
|
||||||
finalecount = 0;
|
finalecount = 0;
|
||||||
|
|
||||||
#ifdef NOWAY
|
#ifdef NOWAY
|
||||||
randskin = M_RandomKey(numskins);
|
randskin = R_GetLocalRandomSkin();
|
||||||
|
|
||||||
if (waitcolormap)
|
if (waitcolormap)
|
||||||
Z_Free(waitcolormap);
|
Z_Free(waitcolormap);
|
||||||
|
|
|
||||||
|
|
@ -284,6 +284,25 @@ boolean R_SkinUsable(INT32 playernum, INT32 skinnum, boolean demoskins)
|
||||||
return (boolean)(gamedata->unlocked[i]);
|
return (boolean)(gamedata->unlocked[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Returns a random unlocked skin ID.
|
||||||
|
UINT32 R_GetLocalRandomSkin(void)
|
||||||
|
{
|
||||||
|
UINT8 i, usableskins = 0;
|
||||||
|
UINT8 grabskins[MAXSKINS];
|
||||||
|
|
||||||
|
for (i = 0; i < numskins; i++)
|
||||||
|
{
|
||||||
|
if (!R_SkinUsable(-1, i, false))
|
||||||
|
continue;
|
||||||
|
grabskins[usableskins++] = i;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!usableskins)
|
||||||
|
I_Error("R_GetLocalRandomSkin: No valid skins to pick from!?");
|
||||||
|
|
||||||
|
return grabskins[M_RandomKey(usableskins)];
|
||||||
|
}
|
||||||
|
|
||||||
// returns true if the skin name is found (loaded from pwad)
|
// returns true if the skin name is found (loaded from pwad)
|
||||||
// warning return -1 if not found
|
// warning return -1 if not found
|
||||||
INT32 R_SkinAvailable(const char *name)
|
INT32 R_SkinAvailable(const char *name)
|
||||||
|
|
|
||||||
|
|
@ -101,23 +101,34 @@ extern skin_t skins[MAXSKINS];
|
||||||
extern CV_PossibleValue_t Forceskin_cons_t[];
|
extern CV_PossibleValue_t Forceskin_cons_t[];
|
||||||
|
|
||||||
/// Function prototypes
|
/// Function prototypes
|
||||||
void R_InitSkins(void);
|
|
||||||
|
|
||||||
|
// Loading
|
||||||
|
void R_InitSkins(void);
|
||||||
|
void R_AddSkins(UINT16 wadnum, boolean mainfile);
|
||||||
|
void R_PatchSkins(UINT16 wadnum, boolean mainfile);
|
||||||
|
|
||||||
|
// Access
|
||||||
|
INT32 R_SkinAvailable(const char *name);
|
||||||
|
boolean R_SkinUsable(INT32 playernum, INT32 skinnum, boolean demoskins);
|
||||||
|
UINT8 *R_GetSkinAvailabilities(boolean demolock, boolean forbots);
|
||||||
|
|
||||||
|
// Setting
|
||||||
void SetPlayerSkin(INT32 playernum,const char *skinname);
|
void SetPlayerSkin(INT32 playernum,const char *skinname);
|
||||||
void SetPlayerSkinByNum(INT32 playernum,INT32 skinnum); // Tails 03-16-2002
|
void SetPlayerSkinByNum(INT32 playernum,INT32 skinnum); // Tails 03-16-2002
|
||||||
|
|
||||||
|
// Set backup
|
||||||
|
INT32 GetSkinNumClosestToStats(UINT8 kartspeed, UINT8 kartweight, UINT32 flags, boolean unlock);
|
||||||
|
UINT8 R_BotDefaultSkin(void);
|
||||||
|
|
||||||
|
// Heavy Magician
|
||||||
void SetFakePlayerSkin(player_t* player, INT32 skinnum);
|
void SetFakePlayerSkin(player_t* player, INT32 skinnum);
|
||||||
void SetRandomFakePlayerSkin(player_t* player, boolean fast);
|
void SetRandomFakePlayerSkin(player_t* player, boolean fast);
|
||||||
void ClearFakePlayerSkin(player_t* player);
|
void ClearFakePlayerSkin(player_t* player);
|
||||||
boolean R_SkinUsable(INT32 playernum, INT32 skinnum, boolean demoskins);
|
|
||||||
INT32 GetSkinNumClosestToStats(UINT8 kartspeed, UINT8 kartweight, UINT32 flags, boolean unlock);
|
|
||||||
|
|
||||||
UINT8 *R_GetSkinAvailabilities(boolean demolock, boolean forbots);
|
// Visual flair
|
||||||
INT32 R_SkinAvailable(const char *name);
|
UINT32 R_GetLocalRandomSkin(void);
|
||||||
UINT8 R_BotDefaultSkin(void);
|
|
||||||
|
|
||||||
void R_PatchSkins(UINT16 wadnum, boolean mainfile);
|
|
||||||
void R_AddSkins(UINT16 wadnum, boolean mainfile);
|
|
||||||
|
|
||||||
|
// Sprite2
|
||||||
UINT8 P_GetSkinSprite2(skin_t *skin, UINT8 spr2, player_t *player);
|
UINT8 P_GetSkinSprite2(skin_t *skin, UINT8 spr2, player_t *player);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue