Merge branch 'paperitem-backdrop' into 'master'

Add backdrop for paper items

See merge request KartKrew/Kart!755
This commit is contained in:
Oni 2022-11-06 08:00:06 +00:00
commit ff6f7b62c8
5 changed files with 15 additions and 1 deletions

View file

@ -3271,6 +3271,7 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
"S_ITEM_DEBRIS_CLOUD_SPAWNER2",
"S_ITEMICON",
"S_ITEMBACKDROP",
// Item capsules
"S_ITEMCAPSULE",

View file

@ -531,6 +531,7 @@ char sprnames[NUMSPRITES + 1][5] =
"SBOX", // Sphere Box (for Battle)
"RPOP", // Random Item Box Pop
"ITRI", // Item Box Debris
"ITPA", // Paper item backdrop
"SGNS", // Signpost sparkle
"FAST", // Speed boost trail
"DSHR", // Speed boost dust release
@ -3879,6 +3880,7 @@ state_t states[NUMSTATES] =
{SPR_NULL, 0, 7, {A_SpawnItemDebrisCloud}, 20, 0, S_ITEM_DEBRIS_CLOUD_SPAWNER1}, // S_ITEM_DEBRIS_CLOUD_SPAWNER2
{SPR_NULL, FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL}, // S_ITEMICON
{SPR_ITPA, FF_FULLBRIGHT, -1, {NULL}, 1, 0, S_NULL}, // S_ITEMBACKDROP
{SPR_ICAP, FF_ADD|0, -1, {NULL}, 0, 0, S_NULL}, // S_ITEMCAPSULE
{SPR_ICAP, FF_PAPERSPRITE|1, -1, {NULL}, 0, 0, S_NULL}, // S_ITEMCAPSULE_TOP_SIDE

View file

@ -1077,6 +1077,7 @@ typedef enum sprite
SPR_SBOX, // Sphere Box (for Battle)
SPR_RPOP, // Random Item Box Pop
SPR_ITRI, // Item Box Debris
SPR_ITPA, // Paper item backdrop
SPR_SGNS, // Signpost sparkle
SPR_FAST, // Speed boost trail
SPR_DSHR, // Speed boost dust release
@ -4282,6 +4283,7 @@ typedef enum state
S_ITEM_DEBRIS_CLOUD_SPAWNER2,
S_ITEMICON,
S_ITEMBACKDROP,
// Item capsules
S_ITEMCAPSULE,

View file

@ -6924,6 +6924,11 @@ void K_DropHnextList(player_t *player, boolean keepshields)
mobj_t *K_CreatePaperItem(fixed_t x, fixed_t y, fixed_t z, angle_t angle, SINT8 flip, UINT8 type, UINT8 amount)
{
mobj_t *drop = P_SpawnMobj(x, y, z, MT_FLOATINGITEM);
mobj_t *backdrop = P_SpawnMobjFromMobj(drop, 0, 0, 0, MT_OVERLAY);
P_SetTarget(&backdrop->target, drop);
P_SetMobjState(backdrop, S_ITEMBACKDROP);
P_SetScale(drop, drop->scale>>4);
drop->destscale = (3*drop->destscale)/2;
@ -7002,6 +7007,9 @@ mobj_t *K_CreatePaperItem(fixed_t x, fixed_t y, fixed_t z, angle_t angle, SINT8
}
drop->flags |= MF_NOCLIPTHING;
backdrop->dispoffset = 1;
P_SetTarget(&backdrop->tracer, drop);
backdrop->flags2 |= MF2_LINKDRAW;
return drop;
}

View file

@ -6786,6 +6786,7 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
break;
case MT_FLOATINGITEM:
{
mobj->pitch = mobj->roll = 0;
if (mobj->flags & MF_NOCLIPTHING)
{
if (P_CheckDeathPitCollide(mobj))