* Ported in all of the Flickies from flickiesreduced8.wad except for the Flicker and seed.

* Fixed a crash bug in the Flicky fly function I introduced sleepily last night.
This commit is contained in:
toasterbabe 2016-12-31 16:55:06 +00:00
parent d3a70eb1db
commit 311886e582
8 changed files with 897 additions and 302 deletions

View file

@ -997,24 +997,24 @@ static const struct {
const char *name; const char *name;
const mobjtype_t type; const mobjtype_t type;
} FLICKYTYPES[] = { } FLICKYTYPES[] = {
{"BLUEBIRD", MT_BIRD}, //MT_FLICKY_A}, {"BLUEBIRD", MT_FLICKY_01},
{"RABBIT", MT_BUNNY}, //MT_FLICKY_B}, {"RABBIT", MT_FLICKY_02},
{"CHICKEN", MT_CHICKEN}, //MT_FLICKY_C}, {"CHICKEN", MT_FLICKY_03},
//{"SEAL", MT_FLICKY_D}, {"SEAL", MT_FLICKY_04},
//{"PIG", MT_FLICKY_E}, {"PIG", MT_FLICKY_05},
//{"CHIPMUNK", MT_FLICKY_F}, {"CHIPMUNK", MT_FLICKY_06},
//{"PENGUIN", MT_FLICKY_G}, {"PENGUIN", MT_FLICKY_07},
//{"FISH", MT_FLICKY_H}, {"FISH", MT_FLICKY_08},
//{"RAM", MT_FLICKY_I}, {"RAM", MT_FLICKY_09},
//{"PUFFIN", MT_FLICKY_J}, {"PUFFIN", MT_FLICKY_10},
{"COW", MT_COW}, //MT_FLICKY_K}, {"COW", MT_FLICKY_11},
{"RAT", MT_MOUSE}, //MT_FLICKY_L}, {"RAT", MT_FLICKY_12},
//{"BEAR", MT_FLICKY_M}, {"BEAR", MT_FLICKY_13},
//{"DOVE", MT_FLICKY_N}, {"DOVE", MT_FLICKY_14},
//{"CAT", MT_FLICKY_O}, {"CAT", MT_FLICKY_15},
//{"CANARY", MT_FLICKY_P}, {"CANARY", MT_FLICKY_16},
//{"FLICKER", MT_FLICKER}, //{"FLICKER", MT_FLICKER},
//{"SEED", MT_CDSEED}, {"SEED", MT_SEED},//MT_CDSEED},
{NULL, 0} {NULL, 0}
}; };
@ -5621,43 +5621,133 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_SSPK4", "S_SSPK4",
"S_SSPK5", "S_SSPK5",
// Freed Birdie // Flicky-sized bubble
"S_BIRD1", "S_FLICKY_BUBBLE",
"S_BIRD2",
"S_BIRD3",
// Freed Bunny // Bluebird
"S_BUNNY1", "S_FLICKY_01_OUT",
"S_BUNNY2", "S_FLICKY_01_FLAP1",
"S_BUNNY3", "S_FLICKY_01_FLAP2",
"S_BUNNY4", "S_FLICKY_01_FLAP3",
"S_BUNNY5",
"S_BUNNY6",
"S_BUNNY7",
"S_BUNNY8",
"S_BUNNY9",
"S_BUNNY10",
// Freed Mouse // Rabbit
"S_MOUSE1", "S_FLICKY_02_OUT",
"S_MOUSE2", "S_FLICKY_02_AIM",
"S_FLICKY_02_HOP",
"S_FLICKY_02_UP",
"S_FLICKY_02_DOWN",
// Freed Chicken // Chicken
"S_CHICKEN1", "S_FLICKY_03_OUT",
"S_CHICKENHOP", "S_FLICKY_03_AIM",
"S_CHICKENFLY1", "S_FLICKY_03_HOP",
"S_CHICKENFLY2", "S_FLICKY_03_UP",
"S_FLICKY_03_FLAP1",
"S_FLICKY_03_FLAP2",
// Freed Cow // Seal
"S_COW1", "S_FLICKY_04_OUT",
"S_COW2", "S_FLICKY_04_AIM",
"S_COW3", "S_FLICKY_04_HOP",
"S_COW4", "S_FLICKY_04_UP",
"S_FLICKY_04_DOWN",
"S_FLICKY_04_SWIM1",
"S_FLICKY_04_SWIM2",
"S_FLICKY_04_SWIM3",
"S_FLICKY_04_SWIM4",
// Red Birdie in Bubble // Pig
"S_RBIRD1", "S_FLICKY_05_OUT",
"S_RBIRD2", "S_FLICKY_05_AIM",
"S_RBIRD3", "S_FLICKY_05_HOP",
"S_FLICKY_05_UP",
"S_FLICKY_05_DOWN",
// Chipmunk
"S_FLICKY_06_OUT",
"S_FLICKY_06_AIM",
"S_FLICKY_06_HOP",
"S_FLICKY_06_UP",
"S_FLICKY_06_DOWN",
// Penguin
"S_FLICKY_07_OUT",
"S_FLICKY_07_AIML",
"S_FLICKY_07_HOPL",
"S_FLICKY_07_UPL",
"S_FLICKY_07_DOWNL",
"S_FLICKY_07_AIMR",
"S_FLICKY_07_HOPR",
"S_FLICKY_07_UPR",
"S_FLICKY_07_DOWNR",
"S_FLICKY_07_SWIM1",
"S_FLICKY_07_SWIM2",
"S_FLICKY_07_SWIM3",
// Fish
"S_FLICKY_08_OUT",
"S_FLICKY_08_AIM",
"S_FLICKY_08_HOP",
"S_FLICKY_08_FLAP1",
"S_FLICKY_08_FLAP2",
"S_FLICKY_08_FLAP3",
"S_FLICKY_08_FLAP4",
"S_FLICKY_08_SWIM1",
"S_FLICKY_08_SWIM2",
"S_FLICKY_08_SWIM3",
"S_FLICKY_08_SWIM4",
// Ram
"S_FLICKY_09_OUT",
"S_FLICKY_09_AIM",
"S_FLICKY_09_HOP",
"S_FLICKY_09_UP",
"S_FLICKY_09_DOWN",
// Puffin
"S_FLICKY_10_OUT",
"S_FLICKY_10_FLAP1",
"S_FLICKY_10_FLAP2",
// Cow
"S_FLICKY_11_OUT",
"S_FLICKY_11_AIM",
"S_FLICKY_11_RUN1",
"S_FLICKY_11_RUN2",
"S_FLICKY_11_RUN3",
// Rat
"S_FLICKY_12_OUT",
"S_FLICKY_12_AIM",
"S_FLICKY_12_RUN1",
"S_FLICKY_12_RUN2",
"S_FLICKY_12_RUN3",
// Bear
"S_FLICKY_13_OUT",
"S_FLICKY_13_AIM",
"S_FLICKY_13_HOP",
"S_FLICKY_13_UP",
"S_FLICKY_13_DOWN",
// Dove
"S_FLICKY_14_OUT",
"S_FLICKY_14_FLAP1",
"S_FLICKY_14_FLAP2",
"S_FLICKY_14_FLAP3",
// Cat
"S_FLICKY_15_OUT",
"S_FLICKY_15_AIM",
"S_FLICKY_15_HOP",
"S_FLICKY_15_UP",
"S_FLICKY_15_DOWN",
// Canary
"S_FLICKY_16_OUT",
"S_FLICKY_16_FLAP1",
"S_FLICKY_16_FLAP2",
"S_FLICKY_16_FLAP3",
"S_YELLOWSPRING", "S_YELLOWSPRING",
"S_YELLOWSPRING2", "S_YELLOWSPRING2",
@ -6157,6 +6247,7 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_NIGHTOPIANHELPER6", "S_NIGHTOPIANHELPER6",
"S_NIGHTOPIANHELPER7", "S_NIGHTOPIANHELPER7",
"S_NIGHTOPIANHELPER8", "S_NIGHTOPIANHELPER8",
"S_NIGHTOPIANHELPER9",
"S_CRUMBLE1", "S_CRUMBLE1",
"S_CRUMBLE2", "S_CRUMBLE2",
@ -6591,13 +6682,23 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
"MT_IVSP", // Invincibility sparkles "MT_IVSP", // Invincibility sparkles
"MT_SUPERSPARK", // Super Sonic Spark "MT_SUPERSPARK", // Super Sonic Spark
// Freed Animals // Flickies
"MT_BIRD", // Birdie freed! "MT_FLICKY_01", // Bluebird
"MT_BUNNY", // Bunny freed! "MT_FLICKY_02", // Rabbit
"MT_MOUSE", // Mouse "MT_FLICKY_03", // Chicken
"MT_CHICKEN", // Chicken "MT_FLICKY_04", // Seal
"MT_COW", // Cow "MT_FLICKY_05", // Pig
"MT_REDBIRD", // Red Birdie in Bubble "MT_FLICKY_06", // Chipmunk
"MT_FLICKY_07", // Penguin
"MT_FLICKY_08", // Fish
"MT_FLICKY_09", // Ram
"MT_FLICKY_10", // Puffin
"MT_FLICKY_11", // Cow
"MT_FLICKY_12", // Rat
"MT_FLICKY_13", // Bear
"MT_FLICKY_14", // Dove
"MT_FLICKY_15", // Cat
"MT_FLICKY_16", // Canary
// Environmental Effects // Environmental Effects
"MT_RAIN", // Rain "MT_RAIN", // Rain

