internal void Destroy() { Array.Clear(SqState, 0, SqState.Length); Array.Clear(SqFloorHeight, 0, SqFloorHeight.Length); Array.Clear(SqSeatRot, 0, SqSeatRot.Length); staticModel = null; Heightmap = null; SqState = null; SqFloorHeight = null; SqSeatRot = null; }
internal DynamicRoomModel(RoomModel pModel) { this.staticModel = pModel; this.DoorX = staticModel.DoorX; this.DoorY = staticModel.DoorY; this.DoorZ = staticModel.DoorZ; this.DoorOrientation = staticModel.DoorOrientation; this.Heightmap = staticModel.Heightmap; this.MapSizeX = staticModel.MapSizeX; this.MapSizeY = staticModel.MapSizeY; this.ClubOnly = staticModel.ClubOnly; Generate(); }
public Gamemap(Room room) { this.room = room; this.DiagonalEnabled = true; this.mStaticModel = SilverwaveEnvironment.GetGame().GetRoomManager().GetModel(room.ModelName); if (mStaticModel == null) throw new Exception("No modeldata found for roomID " + room.RoomId); this.mDynamicModel = new DynamicRoomModel(this.mStaticModel); this.mCoordinatedItems = new Hashtable(); this.gotPublicPool = room.RoomData.Model.gotPublicPool; this.mGameMap = new byte[Model.MapSizeX, Model.MapSizeY]; this.mItemHeightMap = new double[Model.MapSizeX, Model.MapSizeY]; userMap = new Hashtable(); }
public Gamemap(string model) { try { this.DiagonalEnabled = true; this.mStaticModel = SilverwaveEnvironment.GetGame().GetRoomManager().GetModel(model); if (mStaticModel == null) throw new Exception("No modeldata found for roomID " + room.RoomId); this.mDynamicModel = new DynamicRoomModel(this.mStaticModel); this.mCoordinatedItems = new Hashtable(); this.gotPublicPool = false; this.mGameMap = new byte[Model.MapSizeX, Model.MapSizeY]; this.mItemHeightMap = new double[Model.MapSizeX, Model.MapSizeY]; userMap = new Hashtable(); } catch (Exception e) { Console.WriteLine(e); } }
internal void FillNull(UInt32 pId) { this.Id = pId; this.Name = "Unknown Room"; this.Description = "-"; this.Type = "private"; this.Owner = "-"; this.Category = 0; this.UsersNow = 0; this.UsersMax = 0; this.ModelName = "NO_MODEL"; this.CCTs = ""; this.Score = 0; this.Tags = new List<string>(); this.AllowPets = 1; this.AllowPetsEating = 0; this.AllowWalkthrough = 1; this.Hidewall = 0; this.Password = ""; this.Wallpaper = "0.0"; this.Floor = "0.0"; this.Landscape = "0.0"; this.WallThickness = 0; this.FloorThickness = 0; this.Group = null; this.AllowRightsOverride = false; this.Event = null; this.GameId = 0; this.WhoCanBan = 0; this.WhoCanKick = 0; this.WhoCanMute = 0; this.RoomChat = new List<Chatlog>(); mModel = SilverwaveEnvironment.GetGame().GetRoomManager().GetModel(ModelName); }
internal void Fill(Room Room) { this.Id = Room.RoomId; this.Name = Room.Name; this.Description = Room.Description; this.Type = Room.Type; this.Owner = Room.Owner; this.Category = Room.Category; this.State = Room.State; this.UsersNow = Room.UsersNow; this.UsersMax = Room.UsersMax; this.ModelName = Room.ModelName; this.Score = Room.Score; this.Tags = new List<string>(); foreach (string tag in Room.Tags.ToArray()) this.Tags.Add(tag); this.AllowPets = Room.AllowPets; this.AllowPetsEating = Room.AllowPetsEating; this.AllowWalkthrough = Room.AllowWalkthrough; this.Hidewall = Room.Hidewall; this.Password = Room.Password; this.Wallpaper = Room.Wallpaper; this.Floor = Room.Floor; this.Landscape = Room.Landscape; this.FloorThickness = Room.FloorThickness; this.WallThickness = Room.WallThickness; this.Group = Room.Group; this.Event = Room.Event; this.GameId = Room.GameId; this.ChatType = Room.ChatType; this.ChatBalloon = Room.ChatBalloon; this.ChatSpeed = Room.ChatSpeed; this.ChatMaxDistance = Room.ChatMaxDistance; this.ChatFloodProtection = Room.ChatFloodProtection; this.WhoCanMute = Room.WhoCanMute; this.WhoCanKick = Room.WhoCanKick; this.WhoCanBan = Room.WhoCanBan; this.RoomChat = Room.RoomChat; mModel = SilverwaveEnvironment.GetGame().GetRoomManager().GetModel(ModelName); }
internal void Fill(DataRow Row) { this.Id = Convert.ToUInt32(Row["id"]); this.Name = (string)Row["caption"]; this.Description = (string)Row["description"]; this.Type = (string)Row["roomtype"]; this.Owner = (string)Row["owner"]; this.OwnerId = 0; this.RoomChat = new List<Chatlog>(); using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT id FROM users WHERE username = @owner"); dbClient.addParameter("owner", this.Owner); int result = dbClient.getInteger(); if(result > 0) this.OwnerId = result; dbClient.setQuery("SELECT user_id, message, timestamp FROM chatlogs WHERE room_id=@id ORDER BY timestamp DESC LIMIT 150"); dbClient.addParameter("id", this.Id); DataTable Table = dbClient.getTable(); foreach (DataRow mRow in Table.Rows) { RoomChat.Add(new Chatlog((uint)mRow[0], (string)mRow[1], Convert.ToDouble(mRow[2]))); } } switch (Row["state"].ToString().ToLower()) { case "open": this.State = 0; break; case "password": this.State = 2; break; case "locked": default: this.State = 1; break; } this.Category = (int)Row["category"]; if (!string.IsNullOrEmpty(Row["users_now"].ToString())) this.UsersNow = (int)Row["users_now"]; else this.UsersNow = 0; this.UsersMax = (int)Row["users_max"]; this.ModelName = (string)Row["model_name"]; this.CCTs = (string)Row["public_ccts"]; this.Score = (int)Row["score"]; this.Tags = new List<string>(); this.AllowPets = Convert.ToInt32(Row["allow_pets"].ToString()); this.AllowPetsEating = Convert.ToInt32(Row["allow_pets_eat"].ToString()); this.AllowWalkthrough = Convert.ToInt32(Row["allow_walkthrough"].ToString()); this.AllowRightsOverride = false; this.Hidewall = Convert.ToInt32(Row["allow_hidewall"].ToString()); this.Password = (string)Row["password"]; this.Wallpaper = (string)Row["wallpaper"]; this.Floor = (string)Row["floor"]; this.Landscape = (string)Row["landscape"]; this.FloorThickness = (int)Row["floorthick"]; this.WallThickness = (int)Row["wallthick"]; this.ChatType = (int)Row["chat_type"]; this.ChatBalloon = (int)Row["chat_balloon"]; this.ChatSpeed =(int)Row["chat_speed"]; this.ChatMaxDistance = (int)Row["chat_max_distance"]; this.ChatFloodProtection = (int)Row["chat_flood_protection"]; this.GameId = (int)Row["game_id"]; this.WhoCanMute = Convert.ToInt32(Row["mute_settings"]); this.WhoCanKick = Convert.ToInt32(Row["kick_settings"]); this.WhoCanBan = Convert.ToInt32(Row["ban_settings"]); this.GroupId = (uint)Row["group_id"]; this.Group = SilverwaveEnvironment.GetGame().GetGroupManager().GetGroup(this.GroupId); this.Event = SilverwaveEnvironment.GetGame().GetRoomEvents().GetEvent(Id); Dictionary<int, int> IconItems = new Dictionary<int,int>(); if (!string.IsNullOrEmpty(Row["icon_items"].ToString())) { foreach (string Bit in Row["icon_items"].ToString().Split('|')) { if (string.IsNullOrEmpty(Bit)) continue; string[] tBit = Bit.Replace('.', ',').Split(','); int a = 0; int b = 0; int.TryParse(tBit[0], out a); if (tBit.Length > 1) int.TryParse(tBit[1], out b); try { if (!IconItems.ContainsKey(a)) IconItems.Add(a, b); } catch (Exception e) { Logging.LogException("Exception: " + e.ToString() + "[" + Bit + "]"); } } } foreach (string Tag in Row["tags"].ToString().Split(',')) { this.Tags.Add(Tag); } mModel = SilverwaveEnvironment.GetGame().GetRoomManager().GetModel(ModelName); }
internal void Destroy() { userMap.Clear(); mDynamicModel.Destroy(); mCoordinatedItems.Clear(); Array.Clear(mGameMap, 0, mGameMap.Length); Array.Clear(mUserItemEffect, 0, mUserItemEffect.Length); Array.Clear(mItemHeightMap, 0, mItemHeightMap.Length); userMap = null; mGameMap = null; mUserItemEffect = null; mItemHeightMap = null; mCoordinatedItems = null; mDynamicModel = null; room = null; mStaticModel = null; }