Batch #1630 by eAthena: 0 byte-identical, 5 confirmed by peer review. - fn_17000 WindowReplayRecorder::RecordDrop: logic confirmed by peer review - fn_17001 WindowReplayRecorder::RecordData: logic confirmed by peer review - fn_17002 WindowReplayRecorder::RecordValues: logic confirmed by peer review - fn_17003 WindowReplayRecorder::RecordText: logic confirmed by peer review - fn_19331 Replay::RecordPacket: logic confirmed by peer review Reviewed-by: ragnarok-clanker
49 lines
1.3 KiB
C++
49 lines
1.3 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 RecordText(int event, const char* text);
|
|
};
|
|
|
|
#endif
|