mirror of
https://github.com/jmarshall23/Hellfire.git
synced 2026-08-11 23:40:51 +02:00
Initial commit.
This commit is contained in:
@@ -0,0 +1,206 @@
|
||||
/*-----------------------------------------------------------------------**
|
||||
** Diablo
|
||||
**
|
||||
** Control panel file
|
||||
**
|
||||
** (C)1995 Condor, Inc. All rights reserved.
|
||||
**
|
||||
**-----------------------------------------------------------------------**
|
||||
** $Header: /Diablo/ERROR.CPP 1 1/22/97 2:06p Dgartner $
|
||||
**-----------------------------------------------------------------------**
|
||||
**
|
||||
** File Routines
|
||||
**-----------------------------------------------------------------------*/
|
||||
|
||||
#include "diablo.h"
|
||||
#pragma hdrstop
|
||||
#include "error.h"
|
||||
#include "engine.h"
|
||||
#include "control.h"
|
||||
#include "items.h"
|
||||
#include "stores.h"
|
||||
#include "scrollrt.h"
|
||||
|
||||
/*-----------------------------------------------------------------------**
|
||||
** Message strings
|
||||
**-----------------------------------------------------------------------*/
|
||||
|
||||
char *MsgStrings[] = {
|
||||
"",
|
||||
"No automap available in town",
|
||||
"No multiplayer functions in demo",
|
||||
"Direct Sound Creation Failed",
|
||||
"Not available in shareware version",
|
||||
"Not enough space to save",
|
||||
"No Pause in town",
|
||||
"Copying to a hard disk is recommended",
|
||||
|
||||
"Multiplayer sync problem",
|
||||
"No pause in multiplayer",
|
||||
"Loading...",
|
||||
"Saving...",
|
||||
|
||||
//Shrine messages
|
||||
"Some are weakened as one grows strong", //12 Mysterious
|
||||
"New strength is forged through destruction", //13 Hidden
|
||||
"Those who defend seldom attack", //14 Gloomy
|
||||
"The sword of justice is swift and sharp", //15 Weird
|
||||
"While the spirit is vigilant the body thrives", //16 Magical
|
||||
"The powers of mana refocused renews", //17 Stone
|
||||
"Time cannot diminish the power of steel", //18 Religious
|
||||
"Magic is not always what it seems to be", //19 Enchanted
|
||||
"What once was opened now is closed", //20 Thaumaturgic
|
||||
"Intensity comes at the cost of wisdom", //21 Fascinating
|
||||
"Arcane power brings destruction", //22 Cryptic
|
||||
"That which cannot be held cannot be harmed", //23 Supernatural
|
||||
"Crimson and Azure become as the sun", //24 Eldritch
|
||||
"Knowledge and wisdom at the cost of self", //25 Eerie
|
||||
"Drink and be refreshed", //26 Divine
|
||||
"Wherever you go, there you are", //27 Holy
|
||||
"Energy comes at the cost of wisdom", //28 Sacred
|
||||
"Riches abound when least expected", //29 Spiritual
|
||||
"Where avarice fails, patience gains reward", //30 Spooky
|
||||
"Blessed by a benevolent companion!", //31 Spooky Multi
|
||||
"The hands of men may be guided by fate", //32 Abandoned
|
||||
"Strength is bolstered by heavenly faith", //33 Creepy
|
||||
"The essence of life flows from within", //34 Quiet
|
||||
"The way is made clear when viewed from above", //35 Secluded
|
||||
"Salvation comes at the cost of wisdom", //36 Ornate
|
||||
"Mysteries are revealed in the light of reason", //37 Glimmering
|
||||
"Those who are last may yet be first", //38 Tainted
|
||||
"Generosity brings its own rewards", //39 Tainted Multi
|
||||
|
||||
//Shortcut messages
|
||||
"You must be at least level 8 to use this.", //40
|
||||
"You must be at least level 13 to use this.", //41
|
||||
"You must be at least level 17 to use this.", //42
|
||||
"Arcane knowledge gained!", //43
|
||||
|
||||
// New Shrines
|
||||
"That which does not kill you...", //44 Oily
|
||||
"Knowledge is power.", //45 Glowing
|
||||
"Give and you shall receive.", //46 Mendicants.
|
||||
"Some experience is gained by touch.", //47 Edisons
|
||||
"There's no place like home.", //48 Town
|
||||
"Spirtual energy is restored.", //49 Energy
|
||||
"You feel more agile.", //50 Time Morning
|
||||
"You feel stronger.", //51 Time Afternoon.
|
||||
"You feel wiser.", //52 Time Evening.
|
||||
"You feel refreshed.", //53 Time Night.
|
||||
"That which can break will.", //54 Murphy's
|
||||
};
|
||||
|
||||
/*-----------------------------------------------------------------------**
|
||||
** Local defines
|
||||
**-----------------------------------------------------------------------*/
|
||||
|
||||
#define MSGCNT 70
|
||||
|
||||
char msgflag;
|
||||
char msgdelay;
|
||||
char msgtable[80];
|
||||
char msgcnt = 0;
|
||||
|
||||
/*-----------------------------------------------------------------------**
|
||||
**-----------------------------------------------------------------------*/
|
||||
|
||||
void InitDiabloMsg(char e)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < msgcnt; i++) {
|
||||
if (msgtable[i] == e) return;
|
||||
}
|
||||
|
||||
msgtable[msgcnt] = e;
|
||||
if (msgcnt < 80) msgcnt++;
|
||||
msgflag = msgtable[0];
|
||||
msgdelay = MSGCNT;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------**
|
||||
**-----------------------------------------------------------------------*/
|
||||
|
||||
void ClrDiabloMsg()
|
||||
{
|
||||
for (int i = 0; i < 80; i++) msgtable[i] = MSG_NONE;
|
||||
msgflag = MSG_NONE;
|
||||
msgcnt = 0;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------**
|
||||
**-----------------------------------------------------------------------*/
|
||||
|
||||
void DrawDiabloMsg()
|
||||
{
|
||||
int i, x, y;
|
||||
long boffset;
|
||||
int sl,tw;
|
||||
|
||||
// Draw error box
|
||||
DrawCel(165, 318, pSTextSlidCels, 1, 12);
|
||||
DrawCel(591, 318, pSTextSlidCels, 4, 12);
|
||||
DrawCel(165, 366, pSTextSlidCels, 2, 12);
|
||||
DrawCel(591, 366, pSTextSlidCels, 3, 12);
|
||||
|
||||
x = 173;
|
||||
for (i = 0; i < 35; i++) {
|
||||
DrawCel(x, 318, pSTextSlidCels, 5, 12);
|
||||
DrawCel(x, 366, pSTextSlidCels, 7, 12);
|
||||
x += 12;
|
||||
}
|
||||
y = 330;
|
||||
for (i = 0; i < 3; i++) {
|
||||
DrawCel(165, y, pSTextSlidCels, 6, 12);
|
||||
DrawCel(591, y, pSTextSlidCels, 8, 12);
|
||||
y += 12;
|
||||
}
|
||||
|
||||
app_assert(gpBuffer);
|
||||
__asm {
|
||||
mov edi,dword ptr [gpBuffer]
|
||||
add edi,278952
|
||||
|
||||
xor eax,eax
|
||||
mov edx,27
|
||||
_YLp: mov ecx,216 // (width+6)/2
|
||||
_XLp1: stosb
|
||||
inc edi
|
||||
loop _XLp1
|
||||
sub edi,1200 // ((width+6)/2) + 768
|
||||
mov ecx,216 // (width+6)/2
|
||||
_XLp2: inc edi
|
||||
stosb
|
||||
loop _XLp2
|
||||
sub edi,1200 // ((width+6)/2) + 768
|
||||
dec edx
|
||||
jnz _YLp
|
||||
}
|
||||
|
||||
strcpy(tempstr, MsgStrings[msgflag]);
|
||||
|
||||
boffset = nBuffWTbl[342] + 165;
|
||||
sl = strlen(tempstr);
|
||||
tw = 0;
|
||||
for (i = 0; i < sl; i++) {
|
||||
BYTE c = char2print(tempstr[i]);
|
||||
c = fonttrans[c];
|
||||
tw += fontkern[c]+1;
|
||||
}
|
||||
if (tw < 442) boffset += (442 - tw) >> 1;
|
||||
for (i = 0; i < sl; i++) {
|
||||
BYTE c = char2print(tempstr[i]);
|
||||
c = fonttrans[c];
|
||||
if (c) DrawPanelFont(boffset, c, ICOLOR_GOLD);
|
||||
boffset += fontkern[c]+1;
|
||||
}
|
||||
|
||||
if (msgdelay > 0) msgdelay--;
|
||||
|
||||
if (msgdelay == 0) {
|
||||
msgcnt--;
|
||||
msgdelay = MSGCNT;
|
||||
if (msgcnt == 0) msgflag = MSG_NONE;
|
||||
else msgflag = msgtable[msgcnt];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user