Browse Source

🐛 Fix overflow in Qtalklist

pull/1164/head
Anders Jenbo 5 years ago
parent
commit
37bdeb74db
  1. 18
      Source/stores.cpp
  2. 13
      Source/towners.cpp

18
Source/stores.cpp

@ -18,7 +18,7 @@ int stextshold;
ItemStruct premiumitem[SMITH_PREMIUM_ITEMS];
BYTE *pSTextBoxCels;
int premiumlevel;
int talker;
_talker_id talker;
STextStruct stext[STORE_LINES];
char stextsize;
int stextsmax;
@ -1814,7 +1814,7 @@ void S_SmithEnter()
{
switch (stextsel) {
case 10:
talker = 0;
talker = TOWN_SMITH;
stextlhold = 10;
stextshold = STORE_SMITH;
gossipstart = TEXT_GRISWOLD2;
@ -2211,7 +2211,7 @@ void S_WitchEnter()
switch (stextsel) {
case 12:
stextlhold = 12;
talker = 6;
talker = TOWN_WITCH;
stextshold = STORE_WITCH;
gossipstart = TEXT_ADRIA2;
gossipend = TEXT_ADRIA13;
@ -2370,7 +2370,7 @@ void S_BoyEnter()
StartStore(STORE_BBOY);
}
} else if (stextsel == 8 && !boyitem.isEmpty() || stextsel == 12 && boyitem.isEmpty()) {
talker = 8;
talker = TOWN_PEGBOY;
stextshold = STORE_BOY;
stextlhold = stextsel;
gossipstart = TEXT_WIRT2;
@ -2547,7 +2547,7 @@ void S_HealerEnter()
switch (stextsel) {
case 12:
stextlhold = 12;
talker = 1;
talker = TOWN_HEALER;
stextshold = STORE_HEALER;
gossipstart = TEXT_PEPIN2;
gossipend = TEXT_PEPIN11;
@ -2602,7 +2602,7 @@ void S_StoryEnter()
switch (stextsel) {
case 12:
stextlhold = 12;
talker = 4;
talker = TOWN_STORY;
stextshold = STORE_STORY;
gossipstart = TEXT_STORY2;
gossipend = TEXT_STORY11;
@ -2682,7 +2682,7 @@ void S_TavernEnter()
switch (stextsel) {
case 12:
stextlhold = 12;
talker = 3;
talker = TOWN_TAVERN;
stextshold = STORE_TAVERN;
gossipstart = TEXT_OGDEN2;
gossipend = TEXT_OGDEN10;
@ -2699,7 +2699,7 @@ void S_BarmaidEnter()
switch (stextsel) {
case 12:
stextlhold = 12;
talker = 7;
talker = TOWN_BMAID;
stextshold = STORE_BARMAID;
gossipstart = TEXT_GILLIAN2;
gossipend = TEXT_GILLIAN10;
@ -2716,7 +2716,7 @@ void S_DrunkEnter()
switch (stextsel) {
case 12:
stextlhold = 12;
talker = 5;
talker = TOWN_DRUNK;
stextshold = STORE_DRUNK;
gossipstart = TEXT_FARNHAM2;
gossipend = TEXT_FARNHAM13;

13
Source/towners.cpp

@ -11,7 +11,6 @@ BOOL storeflag;
int sgnCowMsg;
int numtowners;
DWORD sgdwCowClicks;
BOOL boyloadflag;
BYTE *pCowCels;
TownerStruct towner[NUM_TOWNERS];
@ -215,14 +214,10 @@ void InitTownerInfo(int i, int w, int sel, int t, int x, int y, int ao, int tp)
void InitQstSnds(int i)
{
int j, tl;
tl = i;
if (boyloadflag)
tl++;
for (j = 0; j < MAXQUESTS; j++) {
for (int j = 0; j < MAXQUESTS; j++) {
towner[i].qsts[j]._qsttype = quests[j]._qtype;
towner[i].qsts[j]._qstmsg = Qtalklist[tl][j];
if (Qtalklist[tl][j] != TEXT_NONE)
towner[i].qsts[j]._qstmsg = Qtalklist[i][j];
if (Qtalklist[i][j] != TEXT_NONE)
towner[i].qsts[j]._qstmsgact = TRUE;
else
towner[i].qsts[j]._qstmsgact = FALSE;
@ -315,7 +310,6 @@ void InitBoy()
{
int i;
boyloadflag = TRUE;
InitTownerInfo(numtowners, 96, TRUE, TOWN_PEGBOY, 11, 53, -1, 10);
InitQstSnds(numtowners);
towner[numtowners]._tNData = LoadFileInMem("Towners\\TownBoy\\PegKid1.CEL", NULL);
@ -469,7 +463,6 @@ void InitGirl()
void InitTowners()
{
numtowners = 0;
boyloadflag = FALSE;
InitSmith();
InitHealer();
if (quests[Q_BUTCHER]._qactive != QUEST_NOTAVAIL && quests[Q_BUTCHER]._qactive != QUEST_DONE)

Loading…
Cancel
Save