Item Throw distance/height experimentation

This commit is contained in:
Sryder13 2017-10-25 14:56:06 +01:00
parent b9f6a91c37
commit a00123e663

View file

@ -1920,13 +1920,13 @@ static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map
switch (cv_kartcc.value) switch (cv_kartcc.value)
{ {
case 50: case 50:
PROJSPEED = 85*FRACUNIT; // Avg Speed is 34 PROJSPEED = 40*FRACUNIT; // Avg Speed is 34
break; break;
case 150: case 150:
PROJSPEED = 120*FRACUNIT; // Avg Speed is 48 PROJSPEED = 60*FRACUNIT; // Avg Speed is 48
break; break;
default: default:
PROJSPEED = 102*FRACUNIT+FRACUNIT/2; // Avg Speed is 41 PROJSPEED = 50*FRACUNIT; // Avg Speed is 41
break; break;
} }
@ -2029,7 +2029,7 @@ static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map
if (dir == 1 || dir == 2) if (dir == 1 || dir == 2)
{ {
// Shoot forward // Shoot forward
mo = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z + 80*FRACUNIT, mapthing); mo = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z + player->mo->height/2, mapthing);
mo->threshold = 10; mo->threshold = 10;
@ -2043,22 +2043,19 @@ static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map
INT32 HEIGHT; INT32 HEIGHT;
if (dir == 2) if (dir == 2)
HEIGHT = 16*FRACUNIT + player->mo->momz; HEIGHT = 30*FRACUNIT + player->mo->momz;
else else
HEIGHT = 8*FRACUNIT + player->mo->momz; HEIGHT = 20*FRACUNIT + player->mo->momz;
if (HEIGHT > 64*FRACUNIT) mo->momx = player->mo->momx + FixedMul(FINECOSINE(fa), PROJSPEED);
HEIGHT = 64*FRACUNIT; mo->momy = player->mo->momy + FixedMul(FINESINE(fa), PROJSPEED);
mo->momx = FixedMul(FINECOSINE(fa), PROJSPEED);
mo->momy = FixedMul(FINESINE(fa), PROJSPEED);
mo->momz = HEIGHT; mo->momz = HEIGHT;
if (player->mo->eflags & MFE_VERTICALFLIP) if (player->mo->eflags & MFE_VERTICALFLIP)
mo->eflags |= MFE_VERTICALFLIP; mo->eflags |= MFE_VERTICALFLIP;
} }
mobj_t *throwmo = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z + 80*FRACUNIT, MT_FIREDITEM); mobj_t *throwmo = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z + player->mo->height/2, MT_FIREDITEM);
P_SetTarget(&throwmo->target, player->mo); P_SetTarget(&throwmo->target, player->mo);
throwmo->movecount = 0; // above player throwmo->movecount = 0; // above player
} }