Hardcoded wood debris
This commit is contained in:
parent
7b603f4ac8
commit
ca4ab06abf
|
@ -2395,6 +2395,7 @@ static actionpointer_t actionpointers[] =
|
||||||
{{A_Boss5BombExplode}, "A_BOSS5BOMBEXPLODE"},
|
{{A_Boss5BombExplode}, "A_BOSS5BOMBEXPLODE"},
|
||||||
{{A_DustDevilThink}, "A_DUSTDEVILTHINK"},
|
{{A_DustDevilThink}, "A_DUSTDEVILTHINK"},
|
||||||
{{A_TNTExplode}, "A_TNTEXPLODE"},
|
{{A_TNTExplode}, "A_TNTEXPLODE"},
|
||||||
|
{{A_DebrisRandom}, "A_DEBRISRANDOM"},
|
||||||
{{NULL}, "NONE"},
|
{{NULL}, "NONE"},
|
||||||
|
|
||||||
// This NULL entry must be the last in the list
|
// This NULL entry must be the last in the list
|
||||||
|
@ -7055,6 +7056,8 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
||||||
"S_DUST3",
|
"S_DUST3",
|
||||||
"S_DUST4",
|
"S_DUST4",
|
||||||
|
|
||||||
|
"S_WOODDEBRIS",
|
||||||
|
|
||||||
"S_ROCKSPAWN",
|
"S_ROCKSPAWN",
|
||||||
|
|
||||||
"S_ROCKCRUMBLEA",
|
"S_ROCKCRUMBLEA",
|
||||||
|
@ -7749,6 +7752,7 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
|
||||||
"MT_EXPLODE", // Robot Explosion
|
"MT_EXPLODE", // Robot Explosion
|
||||||
"MT_UWEXPLODE", // Underwater Explosion
|
"MT_UWEXPLODE", // Underwater Explosion
|
||||||
"MT_DUST",
|
"MT_DUST",
|
||||||
|
"MT_WOODDEBRIS",
|
||||||
"MT_ROCKSPAWNER",
|
"MT_ROCKSPAWNER",
|
||||||
"MT_FALLINGROCK",
|
"MT_FALLINGROCK",
|
||||||
"MT_ROCKCRUMBLE1",
|
"MT_ROCKCRUMBLE1",
|
||||||
|
|
|
@ -548,6 +548,7 @@ light_t *t_lspr[NUMSPRITES] =
|
||||||
&lspr[SUPERSPARK_L], // SPR_BOM3
|
&lspr[SUPERSPARK_L], // SPR_BOM3
|
||||||
&lspr[NOLIGHT], // SPR_BOM4
|
&lspr[NOLIGHT], // SPR_BOM4
|
||||||
&lspr[REDBALL_L], // SPR_BMNB
|
&lspr[REDBALL_L], // SPR_BMNB
|
||||||
|
&lspr[NOLIGHT], // SPR_WDDB
|
||||||
|
|
||||||
// Crumbly rocks
|
// Crumbly rocks
|
||||||
&lspr[NOLIGHT], // SPR_ROIA
|
&lspr[NOLIGHT], // SPR_ROIA
|
||||||
|
|
30
src/info.c
30
src/info.c
|
@ -443,6 +443,7 @@ char sprnames[NUMSPRITES + 1][5] =
|
||||||
"BOM3", // Boss Explosion 2
|
"BOM3", // Boss Explosion 2
|
||||||
"BOM4", // Underwater Explosion
|
"BOM4", // Underwater Explosion
|
||||||
"BMNB", // Mine Explosion
|
"BMNB", // Mine Explosion
|
||||||
|
"WDDB", // Wood Debris
|
||||||
|
|
||||||
// Crumbly rocks
|
// Crumbly rocks
|
||||||
"ROIA",
|
"ROIA",
|
||||||
|
@ -3758,6 +3759,8 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_DUST, 2|FF_TRANS60, 3, {NULL}, 0, 0, S_DUST4}, // S_DUST3
|
{SPR_DUST, 2|FF_TRANS60, 3, {NULL}, 0, 0, S_DUST4}, // S_DUST3
|
||||||
{SPR_DUST, 3|FF_TRANS70, 2, {NULL}, 0, 0, S_NULL}, // S_DUST4
|
{SPR_DUST, 3|FF_TRANS70, 2, {NULL}, 0, 0, S_NULL}, // S_DUST4
|
||||||
|
|
||||||
|
{SPR_WDDB, FF_ANIMATE, -1, {A_DebrisRandom}, 7, 2, S_NULL}, // S_WOODDEBRIS
|
||||||
|
|
||||||
{SPR_NULL, 0, 1, {A_RockSpawn}, 0, 0, S_ROCKSPAWN}, // S_ROCKSPAWN
|
{SPR_NULL, 0, 1, {A_RockSpawn}, 0, 0, S_ROCKSPAWN}, // S_ROCKSPAWN
|
||||||
|
|
||||||
{SPR_ROIA, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 4, 2, S_NULL}, // S_ROCKCRUMBLEA
|
{SPR_ROIA, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 4, 2, S_NULL}, // S_ROCKCRUMBLEA
|
||||||
|
@ -18860,6 +18863,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{ // MT_WOODDEBRIS
|
||||||
|
-1, // doomednum
|
||||||
|
S_WOODDEBRIS, // spawnstate
|
||||||
|
1, // spawnhealth
|
||||||
|
S_NULL, // seestate
|
||||||
|
sfx_None, // seesound
|
||||||
|
0, // reactiontime
|
||||||
|
sfx_None, // attacksound
|
||||||
|
S_NULL, // painstate
|
||||||
|
0, // painchance
|
||||||
|
sfx_None, // painsound
|
||||||
|
S_NULL, // meleestate
|
||||||
|
S_NULL, // missilestate
|
||||||
|
S_NULL, // deathstate
|
||||||
|
S_NULL, // xdeathstate
|
||||||
|
sfx_None, // deathsound
|
||||||
|
0, // speed
|
||||||
|
16*FRACUNIT, // radius
|
||||||
|
16*FRACUNIT, // height
|
||||||
|
0, // display offset
|
||||||
|
100, // mass
|
||||||
|
0, // damage
|
||||||
|
sfx_None, // activesound
|
||||||
|
MF_NOBLOCKMAP|MF_NOCLIPTHING|MF_RUNSPAWNFUNC|MF_NOCLIPHEIGHT, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
|
|
||||||
{ // MT_ROCKSPAWNER
|
{ // MT_ROCKSPAWNER
|
||||||
1202, // doomednum
|
1202, // doomednum
|
||||||
S_ROCKSPAWN, // spawnstate
|
S_ROCKSPAWN, // spawnstate
|
||||||
|
|
|
@ -253,6 +253,7 @@ void A_LookForBetter();
|
||||||
void A_Boss5BombExplode();
|
void A_Boss5BombExplode();
|
||||||
void A_DustDevilThink();
|
void A_DustDevilThink();
|
||||||
void A_TNTExplode();
|
void A_TNTExplode();
|
||||||
|
void A_DebrisRandom();
|
||||||
|
|
||||||
// ratio of states to sprites to mobj types is roughly 6 : 1 : 1
|
// ratio of states to sprites to mobj types is roughly 6 : 1 : 1
|
||||||
#define NUMMOBJFREESLOTS 256
|
#define NUMMOBJFREESLOTS 256
|
||||||
|
@ -676,6 +677,7 @@ typedef enum sprite
|
||||||
SPR_BOM3, // Boss Explosion 2
|
SPR_BOM3, // Boss Explosion 2
|
||||||
SPR_BOM4, // Underwater Explosion
|
SPR_BOM4, // Underwater Explosion
|
||||||
SPR_BMNB, // Mine Explosion
|
SPR_BMNB, // Mine Explosion
|
||||||
|
SPR_WDDB, // Wood Debris
|
||||||
|
|
||||||
// Crumbly rocks
|
// Crumbly rocks
|
||||||
SPR_ROIA,
|
SPR_ROIA,
|
||||||
|
@ -3807,6 +3809,8 @@ typedef enum state
|
||||||
S_DUST3,
|
S_DUST3,
|
||||||
S_DUST4,
|
S_DUST4,
|
||||||
|
|
||||||
|
S_WOODDEBRIS,
|
||||||
|
|
||||||
S_ROCKSPAWN,
|
S_ROCKSPAWN,
|
||||||
|
|
||||||
S_ROCKCRUMBLEA,
|
S_ROCKCRUMBLEA,
|
||||||
|
@ -4521,6 +4525,7 @@ typedef enum mobj_type
|
||||||
MT_EXPLODE, // Robot Explosion
|
MT_EXPLODE, // Robot Explosion
|
||||||
MT_UWEXPLODE, // Underwater Explosion
|
MT_UWEXPLODE, // Underwater Explosion
|
||||||
MT_DUST,
|
MT_DUST,
|
||||||
|
MT_WOODDEBRIS,
|
||||||
MT_ROCKSPAWNER,
|
MT_ROCKSPAWNER,
|
||||||
MT_FALLINGROCK,
|
MT_FALLINGROCK,
|
||||||
MT_ROCKCRUMBLE1,
|
MT_ROCKCRUMBLE1,
|
||||||
|
|
|
@ -282,6 +282,7 @@ void A_LookForBetter(mobj_t *actor);
|
||||||
void A_Boss5BombExplode(mobj_t *actor);
|
void A_Boss5BombExplode(mobj_t *actor);
|
||||||
void A_DustDevilThink(mobj_t *actor);
|
void A_DustDevilThink(mobj_t *actor);
|
||||||
void A_TNTExplode(mobj_t *actor);
|
void A_TNTExplode(mobj_t *actor);
|
||||||
|
void A_DebrisRandom(mobj_t *actor);
|
||||||
//for p_enemy.c
|
//for p_enemy.c
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -12778,4 +12779,29 @@ void A_TNTExplode(mobj_t *actor)
|
||||||
}
|
}
|
||||||
|
|
||||||
actor->destscale *= 4;
|
actor->destscale *= 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function: A_DebrisRandom
|
||||||
|
//
|
||||||
|
// Description: Randomizes debris frame and movement.
|
||||||
|
//
|
||||||
|
// var1 = Frame range.
|
||||||
|
// var2 = unused
|
||||||
|
//
|
||||||
|
void A_DebrisRandom(mobj_t *actor)
|
||||||
|
{
|
||||||
|
INT32 locvar1 = var1;
|
||||||
|
//INT32 locvar2 = var2;
|
||||||
|
|
||||||
|
#ifdef HAVE_BLUA
|
||||||
|
if (LUA_CallAction("A_DebrisRandom", actor))
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
actor->frame |= P_RandomRange(0, locvar1);
|
||||||
|
var1 = 0;
|
||||||
|
var2 = 359;
|
||||||
|
A_ChangeAngleAbsolute(actor);
|
||||||
|
P_Thrust(actor, actor->angle, FRACUNIT * 2);
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue