Browse Source

Clean up PlaceUniques.

pull/100/head
Sergey Semushin 7 years ago committed by Anders Jenbo
parent
commit
661a621873
  1. 89
      Source/monster.cpp

89
Source/monster.cpp

@ -1006,69 +1006,32 @@ void InitMonsters()
void PlaceUniques()
{
int v0; // edi
int v1; // eax
UniqMonstStruct *v2; // ecx
int v3; // eax
int v4; // edx
CMonster *v5; // esi
int v6; // eax
int v7; // edx
v0 = 0;
if (UniqMonst[0].mtype != -1) {
v1 = 0;
v2 = UniqMonst;
while (UniqMonst[v1].mlevel != currlevel) {
LABEL_25:
v1 = ++v0;
v2 = &UniqMonst[v0];
if (v2->mtype == -1)
return;
}
v3 = 0;
v4 = 0;
if (nummtypes > 0) {
v5 = Monsters;
do {
if (v3)
break;
v6 = -((char)v2->mtype != (unsigned char)v5->mtype);
++v5;
v3 = v6 + 1;
++v4;
} while (v4 < nummtypes);
}
v7 = v4 - 1;
if (!v0) {
if (quests[QTYPE_GARB]._qactive)
goto LABEL_23;
v3 = 0;
}
if (v0 == 2) {
if (quests[QTYPE_ZHAR]._qactive)
goto LABEL_23;
v3 = 0;
}
if (v0 == 3) {
if (quests[QTYPE_BOL]._qactive)
goto LABEL_23;
v3 = 0;
}
if (v0 != 7) {
LABEL_20:
if (v0 == 8 && !quests[QTYPE_WARLRD]._qactive)
v3 = 0;
goto LABEL_23;
}
if (!quests[QTYPE_VEIL]._qactive) {
v3 = 0;
goto LABEL_20;
}
LABEL_23:
if (v3)
PlaceUniqueMonst(v0, v7, 8);
goto LABEL_25;
int u;
BOOL done;
int mt;
for (u = 0; UniqMonst[u].mtype != -1; u++) {
if (UniqMonst[u].mlevel != currlevel)
continue;
done = FALSE;
for (mt = 0; mt < nummtypes; mt++) {
if (done)
break;
done = (Monsters[mt].mtype == UniqMonst[u].mtype);
}
mt--;
if (u == 0 && quests[QTYPE_GARB]._qactive == 0)
done = FALSE;
if (u == 2 && quests[QTYPE_ZHAR]._qactive == 0)
done = FALSE;
if (u == 3 && quests[QTYPE_BOL]._qactive == 0)
done = FALSE;
if (u == 7 && quests[QTYPE_VEIL]._qactive == 0)
done = FALSE;
if (u == 8 && quests[QTYPE_WARLRD]._qactive == 0)
done = FALSE;
if (done)
PlaceUniqueMonst(u, mt, 8);
}
}

Loading…
Cancel
Save