Merge remote-tracking branch 'origin/fixnospread' into octopus-merge

This commit is contained in:
TotallyNotElite 2020-12-28 12:35:13 +01:00
commit d89922b7d0
2 changed files with 27 additions and 9 deletions

View File

@ -17,5 +17,15 @@ public:
typedef Vector (*fn_t)(IClientEntity *);
return vfunc<fn_t>(self, offsets::PlatformOffset(194, offsets::undefined, 194), 0)(self);
}
inline static Vector &GetEyeAngles(IClientEntity *self)
{
typedef Vector &(*fn_t)(IClientEntity *);
return vfunc<fn_t>(self, offsets::PlatformOffset(195, offsets::undefined, 195), 0)(self);
}
inline static Vector &GetLocalEyeAngles(IClientEntity *self)
{
typedef Vector &(*fn_t)(IClientEntity *);
return vfunc<fn_t>(self, offsets::PlatformOffset(196, offsets::undefined, 196), 0)(self);
}
};
} // namespace re

View File

@ -132,18 +132,19 @@ void CreateMove()
{
case CL_CLASS(CTFSyringeGun):
{
if (g_pLocalPlayer->v_OrigViewangles == current_user_cmd->viewangles)
g_pLocalPlayer->bUseSilentAngles = true;
float spread = 1.5f;
current_user_cmd->viewangles.x -= RandomFloat(-spread, spread);
current_user_cmd->viewangles.y -= RandomFloat(-spread, spread);
fClampAngle(current_user_cmd->viewangles);
g_pLocalPlayer->bUseSilentAngles = true;
break;
}
case CL_CLASS(CTFCompoundBow):
{
Vector view = current_user_cmd->viewangles;
if (g_pLocalPlayer->bUseSilentAngles)
view = g_pLocalPlayer->v_OrigViewangles;
Vector view = re::C_BasePlayer::GetLocalEyeAngles(RAW_ENT(LOCAL_E));
if (g_pLocalPlayer->v_OrigViewangles == current_user_cmd->viewangles)
g_pLocalPlayer->bUseSilentAngles = true;
Vector spread;
Vector src;
@ -152,20 +153,18 @@ void CreateMove()
spread -= view;
current_user_cmd->viewangles -= spread;
g_pLocalPlayer->bUseSilentAngles = true;
fClampAngle(current_user_cmd->viewangles);
break;
}
default:
Vector view = current_user_cmd->viewangles;
if (g_pLocalPlayer->bUseSilentAngles)
view = g_pLocalPlayer->v_OrigViewangles;
Vector view = re::C_BasePlayer::GetLocalEyeAngles(RAW_ENT(LOCAL_E));
if (g_pLocalPlayer->v_OrigViewangles == current_user_cmd->viewangles)
g_pLocalPlayer->bUseSilentAngles = true;
Vector spread = re::C_TFWeaponBase::GetSpreadAngles(RAW_ENT(LOCAL_W));
spread -= view;
current_user_cmd->viewangles -= spread;
g_pLocalPlayer->bUseSilentAngles = true;
fClampAngle(current_user_cmd->viewangles);
break;
}
@ -514,6 +513,7 @@ bool DispatchUserMessage(bf_read *buf, int type)
last_was_player_perf = true;
should_call_original = false;
bad_mantissa = true;
no_spread_synced = NOT_SYNCED;
return should_call_original;
}
@ -892,6 +892,14 @@ static InitRoutine init_bulletnospread([]() {
// Register Event callbacks
EC::Register(EC::CreateMove, CreateMove2, "nospread_createmove2");
EC::Register(EC::CreateMoveWarp, CreateMove2, "nospread_createmove2w");
bullet.installChangeCallback([](settings::VariableBase<bool> &, bool after) {
if (!after)
{
is_syncing = false;
no_spread_synced = NOT_SYNCED;
}
});
#if ENABLE_VISUALS
EC::Register(
EC::Draw,