Merge branch 'ringsparkle' into 'master'

New ring sparkles

See merge request STJr/SRB2Internal!271
This commit is contained in:
toaster 2019-08-04 11:46:40 -04:00
commit 5585059f6b
7 changed files with 34 additions and 42 deletions

View File

@ -2421,6 +2421,7 @@ static actionpointer_t actionpointers[] =
{{A_SnapperThinker}, "A_SNAPPERTHINKER"},
{{A_SaloonDoorSpawn}, "A_SALOONDOORSPAWN"},
{{A_MinecartSparkThink}, "A_MINECARTSPARKTHINK"},
{{A_ModuloToState}, "A_MODULOTOSTATE"},
{{NULL}, "NONE"},
// This NULL entry must be the last in the list
@ -7136,19 +7137,6 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_SPRK1",
"S_SPRK2",
"S_SPRK3",
"S_SPRK4",
"S_SPRK5",
"S_SPRK6",
"S_SPRK7",
"S_SPRK8",
"S_SPRK9",
"S_SPRK10",
"S_SPRK11",
"S_SPRK12",
"S_SPRK13",
"S_SPRK14",
"S_SPRK15",
"S_SPRK16",
// Robot Explosion
"S_XPLD_FLICKY",

View File

@ -3833,22 +3833,9 @@ state_t states[NUMSTATES] =
{SPR_NULL, 0, 105, {A_Scream}, 0, 0, S_NULL}, // S_CRUMBLE2
// Spark
{SPR_SPRK, FF_TRANS40 , 1, {NULL}, 0, 0, S_SPRK2}, // S_SPRK1
{SPR_SPRK, FF_TRANS50|1, 1, {NULL}, 0, 0, S_SPRK3}, // S_SPRK2
{SPR_SPRK, FF_TRANS50|2, 1, {NULL}, 0, 0, S_SPRK4}, // S_SPRK3
{SPR_SPRK, FF_TRANS50|3, 1, {NULL}, 0, 0, S_SPRK5}, // S_SPRK4
{SPR_SPRK, FF_TRANS60 , 1, {NULL}, 0, 0, S_SPRK6}, // S_SPRK5
{SPR_SPRK, FF_TRANS60|1, 1, {NULL}, 0, 0, S_SPRK7}, // S_SPRK6
{SPR_SPRK, FF_TRANS60|2, 1, {NULL}, 0, 0, S_SPRK8}, // S_SPRK7
{SPR_SPRK, FF_TRANS70|3, 1, {NULL}, 0, 0, S_SPRK9}, // S_SPRK8
{SPR_SPRK, FF_TRANS70 , 1, {NULL}, 0, 0, S_SPRK10}, // S_SPRK9
{SPR_SPRK, FF_TRANS70|1, 1, {NULL}, 0, 0, S_SPRK11}, // S_SPRK10
{SPR_SPRK, FF_TRANS80|2, 1, {NULL}, 0, 0, S_SPRK12}, // S_SPRK11
{SPR_SPRK, FF_TRANS80|3, 1, {NULL}, 0, 0, S_SPRK13}, // S_SPRK12
{SPR_SPRK, FF_TRANS80 , 1, {NULL}, 0, 0, S_SPRK14}, // S_SPRK13
{SPR_SPRK, FF_TRANS90|1, 1, {NULL}, 0, 0, S_SPRK15}, // S_SPRK14
{SPR_SPRK, FF_TRANS90|2, 1, {NULL}, 0, 0, S_SPRK16}, // S_SPRK15
{SPR_SPRK, FF_TRANS90|3, 1, {NULL}, 0, 0, S_NULL}, // S_SPRK16
{SPR_NULL, 0, 1, {A_ModuloToState}, 2, S_SPRK2, S_SPRK3}, // S_SPRK1
{SPR_SPRK, FF_TRANS20|FF_ANIMATE|0, 18, {NULL}, 8, 2, S_NULL}, // S_SPRK2
{SPR_SPRK, FF_TRANS20|FF_ANIMATE|9, 18, {NULL}, 8, 2, S_NULL}, // S_SPRK3
// Robot Explosion
{SPR_BOM1, 0, 0, {A_FlickySpawn}, 0, 0, S_XPLD1}, // S_XPLD_FLICKY

View File

@ -265,6 +265,7 @@ void A_SnapperSpawn();
void A_SnapperThinker();
void A_SaloonDoorSpawn();
void A_MinecartSparkThink();
void A_ModuloToState();
// ratio of states to sprites to mobj types is roughly 6 : 1 : 1
#define NUMMOBJFREESLOTS 512
@ -3893,19 +3894,6 @@ typedef enum state
S_SPRK1,
S_SPRK2,
S_SPRK3,
S_SPRK4,
S_SPRK5,
S_SPRK6,
S_SPRK7,
S_SPRK8,
S_SPRK9,
S_SPRK10,
S_SPRK11,
S_SPRK12,
S_SPRK13,
S_SPRK14,
S_SPRK15,
S_SPRK16,
// Robot Explosion
S_XPLD_FLICKY,

View File

@ -37,6 +37,7 @@ boolean LUA_CallAction(const char *action, mobj_t *actor);
player_t *stplyr;
INT32 var1;
INT32 var2;
INT32 modulothing;
//
// P_NewChaseDir related LUT.
@ -294,6 +295,8 @@ void A_SnapperSpawn(mobj_t *actor);
void A_SnapperThinker(mobj_t *actor);
void A_SaloonDoorSpawn(mobj_t *actor);
void A_MinecartSparkThink(mobj_t *actor);
void A_ModuloToState(mobj_t *actor);
//for p_enemy.c
//
@ -13677,4 +13680,25 @@ void A_MinecartSparkThink(mobj_t *actor)
P_SetScale(trail, trail->scale/4);
trail->destscale = trail->scale;
}
}
// Function: A_ModuloToState
//
// Description: Modulo operation to state
//
// var1 = Modulo
// var2 = State
//
void A_ModuloToState(mobj_t *actor)
{
INT32 locvar1 = var1;
INT32 locvar2 = var2;
#ifdef HAVE_BLUA
if (LUA_CallAction("A_ModuloToState", actor))
return;
#endif
if ((modulothing % locvar1 == 0))
P_SetMobjState(actor, (locvar2));
modulothing++;
}

View File

@ -464,6 +464,8 @@ void P_SetScale(mobj_t *mobj, fixed_t newscale);
void P_XYMovement(mobj_t *mo);
void P_EmeraldManager(void);
extern INT32 modulothing;
#define MAXHUNTEMERALDS 64
extern mapthing_t *huntemeralds[MAXHUNTEMERALDS];
extern INT32 numhuntemeralds;

View File

@ -3999,6 +3999,7 @@ static void P_NetArchiveMisc(void)
WRITEINT32(save_p, sstimer);
WRITEUINT32(save_p, bluescore);
WRITEUINT32(save_p, redscore);
WRITEINT32(save_p, modulothing);
WRITEINT16(save_p, autobalance);
WRITEINT16(save_p, teamscramble);
@ -4077,6 +4078,7 @@ static inline boolean P_NetUnArchiveMisc(void)
sstimer = READINT32(save_p);
bluescore = READUINT32(save_p);
redscore = READUINT32(save_p);
modulothing = READINT32(save_p);
autobalance = READINT16(save_p);
teamscramble = READINT16(save_p);

View File

@ -2168,6 +2168,7 @@ static void P_LevelInitStuff(void)
localaiming = 0;
localaiming2 = 0;
modulothing = 0;
// special stage tokens, emeralds, and ring total
tokenbits = 0;