mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
WIP: Separate Overdrive shield
This commit is contained in:
parent
4d202fbd67
commit
ed1dde5788
6 changed files with 27 additions and 14 deletions
|
|
@ -1030,10 +1030,11 @@ struct player_t
|
||||||
UINT8 ringboxaward; // Where did we stop?
|
UINT8 ringboxaward; // Where did we stop?
|
||||||
|
|
||||||
UINT8 amps;
|
UINT8 amps;
|
||||||
UINT8 ampsounds;
|
UINT8 amppickup;
|
||||||
UINT8 ampspending;
|
UINT8 ampspending;
|
||||||
|
|
||||||
UINT16 overdrive;
|
UINT16 overdrive;
|
||||||
|
UINT16 overshield;
|
||||||
fixed_t overdrivepower;
|
fixed_t overdrivepower;
|
||||||
|
|
||||||
UINT8 itemflags; // holds IF_ flags (see itemflags_t)
|
UINT8 itemflags; // holds IF_ flags (see itemflags_t)
|
||||||
|
|
|
||||||
12
src/k_kart.c
12
src/k_kart.c
|
|
@ -4019,7 +4019,7 @@ void K_AwardPlayerAmps(player_t *player, UINT8 amps)
|
||||||
else
|
else
|
||||||
player->amps = getamped;
|
player->amps = getamped;
|
||||||
|
|
||||||
player->ampsounds = 1;
|
player->amppickup = 1;
|
||||||
player->ampspending--;
|
player->ampspending--;
|
||||||
|
|
||||||
if (oldamps/AMPLEVEL != player->amps/AMPLEVEL)
|
if (oldamps/AMPLEVEL != player->amps/AMPLEVEL)
|
||||||
|
|
@ -4079,6 +4079,7 @@ boolean K_Overdrive(player_t *player)
|
||||||
S_StartSound(player->mo, sfx_cdfm13);
|
S_StartSound(player->mo, sfx_cdfm13);
|
||||||
|
|
||||||
player->overdrive += (player->amps)*6;
|
player->overdrive += (player->amps)*6;
|
||||||
|
player->overshield += (player->amps)*2;
|
||||||
player->overdrivepower = FRACUNIT;
|
player->overdrivepower = FRACUNIT;
|
||||||
|
|
||||||
player->amps = 0;
|
player->amps = 0;
|
||||||
|
|
@ -9085,6 +9086,11 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
||||||
player->overdrive--;
|
player->overdrive--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (player->overshield > 0 && onground == true)
|
||||||
|
{
|
||||||
|
player->overshield--;
|
||||||
|
}
|
||||||
|
|
||||||
if (player->wavedashboost == 0 || player->wavedashpower > FRACUNIT)
|
if (player->wavedashboost == 0 || player->wavedashpower > FRACUNIT)
|
||||||
{
|
{
|
||||||
player->wavedashpower = FRACUNIT; // Safety
|
player->wavedashpower = FRACUNIT; // Safety
|
||||||
|
|
@ -9136,7 +9142,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
||||||
K_DoIngameRespawn(player);
|
K_DoIngameRespawn(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player->ampsounds && (leveltime%2))
|
if (player->amppickup && (leveltime%2))
|
||||||
{
|
{
|
||||||
if (P_IsDisplayPlayer(player))
|
if (P_IsDisplayPlayer(player))
|
||||||
{
|
{
|
||||||
|
|
@ -9147,7 +9153,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
||||||
{
|
{
|
||||||
S_StartSoundAtVolume(NULL, sfx_mbs43, 127);
|
S_StartSoundAtVolume(NULL, sfx_mbs43, 127);
|
||||||
}
|
}
|
||||||
player->ampsounds--;
|
player->amppickup--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -282,8 +282,8 @@ static int player_get(lua_State *L)
|
||||||
lua_pushinteger(L, plr->ringboxaward);
|
lua_pushinteger(L, plr->ringboxaward);
|
||||||
else if (fastcmp(field,"amps"))
|
else if (fastcmp(field,"amps"))
|
||||||
lua_pushinteger(L, plr->amps);
|
lua_pushinteger(L, plr->amps);
|
||||||
else if (fastcmp(field,"ampsounds"))
|
else if (fastcmp(field,"amppickup"))
|
||||||
lua_pushinteger(L, plr->ampsounds);
|
lua_pushinteger(L, plr->amppickup);
|
||||||
else if (fastcmp(field,"ampspending"))
|
else if (fastcmp(field,"ampspending"))
|
||||||
lua_pushinteger(L, plr->ampspending);
|
lua_pushinteger(L, plr->ampspending);
|
||||||
else if (fastcmp(field,"itemflags"))
|
else if (fastcmp(field,"itemflags"))
|
||||||
|
|
@ -366,6 +366,8 @@ static int player_get(lua_State *L)
|
||||||
lua_pushinteger(L, plr->wavedashboost);
|
lua_pushinteger(L, plr->wavedashboost);
|
||||||
else if (fastcmp(field,"overdrive"))
|
else if (fastcmp(field,"overdrive"))
|
||||||
lua_pushinteger(L, plr->overdrive);
|
lua_pushinteger(L, plr->overdrive);
|
||||||
|
else if (fastcmp(field,"overshield"))
|
||||||
|
lua_pushinteger(L, plr->overshield);
|
||||||
else if (fastcmp(field,"wavedashpower"))
|
else if (fastcmp(field,"wavedashpower"))
|
||||||
lua_pushinteger(L, plr->wavedashpower);
|
lua_pushinteger(L, plr->wavedashpower);
|
||||||
else if (fastcmp(field,"overdrivepower"))
|
else if (fastcmp(field,"overdrivepower"))
|
||||||
|
|
@ -854,8 +856,8 @@ static int player_set(lua_State *L)
|
||||||
plr->ringboxaward = luaL_checkinteger(L, 3);
|
plr->ringboxaward = luaL_checkinteger(L, 3);
|
||||||
else if (fastcmp(field,"amps"))
|
else if (fastcmp(field,"amps"))
|
||||||
plr->amps = luaL_checkinteger(L, 3);
|
plr->amps = luaL_checkinteger(L, 3);
|
||||||
else if (fastcmp(field,"ampsounds"))
|
else if (fastcmp(field,"amppickup"))
|
||||||
plr->ampsounds = luaL_checkinteger(L, 3);
|
plr->amppickup = luaL_checkinteger(L, 3);
|
||||||
else if (fastcmp(field,"ampspending"))
|
else if (fastcmp(field,"ampspending"))
|
||||||
plr->ampspending = luaL_checkinteger(L, 3);
|
plr->ampspending = luaL_checkinteger(L, 3);
|
||||||
else if (fastcmp(field,"itemflags"))
|
else if (fastcmp(field,"itemflags"))
|
||||||
|
|
@ -936,6 +938,8 @@ static int player_set(lua_State *L)
|
||||||
plr->wavedashboost = luaL_checkinteger(L, 3);
|
plr->wavedashboost = luaL_checkinteger(L, 3);
|
||||||
else if (fastcmp(field,"overdrive"))
|
else if (fastcmp(field,"overdrive"))
|
||||||
plr->overdrive = luaL_checkinteger(L, 3);
|
plr->overdrive = luaL_checkinteger(L, 3);
|
||||||
|
else if (fastcmp(field,"overshield"))
|
||||||
|
plr->overshield = luaL_checkinteger(L, 3);
|
||||||
else if (fastcmp(field,"wavedashpower"))
|
else if (fastcmp(field,"wavedashpower"))
|
||||||
plr->wavedashpower = luaL_checkinteger(L, 3);
|
plr->wavedashpower = luaL_checkinteger(L, 3);
|
||||||
else if (fastcmp(field,"overdrivepower"))
|
else if (fastcmp(field,"overdrivepower"))
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@ void Obj_AmpsThink (mobj_t *amps)
|
||||||
amps->momy += FixedMul(FINESINE(vang>>ANGLETOFINESHIFT), FixedMul(FINESINE(hang>>ANGLETOFINESHIFT), speed));
|
amps->momy += FixedMul(FINESINE(vang>>ANGLETOFINESHIFT), FixedMul(FINESINE(hang>>ANGLETOFINESHIFT), speed));
|
||||||
amps->momz += FixedMul(FINECOSINE(vang>>ANGLETOFINESHIFT), speed);
|
amps->momz += FixedMul(FINECOSINE(vang>>ANGLETOFINESHIFT), speed);
|
||||||
|
|
||||||
if (dist < (120 * amps->scale) && amps->extravalue2 && !player->ampsounds)
|
if (dist < (120 * amps->scale) && amps->extravalue2 && !player->amppickup)
|
||||||
{
|
{
|
||||||
K_AwardPlayerAmps(player, 2);
|
K_AwardPlayerAmps(player, 2);
|
||||||
P_RemoveMobj(amps);
|
P_RemoveMobj(amps);
|
||||||
|
|
@ -116,12 +116,12 @@ void Obj_AmpRingThink (mobj_t *amps)
|
||||||
amps->angle = amps->target->angle + (ANG15/2 * leveltime);
|
amps->angle = amps->target->angle + (ANG15/2 * leveltime);
|
||||||
amps->renderflags |= RF_ADD|RF_PAPERSPRITE|RF_FULLBRIGHT;
|
amps->renderflags |= RF_ADD|RF_PAPERSPRITE|RF_FULLBRIGHT;
|
||||||
|
|
||||||
if (player->overdrive)
|
if (player->overshield)
|
||||||
amps->renderflags &= ~RF_DONTDRAW;
|
amps->renderflags &= ~RF_DONTDRAW;
|
||||||
else
|
else
|
||||||
amps->renderflags |= RF_DONTDRAW;
|
amps->renderflags |= RF_DONTDRAW;
|
||||||
|
|
||||||
if (player->overdrive < 35 && player->overdrive % 2)
|
if (player->overshield < 35 && player->overshield % 2)
|
||||||
amps->renderflags |= RF_DONTDRAW;
|
amps->renderflags |= RF_DONTDRAW;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3006,7 +3006,7 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
|
||||||
sfx = sfx_s3k3a;
|
sfx = sfx_s3k3a;
|
||||||
clash = true;
|
clash = true;
|
||||||
}
|
}
|
||||||
else if (player->overdrive &&
|
else if (player->overshield &&
|
||||||
(type != DMG_EXPLODE || inflictor->type != MT_SPBEXPLOSION || !inflictor->movefactor))
|
(type != DMG_EXPLODE || inflictor->type != MT_SPBEXPLOSION || !inflictor->movefactor))
|
||||||
{
|
{
|
||||||
clash = true;
|
clash = true;
|
||||||
|
|
|
||||||
|
|
@ -582,6 +582,7 @@ static void P_NetArchivePlayers(savebuffer_t *save)
|
||||||
WRITEUINT8(save->p, players[i].wavedashdelay);
|
WRITEUINT8(save->p, players[i].wavedashdelay);
|
||||||
WRITEUINT16(save->p, players[i].wavedashboost);
|
WRITEUINT16(save->p, players[i].wavedashboost);
|
||||||
WRITEUINT16(save->p, players[i].overdrive);
|
WRITEUINT16(save->p, players[i].overdrive);
|
||||||
|
WRITEUINT16(save->p, players[i].overshield);
|
||||||
WRITEFIXED(save->p, players[i].wavedashpower);
|
WRITEFIXED(save->p, players[i].wavedashpower);
|
||||||
WRITEFIXED(save->p, players[i].overdrivepower);
|
WRITEFIXED(save->p, players[i].overdrivepower);
|
||||||
WRITEUINT16(save->p, players[i].speedpunt);
|
WRITEUINT16(save->p, players[i].speedpunt);
|
||||||
|
|
@ -630,7 +631,7 @@ static void P_NetArchivePlayers(savebuffer_t *save)
|
||||||
WRITEUINT8(save->p, players[i].ringboxaward);
|
WRITEUINT8(save->p, players[i].ringboxaward);
|
||||||
|
|
||||||
WRITEUINT8(save->p, players[i].amps);
|
WRITEUINT8(save->p, players[i].amps);
|
||||||
WRITEUINT8(save->p, players[i].ampsounds);
|
WRITEUINT8(save->p, players[i].amppickup);
|
||||||
WRITEUINT8(save->p, players[i].ampspending);
|
WRITEUINT8(save->p, players[i].ampspending);
|
||||||
|
|
||||||
WRITEUINT8(save->p, players[i].itemflags);
|
WRITEUINT8(save->p, players[i].itemflags);
|
||||||
|
|
@ -1192,6 +1193,7 @@ static void P_NetUnArchivePlayers(savebuffer_t *save)
|
||||||
players[i].wavedashdelay = READUINT8(save->p);
|
players[i].wavedashdelay = READUINT8(save->p);
|
||||||
players[i].wavedashboost = READUINT16(save->p);
|
players[i].wavedashboost = READUINT16(save->p);
|
||||||
players[i].overdrive = READUINT16(save->p);
|
players[i].overdrive = READUINT16(save->p);
|
||||||
|
players[i].overshield = READUINT16(save->p);
|
||||||
players[i].wavedashpower = READFIXED(save->p);
|
players[i].wavedashpower = READFIXED(save->p);
|
||||||
players[i].overdrivepower = READFIXED(save->p);
|
players[i].overdrivepower = READFIXED(save->p);
|
||||||
players[i].speedpunt = READUINT16(save->p);
|
players[i].speedpunt = READUINT16(save->p);
|
||||||
|
|
@ -1240,7 +1242,7 @@ static void P_NetUnArchivePlayers(savebuffer_t *save)
|
||||||
players[i].ringboxaward = READUINT8(save->p);
|
players[i].ringboxaward = READUINT8(save->p);
|
||||||
|
|
||||||
players[i].amps =READUINT8(save->p);
|
players[i].amps =READUINT8(save->p);
|
||||||
players[i].ampsounds =READUINT8(save->p);
|
players[i].amppickup =READUINT8(save->p);
|
||||||
players[i].ampspending =READUINT8(save->p);
|
players[i].ampspending =READUINT8(save->p);
|
||||||
|
|
||||||
players[i].itemflags = READUINT8(save->p);
|
players[i].itemflags = READUINT8(save->p);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue