112 int AP2x2Tbl[10] = { 8, 28, 6, 26, 4, 24, 2, 22, 0, 20 };
147 for (wdt = W; wdt; wdt--) {
163 int frame, frame_width, color, screen_x, screen_y, i, j, ii;
379 if (!
plr[
myplr].InvList[ii]._iStatFlag) {
389 if (
plr[
myplr].InvList[ii]._iStatFlag) {
406 int i, frame, frame_width, color;
426 if (
plr[
myplr].SpdList[i]._iMagical)
428 if (!
plr[
myplr].SpdList[i]._iStatFlag)
434 if (
plr[
myplr].SpdList[i]._iStatFlag) {
450 BOOL
AutoPlace(
int pnum,
int ii,
int sx,
int sy, BOOL saveflag)
460 for (j = 0; j < sy && done; j++) {
468 for (i = 0; i < sx && done; i++) {
478 if (done && saveflag) {
485 for (j = 0; j < sy; j++) {
490 for (i = 0; i < sx; i++) {
491 if (i != 0 || j != sy - 1) {
515 for (j = 0; j < sy && done; j++) {
523 for (i = 0; i < sx && done; i++) {
534 if (sx > 1 || sy > 1) {
545 if (done && saveflag) {
552 for (j = 0; j < sy; j++) {
557 for (i = 0; i < sx; i++) {
558 if (i != 0 || j != sy - 1) {
579 for (i = 0; i <
plr[pnum].
_pNumInv && !done; i++) {
597 for (i = 0; i <
plr[pnum].
_pNumInv && !done; i++) {
615 for (i = 39; i >= 0 && !done; i--) {
618 if (!
plr[pnum].InvGrid[xx + yy]) {
677 int i, j, xx, yy, ii;
679 int il, cn, it, iv, ig, gt;
688 for (r = 0; r <
sizeof(
InvRect) /
sizeof(
InvRect[0]) && !done; r++) {
702 if (r == 64 && (sy & 1) == 0)
708 if (r >= 0 && r <= 3)
710 if (r >= 4 && r <= 5)
714 if (r >= 7 && r <= 18)
716 if (r >= 19 && r <= 24)
718 if (r >= 65 && r <= 72)
721 if (
plr[pnum].HoldItem._iLoc == il)
728 if (sx == 1 && sy == 1) {
732 if (!
plr[pnum].HoldItem._iStatFlag)
746 if (
plr[pnum].InvGrid[xx + yy] != 0) {
757 yy = 10 * ((ii / 10) - ((sy - 1) >> 1));
760 for (j = 0; j < sy && done; j++) {
763 xx = (ii % 10) - ((sx - 1) >> 1);
766 for (i = 0; i < sx && done; i++) {
770 if (
plr[pnum].InvGrid[xx + yy] != 0) {
944 if (
plr[pnum].InvGrid[yy + xx] > 0) {
1000 if (
plr[pnum].InvGrid[i] == it)
1002 if (
plr[pnum].InvGrid[i] == -it)
1007 yy = 10 * (ii / 10 - ((sy - 1) >> 1));
1010 for (j = 0; j < sy; j++) {
1011 xx = (ii % 10 - ((sx - 1) >> 1));
1014 for (i = 0; i < sx; i++) {
1015 if (i != 0 || j != sy - 1)
1074 if (pnum ==
myplr) {
1081 void CheckInvSwap(
int pnum, BYTE bLoc,
int idx, WORD wCI,
int seed, BOOL bId)
1112 int iv, i, j, offs, ig;
1213 if (
plr[pnum].InvGrid[i] == iv ||
plr[pnum].InvGrid[i] == -iv) {
1223 if (
plr[pnum]._pNumInv > 0 &&
plr[pnum]._pNumInv != iv) {
1227 if (
plr[pnum].InvGrid[j] ==
plr[pnum]._pNumInv + 1) {
1230 if (
plr[pnum].InvGrid[j] == -(
plr[pnum]._pNumInv + 1)) {
1255 if (pnum ==
myplr) {
1283 if (
plr[pnum].InvGrid[i] == iv ||
plr[pnum].InvGrid[i] == -iv) {
1291 if (
plr[pnum]._pNumInv > 0 &&
plr[pnum]._pNumInv != iv) {
1295 if (
plr[pnum].InvGrid[j] ==
plr[pnum]._pNumInv + 1) {
1298 if (
plr[pnum].InvGrid[j] == -(
plr[pnum]._pNumInv + 1)) {
1311 plr[pnum]._pScrlSpells
1312 & (1 << (
plr[pnum]._pRSpell - 1)))) {
1332 plr[pnum]._pScrlSpells
1333 & (1 << (
plr[pnum]._pRSpell - 1)))) {
1534 if (
plr[pnum].HoldItem._iStatFlag) {
1545 if (w == 1 && h == 1) {
1548 for (i = 0; i < 8 && !done; i++) {
1557 for (i = 30; i <= 39 && !done; i++) {
1560 for (i = 20; i <= 29 && !done; i++) {
1563 for (i = 10; i <= 19 && !done; i++) {
1566 for (i = 0; i <= 9 && !done; i++) {
1570 if (w == 1 && h == 2) {
1571 for (i = 29; i >= 20 && !done; i--) {
1574 for (i = 9; i >= 0 && !done; i--) {
1577 for (i = 19; i >= 10 && !done; i--) {
1581 if (w == 1 && h == 3) {
1582 for (i = 0; i < 20 && !done; i++) {
1586 if (w == 2 && h == 2) {
1587 for (i = 0; i < 10 && !done; i++) {
1590 for (i = 21; i < 29 && !done; i += 2) {
1593 for (i = 1; i < 9 && !done; i += 2) {
1596 for (i = 10; i < 19 && !done; i++) {
1600 if (w == 2 && h == 3) {
1601 for (i = 0; i < 9 && !done; i++) {
1604 for (i = 10; i < 19 && !done; i++) {
1622 if (pnum ==
myplr) {
1650 if (
item[ii].IDidx == idx &&
item[ii]._iSeed == iseed &&
item[ii]._iCreateInfo == ci)
1667 ii =
dItem[x][y] - 1;
1668 if (
item[ii].IDidx == idx
1669 &&
item[ii]._iSeed == iseed
1670 &&
item[ii]._iCreateInfo == ci) {
1713 if (oi > 0 &&
object[oi - 1]._oSelFlag != 0) {
1716 if (oi < 0 &&
object[-(oi + 1)]._oSelFlag != 0) {
1723 if (oi2 > 0 &&
object[oi - 1]._oSelFlag != 0 &&
object[oi2 - 1]._oSelFlag != 0)
1747 dir = (dir - 1) & 7;
1752 dir = (dir + 2) & 7;
1764 dwTicks = SDL_GetTicks();
1783 DrawInvMsg(
"A duplicate item has been detected. Destroying duplicate...");
1790 if (abs(xx) > 1 || abs(yy) > 1) {
1804 for (l = 1; l < 50 && !done; l++) {
1805 for (j = -l; j <= l && !done; j++) {
1807 for (i = -l; i <= l && !done; i++) {
1828 dItem[x][y] = ii + 1;
1840 int SyncPutItem(
int pnum,
int x,
int y,
int idx, WORD icreateinfo,
int iseed,
int Id,
int dur,
int mdur,
int ch,
int mch,
int ivalue, DWORD ibuff)
1852 DrawInvMsg(
"A duplicate item has been detected from another player.");
1859 if (abs(xx) > 1 || abs(yy) > 1) {
1873 for (l = 1; l < 50 && !done; l++) {
1874 for (j = -l; j <= l && !done; j++) {
1876 for (i = -l; i <= l && !done; i++) {
1895 dItem[x][y] = ii + 1;
1900 RecreateEar(ii, icreateinfo, iseed, Id, dur, mdur, ch, mch, ivalue, ibuff);
1925 for (r = 0; (DWORD)r < 73; r++) {
1942 if (r >= 0 && r <= 3) {
1945 }
else if (r == 4) {
1948 }
else if (r == 5) {
1951 }
else if (r == 6) {
1954 }
else if (r >= 7 && r <= 12) {
1957 }
else if (r >= 13 && r <= 18) {
1965 }
else if (r >= 19 && r <= 24) {
1968 }
else if (r >= 25 && r <= 64) {
1975 }
else if (r >= 65) {
2015 &&
plr[pnum].InvList[i]._iSpell ==
plr[pnum]._pRSpell) {
2024 &&
plr[pnum].SpdList[i]._iSpell ==
plr[pnum]._pRSpell) {
2103 if (
plr[pnum]._pInvincible && !
plr[pnum]._pHitPoints && pnum ==
myplr)
2124 switch (Item->
IDidx) {
2189 else if (pnum ==
myplr)