The following bugs were found while working on this.
# Armor/Weapon Cap Logic Swapped
When equipping the Battle Suit, the code checks to make sure the weapons slots aren't overflowed. Roughly:
```c
void Player_PickUpBattleSuit() {
...
i = NumberOfWeapons;
if (NumberOfWeapons >= 4) {
i = 3;
}
ArmorInventory[i] = ARMOR_BATTLE_SUIT;
NumberOfArmors = i + 1;
}
```
And similarly, when picking up the Dragon Slayer:
```c
void Player_PickUpDragonSlayer() {
...
i = NumberOfArmors;
if (NumberOfArmors >= 4) {
i = 3;
}
WeaponInventory[i] = WEAPON_DRAGON_SLAYER;
NumberOfWeapons = i + 1;
}
```
This has the effect of setting the wrong index for the Dragon Slayer or Battle Suit, based on which armor/weapons you have when you equip either.
This doesn't seem to truly impact the game, as there's code that checks if you have all three and then sets your inventory. But it's possible that this result in an empty item slot or prevent acquiring other armors/weapons, overwriting them when the Dragon Slayer/Battle Suit are picked up.