Browse Source

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

pull/876/head
Anders Jenbo 7 years ago
parent
commit
c4c809af0c
  1. 6
      Source/items.cpp
  2. 40
      Source/missiles.cpp
  3. 9
      Source/mpqapi.cpp
  4. 4
      Source/objects.cpp
  5. 25
      Source/player.cpp
  6. 2
      Source/plrmsg.cpp
  7. 4
      Source/portal.cpp

6
Source/items.cpp

@ -4014,8 +4014,8 @@ void RecreateSmithItem(int ii, int idx, int lvl, int iseed)
itype = RndSmithItem(lvl) - 1;
GetItemAttrs(ii, itype, lvl);
item[ii]._iCreateInfo = lvl | 0x400;
item[ii]._iSeed = iseed;
item[ii]._iCreateInfo = lvl | 0x400;
item[ii]._iIdentified = TRUE;
}
@ -4083,8 +4083,8 @@ void RecreateHealerItem(int ii, int idx, int lvl, int iseed)
GetItemAttrs(ii, itype, lvl);
}
item[ii]._iCreateInfo = lvl | 0x4000;
item[ii]._iSeed = iseed;
item[ii]._iCreateInfo = lvl | 0x4000;
item[ii]._iIdentified = TRUE;
}
@ -4134,8 +4134,8 @@ int ItemNoFlippy()
int r;
r = itemactive[numitems - 1];
item[r]._iAnimFlag = FALSE;
item[r]._iAnimFrame = item[r]._iAnimLen;
item[r]._iAnimFlag = FALSE;
item[r]._iSelFlag = 1;
return r;

40
Source/missiles.cpp

