Browse Source

[hellfire] SpawnPremium min diff

pull/914/head
Anders Jenbo 5 years ago
parent
commit
3b04a4d6d9
  1. 50
      Source/items.cpp

50
Source/items.cpp

@ -303,7 +303,29 @@ char *off_4A5AC4 = "SItem";
/** Specifies the current Y-coordinate used for validation of items on ground. */
int idoppely = 16;
/** Maps from Griswold premium item number to a quality level delta as added to the base quality level. */
int premiumlvladd[6] = { -1, -1, 0, 0, 1, 2 };
int premiumlvladd[SMITH_PREMIUM_ITEMS] = {
-1,
-1,
#ifdef HELLFIRE
-1,
#endif
0,
0,
#ifdef HELLFIRE
0,
0,
1,
1,
1,
#endif
1,
2,
#ifdef HELLFIRE
2,
3,
3,
#endif
};
#ifdef HELLFIRE
int items_4231CA(int i)
@ -4929,7 +4951,11 @@ int RndPremiumItem(int minlvl, int maxlvl)
return ril[random_(50, ri)] + 1;
}
#ifdef HELLFIRE
static void SpawnOnePremium(int i, int plvl, int myplr, bool noSpells)
#else
static void SpawnOnePremium(int i, int plvl)
#endif
{
int itype;
ItemStruct holditem;
@ -4971,18 +4997,40 @@ void SpawnPremium(int lvl)
if (numpremium < SMITH_PREMIUM_ITEMS) {
for (i = 0; i < SMITH_PREMIUM_ITEMS; i++) {
if (premiumitem[i]._itype == ITYPE_NONE)
#ifdef HELLFIRE
SpawnOnePremium(i, premiumlevel + premiumlvladd[i], pnum, FALSE);
#else
SpawnOnePremium(i, premiumlevel + premiumlvladd[i]);
#endif
}
numpremium = SMITH_PREMIUM_ITEMS;
}
while (premiumlevel < lvl) {
premiumlevel++;
#ifdef HELLFIRE
premiumitem[0] = premiumitem[3];
premiumitem[1] = premiumitem[4];
premiumitem[2] = premiumitem[5];
premiumitem[3] = premiumitem[6];
premiumitem[4] = premiumitem[7];
premiumitem[5] = premiumitem[8];
premiumitem[6] = premiumitem[9];
premiumitem[7] = premiumitem[10];
premiumitem[8] = premiumitem[11];
premiumitem[9] = premiumitem[12];
SpawnOnePremium(10, premiumlevel + premiumlvladd[10], pnum, FALSE);
premiumitem[11] = premiumitem[13];
SpawnOnePremium(12, premiumlevel + premiumlvladd[12], pnum, FALSE);
premiumitem[13] = premiumitem[14];
SpawnOnePremium(14, premiumlevel + premiumlvladd[14], pnum, FALSE);
#else
premiumitem[0] = premiumitem[2];
premiumitem[1] = premiumitem[3];
premiumitem[2] = premiumitem[4];
SpawnOnePremium(3, premiumlevel + premiumlvladd[3]);
premiumitem[4] = premiumitem[5];
SpawnOnePremium(5, premiumlevel + premiumlvladd[5]);
#endif
}
}

Loading…
Cancel
Save