diff --git a/Source/msg.cpp b/Source/msg.cpp index aeff6747a..3b74c85ab 100644 --- a/Source/msg.cpp +++ b/Source/msg.cpp @@ -271,39 +271,33 @@ BYTE *__fastcall DeltaExportMonster(BYTE *dst, DMonsterStr *src) BYTE *__fastcall DeltaExportJunk(BYTE *dst) { - BYTE *v1; // ebx - DJunk *v2; // edi - MultiQuests *v3; // esi - unsigned char *v4; // edi - int *v5; // ebp - - v1 = dst; - v2 = &sgJunk; - v3 = sgJunk.quests; - do { - if (v2->portal[0].x == LOBYTE(-1)) { - *v1++ = -1; + int i; + MultiQuests *mq; + DPortal *pD; + + for (i = 0; i < MAXPORTAL; i++) { + pD = &sgJunk.portal[i]; + if (pD->x == 0xFF) { + *dst = 0xFF; + dst++; } else { - memcpy(v1, v2, 5u); - v1 += 5; + memcpy(dst, pD, sizeof(*pD)); + dst += sizeof(*pD); } - v2 = (DJunk *)((char *)v2 + 5); - } while ((signed int)v2 < (signed int)sgJunk.quests); - v4 = &quests[0]._qactive; - v5 = &questlist[0]._qflags; - do { - if (*(_BYTE *)v5 & 1) { - v3->qlog = v4[18]; - v3->qstate = *v4; - v3->qvar1 = v4[13]; - memcpy(v1, v3, 3u); - v1 += 3; - ++v3; + } + + for (i = 0; i < MAXQUESTS; i++) { + if (questlist[i]._qflags & 1) { + mq = &sgJunk.quests[i]; + mq->qlog = quests[i]._qlog; + mq->qstate = quests[i]._qactive; + mq->qvar1 = quests[i]._qvar1; + memcpy(dst, mq, sizeof(*mq)); + dst += sizeof(*mq); } - v5 += 5; - v4 += 24; - } while ((signed int)v5 < (signed int)&questlist[16]._qflags); - return v1; + } + + return dst; } int __fastcall msg_comp_level(BYTE *buffer, BYTE *end)