66 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
67 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
68 0, 54, 44, 57, 58, 56, 55, 47, 40, 41, 59, 39, 50, 37, 51, 52,
69 36, 27, 28, 29, 30, 31, 32, 33, 34, 35, 48, 49, 60, 38, 61, 53,
70 62, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
71 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 42, 63, 43, 64, 65,
72 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
73 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 40, 66, 41, 67, 0
82 8, 10, 7, 9, 8, 7, 6, 8, 8, 3,
83 3, 8, 6, 11, 9, 10, 6, 9, 9, 6,
84 9, 11, 10, 13, 10, 11, 7, 5, 7, 7,
85 8, 7, 7, 7, 7, 7, 10, 4, 5, 6,
86 3, 3, 4, 3, 6, 6, 3, 3, 3, 3,
87 3, 2, 7, 6, 3, 10, 10, 6, 6, 7,
88 4, 4, 9, 6, 6, 12, 3, 7
98 { 58, 70, 82, 94, 105 },
108 '\0', 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
109 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
110 ' ',
'!',
'\"',
'#',
'$',
'%',
'&',
'\'',
'(',
')',
'*',
'+',
',',
'-',
'.',
'/',
111 '0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
':',
';',
'<',
'=',
'>',
'?',
112 '@',
'A',
'B',
'C',
'D',
'E',
'F',
'G',
'H',
'I',
'J',
'K',
'L',
'M',
'N',
'O',
113 'P',
'Q',
'R',
'S',
'T',
'U',
'V',
'W',
'X',
'Y',
'Z',
'[',
'\\',
']',
'^',
'_',
114 '`',
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'o',
115 'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
'x',
'y',
'z',
'{',
'|',
'}',
'~', 0x01,
116 'C',
'u',
'e',
'a',
'a',
'a',
'a',
'c',
'e',
'e',
'e',
'i',
'i',
'i',
'A',
'A',
117 'E',
'a',
'A',
'o',
'o',
'o',
'u',
'u',
'y',
'O',
'U',
'c',
'L',
'Y',
'P',
'f',
118 'a',
'i',
'o',
'u',
'n',
'N',
'a',
'o',
'?', 0x01, 0x01, 0x01, 0x01,
'!',
'<',
'>',
119 'o',
'+',
'2',
'3',
'\'',
'u',
'P',
'.',
',',
'1',
'0',
'>', 0x01, 0x01, 0x01,
'?',
120 'A',
'A',
'A',
'A',
'A',
'A',
'A',
'C',
'E',
'E',
'E',
'E',
'I',
'I',
'I',
'I',
121 'D',
'N',
'O',
'O',
'O',
'O',
'O',
'X',
'0',
'U',
'U',
'U',
'U',
'Y',
'b',
'B',
122 'a',
'a',
'a',
'a',
'a',
'a',
'a',
'c',
'e',
'e',
'e',
'e',
'i',
'i',
'i',
'i',
123 'o',
'n',
'o',
'o',
'o',
'o',
'o',
'/',
'0',
'u',
'u',
'u',
'u',
'y',
'b',
'y',
183 char *
PanBtnHotKey[8] = {
"'c'",
"'q'",
"Tab",
"Esc",
"'i'",
"'b'",
"Enter", NULL };
186 "Character Information",
197 { 137, 138, 41, 22 },
198 { 137, 166, 41, 22 },
199 { 137, 195, 41, 22 },
209 { -1, -1, -1, -1, -1, -1, -1 },
210 { -1, -1, -1, -1, -1, -1, -1 }
213 #define SPLICONLENGTH 56
214 #define SPLROWICONLS 10
215 #define SPLICONLAST 43
235 for (i = 0; i < 128; i++)
238 for (i = 128; i < 256; i++)
319 int i, j, x, y, c, s, t, v, lx, ly, trans;
320 unsigned __int64 mask, spl;
327 for (i = 0; i < 4; i++) {
349 for (spl = 1, j = 1; j <
MAX_SPELLS; spl <<= 1, j++) {
378 sprintf(
tempstr,
"Damages undead only");
382 sprintf(
tempstr,
"Spell Level 0 - Unusable");
384 sprintf(
tempstr,
"Spell Level %i", s);
407 sprintf(
tempstr,
"%i Scrolls", v);
419 for (t = 0; t < 4; t++) {
422 sprintf(
tempstr,
"Spell Hot Key #F%i", t + 5);
458 for (i = 0; i < 4; ++i) {
469 unsigned __int64 spells;
471 if (
plr[
myplr]._pSplHotKey[slot] == -1) {
475 switch (
plr[
myplr]._pSplTHotKey[slot]) {
490 if (spells & (__int64)1 << (
plr[
myplr]._pSplHotKey[slot] - 1)) {
517 for (i = 0; i < 256; i++) {
527 for (i = 0; i < 256; i++) {
535 for (i = 0; i < 256; i++) {
567 int nSrcOff, nDstOff;
597 int nSrcOff, nDstOff, w;
607 src = &pCelBuff[nSrcOff];
611 memcpy(dst, src, 88);
625 void DrawFlask(BYTE *pCelBuff,
int w,
int nSrcOff, BYTE *pBuff,
int nDstOff,
int h)
630 src = &pCelBuff[nSrcOff];
631 dst = &pBuff[nDstOff];
633 for (hgt = h; hgt; hgt--, src += w - 59, dst +=
BUFFER_WIDTH - 59) {
634 for (wdt = 59; wdt; wdt--) {
654 filled = 80 - filled;
689 filled = 80 - filled;
711 manaPer = (double)mana / (
double)maxMana * 80.0;
733 filled = (double)mana / (
double)maxMana * 80.0;
790 for (i = 0; i <
sizeof(
panbtn) /
sizeof(
panbtn[0]); i++)
798 for (i = 0; i <
sizeof(
chrbtn) /
sizeof(
chrbtn[0]); i++)
845 for (i = 0; i < 6; i++) {
866 unsigned __int64 spells, spell;
867 int xo, yo, X, Y, i, j;
875 for (i = 0; i < 4; i++) {
892 if (spell & spells) {
903 spell <<= (__int64)1;
980 int i, c, v, s, xend, yend;
992 strcpy(
infostr,
"Player friendly");
994 strcpy(
infostr,
"Player attack");
1006 strcpy(
infostr,
"Select current spell button");
1010 strcpy(
tempstr,
"Hotkey : 's'");
1026 sprintf(
tempstr,
"Spell Level 0 - Unusable");
1028 sprintf(
tempstr,
"Spell Level %i", c);
1038 &&
plr[
myplr].InvList[i]._iSpell == v) {
1045 &&
plr[
myplr].SpdList[i]._iSpell == v) {
1052 sprintf(
tempstr,
"%i Scrolls", s);
1078 BOOLEAN gamemenuOff;
1084 for (i = 0; i < 8; i++) {
1116 gamemenuOff = FALSE;
1206 }
else if (!
plr[
myplr].HoldItem._iStatFlag) {
1211 if (
plr[
myplr].HoldItem._iIdentified)
1277 int lineOffset, strWidth, sx, sy;
1290 lineOffset = (288 - strWidth) >> 1;
1298 if (lineOffset < 288) {
1325 int pc, mindam, maxdam;
1340 sprintf(chrstr,
"%i",
plr[
myplr]._pLevel);
1343 sprintf(chrstr,
"%li",
plr[
myplr]._pExperience);
1347 strcpy(chrstr,
"None");
1350 sprintf(chrstr,
"%li",
plr[
myplr]._pNextExper);
1355 sprintf(chrstr,
"%i",
plr[
myplr]._pGold);
1371 sprintf(chrstr,
"%i%%", (
plr[
myplr]._pDexterity >> 1) +
plr[
myplr]._pIBonusToHit + 50);
1401 sprintf(chrstr,
"%i-%i", mindam, maxdam);
1402 if (mindam >= 100 || maxdam >= 100)
1409 sprintf(chrstr,
"%i%%",
plr[
myplr]._pMagResist);
1412 sprintf(chrstr,
"MAX");
1418 sprintf(chrstr,
"%i%%",
plr[
myplr]._pFireResist);
1421 sprintf(chrstr,
"MAX");
1427 sprintf(chrstr,
"%i%%",
plr[
myplr]._pLghtResist);
1430 sprintf(chrstr,
"MAX");
1435 sprintf(chrstr,
"%i",
plr[
myplr]._pBaseStr);
1441 sprintf(chrstr,
"%i",
plr[
myplr]._pBaseMag);
1447 sprintf(chrstr,
"%i",
plr[
myplr]._pBaseDex);
1453 sprintf(chrstr,
"%i",
plr[
myplr]._pBaseVit);
1463 sprintf(chrstr,
"%i",
plr[
myplr]._pStrength);
1471 sprintf(chrstr,
"%i",
plr[
myplr]._pMagic);
1479 sprintf(chrstr,
"%i",
plr[
myplr]._pDexterity);
1487 sprintf(chrstr,
"%i",
plr[
myplr]._pVitality);
1496 sprintf(chrstr,
"%i",
plr[
myplr]._pStatPts);
1510 sprintf(chrstr,
"%i",
plr[
myplr]._pMaxHP >> 6);
1514 sprintf(chrstr,
"%i",
plr[
myplr]._pHitPoints >> 6);
1518 sprintf(chrstr,
"%i",
plr[
myplr]._pMaxMana >> 6);
1522 sprintf(chrstr,
"%i",
plr[
myplr]._pMana >> 6);
1539 int sx, sy, screen_x, line, widthOffset;
1543 widthOffset = endX - x + 1;
1551 if (screen_x < widthOffset)
1552 line = (widthOffset - screen_x) >> 1;
1559 if (line < widthOffset)
1596 for (i = 0; i < 4; i++) {
1633 for (i = 0; i < 4; ++i) {
1753 if (
plr[
myplr]._pISpells & (__int64)1 << (ii - 1)) {
1756 if (
plr[
myplr]._pAblSpells & (__int64)1 << (ii - 1)) {
1776 int i, sn, mana, lvl, yp, min, max;
1778 unsigned __int64 spl;
1786 for (i = 1; i < 8; i++) {
1788 if (sn != -1 && spl & (__int64)1 << (sn - 1)) {
1808 sprintf(
tempstr,
"Mana: %i Dam: %i - %i", mana, min, max);
1810 sprintf(
tempstr,
"Mana: %i Dam: n/a", mana);
1813 sprintf(
tempstr,
"Mana: %i Dam: 1/3 tgt hp", mana);
1821 sprintf(
tempstr,
"Spell Level 0 - Unusable");
1823 sprintf(
tempstr,
"Spell Level %i", lvl);
1837 int screen_x, line, sx;
1849 line = (222 - screen_x) >> 1;
1868 unsigned __int64 spl;
1873 if (sn != -1 && spl & (__int64)1 << (sn - 1)) {
1875 if (
plr[
myplr]._pISpells & (__int64)1 << (sn - 1)) {
1878 if (
plr[
myplr]._pAblSpells & (__int64)1 << (sn - 1)) {
1913 sprintf(
tempstr,
"%u", amount);
1915 for (i = 0; i <
tempstr[i]; i++) {
1930 if (
plr[
myplr]._pHitPoints >> 6 <= 0) {
1936 memset(input, 0,
sizeof(input));
1938 if (vkey == VK_RETURN) {
1942 }
else if (vkey == VK_ESCAPE) {
1945 }
else if (vkey == VK_BACK) {
1946 input[strlen(input) - 1] =
'\0';
1948 }
else if (vkey -
'0' >= 0 && vkey -
'0' <= 9) {
1950 input[strlen(input)] = vkey;
1953 if (strlen(input) > strlen(input))
1969 if (
plr[pnum].InvList[gi]._ivalue > 0)
1976 if (
plr[pnum].SpdList[gi]._ivalue > 0)
2004 int i, off, talk_btn, color, nCel, x;
2012 for (i = 293; i > 283; off++, i--) {
2017 for (i = 0; i < 10; i++) {
2022 for (i = 0; i < 39; i += 13) {
2033 for (i = 0; i < 4; i++) {
2055 if (
plr[i].plractive) {
2121 for (p = 0; p <
MAX_PLRS && off != -1; p++) {
2154 for (i = 0; i < 3; i++) {
2179 if ((DWORD)vkey < VK_SPACE)
2199 if (vkey == VK_SPACE) {
2200 }
else if (vkey == VK_ESCAPE) {
2202 }
else if (vkey == VK_RETURN) {
2204 }
else if (vkey == VK_BACK) {
2208 }
else if (vkey == VK_DOWN) {
2210 }
else if (vkey == VK_UP) {
2230 for (i = 0; i < 8; i++) {
2241 if (i != talk_save) {
2256 for (i = 0; i < 8; i++) {