View file

@ -370,13 +370,24 @@ light_t *t_lspr[NUMSPRITES] =
&lspr[NOLIGHT], // SPR_GOAL &lspr[NOLIGHT], // SPR_GOAL
// Freed Animals // Flickies
&lspr[NOLIGHT], // SPR_BIRD &lspr[NOLIGHT], // SPR_FBUB
&lspr[NOLIGHT], // SPR_BUNY &lspr[NOLIGHT], // SPR_FL01
&lspr[NOLIGHT], // SPR_MOUS &lspr[NOLIGHT], // SPR_FL02
&lspr[NOLIGHT], // SPR_CHIC &lspr[NOLIGHT], // SPR_FL03
&lspr[NOLIGHT], // SPR_COWZ &lspr[NOLIGHT], // SPR_FL04
&lspr[NOLIGHT], // SPR_RBRD &lspr[NOLIGHT], // SPR_FL05
&lspr[NOLIGHT], // SPR_FL06
&lspr[NOLIGHT], // SPR_FL07
&lspr[NOLIGHT], // SPR_FL08
&lspr[NOLIGHT], // SPR_FL09
&lspr[NOLIGHT], // SPR_FL10
&lspr[NOLIGHT], // SPR_FL11
&lspr[NOLIGHT], // SPR_FL12
&lspr[NOLIGHT], // SPR_FL13
&lspr[NOLIGHT], // SPR_FL14
&lspr[NOLIGHT], // SPR_FL15
&lspr[NOLIGHT], // SPR_FL16
// Springs // Springs
&lspr[NOLIGHT], // SPR_SPRY &lspr[NOLIGHT], // SPR_SPRY

View file

