mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
R_GetLocalRandomSkin
Randomisation of unlocked characters only for
- Intro ticker taunt
- Waiting Players NO WAY? NO WAY!
This commit is contained in:
parent
37e7b82b8b
commit
92d3392c97
3 changed files with 42 additions and 12 deletions
|
|
@ -456,7 +456,7 @@ void F_IntroTicker(void)
|
|||
else if (finalecount == 47)
|
||||
{
|
||||
// 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);
|
||||
sfxenum_t rsound = skins[rskin].soundsid[SKSKBST1+rtaunt];
|
||||
S_StartSound(NULL, rsound);
|
||||
|
|
@ -2282,7 +2282,7 @@ void F_StartWaitingPlayers(void)
|
|||
{
|
||||
#ifdef NOWAY
|
||||
INT32 i;
|
||||
INT32 randskin;
|
||||
UINT32 randskin;
|
||||
spritedef_t *sprdef;
|
||||
spriteframe_t *sprframe;
|
||||
#endif
|
||||
|
|
@ -2291,7 +2291,7 @@ void F_StartWaitingPlayers(void)
|
|||
finalecount = 0;
|
||||
|
||||
#ifdef NOWAY
|
||||
randskin = M_RandomKey(numskins);
|
||||
randskin = R_GetLocalRandomSkin();
|
||||
|
||||
if (waitcolormap)
|
||||
Z_Free(waitcolormap);
|
||||
|
|
|
|||
|
|
@ -284,6 +284,25 @@ boolean R_SkinUsable(INT32 playernum, INT32 skinnum, boolean demoskins)
|
|||
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)
|
||||
// warning return -1 if not found
|
||||
INT32 R_SkinAvailable(const char *name)
|
||||
|
|
|
|||
|
|
@ -101,23 +101,34 @@ extern skin_t skins[MAXSKINS];
|
|||
extern CV_PossibleValue_t Forceskin_cons_t[];
|
||||
|
||||
/// 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 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 SetRandomFakePlayerSkin(player_t* player, boolean fast);
|
||||
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);
|
||||
INT32 R_SkinAvailable(const char *name);
|
||||
UINT8 R_BotDefaultSkin(void);
|
||||
|
||||
void R_PatchSkins(UINT16 wadnum, boolean mainfile);
|
||||
void R_AddSkins(UINT16 wadnum, boolean mainfile);
|
||||
// Visual flair
|
||||
UINT32 R_GetLocalRandomSkin(void);
|
||||
|
||||
// Sprite2
|
||||
UINT8 P_GetSkinSprite2(skin_t *skin, UINT8 spr2, player_t *player);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue