Merge branch 'master' of https://git.magicalgirl.moe/KartKrew/Kart.git into itemdrop

# Conflicts:
#	src/dehacked.c
#	src/info.c
#	src/info.h
This commit is contained in:
toaster 2018-09-23 11:47:29 +01:00
commit 659810cd81
14 changed files with 305 additions and 232 deletions

View File

@ -4791,39 +4791,7 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_SIGN18",
"S_SIGN19",
"S_SIGN20",
"S_SIGN21",
"S_SIGN22",
"S_SIGN23",
"S_SIGN24",
"S_SIGN25",
"S_SIGN26",
"S_SIGN27",
"S_SIGN28",
"S_SIGN29",
"S_SIGN30",
"S_SIGN31",
"S_SIGN32",
"S_SIGN33",
"S_SIGN34",
"S_SIGN35",
"S_SIGN36",
"S_SIGN37",
"S_SIGN38",
"S_SIGN39",
"S_SIGN40",
"S_SIGN41",
"S_SIGN42",
"S_SIGN43",
"S_SIGN44",
"S_SIGN45",
"S_SIGN46",
"S_SIGN47",
"S_SIGN48",
"S_SIGN49",
"S_SIGN50",
"S_SIGN51",
"S_SIGN52", // Eggman
"S_SIGN53",
"S_SIGN_END",
// Steam Riser
"S_STEAM1",
@ -6239,6 +6207,19 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_ITEMICON",
// Signpost sparkles
"S_SIGNSPARK1",
"S_SIGNSPARK2",
"S_SIGNSPARK3",
"S_SIGNSPARK4",
"S_SIGNSPARK5",
"S_SIGNSPARK6",
"S_SIGNSPARK7",
"S_SIGNSPARK8",
"S_SIGNSPARK9",
"S_SIGNSPARK10",
"S_SIGNSPARK11",
// Drift Sparks
"S_DRIFTSPARK_A1",
"S_DRIFTSPARK_A2",
@ -7240,6 +7221,8 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
"MT_RANDOMITEMPOP",
"MT_FLOATINGITEM",
"MT_SIGNSPARKLE",
"MT_FASTLINE",
"MT_FASTDUST",
"MT_BOOSTFLAME",
@ -8090,6 +8073,18 @@ struct {
{"SKSSKID",SKSSKID},
{"SKSGASP",SKSGASP},
{"SKSJUMP",SKSJUMP},
// SRB2kart
{"SKSKWIN",SKSKWIN}, // Win quote
{"SKSKLOSE",SKSKLOSE}, // Lose quote
{"SKSKPAN1",SKSKPAN1}, // Pain
{"SKSKPAN2",SKSKPAN2},
{"SKSKATK1",SKSKATK1}, // Offense item taunt
{"SKSKATK2",SKSKATK2},
{"SKSKBST1",SKSKBST1}, // Boost item taunt
{"SKSKBST2",SKSKBST2},
{"SKSKSLOW",SKSKSLOW}, // Overtake taunt
{"SKSKHITM",SKSKHITM}, // Hit confirm taunt
{"SKSKPOWR",SKSKPOWR}, // Power item taunt
// 3D Floor/Fake Floor/FOF/whatever flags
{"FF_EXISTS",FF_EXISTS}, ///< Always set, to check for validity.

View File

@ -413,6 +413,8 @@ extern UINT16 extralifetics;
// SRB2kart
extern tic_t introtime;
extern tic_t starttime;
extern tic_t raceexittime;
extern tic_t battleexittime;
extern INT32 hyudorotime;
extern INT32 stealtime;
extern INT32 sneakertime;

View File

@ -308,8 +308,8 @@ static void F_IntroDrawScene(void)
{
// Need to use M_Random otherwise it always uses the same sound
INT32 rskin = M_RandomKey(numskins);
UINT8 rtaunt = M_RandomKey(4);
sfxenum_t rsound = skins[rskin].soundsid[SKSPLTNT1+rtaunt];
UINT8 rtaunt = M_RandomKey(2);
sfxenum_t rsound = skins[rskin].soundsid[SKSKBST1+rtaunt];
S_StartSound(NULL, rsound);
}
background = W_CachePatchName("KARTKREW", PU_CACHE);

View File

@ -209,6 +209,8 @@ UINT16 extralifetics = 4*TICRATE;
// SRB2kart
tic_t introtime = 108+5; // plus 5 for white fade
tic_t starttime = 6*TICRATE + (3*TICRATE/4);
tic_t raceexittime = 5*TICRATE + (2*TICRATE/3);
tic_t battleexittime = 8*TICRATE;
INT32 hyudorotime = 7*TICRATE;
INT32 stealtime = TICRATE/2;
INT32 sneakertime = TICRATE + (TICRATE/3);

View File

@ -55,12 +55,12 @@ char sprnames[NUMSPRITES + 1][5] =
"GWLR","SRBA","SRBB","SRBC","SRBD","SRBE","SRBF","SRBG","SRBH","SRBI",
"SRBJ","SRBK","SRBL","SRBM","SRBN","SRBO",
//SRB2kart Sprites
"SPRG","BSPR","RNDM","RPOP","FAST","DSHR","BOST","BOSM","KFRE","KINV",
"KINF","WIPD","DRIF","DUST","FITM","BANA","ORBN","JAWZ","SSMN","KRBM",
"BHOG","BHBM","BLIG","LIGH","THNS","SINK","SITR","KBLN","DEZL","POKE",
"AUDI","DECO","DOOD","SNES","GBAS","SPRS","BUZB","CHOM","SACO","CRAB",
"SHAD","BRNG","BUMP","FLEN","CLAS","PSHW","ISTA","ISTB","ARRO","ITEM",
"ITMO","ITMI","ITMN","WANT","PBOM","RETI","AIDU","VIEW"
"SPRG","BSPR","RNDM","RPOP","SGNS","FAST","DSHR","BOST","BOSM","KFRE",
"KINV","KINF","WIPD","DRIF","DUST","FITM","BANA","ORBN","JAWZ","SSMN",
"KRBM","BHOG","BHBM","BLIG","LIGH","THNS","SINK","SITR","KBLN","DEZL",
"POKE","AUDI","DECO","DOOD","SNES","GBAS","SPRS","BUZB","CHOM","SACO",
"CRAB","SHAD","BRNG","BUMP","FLEN","CLAS","PSHW","ISTA","ISTB","ARRO",
"ITEM","ITMO","ITMI","ITMN","WANT","PBOM","RETI","AIDU","VIEW"
};
// Doesn't work with g++, needs actionf_p1 (don't modify this comment)
@ -175,14 +175,15 @@ state_t states[NUMSTATES] =
{SPR_NULL, 0, -1, {NULL}, 0, 0, S_OBJPLACE_DUMMY}, //S_OBJPLACE_DUMMY
// 1-Up Box Sprites (uses player sprite)
{SPR_PLAY, 35, 2, {NULL}, 0, 16, S_PLAY_BOX2}, // S_PLAY_BOX1
// Kart: default to signpost just to ensure there are no missing sprite errors...
{SPR_PLAY, 24, 2, {NULL}, 0, 16, S_PLAY_BOX2}, // S_PLAY_BOX1
{SPR_NULL, 0, 1, {NULL}, 0, 0, S_PLAY_BOX1}, // S_PLAY_BOX2
{SPR_PLAY, 35, 4, {NULL}, 0, 4, S_PLAY_ICON2}, // S_PLAY_ICON1
{SPR_PLAY, 24, 4, {NULL}, 0, 4, S_PLAY_ICON2}, // S_PLAY_ICON1
{SPR_NULL, 0, 12, {NULL}, 0, 0, S_PLAY_ICON3}, // S_PLAY_ICON2
{SPR_PLAY, 35, 18, {NULL}, 0, 4, S_NULL}, // S_PLAY_ICON3
{SPR_PLAY, 24, 18, {NULL}, 0, 4, S_NULL}, // S_PLAY_ICON3
// Level end sign (uses player sprite)
{SPR_PLAY, 34, 1, {NULL}, 0, 24, S_PLAY_SIGN}, // S_PLAY_SIGN
{SPR_PLAY, 24, 1, {NULL}, 0, 24, S_PLAY_SIGN}, // S_PLAY_SIGN
// Blue Crawla
{SPR_POSS, 0, 5, {A_Look}, 0, 0, S_POSS_STND}, // S_POSS_STND
@ -1043,56 +1044,24 @@ state_t states[NUMSTATES] =
{SPR_SIGN, 0, 1, {NULL}, 0, 0, S_SIGN2}, // S_SIGN1
{SPR_SIGN, 1, 1, {NULL}, 0, 0, S_SIGN3}, // S_SIGN2
{SPR_SIGN, 2, 1, {NULL}, 0, 0, S_SIGN4}, // S_SIGN3
{SPR_SIGN, 5, 1, {NULL}, 0, 0, S_SIGN5}, // S_SIGN4
{SPR_SIGN, 3, 1, {NULL}, 0, 0, S_SIGN5}, // S_SIGN4
{SPR_SIGN, 0, 1, {NULL}, 0, 0, S_SIGN6}, // S_SIGN5
{SPR_SIGN, 1, 1, {NULL}, 0, 0, S_SIGN7}, // S_SIGN6
{SPR_SIGN, 2, 1, {NULL}, 0, 0, S_SIGN8}, // S_SIGN7
{SPR_SIGN, 3, 1, {NULL}, 0, 0, S_SIGN9}, // S_SIGN8
{SPR_SIGN, 4, 1, {NULL}, 0, 0, S_SIGN9}, // S_SIGN8
{SPR_SIGN, 0, 1, {NULL}, 0, 0, S_SIGN10}, // S_SIGN9
{SPR_SIGN, 1, 1, {NULL}, 0, 0, S_SIGN11}, // S_SIGN10
{SPR_SIGN, 2, 1, {NULL}, 0, 0, S_SIGN12}, // S_SIGN11
{SPR_SIGN, 4, 1, {NULL}, 0, 0, S_SIGN13}, // S_SIGN12
{SPR_SIGN, 5, 1, {NULL}, 0, 0, S_SIGN13}, // S_SIGN12
{SPR_SIGN, 0, 1, {NULL}, 0, 0, S_SIGN14}, // S_SIGN13
{SPR_SIGN, 1, 1, {NULL}, 0, 0, S_SIGN15}, // S_SIGN14
{SPR_SIGN, 2, 1, {NULL}, 0, 0, S_SIGN16}, // S_SIGN15
{SPR_SIGN, 3, 1, {NULL}, 0, 0, S_SIGN17}, // S_SIGN16
{SPR_SIGN, 6, 1, {NULL}, 0, 0, S_SIGN17}, // S_SIGN16
{SPR_SIGN, 0, 1, {NULL}, 0, 0, S_SIGN18}, // S_SIGN17
{SPR_SIGN, 1, 1, {NULL}, 0, 0, S_SIGN19}, // S_SIGN18
{SPR_SIGN, 2, 1, {NULL}, 0, 0, S_SIGN20}, // S_SIGN19
{SPR_SIGN, 6, 1, {NULL}, 0, 0, S_SIGN21}, // S_SIGN20
{SPR_SIGN, 0, 1, {NULL}, 0, 0, S_SIGN22}, // S_SIGN21
{SPR_SIGN, 1, 1, {NULL}, 0, 0, S_SIGN23}, // S_SIGN22
{SPR_SIGN, 2, 1, {NULL}, 0, 0, S_SIGN24}, // S_SIGN23
{SPR_SIGN, 3, 1, {NULL}, 0, 0, S_SIGN25}, // S_SIGN24
{SPR_SIGN, 0, 1, {NULL}, 0, 0, S_SIGN26}, // S_SIGN25
{SPR_SIGN, 1, 1, {NULL}, 0, 0, S_SIGN27}, // S_SIGN26
{SPR_SIGN, 2, 1, {NULL}, 0, 0, S_SIGN28}, // S_SIGN27
{SPR_SIGN, 5, 1, {NULL}, 0, 0, S_SIGN29}, // S_SIGN28
{SPR_SIGN, 0, 1, {NULL}, 0, 0, S_SIGN30}, // S_SIGN29
{SPR_SIGN, 1, 1, {NULL}, 0, 0, S_SIGN31}, // S_SIGN30
{SPR_SIGN, 2, 1, {NULL}, 0, 0, S_SIGN32}, // S_SIGN31
{SPR_SIGN, 3, 1, {NULL}, 0, 0, S_SIGN33}, // S_SIGN32
{SPR_SIGN, 0, 1, {NULL}, 0, 0, S_SIGN34}, // S_SIGN33
{SPR_SIGN, 1, 1, {NULL}, 0, 0, S_SIGN35}, // S_SIGN34
{SPR_SIGN, 2, 1, {NULL}, 0, 0, S_SIGN36}, // S_SIGN35
{SPR_SIGN, 4, 1, {NULL}, 0, 0, S_SIGN37}, // S_SIGN36
{SPR_SIGN, 0, 1, {NULL}, 0, 0, S_SIGN38}, // S_SIGN37
{SPR_SIGN, 1, 1, {NULL}, 0, 0, S_SIGN39}, // S_SIGN38
{SPR_SIGN, 2, 1, {NULL}, 0, 0, S_SIGN40}, // S_SIGN39
{SPR_SIGN, 3, 1, {NULL}, 0, 0, S_SIGN41}, // S_SIGN40
{SPR_SIGN, 0, 1, {NULL}, 0, 0, S_SIGN42}, // S_SIGN41
{SPR_SIGN, 1, 1, {NULL}, 0, 0, S_SIGN43}, // S_SIGN42
{SPR_SIGN, 2, 1, {NULL}, 0, 0, S_SIGN44}, // S_SIGN43
{SPR_SIGN, 6, 1, {NULL}, 0, 0, S_SIGN45}, // S_SIGN44
{SPR_SIGN, 0, 1, {NULL}, 0, 0, S_SIGN46}, // S_SIGN45
{SPR_SIGN, 1, 1, {NULL}, 0, 0, S_SIGN47}, // S_SIGN46
{SPR_SIGN, 2, 1, {NULL}, 0, 0, S_SIGN48}, // S_SIGN47
{SPR_SIGN, 3, 1, {NULL}, 0, 0, S_SIGN49}, // S_SIGN48
{SPR_SIGN, 0, 1, {NULL}, 0, 0, S_SIGN50}, // S_SIGN49
{SPR_SIGN, 1, 1, {NULL}, 0, 0, S_SIGN51}, // S_SIGN50
{SPR_SIGN, 2, 1, {NULL}, 0, 0, S_SIGN53}, // S_SIGN51
{SPR_SIGN, 3, -1, {NULL}, 0, 0, S_NULL}, // S_SIGN52 Eggman
{SPR_SIGN, 7, -1, {A_SignPlayer}, 0, 0, S_NULL}, // S_SIGN53 Blank
{SPR_SIGN, 7, 1, {NULL}, 0, 0, S_SIGN1}, // S_SIGN20
{SPR_SIGN, 8, -1, {A_SignPlayer}, 0, 0, S_NULL}, // S_SIGN_END
// Steam Riser
{SPR_STEM, 0, 2, {A_SetSolidSteam}, 0, 0, S_STEAM2}, // S_STEAM1
@ -2566,8 +2535,21 @@ state_t states[NUMSTATES] =
{SPR_RPOP, FF_FULLBRIGHT|2, 5, {NULL}, 0, 0, S_RANDOMITEMPOP4}, // S_RANDOMITEMPOP3
{SPR_RPOP, FF_FULLBRIGHT|3, 5, {NULL}, 0, 0, S_NULL}, // S_RANDOMITEMPOP4
{SPR_NULL, FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL}, // S_ITEMICON
{SPR_SGNS, FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_SIGNSPARK2}, // S_SIGNSPARK1
{SPR_SGNS, FF_FULLBRIGHT|1, 1, {NULL}, 0, 0, S_SIGNSPARK3}, // S_SIGNSPARK2
{SPR_SGNS, FF_FULLBRIGHT|2, 1, {NULL}, 0, 0, S_SIGNSPARK4}, // S_SIGNSPARK3
{SPR_SGNS, FF_FULLBRIGHT|3, 1, {NULL}, 0, 0, S_SIGNSPARK5}, // S_SIGNSPARK4
{SPR_SGNS, FF_FULLBRIGHT|4, 1, {NULL}, 0, 0, S_SIGNSPARK6}, // S_SIGNSPARK5
{SPR_SGNS, FF_FULLBRIGHT|5, 1, {NULL}, 0, 0, S_SIGNSPARK7}, // S_SIGNSPARK6
{SPR_SGNS, FF_FULLBRIGHT|6, 1, {NULL}, 0, 0, S_SIGNSPARK8}, // S_SIGNSPARK7
{SPR_SGNS, FF_FULLBRIGHT|7, 1, {NULL}, 0, 0, S_SIGNSPARK9}, // S_SIGNSPARK8
{SPR_SGNS, FF_FULLBRIGHT|8, 1, {NULL}, 0, 0, S_SIGNSPARK10}, // S_SIGNSPARK9
{SPR_SGNS, FF_FULLBRIGHT|3, 1, {NULL}, 0, 0, S_SIGNSPARK11}, // S_SIGNSPARK10
{SPR_SGNS, FF_FULLBRIGHT|2, 1, {NULL}, 0, 0, S_NULL}, // S_SIGNSPARK11
{SPR_DRIF, FF_FULLBRIGHT|2, 2, {NULL}, 0, 0, S_DRIFTSPARK_A2}, // S_DRIFTSPARK_A1
{SPR_DRIF, FF_FULLBRIGHT|FF_TRANS20|1, 1, {NULL}, 0, 0, S_DRIFTSPARK_A3}, // S_DRIFTSPARK_A2
{SPR_DRIF, FF_FULLBRIGHT|FF_TRANS50, 1, {NULL}, 0, 0, S_NULL}, // S_DRIFTSPARK_A3
@ -5811,12 +5793,12 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
{ // MT_SIGN
501, // doomednum
S_SIGN52, // spawnstate
S_INVISIBLE, // spawnstate
1000, // spawnhealth
S_PLAY_SIGN, // seestate
sfx_lvpass, // seesound
sfx_s3kb8, // seesound
8, // reactiontime
sfx_None, // attacksound
sfx_s3k7e, // attacksound
S_NULL, // painstate
0, // painchance
sfx_None, // painsound
@ -5832,7 +5814,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
16, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIP|MF_SCENERY|MF_DONTENCOREMAP, // flags
MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
@ -14444,6 +14426,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_SIGNSPARKLE
-1, // doomednum
S_SIGNSPARK1, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
8, // speed
14*FRACUNIT, // radius
14*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags
S_NULL // raisestate
},
{ // MT_FASTLINE
-1, // doomednum
S_FASTLINE1, // spawnstate

View File

@ -582,6 +582,7 @@ typedef enum sprite
SPR_RNDM, // Random Item Box
SPR_RPOP, // Random Item Box Pop
SPR_SGNS, // Signpost sparkle
SPR_FAST, // Speed boost trail
SPR_DSHR, // Speed boost dust release
SPR_BOST, // Sneaker booster flame
@ -1638,39 +1639,7 @@ typedef enum state
S_SIGN18,
S_SIGN19,
S_SIGN20,
S_SIGN21,
S_SIGN22,
S_SIGN23,
S_SIGN24,
S_SIGN25,
S_SIGN26,
S_SIGN27,
S_SIGN28,
S_SIGN29,
S_SIGN30,
S_SIGN31,
S_SIGN32,
S_SIGN33,
S_SIGN34,
S_SIGN35,
S_SIGN36,
S_SIGN37,
S_SIGN38,
S_SIGN39,
S_SIGN40,
S_SIGN41,
S_SIGN42,
S_SIGN43,
S_SIGN44,
S_SIGN45,
S_SIGN46,
S_SIGN47,
S_SIGN48,
S_SIGN49,
S_SIGN50,
S_SIGN51,
S_SIGN52, // Eggman
S_SIGN53,
S_SIGN_END,
// Steam Riser
S_STEAM1,
@ -3086,6 +3055,19 @@ typedef enum state
S_ITEMICON,
// Signpost sparkles
S_SIGNSPARK1,
S_SIGNSPARK2,
S_SIGNSPARK3,
S_SIGNSPARK4,
S_SIGNSPARK5,
S_SIGNSPARK6,
S_SIGNSPARK7,
S_SIGNSPARK8,
S_SIGNSPARK9,
S_SIGNSPARK10,
S_SIGNSPARK11,
// Drift Sparks
S_DRIFTSPARK_A1,
S_DRIFTSPARK_A2,
@ -4104,6 +4086,8 @@ typedef enum mobj_type
MT_RANDOMITEMPOP,
MT_FLOATINGITEM,
MT_SIGNSPARKLE,
MT_FASTLINE,
MT_FASTDUST,
MT_BOOSTFLAME,

View File

@ -124,17 +124,17 @@ const UINT8 KartColor_Opposite[MAXSKINCOLORS*2] =
SKINCOLOR_TEA,8, // 10 // SKINCOLOR_SALMON
SKINCOLOR_PISTACHIO,8, // 11 // SKINCOLOR_PINK
SKINCOLOR_MOSS,8, // 12 // SKINCOLOR_ROSE
SKINCOLOR_MINT,10, // 13 // SKINCOLOR_RASPBERRY
SKINCOLOR_GREEN,8, // 14 // SKINCOLOR_RED
SKINCOLOR_MINT,8, // 13 // SKINCOLOR_RASPBERRY
SKINCOLOR_GREEN,6, // 14 // SKINCOLOR_RED
SKINCOLOR_SAPPHIRE,8, // 15 // SKINCOLOR_RUBY
SKINCOLOR_PINETREE,6, // 16 // SKINCOLOR_CRIMSON
SKINCOLOR_MUSTARD,6, // 17 // SKINCOLOR_KETCHUP
SKINCOLOR_MUSTARD,10, // 17 // SKINCOLOR_KETCHUP
SKINCOLOR_DUSK,8, // 18 // SKINCOLOR_DAWN
SKINCOLOR_PERIWINKLE,8, // 19 // SKINCOLOR_CREAMSICLE
SKINCOLOR_BLUE,8, // 20 // SKINCOLOR_ORANGE
SKINCOLOR_BLUEBERRY,8, // 21 // SKINCOLOR_PUMPKIN
SKINCOLOR_NAVY,8, // 22 // SKINCOLOR_ROSEWOOD
SKINCOLOR_JET,6, // 23 // SKINCOLOR_BURGUNDY
SKINCOLOR_NAVY,6, // 22 // SKINCOLOR_ROSEWOOD
SKINCOLOR_JET,8, // 23 // SKINCOLOR_BURGUNDY
SKINCOLOR_LIME,8, // 24 // SKINCOLOR_TANGERINE
SKINCOLOR_CYAN,8, // 25 // SKINCOLOR_PEACH
SKINCOLOR_CERULEAN,8, // 26 // SKINCOLOR_CARAMEL
@ -144,36 +144,36 @@ const UINT8 KartColor_Opposite[MAXSKINCOLORS*2] =
SKINCOLOR_KETCHUP,8, // 30 // SKINCOLOR_MUSTARD
SKINCOLOR_TEAL,8, // 31 // SKINCOLOR_OLIVE
SKINCOLOR_ROBOHOOD,8, // 32 // SKINCOLOR_VOMIT
SKINCOLOR_LAVENDER,8, // 33 // SKINCOLOR_GARDEN
SKINCOLOR_LAVENDER,6, // 33 // SKINCOLOR_GARDEN
SKINCOLOR_TANGERINE,8, // 34 // SKINCOLOR_LIME
SKINCOLOR_POMEGRANATE,8, // 35 // SKINCOLOR_DREAM
SKINCOLOR_SALMON,8, // 36 // SKINCOLOR_TEA
SKINCOLOR_PINK,8, // 37 // SKINCOLOR_PISTACHIO
SKINCOLOR_PINK,6, // 37 // SKINCOLOR_PISTACHIO
SKINCOLOR_VOMIT,8, // 38 // SKINCOLOR_ROBOHOOD
SKINCOLOR_ROSE,8, // 39 // SKINCOLOR_MOSS
SKINCOLOR_RASPBERRY,6, // 40 // SKINCOLOR_MINT
SKINCOLOR_RASPBERRY,8, // 40 // SKINCOLOR_MINT
SKINCOLOR_RED,8, // 41 // SKINCOLOR_GREEN
SKINCOLOR_CRIMSON,8, // 42 // SKINCOLOR_PINETREE
SKINCOLOR_PURPLE,8, // 43 // SKINCOLOR_EMERALD
SKINCOLOR_BYZANTIUM,6, // 44 // SKINCOLOR_SWAMP
SKINCOLOR_BYZANTIUM,8, // 44 // SKINCOLOR_SWAMP
SKINCOLOR_YELLOW,8, // 45 // SKINCOLOR_AQUA
SKINCOLOR_OLIVE,8, // 46 // SKINCOLOR_TEAL
SKINCOLOR_PEACH,8, // 47 // SKINCOLOR_CYAN
SKINCOLOR_LILAC,6, // 48 // SKINCOLOR_JAWZ
SKINCOLOR_LILAC,10, // 48 // SKINCOLOR_JAWZ
SKINCOLOR_CARAMEL,8, // 49 // SKINCOLOR_CERULEAN
SKINCOLOR_ROSEWOOD,8, // 50 // SKINCOLOR_NAVY
SKINCOLOR_GOLD,8, // 51 // SKINCOLOR_SLATE
SKINCOLOR_BRONZE,8, // 52 // SKINCOLOR_STEEL
SKINCOLOR_BURGUNDY,6, // 53 // SKINCOLOR_JET
SKINCOLOR_GOLD,10, // 51 // SKINCOLOR_SLATE
SKINCOLOR_BRONZE,10, // 52 // SKINCOLOR_STEEL
SKINCOLOR_BURGUNDY,8, // 53 // SKINCOLOR_JET
SKINCOLOR_CREAMSICLE,8, // 54 // SKINCOLOR_PERIWINKLE
SKINCOLOR_ORANGE,8, // 55 // SKINCOLOR_BLUE
SKINCOLOR_RUBY,8, // 56 // SKINCOLOR_SAPPHIRE
SKINCOLOR_RUBY,6, // 56 // SKINCOLOR_SAPPHIRE
SKINCOLOR_PUMPKIN,8, // 57 // SKINCOLOR_BLUEBERRY
SKINCOLOR_DAWN,8, // 58 // SKINCOLOR_DUSK
SKINCOLOR_DAWN,6, // 58 // SKINCOLOR_DUSK
SKINCOLOR_EMERALD,8, // 59 // SKINCOLOR_PURPLE
SKINCOLOR_GARDEN,8, // 60 // SKINCOLOR_LAVENDER
SKINCOLOR_GARDEN,6, // 60 // SKINCOLOR_LAVENDER
SKINCOLOR_SWAMP,8, // 61 // SKINCOLOR_BYZANTIUM
SKINCOLOR_DREAM,6, // 62 // SKINCOLOR_POMEGRANATE
SKINCOLOR_DREAM,8, // 62 // SKINCOLOR_POMEGRANATE
SKINCOLOR_JAWZ,6 // 63 // SKINCOLOR_LILAC
};
@ -1466,32 +1466,36 @@ static void K_RegularVoiceTimers(player_t *player)
player->kartstuff[k_tauntvoices] = 4*TICRATE;
}
static void K_PlayTauntSound(mobj_t *source)
static void K_PlayAttackTaunt(mobj_t *source)
{
#if 1
sfxenum_t pick = P_RandomKey(4); // Gotta roll the RNG every time this is called for sync reasons
sfxenum_t pick = P_RandomKey(2); // Gotta roll the RNG every time this is called for sync reasons
boolean tasteful = (!source->player || !source->player->kartstuff[k_tauntvoices]);
if (cv_kartvoices.value && (tasteful || cv_kartvoices.value == 2))
S_StartSound(source, sfx_taunt1+pick);
S_StartSound(source, sfx_kattk1+pick);
if (!tasteful)
return;
K_TauntVoiceTimers(source->player);
#else
if (source->player && source->player->kartstuff[k_tauntvoices]) // Prevents taunt sounds from playing every time the button is pressed
}
static void K_PlayBoostTaunt(mobj_t *source)
{
sfxenum_t pick = P_RandomKey(2); // Gotta roll the RNG every time this is called for sync reasons
boolean tasteful = (!source->player || !source->player->kartstuff[k_tauntvoices]);
if (cv_kartvoices.value && (tasteful || cv_kartvoices.value == 2))
S_StartSound(source, sfx_kbost1+pick);
if (!tasteful)
return;
S_StartSound(source, sfx_taunt1+P_RandomKey(4));
K_TauntVoiceTimers(source->player);
#endif
}
static void K_PlayOvertakeSound(mobj_t *source)
{
#if 1
boolean tasteful = (!source->player || !source->player->kartstuff[k_voices]);
if (!G_RaceGametype()) // Only in race
@ -1502,33 +1506,28 @@ static void K_PlayOvertakeSound(mobj_t *source)
return;
if (cv_kartvoices.value && (tasteful || cv_kartvoices.value == 2))
S_StartSound(source, sfx_slow);
S_StartSound(source, sfx_kslow);
if (!tasteful)
return;
K_RegularVoiceTimers(source->player);
#else
if (source->player && source->player->kartstuff[k_voices]) // Prevents taunt sounds from playing every time the button is pressed
return;
if (!G_RaceGametype()) // Only in race
return;
// 4 seconds from before race begins, 10 seconds afterwards
if (leveltime < starttime+(10*TICRATE))
return;
S_StartSound(source, sfx_slow);
K_RegularVoiceTimers(source->player);
#endif
}
static void K_PlayHitEmSound(mobj_t *source)
{
if (cv_kartvoices.value)
S_StartSound(source, sfx_hitem);
S_StartSound(source, sfx_khitem);
else
S_StartSound(source, sfx_s1c9); // The only lost gameplay functionality with voices disabled
K_RegularVoiceTimers(source->player);
}
static void K_PlayPowerGloatSound(mobj_t *source)
{
if (cv_kartvoices.value)
S_StartSound(source, sfx_kgloat);
K_RegularVoiceTimers(source->player);
}
@ -2945,7 +2944,7 @@ void K_DoSneaker(player_t *player, boolean doPFlag)
if (doPFlag)
{
player->pflags |= PF_ATTACKDOWN;
K_PlayTauntSound(player->mo);
K_PlayBoostTaunt(player->mo);
}
K_GetKartBoostPower(player);
@ -2969,8 +2968,6 @@ static void K_DoShrink(player_t *player)
&& players[i].kartstuff[k_position] < player->kartstuff[k_position])
P_DamageMobj(players[i].mo, player->mo, player->mo, 64);
}
K_PlayTauntSound(player->mo);
}
static void K_DoSPB(player_t *victim, player_t *source)
@ -4409,7 +4406,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
else if (ATTACK_IS_DOWN && player->kartstuff[k_eggmanheld])
{
K_ThrowKartItem(player, false, MT_FAKEITEM, -1, 0);
K_PlayTauntSound(player->mo);
K_PlayAttackTaunt(player->mo);
player->kartstuff[k_eggmanheld] = 0;
K_UpdateHnextList(player, true);
}
@ -4418,6 +4415,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
&& player->kartstuff[k_rocketsneakertimer] > 1)
{
K_DoSneaker(player, true);
K_PlayBoostTaunt(player->mo);
player->kartstuff[k_rocketsneakertimer] -= 5;
if (player->kartstuff[k_rocketsneakertimer] < 1)
player->kartstuff[k_rocketsneakertimer] = 1;
@ -4434,6 +4432,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
if (ATTACK_IS_DOWN && !HOLDING_ITEM && onground && NO_HYUDORO)
{
K_DoSneaker(player, true);
K_PlayBoostTaunt(player->mo);
player->kartstuff[k_itemamount]--;
}
break;
@ -4442,6 +4441,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
&& player->kartstuff[k_rocketsneakertimer] == 0)
{
K_DoSneaker(player, true);
K_PlayBoostTaunt(player->mo);
player->kartstuff[k_rocketsneakertimer] = itemtime;
player->kartstuff[k_itemamount]--;
}
@ -4460,7 +4460,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
P_RestoreMusic(player);
if (!cv_kartinvinsfx.value && !P_IsLocalPlayer(player))
S_StartSound(player->mo, sfx_kinvnc);
K_PlayTauntSound(player->mo);
K_PlayPowerGloatSound(player->mo);
player->kartstuff[k_itemamount]--;
}
break;
@ -4471,7 +4471,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
mobj_t *mo;
mobj_t *prev = player->mo;
//K_PlayTauntSound(player->mo);
//K_PlayAttackTaunt(player->mo);
player->kartstuff[k_itemheld] = 1;
S_StartSound(player->mo, sfx_s254);
@ -4496,7 +4496,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
else if (ATTACK_IS_DOWN && player->kartstuff[k_itemheld]) // Banana x3 thrown
{
K_ThrowKartItem(player, false, MT_BANANA, -1, 0);
K_PlayTauntSound(player->mo);
K_PlayAttackTaunt(player->mo);
player->kartstuff[k_itemamount]--;
K_UpdateHnextList(player, false);
}
@ -4528,7 +4528,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
mobj_t *mo = NULL;
mobj_t *prev = player->mo;
//K_PlayTauntSound(player->mo);
//K_PlayAttackTaunt(player->mo);
player->kartstuff[k_itemheld] = 1;
S_StartSound(player->mo, sfx_s3k3a);
@ -4556,7 +4556,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
else if (ATTACK_IS_DOWN && player->kartstuff[k_itemheld]) // Orbinaut x3 thrown
{
K_ThrowKartItem(player, true, MT_ORBINAUT, 1, 0);
K_PlayTauntSound(player->mo);
K_PlayAttackTaunt(player->mo);
player->kartstuff[k_itemamount]--;
K_UpdateHnextList(player, false);
}
@ -4569,7 +4569,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
mobj_t *mo = NULL;
mobj_t *prev = player->mo;
//K_PlayTauntSound(player->mo);
//K_PlayAttackTaunt(player->mo);
player->kartstuff[k_itemheld] = 1;
S_StartSound(player->mo, sfx_s3k3a);
@ -4599,7 +4599,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
K_ThrowKartItem(player, true, MT_JAWZ, 1, 0);
else if (player->kartstuff[k_throwdir] == -1) // Throwing backward gives you a dud that doesn't home in
K_ThrowKartItem(player, true, MT_JAWZ_DUD, -1, 0);
K_PlayTauntSound(player->mo);
K_PlayAttackTaunt(player->mo);
player->kartstuff[k_itemamount]--;
K_UpdateHnextList(player, false);
}
@ -4624,7 +4624,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
else if (ATTACK_IS_DOWN && player->kartstuff[k_itemheld])
{
K_ThrowKartItem(player, false, MT_SSMINE, 1, 1);
K_PlayTauntSound(player->mo);
K_PlayAttackTaunt(player->mo);
player->kartstuff[k_itemamount]--;
player->kartstuff[k_itemheld] = 0;
K_UpdateHnextList(player, true);
@ -4636,7 +4636,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
player->kartstuff[k_itemamount]--;
K_ThrowKartItem(player, true, MT_BALLHOG, 1, 0);
S_StartSound(player->mo, sfx_mario7);
K_PlayTauntSound(player->mo);
K_PlayAttackTaunt(player->mo);
}
break;
case KITEM_SPB:
@ -4674,14 +4674,14 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
player->kartstuff[k_itemamount]--;
K_PlayTauntSound(player->mo);
K_PlayAttackTaunt(player->mo);
}
break;
case KITEM_GROW:
if (ATTACK_IS_DOWN && !HOLDING_ITEM && NO_HYUDORO
&& player->kartstuff[k_growshrinktimer] <= 0) // Grow holds the item box hostage
{
K_PlayTauntSound(player->mo);
K_PlayPowerGloatSound(player->mo);
player->mo->scalespeed = FRACUNIT/TICRATE;
player->mo->destscale = 3*(mapheaderinfo[gamemap-1]->mobj_scale)/2;
if (cv_kartdebugshrink.value && !player->bot)
@ -4699,6 +4699,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
{
K_DoShrink(player);
player->kartstuff[k_itemamount]--;
K_PlayPowerGloatSound(player->mo);
}
break;
case KITEM_THUNDERSHIELD:
@ -4713,6 +4714,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
{
K_DoThunderShield(player);
player->kartstuff[k_itemamount]--;
K_PlayAttackTaunt(player->mo);
}
break;
case KITEM_HYUDORO:
@ -4726,7 +4728,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
if (ATTACK_IS_DOWN && !HOLDING_ITEM && onground && NO_HYUDORO
&& !player->kartstuff[k_pogospring])
{
K_PlayTauntSound(player->mo);
K_PlayBoostTaunt(player->mo);
K_DoPogoSpring(player->mo, 32<<FRACBITS, false);
player->kartstuff[k_pogospring] = 1;
player->kartstuff[k_itemamount]--;
@ -4752,7 +4754,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
else if (ATTACK_IS_DOWN && HOLDING_ITEM && player->kartstuff[k_itemheld]) // Sink thrown
{
K_ThrowKartItem(player, false, MT_SINK, 1, 2);
K_PlayTauntSound(player->mo);
K_PlayAttackTaunt(player->mo);
player->kartstuff[k_itemamount]--;
player->kartstuff[k_itemheld] = 0;
K_UpdateHnextList(player, true);

View File

@ -715,7 +715,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
if (!playeringame[i] || players[i].spectator)
continue;
players[i].exiting = (14*TICRATE)/5 + 1;
players[i].exiting = raceexittime+1;
}
S_StartSound(NULL, sfx_lvpass);
}

View File

@ -1409,6 +1409,9 @@ fixed_t P_GetMobjGravity(mobj_t *mo)
case MT_SINK:
gravityadd = FixedMul(gravityadd, 5*FRACUNIT); // Double gravity
break;
case MT_SIGN:
gravityadd /= 8;
break;
default:
break;
}
@ -8415,6 +8418,35 @@ void P_MobjThinker(mobj_t *mobj)
}
}
break;
case MT_SIGN: // Kart's unique sign behavior
if (mobj->movecount)
{
if (mobj->z <= mobj->movefactor)
{
P_SetMobjState(mobj, S_SIGN_END);
if (mobj->info->attacksound)
S_StartSound(mobj, mobj->info->attacksound);
mobj->flags |= MF_NOGRAVITY; // ?
mobj->flags &= ~MF_NOCLIPHEIGHT;
mobj->z = mobj->movefactor;
mobj->movecount = 0;
}
else
{
P_SpawnMobj(mobj->x + (P_RandomRange(-48,48)<<FRACBITS),
mobj->y + (P_RandomRange(-48,48)<<FRACBITS),
mobj->z + (24<<FRACBITS) + (P_RandomRange(-8,8)<<FRACBITS),
MT_SIGNSPARKLE);
mobj->flags &= ~MF_NOGRAVITY;
if (abs(mobj->z - mobj->movefactor) <= 512<<FRACBITS && !mobj->cvmem)
{
if (mobj->info->seesound)
S_StartSound(mobj, mobj->info->seesound);
mobj->cvmem = 1;
}
}
}
break;
//}
case MT_TURRET:
P_MobjCheckWater(mobj);

