getPrevShip( ) should probably not be returning e->level when wrapping around to the highest visible ship, since (1) it reveals unlockable ships before they are unlocked (for levels 6 & 7) and (2) overindexes the ship array /crashes (for levels 8+). Should return the highest unlocked level (0-5) instead, I think.