@ -1630,22 +1630,22 @@ void AddFlash(int mi, int sx, int sy, int dx, int dy, int midir, char mienemy, i
{
int i;
if (!mienemy && id != -1) {
missile[mi]._midam = 0;
for (i = 0; i <= plr[id]._pLevel; i++) {
missile[mi]._midam += random(55, 20) + 1;
}
for (i = 0; i < missile[mi]._mispllvl; i++) {
missile[mi]._midam += missile[mi]._midam >> 3;
}
missile[mi]._midam += missile[mi]._midam >> 1;
UseMana(id, SPL_FLASH);
} else {
if (!mienemy) {
missile[mi]._midam = currlevel >> 1;
if (!mienemy) {
if (id != -1) {
missile[mi]._midam = 0;
for (i = 0; i <= plr[id]._pLevel; i++) {
missile[mi]._midam += random(55, 20) + 1;
}
for (i = missile[mi]._mispllvl; i > 0; i--) {
missile[mi]._midam += missile[mi]._midam >> 3;
}
missile[mi]._midam += missile[mi]._midam >> 1;
UseMana(id, SPL_FLASH);
} else {
missile[mi]._midam = monster[id].mLevel << 1;
missile[mi]._midam = currlevel >> 1;
}
} else {
missile[mi]._midam = monster[id].mLevel << 1;
}
missile[mi]._mirange = 19;
}
@ -2572,6 +2572,7 @@ void MI_Golem(int i)
{
int CrawlNum[6] = { 0, 3, 12, 45, 94, 159 };
int tx, ty, dp, l, m, src, k, tid;
char *ct;
src = missile[i]._misource;
if (monster[src]._mx == 1 && !monster[src]._my) {
@ -2579,8 +2580,9 @@ void MI_Golem(int i)
k = CrawlNum[l];
tid = k + 2;
for (m = (BYTE)CrawlTable[k]; m > 0; m--) {
tx = missile[i]._miVar4 + CrawlTable[tid - 1];
ty = missile[i]._miVar5 + CrawlTable[tid];
ct = &CrawlTable[tid];
tx = missile[i]._miVar4 + *(ct - 1);
ty = missile[i]._miVar5 + *ct;
if (0 < tx && tx < MAXDUNX && 0 < ty && ty < MAXDUNY) {
dp = dPiece[tx][ty];
if (LineClear(missile[i]._miVar1, missile[i]._miVar2, tx, ty)) {
@ -2674,7 +2676,7 @@ void MI_LArrow(int i)
if (missile[i]._mix != missile[i]._miVar1 || missile[i]._miy != missile[i]._miVar2) {
missile[i]._miVar1 = missile[i]._mix;
missile[i]._miVar2 = missile[i]._miy;
ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, 5);
ChangeLight(missile[i]._mlid, missile[i]._miVar1, missile[i]._miVar2, 5);
}
}
}
@ -2887,8 +2889,8 @@ void MI_Fireball(int i)
{
int dam, id, px, py, mx, my;
dam = missile[i]._midam;
id = missile[i]._misource;
dam = missile[i]._midam;
missile[i]._mirange--;
if (missile[i]._micaster == 0) {
@ -2954,7 +2956,7 @@ void MI_Fireball(int i)
} else if (missile[i]._mix != missile[i]._miVar1 || missile[i]._miy != missile[i]._miVar2) {
missile[i]._miVar1 = missile[i]._mix;
missile[i]._miVar2 = missile[i]._miy;
ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, 8);
ChangeLight(missile[i]._mlid, missile[i]._miVar1, missile[i]._miVar2, 8);
}
}

9
Source/mpqapi.cpp

@ -266,17 +266,12 @@ _BLOCKENTRY *mpqapi_add_file(const char *pszName, _BLOCKENTRY *pBlk, int block_i
h3 = Hash(pszName, 2);
if (mpqapi_get_hash_index(h1, h2, h3, 0) != -1)
app_fatal("Hash collision between \"%s\" and existing file\n", pszName);
i = 2048;
hIdx = h1 & 0x7FF;
while (1) {
i--;
i = 2048;
while (i--) {
if (sgpHashTbl[hIdx].block == -1 || sgpHashTbl[hIdx].block == -2)
break;
hIdx = (hIdx + 1) & 0x7FF;
if (!i) {
i = -1;
break;
}
}
if (i < 0)
app_fatal("Out of hash space");

4
Source/objects.cpp

@ -4069,13 +4069,13 @@ void BreakCrux(int i)
int j, oi;
BOOL triggered;
object[i]._oBreak = -1;
object[i]._oSelFlag = 0;
object[i]._oAnimFlag = 1;
object[i]._oAnimFrame = 1;
object[i]._oAnimDelay = 1;
object[i]._oSolidFlag = TRUE;
object[i]._oMissFlag = TRUE;
object[i]._oBreak = -1;
object[i]._oSelFlag = 0;
triggered = TRUE;
for (j = 0; j < nobjects; j++) {
oi = objectactive[j];

25
Source/player.cpp

@ -939,7 +939,7 @@ void AddPlrExperience(int pnum, int lvl, int exp)
void AddPlrMonstExper(int lvl, int exp, char pmask)
{
int totplrs, i;
int totplrs, i, e;
totplrs = 0;
for (i = 0; i < MAX_PLRS; i++) {
@ -949,9 +949,9 @@ void AddPlrMonstExper(int lvl, int exp, char pmask)
}
if (totplrs) {
exp = exp / totplrs;
e = exp / totplrs;
if (pmask & (1 << myplr))
AddPlrExperience(myplr, lvl, exp);
AddPlrExperience(myplr, lvl, e);
}
}
@ -1294,7 +1294,6 @@ void PM_ChangeLightOff(int pnum)
}
l = &LightList[plr[pnum]._plid];
ymul = -1;
x = 2 * plr[pnum]._pyoff + plr[pnum]._pxoff;
y = 2 * plr[pnum]._pyoff - plr[pnum]._pxoff;
if (x < 0) {
@ -1304,6 +1303,7 @@ void PM_ChangeLightOff(int pnum)
xmul = 1;
}
if (y < 0) {
ymul = -1;
y = -y;
} else {
ymul = 1;
@ -2099,28 +2099,31 @@ void SyncPlrKill(int pnum, int earflag)
void RemovePlrMissiles(int pnum)
{
int mi, am;
int i, am;
int mx, my;
if (currlevel != 0 && pnum == myplr && (monster[myplr]._mx != 1 || monster[myplr]._my != 0)) {
M_StartKill(myplr, myplr);
AddDead(monster[myplr]._mx, monster[myplr]._my, monster[myplr].MType->mdeadval, (direction)monster[myplr]._mdir);
dMonster[monster[myplr]._mx][monster[myplr]._my] = 0;
AddDead(monster[myplr]._mx, monster[myplr]._my, (monster[myplr].MType)->mdeadval, monster[myplr]._mdir);
mx = monster[myplr]._mx;
my = monster[myplr]._my;
dMonster[mx][my] = 0;
monster[myplr]._mDelFlag = TRUE;
DeleteMonsterList();
}
for (mi = 0; mi < nummissiles; mi++) {
am = missileactive[mi];
for (i = 0; i < nummissiles; i++) {
am = missileactive[i];
if (missile[am]._mitype == MIS_STONE && missile[am]._misource == pnum) {
monster[missile[am]._miVar2]._mmode = missile[am]._miVar1;
}
if (missile[am]._mitype == MIS_MANASHIELD && missile[am]._misource == pnum) {
ClearMissileSpot(am);
DeleteMissile(am, mi);
DeleteMissile(am, i);
}
if (missile[am]._mitype == MIS_ETHEREALIZE && missile[am]._misource == pnum) {
ClearMissileSpot(am);
DeleteMissile(am, mi);
DeleteMissile(am, i);
}
}
}

2
Source/plrmsg.cpp

@ -110,8 +110,8 @@ void PrintPlrMsg(DWORD x, DWORD y, DWORD width, const char *str, BYTE col)
while (*str) {
BYTE c;
int screen = PitchTbl[y] + x;
const char *sstr = str;
DWORD len = 0;
const char *sstr = str;
const char *endstr = sstr;
while (1) {

4
Source/portal.cpp

@ -18,12 +18,12 @@ void InitPortals()
void SetPortalStats(int i, BOOL o, int x, int y, int lvl, int lvltype)
{
portal[i].setlvl = FALSE;
portal[i].open = o;
portal[i].x = x;
portal[i].y = y;
portal[i].open = o;
portal[i].level = lvl;
portal[i].ltype = lvltype;
portal[i].setlvl = FALSE;
}
void AddWarpMissile(int i, int x, int y)

Loading…
Cancel
Save