Commit 0c3b76c5 authored by argon.sun's avatar argon.sun

bug fix

parent c2b1f418
......@@ -930,10 +930,9 @@ void Game::Analyze(void* pd, char* engbuf) {
break;
}
case MSG_MISSED_EFFECT: {
count = NetManager::ReadInt8(pbuf);
player = pbuf[0];
pbuf += 8;
// mainGame->SendGameMessage(0, offset, pbuf - offset);
// mainGame->SendGameMessage(1, offset, pbuf - offset);
mainGame->SendGameMessage(player, offset, pbuf - offset);
break;
}
case MSG_TOSS_COIN: {
......@@ -2860,12 +2859,11 @@ bool Game::SolveMessage(void* pd, char* msg, int len) {
return true;
}
case MSG_MISSED_EFFECT: {
int count = NetManager::ReadInt8(pbuf);
int code, desc;
for (int i = 0; i < count; ++i) {
code = NetManager::ReadInt32(pbuf);
desc = NetManager::ReadInt32(pbuf);
}
NetManager::ReadInt32(pbuf);
int code = NetManager::ReadInt32(pbuf);
myswprintf(textBuffer, L"[%ls]错过时点", mainGame->dataManager.GetName(code));
mainGame->lstLog->addItem(textBuffer);
mainGame->logParam.push_back(code);
return true;
}
case MSG_TOSS_COIN: {
......@@ -3550,9 +3548,8 @@ bool Game::AnalyzeReplay(void* pd, char* engbuf) {
break;
}
case MSG_MISSED_EFFECT: {
count = NetManager::ReadInt8(pbuf);
pbuf += 8;
// SolveMessage(pd, offset, pbuf - offset);
SolveMessage(pd, offset, pbuf - offset);
break;
}
case MSG_TOSS_COIN: {
......
......@@ -3756,23 +3756,15 @@ int32 field::solve_chain(uint16 step, uint32 skip_new) {
return TRUE;
}
int32 field::break_effect() {
chain_list::iterator chit, rm;
chain_list missed;
core.hint_timing[0] = 0;
core.hint_timing[1] = 0;
for (chit = core.new_ochain.begin(); chit != core.new_ochain.end();) {
rm = chit++;
for (auto chit = core.new_ochain.begin(); chit != core.new_ochain.end();) {
auto rm = chit++;
if (!(rm->triggering_effect->flag & EFFECT_FLAG_DELAY)) {
missed.push_back(*rm);
core.new_ochain.erase(rm);
}
}
if(missed.size()) {
pduel->write_buffer8(MSG_MISSED_EFFECT);
pduel->write_buffer8(missed.size());
for(chit = missed.begin(); chit != missed.end(); ++chit) {
pduel->write_buffer32(chit->triggering_effect->handler->data.code);
pduel->write_buffer32(chit->triggering_effect->description);
pduel->write_buffer32(rm->triggering_effect->handler->get_info_location());
pduel->write_buffer32(rm->triggering_effect->handler->data.code);
core.new_ochain.erase(rm);
}
}
core.used_event.splice(core.used_event.end(), core.instant_event);
......
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