diff --git a/src/dehacked.c b/src/dehacked.c index d0f582385a78a01768c343f0cc84a39268ec4960..0aa577e3d4dc74e9f2a00d1616c3d38fcaf54f60 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -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", diff --git a/src/info.c b/src/info.c index d00ecc5dca341cba3bcd8e1b31c18bdbd723e1da..af5126f3a8b48d703965e5197d2cad271bbdd00b 100644 --- a/src/info.c +++ b/src/info.c @@ -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 }, diff --git a/src/info.h b/src/info.h index d031addf53a5c46eb77a13e1bb6920923730d43f..d68bf5abbfcd11b3eac5b6a3fae3bdccd518a470 100644 --- a/src/info.h +++ b/src/info.h @@ -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, diff --git a/src/p_enemy.c b/src/p_enemy.c index d050972db1cc888acb2c4dbae1d7910037da2083..4555695c992bed7679d31d8f5f0fa5b0c6fc7256 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -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 diff --git a/src/p_mobj.c b/src/p_mobj.c index 86ddee029a49845cb4cdcc9c0e586d05c7a2dce1..f5d5ecf56f2da2b4f44b0c110c9ead7c7f00be8d 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -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) {