Browse Source

Clean up S_TalkEnter

pull/93/head
Anders Jenbo 7 years ago
parent
commit
ed98e5f71d
  1. 110
      Source/stores.cpp

110
Source/stores.cpp

@ -1418,36 +1418,36 @@ void S_StartIdShow()
void S_StartTalk() void S_StartTalk()
{ {
int s1, s2, y1, y2, y3, i; int i, tq, sn, sn2, la;
stextsize = 0; stextsize = 0;
stextscrl = FALSE; stextscrl = FALSE;
sprintf(tempstr, "Talk to %s", talkname[talker]); sprintf(tempstr, "Talk to %s", talkname[talker]);
AddSText(0, 2, 1, tempstr, COL_GOLD, 0); AddSText(0, 2, 1, tempstr, COL_GOLD, 0);
AddSLine(5); AddSLine(5);
s1 = 0; sn = 0;
for (i = 0; i < 16; i++) { for (i = 0; i < 16; i++) {
if (quests[i]._qlevel == 2 && ((DWORD *)&Qtalklist[talker])[i] != -1 && quests[i]._qlog) if (quests[i]._qlevel == 2 && ((DWORD *)&Qtalklist[talker])[i] != -1 && quests[i]._qlog)
s1++; sn++;
} }
if (s1 > 6) { if (sn > 6) {
y1 = 14 - (s1 >> 1); sn = 14 - (sn >> 1);
s2 = 1; la = 1;
} else { } else {
y1 = 15 - s1; sn = 15 - sn;
s2 = 2; la = 2;
} }
y2 = y1 - 2; sn2 = sn - 2;
for (i = 0; i < 16; i++) { for (i = 0; i < 16; i++) {
if (quests[i]._qlevel == 2 && ((DWORD *)&Qtalklist[talker])[i] != -1 && quests[i]._qlog) { if (quests[i]._qlevel == 2 && ((DWORD *)&Qtalklist[talker])[i] != -1 && quests[i]._qlog) {
AddSText(0, y1, 1, questlist[i]._qlstr, COL_WHITE, 1); AddSText(0, sn, 1, questlist[i]._qlstr, COL_WHITE, 1);
y1 += s2; sn += la;
} }
} }
AddSText(0, y2, 1, "Gossip", COL_BLUE, 1); AddSText(0, sn2, 1, "Gossip", COL_BLUE, 1);
AddSText(0, 22, 1, "Back", COL_WHITE, 1); AddSText(0, 22, 1, "Back", COL_WHITE, 1);
} }
@ -2645,69 +2645,43 @@ void S_SIDEnter()
void S_TalkEnter() void S_TalkEnter()
{ {
int v0; // edx int i, tq, sn, la;
int *v1; // edi
signed int v2; // eax
int v3; // esi
int *v4; // ecx
int v5; // esi
signed int v6; // ebp
int v8; // eax
int v9; // ebx
int v10; // ecx
if (stextsel == 22) { if (stextsel == 22) {
StartStore((unsigned char)stextshold); StartStore(stextshold);
stextsel = stextlhold; stextsel = stextlhold;
return;
}
sn = 0;
for (i = 0; i < 16; i++) {
if (quests[i]._qlevel == 2 && ((DWORD *)&Qtalklist[talker])[i] != -1 && quests[i]._qlog)
sn++;
}
if (sn > 6) {
sn = 14 - (sn >> 1);
la = 1;
} else { } else {
v0 = talker; sn = 15 - sn;
v1 = &quests[0]._qlog; la = 2;
v2 = 0; }
v3 = 0;
v4 = &quests[0]._qlog; if (stextsel == sn - 2) {
do { SetRndSeed(towner[talker]._tSeed);
if (*((_BYTE *)v4 - 18) == 2 && *((_DWORD *)&Qtalklist[0]._qinfra + v3 + 16 * talker) != -1 && *v4) tq = gossipstart + random(0, gossipend - gossipstart + 1);
++v2; InitQTextMsg(tq);
v4 += 6; return;
++v3; }
} while ((signed int)v4 < (signed int)&quests[16]._qlog);
if (v2 <= 6) { for (i = 0; i < 16; i++) {
v5 = 15 - v2; if (quests[i]._qlevel == 2 && ((DWORD *)&Qtalklist[talker])[i] != -1 && quests[i]._qlog) {
v6 = 2; if (sn == stextsel) {
} else { InitQTextMsg(((DWORD *)&Qtalklist[talker])[i]);
v5 = 14 - (v2 >> 1); }
v6 = 1; sn += la;
}
if (stextsel == v5 - 2) {
SetRndSeed(towner[talker]._tSeed);
v8 = random(0, gossipend - gossipstart + 1);
InitQTextMsg(gossipstart + v8);
} else {
v9 = 0;
do {
if (*((_BYTE *)v1 - 18) == 2) {
v10 = *((_DWORD *)&Qtalklist[0]._qinfra + v9 + 16 * v0);
if (v10 != -1) {
if (*v1) {
if (v5 == stextsel) {
InitQTextMsg(v10);
v0 = talker;
}
v5 += v6;
}
}
}
v1 += 6;
++v9;
} while ((signed int)v1 < (signed int)&quests[16]._qlog);
} }
} }
} }
// 69F110: using guessed type int stextlhold;
// 69FB38: using guessed type int talker;
// 6A4EF0: using guessed type int gossipstart;
// 6A8A28: using guessed type int stextsel;
// 6A8A30: using guessed type int gossipend;
void S_TavernEnter() void S_TavernEnter()
{ {

Loading…
Cancel
Save