//! This is the Final Fantasy VII crate for Rust. //! It contains information about the late 1990's game Final Fantasy VII. pub mod locations { //! This module contains information about the locations you can visit in Final Fantasy VII. pub fn get_locations() -> Vec { let mut all_locations: Vec = vec![]; all_locations.extend(get_locations_eastern()); all_locations.extend(get_locations_western()); all_locations.extend(get_locations_northern()); return all_locations; } fn get_locations_northern() -> Vec { return vec![ Location::new("Bone Village", Area::Icicle, Continent::Northern), Location::new("Sleeping Forest", Area::Icicle, Continent::Northern), Location::new("Corel Valley", Area::Icicle, Continent::Northern), Location::new("City of the Ancients", Area::Icicle, Continent::Northern), Location::new("Corel Valley Cave", Area::Icicle, Continent::Northern), Location::new("Icicle Inn", Area::Icicle, Continent::Northern), Location::new("Great Glacier", Area::Icicle, Continent::Northern), Location::new("Gaea's Cliff", Area::Icicle, Continent::Northern), Location::new("North Crater", Area::Icicle, Continent::Northern), Location::new("Whirlwind Maze", Area::Icicle, Continent::Northern), Location::new("Northern Cave", Area::Icicle, Continent::Northern), Location::new("Chocobo Sage's House", Area::Icicle, Continent::Northern), ]; } fn get_locations_western() -> Vec { return vec![ Location::new("Costa del Sol", Area::Corel, Continent::Western), Location::new("Mt. Corel", Area::Corel, Continent::Western), Location::new("Coal Train", Area::Corel, Continent::Western), Location::new("North Corel", Area::GoldSaucer, Continent::Western), Location::new("Gold Saucer", Area::GoldSaucer, Continent::Western), Location::new("Wonder Square", Area::GoldSaucer, Continent::Western), Location::new("Battle Square", Area::GoldSaucer, Continent::Western), Location::new("Chocobo Square", Area::GoldSaucer, Continent::Western), Location::new("Speed Square", Area::GoldSaucer, Continent::Western), Location::new("Corel Prison", Area::GoldSaucer, Continent::Western), Location::new("???", Area::GoldSaucer, Continent::Western), Location::new("Gongaga", Area::Gongaga, Continent::Western), Location::new("Materia Cave", Area::Gongaga, Continent::Western), Location::new("Weapon Seller", Area::Gongaga, Continent::Western), Location::new("Cosmo Canyon", Area::Cosmo, Continent::Western), Location::new("Cave of the Gi", Area::Cosmo, Continent::Western), Location::new("Ancient Forest", Area::Cosmo, Continent::Western), Location::new("Nibelheim", Area::Nibel, Continent::Western), Location::new("Shinra Mansion", Area::Nibel, Continent::Western), Location::new("Mount Nibel", Area::Nibel, Continent::Western), Location::new("Nibel Reactor", Area::Nibel, Continent::Western), Location::new("???", Area::Nibel, Continent::Western), Location::new("Rocket Town", Area::RocketLaunchPad, Continent::Western), Location::new("Materia Cave", Area::NorthCorel, Continent::Western), ]; } fn get_locations_eastern() -> Vec { return vec![ Location::new("Midgar Sector 1", Area::Midgar, Continent:: Eastern ), Location::new("Mako Reactor 1", Area::Midgar, Continent:: Eastern ), Location::new("Midgar Sector 7", Area::Midgar, Continent:: Eastern ), Location::new("Seventh Heaven", Area::Midgar, Continent:: Eastern ), Location::new("Train Graveyard", Area::Midgar, Continent:: Eastern ), Location::new("Midgar Sector 4", Area::Midgar, Continent:: Eastern ), Location::new("Midgar Sector 5", Area::Midgar, Continent:: Eastern ), Location::new("Mako Reactor 5", Area::Midgar, Continent:: Eastern ), Location::new("Sector 5 Slums Church", Area::Midgar, Continent:: Eastern ), Location::new("Midgar Sector 6", Area::Midgar, Continent:: Eastern ), Location::new("Wall Market", Area::Midgar, Continent:: Eastern ), Location::new("Honey Bee Inn", Area::Midgar, Continent:: Eastern ), Location::new("Sewer", Area::Midgar, Continent:: Eastern ), Location::new("Midgar Sector 0", Area::Midgar, Continent:: Eastern ), Location::new("Shinra Building", Area::Midgar, Continent:: Eastern ), Location::new("Midgar Expressway", Area::Midgar, Continent:: Eastern ), Location::new("Midgar Wasteland", Area::Midgar, Continent:: Eastern ), Location::new("Kalm", Area::Midgar, Continent:: Eastern ), Location::new("Chocobo Farm", Area::Grasslands, Continent:: Eastern ), Location::new("Marshes", Area::Grasslands, Continent:: Eastern ), Location::new("Mythril Mine", Area::Grasslands, Continent:: Eastern ), Location::new("Junon", Area::Junon, Continent:: Eastern ), Location::new("Cargo Ship", Area::Junon, Continent:: Eastern ), Location::new("Underwater Reactor", Area::Junon, Continent:: Eastern ), Location::new("Old Man's House", Area::Junon, Continent:: Eastern ), Location::new("Fort Condor", Area::Junon, Continent:: Eastern ), Location::new("Under Junon", Area::Junon, Continent:: Eastern ), Location::new("Mythril Mine", Area::Junon, Continent:: Eastern ), ]; } impl Location { fn new(name: &str, area: Area, continent: Continent) -> Location { return Location { name: name.to_string(), area, continent, } } } enum Continent { Western, Eastern, Northern, Other, DebugRoom } enum Area { Midgar, Grasslands, Junon, Corel, GoldSaucer, Gongaga, Cosmo, Nibel, RocketLaunchPad, NorthCorel, Icicle, Woodlands, Mideel, Wutai, SeaBottom, } pub struct Location { name: String, area: Area, continent: Continent, } }