public string GetStoryPoint(int id) { if (storyProgression.ContainsKey(id)) { var locations = new FFVIIILocation(); return(locations.locationList[storyProgression[id]]); } return("???"); }
public void GetFieldValues() { List <FFVIIIComponent> addresses = new List <FFVIIIComponent>(); addresses.Add(new FFVIIIComponent { AddressOffset = 0x18FE9C8, ByteLength = 2, Description = "SeeD Pts" }); addresses.Add(new FFVIIIComponent { AddressOffset = 0x18FE764, ByteLength = 4, Description = "Gil" }); addresses.Add(new FFVIIIComponent { AddressOffset = 0x18FE9CC, ByteLength = 2, Description = "Battles Won" }); addresses.Add(new FFVIIIComponent { AddressOffset = 0x18FE9D2, ByteLength = 2, Description = "Battles Escaped" }); addresses.Add(new FFVIIIComponent { AddressOffset = 0x18FE928, ByteLength = 4, Description = "Play Time" }); addresses.Add(new FFVIIIComponent { AddressOffset = 0x18FEAB8, ByteLength = 2, Description = "Story Progress" }); //Centra addresses.Add(new FFVIIIComponent { AddressOffset = 0x18FE940, ByteLength = 1, Description = "Tonberry Kills" }); Dictionary <string, string> fieldStats = new Dictionary <string, string>(); foreach (FFVIIIComponent viiiComponent in addresses) { int i = ReadMemoryAddress(viiiComponent.AddressOffset, viiiComponent.ByteLength); string output = i.ToString(); //Play Time if (viiiComponent.AddressOffset == 0x18FE928) { TimeSpan t = TimeSpan.FromSeconds(i); output = string.Format("{0:D2}:{1:D2}", t.Hours, t.Minutes); } //SeeD Pts else if (viiiComponent.AddressOffset == 0x18FE9C8) { output = output + "(Lv. " + (i / 100) + ")"; } fieldStats.Add(viiiComponent.Description, output); } /*********** MAP LOCATION ***********/ //Are we in a local map or the world map? //This will be 0 on world map and 1 in local maps //EXCEPT, it will also be 1 when in menu. //So we'll combine it with a model loading flag var townMapLoadedAddress = new FFVIIIComponent { AddressOffset = 0x1C3ED2C, ByteLength = 2, Description = "In Town" }; var partyLoadedAddress = new FFVIIIComponent { AddressOffset = 0x18C2A34, ByteLength = 2, Description = "Party Loaded" }; var townMapLoaded = ReadMemoryAddress(townMapLoadedAddress.AddressOffset, townMapLoadedAddress.ByteLength); var partyLoaded = ReadMemoryAddress(partyLoadedAddress.AddressOffset, partyLoadedAddress.ByteLength); bool inTown = false; if (townMapLoaded == 1 && partyLoaded == 1) { //We're truly in town inTown = true; } if (inTown) { //Where are we? var locations = new FFVIIILocation(); var maps = new FFVIIIMap(); var thisMap = new FFVIIIComponent { AddressOffset = 0x18D2FC0, ByteLength = 2, Description = "Current Map" }; int thisMapId = ReadMemoryAddress(thisMap.AddressOffset, thisMap.ByteLength); int thisMapLocationId = maps.getLocation(thisMapId); string thisMapName = locations.getName(thisMapLocationId); fieldStats.Add("Location", thisMapName); } else { fieldStats.Add("Location", "World Map"); } MakeWebpage(fieldStats); }