-------
Diagonal springs now keep your current speed if you are faster than their set speed. This only affects players for now.
Offroad is no longer handled by &256, and is now handled by &2, &3, &4; Damage (Damage (Water), Damage (Fire), and Damage (Electric))
Starpost mobj radius and height have been reduced to 1*FRACUNIT, this should fix the checkpoint infinispawn bug.
This commit is contained in:
ZTsukei 2017-04-16 20:43:30 -04:00
parent 911508e262
commit e6305ece38
5 changed files with 37 additions and 21 deletions

View file

@ -143,16 +143,16 @@ extern FILE *logstream;
#define DEVELOP // Disable this for release builds to remove excessive cheat commands and enable MD5 checking and stuff, all in one go. :3
#ifdef DEVELOP
#define VERSION 103 // Game version
#define SUBVERSION 1 // more precise version number
#define SUBVERSION 2 // more precise version number
#define VERSIONSTRING "Development EXE"
#define VERSIONSTRINGW "v1.3.01"
#define VERSIONSTRINGW "v1.3.02"
// most interface strings are ignored in development mode.
// we use comprevision and compbranch instead.
#else
#define VERSION 103 // Game version
#define SUBVERSION 1 // more precise version number
#define VERSIONSTRING "DevEXE v1.3.01"
#define VERSIONSTRINGW L"v1.3.01"
#define SUBVERSION 2 // more precise version number
#define VERSIONSTRING "DevEXE v1.3.02"
#define VERSIONSTRINGW L"v1.3.02"
// Hey! If you change this, add 1 to the MODVERSION below!
// Otherwise we can't force updates!
#endif

View file

@ -5656,8 +5656,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL, // xdeathstate
sfx_None, // deathsound
8, // speed
64*FRACUNIT, // radius
80*FRACUNIT, // height
1*FRACUNIT, // radius
1*FRACUNIT, // height
0, // display offset
4, // mass
0, // damage

View file

@ -914,8 +914,19 @@ static void K_UpdateOffroad(player_t *player)
sector_t *nextsector = R_PointInSubsector(
player->mo->x + player->mo->momx*2, player->mo->y + player->mo->momy*2)->sector;
fixed_t offroadstrength = 0;
if (nextsector->special & 2) // Weak Offroad
offroadstrength = 1;
else if (nextsector->special & 3) // Mid Offroad
offroadstrength = 2;
else if (nextsector->special & 4) // Strong Offroad
offroadstrength = 3;
// If you are offroad, a timer starts. Depending on your weight value, the timer increments differently.
if ((nextsector->special & 256) && nextsector->special != 768 && nextsector->special != 1024 && nextsector->special != 4864)
//if ((nextsector->special & 256) && nextsector->special != 768
// && nextsector->special != 1024 && nextsector->special != 4864)
if (offroadstrength)
{
if (K_CheckOffroadCollide(player->mo) && player->kartstuff[k_offroad] == 0)
player->kartstuff[k_offroad] = 16;
@ -925,7 +936,7 @@ static void K_UpdateOffroad(player_t *player)
// 1872 is the magic number - 35 frames adds up to approximately 65536. 1872/4 = 468/3 = 156
// A higher kart weight means you can stay offroad for longer without losing speed
offroad = (1872 + 5*156 - kartweight*156)*2;
offroad = (1872 + 5*156 - kartweight*156)*offroadstrength;
if (player->kartstuff[k_growshrinktimer] > 1) // megashroom slows down half as fast
offroad /= 2;
@ -933,8 +944,8 @@ static void K_UpdateOffroad(player_t *player)
player->kartstuff[k_offroad] += offroad;
}
if (player->kartstuff[k_offroad] > FRACUNIT*2)
player->kartstuff[k_offroad] = FRACUNIT*2;
if (player->kartstuff[k_offroad] > FRACUNIT*offroadstrength)
player->kartstuff[k_offroad] = FRACUNIT*offroadstrength;
}
else
player->kartstuff[k_offroad] = 0;

View file

@ -181,7 +181,20 @@ boolean P_DoSpring(mobj_t *spring, mobj_t *object)
object->momz = FixedMul(vertispeed,FixedSqrt(FixedMul(object->scale, spring->scale)));
if (horizspeed)
P_InstaThrustEvenIn2D(object, spring->angle, FixedMul(horizspeed,FixedSqrt(FixedMul(object->scale, spring->scale))));
{
if (!object->player)
P_InstaThrustEvenIn2D(object, spring->angle, FixedMul(horizspeed,FixedSqrt(FixedMul(object->scale, spring->scale))));
else
{
fixed_t finalSpeed = horizspeed;
fixed_t pSpeed = object->player->speed;
if (pSpeed > finalSpeed)
finalSpeed = pSpeed;
P_InstaThrustEvenIn2D(object, spring->angle, FixedMul(finalSpeed,FixedSqrt(FixedMul(object->scale, spring->scale))));
}
}
// Re-solidify
spring->flags |= (spring->info->flags & (MF_SPECIAL|MF_SOLID));

View file

@ -3529,17 +3529,9 @@ void P_ProcessSpecialSector(player_t *player, sector_t *sector, sector_t *rovers
if (roversector || P_MobjReadyToTrigger(player->mo, sector))
P_DamageMobj(player->mo, NULL, NULL, 1);
break;
case 2: // Damage (Water)
if ((roversector || P_MobjReadyToTrigger(player->mo, sector)) && (player->powers[pw_underwater] || player->pflags & PF_NIGHTSMODE) && (player->powers[pw_shield] & SH_NOSTACK) != SH_ELEMENTAL)
P_DamageMobj(player->mo, NULL, NULL, 1);
break;
case 2: // Damage (Water) // SRB2kart - These three damage types are now offroad sectors
case 3: // Damage (Fire)
if ((roversector || P_MobjReadyToTrigger(player->mo, sector)) && (player->powers[pw_shield] & SH_NOSTACK) != SH_ELEMENTAL)
P_DamageMobj(player->mo, NULL, NULL, 1);
break;
case 4: // Damage (Electrical)
if ((roversector || P_MobjReadyToTrigger(player->mo, sector)) && (player->powers[pw_shield] & SH_NOSTACK) != SH_ATTRACT)
P_DamageMobj(player->mo, NULL, NULL, 1);
break;
case 5: // Spikes
// Don't do anything. In Soviet Russia, spikes find you.