Skip to content

Commit

Permalink
Merge branch 'pitch_override' into cutting-edge
Browse files Browse the repository at this point in the history
  • Loading branch information
khanghugo committed Apr 6, 2024
2 parents 74c9868 + 8910d2f commit cf753b2
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 0 deletions.
4 changes: 4 additions & 0 deletions BunnymodXT/modules/ClientDLL.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1505,6 +1505,10 @@ HOOK_DEF_1(ClientDLL, void, __cdecl, V_CalcRefdef, ref_params_t*, pparams)
pparams->viewangles[1] = hwDLL.RenderYawOverrides[hwDLL.RenderYawOverrideIndex - 1];
}

if (hwDLL.RenderPitchOverrideIndex != 0 && hwDLL.RenderPitchOverrideIndex <= hwDLL.RenderPitchOverrides.size()) {
pparams->viewangles[0] = hwDLL.RenderPitchOverrides[hwDLL.RenderPitchOverrideIndex - 1];
}

float forward_offset = CVars::bxt_viewmodel_ofs_forward.GetFloat();
float right_offset = CVars::bxt_viewmodel_ofs_right.GetFloat();
float up_offset = CVars::bxt_viewmodel_ofs_up.GetFloat();
Expand Down
39 changes: 39 additions & 0 deletions BunnymodXT/modules/HwDLL.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -814,6 +814,10 @@ void HwDLL::Clear()
TargetYawOverrides.clear();
RenderYawOverrideIndex = 0;
RenderYawOverrides.clear();
PitchOverrideIndex = 0;
PitchOverrides.clear();
RenderPitchOverrideIndex = 0;
RenderPitchOverrides.clear();
lastLoadedMap.clear();
isOverridingCamera = false;
isOffsettingCamera = false;
Expand Down Expand Up @@ -2557,6 +2561,10 @@ void HwDLL::ResetTASPlaybackState()
TargetYawOverrides.clear();
RenderYawOverrideIndex = 0;
RenderYawOverrides.clear();
PitchOverrideIndex = 0;
PitchOverrides.clear();
RenderPitchOverrideIndex = 0;
RenderPitchOverrides.clear();
}

void HwDLL::StartTASPlayback()
Expand Down Expand Up @@ -5607,6 +5615,8 @@ void HwDLL::SetTASEditorMode(TASEditorMode mode)
}
RenderYawOverrides.clear();
RenderYawOverrideIndex = 0;
RenderPitchOverrides.clear();
RenderPitchOverrideIndex = 0;

assert(movementFrameCounter >= 1);
tas_editor_input.first_frame_counter_value = movementFrameCounter - 1;
Expand Down Expand Up @@ -6135,6 +6145,25 @@ void HwDLL::InsertCommands()
RenderYawOverrideIndex += 1;
}

if (PitchOverrideIndex == PitchOverrides.size()) {
PitchOverrides.clear();
PitchOverrideIndex = 0;
}

if (PitchOverrides.empty()) {
StrafeState.PitchOverrideActive = false;
} else {
StrafeState.PitchOverride = PitchOverrides[PitchOverrideIndex++];
StrafeState.PitchOverrideActive = true;
}

if (RenderPitchOverrideIndex == RenderPitchOverrides.size()) {
RenderPitchOverrides.clear();
RenderPitchOverrideIndex = 0;
} else {
RenderPitchOverrideIndex += 1;
}

f.ResetAutofuncs();

resulting_frame.SetPitch(p.Pitch);
Expand Down Expand Up @@ -6555,6 +6584,14 @@ void HwDLL::InsertCommands()
} else if (!f.RenderYawOverride.empty()) {
RenderYawOverrides = f.RenderYawOverride;
RenderYawOverrideIndex = 0;
} else if (!f.PitchOverride.empty()) {
PitchOverrides = f.PitchOverride;
StrafeState.PitchOverrideActive = true;
StrafeState.PitchOverride = PitchOverrides[0];
PitchOverrideIndex = 1;
} else if (!f.RenderPitchOverride.empty()) {
RenderPitchOverrides = f.RenderPitchOverride;
RenderPitchOverrideIndex = 0;
}

currentFramebulk++;
Expand Down Expand Up @@ -6587,6 +6624,8 @@ void HwDLL::InsertCommands()
if (resetState == ResetState::NORMAL) {
RenderYawOverrides.clear();
RenderYawOverrideIndex = 0;
RenderPitchOverrides.clear();
RenderPitchOverrideIndex = 0;

if (bxt_on_tas_playback_frame) {
// We don't use the return value here because we stop anyway.
Expand Down
4 changes: 4 additions & 0 deletions BunnymodXT/modules/HwDLL.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -670,10 +670,14 @@ class HwDLL : public IHookableNameFilterOrdered
unsigned LoadingSeedCounter;
size_t TargetYawOverrideIndex;
std::vector<float> TargetYawOverrides;
size_t PitchOverrideIndex;
std::vector<float> PitchOverrides;
float sensitivityToRestore = 0;
public:
size_t RenderYawOverrideIndex;
std::vector<float> RenderYawOverrides;
size_t RenderPitchOverrideIndex;
std::vector<float> RenderPitchOverrides;
bool ButtonsPresent;
HLTAS::StrafeButtons Buttons;
HLStrafe::CurrentState StrafeState;
Expand Down

0 comments on commit cf753b2

Please sign in to comment.