public RawMap(string mapID) { MapID = mapID; Name = ""; Music = ""; Npc = new List<MapNpcPreset>(); MaxX = 19; MaxY = 14; Tile = new Tile[MaxX + 1, MaxY + 1]; }
public Tile(Data.Tile tile) { this.tile = tile; }
public static void LoadRawMap(MySql database, string mapID, RawMap rawMap) { string query = "SELECT map_general.Revision, map_general.MaxX, map_general.MaxY, " + "map_switchovers.UpMap, map_switchovers.DownMap, map_switchovers.LeftMap, map_switchovers.RightMap, " + "map_data.Name, map_data.Moral, map_data.Music, map_data.Indoors, map_data.Weather, " + "map_data.Darkness, map_data.HungerEnabled, map_data.RecruitmentEnabled, map_data.ExpEnabled, map_data.TimeLimit, " + "map_data.MinNpcs, map_data.MaxNpcs, map_data.NpcSpawnTime " + "FROM map_data " + "JOIN map_general ON map_general.MapID = map_data.MapID " + "JOIN map_switchovers ON map_switchovers.MapID = map_data.MapID " + "WHERE map_data.MapID = \'" + database.VerifyValueString(mapID) + "\'"; { // Load general data + switchovers DataColumnCollection row = database.RetrieveRow(query); if (row != null) { int counter = 0; rawMap.Revision = Convert.ToInt32(row[counter++].Value); rawMap.MaxX = Convert.ToInt32(row[counter++].Value); rawMap.MaxY = Convert.ToInt32(row[counter++].Value); rawMap.Up = Convert.ToInt32(row[counter++].Value); rawMap.Down = Convert.ToInt32(row[counter++].Value); rawMap.Left = Convert.ToInt32(row[counter++].Value); rawMap.Right = Convert.ToInt32(row[counter++].Value); rawMap.Name = row[counter++].ValueString; rawMap.Moral = Convert.ToByte(row[counter++].Value); rawMap.Music = row[counter++].ValueString; rawMap.Indoors = row[counter++].ValueString.ToBool(); rawMap.Weather = Convert.ToByte(row[counter++].Value); rawMap.Darkness = Convert.ToInt32(row[counter++].Value); rawMap.HungerEnabled = row[counter++].ValueString.ToBool(); rawMap.RecruitEnabled = row[counter++].ValueString.ToBool(); rawMap.ExpEnabled = row[counter++].ValueString.ToBool(); rawMap.TimeLimit = Convert.ToInt32(row[counter++].Value); rawMap.MinNpcs = Convert.ToInt32(row[counter++].Value); rawMap.MaxNpcs = Convert.ToInt32(row[counter++].Value); rawMap.NpcSpawnTime = Convert.ToInt32(row[counter++].Value); rawMap.Tile = new Tile[rawMap.MaxX + 1, rawMap.MaxY + 1]; } else { throw new Exception("Raw map data not found."); } } // Load map npc presets query = "SELECT map_npcs.Number, map_npcs.SpawnX, map_npcs.SpawnY, map_npcs.MinLevel, map_npcs.MaxLevel, " + "map_npcs.AppearanceRate, map_npcs.StartStatus, map_npcs.StartStatusCounter, map_npcs.StartStatusChance " + "FROM map_npcs WHERE map_npcs.MapID = \'" + database.VerifyValueString(mapID) + "\' ORDER BY map_npcs.Slot"; foreach (DataColumnCollection row in database.RetrieveRowsEnumerable(query)) { MapNpcPreset mapNpc = new MapNpcPreset(); int counter = 0; mapNpc.NpcNum = Convert.ToInt32(row[counter++].Value); mapNpc.SpawnX = Convert.ToInt32(row[counter++].Value); mapNpc.SpawnY = Convert.ToInt32(row[counter++].Value); mapNpc.MinLevel = Convert.ToInt32(row[counter++].Value); mapNpc.MaxLevel = Convert.ToInt32(row[counter++].Value); mapNpc.AppearanceRate = Convert.ToInt32(row[counter++].Value); mapNpc.StartStatus = Convert.ToInt32(row[counter++].Value); mapNpc.StartStatusCounter = Convert.ToInt32(row[counter++].Value); mapNpc.StartStatusChance = Convert.ToInt32(row[counter++].Value); rawMap.Npc.Add(mapNpc); } // Load map tiles query = "SELECT map_tiles.X, map_tiles.Y, map_tiles.Ground, map_tiles.GroundAnim, map_tiles.Mask, map_tiles.MaskAnim, " + "map_tiles.Mask2, map_tiles.Mask2Anim, map_tiles.Fringe, map_tiles.FringeAnim, map_tiles.Fringe2, " + "map_tiles.Fringe2Anim, map_tiles.Type, map_tiles.Data1, map_tiles.Data2, map_tiles.Data3, map_tiles.String1, " + "map_tiles.String2, map_tiles.String3, map_tiles.Light, map_tiles.GroundTileset, map_tiles.GroundAnimTileset, " + "map_tiles.MaskTileset, map_tiles.MaskAnimTileset, map_tiles.Mask2Tileset, map_tiles.Mask2AnimTileset, " + "map_tiles.FringeTileset, map_tiles.FringeAnimTileset, map_tiles.Fringe2Tileset, map_tiles.Fringe2AnimTileset " + "FROM map_tiles WHERE map_tiles.MapID = \'" + database.VerifyValueString(mapID) + "\'"; foreach (DataColumnCollection row in database.RetrieveRowsEnumerable(query)) { Tile tile = new Tile(); int counter = 0; int x = Convert.ToInt32(row[counter++].Value); int y = Convert.ToInt32(row[counter++].Value); tile.Ground = Convert.ToInt32(row[counter++].Value); tile.GroundAnim = Convert.ToInt32(row[counter++].Value); tile.Mask = Convert.ToInt32(row[counter++].Value); tile.Anim = Convert.ToInt32(row[counter++].Value); tile.Mask2 = Convert.ToInt32(row[counter++].Value); tile.M2Anim = Convert.ToInt32(row[counter++].Value); tile.Fringe = Convert.ToInt32(row[counter++].Value); tile.FAnim = Convert.ToInt32(row[counter++].Value); tile.Fringe2 = Convert.ToInt32(row[counter++].Value); tile.F2Anim = Convert.ToInt32(row[counter++].Value); tile.Type = Convert.ToInt32(row[counter++].Value); tile.Data1 = Convert.ToInt32(row[counter++].Value); tile.Data2 = Convert.ToInt32(row[counter++].Value); tile.Data3 = Convert.ToInt32(row[counter++].Value); tile.String1 = row[counter++].ValueString; tile.String2 = row[counter++].ValueString; tile.String3 = row[counter++].ValueString; tile.RDungeonMapValue = Convert.ToInt32(row[counter++].Value); tile.GroundSet = Convert.ToInt32(row[counter++].Value); tile.GroundAnimSet = Convert.ToInt32(row[counter++].Value); tile.MaskSet = Convert.ToInt32(row[counter++].Value); tile.AnimSet = Convert.ToInt32(row[counter++].Value); tile.Mask2Set = Convert.ToInt32(row[counter++].Value); tile.M2AnimSet = Convert.ToInt32(row[counter++].Value); tile.FringeSet = Convert.ToInt32(row[counter++].Value); tile.FAnimSet = Convert.ToInt32(row[counter++].Value); tile.Fringe2Set = Convert.ToInt32(row[counter++].Value); tile.F2AnimSet = Convert.ToInt32(row[counter++].Value); rawMap.Tile[x, y] = tile; } rawMap.MapID = mapID; }