Commit 1516e326 authored by edo9300's avatar edo9300

Added ReadStream, fixed turn counter with single mode replays

parent b346701c
......@@ -240,6 +240,14 @@ bool Replay::ReadNextPacket(ReplayPacket* packet) {
ReadData((char*)&packet->data, packet->length);
return true;
}
bool Replay::ReadStream(std::vector<ReplayPacket>* stream) {
stream->clear();
ReplayPacket p;
while (ReadNextPacket(&p)) {
stream->push_back(p);
}
return !!stream->size();
}
bool Replay::ReadNextResponse(unsigned char resp[64]) {
if(pdata - replay_data >= (int)replay_size)
return false;
......
......@@ -52,6 +52,7 @@ public:
bool OpenReplay(const wchar_t* name);
static bool CheckReplay(const wchar_t* name);
bool ReadNextPacket(ReplayPacket* packet);
bool ReadStream(std::vector<ReplayPacket>* stream);
bool ReadNextResponse(unsigned char resp[64]);
void ReadName(wchar_t* data);
void ReadData(void* data, unsigned int length);
......
......@@ -61,7 +61,7 @@ int ReplayMode::ReplayThread(void* param) {
mainGame->dInfo.isFirst = true;
mainGame->dInfo.isTag = !!(rh.flag & REPLAY_TAG);
mainGame->dInfo.isSingleMode = !!(rh.flag & REPLAY_SINGLE_MODE);
mainGame->dInfo.lua64 = true;
mainGame->dInfo.lua64 = !!(rh.flag & REPLAY_LUA64);
mainGame->dInfo.tag_player[0] = false;
mainGame->dInfo.tag_player[1] = false;
if (mainGame->dInfo.isTag) {
......@@ -78,10 +78,9 @@ int ReplayMode::ReplayThread(void* param) {
mainGame->dInfo.duel_field = opt & 0xff;
mainGame->dInfo.extraval = (opt >> 8);
mainGame->SetPhaseButtons();
ReplayPacket p;
current_stream.clear();
while (cur_replay.ReadNextPacket(&p)) {
current_stream.push_back(p);
if(!cur_replay.ReadStream(&current_stream)) {
EndDuel();
return 0;
}
mainGame->dInfo.isStarted = true;
mainGame->dInfo.isReplay = true;
......@@ -156,6 +155,7 @@ void ReplayMode::Restart(bool refresh) {
cur_replay.Rewind();
}
mainGame->dInfo.isStarted = false;
mainGame->dInfo.turn = 0;
mainGame->dField.Clear();
mainGame->dInfo.tag_player[0] = false;
mainGame->dInfo.tag_player[1] = false;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment