mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Add Poh-Bee sprites
This commit is contained in:
parent
4c89619ac4
commit
e610c41d0f
4 changed files with 75 additions and 12 deletions
|
|
@ -3759,8 +3759,20 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
|
||||||
"S_GROW_PARTICLE",
|
"S_GROW_PARTICLE",
|
||||||
|
|
||||||
// Shrink
|
// Shrink
|
||||||
"S_SHRINK_GUN",
|
"S_SHRINK_POHBEE",
|
||||||
|
"S_SHRINK_POHBEE2",
|
||||||
|
"S_SHRINK_POHBEE3",
|
||||||
|
"S_SHRINK_POHBEE4",
|
||||||
|
"S_SHRINK_POHBEE5",
|
||||||
|
"S_SHRINK_POHBEE6",
|
||||||
|
"S_SHRINK_POHBEE7",
|
||||||
|
"S_SHRINK_POHBEE8",
|
||||||
|
|
||||||
"S_SHRINK_CHAIN",
|
"S_SHRINK_CHAIN",
|
||||||
|
|
||||||
|
"S_SHRINK_GUN",
|
||||||
|
"S_SHRINK_GUN_OVERLAY",
|
||||||
|
|
||||||
"S_SHRINK_LASER",
|
"S_SHRINK_LASER",
|
||||||
"S_SHRINK_PARTICLE",
|
"S_SHRINK_PARTICLE",
|
||||||
|
|
||||||
|
|
|
||||||
26
src/info.c
26
src/info.c
|
|
@ -575,7 +575,9 @@ char sprnames[NUMSPRITES + 1][5] =
|
||||||
"HYUU", // Hyudoro
|
"HYUU", // Hyudoro
|
||||||
"GRWP", // Grow
|
"GRWP", // Grow
|
||||||
"POHB", // Shrink Poh-Bee
|
"POHB", // Shrink Poh-Bee
|
||||||
"SHRG", // Shrink gun / laser
|
"POHC", // Shrink Poh-Bee chain
|
||||||
|
"SHRG", // Shrink gun
|
||||||
|
"SHRL", // Shrink laser
|
||||||
"SINK", // Kitchen Sink
|
"SINK", // Kitchen Sink
|
||||||
"SITR", // Kitchen Sink Trail
|
"SITR", // Kitchen Sink Trail
|
||||||
"KBLN", // Battle Mode Bumper
|
"KBLN", // Battle Mode Bumper
|
||||||
|
|
@ -4319,10 +4321,22 @@ state_t states[NUMSTATES] =
|
||||||
|
|
||||||
{SPR_GRWP, FF_FULLBRIGHT|FF_ANIMATE, 13, {NULL}, 7, 1, S_NULL}, // S_GROW_PARTICLE
|
{SPR_GRWP, FF_FULLBRIGHT|FF_ANIMATE, 13, {NULL}, 7, 1, S_NULL}, // S_GROW_PARTICLE
|
||||||
|
|
||||||
|
{SPR_POHB, 0, 1, {NULL}, 0, 0, S_SHRINK_POHBEE2}, // S_SHRINK_POHBEE
|
||||||
|
{SPR_POHB, 1, 1, {NULL}, 0, 0, S_SHRINK_POHBEE3}, // S_SHRINK_POHBEE2
|
||||||
|
{SPR_POHB, 0, 1, {NULL}, 0, 0, S_SHRINK_POHBEE4}, // S_SHRINK_POHBEE3
|
||||||
|
{SPR_POHB, 2, 1, {NULL}, 0, 0, S_SHRINK_POHBEE5}, // S_SHRINK_POHBEE4
|
||||||
|
{SPR_POHB, 0, 1, {NULL}, 0, 0, S_SHRINK_POHBEE6}, // S_SHRINK_POHBEE5
|
||||||
|
{SPR_POHB, 3, 1, {NULL}, 0, 0, S_SHRINK_POHBEE7}, // S_SHRINK_POHBEE6
|
||||||
|
{SPR_POHB, 0, 1, {NULL}, 0, 0, S_SHRINK_POHBEE8}, // S_SHRINK_POHBEE7
|
||||||
|
{SPR_POHB, 2, 1, {NULL}, 0, 0, S_SHRINK_POHBEE}, // S_SHRINK_POHBEE8
|
||||||
|
|
||||||
|
{SPR_POHC, 0, -1, {NULL}, 0, 0, S_NULL}, // S_SHRINK_CHAIN
|
||||||
|
|
||||||
{SPR_SHRG, 0, -1, {NULL}, 0, 0, S_NULL}, // S_SHRINK_GUN
|
{SPR_SHRG, 0, -1, {NULL}, 0, 0, S_NULL}, // S_SHRINK_GUN
|
||||||
{SPR_POHB, 0, -1, {NULL}, 0, 0, S_NULL}, // S_SHRINK_CHAIN
|
{SPR_SHRG, FF_FULLBRIGHT|1, -1, {NULL}, 0, 0, S_NULL}, // S_SHRINK_GUN_OVERLAY
|
||||||
{SPR_SHRG, FF_FULLBRIGHT|1, -1, {NULL}, 0, 0, S_NULL}, // S_SHRINK_LASER
|
|
||||||
{SPR_SHRG, FF_FULLBRIGHT|2, -1, {NULL}, 0, 0, S_NULL}, // S_SHRINK_PARTICLE
|
{SPR_SHRL, FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL}, // S_SHRINK_LASER
|
||||||
|
{SPR_SHRL, FF_FULLBRIGHT|1, -1, {NULL}, 0, 0, S_NULL}, // S_SHRINK_PARTICLE
|
||||||
|
|
||||||
{SPR_SINK, 0, 1, {A_SmokeTrailer}, MT_SINKTRAIL, 0, S_SINK}, // S_SINK
|
{SPR_SINK, 0, 1, {A_SmokeTrailer}, MT_SINKTRAIL, 0, S_SINK}, // S_SINK
|
||||||
{SPR_SINK, 0|FF_TRANS80|FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_SINK_SHIELD}, // S_SINK_SHIELD
|
{SPR_SINK, 0|FF_TRANS80|FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_SINK_SHIELD}, // S_SINK_SHIELD
|
||||||
|
|
@ -24075,7 +24089,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
|
|
||||||
{ // MT_SHRINK_POHBEE
|
{ // MT_SHRINK_POHBEE
|
||||||
-1, // doomednum
|
-1, // doomednum
|
||||||
S_HYUDORO, // spawnstate
|
S_SHRINK_POHBEE, // spawnstate
|
||||||
1000, // spawnhealth
|
1000, // spawnhealth
|
||||||
S_NULL, // seestate
|
S_NULL, // seestate
|
||||||
sfx_None, // seesound
|
sfx_None, // seesound
|
||||||
|
|
@ -24096,7 +24110,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
0, // mass
|
0, // mass
|
||||||
0, // damage
|
0, // damage
|
||||||
sfx_None, // activesound
|
sfx_None, // activesound
|
||||||
MF_NOCLIP|MF_NOCLIPTHING|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_DONTENCOREMAP, // flags
|
MF_NOCLIP|MF_NOCLIPTHING|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_DONTENCOREMAP|MF_NOSQUISH, // flags
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
18
src/info.h
18
src/info.h
|
|
@ -1121,7 +1121,9 @@ typedef enum sprite
|
||||||
SPR_HYUU, // Hyudoro
|
SPR_HYUU, // Hyudoro
|
||||||
SPR_GRWP, // Grow
|
SPR_GRWP, // Grow
|
||||||
SPR_POHB, // Shrink Poh-Bee
|
SPR_POHB, // Shrink Poh-Bee
|
||||||
SPR_SHRG, // Shrink gun / laser
|
SPR_POHC, // Shrink Poh-Bee chain
|
||||||
|
SPR_SHRG, // Shrink gun
|
||||||
|
SPR_SHRL, // Shrink laser
|
||||||
SPR_SINK, // Kitchen Sink
|
SPR_SINK, // Kitchen Sink
|
||||||
SPR_SITR, // Kitchen Sink Trail
|
SPR_SITR, // Kitchen Sink Trail
|
||||||
SPR_KBLN, // Battle Mode Bumper
|
SPR_KBLN, // Battle Mode Bumper
|
||||||
|
|
@ -4752,8 +4754,20 @@ typedef enum state
|
||||||
S_GROW_PARTICLE,
|
S_GROW_PARTICLE,
|
||||||
|
|
||||||
// Shrink
|
// Shrink
|
||||||
S_SHRINK_GUN,
|
S_SHRINK_POHBEE,
|
||||||
|
S_SHRINK_POHBEE2,
|
||||||
|
S_SHRINK_POHBEE3,
|
||||||
|
S_SHRINK_POHBEE4,
|
||||||
|
S_SHRINK_POHBEE5,
|
||||||
|
S_SHRINK_POHBEE6,
|
||||||
|
S_SHRINK_POHBEE7,
|
||||||
|
S_SHRINK_POHBEE8,
|
||||||
|
|
||||||
S_SHRINK_CHAIN,
|
S_SHRINK_CHAIN,
|
||||||
|
|
||||||
|
S_SHRINK_GUN,
|
||||||
|
S_SHRINK_GUN_OVERLAY,
|
||||||
|
|
||||||
S_SHRINK_LASER,
|
S_SHRINK_LASER,
|
||||||
S_SHRINK_PARTICLE,
|
S_SHRINK_PARTICLE,
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@
|
||||||
// vertical flip
|
// vertical flip
|
||||||
//
|
//
|
||||||
|
|
||||||
#define POHBEE_HOVER (256 << FRACBITS)
|
#define POHBEE_HOVER (128 << FRACBITS)
|
||||||
#define POHBEE_SPEED (128 << FRACBITS)
|
#define POHBEE_SPEED (128 << FRACBITS)
|
||||||
#define POHBEE_TIME (30 * TICRATE)
|
#define POHBEE_TIME (30 * TICRATE)
|
||||||
#define POHBEE_DIST (4096 << FRACBITS)
|
#define POHBEE_DIST (4096 << FRACBITS)
|
||||||
|
|
@ -68,6 +68,7 @@ enum
|
||||||
#define gun_pohbee(o) ((o)->target)
|
#define gun_pohbee(o) ((o)->target)
|
||||||
#define gun_laser(o) ((o)->tracer)
|
#define gun_laser(o) ((o)->tracer)
|
||||||
#define gun_chains(o) ((o)->hprev)
|
#define gun_chains(o) ((o)->hprev)
|
||||||
|
#define gun_overlay(o) ((o)->itnext)
|
||||||
|
|
||||||
#define chain_index(o) ((o)->extravalue1)
|
#define chain_index(o) ((o)->extravalue1)
|
||||||
|
|
||||||
|
|
@ -314,7 +315,7 @@ static void ShrinkLaserThinker(mobj_t *pohbee, mobj_t *gun, mobj_t *laser)
|
||||||
mobj_t *particle = NULL;
|
mobj_t *particle = NULL;
|
||||||
|
|
||||||
laser->renderflags &= ~RF_DONTDRAW;
|
laser->renderflags &= ~RF_DONTDRAW;
|
||||||
laser->color = gun->color;
|
laser->color = ShrinkLaserColor(pohbee);
|
||||||
|
|
||||||
if (leveltime & 1)
|
if (leveltime & 1)
|
||||||
{
|
{
|
||||||
|
|
@ -386,6 +387,7 @@ static void DoGunChains(mobj_t *gun, mobj_t *pohbee)
|
||||||
static void ShrinkGunThinker(mobj_t *gun)
|
static void ShrinkGunThinker(mobj_t *gun)
|
||||||
{
|
{
|
||||||
mobj_t *pohbee = gun_pohbee(gun);
|
mobj_t *pohbee = gun_pohbee(gun);
|
||||||
|
skincolornum_t gunColor = SKINCOLOR_GREY;
|
||||||
|
|
||||||
if (pohbee == NULL || P_MobjWasRemoved(pohbee) == true)
|
if (pohbee == NULL || P_MobjWasRemoved(pohbee) == true)
|
||||||
{
|
{
|
||||||
|
|
@ -394,7 +396,19 @@ static void ShrinkGunThinker(mobj_t *gun)
|
||||||
}
|
}
|
||||||
|
|
||||||
gun->angle = pohbee->angle;
|
gun->angle = pohbee->angle;
|
||||||
gun->color = ShrinkLaserColor(pohbee);
|
|
||||||
|
if (pohbee_owner(pohbee) != NULL && P_MobjWasRemoved(pohbee_owner(pohbee)) == false
|
||||||
|
&& pohbee_owner(pohbee)->player != NULL)
|
||||||
|
{
|
||||||
|
gunColor = pohbee_owner(pohbee)->player->skincolor;
|
||||||
|
}
|
||||||
|
|
||||||
|
gun->color = gunColor;
|
||||||
|
|
||||||
|
if (gun_overlay(gun) != NULL && P_MobjWasRemoved(gun_overlay(gun)) == false)
|
||||||
|
{
|
||||||
|
gun_overlay(gun)->color = ShrinkLaserColor(pohbee);
|
||||||
|
}
|
||||||
|
|
||||||
DoGunSwing(gun, pohbee);
|
DoGunSwing(gun, pohbee);
|
||||||
|
|
||||||
|
|
@ -411,6 +425,7 @@ void Obj_PohbeeThinker(mobj_t *pohbee)
|
||||||
mobj_t *gun = NULL;
|
mobj_t *gun = NULL;
|
||||||
|
|
||||||
pohbee->momx = pohbee->momy = pohbee->momz = 0;
|
pohbee->momx = pohbee->momy = pohbee->momz = 0;
|
||||||
|
pohbee->spritexscale = pohbee->spriteyscale = 2*FRACUNIT;
|
||||||
|
|
||||||
switch (pohbee_mode(pohbee))
|
switch (pohbee_mode(pohbee))
|
||||||
{
|
{
|
||||||
|
|
@ -654,6 +669,7 @@ static void CreatePohbee(player_t *owner, waypoint_t *start, waypoint_t *end, UI
|
||||||
const UINT8 numSegs = segVal * (i + 1);
|
const UINT8 numSegs = segVal * (i + 1);
|
||||||
|
|
||||||
mobj_t *gun = P_SpawnMobjFromMobj(pohbee, 0, 0, 0, MT_SHRINK_GUN);
|
mobj_t *gun = P_SpawnMobjFromMobj(pohbee, 0, 0, 0, MT_SHRINK_GUN);
|
||||||
|
mobj_t *overlay = NULL;
|
||||||
mobj_t *laser = NULL;
|
mobj_t *laser = NULL;
|
||||||
mobj_t *prevChain = NULL;
|
mobj_t *prevChain = NULL;
|
||||||
|
|
||||||
|
|
@ -663,6 +679,13 @@ static void CreatePohbee(player_t *owner, waypoint_t *start, waypoint_t *end, UI
|
||||||
gun_numsegs(gun) = numSegs;
|
gun_numsegs(gun) = numSegs;
|
||||||
gun_offset(gun) = P_RandomKey(GUN_SWINGTIME);
|
gun_offset(gun) = P_RandomKey(GUN_SWINGTIME);
|
||||||
|
|
||||||
|
overlay = P_SpawnMobjFromMobj(gun, 0, 0, 0, MT_OVERLAY);
|
||||||
|
|
||||||
|
P_SetTarget(&overlay->target, gun);
|
||||||
|
P_SetTarget(&gun_overlay(gun), overlay);
|
||||||
|
|
||||||
|
P_SetMobjState(overlay, S_SHRINK_GUN_OVERLAY);
|
||||||
|
|
||||||
laser = P_SpawnMobjFromMobj(gun, 0, 0, 0, MT_SHRINK_LASER);
|
laser = P_SpawnMobjFromMobj(gun, 0, 0, 0, MT_SHRINK_LASER);
|
||||||
P_SetTarget(&gun_laser(gun), laser);
|
P_SetTarget(&gun_laser(gun), laser);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue