Pick-me-up: got it!

This commit is contained in:
Antonio Martinez 2025-05-19 19:42:27 -04:00
parent ae962c4d14
commit f85d3f764a
5 changed files with 56 additions and 0 deletions

View file

@ -1576,6 +1576,8 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
"S_AMPAURA", "S_AMPAURA",
"S_AMPBURST", "S_AMPBURST",
"S_GOTIT",
"S_CHARGEAURA", "S_CHARGEAURA",
"S_CHARGEFALL", "S_CHARGEFALL",
"S_CHARGEFLICKER", "S_CHARGEFLICKER",
@ -3548,6 +3550,8 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t
"MT_AMPAURA", "MT_AMPAURA",
"MT_AMPBURST", "MT_AMPBURST",
"MT_GOTIT",
"MT_CHARGEAURA", "MT_CHARGEAURA",
"MT_CHARGEFALL", "MT_CHARGEFALL",
"MT_CHARGEFLICKER", "MT_CHARGEFLICKER",

View file

@ -589,6 +589,8 @@ char sprnames[NUMSPRITES + 1][5] =
"AMPC", "AMPC",
"AMPD", "AMPD",
"SOR_",
"WTRL", // Water Trail "WTRL", // Water Trail
"GCHA", // follower: generic chao "GCHA", // follower: generic chao
@ -2145,6 +2147,8 @@ state_t states[NUMSTATES] =
{SPR_AMPD, FF_FULLBRIGHT|FF_ANIMATE|0, -1, {NULL}, 4, 2, S_NULL}, // S_AMPAURA {SPR_AMPD, FF_FULLBRIGHT|FF_ANIMATE|0, -1, {NULL}, 4, 2, S_NULL}, // S_AMPAURA
{SPR_AMPB, FF_FULLBRIGHT|FF_ADD|FF_PAPERSPRITE|2, -1, {NULL}, 4, 2, S_NULL}, // S_AMPBURST {SPR_AMPB, FF_FULLBRIGHT|FF_ADD|FF_PAPERSPRITE|2, -1, {NULL}, 4, 2, S_NULL}, // S_AMPBURST
{SPR_SOR_, FF_FULLBRIGHT|FF_ANIMATE|0, 28, {NULL}, 27, 1, S_NULL}, // S_GOTIT
{SPR_TRC1, FF_FULLBRIGHT|FF_ANIMATE|0, -1, {NULL}, 4, 2, S_NULL}, // S_CHARGEAURA {SPR_TRC1, FF_FULLBRIGHT|FF_ANIMATE|0, -1, {NULL}, 4, 2, S_NULL}, // S_CHARGEAURA
{SPR_TRC2, FF_FULLBRIGHT|FF_ANIMATE|0, 20, {NULL}, 19, 1, S_NULL}, // S_CHARGEFALL {SPR_TRC2, FF_FULLBRIGHT|FF_ANIMATE|0, 20, {NULL}, 19, 1, S_NULL}, // S_CHARGEFALL
{SPR_TRC3, FF_FULLBRIGHT|FF_ADD|0, 2, {NULL}, 0, 0, S_NULL}, // S_CHARGEFLICKER {SPR_TRC3, FF_FULLBRIGHT|FF_ADD|0, 2, {NULL}, 0, 0, S_NULL}, // S_CHARGEFLICKER
@ -13789,6 +13793,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate S_NULL // raisestate
}, },
{ // MT_GOIIT
-1, // doomednum
S_GOTIT, // spawnstate
1000, // 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
67*FRACUNIT, // radius
67*FRACUNIT, // height
2, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_NOGRAVITY|MF_NOCLIPHEIGHT, // flags
S_NULL // raisestate
},
{ // MT_CHARGEAURA { // MT_CHARGEAURA
-1, // doomednum -1, // doomednum
S_CHARGEAURA, // spawnstate S_CHARGEAURA, // spawnstate

View file

@ -1128,6 +1128,8 @@ typedef enum sprite
SPR_AMPC, SPR_AMPC,
SPR_AMPD, SPR_AMPD,
SPR_SOR_,
SPR_WTRL, // Water Trail SPR_WTRL, // Water Trail
SPR_GCHA, // follower: generic chao SPR_GCHA, // follower: generic chao
@ -2612,6 +2614,8 @@ typedef enum state
S_AMPAURA, S_AMPAURA,
S_AMPBURST, S_AMPBURST,
S_GOTIT,
S_CHARGEAURA, S_CHARGEAURA,
S_CHARGEFALL, S_CHARGEFALL,
S_CHARGEFLICKER, S_CHARGEFLICKER,
@ -4611,6 +4615,8 @@ typedef enum mobj_type
MT_AMPAURA, MT_AMPAURA,
MT_AMPBURST, MT_AMPBURST,
MT_GOTIT,
MT_CHARGEAURA, MT_CHARGEAURA,
MT_CHARGEFALL, MT_CHARGEFALL,
MT_CHARGEFLICKER, MT_CHARGEFLICKER,

View file

@ -15652,6 +15652,9 @@ static boolean K_PickUp(player_t *player, mobj_t *picked)
S_StartSound(player->mo, sfx_aple); S_StartSound(player->mo, sfx_aple);
K_TryMoveBackupItem(player); K_TryMoveBackupItem(player);
mobj_t *gotit = P_SpawnMobjFromMobj(player->mo, 0, 0, player->mo->height/2, MT_GOTIT);
P_SetTarget(&gotit->target, player->mo);
return true; return true;
} }

View file

@ -8530,6 +8530,18 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
break; break;
} }
case MT_GOTIT:
{
if (!mobj->target || !mobj->target->health || !mobj->target->player)
{
P_RemoveMobj(mobj);
return false;
}
P_InstaScale(mobj, mobj->target->scale);
P_MoveOrigin(mobj, mobj->target->x, mobj->target->y, mobj->target->z + mobj->target->height/2);
K_MatchGenericExtraFlags(mobj, mobj->target);
break;
}
case MT_BUBBLESHIELD: case MT_BUBBLESHIELD:
{ {
fixed_t scale; fixed_t scale;