Browse Source

Theme_Treasure bin exact

pull/25/head
Robin Eklind 8 years ago
parent
commit
fe4ee691ea
  1. 34
      Source/themes.cpp

34
Source/themes.cpp

@ -853,13 +853,17 @@ void __fastcall Theme_SkelRoom(int t)
}
}
// Theme_Treasure initializes the treasure theme.
//
// Parameters:
// - t: theme number (index into themes array).
void __fastcall Theme_Treasure(int t)
{
int yp; // esi
int xp; // edi
int rv; // [esp+14h] [ebp-10h]
char monstrnd[4]; // [esp+18h] [ebp-Ch]
char treasrnd[4]; // [esp+20h] [ebp-4h]
int xp;
int yp;
int i;
char treasrnd[4];
char monstrnd[4];
treasrnd[0] = 4;
treasrnd[1] = 9;
@ -873,17 +877,23 @@ void __fastcall Theme_Treasure(int t)
for (yp = 0; yp < 112; yp++) {
for (xp = 0; xp < 112; xp++) {
if (dung_map[xp][yp] == themes[t].ttval && !nSolidTable[dPiece[xp][yp]]) {
rv = random(0, treasrnd[leveltype - 1]);
if (!(2 * random(0, treasrnd[leveltype - 1]))) {
CreateTypeItem(xp, yp, 0, ITYPE_GOLD, 0, 0, 1);
int rv = random(0, treasrnd[leveltype - 1]);
// BUGFIX: the `2*` in `2*random(0, treasrnd...) == 0` has no effect, should probably be `random(0, 2*treasrnd...) == 0`
if ((2*random(0, treasrnd[leveltype - 1])) == 0) {
CreateTypeItem(xp, yp, FALSE, ITYPE_GOLD, IMISC_NONE, FALSE, TRUE);
ItemNoFlippy();
}
if (!rv) {
CreateRndItem(xp, yp, 0, 0, 1);
if (rv == 0) {
CreateRndItem(xp, yp, FALSE, FALSE, TRUE);
ItemNoFlippy();
} else {
if (rv < treasrnd[leveltype - 1]-2) {
continue;
}
}
if (rv >= treasrnd[leveltype - 1] - 2 && leveltype != 1) {
item[ItemNoFlippy()]._ivalue >>= 1; /* check */
i = ItemNoFlippy();
if (rv >= treasrnd[leveltype - 1] - 2 && leveltype != DTYPE_CATHEDRAL) {
item[i]._ivalue >>= 1; /* check */
}
}
}

Loading…
Cancel
Save