mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'loops-prep' into 'master'
Prep for Sonic Loops See merge request KartKrew/Kart!990
This commit is contained in:
commit
ab75037583
5 changed files with 28 additions and 15 deletions
20
src/p_mobj.c
20
src/p_mobj.c
|
|
@ -9743,14 +9743,6 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
I_Assert(mobj != NULL);
|
||||
I_Assert(!P_MobjWasRemoved(mobj));
|
||||
|
||||
// Set old position (for interpolation)
|
||||
mobj->old_x = mobj->x;
|
||||
mobj->old_y = mobj->y;
|
||||
mobj->old_z = mobj->z;
|
||||
mobj->old_angle = mobj->angle;
|
||||
mobj->old_pitch = mobj->pitch;
|
||||
mobj->old_roll = mobj->roll;
|
||||
|
||||
// Remove dead target/tracer.
|
||||
if (mobj->target && P_MobjWasRemoved(mobj->target))
|
||||
P_SetTarget(&mobj->target, NULL);
|
||||
|
|
@ -13734,6 +13726,18 @@ void P_SpawnItemPattern(mapthing_t *mthing)
|
|||
}
|
||||
}
|
||||
|
||||
void P_SpawnItemLine(mapthing_t *mt1, mapthing_t *mt2)
|
||||
{
|
||||
const mobjtype_t type = P_GetMobjtype(mt1->type);
|
||||
const fixed_t diameter = 2 * FixedMul(mobjinfo[type].radius, mapobjectscale);
|
||||
const fixed_t dx = (mt2->x - mt1->x) * FRACUNIT;
|
||||
const fixed_t dy = (mt2->y - mt1->y) * FRACUNIT;
|
||||
const fixed_t dist = FixedHypot(dx, dy);
|
||||
const angle_t angle = R_PointToAngle2(0, 0, dx, dy);
|
||||
|
||||
P_SpawnSingularItemRow(mt1, type, (dist / diameter) + 1, diameter, 0, AngleFixed(angle) / FRACUNIT);
|
||||
}
|
||||
|
||||
//
|
||||
// P_CheckMissileSpawn
|
||||
// Moves the missile forward a bit and possibly explodes it right there.
|
||||
|
|
|
|||
|
|
@ -530,6 +530,7 @@ fixed_t P_GetMapThingSpawnHeight(const mobjtype_t mobjtype, const mapthing_t* mt
|
|||
mobj_t *P_SpawnMapThing(mapthing_t *mthing);
|
||||
void P_SpawnHoop(mapthing_t *mthing);
|
||||
void P_SpawnItemPattern(mapthing_t *mthing);
|
||||
void P_SpawnItemLine(mapthing_t *mt1, mapthing_t *mt2);
|
||||
void P_SpawnHoopOfSomething(fixed_t x, fixed_t y, fixed_t z, fixed_t radius, INT32 number, mobjtype_t type, angle_t rotangle);
|
||||
void P_SpawnPrecipitation(void);
|
||||
void P_SpawnParaloop(fixed_t x, fixed_t y, fixed_t z, fixed_t radius, INT32 number, mobjtype_t type, statenum_t nstate, angle_t rotangle, boolean spawncenter);
|
||||
|
|
|
|||
|
|
@ -700,10 +700,13 @@ static void P_SpawnMapThings(boolean spawnemblems)
|
|||
|
||||
for (i = 0, mt = mapthings; i < nummapthings; i++, mt++)
|
||||
{
|
||||
if (mt->type == 1700 // MT_AXIS
|
||||
|| mt->type == 1701 // MT_AXISTRANSFER
|
||||
|| mt->type == 1702) // MT_AXISTRANSFERLINE
|
||||
continue; // These were already spawned
|
||||
switch (mt->type)
|
||||
{
|
||||
case 1700: // MT_AXIS
|
||||
case 1701: // MT_AXISTRANSFER
|
||||
case 1702: // MT_AXISTRANSFERLINE
|
||||
continue; // These were already spawned
|
||||
}
|
||||
|
||||
if (mt->type == mobjinfo[MT_BATTLECAPSULE].doomednum)
|
||||
continue; // This will spawn later
|
||||
|
|
@ -5952,6 +5955,7 @@ static void P_ConvertBinaryLinedefTypes(void)
|
|||
lines[i].args[1] |= TMBOT_FORCEDIR;
|
||||
|
||||
lines[i].args[2] = sides[lines[i].sidenum[0]].textureoffset / FRACUNIT;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -167,7 +167,7 @@ angle_t FixedAngle(fixed_t fa)
|
|||
return AngleAdj(cfa, cwf, ra);
|
||||
}
|
||||
|
||||
INT32 AngleDelta(angle_t a1, angle_t a2)
|
||||
angle_t AngleDelta(angle_t a1, angle_t a2)
|
||||
{
|
||||
angle_t delta = a1 - a2;
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ extern "C" {
|
|||
#define FINEANGLES 8192
|
||||
#define FINEMASK (FINEANGLES - 1)
|
||||
#define ANGLETOFINESHIFT 19 // 0x100000000 to 0x2000
|
||||
#define FINEANGLE_C(x) ((FixedAngle((x)*FRACUNIT)>>ANGLETOFINESHIFT) & FINEMASK) // ((x*(ANGLE_45/45))>>ANGLETOFINESHIFT) & FINEMASK
|
||||
#define ANGLETOFINE(x) (((x)>>ANGLETOFINESHIFT) & FINEMASK)
|
||||
|
||||
// Effective size is 10240.
|
||||
extern fixed_t finesine[5*FINEANGLES/4];
|
||||
|
|
@ -110,7 +110,7 @@ FUNCMATH angle_t FixedAngle(fixed_t fa);
|
|||
// and with a factor, with +factor for (fa/factor) and -factor for (fa*factor)
|
||||
FUNCMATH angle_t FixedAngleC(fixed_t fa, fixed_t factor);
|
||||
// difference between two angle_t
|
||||
FUNCMATH INT32 AngleDelta(angle_t a1, angle_t a2);
|
||||
FUNCMATH angle_t AngleDelta(angle_t a1, angle_t a2);
|
||||
FUNCMATH INT32 AngleDeltaSigned(angle_t a1, angle_t a2);
|
||||
FUNCMATH float AngleToFloat(angle_t x);
|
||||
FUNCMATH angle_t FloatToAngle(float f);
|
||||
|
|
@ -136,6 +136,10 @@ void FM_Rotate(matrix_t *dest, angle_t angle, fixed_t x, fixed_t y, fixed_t z);
|
|||
#define FINECOSINE(n) (finecosine[n]>>(FINE_FRACBITS-FRACBITS))
|
||||
#define FINETANGENT(n) (finetangent[n]>>(FINE_FRACBITS-FRACBITS))
|
||||
|
||||
// FSIN(ANGLE_90) = FRACUNIT
|
||||
#define FSIN(n) FINESINE(ANGLETOFINE(n))
|
||||
#define FCOS(n) FINECOSINE(ANGLETOFINE(n))
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue