Auto spinup fix

This commit is contained in:
LightCat 2018-08-18 21:21:07 +02:00
parent 60d437b47d
commit eb3d6452ba
2 changed files with 19 additions and 27 deletions

View File

@ -162,7 +162,22 @@ void CreateMove()
if (!g_pLocalPlayer->bZoomed && !(current_user_cmd->buttons & IN_ATTACK)) if (!g_pLocalPlayer->bZoomed && !(current_user_cmd->buttons & IN_ATTACK))
return; return;
} }
// Minigun spun up handler
if (g_pLocalPlayer->weapon()->m_iClassID() == CL_CLASS(CTFMinigun))
{
int weapon_state =
CE_INT(g_pLocalPlayer->weapon(), netvar.iWeaponState);
// If user setting for autospin isnt true, then we check if minigun
// is already zoomed
if ((weapon_state == MinigunState_t::AC_STATE_IDLE ||
weapon_state == MinigunState_t::AC_STATE_STARTFIRING) &&
!auto_spin_up)
return;
if (auto_spin_up)
current_user_cmd->buttons |= IN_ATTACK2;
if (!(current_user_cmd->buttons & (IN_ATTACK2 | IN_ATTACK)))
return;
}
if (!g_IEntityList->GetClientEntity(target_entity->m_IDX)) if (!g_IEntityList->GetClientEntity(target_entity->m_IDX))
return; return;
if (!target_entity->hitboxes.GetHitbox( if (!target_entity->hitboxes.GetHitbox(
@ -307,29 +322,6 @@ bool ShouldAim()
return false; return false;
} }
} }
// Minigun spun up handler
if (g_pLocalPlayer->weapon()->m_iClassID() == CL_CLASS(CTFMinigun))
{
int weapon_state =
CE_INT(g_pLocalPlayer->weapon(), netvar.iWeaponState);
// If user setting for autospin isnt true, then we check if minigun
// is already zoomed
if ((weapon_state == MinigunState_t::AC_STATE_IDLE ||
weapon_state == MinigunState_t::AC_STATE_STARTFIRING) &&
!auto_spin_up)
{
return false;
}
if (auto_spin_up)
{
current_user_cmd->buttons |= IN_ATTACK2;
}
if (!(current_user_cmd->buttons & (IN_ATTACK2 | IN_ATTACK)))
{
return false;
}
}
} }
return true; return true;
} }

View File

@ -141,7 +141,7 @@ Timer cd2{};
Timer cd3{}; Timer cd3{};
void CreateMove() void CreateMove()
{ {
if ( !enable || !nav::Prepare()) if (!enable || !nav::Prepare())
return; return;
if (CE_BAD(LOCAL_E) || !LOCAL_E->m_bAlivePlayer()) if (CE_BAD(LOCAL_E) || !LOCAL_E->m_bAlivePlayer())
return; return;
@ -165,7 +165,7 @@ void CreateMove()
return; return;
} }
} }
if (!nav::ReadyForCommands && !spy_mode) if (!nav::ReadyForCommands && !spy_mode && !heavy_mode)
cd3.update(); cd3.update();
bool isready = (spy_mode || heavy_mode) ? 1 : nav::ReadyForCommands; bool isready = (spy_mode || heavy_mode) ? 1 : nav::ReadyForCommands;
int waittime = (spy_mode || heavy_mode) ? 100 : 5000; int waittime = (spy_mode || heavy_mode) ? 100 : 5000;
@ -184,7 +184,7 @@ void CreateMove()
int rng = rand() % sniper_spots.size(); int rng = rand() % sniper_spots.size();
random_spot = sniper_spots.at(rng); random_spot = sniper_spots.at(rng);
if (random_spot.z) if (random_spot.z)
nav::NavTo(random_spot, false); nav::NavTo(random_spot, false, true);
} }
else else
{ {