View File

@ -3215,6 +3215,9 @@ void P_SetupSignExit(player_t *player)
thinker_t *think;
INT32 numfound = 0;
if (player->kartstuff[k_position] != 1)
return;
for (; node; node = node->m_thinglist_next)
{
thing = node->m_thing;
@ -3226,8 +3229,11 @@ void P_SetupSignExit(player_t *player)
P_SetTarget(&thing->target, player->mo);
P_SetMobjState(thing, S_SIGN1);
if (thing->info->seesound)
S_StartSound(thing, thing->info->seesound);
// SRB2Kart: Set sign spinning variables
thing->movefactor = thing->z;
thing->z += (768<<FRACBITS) * P_MobjFlip(thing);
thing->movecount = 1;
++numfound;
}
@ -3251,11 +3257,28 @@ void P_SetupSignExit(player_t *player)
P_SetTarget(&thing->target, player->mo);
P_SetMobjState(thing, S_SIGN1);
if (thing->info->seesound)
S_StartSound(thing, thing->info->seesound);
// SRB2Kart: Set sign spinning variables
thing->movefactor = thing->z;
thing->z += (768<<FRACBITS) * P_MobjFlip(thing);
thing->movecount = 1;
++numfound;
}
if (numfound)
return;
// SRB2Kart: FINALLY, add in an alternative if no place is found
if (player->mo)
{
mobj_t *sign = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z + (768<<FRACBITS), MT_SIGN);
P_SetTarget(&sign->target, player->mo);
P_SetMobjState(sign, S_SIGN1);
sign->movefactor = player->mo->floorz;
sign->movecount = 1;
}
}
//
@ -3859,6 +3882,13 @@ DoneSection2:
player->kartstuff[k_dashpadcooldown] = TICRATE/3;
S_StartSound(player->mo, sfx_spdpad);
{
sfxenum_t pick = P_RandomKey(2); // Gotta roll the RNG every time this is called for sync reasons
if (cv_kartvoices.value)
S_StartSound(player->mo, sfx_kbost1+pick);
//K_TauntVoiceTimers(player);
}
}
break;
@ -4237,12 +4267,13 @@ DoneSection2:
if (player->laps >= (unsigned)cv_numlaps.value)
{
if (!splitscreen && P_IsLocalPlayer(player))
if (P_IsLocalPlayer(player))
S_StartSound(NULL, sfx_s3k6a);
else if (player->kartstuff[k_position] == 1)
S_StartSound(NULL, sfx_s253);
P_DoPlayerExit(player);
P_SetupSignExit(player);
}
}
break;

