Add new item sprites

This commit is contained in:
Sally Cochenour 2020-03-30 06:57:42 -04:00
parent 896f752d94
commit 266ad99374
6 changed files with 169 additions and 110 deletions

View file

@ -6305,18 +6305,6 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_RANDOMITEM10", "S_RANDOMITEM10",
"S_RANDOMITEM11", "S_RANDOMITEM11",
"S_RANDOMITEM12", "S_RANDOMITEM12",
"S_RANDOMITEM13",
"S_RANDOMITEM14",
"S_RANDOMITEM15",
"S_RANDOMITEM16",
"S_RANDOMITEM17",
"S_RANDOMITEM18",
"S_RANDOMITEM19",
"S_RANDOMITEM20",
"S_RANDOMITEM21",
"S_RANDOMITEM22",
"S_RANDOMITEM23",
"S_RANDOMITEM24",
"S_DEADRANDOMITEM", "S_DEADRANDOMITEM",
// Random Item Pop // Random Item Pop
@ -6456,18 +6444,6 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_EGGMANITEM10", "S_EGGMANITEM10",
"S_EGGMANITEM11", "S_EGGMANITEM11",
"S_EGGMANITEM12", "S_EGGMANITEM12",
"S_EGGMANITEM13",
"S_EGGMANITEM14",
"S_EGGMANITEM15",
"S_EGGMANITEM16",
"S_EGGMANITEM17",
"S_EGGMANITEM18",
"S_EGGMANITEM19",
"S_EGGMANITEM20",
"S_EGGMANITEM21",
"S_EGGMANITEM22",
"S_EGGMANITEM23",
"S_EGGMANITEM24",
"S_EGGMANITEM_DEAD", "S_EGGMANITEM_DEAD",
//} //}
@ -6931,8 +6907,32 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_PLAYERBOMB18", "S_PLAYERBOMB18",
"S_PLAYERBOMB19", "S_PLAYERBOMB19",
"S_PLAYERBOMB20", "S_PLAYERBOMB20",
"S_PLAYERITEM", // Player item overlay
"S_PLAYERFAKE", // Player fake overlay "S_PLAYERITEM1", // Player item overlay
"S_PLAYERITEM2",
"S_PLAYERITEM3",
"S_PLAYERITEM4",
"S_PLAYERITEM5",
"S_PLAYERITEM6",
"S_PLAYERITEM7",
"S_PLAYERITEM8",
"S_PLAYERITEM9",
"S_PLAYERITEM10",
"S_PLAYERITEM11",
"S_PLAYERITEM12",
"S_PLAYERFAKE1", // Player fake overlay
"S_PLAYERFAKE2",
"S_PLAYERFAKE3",
"S_PLAYERFAKE4",
"S_PLAYERFAKE5",
"S_PLAYERFAKE6",
"S_PLAYERFAKE7",
"S_PLAYERFAKE8",
"S_PLAYERFAKE9",
"S_PLAYERFAKE10",
"S_PLAYERFAKE11",
"S_PLAYERFAKE12",
"S_KARMAWHEEL", // Karma player wheels "S_KARMAWHEEL", // Karma player wheels

View file

