diff --git a/Source/debug.cpp b/Source/debug.cpp index 2c89ba600..bf6f0d01c 100644 --- a/Source/debug.cpp +++ b/Source/debug.cpp @@ -116,7 +116,7 @@ void StoresCheat() numpremium = 0; - for (i = 0; i < 6; i++) + for (i = 0; i < SMITH_PREMIUM_ITEMS; i++) premiumitem[i]._itype = -1; SpawnPremium(30); diff --git a/Source/items.cpp b/Source/items.cpp index 243a4f9b8..281b69340 100644 --- a/Source/items.cpp +++ b/Source/items.cpp @@ -3879,12 +3879,12 @@ void SpawnPremium(int lvl) { int i; - if (numpremium < 6) { - for (i = 0; i < 6; i++) { + if (numpremium < SMITH_PREMIUM_ITEMS) { + for (i = 0; i < SMITH_PREMIUM_ITEMS; i++) { if (premiumitem[i]._itype == ITYPE_NONE) SpawnOnePremium(i, premiumlevel + premiumlvladd[i]); } - numpremium = 6; + numpremium = SMITH_PREMIUM_ITEMS; } while (premiumlevel < lvl) { premiumlevel++; @@ -4316,7 +4316,7 @@ void RecalcStoreStats() smithitem[i]._iStatFlag = StoreStatOk(&smithitem[i]); } } - for (i = 0; i < 6; i++) { + for (i = 0; i < SMITH_PREMIUM_ITEMS; i++) { if (premiumitem[i]._itype != ITYPE_NONE) { premiumitem[i]._iStatFlag = StoreStatOk(&premiumitem[i]); } diff --git a/Source/loadsave.cpp b/Source/loadsave.cpp index 1e593e0df..f80186da1 100644 --- a/Source/loadsave.cpp +++ b/Source/loadsave.cpp @@ -152,7 +152,7 @@ void LoadGame(BOOL firstflag) numpremium = WLoad(); premiumlevel = WLoad(); - for (i = 0; i < 6; i++) + for (i = 0; i < SMITH_PREMIUM_ITEMS; i++) LoadPremium(i); automapflag = OLoad(); @@ -281,7 +281,11 @@ void SaveGame() BYTE *SaveBuff = DiabloAllocPtr(dwLen); tbuff = SaveBuff; +#ifdef HELLFIRE + ISave('HELF'); +#else ISave('RETL'); +#endif OSave(setlevel); WSave(setlvlnum); WSave(currlevel); @@ -300,6 +304,9 @@ void SaveGame() WSave(gnLevelTypeTbl[i]); } +#ifdef HELLFIRE + plr[myplr].pDifficulty = gnDifficulty; +#endif SavePlayer(myplr); for (i = 0; i < MAXQUESTS; i++) @@ -401,7 +408,7 @@ void SaveGame() WSave(numpremium); WSave(premiumlevel); - for (i = 0; i < 6; i++) + for (i = 0; i < SMITH_PREMIUM_ITEMS; i++) SavePremium(i); OSave(automapflag); diff --git a/Source/stores.cpp b/Source/stores.cpp index ad956f175..8a65d75f8 100644 --- a/Source/stores.cpp +++ b/Source/stores.cpp @@ -5,11 +5,7 @@ int storenumh; int stextlhold; ItemStruct boyitem; int stextshold; -#ifdef HELLFIRE -ItemStruct premiumitem[15]; -#else -ItemStruct premiumitem[6]; -#endif +ItemStruct premiumitem[SMITH_PREMIUM_ITEMS]; BYTE *pSTextBoxCels; int premiumlevel; int talker; diff --git a/Source/stores.h b/Source/stores.h index 6def74cbd..278968dea 100644 --- a/Source/stores.h +++ b/Source/stores.h @@ -7,11 +7,7 @@ extern int storenumh; extern int stextlhold; extern ItemStruct boyitem; extern int stextshold; -#ifdef HELLFIRE -extern ItemStruct premiumitem[15]; -#else -extern ItemStruct premiumitem[6]; -#endif +extern ItemStruct premiumitem[SMITH_PREMIUM_ITEMS]; extern BYTE *pSTextBoxCels; extern int premiumlevel; extern int talker; diff --git a/defs.h b/defs.h index 4a557589f..4febefb13 100644 --- a/defs.h +++ b/defs.h @@ -67,8 +67,10 @@ // todo: enums #ifdef HELLFIRE #define NUMLEVELS 25 +#define SMITH_PREMIUM_ITEMS 15 #else #define NUMLEVELS 17 +#define SMITH_PREMIUM_ITEMS 6 #endif // from diablo 2 beta