mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-03-23 03:12:38 +00:00
Hardcoded wood debris
This commit is contained in:
parent
7b603f4ac8
commit
ca4ab06abf
5 changed files with 66 additions and 0 deletions
|
@ -2395,6 +2395,7 @@ static actionpointer_t actionpointers[] =
|
|||
{{A_Boss5BombExplode}, "A_BOSS5BOMBEXPLODE"},
|
||||
{{A_DustDevilThink}, "A_DUSTDEVILTHINK"},
|
||||
{{A_TNTExplode}, "A_TNTEXPLODE"},
|
||||
{{A_DebrisRandom}, "A_DEBRISRANDOM"},
|
||||
{{NULL}, "NONE"},
|
||||
|
||||
// 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_DUST4",
|
||||
|
||||
"S_WOODDEBRIS",
|
||||
|
||||
"S_ROCKSPAWN",
|
||||
|
||||
"S_ROCKCRUMBLEA",
|
||||
|
@ -7749,6 +7752,7 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
|
|||
"MT_EXPLODE", // Robot Explosion
|
||||
"MT_UWEXPLODE", // Underwater Explosion
|
||||
"MT_DUST",
|
||||
"MT_WOODDEBRIS",
|
||||
"MT_ROCKSPAWNER",
|
||||
"MT_FALLINGROCK",
|
||||
"MT_ROCKCRUMBLE1",
|
||||
|
|
|
@ -548,6 +548,7 @@ light_t *t_lspr[NUMSPRITES] =
|
|||
&lspr[SUPERSPARK_L], // SPR_BOM3
|
||||
&lspr[NOLIGHT], // SPR_BOM4
|
||||
&lspr[REDBALL_L], // SPR_BMNB
|
||||
&lspr[NOLIGHT], // SPR_WDDB
|
||||
|
||||
// Crumbly rocks
|
||||
&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
|
||||
"BOM4", // Underwater Explosion
|
||||
"BMNB", // Mine Explosion
|
||||
"WDDB", // Wood Debris
|
||||
|
||||
// Crumbly rocks
|
||||
"ROIA",
|
||||
|
@ -3758,6 +3759,8 @@ state_t states[NUMSTATES] =
|
|||
{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_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_ROIA, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 4, 2, S_NULL}, // S_ROCKCRUMBLEA
|
||||
|
@ -18860,6 +18863,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
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
|
||||
1202, // doomednum
|
||||
S_ROCKSPAWN, // spawnstate
|
||||
|
|
|
@ -253,6 +253,7 @@ void A_LookForBetter();
|
|||
void A_Boss5BombExplode();
|
||||
void A_DustDevilThink();
|
||||
void A_TNTExplode();
|
||||
void A_DebrisRandom();
|
||||
|
||||
// ratio of states to sprites to mobj types is roughly 6 : 1 : 1
|
||||
#define NUMMOBJFREESLOTS 256
|
||||
|
@ -676,6 +677,7 @@ typedef enum sprite
|
|||
SPR_BOM3, // Boss Explosion 2
|
||||
SPR_BOM4, // Underwater Explosion
|
||||
SPR_BMNB, // Mine Explosion
|
||||
SPR_WDDB, // Wood Debris
|
||||
|
||||
// Crumbly rocks
|
||||
SPR_ROIA,
|
||||
|
@ -3807,6 +3809,8 @@ typedef enum state
|
|||
S_DUST3,
|
||||
S_DUST4,
|
||||
|
||||
S_WOODDEBRIS,
|
||||
|
||||
S_ROCKSPAWN,
|
||||
|
||||
S_ROCKCRUMBLEA,
|
||||
|
@ -4521,6 +4525,7 @@ typedef enum mobj_type
|
|||
MT_EXPLODE, // Robot Explosion
|
||||
MT_UWEXPLODE, // Underwater Explosion
|
||||
MT_DUST,
|
||||
MT_WOODDEBRIS,
|
||||
MT_ROCKSPAWNER,
|
||||
MT_FALLINGROCK,
|
||||
MT_ROCKCRUMBLE1,
|
||||
|
|
|
@ -282,6 +282,7 @@ void A_LookForBetter(mobj_t *actor);
|
|||
void A_Boss5BombExplode(mobj_t *actor);
|
||||
void A_DustDevilThink(mobj_t *actor);
|
||||
void A_TNTExplode(mobj_t *actor);
|
||||
void A_DebrisRandom(mobj_t *actor);
|
||||
//for p_enemy.c
|
||||
|
||||
//
|
||||
|
@ -12778,4 +12779,29 @@ void A_TNTExplode(mobj_t *actor)
|
|||
}
|
||||
|
||||
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 a new issue