Incredibly rudimentary Jawz stuff

This commit is contained in:
TehRealSalt 2018-05-31 20:51:05 -04:00
parent 4c0f64ff4f
commit bf3910cdca
8 changed files with 265 additions and 307 deletions

View file

@ -6301,8 +6301,8 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
//}
// Banana
"S_BANANAITEM",
"S_DEADBANANA",
"S_BANANA",
"S_BANANA_DEAD",
//{ Orbinaut
"S_GREENSHIELD1",
@ -6324,23 +6324,9 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_DEADGREEN",
//}
//{ Jawz
"S_REDSHIELD1",
"S_REDSHIELD2",
"S_REDSHIELD3",
"S_REDSHIELD4",
"S_REDSHIELD5",
"S_REDSHIELD6",
"S_REDSHIELD7",
"S_REDSHIELD8",
"S_REDITEM1",
"S_REDITEM2",
"S_REDITEM3",
"S_REDITEM4",
"S_REDITEM5",
"S_REDITEM6",
"S_REDITEM7",
"S_REDITEM8",
"S_DEADRED",
"S_JAWZ",
"S_JAWZ_SHIELD",
"S_JAWZ_DEAD",
//}
"S_FIRETRAIL1",
@ -6354,28 +6340,28 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_FIRETRAIL9",
// Special Stage Mine
"S_MINESHIELD1",
"S_MINESHIELD2",
"S_MINEAIR1",
"S_MINEAIR2",
"S_MINEDEPLOY1",
"S_MINEDEPLOY2",
"S_MINEDEPLOY3",
"S_MINEDEPLOY4",
"S_MINEDEPLOY5",
"S_MINEDEPLOY6",
"S_MINEDEPLOY7",
"S_MINEDEPLOY8",
"S_MINEDEPLOY9",
"S_MINEDEPLOY10",
"S_MINEDEPLOY11",
"S_MINEDEPLOY12",
"S_MINEDEPLOY13",
"S_MINEITEM1",
"S_MINEITEM2",
"S_MINEITEM3",
"S_MINEITEM4",
"S_MINEEXPLODE",
"S_SSMINE1",
"S_SSMINE2",
"S_SSMINE3",
"S_SSMINE4",
"S_SSMINE_SHIELD1",
"S_SSMINE_SHIELD2",
"S_SSMINE_AIR1",
"S_SSMINE_AIR2",
"S_SSMINE_DEPLOY1",
"S_SSMINE_DEPLOY2",
"S_SSMINE_DEPLOY3",
"S_SSMINE_DEPLOY4",
"S_SSMINE_DEPLOY5",
"S_SSMINE_DEPLOY6",
"S_SSMINE_DEPLOY7",
"S_SSMINE_DEPLOY8",
"S_SSMINE_DEPLOY9",
"S_SSMINE_DEPLOY10",
"S_SSMINE_DEPLOY11",
"S_SSMINE_DEPLOY12",
"S_SSMINE_DEPLOY13",
"S_SSMINE_EXPLODE",
"S_MINEEXPLOSION1",
"S_MINEEXPLOSION2",
@ -7125,20 +7111,19 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
"MT_FAKESHIELD",
"MT_FAKEITEM",
"MT_BANANASHIELD", // Banana Stuff
"MT_BANANAITEM",
"MT_BANANA",
"MT_BANANA_SHIELD", // Banana Stuff
"MT_GREENSHIELD", // Orbinaut stuff
"MT_GREENITEM",
"MT_FIRETRAIL",
"MT_REDSHIELD", // Jawz stuff
"MT_REDITEM",
"MT_REDITEMDUD",
"MT_JAWZ", // Jawz stuff
"MT_JAWZ_DUD",
"MT_JAWZ_SHIELD",
"MT_MINESHIELD", // Special Stage Mine stuff
"MT_MINEITEM",
"MT_SSMINE_SHIELD", // Special Stage Mine stuff
"MT_SSMINE",
"MT_MINEEXPLOSION",
"MT_MINEEXPLOSIONSOUND",

View file

