Browse Source

Merge branch 'master' of github.com:diasurgical/devilution

pull/256/head
Anders Jenbo 7 years ago
parent
commit
c5a9917aee
  1. 4
      Source/drlg_l2.cpp
  2. 4
      Source/drlg_l4.cpp
  3. 53
      Source/items.cpp
  4. 30
      Source/quests.cpp
  5. 4
      Source/stores.cpp
  6. 2
      Source/themes.cpp
  7. 2
      Source/town.cpp
  8. 6
      Source/towners.cpp

4
Source/drlg_l2.cpp

@ -513,13 +513,13 @@ void LoadPreL2Dungeon(char *sFileName, int vx, int vy)
void CreateL2Dungeon(DWORD rseed, int entry)
{
if (gbMaxPlayers == 1) {
if (currlevel == 7 && !quests[8]._qactive) {
if (currlevel == 7 && !quests[QTYPE_BLIND]._qactive) {
currlevel = 6;
CreateL2Dungeon(glSeedTbl[6], 4);
currlevel = 7;
}
if (currlevel == 8) {
if (!quests[8]._qactive) {
if (!quests[QTYPE_BLIND]._qactive) {
currlevel = 6;
CreateL2Dungeon(glSeedTbl[6], 4);
currlevel = 8;

4
Source/drlg_l4.cpp

@ -1756,8 +1756,8 @@ BOOL DRLG_L4PlaceMiniSet(const BYTE *miniset, int tmin, int tmax, int cx, int cy
}
if (currlevel == 15) {
quests[15]._qtx = sx + 1;
quests[15]._qty = sy + 1;
quests[QTYPE_VB]._qtx = sx + 1;
quests[QTYPE_VB]._qty = sy + 1;
}
if (setview == TRUE) {
ViewX = 2 * sx + 21;

53
Source/items.cpp

@ -697,8 +697,9 @@ void CalcPlrItemMin(int pnum)
p = &plr[pnum];
pi = p->InvList;
i = p->_pNumInv;
for (i = p->_pNumInv; i; i--) {
while (i--) {
pi->_iStatFlag = ItemMinStats(p, pi);
pi++;
}
@ -1786,27 +1787,25 @@ void GetItemBonus(int i, int idata, int minlvl, int maxlvl, int onlygood)
void SetupItem(int i)
{
int it, il;
int it;
it = ItemCAnimTbl[item[i]._iCurs];
item[i]._iAnimData = itemanims[it];
item[i]._iAnimLen = ItemAnimLs[it];
item[i]._iAnimWidth = 96;
item[i]._iAnimWidth2 = 16;
item[i]._iAnimData = itemanims[it];
il = ItemAnimLs[it];
item[i]._iAnimLen = il;
item[i]._iIdentified = FALSE;
item[i]._iPostDraw = FALSE;
if (!plr[myplr].pLvlLoad) {
item[i]._iSelFlag = 0;
il = 1;
item[i]._iAnimFrame = 1;
item[i]._iAnimFlag = TRUE;
item[i]._iSelFlag = 0;
} else {
item[i]._iAnimFrame = item[i]._iAnimLen;
item[i]._iAnimFlag = FALSE;
item[i]._iSelFlag = 1;
}
item[i]._iAnimFrame = il;
}
int RndItem(int m)
@ -1995,9 +1994,9 @@ void GetUniqueItem(int i, int uid)
if (item[i]._iMiscId == IMISC_UNIQUE)
item[i]._iSeed = uid;
item[i]._iCreateInfo |= 0x0200;
item[i]._iUid = uid;
item[i]._iMagical = ITEM_QUALITY_UNIQUE;
item[i]._iCreateInfo |= 0x0200;
}
void SpawnUnique(int uid, int x, int y)
@ -2300,8 +2299,8 @@ void RecreateEar(int ii, WORD ic, int iseed, int Id, int dur, int mdur, int ch,
tempstr[16] = '\0';
sprintf(item[ii]._iName, "Ear of %s", tempstr);
item[ii]._iCurs = ((ivalue >> 6) & 3) + 19;
item[ii]._iCreateInfo = ic;
item[ii]._ivalue = ivalue & 0x3F;
item[ii]._iCreateInfo = ic;
item[ii]._iSeed = iseed;
}
@ -2453,8 +2452,8 @@ void ProcessItems()
PlaySfxLoc(ItemDropSnds[ItemCAnimTbl[item[ii]._iCurs]], item[ii]._ix, item[ii]._iy);
if (item[ii]._iAnimFrame >= item[ii]._iAnimLen) {
item[ii]._iAnimFlag = FALSE;
item[ii]._iAnimFrame = item[ii]._iAnimLen;
item[ii]._iAnimFlag = FALSE;
item[ii]._iSelFlag = 1;
}
}
@ -3357,12 +3356,10 @@ void SortSmith()
sorted = FALSE;
while (j > 0 && !sorted) {
sorted = TRUE;
if (j > 0) {
for (k = 0; k < j; k++) {
if (smithitem[k].IDidx > smithitem[k + 1].IDidx) {
BubbleSwapItem(&smithitem[k], &smithitem[k + 1]);
sorted = FALSE;
}
for (k = 0; k < j; k++) {
if (smithitem[k].IDidx > smithitem[k + 1].IDidx) {
BubbleSwapItem(&smithitem[k], &smithitem[k + 1]);
sorted = FALSE;
}
}
j--;
@ -3538,12 +3535,10 @@ void SortWitch()
sorted = FALSE;
while (j > 3 && !sorted) {
sorted = TRUE;
if (j > 3) {
for (k = 3; k < j; k++) {
if (witchitem[k].IDidx > witchitem[k + 1].IDidx) {
BubbleSwapItem(&witchitem[k], &witchitem[k + 1]);
sorted = FALSE;
}
for (k = 3; k < j; k++) {
if (witchitem[k].IDidx > witchitem[k + 1].IDidx) {
BubbleSwapItem(&witchitem[k], &witchitem[k + 1]);
sorted = FALSE;
}
}
j--;
@ -3724,12 +3719,10 @@ void SortHealer()
sorted = FALSE;
while (j > 2 && !sorted) {
sorted = TRUE;
if (j > 2) {
for (k = 2; k < j; k++) {
if (healitem[k].IDidx > healitem[k + 1].IDidx) {
BubbleSwapItem(&healitem[k], &healitem[k + 1]);
sorted = FALSE;
}
for (k = 2; k < j; k++) {
if (healitem[k].IDidx > healitem[k + 1].IDidx) {
BubbleSwapItem(&healitem[k], &healitem[k + 1]);
sorted = FALSE;
}
}
j--;

30
Source/quests.cpp

@ -553,26 +553,26 @@ void SetReturnLvlPos()
case SL_SKELKING:
ReturnLvlX = quests[QTYPE_KING]._qtx + 1;
ReturnLvlY = quests[QTYPE_KING]._qty;
ReturnLvlT = DTYPE_CATHEDRAL;
ReturnLvl = quests[QTYPE_KING]._qlevel;
ReturnLvlT = DTYPE_CATHEDRAL;
break;
case SL_BONECHAMB:
ReturnLvlX = quests[QTYPE_BONE]._qtx + 1;
ReturnLvlY = quests[QTYPE_BONE]._qty;
ReturnLvlT = DTYPE_CATACOMBS;
ReturnLvl = quests[QTYPE_BONE]._qlevel;
ReturnLvlT = DTYPE_CATACOMBS;
break;
case SL_POISONWATER:
ReturnLvlX = quests[QTYPE_PW]._qtx;
ReturnLvlY = quests[QTYPE_PW]._qty + 1;
ReturnLvlT = DTYPE_CATHEDRAL;
ReturnLvl = quests[QTYPE_PW]._qlevel;
ReturnLvlT = DTYPE_CATHEDRAL;
break;
case SL_VILEBETRAYER:
ReturnLvlX = quests[QTYPE_VB]._qtx + 1;
ReturnLvlY = quests[QTYPE_VB]._qty - 1;
ReturnLvlT = DTYPE_HELL;
ReturnLvl = quests[QTYPE_VB]._qlevel;
ReturnLvlT = DTYPE_HELL;
break;
}
}
@ -661,17 +661,17 @@ void ResyncQuests()
}
}
if (currlevel == quests[QTYPE_BLKM]._qlevel) {
if (quests[QTYPE_BLKM]._qactive == 1) {
if (!quests[QTYPE_BLKM]._qvar1) {
SpawnQuestItem(IDI_FUNGALTM, 0, 0, 5, 1);
quests[QTYPE_BLKM]._qvar1 = QS_TOMESPAWNED;
}
} else if (quests[QTYPE_BLKM]._qactive == 2) {
if (quests[QTYPE_BLKM]._qvar1 >= QS_MUSHGIVEN) {
Qtalklist[TOWN_WITCH]._qblkm = -1;
Qtalklist[TOWN_HEALER]._qblkm = QUEST_MUSH3;
} else if (quests[QTYPE_BLKM]._qvar1 >= QS_BRAINGIVEN) {
Qtalklist[TOWN_HEALER]._qblkm = -1;
if (quests[QTYPE_BLKM]._qactive == 1 && !quests[QTYPE_BLKM]._qvar1) {
SpawnQuestItem(IDI_FUNGALTM, 0, 0, 5, 1);
quests[QTYPE_BLKM]._qvar1 = QS_TOMESPAWNED;
} else {
if (quests[QTYPE_BLKM]._qactive == 2) {
if (quests[QTYPE_BLKM]._qvar1 >= QS_MUSHGIVEN) {
Qtalklist[TOWN_WITCH]._qblkm = -1;
Qtalklist[TOWN_HEALER]._qblkm = QUEST_MUSH3;
} else if (quests[QTYPE_BLKM]._qvar1 >= QS_BRAINGIVEN) {
Qtalklist[TOWN_HEALER]._qblkm = -1;
}
}
}
}

4
Source/stores.cpp

@ -1355,7 +1355,7 @@ void S_StartTalk()
#else
sn = 0;
for (i = 0; i < 16; i++) {
if (quests[i]._qlevel == 2 && ((DWORD *)&Qtalklist[talker])[i] != -1 && quests[i]._qlog)
if (quests[i]._qactive == 2 && ((DWORD *)&Qtalklist[talker])[i] != -1 && quests[i]._qlog)
sn++;
}
@ -1370,7 +1370,7 @@ void S_StartTalk()
sn2 = sn - 2;
for (i = 0; i < 16; i++) {
if (quests[i]._qlevel == 2 && ((DWORD *)&Qtalklist[talker])[i] != -1 && quests[i]._qlog) {
if (quests[i]._qactive == 2 && ((DWORD *)&Qtalklist[talker])[i] != -1 && quests[i]._qlog) {
AddSText(0, sn, 1, questlist[i]._qlstr, COL_WHITE, 1);
sn += la;
}

2
Source/themes.cpp

@ -395,7 +395,6 @@ void InitThemes()
zharlib = -1;
numthemes = 0;
bCrossFlag = FALSE;
armorFlag = TRUE;
bFountainFlag = TRUE;
cauldronFlag = TRUE;
@ -403,6 +402,7 @@ void InitThemes()
pFountainFlag = TRUE;
tFountainFlag = TRUE;
treasureFlag = TRUE;
bCrossFlag = FALSE;
weaponFlag = TRUE;
if (currlevel == 16)

2
Source/town.cpp

@ -1131,7 +1131,7 @@ void T_Pass3()
}
#endif
if (quests[13]._qactive != 3 && quests[13]._qactive) {
if (quests[QTYPE_PW]._qactive != 3 && quests[QTYPE_PW]._qactive) {
T_FillTile(P3Tiles, 60, 70, 342);
} else {
T_FillTile(P3Tiles, 60, 70, 71);

6
Source/towners.cpp

@ -136,10 +136,10 @@ void SetTownerGPtrs(BYTE *pData, BYTE **pAnim)
void NewTownerAnim(int tnum, BYTE *pAnim, int numFrames, int Delay)
{
towner[tnum]._tAnimCnt = 0;
towner[tnum]._tAnimLen = numFrames;
towner[tnum]._tAnimData = pAnim;
towner[tnum]._tAnimLen = numFrames;
towner[tnum]._tAnimFrame = 1;
towner[tnum]._tAnimCnt = 0;
towner[tnum]._tAnimDelay = Delay;
}
@ -428,7 +428,7 @@ void TownDead()
tidx = GetActiveTowner(TOWN_DEADGUY);
TownCtrlMsg(tidx);
if (!qtextflag) {
if ((quests[6]._qactive != 2 || quests[6]._qlog) && quests[6]._qactive != 1) {
if ((quests[QTYPE_BUTCH]._qactive != 2 || quests[QTYPE_BUTCH]._qlog) && quests[QTYPE_BUTCH]._qactive != 1) {
towner[tidx]._tAnimDelay = 1000;
towner[tidx]._tAnimFrame = 1;
strcpy(towner[tidx]._tName, "Slain Townsman");

Loading…
Cancel
Save