mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Add item capsule Ambush flag scaling; attempted gravity fix
This commit is contained in:
parent
debfb41423
commit
7e1a29310f
2 changed files with 12 additions and 8 deletions
|
|
@ -23088,7 +23088,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
100, // mass
|
||||
0, // damage
|
||||
sfx_None, // activesound
|
||||
MF_SLIDEME|MF_SPECIAL|MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_DONTENCOREMAP, // flags
|
||||
MF_SLIDEME|MF_SPECIAL|MF_NOCLIPHEIGHT|MF_DONTENCOREMAP, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
|
|
|
|||
18
src/p_mobj.c
18
src/p_mobj.c
|
|
@ -9506,11 +9506,12 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type)
|
|||
P_CheckPosition(mobj, mobj->x, mobj->y); // look for FOFs
|
||||
if (P_IsObjectOnGround(mobj))
|
||||
{
|
||||
mobj->flags &= ~MF_NOGRAVITY;
|
||||
buttScale = 13*FRACUNIT/10;
|
||||
buttState = S_ITEMCAPSULE_BOTTOM_SIDE_GROUND;
|
||||
spin = 0;
|
||||
}
|
||||
else
|
||||
mobj->flags |= MF_NOGRAVITY;
|
||||
|
||||
// inside item
|
||||
part = P_SpawnMobjFromMobj(mobj, 0, 0, 0, MT_ITEMCAPSULE_PART);
|
||||
|
|
@ -9520,7 +9521,6 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type)
|
|||
part->extravalue1 = 175*FRACUNIT/100; // relative scale
|
||||
part->flags2 |= MF2_CLASSICPUSH|MF2_INFLOAT; // classicpush = centered horizontally, infloat = don't recolor
|
||||
P_SetTarget(&mobj->tracer, part); // pointer to this item, so we can modify its sprite/frame
|
||||
P_ItemCapsulePartThinker(part);
|
||||
|
||||
// capsule caps
|
||||
part = mobj;
|
||||
|
|
@ -9536,7 +9536,6 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type)
|
|||
part->movedir = spin; // rotation speed
|
||||
part->movefactor = 0; // z offset
|
||||
part->extravalue1 = buttScale; // relative scale
|
||||
P_ItemCapsulePartThinker(part);
|
||||
|
||||
// a top side
|
||||
P_SetTarget(&part->hnext, P_SpawnMobjFromMobj(mobj, 0, 0, 0, MT_ITEMCAPSULE_PART));
|
||||
|
|
@ -9547,7 +9546,6 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type)
|
|||
part->angle = i * ANG_CAPSULE;
|
||||
part->movedir = spin; // rotation speed
|
||||
part->movefactor = mobj->info->height - part->info->height; // z offset
|
||||
P_ItemCapsulePartThinker(part);
|
||||
}
|
||||
break;
|
||||
#undef CAPSULESIDES
|
||||
|
|
@ -11791,13 +11789,19 @@ static boolean P_SetupSpawnedMapThing(mapthing_t *mthing, mobj_t *mobj, boolean
|
|||
case MT_ITEMCAPSULE:
|
||||
{
|
||||
// Angle = item type
|
||||
// Parameter = extra items (x5 for rings)
|
||||
// Special = +16 items (+80 for rings)
|
||||
if (mthing->angle > 0 && mthing->angle < NUMKARTITEMS)
|
||||
mobj->threshold = mthing->angle;
|
||||
|
||||
// Parameter = extra items (x5 for rings)
|
||||
mobj->movecount += mthing->extrainfo;
|
||||
|
||||
// Special = +16 items (+80 for rings)
|
||||
if (mthing->options & MTF_OBJECTSPECIAL)
|
||||
mobj->movecount += 16;
|
||||
mobj->movecount += mthing->extrainfo;
|
||||
|
||||
// Ambush = double size (grounded) / half size (aerial)
|
||||
if (!(mthing->options & MTF_AMBUSH) == !P_IsObjectOnGround(mobj))
|
||||
P_SetScale(mobj, mobj->destscale = min(mobj->scale << 1, FixedDiv(64*FRACUNIT, mobj->info->radius))); // don't make them larger than the blockmap can handle
|
||||
break;
|
||||
}
|
||||
case MT_AAZTREE_HELPER:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue