mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-11-17 10:11:12 +00:00
v1.3.16
-------- Fireballs narrower Fake Item is no longer restricted while held Held items that are restricted remain in the item wheel until used Magnet now correctly hits nearby players and objects
This commit is contained in:
parent
2972dc9b67
commit
eaa5167f71
4 changed files with 58 additions and 29 deletions
|
@ -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 15 // more precise version number
|
||||
#define SUBVERSION 16 // more precise version number
|
||||
#define VERSIONSTRING "Development EXE"
|
||||
#define VERSIONSTRINGW "v1.3.15"
|
||||
#define VERSIONSTRINGW "v1.3.16"
|
||||
// most interface strings are ignored in development mode.
|
||||
// we use comprevision and compbranch instead.
|
||||
#else
|
||||
#define VERSION 103 // Game version
|
||||
#define SUBVERSION 15 // more precise version number
|
||||
#define VERSIONSTRING "DevEXE v1.3.15"
|
||||
#define VERSIONSTRINGW L"v1.3.15"
|
||||
#define SUBVERSION 16 // more precise version number
|
||||
#define VERSIONSTRING "DevEXE v1.3.16"
|
||||
#define VERSIONSTRINGW L"v1.3.16"
|
||||
// Hey! If you change this, add 1 to the MODVERSION below!
|
||||
// Otherwise we can't force updates!
|
||||
#endif
|
||||
|
|
36
src/k_kart.c
36
src/k_kart.c
|
@ -1845,11 +1845,11 @@ static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map
|
|||
if (dir == -1)
|
||||
{
|
||||
// Shoot backward
|
||||
mo = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180 - 0x08000000, 0, 64*FRACUNIT);
|
||||
mo2 = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180 - 0x04000000, 0, 64*FRACUNIT);
|
||||
mo = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180 - 0x06000000, 0, 64*FRACUNIT);
|
||||
mo2 = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180 - 0x03000000, 0, 64*FRACUNIT);
|
||||
mo3 = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180, 0, 64*FRACUNIT);
|
||||
mo4 = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180 + 0x04000000, 0, 64*FRACUNIT);
|
||||
mo5 = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180 + 0x08000000, 0, 64*FRACUNIT);
|
||||
mo4 = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180 + 0x03000000, 0, 64*FRACUNIT);
|
||||
mo5 = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + ANGLE_180 + 0x06000000, 0, 64*FRACUNIT);
|
||||
|
||||
if (mo)
|
||||
{
|
||||
|
@ -1866,11 +1866,11 @@ static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map
|
|||
else
|
||||
{
|
||||
// Shoot forward
|
||||
mo = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle - 0x08000000, 0, 64*FRACUNIT);
|
||||
mo2 = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle - 0x04000000, 0, 64*FRACUNIT);
|
||||
mo = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle - 0x06000000, 0, 64*FRACUNIT);
|
||||
mo2 = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle - 0x03000000, 0, 64*FRACUNIT);
|
||||
mo3 = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle, 0, 64*FRACUNIT);
|
||||
mo4 = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + 0x04000000, 0, 64*FRACUNIT);
|
||||
mo5 = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + 0x08000000, 0, 64*FRACUNIT);
|
||||
mo4 = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + 0x03000000, 0, 64*FRACUNIT);
|
||||
mo5 = K_SpawnKartMissile(player->mo, mapthing, player->mo->angle + 0x06000000, 0, 64*FRACUNIT);
|
||||
|
||||
if (mo)
|
||||
{
|
||||
|
@ -1977,7 +1977,7 @@ static void K_DoMagnet(player_t *player)
|
|||
{
|
||||
S_StartSound(player->mo, sfx_s3k45);
|
||||
player->kartstuff[k_magnettimer] = 35;
|
||||
P_NukeEnemies(player->mo, player->mo, 16*FRACUNIT);
|
||||
P_NukeEnemies(player->mo, player->mo, RING_DIST/4);
|
||||
}
|
||||
|
||||
static void K_DoBooSteal(player_t *player)
|
||||
|
@ -2859,7 +2859,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
if (!P_IsLocalPlayer(player))
|
||||
S_StartSound(player->mo, sfx_mega);
|
||||
K_PlayTauntSound(player->mo);
|
||||
player->kartstuff[k_growshrinktimer] = itemtime;
|
||||
player->kartstuff[k_growshrinktimer] = itemtime + TICRATE*2;
|
||||
S_StartSound(player->mo, sfx_mario3);
|
||||
player->pflags |= PF_ATTACKDOWN;
|
||||
player->kartstuff[k_megashroom] = 0;
|
||||
|
@ -3426,16 +3426,16 @@ static void K_drawKartRetroItem(void)
|
|||
else if (stplyr->kartstuff[k_boostolentimer] > 0 && !(leveltime & 2)) localpatch = kp_noitem;
|
||||
else if (stplyr->kartstuff[k_kitchensink] == 1) localpatch = kp_kitchensink;
|
||||
else if (stplyr->kartstuff[k_lightning] == 1) localpatch = kp_lightning;
|
||||
else if (stplyr->kartstuff[k_tripleredshell] & 8) localpatch = kp_tripleredshell;
|
||||
else if (stplyr->kartstuff[k_tripleredshell]) localpatch = kp_tripleredshell; // &8
|
||||
else if (stplyr->kartstuff[k_fireflower] == 1) localpatch = kp_fireflower;
|
||||
else if (stplyr->kartstuff[k_blueshell] == 1) localpatch = kp_blueshell;
|
||||
else if (stplyr->kartstuff[k_bobomb] & 2) localpatch = kp_bobomb;
|
||||
else if (stplyr->kartstuff[k_triplegreenshell] & 8) localpatch = kp_triplegreenshell;
|
||||
else if (stplyr->kartstuff[k_redshell] & 2) localpatch = kp_redshell;
|
||||
else if (stplyr->kartstuff[k_greenshell] & 2) localpatch = kp_greenshell;
|
||||
else if (stplyr->kartstuff[k_banana] & 2) localpatch = kp_banana;
|
||||
else if (stplyr->kartstuff[k_bobomb]) localpatch = kp_bobomb; // &2
|
||||
else if (stplyr->kartstuff[k_triplegreenshell]) localpatch = kp_triplegreenshell; // &8
|
||||
else if (stplyr->kartstuff[k_redshell]) localpatch = kp_redshell; // &2
|
||||
else if (stplyr->kartstuff[k_greenshell]) localpatch = kp_greenshell; // &2
|
||||
else if (stplyr->kartstuff[k_banana]) localpatch = kp_banana; // &2
|
||||
else if (stplyr->kartstuff[k_fakeitem] & 2) localpatch = kp_fakeitem;
|
||||
else if (stplyr->kartstuff[k_triplebanana] & 8) localpatch = kp_triplebanana;
|
||||
else if (stplyr->kartstuff[k_triplebanana]) localpatch = kp_triplebanana; // &8
|
||||
else if (stplyr->kartstuff[k_star] == 1) localpatch = kp_star;
|
||||
else if (stplyr->kartstuff[k_goldshroom] == 1
|
||||
|| (stplyr->kartstuff[k_goldshroomtimer] > 1 && (leveltime & 1))) localpatch = kp_goldshroom;
|
||||
|
@ -3789,7 +3789,7 @@ void K_drawKartHUD(void)
|
|||
// Draw the little triple-item icons at the bottom
|
||||
if (!splitscreen)
|
||||
{
|
||||
K_DrawKartTripleItem();
|
||||
//K_DrawKartTripleItem();
|
||||
K_DrawKartPositionFaces();
|
||||
}
|
||||
|
||||
|
|
|
@ -742,7 +742,7 @@ static boolean P_LookForShield(mobj_t *actor)
|
|||
|
||||
// SRB2kart - magnet item
|
||||
if (player->kartstuff[k_magnettimer] //(player->powers[pw_shield] & SH_NOSTACK) == SH_ATTRACT
|
||||
&& (P_AproxDistance(P_AproxDistance(actor->x-player->mo->x, actor->y-player->mo->y), actor->z-player->mo->z) < FixedMul(RING_DIST/2, player->mo->scale)))
|
||||
&& (P_AproxDistance(P_AproxDistance(actor->x-player->mo->x, actor->y-player->mo->y), actor->z-player->mo->z) < FixedMul(RING_DIST/4, player->mo->scale)))
|
||||
{
|
||||
P_SetTarget(&actor->tracer, player->mo);
|
||||
return true;
|
||||
|
@ -8125,7 +8125,7 @@ void A_ItemPop(mobj_t *actor)
|
|||
&& !(actor->target->player->kartstuff[k_greenshell] || actor->target->player->kartstuff[k_triplegreenshell]
|
||||
|| actor->target->player->kartstuff[k_redshell] || actor->target->player->kartstuff[k_tripleredshell]
|
||||
|| actor->target->player->kartstuff[k_banana] || actor->target->player->kartstuff[k_triplebanana]
|
||||
|| actor->target->player->kartstuff[k_fakeitem] || actor->target->player->kartstuff[k_magnet]
|
||||
|| actor->target->player->kartstuff[k_fakeitem] & 2 || actor->target->player->kartstuff[k_magnet]
|
||||
|| actor->target->player->kartstuff[k_bobomb] || actor->target->player->kartstuff[k_blueshell]
|
||||
|| actor->target->player->kartstuff[k_mushroom] || actor->target->player->kartstuff[k_fireflower]
|
||||
|| actor->target->player->kartstuff[k_star] || actor->target->player->kartstuff[k_goldshroom]
|
||||
|
|
37
src/p_user.c
37
src/p_user.c
|
@ -7690,8 +7690,8 @@ void P_NukeEnemies(mobj_t *inflictor, mobj_t *source, fixed_t radius)
|
|||
if (mo->flags & MF_MONITOR)
|
||||
continue; // Monitors cannot be 'nuked'.
|
||||
|
||||
if (!G_RingSlingerGametype() && mo->type == MT_PLAYER)
|
||||
continue; // Don't hurt players in Co-Op!
|
||||
//if (!G_RingSlingerGametype() && mo->type == MT_PLAYER)
|
||||
// continue; // Don't hurt players in Co-Op!
|
||||
|
||||
if (abs(inflictor->x - mo->x) > radius || abs(inflictor->y - mo->y) > radius || abs(inflictor->z - mo->z) > radius)
|
||||
continue; // Workaround for possible integer overflow in the below -Red
|
||||
|
@ -7705,8 +7705,37 @@ void P_NukeEnemies(mobj_t *inflictor, mobj_t *source, fixed_t radius)
|
|||
if (mo->type == MT_EGGGUARD && mo->tracer) //nuke Egg Guard's shield!
|
||||
P_KillMobj(mo->tracer, inflictor, source);
|
||||
|
||||
if (mo->flags & MF_BOSS || mo->type == MT_PLAYER) //don't OHKO bosses nor players!
|
||||
continue; // SRB2kart - P_Nuke is for magnet (for now), and doesn't hurt other players, only obstacles. // P_DamageMobj(mo, inflictor, source, 1);
|
||||
if (mo->flags & MF_BOSS) //don't OHKO bosses!
|
||||
P_DamageMobj(mo, inflictor, source, 1);
|
||||
|
||||
//{ SRB2kart
|
||||
if (mo->type == MT_GREENITEM || mo->type == MT_REDITEM || mo->type == MT_REDITEMDUD
|
||||
|| mo->type == MT_GREENSHIELD || mo->type == MT_REDSHIELD
|
||||
|| mo->type == MT_TRIPLEGREENSHIELD1 || mo->type == MT_TRIPLEGREENSHIELD2 || mo->type == MT_TRIPLEGREENSHIELD3
|
||||
|| mo->type == MT_TRIPLEREDSHIELD1 || mo->type == MT_TRIPLEREDSHIELD2 || mo->type == MT_TRIPLEREDSHIELD3
|
||||
|| mo->type == MT_BANANAITEM || mo->type == MT_BANANASHIELD
|
||||
|| mo->type == MT_TRIPLEBANANASHIELD1 || mo->type == MT_TRIPLEBANANASHIELD2 || mo->type == MT_TRIPLEBANANASHIELD3
|
||||
|| mo->type == MT_FAKEITEM || mo->type == MT_FAKESHIELD
|
||||
|| mo->type == MT_FIREBALL)
|
||||
{
|
||||
if (mo->eflags & MFE_VERTICALFLIP)
|
||||
mo->z -= mo->height;
|
||||
else
|
||||
mo->z += mo->height;
|
||||
|
||||
S_StartSound(mo, mo->info->deathsound);
|
||||
P_KillMobj(mo, inflictor, source);
|
||||
|
||||
P_SetObjectMomZ(mo, 8*FRACUNIT, false);
|
||||
P_InstaThrust(mo, R_PointToAngle2(inflictor->x, inflictor->y, mo->x, mo->y)+ANGLE_90, 16*FRACUNIT);
|
||||
}
|
||||
|
||||
if (mo == inflictor) // Don't nuke yourself, dummy!
|
||||
continue;
|
||||
|
||||
if (mo->type == MT_PLAYER) // Players wipe out in Kart
|
||||
K_SpinPlayer(mo->player, source);
|
||||
//}
|
||||
else
|
||||
P_DamageMobj(mo, inflictor, source, 1000);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue