Big monitors are "Gold Monitors" now.

The useless ones have been removed, too, and they should always spawn as what they should regardless of settings.
By the way, graphics are at https://dl.dropboxusercontent.com/u/3518218/22/monitorgfx.wad
This commit is contained in:
Inuyasha 2015-12-31 15:29:08 -08:00
parent 265a607b58
commit 98f652aca6
5 changed files with 148 additions and 405 deletions

View file

@ -1628,9 +1628,9 @@ static actionpointer_t actionpointers[] =
{{A_Pain}, "A_PAIN"},
{{A_Fall}, "A_FALL"},
{{A_MonitorPop}, "A_MONITORPOP"},
{{A_BigMonitorPop}, "A_BIGMONITORPOP"},
{{A_BigMonitorRestore}, "A_BIGMONITORRESTORE"},
{{A_BigMonitorSparkle}, "A_BIGMONITORSPARKLE"},
{{A_GoldMonitorPop}, "A_GOLDMONITORPOP"},
{{A_GoldMonitorRestore}, "A_GOLDMONITORRESTORE"},
{{A_GoldMonitorSparkle}, "A_GOLDMONITORSPARKLE"},
{{A_Look}, "A_LOOK"},
{{A_Chase}, "A_CHASE"},
{{A_FaceStabChase}, "A_FACESTABCHASE"},
@ -4867,14 +4867,14 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_BOX_POP1",
"S_BOX_POP2",
"S_BIGBOX_FLICKER",
"S_BIGBOX_OFF1",
"S_BIGBOX_OFF2",
"S_BIGBOX_OFF3",
"S_BIGBOX_OFF4",
"S_BIGBOX_OFF5",
"S_BIGBOX_OFF6",
"S_BIGBOX_OFF7",
"S_GOLDBOX_FLICKER",
"S_GOLDBOX_OFF1",
"S_GOLDBOX_OFF2",
"S_GOLDBOX_OFF3",
"S_GOLDBOX_OFF4",
"S_GOLDBOX_OFF5",
"S_GOLDBOX_OFF6",
"S_GOLDBOX_OFF7",
// Monitor States (one per box)
"S_MYSTERY_BOX",
@ -4895,24 +4895,16 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_SCORE1K_BOX",
"S_SCORE10K_BOX",
// Repeat Monitor States (one per box)
"S_MYSTERY_BIGBOX",
"S_RING_BIGBOX",
"S_PITY_BIGBOX",
"S_ATTRACT_BIGBOX",
"S_FORCE_BIGBOX",
"S_ARMAGEDDON_BIGBOX",
"S_WHIRLWIND_BIGBOX",
"S_ELEMENTAL_BIGBOX",
"S_SNEAKERS_BIGBOX",
"S_INVULN_BIGBOX",
"S_1UP_BIGBOX",
"S_EGGMAN_BIGBOX",
"S_MIXUP_BIGBOX",
"S_GRAVITY_BIGBOX",
"S_RECYCLER_BIGBOX",
"S_SCORE1K_BIGBOX",
"S_SCORE10K_BIGBOX",
// Gold Repeat Monitor States (one per box)
"S_PITY_GOLDBOX",
"S_ATTRACT_GOLDBOX",
"S_FORCE_GOLDBOX",
"S_ARMAGEDDON_GOLDBOX",
"S_WHIRLWIND_GOLDBOX",
"S_ELEMENTAL_GOLDBOX",
"S_SNEAKERS_GOLDBOX",
"S_INVULN_GOLDBOX",
"S_GRAVITY_GOLDBOX",
// Team Ring Boxes (these are special)
"S_RING_REDBOX1",
@ -6785,23 +6777,15 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
"MT_SCORE10K_BOX",
// Monitor boxes -- repeating (big) boxes
"MT_RING_BIGBOX",
"MT_PITY_BIGBOX",
"MT_ATTRACT_BIGBOX",
"MT_FORCE_BIGBOX",
"MT_ARMAGEDDON_BIGBOX",
"MT_WHIRLWIND_BIGBOX",
"MT_ELEMENTAL_BIGBOX",
"MT_SNEAKERS_BIGBOX",
"MT_INVULN_BIGBOX",
"MT_1UP_BIGBOX",
"MT_EGGMAN_BIGBOX",
"MT_MIXUP_BIGBOX",
"MT_MYSTERY_BIGBOX",
"MT_GRAVITY_BIGBOX",
"MT_RECYCLER_BIGBOX",
"MT_SCORE1K_BIGBOX",
"MT_SCORE10K_BIGBOX",
"MT_PITY_GOLDBOX",
"MT_ATTRACT_GOLDBOX",
"MT_FORCE_GOLDBOX",
"MT_ARMAGEDDON_GOLDBOX",
"MT_WHIRLWIND_GOLDBOX",
"MT_ELEMENTAL_GOLDBOX",
"MT_SNEAKERS_GOLDBOX",
"MT_INVULN_GOLDBOX",
"MT_GRAVITY_GOLDBOX",
// Monitor boxes -- special
"MT_RING_REDBOX",