View File

@ -448,7 +448,7 @@ static inline void P_DoSpecialStageStuff(void)
{
if (playeringame[i])
{
players[i].exiting = (14*TICRATE)/5 + 1;
players[i].exiting = raceexittime+1;
players[i].pflags &= ~PF_GLIDING;
}
@ -485,7 +485,7 @@ static inline void P_DoSpecialStageStuff(void)
if (playeringame[i])
{
players[i].mo->momx = players[i].mo->momy = 0;
players[i].exiting = (14*TICRATE)/5 + 1;
players[i].exiting = raceexittime+1;
}
sstimer = 0;

View File

@ -673,7 +673,7 @@ static void P_DeNightserizePlayer(player_t *player)
for (i = 0; i < MAXPLAYERS; i++)
if (playeringame[i] && players[i].pflags & PF_NIGHTSMODE)
players[i].nightstime = 1; // force everyone else to fall too.
player->exiting = 3*TICRATE;
player->exiting = raceexittime+2;
stagefailed = true; // NIGHT OVER
}
@ -1120,27 +1120,22 @@ void P_PlayLivesJingle(player_t *player)
void P_PlayRinglossSound(mobj_t *source)
{
sfxenum_t key = P_RandomKey(4);
sfxenum_t key = P_RandomKey(2);
if (cv_kartvoices.value)
S_StartSound(source, (mariomode) ? sfx_mario8 : sfx_altow1 + key);
S_StartSound(source, (mariomode) ? sfx_mario8 : sfx_khurt1 + key);
else
S_StartSound(source, sfx_slip);
}
void P_PlayDeathSound(mobj_t *source)
{
sfxenum_t key = P_RandomKey(4);
if (cv_kartvoices.value)
S_StartSound(source, sfx_altdi1 + key);
else
S_StartSound(source, sfx_s3k35);
S_StartSound(source, sfx_s3k35);
}
void P_PlayVictorySound(mobj_t *source)
{
sfxenum_t key = P_RandomKey(4);
if (cv_kartvoices.value)
S_StartSound(source, sfx_victr1 + key);
S_StartSound(source, sfx_kwin);
}
//
@ -1738,13 +1733,25 @@ void P_DoPlayerExit(player_t *player)
if (cv_kartvoices.value)
{
if (K_IsPlayerLosing(player))
S_StartSound(player->mo, sfx_klose);
if (P_IsLocalPlayer(player))
{
sfxenum_t sfx_id;
if (K_IsPlayerLosing(player))
sfx_id = ((skin_t *)player->mo->skin)->soundsid[S_sfx[sfx_klose].skinsound];
else
sfx_id = ((skin_t *)player->mo->skin)->soundsid[S_sfx[sfx_kwin].skinsound];
S_StartSound(NULL, sfx_id);
}
else
S_StartSound(player->mo, sfx_kwin);
{
if (K_IsPlayerLosing(player))
S_StartSound(player->mo, sfx_klose);
else
S_StartSound(player->mo, sfx_kwin);
}
}
player->exiting = 3*TICRATE;
player->exiting = raceexittime+2;
if (cv_inttime.value > 0)
P_EndingMusic(player);
@ -1754,15 +1761,15 @@ void P_DoPlayerExit(player_t *player)
//countdown2 = countdown + 8*TICRATE;
if (P_CheckRacers())
player->exiting = (14*TICRATE)/5 + 1;
player->exiting = raceexittime+1;
}
else if (G_BattleGametype()) // Battle Mode exiting
{
player->exiting = 8*TICRATE + 1;
player->exiting = battleexittime+1;
P_EndingMusic(player);
}
else
player->exiting = (14*TICRATE)/5 + 2; // Accidental death safeguard???
player->exiting = raceexittime+2; // Accidental death safeguard???
//player->pflags &= ~PF_GLIDING;
/* // SRB2kart - don't need
@ -6572,7 +6579,7 @@ static void P_MovePlayer(player_t *player)
S_StartSound(NULL, sfx_s3k6a);
for (i = 0; i < MAXPLAYERS; i++)
if (playeringame[i])
players[i].exiting = (14*TICRATE)/5 + 1;
players[i].exiting = raceexittime+1;
}
else if (player->health > 1)
P_DamageMobj(player->mo, NULL, NULL, 1);
@ -9040,8 +9047,8 @@ void P_PlayerThink(player_t *player)
}
}
if (i == MAXPLAYERS && player->exiting == 3*TICRATE) // finished
player->exiting = (14*TICRATE)/5 + 1;
if (i == MAXPLAYERS && player->exiting == raceexittime+2) // finished
player->exiting = raceexittime+1;
// If 10 seconds are left on the timer,
// begin the drown music for countdown!
@ -9066,7 +9073,7 @@ void P_PlayerThink(player_t *player)
// If it is set, start subtracting
// Don't allow it to go back to 0
if (player->exiting > 1 && (player->exiting < 3*TICRATE || !G_RaceGametype())) // SRB2kart - "&& player->exiting > 1"
if (player->exiting > 1 && (player->exiting < raceexittime+2 || !G_RaceGametype())) // SRB2kart - "&& player->exiting > 1"
player->exiting--;
if (player->exiting && countdown2)

View File

@ -821,14 +821,17 @@ sfxinfo_t S_sfx[NUMSFX] =
{"dbgsal", false, 110, 8, -1, NULL, 0, -1, -1, LUMPERROR},
// SRB2kart - Skin sounds
{"kwin", false, 64, 0, -1, NULL, 0, SKSWIN, -1, LUMPERROR},
{"klose", false, 64, 0, -1, NULL, 0, SKSLOSE, -1, LUMPERROR},
{"slow", false, 128, 32, -1, NULL, 0, SKSSLOW, -1, LUMPERROR},
{"taunt1", false, 64, 96, -1, NULL, 0, SKSPLTNT1, -1, LUMPERROR},
{"taunt2", false, 64, 96, -1, NULL, 0, SKSPLTNT2, -1, LUMPERROR},
{"taunt3", false, 64, 96, -1, NULL, 0, SKSPLTNT3, -1, LUMPERROR},
{"taunt4", false, 64, 96, -1, NULL, 0, SKSPLTNT4, -1, LUMPERROR},
{"hitem", false, 64, 32, -1, NULL, 0, SKSHITEM, -1, LUMPERROR},
{"kwin", false, 64, 96, -1, NULL, 0, SKSKWIN, -1, LUMPERROR},
{"klose", false, 64, 96, -1, NULL, 0, SKSKLOSE, -1, LUMPERROR},
{"khurt1", false, 64, 96, -1, NULL, 0, SKSKPAN1, -1, LUMPERROR},
{"khurt2", false, 64, 96, -1, NULL, 0, SKSKPAN2, -1, LUMPERROR},
{"kattk1", false, 64, 96, -1, NULL, 0, SKSKATK1, -1, LUMPERROR},
{"kattk2", false, 64, 96, -1, NULL, 0, SKSKATK2, -1, LUMPERROR},
{"kbost1", false, 64, 96, -1, NULL, 0, SKSKBST1, -1, LUMPERROR},
{"kbost2", false, 64, 96, -1, NULL, 0, SKSKBST2, -1, LUMPERROR},
{"kslow", false, 128, 32, -1, NULL, 0, SKSKSLOW, -1, LUMPERROR},
{"khitem", false, 64, 32, -1, NULL, 0, SKSKHITM, -1, LUMPERROR},
{"kgloat", false, 64, 48, -1, NULL, 0, SKSKPOWR, -1, LUMPERROR},
// skin sounds free slots to add sounds at run time (Boris HACK!!!)
// initialized to NULL

View File

@ -39,14 +39,17 @@ typedef enum
SKSGASP,
SKSJUMP,
// SRB2kart
SKSWIN,
SKSLOSE,
SKSSLOW,
SKSPLTNT1,
SKSPLTNT2,
SKSPLTNT3,
SKSPLTNT4,
SKSHITEM,
SKSKWIN, // Win quote
SKSKLOSE, // Lose quote
SKSKPAN1, // Pain
SKSKPAN2,
SKSKATK1, // Offense item taunt
SKSKATK2,
SKSKBST1, // Boost item taunt
SKSKBST2,
SKSKSLOW, // Overtake taunt
SKSKHITM, // Hit confirm taunt
SKSKPOWR, // Power item taunt
NUMSKINSOUNDS
} skinsound_t;
@ -894,12 +897,15 @@ typedef enum
sfx_kwin,
sfx_klose,
sfx_slow,
sfx_taunt1,
sfx_taunt2,
sfx_taunt3,
sfx_taunt4,
sfx_hitem,
sfx_khurt1,
sfx_khurt2,
sfx_kattk1,
sfx_kattk2,
sfx_kbost1,
sfx_kbost2,
sfx_kslow,
sfx_khitem,
sfx_kgloat,
// free slots for S_AddSoundFx() at run-time --------------------
sfx_freeslot0,