diff --git a/Source/items.cpp b/Source/items.cpp index d4d0b655e..240ae17eb 100644 --- a/Source/items.cpp +++ b/Source/items.cpp @@ -907,7 +907,7 @@ void CalcPlrItemVals(int p, BOOL Loadgfx) } else if (plr[p]._pClass == PC_ROGUE || plr[p]._pClass == PC_MONK || plr[p]._pClass == PC_BARD) { vadd += vadd >> 1; } - ihp += (vadd << 6); + ihp += (vadd << 6); // BUGFIX: blood boil can cause negative shifts here (see line 757) if (plr[p]._pClass == PC_SORCERER) { madd <<= 1; diff --git a/Source/missiles.cpp b/Source/missiles.cpp index 6f6d85d09..72ac11ec9 100644 --- a/Source/missiles.cpp +++ b/Source/missiles.cpp @@ -341,7 +341,7 @@ int GetDirection8(int x1, int y1, int x2, int y2) my = abs(y2 - y1); if (my > 15) my = 15; - md = Dirs[my][mx]; + md = Dirs[my][mx]; // BUGFIX: 0x0 causes OOB (99) if (x1 > x2) { if (y1 > y2) md = urtoll[md]; @@ -387,7 +387,7 @@ int GetDirection16(int x1, int y1, int x2, int y2) my = abs(y2 - y1); if (my > 15) my = 15; - md = Dirs[my][mx]; + md = Dirs[my][mx]; // BUGFIX: 0x0 causes OOB (99) if (x1 > x2) { if (y1 > y2) md = urtoll[md]; @@ -831,7 +831,7 @@ BOOL PlayerMHit(int pnum, int m, int dist, int mind, int maxd, int mtype, BOOLEA if (mtype == MIS_ACIDPUD) blk = 100; if (m != -1) - blkper = plr[pnum]._pBaseToBlk + plr[pnum]._pDexterity - ((monster[m].mLevel - plr[pnum]._pLevel) << 1); + blkper = plr[pnum]._pBaseToBlk + plr[pnum]._pDexterity - ((monster[m].mLevel - plr[pnum]._pLevel) * 2); else blkper = plr[pnum]._pBaseToBlk + plr[pnum]._pDexterity; if (blkper < 0) @@ -4358,8 +4358,8 @@ void mi_flashfr(int i) if (missile[i]._micaster == TARGET_MONSTERS && src != -1) { missile[i]._mix = plr[src]._px; missile[i]._miy = plr[src]._py; - missile[i]._mitxoff = plr[src]._pxoff << 16; - missile[i]._mityoff = plr[src]._pyoff << 16; + missile[i]._mitxoff = plr[src]._pxoff * 65536; + missile[i]._mityoff = plr[src]._pyoff * 65536; } missile[i]._mirange--; if (missile[i]._mirange == 0) { @@ -4392,8 +4392,8 @@ void mi_reflect(int i) int src; src = missile[i]._misource; - missile[i]._mitxoff = plr[src]._pxoff << 16; - missile[i]._mityoff = plr[src]._pyoff << 16; + missile[i]._mitxoff = plr[src]._pxoff * 65536; + missile[i]._mityoff = plr[src]._pyoff * 65536; if (plr[src]._pmode == PM_WALK3) { missile[i]._misx = plr[src]._pfutx + 2; missile[i]._misy = plr[src]._pfuty - 1; @@ -4799,8 +4799,8 @@ void MI_Manashield(int i) id = missile[i]._misource; missile[i]._mix = plr[id]._px; missile[i]._miy = plr[id]._py; - missile[i]._mitxoff = plr[id]._pxoff << 16; - missile[i]._mityoff = plr[id]._pyoff << 16; + missile[i]._mitxoff = plr[id]._pxoff * 65536; + missile[i]._mityoff = plr[id]._pyoff * 65536; if (plr[id]._pmode == PM_WALK3) { missile[i]._misx = plr[id]._pfutx; missile[i]._misy = plr[id]._pfuty; @@ -4891,8 +4891,8 @@ void MI_Etherealize(int i) src = missile[i]._misource; missile[i]._mix = plr[src]._px; missile[i]._miy = plr[src]._py; - missile[i]._mitxoff = plr[src]._pxoff << 16; - missile[i]._mityoff = plr[src]._pyoff << 16; + missile[i]._mitxoff = plr[src]._pxoff * 65536; + missile[i]._mityoff = plr[src]._pyoff * 65536; if (plr[src]._pmode == PM_WALK3) { missile[i]._misx = plr[src]._pfutx; missile[i]._misy = plr[src]._pfuty;