Bottle randomization refactored to be done on generation of itempool, not with the ItemFactory function. This allows difficulty settings to use different bottle pools more easily as well as allows the pedestal, credits, and spoiler logs to report bottle contents. Expert and insane difficulties deliberately set the same bottle content to all four bottles since the bottle limit is one in those modes so this only guarantees that all racers regardless of play sequence will get the same one free bottle content.
Added back in the normal number of progressive swords and bottles (and in the case of hard armor and shields) to the higher difficulties which will make it easier on average for players to find their earlier pieces of this equipment. Non-progressive alternatives were supported and set not to disrupt the average value of equipment. Hard still ignores progressive setting for armor since it doesn't change when players get armor upgrades (find one, get blue mail) but does allow non-progressive players to get the overflow item from the second armor discovery.
This file contains the definition for the item pool generation function. I'm not going to sugarcoat this; what I wrote is a total mess. This considers all possible combinations between timed modes (two distinct sets of timers), triforce hunt, progressives on/off/random, and all five of the difficulty settings from the vt randomizer. Maybe it would have been better to just hardcode every combination as its own array instead of build smaller arrays and use some semblance of logic to piece them together, but this is what I did. I'm not satisfied at all with the ugly, ugly form of this code and hope to revisit later, but for now, it adds significant improved functionality.