View file

@ -1248,14 +1248,14 @@ state_t states[NUMSTATES] =
{SPR_MSTV, 0, 4, {A_MonitorPop}, 0, 0, S_BOX_POP2}, // S_BOX_POP1
{SPR_MSTV, 1, -1, {NULL}, 0, 0, S_NULL}, // S_BOX_POP2
{SPR_XLTV, 0, 1, {NULL}, 0, 0, S_SPAWNSTATE}, // S_BIGBOX_FLICKER
{SPR_XLTV, 1, 89, {A_BigMonitorPop}, 0, 0, S_BIGBOX_OFF2}, // S_BIGBOX_OFF1
{SPR_XLTV, 2, 4, {A_PlayAttackSound}, 0, 0, S_BIGBOX_OFF3}, // S_BIGBOX_OFF2
{SPR_XLTV, 3, 4, {NULL}, 0, 0, S_BIGBOX_OFF4}, // S_BIGBOX_OFF3
{SPR_XLTV, 4, 4, {NULL}, 0, 0, S_BIGBOX_OFF5}, // S_BIGBOX_OFF4
{SPR_XLTV, 5, 2, {NULL}, 0, 0, S_BIGBOX_OFF6}, // S_BIGBOX_OFF5
{SPR_XLTV, 6, 2, {NULL}, 0, 0, S_BIGBOX_OFF7}, // S_BIGBOX_OFF6
{SPR_XLTV, 6, 0, {A_BigMonitorRestore}, 0, 0, S_SPAWNSTATE}, // S_BIGBOX_OFF7
{SPR_XLTV, 0, 1, {NULL}, 0, 0, S_SPAWNSTATE}, // S_GOLDBOX_FLICKER
{SPR_XLTV, 1, 89, {A_GoldMonitorPop}, 0, 0, S_GOLDBOX_OFF2}, // S_GOLDBOX_OFF1
{SPR_XLTV, 2, 4, {A_PlayAttackSound}, 0, 0, S_GOLDBOX_OFF3}, // S_GOLDBOX_OFF2
{SPR_XLTV, 3, 4, {NULL}, 0, 0, S_GOLDBOX_OFF4}, // S_GOLDBOX_OFF3
{SPR_XLTV, 4, 4, {NULL}, 0, 0, S_GOLDBOX_OFF5}, // S_GOLDBOX_OFF4
{SPR_XLTV, 5, 2, {NULL}, 0, 0, S_GOLDBOX_OFF6}, // S_GOLDBOX_OFF5
{SPR_XLTV, 6, 2, {NULL}, 0, 0, S_GOLDBOX_OFF7}, // S_GOLDBOX_OFF6
{SPR_XLTV, 6, 0, {A_GoldMonitorRestore}, 0, 0, S_SPAWNSTATE}, // S_GOLDBOX_OFF7
// Monitor States (one per box)
{SPR_TVMY, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER}, // S_MYSTERY_BOX
@ -1276,24 +1276,16 @@ state_t states[NUMSTATES] =
{SPR_TV1K, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER}, // S_SCORE1K_BOX
{SPR_TVTK, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER}, // S_SCORE10K_BOX
// Repeat Monitor States (one per box)
{SPR_TVMY, 1, 2, {A_BigMonitorSparkle}, 0, 0, S_BIGBOX_FLICKER}, // S_MYSTERY_BIGBOX
{SPR_TVRI, 1, 2, {A_BigMonitorSparkle}, 0, 0, S_BIGBOX_FLICKER}, // S_RING_BIGBOX
{SPR_TVPI, 1, 2, {A_BigMonitorSparkle}, 0, 0, S_BIGBOX_FLICKER}, // S_PITY_BIGBOX
{SPR_TVAT, 1, 2, {A_BigMonitorSparkle}, 0, 0, S_BIGBOX_FLICKER}, // S_ATTRACT_BIGBOX
{SPR_TVFO, 1, 2, {A_BigMonitorSparkle}, 0, 0, S_BIGBOX_FLICKER}, // S_FORCE_BIGBOX
{SPR_TVAR, 1, 2, {A_BigMonitorSparkle}, 0, 0, S_BIGBOX_FLICKER}, // S_ARMAGEDDON_BIGBOX
{SPR_TVWW, 1, 2, {A_BigMonitorSparkle}, 0, 0, S_BIGBOX_FLICKER}, // S_WHIRLWIND_BIGBOX
{SPR_TVEL, 1, 2, {A_BigMonitorSparkle}, 0, 0, S_BIGBOX_FLICKER}, // S_ELEMENTAL_BIGBOX
{SPR_TVSS, 1, 2, {A_BigMonitorSparkle}, 0, 0, S_BIGBOX_FLICKER}, // S_SNEAKERS_BIGBOX
{SPR_TVIV, 1, 2, {A_BigMonitorSparkle}, 0, 0, S_BIGBOX_FLICKER}, // S_INVULN_BIGBOX
{SPR_TV1P, 1, 2, {A_DualAction}, S_MYSTERY_BIGBOX, S_1UP_BOX, S_BIGBOX_FLICKER}, // S_1UP_BIGBOX
{SPR_TVEG, 1, 2, {A_BigMonitorSparkle}, 0, 0, S_BIGBOX_FLICKER}, // S_EGGMAN_BIGBOX
{SPR_TVMX, 1, 2, {A_BigMonitorSparkle}, 0, 0, S_BIGBOX_FLICKER}, // S_MIXUP_BIGBOX
{SPR_TVGV, 1, 2, {A_BigMonitorSparkle}, 0, 0, S_BIGBOX_FLICKER}, // S_GRAVITY_BIGBOX
{SPR_TVRC, 1, 2, {A_BigMonitorSparkle}, 0, 0, S_BIGBOX_FLICKER}, // S_RECYCLER_BIGBOX
{SPR_TV1K, 1, 2, {A_BigMonitorSparkle}, 0, 0, S_BIGBOX_FLICKER}, // S_SCORE1K_BIGBOX
{SPR_TVTK, 1, 2, {A_BigMonitorSparkle}, 0, 0, S_BIGBOX_FLICKER}, // S_SCORE10K_BIGBOX
// Gold Repeat Monitor States (one per box)
{SPR_TVPI, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER}, // S_PITY_GOLDBOX
{SPR_TVAT, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER}, // S_ATTRACT_GOLDBOX
{SPR_TVFO, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER}, // S_FORCE_GOLDBOX
{SPR_TVAR, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER}, // S_ARMAGEDDON_GOLDBOX
{SPR_TVWW, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER}, // S_WHIRLWIND_GOLDBOX
{SPR_TVEL, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER}, // S_ELEMENTAL_GOLDBOX
{SPR_TVSS, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER}, // S_SNEAKERS_GOLDBOX
{SPR_TVIV, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER}, // S_INVULN_GOLDBOX
{SPR_TVGV, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER}, // S_GRAVITY_GOLDBOX
// Team Ring Boxes (these are special)
{SPR_TRRI, 0, 2, {NULL}, 0, 0, S_RING_REDBOX2}, // S_RING_REDBOX1
@ -6568,47 +6560,20 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_RING_BIGBOX
430, // doomednum
S_RING_BIGBOX, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_monton, // attacksound
S_RING_BIGBOX, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_BIGBOX_OFF1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
MT_RING_ICON, // damage
sfx_None, // activesound
MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags
S_NULL // raisestate
},
{ // MT_PITY_BIGBOX
{ // MT_PITY_GOLDBOX
431, // doomednum
S_PITY_BIGBOX, // spawnstate
S_PITY_GOLDBOX, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_monton, // attacksound
S_PITY_BIGBOX, // painstate
S_PITY_GOLDBOX, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_BIGBOX_OFF1, // deathstate
S_GOLDBOX_OFF1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
0, // speed
@ -6618,24 +6583,24 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
MT_PITY_ICON, // damage
sfx_None, // activesound
MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags
MF_SOLID|MF_SHOOTABLE|MF_MONITOR|MF_GRENADEBOUNCE, // flags
S_NULL // raisestate
},
{ // MT_ATTRACT_BIGBOX
{ // MT_ATTRACT_GOLDBOX
432, // doomednum
S_ATTRACT_BIGBOX, // spawnstate
S_ATTRACT_GOLDBOX, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_monton, // attacksound
S_ATTRACT_BIGBOX, // painstate
S_ATTRACT_GOLDBOX, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_BIGBOX_OFF1, // deathstate
S_GOLDBOX_OFF1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
0, // speed
@ -6645,24 +6610,24 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
MT_ATTRACT_ICON,// damage
sfx_None, // activesound
MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags
MF_SOLID|MF_SHOOTABLE|MF_MONITOR|MF_GRENADEBOUNCE, // flags
S_NULL // raisestate
},
{ // MT_FORCE_BIGBOX
{ // MT_FORCE_GOLDBOX
433, // doomednum
S_FORCE_BIGBOX, // spawnstate
S_FORCE_GOLDBOX, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_monton, // attacksound
S_FORCE_BIGBOX, // painstate
S_FORCE_GOLDBOX, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_BIGBOX_OFF1, // deathstate
S_GOLDBOX_OFF1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
0, // speed
@ -6672,24 +6637,24 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
MT_FORCE_ICON, // damage
sfx_None, // activesound
MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags
MF_SOLID|MF_SHOOTABLE|MF_MONITOR|MF_GRENADEBOUNCE, // flags
S_NULL // raisestate
},
{ // MT_ARMAGEDDON_BIGBOX
{ // MT_ARMAGEDDON_GOLDBOX
434, // doomednum
S_ARMAGEDDON_BIGBOX, // spawnstate
S_ARMAGEDDON_GOLDBOX, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_monton, // attacksound
S_ARMAGEDDON_BIGBOX, // painstate
S_ARMAGEDDON_GOLDBOX, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_BIGBOX_OFF1, // deathstate
S_GOLDBOX_OFF1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
0, // speed
@ -6699,24 +6664,24 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
MT_ARMAGEDDON_ICON, // damage
sfx_None, // activesound
MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags
MF_SOLID|MF_SHOOTABLE|MF_MONITOR|MF_GRENADEBOUNCE, // flags
S_NULL // raisestate
},
{ // MT_WHIRLWIND_BIGBOX
{ // MT_WHIRLWIND_GOLDBOX
435, // doomednum
S_WHIRLWIND_BIGBOX, // spawnstate
S_WHIRLWIND_GOLDBOX, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_monton, // attacksound
S_WHIRLWIND_BIGBOX, // painstate
S_WHIRLWIND_GOLDBOX, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_BIGBOX_OFF1, // deathstate
S_GOLDBOX_OFF1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
0, // speed
@ -6726,24 +6691,24 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
MT_WHIRLWIND_ICON, // damage
sfx_None, // activesound
MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags
MF_SOLID|MF_SHOOTABLE|MF_MONITOR|MF_GRENADEBOUNCE, // flags
S_NULL // raisestate
},
{ // MT_ELEMENTAL_BIGBOX
{ // MT_ELEMENTAL_GOLDBOX
436, // doomednum
S_ELEMENTAL_BIGBOX, // spawnstate
S_ELEMENTAL_GOLDBOX, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_monton, // attacksound
S_ELEMENTAL_BIGBOX, // painstate
S_ELEMENTAL_GOLDBOX, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_BIGBOX_OFF1, // deathstate
S_GOLDBOX_OFF1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
0, // speed
@ -6753,24 +6718,24 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
MT_ELEMENTAL_ICON, // damage
sfx_None, // activesound
MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags
MF_SOLID|MF_SHOOTABLE|MF_MONITOR|MF_GRENADEBOUNCE, // flags
S_NULL // raisestate
},
{ // MT_SNEAKERS_BIGBOX
{ // MT_SNEAKERS_GOLDBOX
437, // doomednum
S_SNEAKERS_BIGBOX, // spawnstate
S_SNEAKERS_GOLDBOX, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_monton, // attacksound
S_SNEAKERS_BIGBOX, // painstate
S_SNEAKERS_GOLDBOX, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_BIGBOX_OFF1, // deathstate
S_GOLDBOX_OFF1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
0, // speed
@ -6780,24 +6745,24 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
MT_SNEAKERS_ICON, // damage
sfx_None, // activesound
MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags
MF_SOLID|MF_SHOOTABLE|MF_MONITOR|MF_GRENADEBOUNCE, // flags
S_NULL // raisestate
},
{ // MT_INVULN_BIGBOX
{ // MT_INVULN_GOLDBOX
438, // doomednum
S_INVULN_BIGBOX, // spawnstate
S_INVULN_GOLDBOX, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_monton, // attacksound
S_INVULN_BIGBOX, // painstate
S_INVULN_GOLDBOX, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_BIGBOX_OFF1, // deathstate
S_GOLDBOX_OFF1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
0, // speed
@ -6807,132 +6772,24 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
MT_INVULN_ICON, // damage
sfx_None, // activesound
MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags
MF_SOLID|MF_SHOOTABLE|MF_MONITOR|MF_GRENADEBOUNCE, // flags
S_NULL // raisestate
},
{ // MT_1UP_BIGBOX
439, // doomednum
S_1UP_BIGBOX, // spawnstate
1, // spawnhealth
S_PLAY_BOX1, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_monton, // attacksound
S_1UP_BIGBOX, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_BIGBOX_OFF1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
MT_1UP_ICON, // damage
sfx_None, // activesound
MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags
S_NULL // raisestate
},
{ // MT_EGGMAN_BIGBOX
440, // doomednum
S_EGGMAN_BIGBOX, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_monton, // attacksound
S_EGGMAN_BIGBOX, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_BIGBOX_OFF1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
MT_EGGMAN_ICON, // damage
sfx_None, // activesound
MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags
S_NULL // raisestate
},
{ // MT_MIXUP_BIGBOX
441, // doomednum
S_MIXUP_BIGBOX, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_monton, // attacksound
S_MIXUP_BIGBOX, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_BIGBOX_OFF1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
MT_MIXUP_ICON, // damage
sfx_None, // activesound
MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags
S_NULL // raisestate
},
{ // MT_MYSTERY_BIGBOX
442, // doomednum
S_MYSTERY_BIGBOX, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_monton, // attacksound
S_MYSTERY_BIGBOX, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_BIGBOX_OFF1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
MT_UNKNOWN, // damage
sfx_None, // activesound
MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags
S_NULL // raisestate
},
{ // MT_GRAVITY_BIGBOX
{ // MT_GRAVITY_GOLDBOX
443, // doomednum
S_GRAVITY_BIGBOX, // spawnstate
S_GRAVITY_GOLDBOX, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_monton, // attacksound
S_GRAVITY_BIGBOX, // painstate
S_GRAVITY_GOLDBOX, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_BIGBOX_OFF1, // deathstate
S_GOLDBOX_OFF1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
0, // speed
@ -6942,88 +6799,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
MT_GRAVITY_ICON, // damage
sfx_None, // activesound
MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags
S_NULL // raisestate
},
{ // MT_RECYCLER_BIGBOX
446, // doomednum
S_RECYCLER_BIGBOX, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_monton, // attacksound
S_RECYCLER_BIGBOX, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_BIGBOX_OFF1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
MT_RECYCLER_ICON, // damage
sfx_None, // activesound
MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags
S_NULL // raisestate
},
{ // MT_SCORE1K_BIGBOX
448, // doomednum
S_SCORE1K_BIGBOX, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_monton, // attacksound
S_SCORE1K_BIGBOX, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_BIGBOX_OFF1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
MT_SCORE1K_ICON, // damage
sfx_None, // activesound
MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags
S_NULL // raisestate
},
{ // MT_SCORE10K_BIGBOX
449, // doomednum
S_SCORE10K_BIGBOX, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_monton, // attacksound
S_SCORE10K_BIGBOX, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_BIGBOX_OFF1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
MT_SCORE10K_ICON, // damage
sfx_None, // activesound
MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags
MF_SOLID|MF_SHOOTABLE|MF_MONITOR|MF_GRENADEBOUNCE, // flags
S_NULL // raisestate
},

View file

@ -28,9 +28,9 @@ void A_Explode();
void A_Pain();
void A_Fall();
void A_MonitorPop();
void A_BigMonitorPop();
void A_BigMonitorRestore();
void A_BigMonitorSparkle();
void A_GoldMonitorPop();
void A_GoldMonitorRestore();
void A_GoldMonitorSparkle();
void A_Look();
void A_Chase();
void A_FaceStabChase();
@ -1765,14 +1765,14 @@ typedef enum state
S_BOX_POP1,
S_BOX_POP2,
S_BIGBOX_FLICKER,
S_BIGBOX_OFF1,
S_BIGBOX_OFF2,
S_BIGBOX_OFF3,
S_BIGBOX_OFF4,
S_BIGBOX_OFF5,
S_BIGBOX_OFF6,
S_BIGBOX_OFF7,
S_GOLDBOX_FLICKER,
S_GOLDBOX_OFF1,
S_GOLDBOX_OFF2,
S_GOLDBOX_OFF3,
S_GOLDBOX_OFF4,
S_GOLDBOX_OFF5,
S_GOLDBOX_OFF6,
S_GOLDBOX_OFF7,
// Monitor States (one per box)
S_MYSTERY_BOX,
@ -1793,24 +1793,16 @@ typedef enum state
S_SCORE1K_BOX,
S_SCORE10K_BOX,
// Repeat Monitor States (one per box)
S_MYSTERY_BIGBOX,
S_RING_BIGBOX,
S_PITY_BIGBOX,
S_ATTRACT_BIGBOX,
S_FORCE_BIGBOX,
S_ARMAGEDDON_BIGBOX,
S_WHIRLWIND_BIGBOX,
S_ELEMENTAL_BIGBOX,
S_SNEAKERS_BIGBOX,
S_INVULN_BIGBOX,
S_1UP_BIGBOX,
S_EGGMAN_BIGBOX,
S_MIXUP_BIGBOX,
S_GRAVITY_BIGBOX,
S_RECYCLER_BIGBOX,
S_SCORE1K_BIGBOX,
S_SCORE10K_BIGBOX,
// Gold Repeat Monitor States (one per box)
S_PITY_GOLDBOX,
S_ATTRACT_GOLDBOX,
S_FORCE_GOLDBOX,
S_ARMAGEDDON_GOLDBOX,
S_WHIRLWIND_GOLDBOX,
S_ELEMENTAL_GOLDBOX,
S_SNEAKERS_GOLDBOX,
S_INVULN_GOLDBOX,
S_GRAVITY_GOLDBOX,
// Team Ring Boxes (these are special)
S_RING_REDBOX1,
@ -3703,23 +3695,15 @@ typedef enum mobj_type
MT_SCORE10K_BOX,
// Monitor boxes -- repeating (big) boxes
MT_RING_BIGBOX,
MT_PITY_BIGBOX,
MT_ATTRACT_BIGBOX,
MT_FORCE_BIGBOX,
MT_ARMAGEDDON_BIGBOX,
MT_WHIRLWIND_BIGBOX,
MT_ELEMENTAL_BIGBOX,
MT_SNEAKERS_BIGBOX,
MT_INVULN_BIGBOX,
MT_1UP_BIGBOX,
MT_EGGMAN_BIGBOX,
MT_MIXUP_BIGBOX,
MT_MYSTERY_BIGBOX,
MT_GRAVITY_BIGBOX,
MT_RECYCLER_BIGBOX,
MT_SCORE1K_BIGBOX,
MT_SCORE10K_BIGBOX,
MT_PITY_GOLDBOX,
MT_ATTRACT_GOLDBOX,
MT_FORCE_GOLDBOX,
MT_ARMAGEDDON_GOLDBOX,
MT_WHIRLWIND_GOLDBOX,
MT_ELEMENTAL_GOLDBOX,
MT_SNEAKERS_GOLDBOX,
MT_INVULN_GOLDBOX,
MT_GRAVITY_GOLDBOX,
// Monitor boxes -- special
MT_RING_REDBOX,

View file

@ -2635,20 +2635,20 @@ void A_MonitorPop(mobj_t *actor)
}
}
// Function: A_BigMonitorPop
// Function: A_GoldMonitorPop
//
// Description: Used by repeating monitors when they turn off. They don't really pop, but, you know...
//
// var1 = unused
// var2 = unused
//
void A_BigMonitorPop(mobj_t *actor)
void A_GoldMonitorPop(mobj_t *actor)
{
mobjtype_t item = 0;
mobj_t *newmobj;
#ifdef HAVE_BLUA
if (LUA_CallAction("A_BigMonitorPop", actor))
if (LUA_CallAction("A_GoldMonitorPop", actor))
return;
#endif
@ -2685,7 +2685,7 @@ void A_BigMonitorPop(mobj_t *actor)
if (item == 0)
{
CONS_Debug(DBG_GAMELOGIC, "Powerup item not defined in 'damage' field for A_BigMonitorPop\n");
CONS_Debug(DBG_GAMELOGIC, "Powerup item not defined in 'damage' field for A_GoldMonitorPop\n");
return;
}
@ -2716,17 +2716,17 @@ void A_BigMonitorPop(mobj_t *actor)
}
}
// Function: A_BigMonitorRestore
// Function: A_GoldMonitorRestore
//
// Description: A repeating monitor is coming back to life. Reset monitor flags, etc.
//
// var1 = unused
// var2 = unused
//
void A_BigMonitorRestore(mobj_t *actor)
void A_GoldMonitorRestore(mobj_t *actor)
{
#ifdef HAVE_BLUA
if (LUA_CallAction("A_BigMonitorRestore", actor))
if (LUA_CallAction("A_GoldMonitorRestore", actor))
return;
#endif
@ -2735,19 +2735,19 @@ void A_BigMonitorRestore(mobj_t *actor)
actor->health = 1; // Just in case.
}
// Function: A_BigMonitorSparkle
// Function: A_GoldMonitorSparkle
//
// Description: Spawns the little sparkly effect around big monitors. Looks pretty, doesn't it?
//
// var1 = unused
// var2 = unused
//
void A_BigMonitorSparkle(mobj_t *actor)
void A_GoldMonitorSparkle(mobj_t *actor)
{
fixed_t i, ngangle, xofs, yofs;
#ifdef HAVE_BLUA
if (LUA_CallAction("A_BigMonitorSparkle", actor))
if (LUA_CallAction("A_GoldMonitorSparkle", actor))
return;
#endif

View file

@ -8789,36 +8789,37 @@ void P_SpawnMapThing(mapthing_t *mthing)
if ((mobjinfo[i].flags & MF_ENEMY) || (mobjinfo[i].flags & MF_BOSS))
return;
// Set powerup boxes to user settings for competition.
if (gametype == GT_COMPETITION)
// Altering monitor spawns via cvars
// If MF_GRENADEBOUNCE is set in the monitor's info,
// skip this step. (Used for gold monitors)
// Yeah, this is a dirty hack.
if ((mobjinfo[i].flags & (MF_MONITOR|MF_GRENADEBOUNCE)) == MF_MONITOR)
{
if ((mobjinfo[i].flags & MF_MONITOR) && cv_competitionboxes.value) // not Normal
if (gametype == GT_COMPETITION)
{
// Set powerup boxes to user settings for competition.
if (cv_competitionboxes.value == 1) // Random
i = MT_MYSTERY_BOX;
else if (cv_competitionboxes.value == 2) // Teleports
i = MT_MIXUP_BOX;
else if (cv_competitionboxes.value == 3) // None
return; // Don't spawn!
// default case: normal
}
}
// Set powerup boxes to user settings for other netplay modes
else if (gametype != GT_COOP)
{
if ((mobjinfo[i].flags & MF_MONITOR) && cv_matchboxes.value) // not Normal
// Set powerup boxes to user settings for other netplay modes
else if (gametype != GT_COOP)
{
if (cv_matchboxes.value == 1) // Random
i = MT_MYSTERY_BOX;
else if (cv_matchboxes.value == 3) // Don't spawn
return;
else // cv_matchboxes.value == 2, Non-Random
else if (cv_matchboxes.value == 2) // Non-Random
{
if (i == MT_MYSTERY_BOX)
return; // don't spawn in Non-Random
mthing->options &= ~(MTF_AMBUSH|MTF_OBJECTSPECIAL); // no random respawning!
}
else if (cv_matchboxes.value == 3) // Don't spawn
return;
// default case: normal
}
}
@ -8873,7 +8874,7 @@ void P_SpawnMapThing(mapthing_t *mthing)
if (i == MT_RING_BOX && !G_IsSpecialStage(gamemap))
return; // No rings in Ultimate mode (except special stages)
// Don't include the BIGBOXes (repeating monitors) here please.
// Don't include the gold repeating boxes here please.
// They're likely facets of the level's design and therefore required to progress.
}
@ -9302,8 +9303,6 @@ ML_NOCLIMB : Direction not controllable
//count 10 ring boxes into the number of rings equation too.
if (i == MT_RING_BOX)
nummaprings += 10;
if (i == MT_RING_BIGBOX) // Theoretically infinite
nummaprings += 10000;
if (i == MT_BIGTUMBLEWEED || i == MT_LITTLETUMBLEWEED)
{