mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-01-30 13:10:55 +00:00
Merge branch 'flicky-things' into 'master'
Flicky Thing Types See merge request STJr/SRB2Internal!154
This commit is contained in:
commit
ffde71c656
6 changed files with 867 additions and 30 deletions
|
@ -5399,6 +5399,8 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_FLICKY_01_FLAP1",
|
||||
"S_FLICKY_01_FLAP2",
|
||||
"S_FLICKY_01_FLAP3",
|
||||
"S_FLICKY_01_STAND",
|
||||
"S_FLICKY_01_CENTER",
|
||||
|
||||
// Rabbit
|
||||
"S_FLICKY_02_OUT",
|
||||
|
@ -5406,6 +5408,8 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_FLICKY_02_HOP",
|
||||
"S_FLICKY_02_UP",
|
||||
"S_FLICKY_02_DOWN",
|
||||
"S_FLICKY_02_STAND",
|
||||
"S_FLICKY_02_CENTER",
|
||||
|
||||
// Chicken
|
||||
"S_FLICKY_03_OUT",
|
||||
|
@ -5414,6 +5418,8 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_FLICKY_03_UP",
|
||||
"S_FLICKY_03_FLAP1",
|
||||
"S_FLICKY_03_FLAP2",
|
||||
"S_FLICKY_03_STAND",
|
||||
"S_FLICKY_03_CENTER",
|
||||
|
||||
// Seal
|
||||
"S_FLICKY_04_OUT",
|
||||
|
@ -5425,6 +5431,8 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_FLICKY_04_SWIM2",
|
||||
"S_FLICKY_04_SWIM3",
|
||||
"S_FLICKY_04_SWIM4",
|
||||
"S_FLICKY_04_STAND",
|
||||
"S_FLICKY_04_CENTER",
|
||||
|
||||
// Pig
|
||||
"S_FLICKY_05_OUT",
|
||||
|
@ -5432,6 +5440,8 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_FLICKY_05_HOP",
|
||||
"S_FLICKY_05_UP",
|
||||
"S_FLICKY_05_DOWN",
|
||||
"S_FLICKY_05_STAND",
|
||||
"S_FLICKY_05_CENTER",
|
||||
|
||||
// Chipmunk
|
||||
"S_FLICKY_06_OUT",
|
||||
|
@ -5439,6 +5449,8 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_FLICKY_06_HOP",
|
||||
"S_FLICKY_06_UP",
|
||||
"S_FLICKY_06_DOWN",
|
||||
"S_FLICKY_06_STAND",
|
||||
"S_FLICKY_06_CENTER",
|
||||
|
||||
// Penguin
|
||||
"S_FLICKY_07_OUT",
|
||||
|
@ -5453,6 +5465,8 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_FLICKY_07_SWIM1",
|
||||
"S_FLICKY_07_SWIM2",
|
||||
"S_FLICKY_07_SWIM3",
|
||||
"S_FLICKY_07_STAND",
|
||||
"S_FLICKY_07_CENTER",
|
||||
|
||||
// Fish
|
||||
"S_FLICKY_08_OUT",
|
||||
|
@ -5466,6 +5480,8 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_FLICKY_08_SWIM2",
|
||||
"S_FLICKY_08_SWIM3",
|
||||
"S_FLICKY_08_SWIM4",
|
||||
"S_FLICKY_08_STAND",
|
||||
"S_FLICKY_08_CENTER",
|
||||
|
||||
// Ram
|
||||
"S_FLICKY_09_OUT",
|
||||
|
@ -5473,11 +5489,15 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_FLICKY_09_HOP",
|
||||
"S_FLICKY_09_UP",
|
||||
"S_FLICKY_09_DOWN",
|
||||
"S_FLICKY_09_STAND",
|
||||
"S_FLICKY_09_CENTER",
|
||||
|
||||
// Puffin
|
||||
"S_FLICKY_10_OUT",
|
||||
"S_FLICKY_10_FLAP1",
|
||||
"S_FLICKY_10_FLAP2",
|
||||
"S_FLICKY_10_STAND",
|
||||
"S_FLICKY_10_CENTER",
|
||||
|
||||
// Cow
|
||||
"S_FLICKY_11_OUT",
|
||||
|
@ -5485,6 +5505,8 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_FLICKY_11_RUN1",
|
||||
"S_FLICKY_11_RUN2",
|
||||
"S_FLICKY_11_RUN3",
|
||||
"S_FLICKY_11_STAND",
|
||||
"S_FLICKY_11_CENTER",
|
||||
|
||||
// Rat
|
||||
"S_FLICKY_12_OUT",
|
||||
|
@ -5492,6 +5514,8 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_FLICKY_12_RUN1",
|
||||
"S_FLICKY_12_RUN2",
|
||||
"S_FLICKY_12_RUN3",
|
||||
"S_FLICKY_12_STAND",
|
||||
"S_FLICKY_12_CENTER",
|
||||
|
||||
// Bear
|
||||
"S_FLICKY_13_OUT",
|
||||
|
@ -5499,12 +5523,16 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_FLICKY_13_HOP",
|
||||
"S_FLICKY_13_UP",
|
||||
"S_FLICKY_13_DOWN",
|
||||
"S_FLICKY_13_STAND",
|
||||
"S_FLICKY_13_CENTER",
|
||||
|
||||
// Dove
|
||||
"S_FLICKY_14_OUT",
|
||||
"S_FLICKY_14_FLAP1",
|
||||
"S_FLICKY_14_FLAP2",
|
||||
"S_FLICKY_14_FLAP3",
|
||||
"S_FLICKY_14_STAND",
|
||||
"S_FLICKY_14_CENTER",
|
||||
|
||||
// Cat
|
||||
"S_FLICKY_15_OUT",
|
||||
|
@ -5512,12 +5540,16 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_FLICKY_15_HOP",
|
||||
"S_FLICKY_15_UP",
|
||||
"S_FLICKY_15_DOWN",
|
||||
"S_FLICKY_15_STAND",
|
||||
"S_FLICKY_15_CENTER",
|
||||
|
||||
// Canary
|
||||
"S_FLICKY_16_OUT",
|
||||
"S_FLICKY_16_FLAP1",
|
||||
"S_FLICKY_16_FLAP2",
|
||||
"S_FLICKY_16_FLAP3",
|
||||
"S_FLICKY_16_STAND",
|
||||
"S_FLICKY_16_CENTER",
|
||||
|
||||
// Spider
|
||||
"S_SECRETFLICKY_01_OUT",
|
||||
|
@ -5525,12 +5557,16 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_SECRETFLICKY_01_HOP",
|
||||
"S_SECRETFLICKY_01_UP",
|
||||
"S_SECRETFLICKY_01_DOWN",
|
||||
"S_SECRETFLICKY_01_STAND",
|
||||
"S_SECRETFLICKY_01_CENTER",
|
||||
|
||||
// Bat
|
||||
"S_SECRETFLICKY_02_OUT",
|
||||
"S_SECRETFLICKY_02_FLAP1",
|
||||
"S_SECRETFLICKY_02_FLAP2",
|
||||
"S_SECRETFLICKY_02_FLAP3",
|
||||
"S_SECRETFLICKY_02_STAND",
|
||||
"S_SECRETFLICKY_02_CENTER",
|
||||
|
||||
// Fan
|
||||
"S_FAN",
|
||||
|
@ -6729,23 +6765,41 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
|
|||
|
||||
// Flickies
|
||||
"MT_FLICKY_01", // Bluebird
|
||||
"MT_FLICKY_01_CENTER",
|
||||
"MT_FLICKY_02", // Rabbit
|
||||
"MT_FLICKY_02_CENTER",
|
||||
"MT_FLICKY_03", // Chicken
|
||||
"MT_FLICKY_03_CENTER",
|
||||
"MT_FLICKY_04", // Seal
|
||||
"MT_FLICKY_04_CENTER",
|
||||
"MT_FLICKY_05", // Pig
|
||||
"MT_FLICKY_05_CENTER",
|
||||
"MT_FLICKY_06", // Chipmunk
|
||||
"MT_FLICKY_06_CENTER",
|
||||
"MT_FLICKY_07", // Penguin
|
||||
"MT_FLICKY_07_CENTER",
|
||||
"MT_FLICKY_08", // Fish
|
||||
"MT_FLICKY_08_CENTER",
|
||||
"MT_FLICKY_09", // Ram
|
||||
"MT_FLICKY_09_CENTER",
|
||||
"MT_FLICKY_10", // Puffin
|
||||
"MT_FLICKY_10_CENTER",
|
||||
"MT_FLICKY_11", // Cow
|
||||
"MT_FLICKY_11_CENTER",
|
||||
"MT_FLICKY_12", // Rat
|
||||
"MT_FLICKY_12_CENTER",
|
||||
"MT_FLICKY_13", // Bear
|
||||
"MT_FLICKY_13_CENTER",
|
||||
"MT_FLICKY_14", // Dove
|
||||
"MT_FLICKY_14_CENTER",
|
||||
"MT_FLICKY_15", // Cat
|
||||
"MT_FLICKY_15_CENTER",
|
||||
"MT_FLICKY_16", // Canary
|
||||
"MT_FLICKY_16_CENTER",
|
||||
"MT_SECRETFLICKY_01", // Spider
|
||||
"MT_SECRETFLICKY_01_CENTER",
|
||||
"MT_SECRETFLICKY_02", // Bat
|
||||
"MT_SECRETFLICKY_02_CENTER",
|
||||
"MT_SEED",
|
||||
|
||||
// Environmental Effects
|
||||
|
|
570
src/info.c
570
src/info.c
|
@ -2641,6 +2641,8 @@ state_t states[NUMSTATES] =
|
|||
{SPR_FL01, 1, 3, {A_FlickyFly}, 4*FRACUNIT, 16*FRACUNIT, S_FLICKY_01_FLAP2}, // S_FLICKY_01_FLAP1
|
||||
{SPR_FL01, 2, 3, {A_FlickyFly}, 4*FRACUNIT, 16*FRACUNIT, S_FLICKY_01_FLAP3}, // S_FLICKY_01_FLAP2
|
||||
{SPR_FL01, 3, 3, {A_FlickyFly}, 4*FRACUNIT, 16*FRACUNIT, S_FLICKY_01_FLAP1}, // S_FLICKY_01_FLAP3
|
||||
{SPR_FL01, FF_ANIMATE|1, -1, {NULL}, 2, 3, S_NULL}, // S_FLICKY_01_STAND
|
||||
{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_01, 384*FRACUNIT, S_FLICKY_01_CENTER}, // S_FLICKY_01_CENTER
|
||||
|
||||
// Rabbit
|
||||
{SPR_FL02, 0, 2, {A_FlickyCheck}, S_FLICKY_02_AIM, 0, S_FLICKY_02_OUT}, // S_FLICKY_02_OUT
|
||||
|
@ -2648,6 +2650,8 @@ state_t states[NUMSTATES] =
|
|||
{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
|
||||
{SPR_FL02, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL}, // S_FLICKY_02_STAND
|
||||
{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_02, 384*FRACUNIT, S_FLICKY_02_CENTER}, // S_FLICKY_02_CENTER
|
||||
|
||||
// Chicken
|
||||
{SPR_FL03, 0, 2, {A_FlickyCheck}, S_FLICKY_03_AIM, S_FLICKY_03_FLAP1, S_FLICKY_03_OUT}, // S_FLICKY_03_OUT
|
||||
|
@ -2656,6 +2660,8 @@ state_t states[NUMSTATES] =
|
|||
{SPR_FL03, 2, 2, {A_FlickyFlutter}, S_FLICKY_03_HOP, S_FLICKY_03_FLAP1, S_FLICKY_03_UP}, // S_FLICKY_03_UP
|
||||
{SPR_FL03, 3, 2, {A_FlickyFlutter}, S_FLICKY_03_HOP, 0, S_FLICKY_03_FLAP2}, // S_FLICKY_03_FLAP1
|
||||
{SPR_FL03, 4, 2, {A_FlickyFlutter}, S_FLICKY_03_HOP, 0, S_FLICKY_03_FLAP1}, // S_FLICKY_03_FLAP2
|
||||
{SPR_FL03, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL}, // S_FLICKY_03_STAND
|
||||
{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_03, 384*FRACUNIT, S_FLICKY_03_CENTER}, // S_FLICKY_03_CENTER
|
||||
|
||||
// Seal
|
||||
{SPR_FL04, 0, 2, {A_FlickyCheck}, S_FLICKY_04_AIM, 0, S_FLICKY_04_OUT}, // S_FLICKY_04_OUT
|
||||
|
@ -2667,6 +2673,8 @@ state_t states[NUMSTATES] =
|
|||
{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
|
||||
{SPR_FL04, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL}, // S_FLICKY_04_STAND
|
||||
{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_04, 384*FRACUNIT, S_FLICKY_04_CENTER}, // S_FLICKY_04_CENTER
|
||||
|
||||
// Pig
|
||||
{SPR_FL05, 0, 2, {A_FlickyCheck}, S_FLICKY_05_AIM, 0, S_FLICKY_05_OUT}, // S_FLICKY_05_OUT
|
||||
|
@ -2674,6 +2682,8 @@ state_t states[NUMSTATES] =
|
|||
{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
|
||||
{SPR_FL05, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL}, // S_FLICKY_05_STAND
|
||||
{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_05, 384*FRACUNIT, S_FLICKY_05_CENTER}, // S_FLICKY_05_CENTER
|
||||
|
||||
// Chipmunk
|
||||
{SPR_FL06, 0, 2, {A_FlickyCheck}, S_FLICKY_06_AIM, 0, S_FLICKY_06_OUT}, // S_FLICKY_06_OUT
|
||||
|
@ -2681,6 +2691,8 @@ state_t states[NUMSTATES] =
|
|||
{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
|
||||
{SPR_FL06, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL}, // S_FLICKY_06_STAND
|
||||
{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_06, 384*FRACUNIT, S_FLICKY_06_CENTER}, // S_FLICKY_06_CENTER
|
||||
|
||||
// Penguin
|
||||
{SPR_FL07, 0, 2, {A_FlickyCheck}, S_FLICKY_07_AIML, 0, S_FLICKY_07_OUT}, // S_FLICKY_07_OUT
|
||||
|
@ -2695,6 +2707,8 @@ state_t states[NUMSTATES] =
|
|||
{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
|
||||
{SPR_FL07, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL}, // S_FLICKY_07_STAND
|
||||
{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_07, 384*FRACUNIT, S_FLICKY_07_CENTER}, // S_FLICKY_07_CENTER
|
||||
|
||||
// Fish
|
||||
{SPR_FL08, 0, 2, {A_FlickyCheck}, S_FLICKY_08_AIM, 0, S_FLICKY_08_OUT}, // S_FLICKY_08_OUT
|
||||
|
@ -2708,6 +2722,8 @@ state_t states[NUMSTATES] =
|
|||
{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
|
||||
{SPR_FL08, FF_ANIMATE, -1, {NULL}, 2, 4, S_NULL}, // S_FLICKY_08_STAND
|
||||
{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_08, 384*FRACUNIT, S_FLICKY_08_CENTER}, // S_FLICKY_08_CENTER
|
||||
|
||||
// Ram
|
||||
{SPR_FL09, 0, 2, {A_FlickyCheck}, S_FLICKY_09_AIM, 0, S_FLICKY_09_OUT}, // S_FLICKY_09_OUT
|
||||
|
@ -2715,11 +2731,15 @@ state_t states[NUMSTATES] =
|
|||
{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
|
||||
{SPR_FL09, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL}, // S_FLICKY_09_STAND
|
||||
{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_09, 384*FRACUNIT, S_FLICKY_09_CENTER}, // S_FLICKY_09_CENTER
|
||||
|
||||
// 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
|
||||
{SPR_FL10, FF_ANIMATE|1, -1, {NULL}, 1, 3, S_NULL}, // S_FLICKY_10_STAND
|
||||
{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_10, 384*FRACUNIT, S_FLICKY_10_CENTER}, // S_FLICKY_10_CENTER
|
||||
|
||||
// Cow
|
||||
{SPR_FL11, 0, 2, {A_FlickyCheck}, S_FLICKY_11_AIM, 0, S_FLICKY_11_OUT}, // S_FLICKY_11_OUT
|
||||
|
@ -2727,6 +2747,8 @@ state_t states[NUMSTATES] =
|
|||
{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
|
||||
{SPR_FL11, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL}, // S_FLICKY_11_STAND
|
||||
{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_11, 384*FRACUNIT, S_FLICKY_11_CENTER}, // S_FLICKY_11_CENTER
|
||||
|
||||
// Rat
|
||||
{SPR_FL12, 0, 2, {A_FlickyCheck}, S_FLICKY_12_AIM, 0, S_FLICKY_12_OUT}, // S_FLICKY_12_OUT
|
||||
|
@ -2734,6 +2756,8 @@ state_t states[NUMSTATES] =
|
|||
{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
|
||||
{SPR_FL12, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL}, // S_FLICKY_12_STAND
|
||||
{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_12, 384*FRACUNIT, S_FLICKY_12_CENTER}, // S_FLICKY_12_CENTER
|
||||
|
||||
// Bear
|
||||
{SPR_FL13, 0, 2, {A_FlickyCheck}, S_FLICKY_13_AIM, 0, S_FLICKY_13_OUT}, // S_FLICKY_13_OUT
|
||||
|
@ -2741,12 +2765,16 @@ state_t states[NUMSTATES] =
|
|||
{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
|
||||
{SPR_FL13, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL}, // S_FLICKY_13_STAND
|
||||
{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_13, 384*FRACUNIT, S_FLICKY_13_CENTER}, // S_FLICKY_13_CENTER
|
||||
|
||||
// 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
|
||||
{SPR_FL14, FF_ANIMATE|1, -1, {NULL}, 2, 3, S_NULL}, // S_FLICKY_14_STAND
|
||||
{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_14, 384*FRACUNIT, S_FLICKY_14_CENTER}, // S_FLICKY_14_CENTER
|
||||
|
||||
// Cat
|
||||
{SPR_FL15, 0, 2, {A_FlickyCheck}, S_FLICKY_15_AIM, 0, S_FLICKY_15_OUT}, // S_FLICKY_15_OUT
|
||||
|
@ -2754,12 +2782,16 @@ state_t states[NUMSTATES] =
|
|||
{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
|
||||
{SPR_FL15, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL}, // S_FLICKY_15_STAND
|
||||
{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_15, 384*FRACUNIT, S_FLICKY_15_CENTER}, // S_FLICKY_15_CENTER
|
||||
|
||||
// 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
|
||||
{SPR_FL16, FF_ANIMATE|1, -1, {NULL}, 2, 3, S_NULL}, // S_FLICKY_16_STAND
|
||||
{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_16, 384*FRACUNIT, S_FLICKY_16_CENTER}, // S_FLICKY_16_CENTER
|
||||
|
||||
// Spider
|
||||
{SPR_FS01, 0, 2, {A_FlickyCheck}, S_SECRETFLICKY_01_AIM, 0, S_SECRETFLICKY_01_OUT}, // S_SECRETFLICKY_01_OUT
|
||||
|
@ -2767,12 +2799,16 @@ state_t states[NUMSTATES] =
|
|||
{SPR_FS01, 1, 1, {A_FlickyFlounder}, 2*FRACUNIT, 6*FRACUNIT, S_SECRETFLICKY_01_UP}, // S_SECRETFLICKY_01_HOP
|
||||
{SPR_FS01, 2, 2, {A_FlickyCheck}, S_SECRETFLICKY_01_AIM, S_SECRETFLICKY_01_DOWN, S_SECRETFLICKY_01_UP}, // S_SECRETFLICKY_01_UP
|
||||
{SPR_FS01, 3, 2, {A_FlickyCheck}, S_SECRETFLICKY_01_AIM, 0, S_SECRETFLICKY_01_DOWN}, // S_SECRETFLICKY_01_DOWN
|
||||
{SPR_FS01, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL}, // S_SECRETFLICKY_01_STAND
|
||||
{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_SECRETFLICKY_01, 384*FRACUNIT, S_SECRETFLICKY_01_CENTER}, // S_SECRETFLICKY_01_CENTER
|
||||
|
||||
// Bat
|
||||
{SPR_FS02, 0, 2, {A_FlickyHeightCheck}, S_SECRETFLICKY_02_FLAP1, S_SECRETFLICKY_02_FLAP1, S_SECRETFLICKY_02_OUT}, // S_SECRETFLICKY_02_OUT
|
||||
{SPR_FS02, 1, 3, {A_FlickyFly}, 4*FRACUNIT, 16*FRACUNIT, S_SECRETFLICKY_02_FLAP2}, // S_SECRETFLICKY_02_FLAP1
|
||||
{SPR_FS02, 2, 3, {A_FlickyFly}, 4*FRACUNIT, 16*FRACUNIT, S_SECRETFLICKY_02_FLAP3}, // S_SECRETFLICKY_02_FLAP2
|
||||
{SPR_FS02, 3, 3, {A_FlickyFly}, 4*FRACUNIT, 16*FRACUNIT, S_SECRETFLICKY_02_FLAP1}, // S_SECRETFLICKY_02_FLAP3
|
||||
{SPR_FS02, FF_ANIMATE|1, -1, {NULL}, 2, 2, S_NULL}, // S_SECRETFLICKY_02_STAND
|
||||
{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_SECRETFLICKY_02, 384*FRACUNIT, S_SECRETFLICKY_02_CENTER}, // S_SECRETFLICKY_02_CENTER
|
||||
|
||||
// Fan
|
||||
{SPR_FANS, 0, 1, {A_FanBubbleSpawn}, 2048, 0, S_FAN2}, // S_FAN
|
||||
|
@ -13747,7 +13783,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
-1, // doomednum
|
||||
S_FLICKY_01_OUT, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
S_FLICKY_01_STAND, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
|
@ -13770,11 +13806,38 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_FLICKY_BUBBLE // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_01_CENTER
|
||||
2200, // doomednum
|
||||
S_FLICKY_01_CENTER, // 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_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_02
|
||||
-1, // doomednum
|
||||
S_FLICKY_02_OUT, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
S_FLICKY_02_STAND, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
|
@ -13797,11 +13860,38 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_FLICKY_BUBBLE // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_02_CENTER
|
||||
2201, // doomednum
|
||||
S_FLICKY_02_CENTER, // 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_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_03
|
||||
-1, // doomednum
|
||||
S_FLICKY_03_OUT, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
S_FLICKY_03_STAND, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
|
@ -13824,11 +13914,38 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_FLICKY_BUBBLE // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_03_CENTER
|
||||
2202, // doomednum
|
||||
S_FLICKY_03_CENTER, // 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_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_04
|
||||
-1, // doomednum
|
||||
S_FLICKY_04_OUT, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
S_FLICKY_04_STAND, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
|
@ -13851,9 +13968,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_05
|
||||
-1, // doomednum
|
||||
S_FLICKY_05_OUT, // spawnstate
|
||||
{ // MT_FLICKY_04_CENTER
|
||||
2203, // doomednum
|
||||
S_FLICKY_04_CENTER, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
sfx_None, // seesound
|
||||
|
@ -13874,15 +13991,69 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
16, // mass
|
||||
0, // damage
|
||||
sfx_None, // activesound
|
||||
MF_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_05
|
||||
-1, // doomednum
|
||||
S_FLICKY_05_OUT, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_FLICKY_05_STAND, // 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_05_CENTER
|
||||
2204, // doomednum
|
||||
S_FLICKY_05_CENTER, // 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_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_06
|
||||
-1, // doomednum
|
||||
S_FLICKY_06_OUT, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
S_FLICKY_06_STAND, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
|
@ -13905,11 +14076,38 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_FLICKY_BUBBLE // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_06_CENTER
|
||||
2205, // doomednum
|
||||
S_FLICKY_06_CENTER, // 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_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_07
|
||||
-1, // doomednum
|
||||
S_FLICKY_07_OUT, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
S_FLICKY_07_STAND, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
|
@ -13932,11 +14130,38 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_07_CENTER
|
||||
2206, // doomednum
|
||||
S_FLICKY_07_CENTER, // 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_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_08
|
||||
-1, // doomednum
|
||||
S_FLICKY_08_OUT, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
S_FLICKY_08_STAND, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
|
@ -13959,9 +14184,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_09
|
||||
-1, // doomednum
|
||||
S_FLICKY_09_OUT, // spawnstate
|
||||
{ // MT_FLICKY_08_CENTER
|
||||
2207, // doomednum
|
||||
S_FLICKY_08_CENTER, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
sfx_None, // seesound
|
||||
|
@ -13982,15 +14207,69 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
16, // mass
|
||||
0, // damage
|
||||
sfx_None, // activesound
|
||||
MF_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_09
|
||||
-1, // doomednum
|
||||
S_FLICKY_09_OUT, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_FLICKY_09_STAND, // 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_09_CENTER
|
||||
2208, // doomednum
|
||||
S_FLICKY_09_CENTER, // 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_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_10
|
||||
-1, // doomednum
|
||||
S_FLICKY_10_OUT, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
S_FLICKY_10_STAND, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
|
@ -14013,11 +14292,38 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_FLICKY_BUBBLE // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_10_CENTER
|
||||
2209, // doomednum
|
||||
S_FLICKY_10_CENTER, // 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_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_11
|
||||
-1, // doomednum
|
||||
S_FLICKY_11_OUT, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
S_FLICKY_11_STAND, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
|
@ -14040,11 +14346,38 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_FLICKY_BUBBLE // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_11_CENTER
|
||||
2210, // doomednum
|
||||
S_FLICKY_11_CENTER, // 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_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_12
|
||||
-1, // doomednum
|
||||
S_FLICKY_12_OUT, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
S_FLICKY_12_STAND, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
|
@ -14067,11 +14400,38 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_FLICKY_BUBBLE // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_12_CENTER
|
||||
2211, // doomednum
|
||||
S_FLICKY_12_CENTER, // 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_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_13
|
||||
-1, // doomednum
|
||||
S_FLICKY_13_OUT, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
S_FLICKY_13_STAND, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
|
@ -14094,11 +14454,38 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_FLICKY_BUBBLE // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_13_CENTER
|
||||
2212, // doomednum
|
||||
S_FLICKY_13_CENTER, // 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_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_14
|
||||
-1, // doomednum
|
||||
S_FLICKY_14_OUT, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
S_FLICKY_14_STAND, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
|
@ -14121,11 +14508,38 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_FLICKY_BUBBLE // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_14_CENTER
|
||||
2213, // doomednum
|
||||
S_FLICKY_14_CENTER, // 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_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_15
|
||||
-1, // doomednum
|
||||
S_FLICKY_15_OUT, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
S_FLICKY_15_STAND, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
|
@ -14148,11 +14562,38 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_FLICKY_BUBBLE // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_15_CENTER
|
||||
2214, // doomednum
|
||||
S_FLICKY_15_CENTER, // 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_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_16
|
||||
-1, // doomednum
|
||||
S_FLICKY_16_OUT, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
S_FLICKY_16_STAND, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
|
@ -14175,11 +14616,38 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_FLICKY_BUBBLE // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLICKY_16_CENTER
|
||||
2215, // doomednum
|
||||
S_FLICKY_16_CENTER, // 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_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_SECRETFLICKY_01
|
||||
-1, // doomednum
|
||||
S_SECRETFLICKY_01_OUT, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
S_SECRETFLICKY_01_STAND, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
|
@ -14202,9 +14670,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_FLICKY_BUBBLE // raisestate
|
||||
},
|
||||
|
||||
{ // MT_SECRETFLICKY_02
|
||||
-1, // doomednum
|
||||
S_SECRETFLICKY_02_OUT, // spawnstate
|
||||
{ // MT_SECRETFLICKY_01_CENTER
|
||||
2216, // doomednum
|
||||
S_SECRETFLICKY_01_CENTER, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
sfx_None, // seesound
|
||||
|
@ -14225,10 +14693,64 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
16, // mass
|
||||
0, // damage
|
||||
sfx_None, // activesound
|
||||
MF_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_SECRETFLICKY_02
|
||||
-1, // doomednum
|
||||
S_SECRETFLICKY_02_OUT, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_SECRETFLICKY_02_STAND, // 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_SECRETFLICKY_02_CENTER
|
||||
2217, // doomednum
|
||||
S_SECRETFLICKY_02_CENTER, // 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_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_SEED
|
||||
-1, // doomednum
|
||||
S_SEED, // spawnstate
|
||||
|
|
55
src/info.h
55
src/info.h
|
@ -216,6 +216,7 @@ void A_BrakLobShot();
|
|||
void A_NapalmScatter();
|
||||
void A_SpawnFreshCopy();
|
||||
void A_FlickySpawn();
|
||||
void A_FlickyCenter();
|
||||
void A_FlickyAim();
|
||||
void A_FlickyFly();
|
||||
void A_FlickySoar();
|
||||
|
@ -2748,6 +2749,8 @@ typedef enum state
|
|||
S_FLICKY_01_FLAP1,
|
||||
S_FLICKY_01_FLAP2,
|
||||
S_FLICKY_01_FLAP3,
|
||||
S_FLICKY_01_STAND,
|
||||
S_FLICKY_01_CENTER,
|
||||
|
||||
// Rabbit
|
||||
S_FLICKY_02_OUT,
|
||||
|
@ -2755,6 +2758,8 @@ typedef enum state
|
|||
S_FLICKY_02_HOP,
|
||||
S_FLICKY_02_UP,
|
||||
S_FLICKY_02_DOWN,
|
||||
S_FLICKY_02_STAND,
|
||||
S_FLICKY_02_CENTER,
|
||||
|
||||
// Chicken
|
||||
S_FLICKY_03_OUT,
|
||||
|
@ -2763,6 +2768,8 @@ typedef enum state
|
|||
S_FLICKY_03_UP,
|
||||
S_FLICKY_03_FLAP1,
|
||||
S_FLICKY_03_FLAP2,
|
||||
S_FLICKY_03_STAND,
|
||||
S_FLICKY_03_CENTER,
|
||||
|
||||
// Seal
|
||||
S_FLICKY_04_OUT,
|
||||
|
@ -2774,6 +2781,8 @@ typedef enum state
|
|||
S_FLICKY_04_SWIM2,
|
||||
S_FLICKY_04_SWIM3,
|
||||
S_FLICKY_04_SWIM4,
|
||||
S_FLICKY_04_STAND,
|
||||
S_FLICKY_04_CENTER,
|
||||
|
||||
// Pig
|
||||
S_FLICKY_05_OUT,
|
||||
|
@ -2781,6 +2790,8 @@ typedef enum state
|
|||
S_FLICKY_05_HOP,
|
||||
S_FLICKY_05_UP,
|
||||
S_FLICKY_05_DOWN,
|
||||
S_FLICKY_05_STAND,
|
||||
S_FLICKY_05_CENTER,
|
||||
|
||||
// Chipmunk
|
||||
S_FLICKY_06_OUT,
|
||||
|
@ -2788,6 +2799,8 @@ typedef enum state
|
|||
S_FLICKY_06_HOP,
|
||||
S_FLICKY_06_UP,
|
||||
S_FLICKY_06_DOWN,
|
||||
S_FLICKY_06_STAND,
|
||||
S_FLICKY_06_CENTER,
|
||||
|
||||
// Penguin
|
||||
S_FLICKY_07_OUT,
|
||||
|
@ -2802,6 +2815,8 @@ typedef enum state
|
|||
S_FLICKY_07_SWIM1,
|
||||
S_FLICKY_07_SWIM2,
|
||||
S_FLICKY_07_SWIM3,
|
||||
S_FLICKY_07_STAND,
|
||||
S_FLICKY_07_CENTER,
|
||||
|
||||
// Fish
|
||||
S_FLICKY_08_OUT,
|
||||
|
@ -2815,6 +2830,8 @@ typedef enum state
|
|||
S_FLICKY_08_SWIM2,
|
||||
S_FLICKY_08_SWIM3,
|
||||
S_FLICKY_08_SWIM4,
|
||||
S_FLICKY_08_STAND,
|
||||
S_FLICKY_08_CENTER,
|
||||
|
||||
// Ram
|
||||
S_FLICKY_09_OUT,
|
||||
|
@ -2822,11 +2839,15 @@ typedef enum state
|
|||
S_FLICKY_09_HOP,
|
||||
S_FLICKY_09_UP,
|
||||
S_FLICKY_09_DOWN,
|
||||
S_FLICKY_09_STAND,
|
||||
S_FLICKY_09_CENTER,
|
||||
|
||||
// Puffin
|
||||
S_FLICKY_10_OUT,
|
||||
S_FLICKY_10_FLAP1,
|
||||
S_FLICKY_10_FLAP2,
|
||||
S_FLICKY_10_STAND,
|
||||
S_FLICKY_10_CENTER,
|
||||
|
||||
// Cow
|
||||
S_FLICKY_11_OUT,
|
||||
|
@ -2834,6 +2855,8 @@ typedef enum state
|
|||
S_FLICKY_11_RUN1,
|
||||
S_FLICKY_11_RUN2,
|
||||
S_FLICKY_11_RUN3,
|
||||
S_FLICKY_11_STAND,
|
||||
S_FLICKY_11_CENTER,
|
||||
|
||||
// Rat
|
||||
S_FLICKY_12_OUT,
|
||||
|
@ -2841,6 +2864,8 @@ typedef enum state
|
|||
S_FLICKY_12_RUN1,
|
||||
S_FLICKY_12_RUN2,
|
||||
S_FLICKY_12_RUN3,
|
||||
S_FLICKY_12_STAND,
|
||||
S_FLICKY_12_CENTER,
|
||||
|
||||
// Bear
|
||||
S_FLICKY_13_OUT,
|
||||
|
@ -2848,12 +2873,16 @@ typedef enum state
|
|||
S_FLICKY_13_HOP,
|
||||
S_FLICKY_13_UP,
|
||||
S_FLICKY_13_DOWN,
|
||||
S_FLICKY_13_STAND,
|
||||
S_FLICKY_13_CENTER,
|
||||
|
||||
// Dove
|
||||
S_FLICKY_14_OUT,
|
||||
S_FLICKY_14_FLAP1,
|
||||
S_FLICKY_14_FLAP2,
|
||||
S_FLICKY_14_FLAP3,
|
||||
S_FLICKY_14_STAND,
|
||||
S_FLICKY_14_CENTER,
|
||||
|
||||
// Cat
|
||||
S_FLICKY_15_OUT,
|
||||
|
@ -2861,12 +2890,16 @@ typedef enum state
|
|||
S_FLICKY_15_HOP,
|
||||
S_FLICKY_15_UP,
|
||||
S_FLICKY_15_DOWN,
|
||||
S_FLICKY_15_STAND,
|
||||
S_FLICKY_15_CENTER,
|
||||
|
||||
// Canary
|
||||
S_FLICKY_16_OUT,
|
||||
S_FLICKY_16_FLAP1,
|
||||
S_FLICKY_16_FLAP2,
|
||||
S_FLICKY_16_FLAP3,
|
||||
S_FLICKY_16_STAND,
|
||||
S_FLICKY_16_CENTER,
|
||||
|
||||
// Spider
|
||||
S_SECRETFLICKY_01_OUT,
|
||||
|
@ -2874,12 +2907,16 @@ typedef enum state
|
|||
S_SECRETFLICKY_01_HOP,
|
||||
S_SECRETFLICKY_01_UP,
|
||||
S_SECRETFLICKY_01_DOWN,
|
||||
S_SECRETFLICKY_01_STAND,
|
||||
S_SECRETFLICKY_01_CENTER,
|
||||
|
||||
// Bat
|
||||
S_SECRETFLICKY_02_OUT,
|
||||
S_SECRETFLICKY_02_FLAP1,
|
||||
S_SECRETFLICKY_02_FLAP2,
|
||||
S_SECRETFLICKY_02_FLAP3,
|
||||
S_SECRETFLICKY_02_STAND,
|
||||
S_SECRETFLICKY_02_CENTER,
|
||||
|
||||
// Fan
|
||||
S_FAN,
|
||||
|
@ -4098,23 +4135,41 @@ typedef enum mobj_type
|
|||
|
||||
// Flickies
|
||||
MT_FLICKY_01, // Bluebird
|
||||
MT_FLICKY_01_CENTER,
|
||||
MT_FLICKY_02, // Rabbit
|
||||
MT_FLICKY_02_CENTER,
|
||||
MT_FLICKY_03, // Chicken
|
||||
MT_FLICKY_03_CENTER,
|
||||
MT_FLICKY_04, // Seal
|
||||
MT_FLICKY_04_CENTER,
|
||||
MT_FLICKY_05, // Pig
|
||||
MT_FLICKY_05_CENTER,
|
||||
MT_FLICKY_06, // Chipmunk
|
||||
MT_FLICKY_06_CENTER,
|
||||
MT_FLICKY_07, // Penguin
|
||||
MT_FLICKY_07_CENTER,
|
||||
MT_FLICKY_08, // Fish
|
||||
MT_FLICKY_08_CENTER,
|
||||
MT_FLICKY_09, // Ram
|
||||
MT_FLICKY_09_CENTER,
|
||||
MT_FLICKY_10, // Puffin
|
||||
MT_FLICKY_10_CENTER,
|
||||
MT_FLICKY_11, // Cow
|
||||
MT_FLICKY_11_CENTER,
|
||||
MT_FLICKY_12, // Rat
|
||||
MT_FLICKY_12_CENTER,
|
||||
MT_FLICKY_13, // Bear
|
||||
MT_FLICKY_13_CENTER,
|
||||
MT_FLICKY_14, // Dove
|
||||
MT_FLICKY_14_CENTER,
|
||||
MT_FLICKY_15, // Cat
|
||||
MT_FLICKY_15_CENTER,
|
||||
MT_FLICKY_16, // Canary
|
||||
MT_FLICKY_16_CENTER,
|
||||
MT_SECRETFLICKY_01, // Spider
|
||||
MT_SECRETFLICKY_01_CENTER,
|
||||
MT_SECRETFLICKY_02, // Bat
|
||||
MT_SECRETFLICKY_02_CENTER,
|
||||
MT_SEED,
|
||||
|
||||
// Environmental Effects
|
||||
|
|
184
src/p_enemy.c
184
src/p_enemy.c
|
@ -243,6 +243,7 @@ void A_BrakLobShot(mobj_t *actor);
|
|||
void A_NapalmScatter(mobj_t *actor);
|
||||
void A_SpawnFreshCopy(mobj_t *actor);
|
||||
void A_FlickySpawn(mobj_t *actor);
|
||||
void A_FlickyCenter(mobj_t *actor);
|
||||
void A_FlickyAim(mobj_t *actor);
|
||||
void A_FlickyFly(mobj_t *actor);
|
||||
void A_FlickySoar(mobj_t *actor);
|
||||
|
@ -10774,6 +10775,145 @@ void A_FlickySpawn(mobj_t *actor)
|
|||
P_InternalFlickySpawn(actor, locvar1, ((locvar2) ? locvar2 : 8*FRACUNIT), true);
|
||||
}
|
||||
|
||||
// Internal Flicky color setting
|
||||
void P_InternalFlickySetColor(mobj_t *actor, UINT8 extrainfo)
|
||||
{
|
||||
UINT8 flickycolors[] = {
|
||||
SKINCOLOR_RED,
|
||||
SKINCOLOR_CYAN,
|
||||
SKINCOLOR_BLUE,
|
||||
SKINCOLOR_VAPOR,
|
||||
SKINCOLOR_PURPLE,
|
||||
SKINCOLOR_BUBBLEGUM,
|
||||
SKINCOLOR_NEON,
|
||||
SKINCOLOR_BLACK,
|
||||
SKINCOLOR_BEIGE,
|
||||
SKINCOLOR_LAVENDER,
|
||||
SKINCOLOR_RUBY,
|
||||
SKINCOLOR_SALMON,
|
||||
SKINCOLOR_SUNSET,
|
||||
SKINCOLOR_ORANGE,
|
||||
SKINCOLOR_YELLOW,
|
||||
};
|
||||
|
||||
if (extrainfo == 0)
|
||||
// until we can customize flicky colors by level header, just stick to SRB2's defaults
|
||||
actor->color = flickycolors[P_RandomKey(2)]; //flickycolors[P_RandomKey(sizeof(flickycolors))];
|
||||
else
|
||||
actor->color = flickycolors[min(extrainfo-1, 14)]; // sizeof(flickycolors)-1
|
||||
}
|
||||
|
||||
// Function: A_FlickyCenter
|
||||
//
|
||||
// Description: Place flickies in-level.
|
||||
//
|
||||
// var1:
|
||||
// Lower 16 bits = if 0, spawns random flicky based on level header. Else, spawns the designated thing type.
|
||||
// Bits 17-20 = Flicky color, up to 15. Applies to fish.
|
||||
// Bit 21 = Flag MF_SLIDEME (see below)
|
||||
// Bit 22 = Flag MF_GRENADEBOUNCE (see below)
|
||||
// Bit 23 = Flag MF_NOCLIPTHING (see below)
|
||||
//
|
||||
// If actor is placed from a spawnpoint (map Thing), the Thing's properties take precedence.
|
||||
//
|
||||
// var2 = maximum default distance away from spawn the flickies are allowed to travel. If angle != 0, then that's the radius.
|
||||
//
|
||||
// If MTF_EXTRA (MF_SLIDEME): is flagged, Flickies move aimlessly. Else, orbit around the target.
|
||||
// If MTF_OBJECTSPECIAL (MF_GRENADEBOUNCE): Flickies stand in-place without gravity (unless they hop, then gravity is applied.)
|
||||
// If MTF_AMBUSH (MF_NOCLIPTHING): is flagged, Flickies hop.
|
||||
//
|
||||
void A_FlickyCenter(mobj_t *actor)
|
||||
{
|
||||
INT32 locvar1 = var1;
|
||||
INT32 locvar2 = var2;
|
||||
UINT16 flickytype = (locvar1 & 0xFFFF);
|
||||
UINT8 flickycolor = ((locvar1 >> 16) & 0xFF);
|
||||
UINT8 flickyflags = ((locvar1 >> 20) & 0xF);
|
||||
#ifdef HAVE_BLUA
|
||||
if (LUA_CallAction("A_FlickyCenter", actor))
|
||||
return;
|
||||
#endif
|
||||
|
||||
if (!actor->tracer)
|
||||
{
|
||||
mobj_t *flicky = P_InternalFlickySpawn(actor, locvar1, 1, false);
|
||||
P_SetTarget(&flicky->target, actor);
|
||||
P_SetTarget(&actor->tracer, flicky);
|
||||
|
||||
if (actor->spawnpoint)
|
||||
{
|
||||
actor->flags &= ~(MF_SLIDEME|MF_GRENADEBOUNCE|MF_NOCLIPTHING);
|
||||
actor->flags |= (
|
||||
((actor->spawnpoint->options & MTF_EXTRA) ? MF_SLIDEME : 0)
|
||||
| ((actor->spawnpoint->options & MTF_OBJECTSPECIAL) ? MF_GRENADEBOUNCE : 0)
|
||||
| ((actor->spawnpoint->options & MTF_AMBUSH) ? MF_NOCLIPTHING : 0)
|
||||
);
|
||||
actor->extravalue1 = actor->spawnpoint->angle ? abs(actor->spawnpoint->angle) * FRACUNIT
|
||||
: locvar2 ? abs(locvar2) : 384 * FRACUNIT;
|
||||
actor->extravalue2 = actor->spawnpoint->extrainfo;
|
||||
actor->friction = actor->spawnpoint->x*FRACUNIT;
|
||||
actor->movefactor = actor->spawnpoint->y*FRACUNIT;
|
||||
actor->watertop = actor->spawnpoint->z*FRACUNIT;
|
||||
}
|
||||
else
|
||||
{
|
||||
actor->flags &= ~(MF_SLIDEME|MF_GRENADEBOUNCE|MF_NOCLIPTHING);
|
||||
actor->flags |= (
|
||||
((flickyflags & 1) ? MF_SLIDEME : 0)
|
||||
| ((flickyflags & 2) ? MF_GRENADEBOUNCE : 0)
|
||||
| ((flickyflags & 4) ? MF_NOCLIPTHING : 0)
|
||||
);
|
||||
actor->extravalue1 = abs(locvar2);
|
||||
actor->extravalue2 = flickycolor;
|
||||
actor->friction = actor->x;
|
||||
actor->movefactor = actor->y;
|
||||
actor->watertop = actor->z;
|
||||
locvar1 = flickytype;
|
||||
}
|
||||
|
||||
if (actor->flags & MF_GRENADEBOUNCE) // in-place
|
||||
actor->tracer->fuse = 0;
|
||||
else if (actor->flags & MF_SLIDEME) // aimless
|
||||
{
|
||||
actor->tracer->fuse = 0; // less than 2*TICRATE means move aimlessly.
|
||||
actor->tracer->angle = P_RandomKey(180)*ANG2;
|
||||
}
|
||||
else //orbit
|
||||
actor->tracer->fuse = FRACUNIT;
|
||||
|
||||
if (locvar1 == MT_FLICKY_08)
|
||||
P_InternalFlickySetColor(actor->tracer, actor->extravalue2);
|
||||
|
||||
actor->extravalue2 = 0;
|
||||
}
|
||||
|
||||
if (!(actor->flags & MF_SLIDEME) && !(actor->flags & MF_GRENADEBOUNCE))
|
||||
{
|
||||
fixed_t originx = actor->friction;
|
||||
fixed_t originy = actor->movefactor;
|
||||
fixed_t originz = actor->watertop;
|
||||
|
||||
actor->tracer->fuse = FRACUNIT;
|
||||
|
||||
// Impose default home radius if flicky orbits around player
|
||||
if (!actor->extravalue1)
|
||||
actor->extravalue1 = locvar2 ? abs(locvar2) : 384 * FRACUNIT;
|
||||
|
||||
P_LookForPlayers(actor, true, false, actor->extravalue1);
|
||||
|
||||
if (actor->target && P_AproxDistance(actor->target->x - originx, actor->target->y - originy) < actor->extravalue1)
|
||||
{
|
||||
actor->extravalue2 = 1;
|
||||
P_TeleportMove(actor, actor->target->x, actor->target->y, actor->target->z);
|
||||
}
|
||||
else if(actor->extravalue2)
|
||||
{
|
||||
actor->extravalue2 = 0;
|
||||
P_TeleportMove(actor, originx, originy, originz);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Internal Flicky bubbling function.
|
||||
void P_InternalFlickyBubble(mobj_t *actor)
|
||||
{
|
||||
|
@ -10816,7 +10956,10 @@ void A_FlickyAim(mobj_t *actor)
|
|||
return;
|
||||
#endif
|
||||
|
||||
if (actor->momx == actor->momy && actor->momy == 0)
|
||||
if ((actor->momx == actor->momy && actor->momy == 0)
|
||||
|| (actor->target && P_IsFlickyCenter(actor->target->type)
|
||||
&& actor->target->extravalue1 && (actor->target->flags & MF_SLIDEME)
|
||||
&& P_AproxDistance(actor->x - actor->target->x, actor->y - actor->target->y) >= actor->target->extravalue1))
|
||||
flickyhitwall = true;
|
||||
|
||||
P_InternalFlickyBubble(actor);
|
||||
|
@ -10848,7 +10991,10 @@ void A_FlickyAim(mobj_t *actor)
|
|||
}
|
||||
else if (flickyhitwall)
|
||||
{
|
||||
actor->angle += ANGLE_180;
|
||||
if (actor->target && P_IsFlickyCenter(actor->target->type))
|
||||
actor->angle = R_PointToAngle2(actor->target->x, actor->target->y, actor->x, actor->y) + P_RandomRange(112, 248) * ANG1;
|
||||
else
|
||||
actor->angle += P_RandomRange(112, 248)*ANG1;
|
||||
actor->threshold = 0;
|
||||
}
|
||||
}
|
||||
|
@ -10884,7 +11030,13 @@ void P_InternalFlickyFly(mobj_t *actor, fixed_t flyspeed, fixed_t targetdist, fi
|
|||
if (actor->target && abs(chasez - actor->z) > targetdist)
|
||||
targetdist = P_AproxDistance(actor->target->x - actor->x, actor->target->y - actor->y);
|
||||
|
||||
if (actor->target
|
||||
&& P_IsFlickyCenter(actor->target->type)
|
||||
&& (actor->target->flags & MF_SLIDEME))
|
||||
vertangle = 0;
|
||||
else
|
||||
vertangle = (R_PointToAngle2(0, actor->z, targetdist, chasez) >> ANGLETOFINESHIFT) & FINEMASK;
|
||||
|
||||
P_InstaThrust(actor, actor->angle, FixedMul(FINECOSINE(vertangle), flyspeed));
|
||||
actor->momz = FixedMul(FINESINE(vertangle), flyspeed);
|
||||
}
|
||||
|
@ -11036,7 +11188,19 @@ void A_FlickyCheck(mobj_t *actor)
|
|||
if (LUA_CallAction("A_FlickyCheck", actor))
|
||||
return;
|
||||
#endif
|
||||
if (locvar2 && P_MobjFlip(actor)*actor->momz < 1)
|
||||
if (actor->target
|
||||
&& P_IsFlickyCenter(actor->target->type)
|
||||
&& (actor->target->flags & MF_GRENADEBOUNCE))
|
||||
{
|
||||
if (!(actor->target->flags & MF_NOCLIPTHING)) // no hopping
|
||||
{
|
||||
actor->momz = 0;
|
||||
actor->flags |= MF_NOGRAVITY;
|
||||
}
|
||||
actor->flags |= MF_NOCLIP | MF_NOBLOCKMAP | MF_SCENERY;
|
||||
P_SetMobjState(actor, mobjinfo[actor->type].seestate);
|
||||
}
|
||||
else if (locvar2 && P_MobjFlip(actor)*actor->momz < 1)
|
||||
P_SetMobjState(actor, locvar2);
|
||||
else if (locvar1 && ((!(actor->eflags & MFE_VERTICALFLIP) && actor->z <= actor->floorz)
|
||||
|| ((actor->eflags & MFE_VERTICALFLIP) && actor->z + actor->height >= actor->ceilingz)))
|
||||
|
@ -11061,7 +11225,19 @@ void A_FlickyHeightCheck(mobj_t *actor)
|
|||
if (LUA_CallAction("A_FlickyHeightCheck", actor))
|
||||
return;
|
||||
#endif
|
||||
if (locvar1 && actor->target && P_MobjFlip(actor)*actor->momz < 1
|
||||
if (actor->target
|
||||
&& P_IsFlickyCenter(actor->target->type)
|
||||
&& (actor->target->flags & MF_GRENADEBOUNCE))
|
||||
{
|
||||
if (!(actor->target->flags & MF_NOCLIPTHING)) // no hopping
|
||||
{
|
||||
actor->momz = 0;
|
||||
actor->flags |= MF_NOGRAVITY;
|
||||
}
|
||||
actor->flags |= MF_NOCLIP | MF_NOBLOCKMAP | MF_SCENERY;
|
||||
P_SetMobjState(actor, mobjinfo[actor->type].seestate);
|
||||
}
|
||||
else if (locvar1 && actor->target && P_MobjFlip(actor)*actor->momz < 1
|
||||
&& ((P_MobjFlip(actor)*((actor->z + actor->height/2) - (actor->target->z + actor->target->height/2)) < locvar2)
|
||||
|| (actor->z - actor->height < actor->floorz) || (actor->z + 2*actor->height > actor->ceilingz)))
|
||||
P_SetMobjState(actor, locvar1);
|
||||
|
|
|
@ -311,6 +311,8 @@ void P_NewChaseDir(mobj_t *actor);
|
|||
boolean P_LookForPlayers(mobj_t *actor, boolean allaround, boolean tracer, fixed_t dist);
|
||||
|
||||
mobj_t *P_InternalFlickySpawn(mobj_t *actor, mobjtype_t flickytype, fixed_t momz, boolean lookforplayers);
|
||||
void P_InternalFlickySetColor(mobj_t *actor, UINT8 extrainfo);
|
||||
#define P_IsFlickyCenter(type) (type > MT_FLICKY_01 && type < MT_SEED && (type - MT_FLICKY_01) % 2 ? 1 : 0)
|
||||
void P_InternalFlickyBubble(mobj_t *actor);
|
||||
void P_InternalFlickyFly(mobj_t *actor, fixed_t flyspeed, fixed_t targetdist, fixed_t chasez);
|
||||
void P_InternalFlickyHop(mobj_t *actor, fixed_t momz, fixed_t momh, angle_t angle);
|
||||
|
|
28
src/p_mobj.c
28
src/p_mobj.c
|
@ -7119,6 +7119,34 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
S_StartSound(flame, sfx_fire);
|
||||
}
|
||||
break;
|
||||
case MT_FLICKY_01_CENTER:
|
||||
case MT_FLICKY_02_CENTER:
|
||||
case MT_FLICKY_03_CENTER:
|
||||
case MT_FLICKY_04_CENTER:
|
||||
case MT_FLICKY_05_CENTER:
|
||||
case MT_FLICKY_06_CENTER:
|
||||
case MT_FLICKY_07_CENTER:
|
||||
case MT_FLICKY_08_CENTER:
|
||||
case MT_FLICKY_09_CENTER:
|
||||
case MT_FLICKY_10_CENTER:
|
||||
case MT_FLICKY_11_CENTER:
|
||||
case MT_FLICKY_12_CENTER:
|
||||
case MT_FLICKY_13_CENTER:
|
||||
case MT_FLICKY_14_CENTER:
|
||||
case MT_FLICKY_15_CENTER:
|
||||
case MT_FLICKY_16_CENTER:
|
||||
case MT_SECRETFLICKY_01_CENTER:
|
||||
case MT_SECRETFLICKY_02_CENTER:
|
||||
if (mobj->tracer && (mobj->flags & MF_NOCLIPTHING)
|
||||
&& (mobj->flags & MF_GRENADEBOUNCE))
|
||||
// for now: only do this bounce routine if flicky is in-place. \todo allow in all movements
|
||||
{
|
||||
if (!(mobj->tracer->flags2 & MF2_OBJECTFLIP) && mobj->tracer->z <= mobj->tracer->floorz)
|
||||
mobj->tracer->momz = 7*FRACUNIT;
|
||||
else if ((mobj->tracer->flags2 & MF2_OBJECTFLIP) && mobj->tracer->z >= mobj->tracer->ceilingz - mobj->tracer->height)
|
||||
mobj->tracer->momz = -7*FRACUNIT;
|
||||
}
|
||||
break;
|
||||
case MT_SEED:
|
||||
if (P_MobjFlip(mobj)*mobj->momz < mobj->info->speed)
|
||||
mobj->momz = P_MobjFlip(mobj)*mobj->info->speed;
|
||||
|
|
Loading…
Reference in a new issue