@ -254,13 +254,24 @@ char sprnames[NUMSPRITES + 1][5] =
"GOAL", // Special Stage goal (here because lol NiGHTS) "GOAL", // Special Stage goal (here because lol NiGHTS)
// Freed Animals // Flickies
"BIRD", // Birdie freed! "FBUB", // Flicky-sized bubble
"BUNY", // Bunny freed! "FL01", // Bluebird
"MOUS", // Mouse "FL02", // Rabbit
"CHIC", // Chicken "FL03", // Chicken
"COWZ", // Cow "FL04", // Seal
"RBRD", // Red Birdie in Bubble "FL05", // Pig
"FL06", // Chipmunk
"FL07", // Penguin
"FL08", // Fish
"FL09", // Ram
"FL10", // Puffin
"FL11", // Cow
"FL12", // Rat
"FL13", // Bear
"FL14", // Dove
"FL15", // Cat
"FL16", // Canary
// Springs // Springs
"SPRY", // yellow spring "SPRY", // yellow spring
@ -2235,43 +2246,133 @@ state_t states[NUMSTATES] =
{SPR_SSPK, 1, 2, {NULL}, 0, 0, S_SSPK5}, // S_SSPK4 {SPR_SSPK, 1, 2, {NULL}, 0, 0, S_SSPK5}, // S_SSPK4
{SPR_SSPK, 0, 2, {NULL}, 0, 0, S_NULL}, // S_SSPK5 {SPR_SSPK, 0, 2, {NULL}, 0, 0, S_NULL}, // S_SSPK5
// Freed Birdie // Flicky-sized bubble
{SPR_BIRD, 0, 4, {NULL}, 0, 0, S_BIRD2}, // S_BIRD1 {SPR_FBUB, 0, -1, {NULL}, 0, 0, S_NULL}, // S_FLICKY_BUBBLE
{SPR_BIRD, 0, 4, {A_Chase}, 0, 0, S_BIRD3}, // S_BIRD2
{SPR_BIRD, 1, 4, {A_Chase}, 0, 0, S_BIRD2}, // S_BIRD3
// Freed Bunny // Bluebird
{SPR_BUNY, 0, 4, {NULL}, 0, 0, S_BUNNY2}, // S_BUNNY1 {SPR_FL01, 0, 2, {A_FlickyCheck}, S_FLICKY_01_FLAP1, S_FLICKY_01_FLAP1, S_FLICKY_01_OUT}, // S_FLICKY_01_OUT
{SPR_BUNY, 0, 64, {NULL}, 0, 0, S_BUNNY3}, // S_BUNNY2 {SPR_FL01, 1, 3, {A_FlickyFly}, 4*FRACUNIT, 16*FRACUNIT, S_FLICKY_01_FLAP2}, // S_FLICKY_01_FLAP1
{SPR_BUNY, 1, 2, {A_BunnyHop}, 6, 3, S_BUNNY4}, // S_BUNNY3 {SPR_FL01, 2, 3, {A_FlickyFly}, 4*FRACUNIT, 16*FRACUNIT, S_FLICKY_01_FLAP3}, // S_FLICKY_01_FLAP2
{SPR_BUNY, 1, 2, {A_Chase}, 0, 0, S_BUNNY5}, // S_BUNNY4 {SPR_FL01, 3, 3, {A_FlickyFly}, 4*FRACUNIT, 16*FRACUNIT, S_FLICKY_01_FLAP1}, // S_FLICKY_01_FLAP3
{SPR_BUNY, 1, 2, {A_Chase}, 0, 0, S_BUNNY6}, // S_BUNNY5
{SPR_BUNY, 1, 2, {A_Chase}, 0, 0, S_BUNNY7}, // S_BUNNY6
{SPR_BUNY, 1, 2, {A_Chase}, 0, 0, S_BUNNY8}, // S_BUNNY7
{SPR_BUNY, 1, 2, {A_Chase}, 0, 0, S_BUNNY9}, // S_BUNNY8
{SPR_BUNY, 1, 2, {A_Chase}, 0, 0, S_BUNNY10}, // S_BUNNY9
{SPR_BUNY, 1, 2, {A_Chase}, 0, 0, S_BUNNY2}, // S_BUNNY10
// Freed Mouse // Rabbit
{SPR_MOUS, 0, 2, {A_MouseThink}, 0, 0, S_MOUSE2}, // S_MOUSE1 {SPR_FL02, 0, 2, {A_FlickyCheck}, S_FLICKY_02_AIM, 0, S_FLICKY_02_OUT}, // S_FLICKY_02_OUT
{SPR_MOUS, 1, 2, {A_MouseThink}, 0, 0, S_MOUSE1}, // S_MOUSE2 {SPR_FL02, 1, 1, {A_FlickyAim}, ANG30, 32*FRACUNIT, S_FLICKY_02_HOP}, // S_FLICKY_02_AIM
{SPR_FL02, 1, 1, {A_FlickyHop}, 6*FRACUNIT, 4*FRACUNIT, S_FLICKY_02_UP}, // S_FLICKY_02_HOP
{SPR_FL02, 2, 2, {A_FlickyCheck}, S_FLICKY_02_AIM, S_FLICKY_02_DOWN, S_FLICKY_02_UP}, // S_FLICKY_02_UP
{SPR_FL02, 3, 2, {A_FlickyCheck}, S_FLICKY_02_AIM, 0, S_FLICKY_02_DOWN}, // S_FLICKY_02_DOWN
// Freed Chicken // Chicken
{SPR_CHIC, 0, 7, {A_Chase}, 3, 0, S_CHICKENHOP}, // S_CHICKEN1 {SPR_FL03, 0, 2, {A_FlickyCheck}, S_FLICKY_03_AIM, S_FLICKY_03_FLAP1, S_FLICKY_03_OUT}, // S_FLICKY_03_OUT
{SPR_CHIC, 0, 1, {A_BunnyHop}, 4, 2, S_CHICKENFLY1}, // S_CHICKENHOP {SPR_FL03, 1, 1, {A_FlickyAim}, ANGLE_45, 32*FRACUNIT, S_FLICKY_03_HOP}, // S_FLICKY_03_AIM
{SPR_CHIC, 1, 2, {A_ChickenCheck}, 0, 0, S_CHICKENFLY2}, // S_CHICKENFLY1 {SPR_FL03, 1, 1, {A_FlickyHop}, 7*FRACUNIT, 2*FRACUNIT, S_FLICKY_03_UP}, // S_FLICKY_03_HOP
{SPR_CHIC, 2, 2, {NULL}, 0, 0, S_CHICKENFLY1}, // S_CHICKENFLY2 {SPR_FL03, 2, 2, {A_FlickyFlutter}, S_FLICKY_03_AIM, S_FLICKY_03_FLAP1, S_FLICKY_03_UP}, // S_FLICKY_03_UP
{SPR_FL03, 3, 2, {A_FlickyFlutter}, S_FLICKY_03_AIM, 0, S_FLICKY_03_FLAP2}, // S_FLICKY_03_FLAP1
{SPR_FL03, 4, 2, {A_FlickyFlutter}, S_FLICKY_03_AIM, 0, S_FLICKY_03_FLAP1}, // S_FLICKY_03_FLAP2
// Freed Cow // Seal
{SPR_COWZ, 0, 4, {A_Chase}, 3, 0, S_COW2}, // S_COW1 {SPR_FL04, 0, 2, {A_FlickyCheck}, S_FLICKY_04_AIM, 0, S_FLICKY_04_OUT}, // S_FLICKY_04_OUT
{SPR_COWZ, 1, 4, {A_Chase}, 3, 0, S_COW3}, // S_COW2 {SPR_FL04, 1, 1, {A_FlickyAim}, ANG30, 32*FRACUNIT, S_FLICKY_04_HOP}, // S_FLICKY_04_AIM
{SPR_COWZ, 2, 4, {A_Chase}, 3, 0, S_COW4}, // S_COW3 {SPR_FL04, 1, 1, {A_FlickyHop}, 3*FRACUNIT, 2*FRACUNIT, S_FLICKY_04_UP}, // S_FLICKY_04_HOP
{SPR_COWZ, 3, 4, {A_Chase}, 3, 0, S_COW1}, // S_COW4 {SPR_FL04, 2, 4, {A_FlickyCheck}, S_FLICKY_04_AIM, S_FLICKY_04_DOWN, S_FLICKY_04_UP}, // S_FLICKY_04_UP
{SPR_FL04, 3, 4, {A_FlickyCheck}, S_FLICKY_04_AIM, 0, S_FLICKY_04_DOWN}, // S_FLICKY_04_DOWN
{SPR_FL04, 3, 4, {A_FlickyFly}, 2*FRACUNIT, 48*FRACUNIT, S_FLICKY_04_SWIM2}, // S_FLICKY_04_SWIM1
{SPR_FL04, 4, 4, {A_FlickyCoast}, FRACUNIT, S_FLICKY_04_SWIM1, S_FLICKY_04_SWIM3}, // S_FLICKY_04_SWIM2
{SPR_FL04, 3, 4, {A_FlickyCoast}, FRACUNIT, S_FLICKY_04_SWIM1, S_FLICKY_04_SWIM4}, // S_FLICKY_04_SWIM3
{SPR_FL04, 5, 4, {A_FlickyCoast}, FRACUNIT, S_FLICKY_04_SWIM1, S_FLICKY_04_SWIM1}, // S_FLICKY_04_SWIM4
// Freed Birdie // Pig
{SPR_RBRD, 0, 4, {NULL}, 0, 0, S_RBIRD2}, // S_RBIRD1 {SPR_FL05, 0, 2, {A_FlickyCheck}, S_FLICKY_05_AIM, 0, S_FLICKY_05_OUT}, // S_FLICKY_05_OUT
{SPR_RBRD, 0, 4, {A_Chase}, 0, 0, S_RBIRD3}, // S_RBIRD2 {SPR_FL05, 1, 1, {A_FlickyAim}, ANG20, 32*FRACUNIT, S_FLICKY_05_HOP}, // S_FLICKY_05_AIM
{SPR_RBRD, 1, 4, {A_Chase}, 0, 0, S_RBIRD2}, // S_RBIRD3 {SPR_FL05, 1, 1, {A_FlickyHop}, 4*FRACUNIT, 3*FRACUNIT, S_FLICKY_05_UP}, // S_FLICKY_05_HOP
{SPR_FL05, 2, 2, {A_FlickyCheck}, S_FLICKY_05_AIM, S_FLICKY_05_DOWN, S_FLICKY_05_UP}, // S_FLICKY_05_UP
{SPR_FL05, 3, 2, {A_FlickyCheck}, S_FLICKY_05_AIM, 0, S_FLICKY_05_DOWN}, // S_FLICKY_05_DOWN
// Chipmunk
{SPR_FL06, 0, 2, {A_FlickyCheck}, S_FLICKY_06_AIM, 0, S_FLICKY_06_OUT}, // S_FLICKY_06_OUT
{SPR_FL06, 1, 1, {A_FlickyAim}, ANGLE_90, 32*FRACUNIT, S_FLICKY_06_HOP}, // S_FLICKY_06_AIM
{SPR_FL06, 1, 1, {A_FlickyHop}, 5*FRACUNIT, 6*FRACUNIT, S_FLICKY_06_UP}, // S_FLICKY_06_HOP
{SPR_FL06, 2, 2, {A_FlickyCheck}, S_FLICKY_06_AIM, S_FLICKY_06_DOWN, S_FLICKY_06_UP}, // S_FLICKY_06_UP
{SPR_FL06, 3, 2, {A_FlickyCheck}, S_FLICKY_06_AIM, 0, S_FLICKY_06_DOWN}, // S_FLICKY_06_DOWN
// Penguin
{SPR_FL07, 0, 2, {A_FlickyCheck}, S_FLICKY_07_AIML, 0, S_FLICKY_07_OUT}, // S_FLICKY_07_OUT
{SPR_FL07, 1, 1, {A_FlickyAim}, ANG30, 32*FRACUNIT, S_FLICKY_07_HOPL}, // S_FLICKY_07_AIML
{SPR_FL07, 1, 1, {A_FlickyHop}, 4*FRACUNIT, 2*FRACUNIT, S_FLICKY_07_UPL}, // S_FLICKY_07_HOPL
{SPR_FL07, 2, 4, {A_FlickyCheck}, S_FLICKY_07_AIMR, S_FLICKY_07_DOWNL, S_FLICKY_07_UPL}, // S_FLICKY_07_UPL
{SPR_FL07, 1, 4, {A_FlickyCheck}, S_FLICKY_07_AIMR, 0, S_FLICKY_07_DOWNL}, // S_FLICKY_07_DOWNL
{SPR_FL07, 1, 1, {A_FlickyAim}, ANG30, 32*FRACUNIT, S_FLICKY_07_HOPR}, // S_FLICKY_07_AIMR
{SPR_FL07, 1, 1, {A_FlickyHop}, 4*FRACUNIT, 2*FRACUNIT, S_FLICKY_07_UPR}, // S_FLICKY_07_HOPR
{SPR_FL07, 3, 4, {A_FlickyCheck}, S_FLICKY_07_AIML, S_FLICKY_07_DOWNR, S_FLICKY_07_UPR}, // S_FLICKY_07_UPR
{SPR_FL07, 1, 4, {A_FlickyCheck}, S_FLICKY_07_AIML, 0, S_FLICKY_07_DOWNR}, // S_FLICKY_07_DOWNR
{SPR_FL07, 4, 4, {A_FlickyFly}, 3*FRACUNIT, 72*FRACUNIT, S_FLICKY_07_SWIM2}, // S_FLICKY_07_SWIM1
{SPR_FL07, 5, 4, {A_FlickyCoast}, FRACUNIT, S_FLICKY_07_SWIM1, S_FLICKY_07_SWIM3}, // S_FLICKY_07_SWIM2
{SPR_FL07, 6, 4, {A_FlickyCoast}, 2*FRACUNIT, S_FLICKY_07_SWIM1, S_FLICKY_07_SWIM3}, // S_FLICKY_07_SWIM3
// Fish
{SPR_FL08, 0, 2, {A_FlickyCheck}, S_FLICKY_08_AIM, 0, S_FLICKY_08_OUT}, // S_FLICKY_08_OUT
{SPR_FL08, 2, 1, {A_FlickyAim}, ANG30, 32*FRACUNIT, S_FLICKY_08_HOP}, // S_FLICKY_08_AIM
{SPR_FL08, 2, 1, {A_FlickyFlounder}, 2*FRACUNIT, 1*FRACUNIT, S_FLICKY_08_FLAP1}, // S_FLICKY_08_HOP
{SPR_FL08, 0, 4, {A_FlickyCheck}, S_FLICKY_08_AIM, 0, S_FLICKY_08_FLAP2}, // S_FLICKY_08_FLAP1
{SPR_FL08, 1, 4, {A_FlickyCheck}, S_FLICKY_08_AIM, 0, S_FLICKY_08_FLAP3}, // S_FLICKY_08_FLAP2
{SPR_FL08, 0, 4, {A_FlickyCheck}, S_FLICKY_08_AIM, 0, S_FLICKY_08_FLAP4}, // S_FLICKY_08_FLAP3
{SPR_FL08, 2, 4, {A_FlickyCheck}, S_FLICKY_08_AIM, 0, S_FLICKY_08_FLAP1}, // S_FLICKY_08_FLAP4
{SPR_FL08, 0, 4, {A_FlickyFly}, 3*FRACUNIT, 64*FRACUNIT, S_FLICKY_08_SWIM2}, // S_FLICKY_08_SWIM1
{SPR_FL08, 1, 4, {A_FlickyCoast}, FRACUNIT, S_FLICKY_08_SWIM1, S_FLICKY_08_SWIM3}, // S_FLICKY_08_SWIM2
{SPR_FL08, 0, 4, {A_FlickyCoast}, FRACUNIT, S_FLICKY_08_SWIM1, S_FLICKY_08_SWIM4}, // S_FLICKY_08_SWIM3
{SPR_FL08, 2, 4, {A_FlickyCoast}, FRACUNIT, S_FLICKY_08_SWIM1, S_FLICKY_08_SWIM4}, // S_FLICKY_08_SWIM4
// Ram
{SPR_FL09, 0, 2, {A_FlickyCheck}, S_FLICKY_09_AIM, 0, S_FLICKY_09_OUT}, // S_FLICKY_09_OUT
{SPR_FL09, 1, 1, {A_FlickyAim}, ANG30, 32*FRACUNIT, S_FLICKY_09_HOP}, // S_FLICKY_09_AIM
{SPR_FL09, 1, 1, {A_FlickyHop}, 7*FRACUNIT, 2*FRACUNIT, S_FLICKY_09_UP}, // S_FLICKY_09_HOP
{SPR_FL09, 2, 2, {A_FlickyCheck}, S_FLICKY_09_AIM, S_FLICKY_09_DOWN, S_FLICKY_09_UP}, // S_FLICKY_09_UP
{SPR_FL09, 3, 2, {A_FlickyCheck}, S_FLICKY_09_AIM, 0, S_FLICKY_09_DOWN}, // S_FLICKY_09_DOWN
// Puffin
{SPR_FL10, 0, 2, {A_FlickyCheck}, S_FLICKY_10_FLAP1, S_FLICKY_10_FLAP1, S_FLICKY_10_OUT}, // S_FLICKY_10_OUT
{SPR_FL10, 1, 3, {A_FlickySoar}, 4*FRACUNIT, 16*FRACUNIT, S_FLICKY_10_FLAP2}, // S_FLICKY_10_FLAP1
{SPR_FL10, 2, 3, {A_FlickySoar}, 4*FRACUNIT, 16*FRACUNIT, S_FLICKY_10_FLAP1}, // S_FLICKY_10_FLAP2
// Cow
{SPR_FL11, 0, 2, {A_FlickyCheck}, S_FLICKY_11_AIM, 0, S_FLICKY_11_OUT}, // S_FLICKY_11_OUT
{SPR_FL11, 1, 1, {A_FlickyAim}, ANGLE_90, 64*FRACUNIT, S_FLICKY_11_RUN1}, // S_FLICKY_11_AIM
{SPR_FL11, 1, 3, {A_FlickyHop}, FRACUNIT/2, 2*FRACUNIT, S_FLICKY_11_RUN2}, // S_FLICKY_11_RUN1
{SPR_FL11, 2, 4, {A_FlickyHop}, FRACUNIT/2, 2*FRACUNIT, S_FLICKY_11_RUN3}, // S_FLICKY_11_RUN2
{SPR_FL11, 3, 4, {A_FlickyHop}, FRACUNIT/2, 2*FRACUNIT, S_FLICKY_11_AIM}, // S_FLICKY_11_RUN3
// Rat
{SPR_FL12, 0, 2, {A_FlickyCheck}, S_FLICKY_12_AIM, 0, S_FLICKY_12_OUT}, // S_FLICKY_12_OUT
{SPR_FL12, 1, 1, {A_FlickyAim}, ANGLE_90, 32*FRACUNIT, S_FLICKY_12_RUN1}, // S_FLICKY_12_AIM
{SPR_FL12, 1, 2, {A_FlickyHop}, 1, 12*FRACUNIT, S_FLICKY_12_RUN2}, // S_FLICKY_12_RUN1
{SPR_FL12, 2, 3, {A_FlickyHop}, 1, 12*FRACUNIT, S_FLICKY_12_RUN3}, // S_FLICKY_12_RUN2
{SPR_FL12, 3, 3, {A_FlickyHop}, 1, 12*FRACUNIT, S_FLICKY_12_AIM}, // S_FLICKY_12_RUN3
// Bear
{SPR_FL13, 0, 2, {A_FlickyCheck}, S_FLICKY_13_AIM, 0, S_FLICKY_13_OUT}, // S_FLICKY_13_OUT
{SPR_FL13, 1, 1, {A_FlickyAim}, ANG30, 32*FRACUNIT, S_FLICKY_13_HOP}, // S_FLICKY_13_AIM
{SPR_FL13, 1, 1, {A_FlickyHop}, 5*FRACUNIT, 3*FRACUNIT, S_FLICKY_13_UP}, // S_FLICKY_13_HOP
{SPR_FL13, 2, 2, {A_FlickyCheck}, S_FLICKY_13_AIM, S_FLICKY_13_DOWN, S_FLICKY_13_UP}, // S_FLICKY_13_UP
{SPR_FL13, 3, 2, {A_FlickyCheck}, S_FLICKY_13_AIM, 0, S_FLICKY_13_DOWN}, // S_FLICKY_13_DOWN
// Dove
{SPR_FL14, 0, 2, {A_FlickyCheck}, S_FLICKY_14_FLAP1, S_FLICKY_14_FLAP1, S_FLICKY_14_OUT}, // S_FLICKY_14_OUT
{SPR_FL14, 1, 3, {A_FlickySoar}, 4*FRACUNIT, 32*FRACUNIT, S_FLICKY_14_FLAP2}, // S_FLICKY_14_FLAP1
{SPR_FL14, 2, 3, {A_FlickySoar}, 4*FRACUNIT, 32*FRACUNIT, S_FLICKY_14_FLAP3}, // S_FLICKY_14_FLAP2
{SPR_FL14, 3, 3, {A_FlickySoar}, 4*FRACUNIT, 32*FRACUNIT, S_FLICKY_14_FLAP1}, // S_FLICKY_14_FLAP3
// Cat
{SPR_FL15, 0, 2, {A_FlickyCheck}, S_FLICKY_15_AIM, 0, S_FLICKY_15_OUT}, // S_FLICKY_15_OUT
{SPR_FL15, 1, 1, {A_FlickyAim}, ANG30, 32*FRACUNIT, S_FLICKY_15_HOP}, // S_FLICKY_15_AIM
{SPR_FL15, 1, 1, {A_FlickyFlounder}, 2*FRACUNIT, 6*FRACUNIT, S_FLICKY_15_UP}, // S_FLICKY_15_HOP
{SPR_FL15, 2, 2, {A_FlickyCheck}, S_FLICKY_15_AIM, S_FLICKY_15_DOWN, S_FLICKY_15_UP}, // S_FLICKY_15_UP
{SPR_FL15, 3, 2, {A_FlickyCheck}, S_FLICKY_15_AIM, 0, S_FLICKY_15_DOWN}, // S_FLICKY_15_DOWN
// Canary
{SPR_FL16, 0, 2, {A_FlickyHeightCheck}, S_FLICKY_16_FLAP1, 0, S_FLICKY_16_OUT}, // S_FLICKY_16_OUT
{SPR_FL16, 1, 3, {A_FlickyFly}, 4*FRACUNIT, 8*FRACUNIT, S_FLICKY_16_FLAP2}, // S_FLICKY_16_FLAP1
{SPR_FL16, 2, 3, {A_SetObjectFlags}, MF_NOGRAVITY, 1, S_FLICKY_16_FLAP3}, // S_FLICKY_16_FLAP2
{SPR_FL16, 3, 3, {A_FlickyHeightCheck}, S_FLICKY_16_FLAP1, 0, S_FLICKY_16_FLAP3}, // S_FLICKY_16_FLAP3
// Yellow Spring // Yellow Spring
{SPR_SPRY, 0, -1, {NULL}, 0, 0, S_NULL}, // S_YELLOWSPRING {SPR_SPRY, 0, -1, {NULL}, 0, 0, S_NULL}, // S_YELLOWSPRING
@ -2816,14 +2917,15 @@ state_t states[NUMSTATES] =
{SPR_CEMG, FF_FULLBRIGHT|15, 1, {A_OrbitNights}, ANG2*2, 0, S_ORBITEM8}, // S_ORBITEM16 {SPR_CEMG, FF_FULLBRIGHT|15, 1, {A_OrbitNights}, ANG2*2, 0, S_ORBITEM8}, // S_ORBITEM16
// Flicky helper for NiGHTS // Flicky helper for NiGHTS
{SPR_BIRD, 0, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER2}, // S_NIGHTOPIANHELPER1 {SPR_FL01, 1, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER2}, // S_NIGHTOPIANHELPER1
{SPR_BIRD, 0, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER3}, // S_NIGHTOPIANHELPER2 {SPR_FL01, 1, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER3}, // S_NIGHTOPIANHELPER2
{SPR_BIRD, 0, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER4}, // S_NIGHTOPIANHELPER3 {SPR_FL01, 1, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER4}, // S_NIGHTOPIANHELPER3
{SPR_BIRD, 0, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER5}, // S_NIGHTOPIANHELPER4 {SPR_FL01, 2, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER5}, // S_NIGHTOPIANHELPER4
{SPR_BIRD, 1, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER6}, // S_NIGHTOPIANHELPER5 {SPR_FL01, 2, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER6}, // S_NIGHTOPIANHELPER5
{SPR_BIRD, 1, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER7}, // S_NIGHTOPIANHELPER6 {SPR_FL01, 2, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER7}, // S_NIGHTOPIANHELPER6
{SPR_BIRD, 1, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER8}, // S_NIGHTOPIANHELPER7 {SPR_FL01, 3, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER8}, // S_NIGHTOPIANHELPER7
{SPR_BIRD, 1, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER1}, // S_NIGHTOPIANHELPER8 {SPR_FL01, 3, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER9}, // S_NIGHTOPIANHELPER8
{SPR_FL01, 3, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER1}, // S_NIGHTOPIANHELPER9
{SPR_NULL, 0, 35, {NULL}, 0, 0, S_CRUMBLE2}, // S_CRUMBLE1 {SPR_NULL, 0, 35, {NULL}, 0, 0, S_CRUMBLE2}, // S_CRUMBLE1
{SPR_NULL, 0, 105, {A_Scream}, 0, 0, S_NULL}, // S_CRUMBLE2 {SPR_NULL, 0, 105, {A_Scream}, 0, 0, S_NULL}, // S_CRUMBLE2
@ -11039,148 +11141,121 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate S_NULL // raisestate
}, },
{ // MT_BIRD // Bluebird
{ // MT_FLICKY_01
-1, // doomednum -1, // doomednum
S_BIRD1, // spawnstate S_FLICKY_01_OUT, // spawnstate
1000, // spawnhealth 1000, // spawnhealth
S_BIRD1, // 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
16*FRACUNIT, // radius
16*FRACUNIT, // height
0, // display offset
16, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIPTHING|MF_FLOAT|MF_NOGRAVITY, // flags
S_NULL // raisestate
},
// freed bunny
{ // MT_BUNNY
-1, // doomednum
S_BUNNY1, // spawnstate
1000, // spawnhealth
S_BUNNY1, // 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
16*FRACUNIT, // radius
16*FRACUNIT, // height
0, // display offset
16, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIPTHING|MF_FLOAT, // flags
S_NULL // raisestate
},
{ // MT_MOUSE
-1, // doomednum
S_MOUSE1, // spawnstate
1, // spawnhealth
S_NULL, // seestate S_NULL, // seestate
sfx_None, // seesound sfx_None, // seesound
1, // reactiontime 8, // reactiontime
sfx_None, // attacksound sfx_None, // attacksound
S_NULL, // painstate S_NULL, // painstate
200, // painchance 0, // painchance
sfx_None, // painsound sfx_None, // painsound
S_NULL, // meleestate S_NULL, // meleestate
S_NULL, // missilestate S_NULL, // missilestate
S_NULL, // deathstate S_NULL, // deathstate
S_NULL, // xdeathstate S_NULL, // xdeathstate
sfx_None, // deathsound sfx_None, // deathsound
20*FRACUNIT, // speed 8, // speed
4*FRACUNIT, // radius 8*FRACUNIT, // radius
4*FRACUNIT, // height 20*FRACUNIT, // height
0, // display offset 0, // display offset
100, // mass 16, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIPTHING, // flags
S_FLICKY_BUBBLE // raisestate
},
{ // MT_FLICKY_02
-1, // doomednum
S_FLICKY_02_OUT, // 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_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
8, // speed
8*FRACUNIT, // radius
20*FRACUNIT, // height
0, // display offset
16, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIPTHING, // flags
S_FLICKY_BUBBLE // raisestate
},
{ // MT_FLICKY_03
-1, // doomednum
S_FLICKY_03_OUT, // 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_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
8, // speed
8*FRACUNIT, // radius
20*FRACUNIT, // height
0, // display offset
16, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIPTHING, // flags
S_FLICKY_BUBBLE // raisestate
},
{ // MT_FLICKY_04
-1, // doomednum
S_FLICKY_04_OUT, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
0, // painchance
sfx_None, // painsound
S_FLICKY_04_SWIM1, // meleestate
S_NULL, // missilestate
S_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
8, // speed
8*FRACUNIT, // radius
20*FRACUNIT, // height
0, // display offset
16, // mass
0, // damage 0, // damage
sfx_None, // activesound sfx_None, // activesound
MF_NOCLIPTHING, // flags MF_NOCLIPTHING, // flags
S_NULL // raisestate S_NULL // raisestate
}, },
{ // MT_CHICKEN { // MT_FLICKY_05
-1, // doomednum -1, // doomednum
S_CHICKEN1, // spawnstate S_FLICKY_05_OUT, // spawnstate
1000, // spawnhealth 1000, // spawnhealth
S_CHICKEN1, // seestate
sfx_None, // seesound
0, // 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
1, // speed
16*FRACUNIT, // radius
16*FRACUNIT, // height
0, // display offset
16, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIPTHING|MF_FLOAT, // flags
S_NULL // raisestate
},
{ // MT_COW
-1, // doomednum
S_COW1, // spawnstate
1, // spawnhealth
S_NULL, // seestate S_NULL, // seestate
sfx_None, // seesound sfx_None, // seesound
1, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
200, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
4, // speed
4*FRACUNIT, // radius
4*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIPTHING, // flags
S_NULL // raisestate
},
{ // MT_REDBIRD
-1, // doomednum
S_RBIRD1, // spawnstate
1000, // spawnhealth
S_RBIRD1, // seestate
sfx_None, // seesound
8, // reactiontime 8, // reactiontime
sfx_None, // attacksound sfx_None, // attacksound
S_NULL, // painstate S_NULL, // painstate
@ -11192,16 +11267,313 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL, // xdeathstate S_NULL, // xdeathstate
sfx_None, // deathsound sfx_None, // deathsound
8, // speed 8, // speed
16*FRACUNIT, // radius 8*FRACUNIT, // radius
16*FRACUNIT, // height 20*FRACUNIT, // height
0, // display offset 0, // display offset
16, // mass 16, // mass
0, // damage 0, // damage
sfx_None, // activesound sfx_None, // activesound
MF_NOCLIPTHING|MF_FLOAT|MF_NOGRAVITY, // flags MF_NOCLIPTHING, // flags
S_FLICKY_BUBBLE // raisestate
},
{ // MT_FLICKY_06
-1, // doomednum
S_FLICKY_06_OUT, // 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_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
8, // speed
8*FRACUNIT, // radius
20*FRACUNIT, // height
0, // display offset
16, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIPTHING, // flags
S_FLICKY_BUBBLE // raisestate
},
{ // MT_FLICKY_07
-1, // doomednum
S_FLICKY_07_OUT, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
0, // painchance
sfx_None, // painsound
S_FLICKY_07_SWIM1, // meleestate
S_NULL, // missilestate
S_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
8, // speed
8*FRACUNIT, // radius
20*FRACUNIT, // height
0, // display offset
16, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIPTHING, // flags
S_NULL // raisestate S_NULL // raisestate
}, },
{ // MT_FLICKY_08
-1, // doomednum
S_FLICKY_08_OUT, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
0, // painchance
sfx_None, // painsound
S_FLICKY_08_SWIM1, // meleestate
S_NULL, // missilestate
S_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
8, // speed
8*FRACUNIT, // radius
20*FRACUNIT, // height
0, // display offset
16, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIPTHING, // flags
S_NULL // raisestate
},
{ // MT_FLICKY_09
-1, // doomednum
S_FLICKY_09_OUT, // 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_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
8, // speed
8*FRACUNIT, // radius
20*FRACUNIT, // height
0, // display offset
16, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIPTHING, // flags
S_FLICKY_BUBBLE // raisestate
},
{ // MT_FLICKY_10
-1, // doomednum
S_FLICKY_10_OUT, // 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_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
8, // speed
8*FRACUNIT, // radius
20*FRACUNIT, // height
0, // display offset
16, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIPTHING, // flags
S_FLICKY_BUBBLE // raisestate
},
{ // MT_FLICKY_11
-1, // doomednum
S_FLICKY_11_OUT, // 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_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
8, // speed
8*FRACUNIT, // radius
20*FRACUNIT, // height
0, // display offset
16, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIPTHING, // flags
S_FLICKY_BUBBLE // raisestate
},
{ // MT_FLICKY_12
-1, // doomednum
S_FLICKY_12_OUT, // 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_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
8, // speed
8*FRACUNIT, // radius
20*FRACUNIT, // height
0, // display offset
16, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIPTHING, // flags
S_FLICKY_BUBBLE // raisestate
},
{ // MT_FLICKY_13
-1, // doomednum
S_FLICKY_13_OUT, // 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_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
8, // speed
8*FRACUNIT, // radius
20*FRACUNIT, // height
0, // display offset
16, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIPTHING, // flags
S_FLICKY_BUBBLE // raisestate
},
{ // MT_FLICKY_14
-1, // doomednum
S_FLICKY_14_OUT, // 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_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
8, // speed
8*FRACUNIT, // radius
20*FRACUNIT, // height
0, // display offset
16, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIPTHING, // flags
S_FLICKY_BUBBLE // raisestate
},
{ // MT_FLICKY_15
-1, // doomednum
S_FLICKY_15_OUT, // 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_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
8, // speed
8*FRACUNIT, // radius
20*FRACUNIT, // height
0, // display offset
16, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIPTHING, // flags
S_FLICKY_BUBBLE // raisestate
},
{ // MT_FLICKY_16
-1, // doomednum
S_FLICKY_16_OUT, // 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_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
8, // speed
8*FRACUNIT, // radius
20*FRACUNIT, // height
0, // display offset
16, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIPTHING, // flags
S_FLICKY_BUBBLE // raisestate
},
{ // MT_RAIN { // MT_RAIN
-1, // doomednum -1, // doomednum
S_RAIN1, // spawnstate S_RAIN1, // spawnstate

View file

@ -459,13 +459,24 @@ typedef enum sprite
SPR_GOAL, // Special Stage goal (here because lol NiGHTS) SPR_GOAL, // Special Stage goal (here because lol NiGHTS)
// Freed Animals // Flickies
SPR_BIRD, // Birdie freed! SPR_FBUB, // Flicky-sized bubble
SPR_BUNY, // Bunny freed! SPR_FL01, // Bluebird
SPR_MOUS, // Mouse SPR_FL02, // Rabbit
SPR_CHIC, // Chicken SPR_FL03, // Chicken
SPR_COWZ, // Cow SPR_FL04, // Seal
SPR_RBRD, // Red Birdie in Bubble SPR_FL05, // Pig
SPR_FL06, // Chipmunk
SPR_FL07, // Penguin
SPR_FL08, // Fish
SPR_FL09, // Ram
SPR_FL10, // Puffin
SPR_FL11, // Cow
SPR_FL12, // Rat
SPR_FL13, // Bear
SPR_FL14, // Dove
SPR_FL15, // Cat
SPR_FL16, // Canary
// Springs // Springs
SPR_SPRY, // yellow spring SPR_SPRY, // yellow spring
@ -2429,43 +2440,133 @@ typedef enum state
S_SSPK4, S_SSPK4,
S_SSPK5, S_SSPK5,
// Freed Birdie // Flicky-sized bubble
S_BIRD1, S_FLICKY_BUBBLE,
S_BIRD2,
S_BIRD3,
// Freed Bunny // Bluebird
S_BUNNY1, S_FLICKY_01_OUT,
S_BUNNY2, S_FLICKY_01_FLAP1,
S_BUNNY3, S_FLICKY_01_FLAP2,
S_BUNNY4, S_FLICKY_01_FLAP3,
S_BUNNY5,
S_BUNNY6,
S_BUNNY7,
S_BUNNY8,
S_BUNNY9,
S_BUNNY10,
// Freed Mouse // Rabbit
S_MOUSE1, S_FLICKY_02_OUT,
S_MOUSE2, S_FLICKY_02_AIM,
S_FLICKY_02_HOP,
S_FLICKY_02_UP,
S_FLICKY_02_DOWN,
// Freed Chicken // Chicken
S_CHICKEN1, S_FLICKY_03_OUT,
S_CHICKENHOP, S_FLICKY_03_AIM,
S_CHICKENFLY1, S_FLICKY_03_HOP,
S_CHICKENFLY2, S_FLICKY_03_UP,
S_FLICKY_03_FLAP1,
S_FLICKY_03_FLAP2,
// Freed Cow // Seal
S_COW1, S_FLICKY_04_OUT,
S_COW2, S_FLICKY_04_AIM,
S_COW3, S_FLICKY_04_HOP,
S_COW4, S_FLICKY_04_UP,
S_FLICKY_04_DOWN,
S_FLICKY_04_SWIM1,
S_FLICKY_04_SWIM2,
S_FLICKY_04_SWIM3,
S_FLICKY_04_SWIM4,
// Red Birdie in Bubble // Pig
S_RBIRD1, S_FLICKY_05_OUT,
S_RBIRD2, S_FLICKY_05_AIM,
S_RBIRD3, S_FLICKY_05_HOP,
S_FLICKY_05_UP,
S_FLICKY_05_DOWN,
// Chipmunk
S_FLICKY_06_OUT,
S_FLICKY_06_AIM,
S_FLICKY_06_HOP,
S_FLICKY_06_UP,
S_FLICKY_06_DOWN,
// Penguin
S_FLICKY_07_OUT,
S_FLICKY_07_AIML,
S_FLICKY_07_HOPL,
S_FLICKY_07_UPL,
S_FLICKY_07_DOWNL,
S_FLICKY_07_AIMR,
S_FLICKY_07_HOPR,
S_FLICKY_07_UPR,
S_FLICKY_07_DOWNR,
S_FLICKY_07_SWIM1,
S_FLICKY_07_SWIM2,
S_FLICKY_07_SWIM3,
// Fish
S_FLICKY_08_OUT,
S_FLICKY_08_AIM,
S_FLICKY_08_HOP,
S_FLICKY_08_FLAP1,
S_FLICKY_08_FLAP2,
S_FLICKY_08_FLAP3,
S_FLICKY_08_FLAP4,
S_FLICKY_08_SWIM1,
S_FLICKY_08_SWIM2,
S_FLICKY_08_SWIM3,
S_FLICKY_08_SWIM4,
// Ram
S_FLICKY_09_OUT,
S_FLICKY_09_AIM,
S_FLICKY_09_HOP,
S_FLICKY_09_UP,
S_FLICKY_09_DOWN,
// Puffin
S_FLICKY_10_OUT,
S_FLICKY_10_FLAP1,
S_FLICKY_10_FLAP2,
// Cow
S_FLICKY_11_OUT,
S_FLICKY_11_AIM,
S_FLICKY_11_RUN1,
S_FLICKY_11_RUN2,
S_FLICKY_11_RUN3,
// Rat
S_FLICKY_12_OUT,
S_FLICKY_12_AIM,
S_FLICKY_12_RUN1,
S_FLICKY_12_RUN2,
S_FLICKY_12_RUN3,
// Bear
S_FLICKY_13_OUT,
S_FLICKY_13_AIM,
S_FLICKY_13_HOP,
S_FLICKY_13_UP,
S_FLICKY_13_DOWN,
// Dove
S_FLICKY_14_OUT,
S_FLICKY_14_FLAP1,
S_FLICKY_14_FLAP2,
S_FLICKY_14_FLAP3,
// Cat
S_FLICKY_15_OUT,
S_FLICKY_15_AIM,
S_FLICKY_15_HOP,
S_FLICKY_15_UP,
S_FLICKY_15_DOWN,
// Canary
S_FLICKY_16_OUT,
S_FLICKY_16_FLAP1,
S_FLICKY_16_FLAP2,
S_FLICKY_16_FLAP3,
S_YELLOWSPRING, S_YELLOWSPRING,
S_YELLOWSPRING2, S_YELLOWSPRING2,
@ -2965,6 +3066,7 @@ typedef enum state
S_NIGHTOPIANHELPER6, S_NIGHTOPIANHELPER6,
S_NIGHTOPIANHELPER7, S_NIGHTOPIANHELPER7,
S_NIGHTOPIANHELPER8, S_NIGHTOPIANHELPER8,
S_NIGHTOPIANHELPER9,
S_CRUMBLE1, S_CRUMBLE1,
S_CRUMBLE2, S_CRUMBLE2,
@ -3418,13 +3520,23 @@ typedef enum mobj_type
MT_IVSP, // Invincibility sparkles MT_IVSP, // Invincibility sparkles
MT_SUPERSPARK, // Super Sonic Spark MT_SUPERSPARK, // Super Sonic Spark
// Freed Animals // Flickies
MT_BIRD, // Birdie freed! MT_FLICKY_01, // Bluebird
MT_BUNNY, // Bunny freed! MT_FLICKY_02, // Rabbit
MT_MOUSE, // Mouse MT_FLICKY_03, // Chicken
MT_CHICKEN, // Chicken MT_FLICKY_04, // Seal
MT_COW, // Cow MT_FLICKY_05, // Pig
MT_REDBIRD, // Red Birdie in Bubble MT_FLICKY_06, // Chipmunk
MT_FLICKY_07, // Penguin
MT_FLICKY_08, // Fish
MT_FLICKY_09, // Ram
MT_FLICKY_10, // Puffin
MT_FLICKY_11, // Cow
MT_FLICKY_12, // Rat
MT_FLICKY_13, // Bear
MT_FLICKY_14, // Dove
MT_FLICKY_15, // Cat
MT_FLICKY_16, // Canary
// Environmental Effects // Environmental Effects
MT_RAIN, // Rain MT_RAIN, // Rain

View file

@ -10527,7 +10527,7 @@ void P_InternalFlickyFly(mobj_t *actor, fixed_t flyspeed, fixed_t targetdist, fi
if (!targetdist) if (!targetdist)
targetdist = 16*FRACUNIT; //Default! targetdist = 16*FRACUNIT; //Default!
if (abs(chasez - actor->z) > targetdist) if (actor->target && abs(chasez - actor->z) > targetdist)
targetdist = P_AproxDistance(actor->target->x - actor->x, actor->target->y - actor->y); targetdist = P_AproxDistance(actor->target->x - actor->x, actor->target->y - actor->y);
vertangle = (R_PointToAngle2(0, actor->z, targetdist, chasez) >> ANGLETOFINESHIFT) & FINEMASK; vertangle = (R_PointToAngle2(0, actor->z, targetdist, chasez) >> ANGLETOFINESHIFT) & FINEMASK;
@ -10576,7 +10576,7 @@ void A_FlickySoar(mobj_t *actor)
2*(FRACUNIT/2 - abs(FINECOSINE((((actor->fuse % 144) * 5*ANG1/2) >> ANGLETOFINESHIFT) & FINEMASK))) 2*(FRACUNIT/2 - abs(FINECOSINE((((actor->fuse % 144) * 5*ANG1/2) >> ANGLETOFINESHIFT) & FINEMASK)))
); );
if (P_MobjFlip(actor)*actor->momz > 0 && actor->frame == 1 && actor->sprite == SPR_NULL)//SPR_FLKJ) if (P_MobjFlip(actor)*actor->momz > 0 && actor->frame == 1 && actor->sprite == SPR_FL10)
actor->frame = 3; actor->frame = 3;
} }

