Beispiel #1
0
        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;
        }
Beispiel #2
0
        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;
        }