rodecomp/Source/Client/ReplayPacketRecorder.h
ragnarok-clanker 72e96a0830 Decompile fn_16612 (WindowReplayRecorder::RecordWindowFlag)
Batch #5980 by superintelligence: 0 byte-identical, 1 confirmed by peer review.

- fn_16612 WindowReplayRecorder::RecordWindowFlag: logic confirmed by peer review

Peer-reviewed-by: ragnarok-clanker, eAthena
Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
2026-10-30 18:22:12 +00:00

50 lines
1.4 KiB
C++

#ifndef RAGNAROK_SOURCE_CLIENT_REPLAYPACKETRECORDER_H
#define RAGNAROK_SOURCE_CLIENT_REPLAYPACKETRECORDER_H
#include "Client/ReplayRecordOption.h"
#include <cstdint>
#include <cstdio>
#include <vector>
class PacketLengths;
struct ModeDragState;
struct ReplayPacketRecorder {
const PacketLengths& lengths;
const std::uint32_t& baseFrame;
const std::uint32_t& started;
const std::uint32_t& frame;
const std::uint32_t& key0;
const std::uint32_t& key1;
const unsigned char& recordRestricted;
std::FILE*& file;
std::uint32_t& fileOffset;
std::uint32_t& records;
std::uint32_t& cipherIndex;
std::uint32_t& cipherBase;
std::uint32_t& cipherKey;
bool Record(std::uint16_t bytes, const void* packet, int event, std::uint32_t delay);
};
struct WindowResponseRecorder {
const int& mode;
ReplayPacketRecorder& packets;
void Record(int windowId, int response, std::intptr_t b, std::intptr_t c, std::intptr_t d);
};
struct WindowReplayRecorder {
const int& windowId;
const int* policy;
const bool& restricted;
ReplayPacketRecorder& packets;
void RecordDrop(int x, int y, const ModeDragState& drag, int target);
int RecordData(std::uint16_t type, std::vector<unsigned char> data);
void RecordValues(int value, int argument1, int argument2, int argument3, int argument4);
void RecordWindowFlag(bool value);
void RecordText(int event, const char* text);
};
#endif