internal override bool Artifacts(int index) { if (CPlayerState == -1) { return(false); } if (index < 0) { throw new Exception("Index can't be negative"); } switch (index) { case 0: return(Dolphin.ReadUInt32(CPlayerState + OFF_ARTIFACT_OF_TRUTH_OBTAINED) > 0); case 1: return(Dolphin.ReadUInt32(CPlayerState + OFF_ARTIFACT_OF_STRENGTH_OBTAINED) > 0); case 2: return(Dolphin.ReadUInt32(CPlayerState + OFF_ARTIFACT_OF_ELDER_OBTAINED) > 0); case 3: return(Dolphin.ReadUInt32(CPlayerState + OFF_ARTIFACT_OF_WILD_OBTAINED) > 0); case 4: return(Dolphin.ReadUInt32(CPlayerState + OFF_ARTIFACT_OF_LIFEGIVER_OBTAINED) > 0); case 5: return(Dolphin.ReadUInt32(CPlayerState + OFF_ARTIFACT_OF_WARRIOR_OBTAINED) > 0); case 6: return(Dolphin.ReadUInt32(CPlayerState + OFF_ARTIFACT_OF_CHOZO_OBTAINED) > 0); case 7: return(Dolphin.ReadUInt32(CPlayerState + OFF_ARTIFACT_OF_NATURE_OBTAINED) > 0); case 8: return(Dolphin.ReadUInt32(CPlayerState + OFF_ARTIFACT_OF_SUN_OBTAINED) > 0); case 9: return(Dolphin.ReadUInt32(CPlayerState + OFF_ARTIFACT_OF_WORLD_OBTAINED) > 0); case 10: return(Dolphin.ReadUInt32(CPlayerState + OFF_ARTIFACT_OF_SPIRIT_OBTAINED) > 0); case 11: return(Dolphin.ReadUInt32(CPlayerState + OFF_ARTIFACT_OF_NEWBORN_OBTAINED) > 0); default: throw new Exception("There are no artifacts past the 12th artifact"); } }