@ -2534,38 +2534,25 @@ state_t states[NUMSTATES] =
{SPR_SRBO, 0, 2, {A_BuzzFly}, 0, 0, S_SRB1_GENREX2}, // S_SRB1_GENREX2 {SPR_SRBO, 0, 2, {A_BuzzFly}, 0, 0, S_SRB1_GENREX2}, // S_SRB1_GENREX2
// SRB2kart // SRB2kart
{SPR_RNDM, 0|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM2}, // S_RANDOMITEM1 {SPR_RNDM, FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_RANDOMITEM2}, // S_RANDOMITEM1
{SPR_RNDM, 1|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM3}, // S_RANDOMITEM2 {SPR_RNDM, 2|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_RANDOMITEM3}, // S_RANDOMITEM2
{SPR_RNDM, 2|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM4}, // S_RANDOMITEM3 {SPR_RNDM, 4|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_RANDOMITEM4}, // S_RANDOMITEM3
{SPR_RNDM, 3|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM5}, // S_RANDOMITEM4 {SPR_RNDM, 6|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_RANDOMITEM5}, // S_RANDOMITEM4
{SPR_RNDM, 4|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM6}, // S_RANDOMITEM5 {SPR_RNDM, 8|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_RANDOMITEM6}, // S_RANDOMITEM5
{SPR_RNDM, 5|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM7}, // S_RANDOMITEM6 {SPR_RNDM, 10|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_RANDOMITEM7}, // S_RANDOMITEM6
{SPR_RNDM, 6|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM8}, // S_RANDOMITEM7 {SPR_RNDM, 12|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_RANDOMITEM8}, // S_RANDOMITEM7
{SPR_RNDM, 7|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM9}, // S_RANDOMITEM8 {SPR_RNDM, 14|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_RANDOMITEM9}, // S_RANDOMITEM8
{SPR_RNDM, 8|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM10}, // S_RANDOMITEM9 {SPR_RNDM, 16|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_RANDOMITEM10}, // S_RANDOMITEM9
{SPR_RNDM, 9|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM11}, // S_RANDOMITEM10 {SPR_RNDM, 18|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_RANDOMITEM11}, // S_RANDOMITEM10
{SPR_RNDM, 10|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM12}, // S_RANDOMITEM11 {SPR_RNDM, 20|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_RANDOMITEM12}, // S_RANDOMITEM11
{SPR_RNDM, 11|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM13}, // S_RANDOMITEM12 {SPR_RNDM, 22|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_RANDOMITEM1}, // S_RANDOMITEM12
{SPR_RNDM, 12|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM14}, // S_RANDOMITEM13 {SPR_NULL, 0, 0, {A_ItemPop}, 0, 0, S_NULL}, // S_DEADRANDOMITEM
{SPR_RNDM, 13|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM15}, // S_RANDOMITEM14
{SPR_RNDM, 14|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM16}, // S_RANDOMITEM15
{SPR_RNDM, 15|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM17}, // S_RANDOMITEM16
{SPR_RNDM, 16|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM18}, // S_RANDOMITEM17
{SPR_RNDM, 17|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM19}, // S_RANDOMITEM18
{SPR_RNDM, 18|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM20}, // S_RANDOMITEM19
{SPR_RNDM, 19|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM21}, // S_RANDOMITEM20
{SPR_RNDM, 20|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM22}, // S_RANDOMITEM21
{SPR_RNDM, 21|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM23}, // S_RANDOMITEM22
{SPR_RNDM, 22|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM24}, // S_RANDOMITEM23
{SPR_RNDM, 23|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_RANDOMITEM1}, // S_RANDOMITEM24
{SPR_RNDM, 0|FF_FULLBRIGHT, 1, {A_ItemPop}, 0, 0, S_NULL}, // S_DEADRANDOMITEM
{SPR_RPOP, FF_FULLBRIGHT, 5, {NULL}, 0, 0, S_RANDOMITEMPOP2}, // S_RANDOMITEMPOP1 {SPR_RPOP, FF_FULLBRIGHT, 5, {NULL}, 0, 0, S_RANDOMITEMPOP2}, // S_RANDOMITEMPOP1
{SPR_RPOP, FF_FULLBRIGHT|1, 5, {NULL}, 0, 0, S_RANDOMITEMPOP3}, // S_RANDOMITEMPOP2 {SPR_RPOP, FF_FULLBRIGHT|1, 5, {NULL}, 0, 0, S_RANDOMITEMPOP3}, // S_RANDOMITEMPOP2
{SPR_RPOP, FF_FULLBRIGHT|2, 5, {NULL}, 0, 0, S_RANDOMITEMPOP4}, // S_RANDOMITEMPOP3 {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_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_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, {NULL}, 0, 0, S_SIGNSPARK2}, // S_SIGNSPARK1
@ -2672,31 +2659,19 @@ state_t states[NUMSTATES] =
{SPR_RSHE, 2, -1, {NULL}, 0, 0, S_NULL}, // S_ROCKETSNEAKER_LVIBRATE {SPR_RSHE, 2, -1, {NULL}, 0, 0, S_NULL}, // S_ROCKETSNEAKER_LVIBRATE
{SPR_RSHE, 3, -1, {NULL}, 0, 0, S_NULL}, // S_ROCKETSNEAKER_RVIBRATE {SPR_RSHE, 3, -1, {NULL}, 0, 0, S_NULL}, // S_ROCKETSNEAKER_RVIBRATE
{SPR_FITM, FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM2}, // S_EGGMANITEM1 {SPR_FITM, FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_EGGMANITEM2}, // S_EGGMANITEM1
{SPR_FITM, 1|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM3}, // S_EGGMANITEM2 {SPR_FITM, 2|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_EGGMANITEM3}, // S_EGGMANITEM2
{SPR_FITM, 2|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM4}, // S_EGGMANITEM3 {SPR_FITM, 4|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_EGGMANITEM4}, // S_EGGMANITEM3
{SPR_FITM, 3|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM5}, // S_EGGMANITEM4 {SPR_FITM, 6|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_EGGMANITEM5}, // S_EGGMANITEM4
{SPR_FITM, 4|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM6}, // S_EGGMANITEM5 {SPR_FITM, 8|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_EGGMANITEM6}, // S_EGGMANITEM5
{SPR_FITM, 5|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM7}, // S_EGGMANITEM6 {SPR_FITM, 10|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_EGGMANITEM7}, // S_EGGMANITEM6
{SPR_FITM, 6|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM8}, // S_EGGMANITEM7 {SPR_FITM, 12|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_EGGMANITEM8}, // S_EGGMANITEM7
{SPR_FITM, 7|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM9}, // S_EGGMANITEM8 {SPR_FITM, 14|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_EGGMANITEM9}, // S_EGGMANITEM8
{SPR_FITM, 8|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM10}, // S_EGGMANITEM9 {SPR_FITM, 16|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_EGGMANITEM10}, // S_EGGMANITEM9
{SPR_FITM, 9|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM11}, // S_EGGMANITEM10 {SPR_FITM, 18|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_EGGMANITEM11}, // S_EGGMANITEM10
{SPR_FITM, 10|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM12}, // S_EGGMANITEM11 {SPR_FITM, 20|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_EGGMANITEM12}, // S_EGGMANITEM11
{SPR_FITM, 11|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM13}, // S_EGGMANITEM12 {SPR_FITM, 22|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_EGGMANITEM1}, // S_EGGMANITEM12
{SPR_FITM, 12|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM14}, // S_EGGMANITEM13 {SPR_FITM, 24|FF_FULLBRIGHT, 175, {NULL}, 0, 0, S_NULL}, // S_EGGMANITEM_DEAD
{SPR_FITM, 13|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM15}, // S_EGGMANITEM14
{SPR_FITM, 14|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM16}, // S_EGGMANITEM15
{SPR_FITM, 15|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM17}, // S_EGGMANITEM16
{SPR_FITM, 16|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM18}, // S_EGGMANITEM17
{SPR_FITM, 17|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM19}, // S_EGGMANITEM18
{SPR_FITM, 18|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM20}, // S_EGGMANITEM19
{SPR_FITM, 19|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM21}, // S_EGGMANITEM20
{SPR_FITM, 20|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM22}, // S_EGGMANITEM21
{SPR_FITM, 21|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM23}, // S_EGGMANITEM22 // *****
{SPR_FITM, 22|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM24}, // S_EGGMANITEM23 // *****
{SPR_FITM, 23|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_EGGMANITEM1}, // S_EGGMANITEM24 // *****
{SPR_FITM, FF_FULLBRIGHT, 175, {NULL}, 0, 0, S_EGGMANITEM1}, // S_EGGMANITEM_DEAD
{SPR_BANA, 0, -1, {NULL}, 0, 0, S_NULL}, // S_BANANA {SPR_BANA, 0, -1, {NULL}, 0, 0, S_NULL}, // S_BANANA
{SPR_BANA, 0, 175, {NULL}, 0, 0, S_NULL}, // S_BANANA_DEAD {SPR_BANA, 0, 175, {NULL}, 0, 0, S_NULL}, // S_BANANA_DEAD
@ -3143,8 +3118,32 @@ state_t states[NUMSTATES] =
{SPR_SPBM, 8, 1, {NULL}, 0, 0, S_PLAYERBOMB19}, // S_PLAYERBOMB18 {SPR_SPBM, 8, 1, {NULL}, 0, 0, S_PLAYERBOMB19}, // S_PLAYERBOMB18
{SPR_SPBM, 0, 1, {NULL}, 0, 0, S_PLAYERBOMB20}, // S_PLAYERBOMB19 {SPR_SPBM, 0, 1, {NULL}, 0, 0, S_PLAYERBOMB20}, // S_PLAYERBOMB19
{SPR_SPBM, 8, 1, {NULL}, 0, 0, S_PLAYERBOMB1}, // S_PLAYERBOMB20 {SPR_SPBM, 8, 1, {NULL}, 0, 0, S_PLAYERBOMB1}, // S_PLAYERBOMB20
{SPR_RNDM, FF_ANIMATE, -1, {NULL}, 23, 3, S_NULL}, // S_PLAYERITEM
{SPR_FITM, FF_ANIMATE, -1, {NULL}, 23, 3, S_NULL}, // S_PLAYERFAKE {SPR_RNDM, FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERITEM2}, // S_PLAYERITEM1
{SPR_RNDM, 2|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERITEM3}, // S_PLAYERITEM2
{SPR_RNDM, 4|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERITEM4}, // S_PLAYERITEM3
{SPR_RNDM, 6|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERITEM5}, // S_PLAYERITEM4
{SPR_RNDM, 8|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERITEM6}, // S_PLAYERITEM5
{SPR_RNDM, 10|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERITEM7}, // S_PLAYERITEM6
{SPR_RNDM, 12|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERITEM8}, // S_PLAYERITEM7
{SPR_RNDM, 14|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERITEM9}, // S_PLAYERITEM8
{SPR_RNDM, 16|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERITEM10}, // S_PLAYERITEM9
{SPR_RNDM, 18|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERITEM11}, // S_PLAYERITEM10
{SPR_RNDM, 20|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERITEM12}, // S_PLAYERITEM11
{SPR_RNDM, 22|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERITEM1}, // S_PLAYERITEM12
{SPR_FITM, FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERFAKE2}, // S_PLAYERFAKE1
{SPR_FITM, 2|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERFAKE3}, // S_PLAYERFAKE2
{SPR_FITM, 4|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERFAKE4}, // S_PLAYERFAKE3
{SPR_FITM, 6|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERFAKE5}, // S_PLAYERFAKE4
{SPR_FITM, 8|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERFAKE6}, // S_PLAYERFAKE5
{SPR_FITM, 10|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERFAKE7}, // S_PLAYERFAKE6
{SPR_FITM, 12|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERFAKE8}, // S_PLAYERFAKE7
{SPR_FITM, 14|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERFAKE9}, // S_PLAYERFAKE8
{SPR_FITM, 16|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERFAKE10}, // S_PLAYERFAKE9
{SPR_FITM, 18|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERFAKE11}, // S_PLAYERFAKE10
{SPR_FITM, 20|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERFAKE12}, // S_PLAYERFAKE11
{SPR_FITM, 22|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_PLAYERFAKE1}, // S_PLAYERFAKE12
{SPR_PBOM, 0, -1, {NULL}, 0, 0, S_NULL}, // S_KARMAWHEEL {SPR_PBOM, 0, -1, {NULL}, 0, 0, S_NULL}, // S_KARMAWHEEL
@ -15640,7 +15639,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
{ // MT_EGGMANITEM { // MT_EGGMANITEM
-1, // doomednum -1, // doomednum
S_EGGMANITEM1, // spawnstate S_EGGMANITEM1, // spawnstate
2, // spawnhealth 2, // spawnhealth
S_NULL, // seestate S_NULL, // seestate
sfx_tossed, // seesound sfx_tossed, // seesound
@ -17775,11 +17774,11 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
-1, // doomednum -1, // doomednum
S_PLAYERBOMB1, // spawnstate S_PLAYERBOMB1, // spawnstate
1000, // spawnhealth 1000, // spawnhealth
S_PLAYERITEM, // seestate S_PLAYERITEM1, // seestate
sfx_kc2e, // seesound sfx_kc2e, // seesound
8, // reactiontime 8, // reactiontime
sfx_s3k4e, // attacksound sfx_s3k4e, // attacksound
S_PLAYERFAKE, // painstate S_PLAYERFAKE1, // painstate
0, // painchance 0, // painchance
sfx_None, // painsound sfx_None, // painsound
S_NULL, // meleestate S_NULL, // meleestate

View file

@ -3204,18 +3204,6 @@ typedef enum state
S_RANDOMITEM10, S_RANDOMITEM10,
S_RANDOMITEM11, S_RANDOMITEM11,
S_RANDOMITEM12, S_RANDOMITEM12,
S_RANDOMITEM13,
S_RANDOMITEM14,
S_RANDOMITEM15,
S_RANDOMITEM16,
S_RANDOMITEM17,
S_RANDOMITEM18,
S_RANDOMITEM19,
S_RANDOMITEM20,
S_RANDOMITEM21,
S_RANDOMITEM22,
S_RANDOMITEM23,
S_RANDOMITEM24,
S_DEADRANDOMITEM, S_DEADRANDOMITEM,
// Random Item Pop // Random Item Pop
@ -3355,18 +3343,6 @@ typedef enum state
S_EGGMANITEM10, S_EGGMANITEM10,
S_EGGMANITEM11, S_EGGMANITEM11,
S_EGGMANITEM12, S_EGGMANITEM12,
S_EGGMANITEM13,
S_EGGMANITEM14,
S_EGGMANITEM15,
S_EGGMANITEM16,
S_EGGMANITEM17,
S_EGGMANITEM18,
S_EGGMANITEM19,
S_EGGMANITEM20,
S_EGGMANITEM21,
S_EGGMANITEM22,
S_EGGMANITEM23,
S_EGGMANITEM24,
S_EGGMANITEM_DEAD, S_EGGMANITEM_DEAD,
//} //}
@ -3830,8 +3806,32 @@ typedef enum state
S_PLAYERBOMB18, S_PLAYERBOMB18,
S_PLAYERBOMB19, S_PLAYERBOMB19,
S_PLAYERBOMB20, S_PLAYERBOMB20,
S_PLAYERITEM,
S_PLAYERFAKE, S_PLAYERITEM1,
S_PLAYERITEM2,
S_PLAYERITEM3,
S_PLAYERITEM4,
S_PLAYERITEM5,
S_PLAYERITEM6,
S_PLAYERITEM7,
S_PLAYERITEM8,
S_PLAYERITEM9,
S_PLAYERITEM10,
S_PLAYERITEM11,
S_PLAYERITEM12,
S_PLAYERFAKE1,
S_PLAYERFAKE2,
S_PLAYERFAKE3,
S_PLAYERFAKE4,
S_PLAYERFAKE5,
S_PLAYERFAKE6,
S_PLAYERFAKE7,
S_PLAYERFAKE8,
S_PLAYERFAKE9,
S_PLAYERFAKE10,
S_PLAYERFAKE11,
S_PLAYERFAKE12,
S_KARMAWHEEL, S_KARMAWHEEL,

View file

@ -542,6 +542,39 @@ UINT8 K_GetKartColorByName(const char *name)
//} //}
UINT8 K_GetClosestPlayersColor(mobj_t *mobj)
{
fixed_t closest = INT32_MAX;
UINT8 color = SKINCOLOR_NONE;
UINT8 i;
for (i = 0; i < MAXPLAYERS; i++)
{
if (playeringame[i] && players[i].mo && !P_MobjWasRemoved(players[i].mo)
&& !players[i].spectator && !players[i].exiting)
{
fixed_t dist = P_AproxDistance(P_AproxDistance(
players[i].mo->x - mobj->x,
players[i].mo->y - mobj->y),
players[i].mo->z - mobj->z
);
if (dist > 8192*mobj->scale)
{
continue;
}
if (dist < closest)
{
color = players[i].skincolor;
closest = dist;
}
}
}
return color;
}
//{ SRB2kart Net Variables //{ SRB2kart Net Variables
void K_RegisterKartStuff(void) void K_RegisterKartStuff(void)
@ -5185,6 +5218,13 @@ static void K_MoveHeldObjects(player_t *player)
fixed_t targx, targy, targz; fixed_t targx, targy, targz;
fixed_t speed, dist; fixed_t speed, dist;
if (cur->type == MT_EGGMANITEM_SHIELD)
{
// K_GetClosestPlayersColor will practically always get our player anyway
// so we might as well save the effort
cur->color = player->skincolor;
}
cur->flags &= ~MF_NOCLIPTHING; cur->flags &= ~MF_NOCLIPTHING;
if (!cur->health) if (!cur->health)

View file

@ -18,6 +18,7 @@ extern const UINT8 KartColor_Opposite[MAXSKINCOLORS*2];
void K_RainbowColormap(UINT8 *dest_colormap, UINT8 skincolor); void K_RainbowColormap(UINT8 *dest_colormap, UINT8 skincolor);
void K_GenerateKartColormap(UINT8 *dest_colormap, INT32 skinnum, UINT8 color); void K_GenerateKartColormap(UINT8 *dest_colormap, INT32 skinnum, UINT8 color);
UINT8 K_GetKartColorByName(const char *name); UINT8 K_GetKartColorByName(const char *name);
UINT8 K_GetClosestPlayersColor(mobj_t *mobj);
void K_RegisterKartStuff(void); void K_RegisterKartStuff(void);

View file

@ -8107,8 +8107,20 @@ void P_MobjThinker(mobj_t *mobj)
break; break;
} }
case MT_BANANA:
case MT_EGGMANITEM: case MT_EGGMANITEM:
{
UINT8 color = K_GetClosestPlayersColor(mobj);
if (color == SKINCOLOR_NONE)
{
color = SKINCOLOR_BLACK;
}
mobj->color = color;
mobj->colorized = false;
}
/* FALLTHRU */
case MT_BANANA:
mobj->friction = ORIG_FRICTION/4; mobj->friction = ORIG_FRICTION/4;
if (P_MobjTouchingSectorSpecial(mobj, 4, 7, true)) if (P_MobjTouchingSectorSpecial(mobj, 4, 7, true))
@ -9957,7 +9969,14 @@ void P_MobjThinker(mobj_t *mobj)
} }
else else
{ {
mobj->color = SKINCOLOR_NONE; UINT8 color = K_GetClosestPlayersColor(mobj);
if (color == SKINCOLOR_NONE)
{
color = SKINCOLOR_BLACK;
}
mobj->color = color;
mobj->colorized = false; mobj->colorized = false;
} }
break; break;