Skip to content
This repository has been archived by the owner on Oct 10, 2024. It is now read-only.

Commit

Permalink
- Console now uses liveReplayEvents instead of rawEvents
Browse files Browse the repository at this point in the history
- Replay Reset won't reset rawEvents anymore
- Round End will delete rawEvents now
  • Loading branch information
v0idp committed Feb 16, 2022
1 parent 860c125 commit f3d4b2e
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 44 deletions.
79 changes: 41 additions & 38 deletions gui/console.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,51 +57,54 @@ namespace ConsoleGui
ImGui::EndChild();
ImGui::Separator();
ImGui::BeginChild("console#scroll", ImVec2(511, 270), true, ImGuiWindowFlags_AlwaysVerticalScrollbar);
for (int i = State.rawEvents.size() - 1; i >= 0; i--) {
EventInterface* evt = State.rawEvents[i].get();
if (evt == NULL)
{
STREAM_ERROR("State.rawEvents[" << i << "] was NULL (rawEvents.size(): " << State.rawEvents.size() << ")");
continue;
}
if (evt->getType() == EVENT_WALK)
continue;
size_t i = State.liveReplayEvents.size() - 1;
if (i >= 0) {
for (std::vector<std::unique_ptr<EventInterface>>::reverse_iterator rit = State.liveReplayEvents.rbegin(); rit != State.liveReplayEvents.rend(); ++rit, --i) {
EventInterface* evt = (*rit).get();
if (evt == NULL)
{
STREAM_ERROR("State.rawEvents[" << i << "] was NULL (rawEvents.size(): " << State.liveReplayEvents.size() << ")");
continue;
}
if (evt->getType() == EVENT_WALK)
continue;

bool typeFound = false, anyTypeFilterSelected = false;
for (int n = 0; n < ConsoleGui::event_filter.size(); n++) {
if (ConsoleGui::event_filter[n].second
&& (EVENT_TYPES)n == evt->getType()) {
typeFound = true;
anyTypeFilterSelected = true;
break;
bool typeFound = false, anyTypeFilterSelected = false;
for (int n = 0; n < ConsoleGui::event_filter.size(); n++) {
if (ConsoleGui::event_filter[n].second
&& (EVENT_TYPES)n == evt->getType()) {
typeFound = true;
anyTypeFilterSelected = true;
break;
}
else if (ConsoleGui::event_filter[n].second)
anyTypeFilterSelected = true;
}
else if (ConsoleGui::event_filter[n].second)
anyTypeFilterSelected = true;
}

if (!typeFound && anyTypeFilterSelected)
continue;
if (!typeFound && anyTypeFilterSelected)
continue;

bool playerFound = false, anyPlayerFilterSelected = false;
for (auto player : ConsoleGui::player_filter) {
if (player.second
&& player.first.has_value()
&& player.first.get_PlayerId() == evt->getSource().playerId)
{
playerFound = true;
anyPlayerFilterSelected = true;
break;
bool playerFound = false, anyPlayerFilterSelected = false;
for (auto player : ConsoleGui::player_filter) {
if (player.second
&& player.first.has_value()
&& player.first.get_PlayerId() == evt->getSource().playerId)
{
playerFound = true;
anyPlayerFilterSelected = true;
break;
}
else if (player.second) // if no player was selected we want to make sure that any filter was set in the first place before we continue
anyPlayerFilterSelected = true;
}
else if (player.second) // if no player was selected we want to make sure that any filter was set in the first place before we continue
anyPlayerFilterSelected = true;
}

if (!playerFound && anyPlayerFilterSelected)
continue;
if (!playerFound && anyPlayerFilterSelected)
continue;

evt->ColoredEventOutput();
ImGui::SameLine();
evt->Output();
evt->ColoredEventOutput();
ImGui::SameLine();
evt->Output();
}
}
ImGui::EndChild();
ImGui::End();
Expand Down
5 changes: 1 addition & 4 deletions gui/replay.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,8 @@ namespace Replay
}
}

void Reset(bool keepRawEvents /*= false*/)
void Reset()
{
for (auto& e : State.rawEvents)
e.reset();
State.rawEvents.clear();
for (auto& e : State.liveReplayEvents)
e.reset();
State.liveReplayEvents.clear();
Expand Down
2 changes: 1 addition & 1 deletion gui/replay.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ namespace Replay
{
extern std::mutex replayEventMutex;
void Init();
void Reset(bool keepRawEvents = false);
void Reset();
void Render();

struct WalkEvent_LineData
Expand Down
4 changes: 4 additions & 0 deletions hooks/InnerNetClient.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,10 @@ void dInnerNetClient_StartEndGame(InnerNetClient* __this, MethodInfo* method) {

Replay::Reset();

for (auto& e : State.rawEvents)
e.reset();
State.rawEvents.clear();

State.RoundEnd = std::chrono::system_clock::now();

InnerNetClient_StartEndGame(__this, method);
Expand Down
2 changes: 1 addition & 1 deletion hooks/MeetingHud.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ void dMeetingHud_Close(MeetingHud* __this, MethodInfo* method) {

if (State.Replay_ClearAfterMeeting)
{
Replay::Reset(true);
Replay::Reset();
}

MeetingHud_Close(__this, method);
Expand Down

0 comments on commit f3d4b2e

Please sign in to comment.