@ -56,7 +56,7 @@ char sprnames[NUMSPRITES + 1][5] =
"SRBJ","SRBK","SRBL","SRBM","SRBN","SRBO",
//SRB2kart Sprites
"SPRG","BSPR","RNDM","KFRE","KINV","KINF","DRIF","DSMO","FITM","BANA",
"GSHE","RSHE","SSMN","KRBM","BLIG","LIGH","SINK","SITR","KBLN","LAKI",
"GSHE","JAWZ","SSMN","KRBM","BLIG","LIGH","SINK","SITR","KBLN","LAKI",
"POKE","AUDI","DECO","DOOD","SNES","GBAS","SPRS","BUZB","CHOM","SACO",
"CRAB","SHAD","BUMP","FLEN","CLAS","PSHW","ARRO","ITEM","ITMI","ITMN",
"PBOM"
@ -2636,8 +2636,8 @@ state_t states[NUMSTATES] =
{SPR_FITM, 23, 3, {NULL}, 0, 0, S_FAKEITEM1}, // S_FAKEITEM24 // *****
{SPR_FITM, 24, 175, {NULL}, 0, 0, S_FAKEITEM1}, // S_DEADFAKEITEM
{SPR_BANA, 0, -1, {NULL}, 0, 0, S_NULL}, // S_BANANAITEM
{SPR_BANA, 1, 175, {NULL}, 0, 0, S_NULL}, // S_DEADBANANA
{SPR_BANA, 0, -1, {NULL}, 0, 0, S_NULL}, // S_BANANA
{SPR_BANA, 1, 175, {NULL}, 0, 0, S_NULL}, // S_BANANA_DEAD
{SPR_GSHE, 0, 1, {NULL}, 0, 0, S_GREENSHIELD2}, // S_GREENSHIELD1
{SPR_GSHE, 1, 1, {NULL}, 0, 0, S_GREENSHIELD3}, // S_GREENSHIELD2
@ -2657,23 +2657,9 @@ state_t states[NUMSTATES] =
{SPR_GSHE, 7, 1, {NULL}, 0, 0, S_GREENITEM1}, // S_GREENITEM8
{SPR_GSHE, 8, 175, {NULL}, 0, 0, S_NULL}, // S_DEADGREEN
{SPR_RSHE, 0, 1, {NULL}, 0, 0, S_REDSHIELD2}, // S_REDSHIELD1
{SPR_RSHE, 1, 1, {NULL}, 0, 0, S_REDSHIELD3}, // S_REDSHIELD2
{SPR_RSHE, 2, 1, {NULL}, 0, 0, S_REDSHIELD4}, // S_REDSHIELD3
{SPR_RSHE, 3, 1, {NULL}, 0, 0, S_REDSHIELD5}, // S_REDSHIELD4
{SPR_RSHE, 4, 1, {NULL}, 0, 0, S_REDSHIELD6}, // S_REDSHIELD5
{SPR_RSHE, 5, 1, {NULL}, 0, 0, S_REDSHIELD7}, // S_REDSHIELD6
{SPR_RSHE, 6, 1, {NULL}, 0, 0, S_REDSHIELD8}, // S_REDSHIELD7
{SPR_RSHE, 7, 1, {NULL}, 0, 0, S_REDSHIELD1}, // S_REDSHIELD8
{SPR_RSHE, 0, 1, {A_JawzChase}, 0, 0, S_REDITEM2}, // S_REDITEM1
{SPR_RSHE, 1, 1, {A_JawzChase}, 0, 0, S_REDITEM3}, // S_REDITEM2
{SPR_RSHE, 2, 1, {A_JawzChase}, 0, 0, S_REDITEM4}, // S_REDITEM3
{SPR_RSHE, 3, 1, {A_JawzChase}, 0, 0, S_REDITEM5}, // S_REDITEM4
{SPR_RSHE, 4, 1, {A_JawzChase}, 0, 0, S_REDITEM6}, // S_REDITEM5
{SPR_RSHE, 5, 1, {A_JawzChase}, 0, 0, S_REDITEM7}, // S_REDITEM6
{SPR_RSHE, 6, 1, {A_JawzChase}, 0, 0, S_REDITEM8}, // S_REDITEM7
{SPR_RSHE, 7, 1, {A_JawzChase}, 0, 0, S_REDITEM1}, // S_REDITEM8
{SPR_RSHE, 8, 175, {NULL}, 0, 0, S_NULL}, // S_DEADRED
{SPR_JAWZ, 0, 1, {A_JawzChase}, 0, 0, S_JAWZ}, // S_JAWZ
{SPR_JAWZ, 0, 1, {NULL}, 0, 0, S_JAWZ_SHIELD}, // S_JAWZ_SHIELD
{SPR_JAWZ, 0, 0, {NULL}, 0, 0, S_NULL}, // S_JAWZ_DEAD
{SPR_FBLL, 13, 3, {NULL}, 0, 0, S_FIRETRAIL2}, // S_FIRETRAIL1
{SPR_FBLL, 14, 3, {NULL}, 0, 0, S_FIRETRAIL3}, // S_FIRETRAIL2
@ -2685,28 +2671,28 @@ state_t states[NUMSTATES] =
{SPR_FBLL, 20, 3, {NULL}, 0, 0, S_FIRETRAIL9}, // S_FIRETRAIL8
{SPR_FBLL, 21, 3, {NULL}, 0, 0, S_NULL}, // S_FIRETRAIL9
{SPR_SSMN, 4, 1, {NULL}, 0, 0, S_MINESHIELD2}, // S_MINESHIELD1
{SPR_SSMN, 5, 1, {NULL}, 0, 0, S_MINESHIELD1}, // S_MINESHIELD2
{SPR_SSMN, 4, 1, {NULL}, 0, 0, S_MINEAIR2}, // S_MINEAIR1
{SPR_SSMN, 5, 1, {NULL}, 0, 0, S_MINEAIR1}, // S_MINEAIR2
{SPR_SSMN, 6, 3, {NULL}, 0, 0, S_MINEDEPLOY2}, // S_MINEDEPLOY1
{SPR_SSMN, 7, 5, {NULL}, 0, 0, S_MINEDEPLOY3}, // S_MINEDEPLOY2
{SPR_SSMN, 8, 7, {NULL}, 0, 0, S_MINEDEPLOY4}, // S_MINEDEPLOY3
{SPR_SSMN, 9, 1, {NULL}, 0, 0, S_MINEDEPLOY5}, // S_MINEDEPLOY4
{SPR_SSMN, 10, 1, {NULL}, 0, 0, S_MINEDEPLOY6}, // S_MINEDEPLOY5
{SPR_SSMN, 9, 1, {NULL}, 0, 0, S_MINEDEPLOY7}, // S_MINEDEPLOY6
{SPR_SSMN, 10, 3, {NULL}, 0, 0, S_MINEDEPLOY8}, // S_MINEDEPLOY7
{SPR_SSMN, 11, 1, {NULL}, 0, 0, S_MINEDEPLOY9}, // S_MINEDEPLOY8
{SPR_SSMN, 10, 1, {NULL}, 0, 0, S_MINEDEPLOY10}, // S_MINEDEPLOY9
{SPR_SSMN, 11, 3, {NULL}, 0, 0, S_MINEDEPLOY11}, // S_MINEDEPLOY10
{SPR_SSMN, 12, 3, {NULL}, 0, 0, S_MINEDEPLOY12}, // S_MINEDEPLOY11
{SPR_SSMN, 13, 3, {NULL}, 0, 0, S_MINEDEPLOY13}, // S_MINEDEPLOY12
{SPR_SSMN, 14, 3, {NULL}, 0, 0, S_MINEITEM1}, // S_MINEDEPLOY13
{SPR_SSMN, 0, 30, {NULL}, 0, 0, S_MINEITEM2}, // S_MINEITEM1
{SPR_SSMN, 3, 3, {NULL}, 0, 0, S_MINEITEM3}, // S_MINEITEM2
{SPR_SSMN, 2, 3, {NULL}, 0, 0, S_MINEITEM4}, // S_MINEITEM3
{SPR_SSMN, 1, 3, {NULL}, 0, 0, S_MINEITEM1}, // S_MINEITEM4
{SPR_SSMN, 3, 1, {A_MineExplode}, MT_MINEEXPLOSION, 0, S_NULL}, // S_MINEEXPLODE
{SPR_SSMN, 0, 30, {NULL}, 0, 0, S_SSMINE2}, // S_SSMINE1
{SPR_SSMN, 3, 3, {NULL}, 0, 0, S_SSMINE3}, // S_SSMINE2
{SPR_SSMN, 2, 3, {NULL}, 0, 0, S_SSMINE4}, // S_SSMINE3
{SPR_SSMN, 1, 3, {NULL}, 0, 0, S_SSMINE1}, // S_SSMINE4
{SPR_SSMN, 4, 1, {NULL}, 0, 0, S_SSMINE_SHIELD2}, // S_SSMINE_SHIELD1
{SPR_SSMN, 5, 1, {NULL}, 0, 0, S_SSMINE_SHIELD1}, // S_SSMINE_SHIELD2
{SPR_SSMN, 4, 1, {NULL}, 0, 0, S_SSMINE_AIR2}, // S_SSMINE_AIR1
{SPR_SSMN, 5, 1, {NULL}, 0, 0, S_SSMINE_AIR1}, // S_SSMINE_AIR2
{SPR_SSMN, 6, 3, {NULL}, 0, 0, S_SSMINE_DEPLOY2}, // S_SSMINE_DEPLOY1
{SPR_SSMN, 7, 5, {NULL}, 0, 0, S_SSMINE_DEPLOY3}, // S_SSMINE_DEPLOY2
{SPR_SSMN, 8, 7, {NULL}, 0, 0, S_SSMINE_DEPLOY4}, // S_SSMINE_DEPLOY3
{SPR_SSMN, 9, 1, {NULL}, 0, 0, S_SSMINE_DEPLOY5}, // S_SSMINE_DEPLOY4
{SPR_SSMN, 10, 1, {NULL}, 0, 0, S_SSMINE_DEPLOY6}, // S_SSMINE_DEPLOY5
{SPR_SSMN, 9, 1, {NULL}, 0, 0, S_SSMINE_DEPLOY7}, // S_SSMINE_DEPLOY6
{SPR_SSMN, 10, 3, {NULL}, 0, 0, S_SSMINE_DEPLOY8}, // S_SSMINE_DEPLOY7
{SPR_SSMN, 11, 1, {NULL}, 0, 0, S_SSMINE_DEPLOY9}, // S_SSMINE_DEPLOY8
{SPR_SSMN, 10, 1, {NULL}, 0, 0, S_SSMINE_DEPLOY10}, // S_SSMINE_DEPLOY9
{SPR_SSMN, 11, 3, {NULL}, 0, 0, S_SSMINE_DEPLOY11}, // S_SSMINE_DEPLOY10
{SPR_SSMN, 12, 3, {NULL}, 0, 0, S_SSMINE_DEPLOY12}, // S_SSMINE_DEPLOY11
{SPR_SSMN, 13, 3, {NULL}, 0, 0, S_SSMINE_DEPLOY13}, // S_SSMINE_DEPLOY12
{SPR_SSMN, 14, 3, {NULL}, 0, 0, S_SSMINE1}, // S_SSMINE_DEPLOY13
{SPR_SSMN, 3, 1, {A_MineExplode}, MT_MINEEXPLOSION, 0, S_NULL}, // S_SSMINE_EXPLODE
{SPR_NULL, 0, 6, {NULL}, 0, 0, S_MINEEXPLOSION2}, // S_MINEEXPLOSION1
{SPR_NULL, 1, 22, {A_ForceStop}, 0, 0, S_NULL}, // S_MINEEXPLOSION2
@ -14471,36 +14457,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_BANANASHIELD
{ // MT_BANANA
-1, // doomednum
S_BANANAITEM, // spawnstate
1000, // 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_DEADBANANA, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
1, // damage
sfx_None, // activesound
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_BANANAITEM
-1, // doomednum
S_BANANAITEM, // spawnstate
S_BANANA, // spawnstate
2, // spawnhealth
S_NULL, // seestate
sfx_tossed, // seesound
@ -14511,7 +14470,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_DEADBANANA, // deathstate
S_BANANA_DEAD, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
0, // speed
@ -14525,6 +14484,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_BANANA_SHIELD
-1, // doomednum
S_BANANA, // spawnstate
1000, // 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_BANANA_DEAD, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
1, // damage
sfx_None, // activesound
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_GREENSHIELD
-1, // doomednum
S_GREENSHIELD1, // spawnstate
@ -14606,36 +14592,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_REDSHIELD
{ // MT_JAWZ
-1, // doomednum
S_REDSHIELD1, // spawnstate
1000, // 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_DEADRED, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
10*FRACUNIT, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
1, // damage
sfx_None, // activesound
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_REDITEM
-1, // doomednum
S_REDITEM1, // spawnstate
S_JAWZ, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_tossed, // seesound
@ -14646,7 +14605,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_DEADRED, // deathstate
S_JAWZ_DEAD, // deathstate
S_NULL, // xdeathstate
sfx_shbrk, // deathsound
7*FRACUNIT, // speed
@ -14660,9 +14619,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_REDITEMDUD
{ // MT_JAWZ_DUD
-1, // doomednum
S_REDITEM1, // spawnstate
S_JAWZ, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_tossed, // seesound
@ -14673,7 +14632,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_DEADRED, // deathstate
S_JAWZ_DEAD, // deathstate
S_NULL, // xdeathstate
sfx_shbrk, // deathsound
56*FRACUNIT, // speed
@ -14687,20 +14646,20 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_MINESHIELD
{ // MT_JAWZ_SHIELD
-1, // doomednum
S_MINESHIELD1, // spawnstate
S_JAWZ_SHIELD, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
320*FRACUNIT, // painchance
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_MINEEXPLODE, // deathstate
S_JAWZ_DEAD, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
10*FRACUNIT, // speed
@ -14714,9 +14673,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_MINEITEM
{ // MT_SSMINE
-1, // doomednum
S_MINEAIR1, // spawnstate
S_SSMINE_AIR1, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_tossed, // seesound
@ -14727,7 +14686,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_MINEEXPLODE, // deathstate
S_SSMINE_EXPLODE, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
0, // speed
@ -14741,6 +14700,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_SSMINE_SHIELD
-1, // doomednum
S_SSMINE_SHIELD1, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
320*FRACUNIT, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_SSMINE_EXPLODE, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
10*FRACUNIT, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
1, // damage
sfx_None, // activesound
MF_SHOOTABLE|MF_NOGRAVITY|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_MINEEXPLOSION
-1, // doomednum
S_MINEEXPLOSION1, // spawnstate
@ -14916,7 +14902,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_MINEEXPLODE, // deathstate
S_SSMINE_EXPLODE, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
0, // speed

View file

@ -589,7 +589,7 @@ typedef enum sprite
SPR_FITM, // Eggman Monitor
SPR_BANA, // Banana Peel
SPR_GSHE, // Orbinaut
SPR_RSHE, // Jawz
SPR_JAWZ, // Jawz
SPR_SSMN, // SS Mine
SPR_KRBM, // SS Mine BOOM
SPR_BLIG, // Self-Propelled Bomb
@ -3144,8 +3144,8 @@ typedef enum state
//}
// Banana
S_BANANAITEM,
S_DEADBANANA,
S_BANANA,
S_BANANA_DEAD,
//{ Orbinaut
S_GREENSHIELD1,
@ -3167,23 +3167,9 @@ typedef enum state
S_DEADGREEN,
//}
//{ Jawz
S_REDSHIELD1,
S_REDSHIELD2,
S_REDSHIELD3,
S_REDSHIELD4,
S_REDSHIELD5,
S_REDSHIELD6,
S_REDSHIELD7,
S_REDSHIELD8,
S_REDITEM1,
S_REDITEM2,
S_REDITEM3,
S_REDITEM4,
S_REDITEM5,
S_REDITEM6,
S_REDITEM7,
S_REDITEM8,
S_DEADRED,
S_JAWZ,
S_JAWZ_SHIELD,
S_JAWZ_DEAD,
//}
S_FIRETRAIL1,
@ -3197,28 +3183,28 @@ typedef enum state
S_FIRETRAIL9,
// Special Stage Mine
S_MINESHIELD1,
S_MINESHIELD2,
S_MINEAIR1,
S_MINEAIR2,
S_MINEDEPLOY1,
S_MINEDEPLOY2,
S_MINEDEPLOY3,
S_MINEDEPLOY4,
S_MINEDEPLOY5,
S_MINEDEPLOY6,
S_MINEDEPLOY7,
S_MINEDEPLOY8,
S_MINEDEPLOY9,
S_MINEDEPLOY10,
S_MINEDEPLOY11,
S_MINEDEPLOY12,
S_MINEDEPLOY13,
S_MINEITEM1,
S_MINEITEM2,
S_MINEITEM3,
S_MINEITEM4,
S_MINEEXPLODE,
S_SSMINE1,
S_SSMINE2,
S_SSMINE3,
S_SSMINE4,
S_SSMINE_SHIELD1,
S_SSMINE_SHIELD2,
S_SSMINE_AIR1,
S_SSMINE_AIR2,
S_SSMINE_DEPLOY1,
S_SSMINE_DEPLOY2,
S_SSMINE_DEPLOY3,
S_SSMINE_DEPLOY4,
S_SSMINE_DEPLOY5,
S_SSMINE_DEPLOY6,
S_SSMINE_DEPLOY7,
S_SSMINE_DEPLOY8,
S_SSMINE_DEPLOY9,
S_SSMINE_DEPLOY10,
S_SSMINE_DEPLOY11,
S_SSMINE_DEPLOY12,
S_SSMINE_DEPLOY13,
S_SSMINE_EXPLODE,
S_MINEEXPLOSION1,
S_MINEEXPLOSION2,
@ -3985,19 +3971,19 @@ typedef enum mobj_type
MT_FAKESHIELD,
MT_FAKEITEM,
MT_BANANASHIELD, // Banana Stuff
MT_BANANAITEM,
MT_BANANA, // Banana Stuff
MT_BANANA_SHIELD,
MT_GREENSHIELD, // Orbinaut stuff
MT_GREENITEM,
MT_FIRETRAIL,
MT_REDSHIELD, // Jawz stuff
MT_REDITEM,
MT_REDITEMDUD,
MT_JAWZ, // Jawz stuff
MT_JAWZ_DUD,
MT_JAWZ_SHIELD,
MT_MINESHIELD, // Mine stuff
MT_MINEITEM,
MT_SSMINE, // Mine stuff
MT_SSMINE_SHIELD,
MT_MINEEXPLOSION,
MT_MINEEXPLOSIONSOUND,

View file

@ -2781,7 +2781,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
newangle = player->mo->angle;
newx = player->mo->x + P_ReturnThrustX(player->mo, newangle + ANGLE_180, 64*FRACUNIT);
newy = player->mo->y + P_ReturnThrustY(player->mo, newangle + ANGLE_180, 64*FRACUNIT);
mo = P_SpawnMobj(newx, newy, player->mo->z, MT_BANANASHIELD);
mo = P_SpawnMobj(newx, newy, player->mo->z, MT_BANANA_SHIELD);
mo->threshold = 10;
if (mo)
P_SetTarget(&mo->target, player->mo);
@ -2804,7 +2804,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
newangle = player->mo->angle;
newx = player->mo->x + P_ReturnThrustX(player->mo, newangle + ANGLE_180, 64*FRACUNIT);
newy = player->mo->y + P_ReturnThrustY(player->mo, newangle + ANGLE_180, 64*FRACUNIT);
mo = P_SpawnMobj(newx, newy, player->mo->z, MT_BANANASHIELD);
mo = P_SpawnMobj(newx, newy, player->mo->z, MT_BANANA_SHIELD);
if (mo)
{
@ -2818,14 +2818,14 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
}
else if (!(cmd->buttons & BT_ATTACK) && player->kartstuff[k_itemheld] == 1)
{
K_ThrowKartItem(player, false, MT_BANANAITEM, -1, false);
K_ThrowKartItem(player, false, MT_BANANA, -1, false);
K_PlayTauntSound(player->mo);
player->kartstuff[k_itemamount]--;
player->kartstuff[k_itemheld] = 0;
}
else if (ATTACK_IS_DOWN && player->kartstuff[k_itemheld] == 2) // Banana x3 thrown
{
K_ThrowKartItem(player, false, MT_BANANAITEM, -1,false );
K_ThrowKartItem(player, false, MT_BANANA, -1,false );
K_PlayTauntSound(player->mo);
player->pflags |= PF_ATTACKDOWN;
player->kartstuff[k_itemamount]--;
@ -2937,7 +2937,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
newangle = player->mo->angle;
newx = player->mo->x + P_ReturnThrustX(player->mo, newangle + ANGLE_180, 64*FRACUNIT);
newy = player->mo->y + P_ReturnThrustY(player->mo, newangle + ANGLE_180, 64*FRACUNIT);
mo = P_SpawnMobj(newx, newy, player->mo->z, MT_REDSHIELD);
mo = P_SpawnMobj(newx, newy, player->mo->z, MT_JAWZ_SHIELD);
mo->threshold = 10;
if (mo)
P_SetTarget(&mo->target, player->mo);
@ -2960,7 +2960,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
newangle = player->mo->angle;
newx = player->mo->x + P_ReturnThrustX(player->mo, newangle + ANGLE_180, 64*FRACUNIT);
newy = player->mo->y + P_ReturnThrustY(player->mo, newangle + ANGLE_180, 64*FRACUNIT);
mo = P_SpawnMobj(newx, newy, player->mo->z, MT_REDSHIELD);
mo = P_SpawnMobj(newx, newy, player->mo->z, MT_JAWZ_SHIELD);
if (mo)
{
mo->threshold = 10;
@ -2976,17 +2976,17 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
player->kartstuff[k_itemamount]--;
player->kartstuff[k_itemheld] = 0;
if (player->kartstuff[k_throwdir] == 1 || player->kartstuff[k_throwdir] == 0)
K_ThrowKartItem(player, true, MT_REDITEM, 1, false);
K_ThrowKartItem(player, true, MT_JAWZ, 1, false);
else if (player->kartstuff[k_throwdir] == -1) // Throwing backward gives you a dud that doesn't home in
K_ThrowKartItem(player, true, MT_REDITEMDUD, -1, false);
K_ThrowKartItem(player, true, MT_JAWZ_DUD, -1, false);
K_PlayTauntSound(player->mo);
}
else if (ATTACK_IS_DOWN && HOLDING_ITEM && player->kartstuff[k_itemheld] == 2) // Jawz x2 thrown
{
if (player->kartstuff[k_throwdir] == 1 || player->kartstuff[k_throwdir] == 0)
K_ThrowKartItem(player, true, MT_REDITEM, 1, false);
K_ThrowKartItem(player, true, MT_JAWZ, 1, false);
else if (player->kartstuff[k_throwdir] == -1) // Throwing backward gives you a dud that doesn't home in
K_ThrowKartItem(player, true, MT_REDITEMDUD, -1, false);
K_ThrowKartItem(player, true, MT_JAWZ_DUD, -1, false);
K_PlayTauntSound(player->mo);
player->pflags |= PF_ATTACKDOWN;
player->kartstuff[k_itemamount]--;
@ -3006,14 +3006,14 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
newangle = player->mo->angle;
newx = player->mo->x + P_ReturnThrustX(player->mo, newangle + ANGLE_180, 64*FRACUNIT);
newy = player->mo->y + P_ReturnThrustY(player->mo, newangle + ANGLE_180, 64*FRACUNIT);
mo = P_SpawnMobj(newx, newy, player->mo->z, MT_MINESHIELD);
mo = P_SpawnMobj(newx, newy, player->mo->z, MT_SSMINE_SHIELD);
mo->threshold = 10;
if (mo)
P_SetTarget(&mo->target, player->mo);
}
else if (!(cmd->buttons & BT_ATTACK) && HOLDING_ITEM)
{
K_ThrowKartItem(player, false, MT_MINEITEM, 1, true);
K_ThrowKartItem(player, false, MT_SSMINE, 1, true);
K_PlayTauntSound(player->mo);
player->kartstuff[k_itemamount]--;
player->kartstuff[k_itemheld] = 0;

View file

@ -2013,9 +2013,9 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source)
if ((target->target->player->kartstuff[k_itemheld])
&& ((target->type == MT_GREENSHIELD && target->target->player->kartstuff[k_itemtype] == KITEM_ORBINAUT)
|| (target->type == MT_REDSHIELD && target->target->player->kartstuff[k_itemtype] == KITEM_JAWZ)
|| (target->type == MT_BANANASHIELD && target->target->player->kartstuff[k_itemtype] == KITEM_BANANA)
|| (target->type == MT_MINESHIELD && target->target->player->kartstuff[k_itemtype] == KITEM_MINE)))
|| (target->type == MT_JAWZ_SHIELD && target->target->player->kartstuff[k_itemtype] == KITEM_JAWZ)
|| (target->type == MT_BANANA_SHIELD && target->target->player->kartstuff[k_itemtype] == KITEM_BANANA)
|| (target->type == MT_SSMINE_SHIELD && target->target->player->kartstuff[k_itemtype] == KITEM_MINE)))
{
if (target->lastlook > 0)
target->target->player->kartstuff[k_itemamount] = target->lastlook-1;
@ -2036,8 +2036,8 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source)
// SRB2kart
if (target->type != MT_PLAYER && !(target->flags & MF_MONITOR)
&& !(target->type == MT_GREENITEM || target->type == MT_GREENSHIELD
|| target->type == MT_REDITEM || target->type == MT_REDITEMDUD || target->type == MT_REDSHIELD
|| target->type == MT_BANANAITEM || target->type == MT_BANANASHIELD
|| target->type == MT_JAWZ || target->type == MT_JAWZ_DUD || target->type == MT_JAWZ_SHIELD
|| target->type == MT_BANANA || target->type == MT_BANANA_SHIELD
|| target->type == MT_FAKEITEM || target->type == MT_FAKESHIELD
|| target->type == MT_FIREBALL)) // kart dead items
target->flags |= MF_NOGRAVITY; // Don't drop Tails 03-08-2000
@ -3167,7 +3167,7 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
else
{
if (inflictor && (inflictor->type == MT_GREENITEM || inflictor->type == MT_GREENSHIELD
|| inflictor->type == MT_REDITEM || inflictor->type == MT_REDSHIELD || inflictor->type == MT_REDITEMDUD
|| inflictor->type == MT_JAWZ || inflictor->type == MT_JAWZ_SHIELD || inflictor->type == MT_JAWZ_DUD
|| inflictor->type == MT_FAKEITEM || inflictor->type == MT_FAKESHIELD
|| inflictor->player))
{

View file

@ -655,8 +655,8 @@ static boolean PIT_CheckThing(mobj_t *thing)
if (tmthing->type == MT_RANDOMITEM)
return true;
if (tmthing->type == MT_GREENITEM || tmthing->type == MT_REDITEM || tmthing->type == MT_REDITEMDUD
|| tmthing->type == MT_GREENSHIELD || tmthing->type == MT_REDSHIELD)
if (tmthing->type == MT_GREENITEM || tmthing->type == MT_JAWZ || tmthing->type == MT_JAWZ_DUD
|| tmthing->type == MT_GREENSHIELD || tmthing->type == MT_JAWZ_SHIELD)
{
// see if it went over / under
if (tmthing->z > thing->z + thing->height)
@ -670,13 +670,13 @@ static boolean PIT_CheckThing(mobj_t *thing)
if (tmthing->health <= 0 || thing->health <= 0)
return true;
if ((tmthing->type == MT_GREENSHIELD || tmthing->type == MT_REDSHIELD) && tmthing->lastlook
&& (thing->type == MT_GREENSHIELD || thing->type == MT_REDSHIELD) && thing->lastlook
if ((tmthing->type == MT_GREENSHIELD || tmthing->type == MT_JAWZ_SHIELD) && tmthing->lastlook
&& (thing->type == MT_GREENSHIELD || thing->type == MT_JAWZ_SHIELD) && thing->lastlook
&& (tmthing->target == thing->target)) // Don't hit each other if you have the same target
return true;
if (thing->player && thing->player->powers[pw_flashing]
&& !(tmthing->type == MT_GREENITEM || tmthing->type == MT_REDITEM || tmthing->type == MT_REDITEMDUD))
&& !(tmthing->type == MT_GREENITEM || tmthing->type == MT_JAWZ || tmthing->type == MT_JAWZ_DUD))
return true;
if (thing->type == MT_PLAYER)
@ -684,7 +684,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
// Player Damage
P_DamageMobj(thing, tmthing, tmthing->target, 1);
if (tmthing->type == MT_GREENITEM || tmthing->type == MT_REDITEM || tmthing->type == MT_REDITEMDUD)
if (tmthing->type == MT_GREENITEM || tmthing->type == MT_JAWZ || tmthing->type == MT_JAWZ_DUD)
S_StartSound(thing, sfx_shelit);
// This Item Damage
@ -699,9 +699,9 @@ static boolean PIT_CheckThing(mobj_t *thing)
P_SetObjectMomZ(tmthing, 8*FRACUNIT, false);
P_InstaThrust(tmthing, R_PointToAngle2(thing->x, thing->y, tmthing->x, tmthing->y)+ANGLE_90, 16*FRACUNIT);
}
else if (thing->type == MT_GREENITEM || thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD
|| thing->type == MT_GREENSHIELD || thing->type == MT_REDSHIELD
|| thing->type == MT_BANANAITEM || thing->type == MT_BANANASHIELD
else if (thing->type == MT_GREENITEM || thing->type == MT_JAWZ || thing->type == MT_JAWZ_DUD
|| thing->type == MT_GREENSHIELD || thing->type == MT_JAWZ_SHIELD
|| thing->type == MT_BANANA || thing->type == MT_BANANA_SHIELD
|| thing->type == MT_FIREBALL)
{
// Other Item Damage
@ -732,7 +732,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
}
else if (thing->type == MT_FAKEITEM || thing->type == MT_FAKESHIELD)
{
if (tmthing->type == MT_GREENSHIELD || tmthing->type == MT_REDSHIELD)
if (tmthing->type == MT_GREENSHIELD || tmthing->type == MT_JAWZ_SHIELD)
{
// This Item Damage
if (tmthing->eflags & MFE_VERTICALFLIP)
@ -761,7 +761,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
P_SetObjectMomZ(thing, 8*FRACUNIT, false);
P_InstaThrust(thing, R_PointToAngle2(tmthing->x, tmthing->y, thing->x, thing->y)+ANGLE_90, 16*FRACUNIT);
}
else if (thing->type == MT_MINESHIELD || thing->type == MT_MINEITEM)
else if (thing->type == MT_SSMINE_SHIELD || thing->type == MT_SSMINE)
{
// This Item Damage
if (tmthing->eflags & MFE_VERTICALFLIP)
@ -778,12 +778,12 @@ static boolean PIT_CheckThing(mobj_t *thing)
// Bomb death
P_KillMobj(thing, tmthing, tmthing);
}
else if (thing->flags & MF_SPRING && (tmthing->type == MT_REDITEM || tmthing->type == MT_REDITEMDUD || tmthing->type == MT_GREENITEM))
else if (thing->flags & MF_SPRING && (tmthing->type == MT_JAWZ || tmthing->type == MT_JAWZ_DUD || tmthing->type == MT_GREENITEM))
P_DoSpring(thing, tmthing);
return true;
}
else if (tmthing->flags & MF_SPRING && (thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD || thing->type == MT_GREENITEM))
else if (tmthing->flags & MF_SPRING && (thing->type == MT_JAWZ || thing->type == MT_JAWZ_DUD || thing->type == MT_GREENITEM))
{
// see if it went over / under
if (tmthing->z > thing->z + thing->height)
@ -849,7 +849,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
return true; // This doesn't collide with anything, but we want it to effect the player anyway.
}
else if (tmthing->type == MT_BANANASHIELD || tmthing->type == MT_BANANAITEM
else if (tmthing->type == MT_BANANA_SHIELD || tmthing->type == MT_BANANA
|| tmthing->type == MT_FIREBALL)
{
// see if it went over / under
@ -864,7 +864,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
if (tmthing->health <= 0 || thing->health <= 0)
return true;
if (((tmthing->type == MT_BANANASHIELD) && (thing->type == MT_BANANASHIELD))
if (((tmthing->type == MT_BANANA_SHIELD) && (thing->type == MT_BANANA_SHIELD))
&& (tmthing->target == thing->target)) // Don't hit each other if you have the same target
return true;
@ -891,9 +891,9 @@ static boolean PIT_CheckThing(mobj_t *thing)
P_SetObjectMomZ(tmthing, 8*FRACUNIT, false);
P_InstaThrust(tmthing, R_PointToAngle2(thing->x, thing->y, tmthing->x, tmthing->y)+ANGLE_90, 16*FRACUNIT);
}
else if (thing->type == MT_BANANAITEM || thing->type == MT_BANANASHIELD
else if (thing->type == MT_BANANA || thing->type == MT_BANANA_SHIELD
|| thing->type == MT_GREENITEM || thing->type == MT_GREENSHIELD
|| thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD || thing->type == MT_REDSHIELD
|| thing->type == MT_JAWZ || thing->type == MT_JAWZ_DUD || thing->type == MT_JAWZ_SHIELD
|| thing->type == MT_FIREBALL)
{
// Other Item Damage
@ -924,7 +924,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
}
else if (thing->type == MT_FAKEITEM || thing->type == MT_FAKESHIELD)
{
if (tmthing->type == MT_BANANASHIELD)
if (tmthing->type == MT_BANANA_SHIELD)
{
// This Item Damage
if (tmthing->eflags & MFE_VERTICALFLIP)
@ -973,9 +973,9 @@ static boolean PIT_CheckThing(mobj_t *thing)
return true;
if (thing->type == MT_GREENITEM // When these items collide with the fake item, just the fake item is destroyed
|| thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD
|| thing->type == MT_MINEITEM
|| thing->type == MT_BANANAITEM || thing->type == MT_FIREBALL)
|| thing->type == MT_JAWZ || thing->type == MT_JAWZ_DUD
|| thing->type == MT_SSMINE
|| thing->type == MT_BANANA || thing->type == MT_FIREBALL)
{
// This Item Damage
if (tmthing->eflags & MFE_VERTICALFLIP)
@ -990,9 +990,9 @@ static boolean PIT_CheckThing(mobj_t *thing)
P_InstaThrust(tmthing, R_PointToAngle2(thing->x, thing->y, tmthing->x, tmthing->y)+ANGLE_90, 16*FRACUNIT);
}
else if (thing->type == MT_GREENSHIELD // When these items collide with the fake item, both of them are destroyed
|| thing->type == MT_REDSHIELD
|| thing->type == MT_MINESHIELD
|| thing->type == MT_BANANASHIELD
|| thing->type == MT_JAWZ_SHIELD
|| thing->type == MT_SSMINE_SHIELD
|| thing->type == MT_BANANA_SHIELD
|| thing->type == MT_FAKEITEM || thing->type == MT_FAKESHIELD)
{
// Other Item Damage
@ -1041,7 +1041,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
return true;
}
else if (tmthing->type == MT_MINESHIELD || tmthing->type == MT_MINEITEM)
else if (tmthing->type == MT_SSMINE_SHIELD || tmthing->type == MT_SSMINE)
{
// see if it went over / under
if (tmthing->z > thing->z + thing->height)
@ -1062,8 +1062,8 @@ static boolean PIT_CheckThing(mobj_t *thing)
{
P_KillMobj(tmthing, thing, thing);
}
else if (thing->type == MT_GREENITEM || thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD
|| thing->type == MT_GREENSHIELD || thing->type == MT_REDSHIELD)
else if (thing->type == MT_GREENITEM || thing->type == MT_JAWZ || thing->type == MT_JAWZ_DUD
|| thing->type == MT_GREENSHIELD || thing->type == MT_JAWZ_SHIELD)
{
P_KillMobj(tmthing, thing, thing);
@ -1084,10 +1084,10 @@ static boolean PIT_CheckThing(mobj_t *thing)
}
else if (tmthing->type == MT_PLAYER &&
(thing->type == MT_GREENSHIELD || thing->type == MT_GREENITEM
|| thing->type == MT_REDSHIELD || thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD
|| thing->type == MT_JAWZ_SHIELD || thing->type == MT_JAWZ || thing->type == MT_JAWZ_DUD
|| thing->type == MT_FAKESHIELD || thing->type == MT_FAKEITEM
|| thing->type == MT_BANANASHIELD || thing->type == MT_BANANAITEM
|| thing->type == MT_MINESHIELD || thing->type == MT_MINEITEM
|| thing->type == MT_BANANA_SHIELD || thing->type == MT_BANANA
|| thing->type == MT_SSMINE_SHIELD || thing->type == MT_SSMINE
|| thing->type == MT_MINEEXPLOSION
|| thing->type == MT_SINK || thing->type == MT_FIREBALL
))
@ -1099,11 +1099,11 @@ static boolean PIT_CheckThing(mobj_t *thing)
return true; // underneath
if (tmthing->player && tmthing->player->powers[pw_flashing]
&& !(thing->type == MT_GREENITEM || thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD))
&& !(thing->type == MT_GREENITEM || thing->type == MT_JAWZ || thing->type == MT_JAWZ_DUD))
return true;
if (thing->type == MT_GREENSHIELD || thing->type == MT_REDSHIELD
|| thing->type == MT_GREENITEM || thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD
if (thing->type == MT_GREENSHIELD || thing->type == MT_JAWZ_SHIELD
|| thing->type == MT_GREENITEM || thing->type == MT_JAWZ || thing->type == MT_JAWZ_DUD
|| thing->type == MT_FAKESHIELD || thing->type == MT_FAKEITEM)
{
if ((thing->target == tmthing) && (thing->threshold > 0))
@ -1115,7 +1115,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
// Player Damage
P_DamageMobj(tmthing, thing, thing->target, 1);
if (thing->type == MT_GREENITEM || thing->type == MT_REDITEM || thing->type == MT_REDITEMDUD)
if (thing->type == MT_GREENITEM || thing->type == MT_JAWZ || thing->type == MT_JAWZ_DUD)
S_StartSound(tmthing, sfx_shelit);
// Other Item Damage
@ -1130,7 +1130,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
P_SetObjectMomZ(thing, 8*FRACUNIT, false);
P_InstaThrust(thing, R_PointToAngle2(tmthing->x, tmthing->y, thing->x, thing->y)+ANGLE_90, 16*FRACUNIT);
}
else if (thing->type == MT_BANANASHIELD || thing->type == MT_BANANAITEM
else if (thing->type == MT_BANANA_SHIELD || thing->type == MT_BANANA
|| thing->type == MT_FIREBALL)
{
if ((thing->target == tmthing) && (thing->threshold > 0))
@ -1154,7 +1154,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
P_SetObjectMomZ(thing, 8*FRACUNIT, false);
P_InstaThrust(thing, R_PointToAngle2(tmthing->x, tmthing->y, thing->x, thing->y)+ANGLE_90, 16*FRACUNIT);
}
else if (thing->type == MT_MINESHIELD || thing->type == MT_MINEITEM)
else if (thing->type == MT_SSMINE_SHIELD || thing->type == MT_SSMINE)
{
if ((thing->target == tmthing) && (thing->threshold > 0))
return true;

View file

@ -1401,9 +1401,9 @@ fixed_t P_GetMobjGravity(mobj_t *mo)
case MT_WATERDROP:
gravityadd >>= 1;
break;
case MT_BANANAITEM:
case MT_BANANA:
case MT_FAKEITEM:
case MT_MINEITEM:
case MT_SSMINE:
gravityadd = FixedMul(gravityadd, 5*FRACUNIT/2);
default:
break;
@ -1743,7 +1743,7 @@ void P_XYMovement(mobj_t *mo)
B_MoveBlocked(player);
}
//{ SRB2kart - Jawz
if (mo->type == MT_REDITEM || mo->type == MT_REDITEMDUD)
if (mo->type == MT_JAWZ || mo->type == MT_JAWZ_DUD)
{
if (mo->health == 1)
{
@ -1997,7 +1997,7 @@ void P_XYMovement(mobj_t *mo)
#endif
//{ SRB2kart stuff
if (mo->type == MT_GREENITEM || mo->type == MT_REDITEMDUD || mo->type == MT_REDITEM || mo->type == MT_FIREBALL) //(mo->type == MT_REDITEM && !mo->tracer))
if (mo->type == MT_GREENITEM || mo->type == MT_JAWZ_DUD || mo->type == MT_JAWZ || mo->type == MT_FIREBALL) //(mo->type == MT_JAWZ && !mo->tracer))
return;
if (mo->player && mo->player->kartstuff[k_spinouttimer] && mo->player->speed <= mo->player->normalspeed/2)
@ -2328,10 +2328,10 @@ static boolean P_ZMovement(mobj_t *mo)
// SRB2kart stuff that should die in pits
// Shouldn't stop moving along the Z if there's no speed though!
case MT_FAKEITEM:
case MT_BANANAITEM:
case MT_BANANA:
case MT_GREENITEM:
case MT_REDITEM:
case MT_REDITEMDUD:
case MT_JAWZ:
case MT_JAWZ_DUD:
case MT_FIREBALL:
// Remove stuff from death pits.
if (P_CheckDeathPitCollide(mo))
@ -6642,10 +6642,10 @@ void P_MobjThinker(mobj_t *mobj)
break;
}
case MT_GREENSHIELD:
case MT_REDSHIELD:
case MT_BANANASHIELD:
case MT_JAWZ_SHIELD:
case MT_BANANA_SHIELD:
case MT_FAKESHIELD:
case MT_MINESHIELD:
case MT_SSMINE_SHIELD:
if (mobj->health > 0 && mobj->target && mobj->target->player && mobj->target->player->mo
&& mobj->target->player->health > 0 && !mobj->target->player->spectator)
{
@ -6653,11 +6653,11 @@ void P_MobjThinker(mobj_t *mobj)
const fixed_t radius = FixedHypot(mobj->target->radius, mobj->target->radius) + FixedHypot(mobj->radius, mobj->radius); // mobj's distance from its Target, or Radius.
//mobj->angle += FixedAngle(12*FRACUNIT); // mobj's actual speed.
if ((mobj->type == MT_GREENSHIELD || mobj->type == MT_REDSHIELD) && mobj->lastlook > 0)
if ((mobj->type == MT_GREENSHIELD || mobj->type == MT_JAWZ_SHIELD) && mobj->lastlook > 0)
mobj->angle += FixedAngle(mobj->info->speed);
else if (mobj->type == MT_BANANASHIELD && mobj->lastlook == 2)
else if (mobj->type == MT_BANANA_SHIELD && mobj->lastlook == 2)
mobj->angle = (mobj->target->angle + ANGLE_135);
else if (mobj->type == MT_BANANASHIELD && mobj->lastlook == 3)
else if (mobj->type == MT_BANANA_SHIELD && mobj->lastlook == 3)
mobj->angle = (mobj->target->angle + ANGLE_225);
else
mobj->angle = (mobj->target->angle + ANGLE_180);
@ -6714,9 +6714,9 @@ void P_MobjThinker(mobj_t *mobj)
// Was this so hard?
if ((mobj->type == MT_GREENSHIELD && mobj->target->player->kartstuff[k_itemtype] != KITEM_ORBINAUT)
|| (mobj->type == MT_REDSHIELD && mobj->target->player->kartstuff[k_itemtype] != KITEM_JAWZ)
|| (mobj->type == MT_BANANASHIELD && mobj->target->player->kartstuff[k_itemtype] != KITEM_BANANA)
|| (mobj->type == MT_MINESHIELD && mobj->target->player->kartstuff[k_itemtype] != KITEM_MINE)
|| (mobj->type == MT_JAWZ_SHIELD && mobj->target->player->kartstuff[k_itemtype] != KITEM_JAWZ)
|| (mobj->type == MT_BANANA_SHIELD && mobj->target->player->kartstuff[k_itemtype] != KITEM_BANANA)
|| (mobj->type == MT_SSMINE_SHIELD && mobj->target->player->kartstuff[k_itemtype] != KITEM_MINE)
|| (mobj->type == MT_FAKESHIELD && !mobj->target->player->kartstuff[k_eggmanheld])
|| (mobj->type != MT_FAKESHIELD && !mobj->target->player->kartstuff[k_itemheld])
|| (mobj->lastlook > 0 && mobj->target->player->kartstuff[k_itemamount] < mobj->lastlook))
@ -7335,14 +7335,14 @@ void P_MobjThinker(mobj_t *mobj)
break;
//{ SRB2kart Items - Death States
case MT_GREENITEM:
case MT_REDITEM:
case MT_REDITEMDUD:
case MT_BANANAITEM:
case MT_JAWZ:
case MT_JAWZ_DUD:
case MT_BANANA:
case MT_FAKEITEM:
if (mobj->z <= mobj->floorz)
P_RemoveMobj(mobj);
break;
case MT_MINEITEM:
case MT_SSMINE:
case MT_BLUEEXPLOSION:
if (mobj->health > -100)
{
@ -7852,7 +7852,7 @@ void P_MobjThinker(mobj_t *mobj)
else if (gamespeed == 2)
finalspeed = FixedMul(finalspeed, FRACUNIT+FRACUNIT/4);
mobj->angle = R_PointToAngle2(mobj->x, mobj->y, mobj->x+mobj->momx, mobj->y+mobj->momy);
mobj->angle = R_PointToAngle2(0, 0, mobj->momx, mobj->momy);
if (mobj->health <= 5)
{
INT32 i;
@ -7882,7 +7882,7 @@ void P_MobjThinker(mobj_t *mobj)
S_StartSound(mobj, mobj->info->activesound);
break;
}
case MT_REDITEM:
case MT_JAWZ:
{
sector_t *sec2;
fixed_t topspeed = 64*FRACUNIT;
@ -7932,7 +7932,8 @@ void P_MobjThinker(mobj_t *mobj)
mobj->friction = 0;
}
P_InstaThrust(mobj, R_PointToAngle2(0, 0, mobj->momx, mobj->momy), topspeed);
mobj->angle = R_PointToAngle2(0, 0, mobj->momx, mobj->momy);
P_InstaThrust(mobj, mobj->angle, topspeed);
sec2 = P_ThingOnSpecial3DFloor(mobj);
if ((sec2 && GETSECSPECIAL(sec2->special, 3) == 1)
@ -7942,12 +7943,12 @@ void P_MobjThinker(mobj_t *mobj)
break;
}
case MT_REDITEMDUD:
case MT_JAWZ_DUD:
{
sector_t *sec2;
P_SpawnGhostMobj(mobj);
mobj->angle = R_PointToAngle2(mobj->x, mobj->y, mobj->x+mobj->momx, mobj->y+mobj->momy);
mobj->angle = R_PointToAngle2(0, 0, mobj->momx, mobj->momy);
P_InstaThrust(mobj, mobj->angle, mobj->info->speed);
sec2 = P_ThingOnSpecial3DFloor(mobj);
@ -7964,7 +7965,7 @@ void P_MobjThinker(mobj_t *mobj)
break;
}
case MT_BANANAITEM:
case MT_BANANA:
case MT_FAKEITEM:
if (mobj->momx || mobj->momy)
P_SpawnGhostMobj(mobj);
@ -7992,7 +7993,7 @@ void P_MobjThinker(mobj_t *mobj)
if (mobj->threshold > 0)
mobj->threshold--;
break;
case MT_MINEITEM:
case MT_SSMINE:
if (mobj->target && mobj->target->player)
mobj->color = mobj->target->player->skincolor;
else
@ -8001,8 +8002,8 @@ void P_MobjThinker(mobj_t *mobj)
P_SpawnGhostMobj(mobj);
if (P_IsObjectOnGround(mobj))
{
if (mobj->state == &states[S_MINEAIR1] || mobj->state == &states[S_MINEAIR2])
P_SetMobjState(mobj, S_MINEDEPLOY1);
if (mobj->state == &states[S_SSMINE_AIR1] || mobj->state == &states[S_SSMINE_AIR2])
P_SetMobjState(mobj, S_SSMINE_DEPLOY1);
if (mobj->reactiontime >= mobj->info->reactiontime)
{
mobj->momx = mobj->momy = 0;
@ -8016,8 +8017,8 @@ void P_MobjThinker(mobj_t *mobj)
if (!mobj->reactiontime)
P_KillMobj(mobj, NULL, NULL);
}
if (mobj->state == &states[S_MINEITEM1] || mobj->state == &states[S_MINEITEM2]
|| mobj->state == &states[S_MINEITEM3] || mobj->state == &states[S_MINEITEM4])
if (mobj->state == &states[S_SSMINE1] || mobj->state == &states[S_SSMINE2]
|| mobj->state == &states[S_SSMINE3] || mobj->state == &states[S_SSMINE4])
A_GrenadeRing(mobj);
if (mobj->threshold > 0)
mobj->threshold--;
@ -8829,15 +8830,15 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type)
switch (mobj->type)
{
case MT_PLAYER:
case MT_BIGMACE: case MT_SMALLMACE:
case MT_BIGMACE: case MT_SMALLMACE:
case MT_FALLINGROCK:
//case MT_RANDOMITEM:
case MT_BANANAITEM: case MT_BANANASHIELD:
case MT_GREENITEM: case MT_GREENSHIELD:
case MT_REDITEM: case MT_REDSHIELD: case MT_REDITEMDUD:
case MT_BATTLEBALLOON: case MT_FIREBALL:
case MT_FAKEITEM: case MT_FAKESHIELD:
case MT_MINEITEM: case MT_MINESHIELD:
case MT_BANANA: case MT_BANANA_SHIELD:
case MT_GREENITEM: case MT_GREENSHIELD:
case MT_JAWZ: case MT_JAWZ_DUD: case MT_JAWZ_SHIELD:
case MT_BATTLEBALLOON: case MT_FIREBALL:
case MT_FAKEITEM: case MT_FAKESHIELD:
case MT_SSMINE: case MT_SSMINE_SHIELD:
P_SpawnShadowMobj(mobj);
default:
break;

View file

@ -7836,9 +7836,9 @@ void P_NukeEnemies(mobj_t *inflictor, mobj_t *source, fixed_t radius)
P_DamageMobj(mo, inflictor, source, 1);
//{ SRB2kart
if (mo->type == MT_GREENITEM || mo->type == MT_REDITEM || mo->type == MT_REDITEMDUD
|| mo->type == MT_GREENSHIELD || mo->type == MT_REDSHIELD
|| mo->type == MT_BANANAITEM || mo->type == MT_BANANASHIELD
if (mo->type == MT_GREENITEM || mo->type == MT_JAWZ || mo->type == MT_JAWZ_DUD
|| mo->type == MT_GREENSHIELD || mo->type == MT_JAWZ_SHIELD
|| mo->type == MT_BANANA || mo->type == MT_BANANA_SHIELD
|| mo->type == MT_FAKEITEM || mo->type == MT_FAKESHIELD
|| mo->type == MT_FIREBALL)
{