Browse Source

Merge branch 'master' of github.com:diasurgical/devilution

pull/876/head
Anders Jenbo 6 years ago
parent
commit
cec9579186
  1. 22
      Source/control.cpp
  2. 4
      Source/diablo.cpp
  3. 2
      Source/doom.cpp
  4. 4
      Source/mainmenu.cpp
  5. 23
      Source/missiles.cpp
  6. 67
      Source/objects.cpp
  7. 2
      Source/objects.h
  8. 4
      Source/palette.cpp
  9. 14
      Source/path.cpp
  10. 27
      Source/themes.cpp

22
Source/control.cpp

@ -338,9 +338,9 @@ void DrawSpell()
st = RSPLTYPE_INVALID;
SetSpellTrans(st);
if (spl != SPL_INVALID)
DrawSpellCel(PANEL_X + 565, PANEL_Y + 119, pSpellCels, SpellITbl[spl], 56);
DrawSpellCel(PANEL_X + 565, PANEL_Y + 119, pSpellCels, SpellITbl[spl], SPLICONLENGTH);
else
DrawSpellCel(PANEL_X + 565, PANEL_Y + 119, pSpellCels, 27, 56);
DrawSpellCel(PANEL_X + 565, PANEL_Y + 119, pSpellCels, 27, SPLICONLENGTH);
}
void DrawSpellList()
@ -357,22 +357,22 @@ void DrawSpellList()
switch ((spell_type)i) {
case RSPLTYPE_SKILL:
SetSpellTrans(RSPLTYPE_SKILL);
c = SPLICONLAST + 3;
mask = plr[myplr]._pAblSpells;
c = SPLICONLAST + 3;
break;
case RSPLTYPE_SPELL:
c = SPLICONLAST + 4;
mask = plr[myplr]._pMemSpells;
c = SPLICONLAST + 4;
break;
case RSPLTYPE_SCROLL:
SetSpellTrans(RSPLTYPE_SCROLL);
c = SPLICONLAST + 1;
mask = plr[myplr]._pScrlSpells;
c = SPLICONLAST + 1;
break;
case RSPLTYPE_CHARGES:
SetSpellTrans(RSPLTYPE_CHARGES);
c = SPLICONLAST + 2;
mask = plr[myplr]._pISpells;
c = SPLICONLAST + 2;
break;
}
for (spl = 1, j = 1; j < MAX_SPELLS; spl <<= 1, j++) {
@ -398,10 +398,14 @@ void DrawSpellList()
pSplType = i;
#ifdef HELLFIRE
if (plr[myplr]._pClass == PC_MONK && j == SPL_SEARCH)
i = RSPLTYPE_SKILL;
pSplType = RSPLTYPE_SKILL;
#endif
DrawSpellCel(x, y, pSpellCels, c, SPLICONLENGTH);
#ifdef HELLFIRE
switch (pSplType) {
#else
switch (i) {
#endif
case RSPLTYPE_SKILL:
sprintf(infostr, "%s Skill", spelldata[pSpell].sSkillText);
break;
@ -1414,6 +1418,9 @@ void DrawChr()
CelDraw(SCREEN_X, 351 + SCREEN_Y, pChrPanel, 1, SPANEL_WIDTH);
ADD_PlrStringXY(20, 32, 151, plr[myplr]._pName, COL_WHITE);
#ifdef HELLFIRE
ADD_PlrStringXY(168, 32, 299, ClassStrTbl[plr[myplr]._pClass], COL_WHITE);
#else
if (plr[myplr]._pClass == PC_WARRIOR) {
ADD_PlrStringXY(168, 32, 299, "Warrior", COL_WHITE);
#ifndef SPAWN
@ -1423,6 +1430,7 @@ void DrawChr()
ADD_PlrStringXY(168, 32, 299, "Sorceror", COL_WHITE);
#endif
}
#endif
sprintf(chrstr, "%i", plr[myplr]._pLevel);
ADD_PlrStringXY(66, 69, 109, chrstr, COL_WHITE);

4
Source/diablo.cpp

@ -884,10 +884,14 @@ void RightMouseDown()
} else if (stextflag == STORE_NONE) {
if (spselflag) {
SetSpell();
#ifdef HELLFIRE
} else if ((!sbookflag || MouseX <= RIGHT_PANEL) && (MouseY >= SPANEL_HEIGHT || (!TryIconCurs() && (pcursinvitem == -1 || !UseInvItem(myplr, pcursinvitem))))) {
#else
} else if (MouseY >= SPANEL_HEIGHT
|| (!sbookflag || MouseX <= RIGHT_PANEL)
&& !TryIconCurs()
&& (pcursinvitem == -1 || !UseInvItem(myplr, pcursinvitem))) {
#endif
if (pcurs == CURSOR_HAND) {
if (pcursinvitem == -1 || !UseInvItem(myplr, pcursinvitem))
CheckPlrSpell();

2
Source/doom.cpp

@ -145,7 +145,7 @@ void doom_draw()
}
#endif
CelDraw(PANEL_X, PANEL_Y - 1, pDoomCel, 1, SCREEN_WIDTH);
CelDraw(PANEL_X, PANEL_Y - 1, pDoomCel, 1, 640);
}
DEVILUTION_END_NAMESPACE

4
Source/mainmenu.cpp

@ -172,7 +172,11 @@ BOOL mainmenu_multi_player()
void mainmenu_play_intro()
{
music_stop();
#ifdef HELLFIRE
play_movie("gendata\\Hellfire.smk", TRUE);
#else
play_movie("gendata\\diablo1.smk", TRUE);
#endif
mainmenu_refresh_music();
}
#endif

23
Source/missiles.cpp

@ -2279,13 +2279,15 @@ void AddFirewall(int mi, int sx, int sy, int dx, int dy, int midir, char mienemy
{
int i;
missile[mi]._midam = 16 * (random_(53, 10) + random_(53, 10) + plr[id]._pLevel + 2) >> 1;
missile[mi]._midam = (random_(53, 10) + random_(53, 10) + plr[id]._pLevel + 2) << 4;
missile[mi]._midam >>= 1;
GetMissileVel(mi, sx, sy, dx, dy, 16);
missile[mi]._mirange = 10;
i = missile[mi]._mispllvl;
if (i > 0)
missile[mi]._mirange = 10 * (i + 1);
missile[mi]._mirange = ((missile[mi]._mirange * plr[id]._pISplDur >> 3) & 0xFFFFFFF0) + 16 * missile[mi]._mirange;
missile[mi]._mirange += (plr[id]._pISplDur * missile[mi]._mirange) >> 7;
missile[mi]._mirange <<= 4;
missile[mi]._miVar1 = missile[mi]._mirange - missile[mi]._miAnimLen;
missile[mi]._miVar2 = 0;
}
@ -2361,6 +2363,7 @@ void AddMisexp(int mi, int sx, int sy, int dx, int dy, int midir, char mienemy,
if (mienemy && id > 0) {
mon = monster[id].MType;
#ifndef HELLFIRE
if (mon->mtype == MT_SUCCUBUS)
SetMissAnim(mi, MFILE_FLAREEXP);
if (mon->mtype == MT_SNOWWICH)
@ -2369,6 +2372,22 @@ void AddMisexp(int mi, int sx, int sy, int dx, int dy, int midir, char mienemy,
SetMissAnim(mi, MFILE_SCBSEXPD);
if (mon->mtype == MT_SOLBRNR)
SetMissAnim(mi, MFILE_SCBSEXPC);
#else
switch (mon->mtype) {
case MT_SUCCUBUS:
SetMissAnim(mi, MFILE_FLAREEXP);
break;
case MT_SNOWWICH:
SetMissAnim(mi, MFILE_SCBSEXPB);
break;
case MT_HLSPWN:
SetMissAnim(mi, MFILE_SCBSEXPD);
break;
case MT_SOLBRNR:
SetMissAnim(mi, MFILE_SCBSEXPC);
break;
}
#endif
}
missile[mi]._mix = missile[dx]._mix;

67
Source/objects.cpp

@ -74,35 +74,35 @@ char shrinemax[NUM_SHRINETYPE] = {
*/
BYTE shrineavail[NUM_SHRINETYPE] = {
SHRINETYPE_ANY, // SHRINE_MYSTERIOUS
SHRINETYPE_ANY, // SHRINE_HIDDEN
SHRINETYPE_SINGLE, // SHRINE_GLOOMY
SHRINETYPE_SINGLE, // SHRINE_WEIRD
SHRINETYPE_ANY, // SHRINE_MAGICAL
SHRINETYPE_ANY, // SHRINE_STONE
SHRINETYPE_ANY, // SHRINE_RELIGIOUS
SHRINETYPE_ANY, // SHRINE_ENCHANTED
SHRINETYPE_SINGLE, // SHRINE_THAUMATURGIC
SHRINETYPE_ANY, // SHRINE_FASCINATING
SHRINETYPE_ANY, // SHRINE_CRYPTIC
SHRINETYPE_ANY, // SHRINE_MAGICAL2
SHRINETYPE_ANY, // SHRINE_ELDRITCH
SHRINETYPE_ANY, // SHRINE_EERIE
SHRINETYPE_ANY, // SHRINE_DIVINE
SHRINETYPE_ANY, // SHRINE_HOLY
SHRINETYPE_ANY, // SHRINE_SACRED
SHRINETYPE_ANY, // SHRINE_SPIRITUAL
SHRINETYPE_MULTI, // SHRINE_SPOOKY
SHRINETYPE_ANY, // SHRINE_ABANDONED
SHRINETYPE_ANY, // SHRINE_CREEPY
SHRINETYPE_ANY, // SHRINE_QUIET
SHRINETYPE_ANY, // SHRINE_SECLUDED
SHRINETYPE_ANY, // SHRINE_ORNATE
SHRINETYPE_ANY, // SHRINE_GLIMMERING
SHRINETYPE_MULTI // SHRINE_TAINTED
};
SHRINETYPE_ANY, // SHRINE_MYSTERIOUS
SHRINETYPE_ANY, // SHRINE_HIDDEN
SHRINETYPE_SINGLE, // SHRINE_GLOOMY
SHRINETYPE_SINGLE, // SHRINE_WEIRD
SHRINETYPE_ANY, // SHRINE_MAGICAL
SHRINETYPE_ANY, // SHRINE_STONE
SHRINETYPE_ANY, // SHRINE_RELIGIOUS
SHRINETYPE_ANY, // SHRINE_ENCHANTED
SHRINETYPE_SINGLE, // SHRINE_THAUMATURGIC
SHRINETYPE_ANY, // SHRINE_FASCINATING
SHRINETYPE_ANY, // SHRINE_CRYPTIC
SHRINETYPE_ANY, // SHRINE_MAGICAL2
SHRINETYPE_ANY, // SHRINE_ELDRITCH
SHRINETYPE_ANY, // SHRINE_EERIE
SHRINETYPE_ANY, // SHRINE_DIVINE
SHRINETYPE_ANY, // SHRINE_HOLY
SHRINETYPE_ANY, // SHRINE_SACRED
SHRINETYPE_ANY, // SHRINE_SPIRITUAL
SHRINETYPE_MULTI, // SHRINE_SPOOKY
SHRINETYPE_ANY, // SHRINE_ABANDONED
SHRINETYPE_ANY, // SHRINE_CREEPY
SHRINETYPE_ANY, // SHRINE_QUIET
SHRINETYPE_ANY, // SHRINE_SECLUDED
SHRINETYPE_ANY, // SHRINE_ORNATE
SHRINETYPE_ANY, // SHRINE_GLIMMERING
SHRINETYPE_MULTI // SHRINE_TAINTED
};
/** Maps from book_id to book name. */
char *StoryBookName[9] = {
char *StoryBookName[] = {
"The Great Conflict",
"The Wages of Sin are War",
"The Tale of the Horadrim",
@ -111,7 +111,16 @@ char *StoryBookName[9] = {
"The Binding of the Three",
"The Realms Beyond",
"Tale of the Three",
"The Black King"
"The Black King",
#ifdef HELLFIRE
"Journal: The Ensorcellment",
"Journal: The Meeting",
"Journal: The Tirade",
"Journal: His Power Grows",
"Journal: NA-KRUL",
"Journal: The End",
"A Spellbook",
#endif
};
/** Specifies the speech IDs of each dungeon type narrator book, for each player class. */
int StoryText[3][3] = {

2
Source/objects.h

@ -186,7 +186,7 @@ extern char *shrinestrs[NUM_SHRINETYPE];
extern char shrinemin[NUM_SHRINETYPE];
extern char shrinemax[NUM_SHRINETYPE];
extern BYTE shrineavail[NUM_SHRINETYPE];
extern char *StoryBookName[9];
extern char *StoryBookName[];
extern int StoryText[3][3];
#ifdef __cplusplus

4
Source/palette.cpp

@ -242,7 +242,7 @@ void palette_update_crypt()
if (dword_6E2D58 > 1) {
col = system_palette[15];
for (i = 15; i > 0; i--) {
for (i = 15; i > 1; i--) {
system_palette[i].r = system_palette[i - 1].r;
system_palette[i].g = system_palette[i - 1].g;
system_palette[i].b = system_palette[i - 1].b;
@ -283,7 +283,7 @@ void palette_update_hive()
if (dword_6E2D60 == 2) {
col = system_palette[8];
for (i = 8; i > 0; i--) {
for (i = 8; i > 1; i--) {
system_palette[i].r = system_palette[i - 1].r;
system_palette[i].g = system_palette[i - 1].g;
system_palette[i].b = system_palette[i - 1].b;

14
Source/path.cpp

@ -271,9 +271,12 @@ BOOL path_parent_path(PATHNODE *pPath, int dx, int dy, int sx, int sy)
PATHNODE *path_get_node1(int dx, int dy)
{
PATHNODE *result = path_2_nodes->NextNode;
while (result != NULL && (result->x != dx || result->y != dy))
while (result != NULL) {
if (result->x == dx && result->y == dy)
return result;
result = result->NextNode;
return result;
}
return NULL;
}
/**
@ -282,9 +285,12 @@ PATHNODE *path_get_node1(int dx, int dy)
PATHNODE *path_get_node2(int dx, int dy)
{
PATHNODE *result = pnode_ptr->NextNode;
while (result != NULL && (result->x != dx || result->y != dy))
while (result != NULL) {
if (result->x == dx && result->y == dy)
return result;
result = result->NextNode;
return result;
}
return NULL;
}
/**

27
Source/themes.cpp

@ -584,21 +584,18 @@ void Theme_MonstPit(int t)
r = random_(0, 100) + 1;
ixp = 0;
iyp = 0;
if (r > 0) {
while (TRUE) {
if (dTransVal[ixp][iyp] == themes[t].ttval && !nSolidTable[dPiece[ixp][iyp]]) {
--r;
}
if (r <= 0) {
break;
}
ixp++;
if (ixp == MAXDUNX) {
ixp = 0;
iyp++;
if (iyp == MAXDUNY) {
iyp = 0;
}
while (r > 0) {
if (dTransVal[ixp][iyp] == themes[t].ttval && !nSolidTable[dPiece[ixp][iyp]]) {
--r;
}
if (r <= 0)
continue;
ixp++;
if (ixp == MAXDUNX) {
ixp = 0;
iyp++;
if (iyp == MAXDUNY) {
iyp = 0;
}
}
}

Loading…
Cancel
Save