Devilution
Diablo devolved - magic behind the 1996 computer game
|
Go to the documentation of this file.
69 for (i = 0; i < 6; i++)
78 DWORD ticks = SDL_GetTicks();
125 void PrintSString(
int x,
int y, BOOL cjustflag,
char *str,
char col,
int val)
128 int len, width, sx, sy, i, k, s;
147 for (i = 0; i < len; i++)
150 k = (yy - width) >> 1;
156 for (i = 0; i < len; i++) {
164 if (!cjustflag && val >= 0) {
165 sprintf(valstr,
"%i", val);
167 for (i = strlen(valstr) - 1; i >= 0; i--) {
182 int xy, yy, width, line, sy;
224 for (yd3 = yd1; yd3 < yd2; yd3 += 12) {
248 for (i = s; i < e; i++) {
278 void AddSText(
int x,
int y, BOOL j,
char *str,
char clr, BOOL sel)
282 strcpy(
stext[y]._sstr, str);
298 if (w == 1 && h == 1) {
301 for (i = 0; i < 8 && !done; i++) {
308 for (i = 30; i <= 39 && !done; i++) {
311 for (i = 20; i <= 29 && !done; i++) {
314 for (i = 10; i <= 19 && !done; i++) {
317 for (i = 0; i <= 9 && !done; i++) {
321 if (w == 1 && h == 2) {
322 for (i = 29; i >= 20 && !done; i--) {
325 for (i = 9; i >= 0 && !done; i--) {
328 for (i = 19; i >= 10 && !done; i--) {
332 if (w == 1 && h == 3) {
333 for (i = 0; i < 20 && !done; i++) {
337 if (w == 2 && h == 2) {
338 for (i = 0; i < 10 && !done; i++) {
341 for (i = 21; i < 29 && !done; i += 2) {
344 for (i = 1; i < 9 && !done; i += 2) {
347 for (i = 10; i < 19 && !done; i++) {
351 if (w == 2 && h == 3) {
352 for (i = 0; i < 9 && !done; i++) {
355 for (i = 10; i < 19 && !done; i++) {
387 for (l = 5; l < 20; l += 4) {
443 AddSText(40, l, FALSE, sstr, iclr, FALSE);
450 sprintf(sstr,
"Armor: %i ", x->
_iAC);
455 strcat(sstr,
"Indestructible, ");
462 if (!(str + mag + dex)) {
463 strcat(sstr,
"No required attributes");
474 AddSText(40, l++, FALSE, sstr, iclr, FALSE);
477 AddSText(40, l, FALSE,
"Unique Item", iclr, FALSE);
488 sprintf(
tempstr,
"I have these items for sale : Your gold : %i",
plr[
myplr]._pGold);
514 for (idx = 0; boughtitems; idx++) {
519 for (l = 5; l < 20 && idx < 6; l += 4) {
544 for (i = 0; i < 6; i++) {
558 sprintf(
tempstr,
"I have these premium items for sale : Your gold : %i",
plr[
myplr]._pGold);
600 for (l = 5; l < 20; l += 4) {
641 for (i = 0; i < 48; i++)
662 sprintf(
tempstr,
"You have nothing I want. Your gold : %i",
plr[
myplr]._pGold);
672 sprintf(
tempstr,
"Which item is for sale? Your gold : %i",
plr[
myplr]._pGold);
706 for (i = 0; i < 48; i++)
732 sprintf(
tempstr,
"You have nothing to repair. Your gold : %i",
plr[
myplr]._pGold);
744 sprintf(
tempstr,
"Repair which item? Your gold : %i",
plr[
myplr]._pGold);
800 for (l = 5; l < 20; l += 4) {
836 sprintf(
tempstr,
"I have these items for sale : Your gold : %i",
plr[
myplr]._pGold);
885 for (i = 0; i < 48; i++)
922 sprintf(
tempstr,
"You have nothing I want. Your gold : %i",
plr[
myplr]._pGold);
932 sprintf(
tempstr,
"Which item is for sale? Your gold : %i",
plr[
myplr]._pGold);
973 for (i = 0; i < 48; i++) {
992 sprintf(
tempstr,
"You have nothing to recharge. Your gold : %i",
plr[
myplr]._pGold);
1002 sprintf(
tempstr,
"Recharge which item? Your gold : %i",
plr[
myplr]._pGold);
1026 AddSText(0, 14, TRUE,
"You do not have enough room in inventory",
COL_WHITE, TRUE);
1041 if (!
plr[
myplr].HoldItem._iStatFlag)
1068 strcpy(
tempstr,
"Do we have a deal?");
1071 strcpy(
tempstr,
"Are you sure you want to identify this item?");
1077 strcpy(
tempstr,
"Are you sure you want to buy this item?");
1080 strcpy(
tempstr,
"Are you sure you want to recharge this item?");
1084 strcpy(
tempstr,
"Are you sure you want to sell this item?");
1087 strcpy(
tempstr,
"Are you sure you want to repair this item?");
1120 sprintf(
tempstr,
"I have this item for sale : Your gold : %i",
plr[
myplr]._pGold);
1163 for (l = 5; l < 20; l += 4) {
1189 sprintf(
tempstr,
"I have these items for sale : Your gold : %i",
plr[
myplr]._pGold);
1247 for (i = 0; i < 48; i++)
1288 sprintf(
tempstr,
"You have nothing to identify. Your gold : %i",
plr[
myplr]._pGold);
1298 sprintf(
tempstr,
"Identify which item? Your gold : %i",
plr[
myplr]._pGold);
1319 if (!
plr[
myplr].HoldItem._iStatFlag)
1351 sn = 14 - (sn >> 1);
1497 for (i = 0; i < 24; i++) {
1542 for (i = 0; i < 24; i++) {
1543 if (
stext[i]._sline)
1545 if (
stext[i]._sstr[0])
1787 for (i = 0; i < MAXBELTITEMS && cost > 0; i++) {
1789 if (cost <
plr[
myplr].SpdList[i]._ivalue) {
1801 for (i = 0; i < MAXBELTITEMS && cost > 0; i++) {
1803 if (cost <
plr[
myplr].SpdList[i]._ivalue) {
1819 if (cost <
plr[
myplr].InvList[i]._ivalue) {
1833 if (cost <
plr[
myplr].InvList[i]._ivalue) {
1888 for (i = 0; i < 40 && !done; i++) {
1911 for (i = 0; idx >= 0; i++) {
1937 for (i = 0; xx >= 0; i++) {
1949 for (i = 0; i < 40 && !done; i++) {
1963 int i, sz, cost, numsqrs;
1977 for (i = 0; i < 40; i++) {
1995 return numsqrs >= sz;
2005 for (i = 0; i < 40 && !done; i++) {
2008 if (!
plr[
myplr].InvGrid[xx + yy]) {
2200 for (i = 0; i < 40 && !done; i++) {
2367 for (i = 0; i < 40 && !done; i++) {
2498 for (i = 0; i < 40 && !done; i++) {
2566 sn = 14 - (sn >> 1);
2733 if (MouseX < 344 + PANEL_LEFT || MouseX > 616 +
PANEL_LEFT)
2736 if (MouseX < 24 + PANEL_LEFT || MouseX > 616 +
PANEL_LEFT)
2757 }
else if (y >= 5) {
2761 if (
stext[y - 2]._ssel) {
2763 }
else if (
stext[y - 1]._ssel) {
void trans_rect(int sx, int sy, int width, int height)
Draws a half-transparent rectangle by blacking out odd pixels on odd lines, even pixels on even lines...
QuestStruct quests[MAXQUESTS]
void SpawnPremium(int lvl)
char InvGrid[NUM_INV_GRID_ELEM]
void SetGoldCurs(int pnum, int i)
void PrintSString(int x, int y, BOOL cjustflag, char *str, char col, int val)
QuestTalkData Qtalklist[11]
void SetRndSeed(int s)
Set the RNG seed.
#define GOLD_MEDIUM_LIMIT
void AddSTextVal(int y, int val)
void DrawSSlider(int y1, int y2)
void AddStoreHoldRepair(ItemStruct *itm, int i)
DEVILUTION_BEGIN_NAMESPACE int cursH
#define SMITH_PREMIUM_ITEMS
ItemStruct item[MAXITEMS+1]
DEVILUTION_BEGIN_NAMESPACE ItemDataStruct AllItemsList[]
Contains the data related to each item ID.
void S_ScrollSPBuy(int idx)
#define DUR_INDESTRUCTIBLE
ItemStruct InvList[NUM_INV_GRID_ELEM]
void CalcPlrInv(int p, BOOL Loadgfx)
void SetSpdbarGoldCurs(int pnum, int i)
ItemStruct SpdList[MAXBELTITEMS]
void GetGoldSeed(int pnum, ItemStruct *h)
ItemStruct premiumitem[SMITH_PREMIUM_ITEMS]
DEVILUTION_BEGIN_NAMESPACE SpellData spelldata[]
Data related to each spell ID.
BYTE gbMaxPlayers
Specifies the maximum number of players in a game, where 1 represents a single player game and 4 repr...
void S_ScrollHBuy(int idx)
void PrintItemPower(char plidx, ItemStruct *x)
ItemStruct smithitem[SMITH_ITEMS]
#define DEVILUTION_END_NAMESPACE
void AddStoreHoldId(ItemStruct itm, int i)
char * talkname[9]
Maps from towner IDs to NPC names.
BYTE * LoadFileInMem(char *pszName, DWORD *pdwFileLen)
Load a file in to a buffer.
void RemoveInvItem(int pnum, int iv)
BOOL StoreGoldFit(int idx)
void PlaceStoreGold(int v)
int CalculateGold(int pnum)
void CelDraw(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth)
Blit CEL sprite to the back buffer at the given coordinates.
BOOL SmithRepairOk(int i)
int AP2x2Tbl[10]
Specifies the starting inventory slots for placement of 2x2 items.
int GetRndSeed()
Get the current RNG seed.
const BYTE fontkern[68]
Maps from smaltext.cel frame number to character width.
void ClearSText(int s, int e)
void PrintStoreItem(ItemStruct *x, int l, char iclr)
QuestData questlist[MAXQUESTS]
DEVILUTION_BEGIN_NAMESPACE BOOL invflag
DWORD glSeedTbl[NUMLEVELS]
BOOL AutoPlace(int pnum, int ii, int sx, int sy, BOOL saveflag)
void S_ScrollWBuy(int idx)
ItemStruct InvBody[NUM_INVLOC]
void OffsetSTextY(int y, int yo)
BOOL WitchRechargeOk(int i)
BOOL SpecialAutoPlace(int pnum, int ii, int sx, int sy, BOOL saveflag)
int random_(BYTE idx, int v)
Main RNG function.
void S_ScrollSSell(int idx)
BOOL IdItemOk(ItemStruct *i)
void S_ScrollSBuy(int idx)
void AddSText(int x, int y, BOOL j, char *str, char clr, BOOL sel)
void TakePlrsMoney(int cost)
void PrintChar(int sx, int sy, int nCel, char col)
Print letter to the back buffer.
const BYTE fontframe[128]
Maps from font index to smaltext.cel frame number.
const BYTE gbFontTransTbl[256]
Maps ASCII character code to font index, as used by the small, medium and large sized fonts; which co...
void SpawnHealer(int lvl)
DEVILUTION_BEGIN_NAMESPACE int stextup
void AddStoreHoldRecharge(ItemStruct itm, int i)
PlayerStruct plr[MAX_PLRS]
void RemoveSpdBarItem(int pnum, int iv)