View file

@ -2278,37 +2278,37 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
case MT_GOLDBUZZ: case MT_GOLDBUZZ:
case MT_SKIM: case MT_SKIM:
case MT_UNIDUS: case MT_UNIDUS:
item = MT_BUNNY; item = MT_FLICKY_02/*MT_BUNNY*/;
break; break;
case MT_BLUECRAWLA: case MT_BLUECRAWLA:
case MT_JETTBOMBER: case MT_JETTBOMBER:
case MT_GFZFISH: case MT_GFZFISH:
item = MT_BIRD; item = MT_FLICKY_01/*MT_BIRD*/;
break; break;
case MT_JETTGUNNER: case MT_JETTGUNNER:
case MT_CRAWLACOMMANDER: case MT_CRAWLACOMMANDER:
case MT_REDBUZZ: case MT_REDBUZZ:
case MT_DETON: case MT_DETON:
item = MT_MOUSE; item = MT_FLICKY_12/*MT_MOUSE*/;
break; break;
case MT_GSNAPPER: case MT_GSNAPPER:
case MT_EGGGUARD: case MT_EGGGUARD:
case MT_SPRINGSHELL: case MT_SPRINGSHELL:
item = MT_COW; item = MT_FLICKY_11/*MT_COW*/;
break; break;
case MT_MINUS: case MT_MINUS:
case MT_VULTURE: case MT_VULTURE:
case MT_POINTY: case MT_POINTY:
case MT_YELLOWSHELL: case MT_YELLOWSHELL:
item = MT_CHICKEN; item = MT_FLICKY_03/*MT_CHICKEN*/;
break; break;
case MT_AQUABUZZ: case MT_AQUABUZZ:
item = MT_REDBIRD; item = MT_FLICKY_01/*MT_REDBIRD*/;
break; break;
default: default:
@ -2319,11 +2319,11 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
switch(prandom) switch(prandom)
{ {
default: item = MT_BUNNY; break; default: item = MT_FLICKY_02/*MT_BUNNY*/; break;
case 1: item = MT_BIRD; break; case 1: item = MT_FLICKY_01/*MT_BIRD*/; break;
case 2: item = MT_MOUSE; break; case 2: item = MT_FLICKY_12/*MT_MOUSE*/; break;
case 3: item = MT_COW; break; case 3: item = MT_FLICKY_11/*MT_COW*/; break;
case 4: item = MT_CHICKEN; break; case 4: item = MT_FLICKY_03/*MT_CHICKEN*/; break;
} }
break; break;
} }

