Fountain of Tears and Jarulf
#1
I have a question regarding the Fountain of Tears. I've been Ironmanning
a bit recently and have noticed that the Fountain of Tears, in my
experience, seems to give a non-random result. I've often
hit it and seen my Dexterity be the attribute it chooses to increase.
This led me check with Jarulf's Guide where I found this:

"There exists a bug that will cause any shrine with a random effect to
at times not be random and instead have a specific result. This bug is
most noticeable in the first games you play without exiting Diablo
completely (decreasing in probability for each dungeon level you enter,
including reentering of a level). For the most time, the shrines will
be random however. The end effect of the bug is that the randomness of
those shrines favor a certain result. The favored results are summarized
in the table below."

The table then goes on to list the results when hitting Enchanted, Hidden,
Mysterious, Spiritual, Tainted, and Murphy's shrines.

Also appearing in the same chapter of Jarulf's Guide is this notation:

"Cauldrons and Goat shrines are not affected by this bug."

My question is, where does the Fountain of Tears fit in in all this?
It seems to be a "shrine with a random effect". Or is it considered to be
something else? Does the bug that causes "any shrine with a random effect
to at times not be random" affect the Fountain of Tears, regardless of
whether it truly is a "shrine" or not? In what way does it affect the
Fountain of Tears?

Or by some amazing circumstance is it truly, totally random (which
makes you wonder if Blizzard then _purposefully_ wanted those particular
shrines NOT to be random)?

Does entering and leaving levels affect the Fountain of Tears shrine
the same way it does Goat shrines?

Or is the FoT shrine immune to the non-randomness of other 'random'
shrines the way "cauldrons and goat shrines are not affected by
this bug."?
Reply
#2
Hi,

Quote:My question is, where does the Fountain of Tears fit in in all this?
Sorry, don't know.

Quote:. . . (which makes you wonder if Blizzard then _purposefully_ wanted those particular shrines NOT to be random)?
By my best recollection of how the bug works, I'd say it's not on purpose. As I recall, the game does generate a value for what the shrine should be. But then it fails to store that value. So, whatever happens to be in the memory location used to store that value when the game is started is what you get. If it is the first game of a session, then that value is, I think, zero, and you get whatever shrine corresponds to the first one in the shrine array. Since that location may be used for different things as the game is played, the second or later games of a session will be filled with whatever the previous sessions left there.

However, this is all based on my memories of discussions by the people who actually read the code. I may be mistaken in some or all of the details.

--Pete

How big was the aquarium in Noah's ark?

Reply
#3
Even during the first game, the memory space that should hold the seeded value for that shrine could get filled with garbage by loading other levels before you take the shrine. (I imagine that if they worked properly, the effect would be predetermined at game creation.) So effectively the shrines are random, and clearly they were meant to be random or there wouldn't be a choice to be made, but if you play short sessions then the chance of that "zero" result is effectively much higher than any other possibility. Surely it's not the intended behavior. But I'm just going by what Jarulf has said. My programming skills are only a few steps beyond "Hello, World!".
Reply
#4
Nystul's comments are correct, as I remember the code. Sadly, like the Flash damage bug, fixing this problem requires very little code change. The quickest fix is to add a new loop during game startup to seed all those locations with random values. A better approach might be to set the seed equal to game seed + (N * dlvl) + (M * slot) for some values N and M, such that each shrine has a different seed from all other shrines on all levels and in all slots for that game. This would give adequate randomness that most people wouldn't notice it was predictable.
Reply
#5
Two small comments.

The bug with uninitialized seed for shrines affects only the "true" shrines. Thus not Fountain of tears, Murky Pools, Goat Shrines and so on. They each have their own initialization code and onyl actual shrines miss the code to seet the seed.. The reamrk on Goat Shrines and Couldrons in my Guide was added due to the fact that those are told to have effects like true shrines and I wanted to clarify they still was not affected by the bug. The Bug lies in the initialization code, not the execution code when you hit the object.

As for fixinng it, the easy way is of course to adde the few lines of code that would initialize the seed for shrines.

By they way, was I rusty looking at the code? Too few notes lfet by myself as well:)
There are three types of people in the world. Those who can count and those who can't.
Reply
#6
Quote:The reamrk on Goat Shrines and Couldrons in my Guide was added due to the fact that those are told to have effects like true shrines and I wanted to clarify they still was not affected by the bug.

You just can´t win. You put in a line to help make sure we don´t misunderstand what you wrote and we figure out a way to misunderstand the new line. Anyway, thanks to all for their input.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)