Merge remote-tracking branch 'origin/fixnospread' into octopus-merge
This commit is contained in:
commit
d89922b7d0
@ -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
|
||||
|
@ -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,
|
||||
|
Reference in New Issue
Block a user