View file

@ -7289,6 +7289,8 @@ void P_MobjThinker(mobj_t *mobj)
} }
break; break;
case MT_AQUABUZZ: case MT_AQUABUZZ:
P_MobjCheckWater(mobj); // solely for MFE_UNDERWATER for A_FlickySpawn
// no break here on purpose
case MT_BIGAIRMINE: case MT_BIGAIRMINE:
{ {
if (mobj->tracer && mobj->tracer->player && mobj->tracer->health > 0 if (mobj->tracer && mobj->tracer->player && mobj->tracer->health > 0
@ -8399,13 +8401,8 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type)
// Special condition for the 2nd boss. // Special condition for the 2nd boss.
mobj->watertop = mobj->info->speed; mobj->watertop = mobj->info->speed;
break; break;
case MT_BIRD: case MT_FLICKY_08:
case MT_BUNNY: mobj->color = (P_RandomChance(FRACUNIT/2) ? SKINCOLOR_RED : SKINCOLOR_AQUA);
case MT_MOUSE:
case MT_CHICKEN:
case MT_COW:
case MT_REDBIRD:
mobj->fuse = P_RandomRange(300, 350);
break; break;
case MT_REDRING: // Make MT_REDRING red by default case MT_REDRING: // Make MT_REDRING red by default
mobj->color = skincolor_redring; mobj->color = skincolor_redring;

View file

@ -5640,11 +5640,13 @@ static void P_DoNiGHTSCapsule(player_t *player)
} }
else else
{ {
fixed_t z;
z = player->capsule->z + player->capsule->height/2;
for (i = 0; i < 16; i++) for (i = 0; i < 16; i++)
P_SpawnMobj(player->capsule->x, player->capsule->y, z, MT_BIRD); {
mobj_t *flicky = P_InternalFlickySpawn(player->capsule, 0, ((i%4) + 1)*2*FRACUNIT, true);
flicky->z += player->capsule->height/2;
flicky->angle = (i*(ANGLE_MAX/16));
P_InstaThrust(flicky, flicky->angle, 8*FRACUNIT);
}
} }
for (i = 0; i < MAXPLAYERS; i++) for (i = 0; i < MAXPLAYERS; i++)
if (playeringame[i] && players[i].mare == player->mare) if (playeringame[i] && players[i].mare == player->mare)