diff --git a/Source/UI/Window/UIWindowMgr.cpp b/Source/UI/Window/UIWindowMgr.cpp index eb9d30f9..5a2aefac 100644 --- a/Source/UI/Window/UIWindowMgr.cpp +++ b/Source/UI/Window/UIWindowMgr.cpp @@ -2115,29 +2115,19 @@ static __forceinline std::vector MakeReplayChunk(int tag, const s std::vector UIWindowMgr::SaveReplayWindows() { std::vector data; { - std::vector chunk(6); - *reinterpret_cast(&chunk[0]) = 20000; - *reinterpret_cast(&chunk[2]) = 0; + std::vector chunk = MakeReplayMarker(20000); data.insert(data.end(), chunk.begin(), chunk.end()); } for (UIWindow* window : this->rendered) { const unsigned id = static_cast(window->geometry.id); if (id <= 10040 && this->policy[id].actions[7]) { std::vector state = window->Slot44(); - const int tag = window->geometry.id + 20100; - std::vector chunk(state.size() + 6, 0); - *reinterpret_cast(&chunk[0]) = static_cast(tag); - *reinterpret_cast(&chunk[2]) = static_cast(state.size()); - if (state.size()) { - std::memcpy(&chunk[6], state.data(), state.size()); - } + std::vector chunk = MakeReplayChunk(window->geometry.id + 20100, state); data.insert(data.end(), chunk.begin(), chunk.end()); } } { - std::vector chunk(6); - *reinterpret_cast(&chunk[0]) = 20001; - *reinterpret_cast(&chunk[2]) = 0; + std::vector chunk = MakeReplayMarker(20001); data.insert(data.end(), chunk.begin(), chunk.end()); } return data;