using System; using System.Threading; using System.Collections; using Holo.Managers; using Holo.Virtual.Rooms; using Ion.Storage; namespace Holo.Virtual.Users { public class virtualRoomUser { internal int userID; internal int roomID; internal int roomUID; internal int X; internal int Y; internal double H; internal byte Z1; internal byte Z2; internal int goalX; internal int goalY; internal bool walkLock; internal bool walkDoor; internal bool hasVoted; internal int _tradePartnerRoomUID = -1; internal string swimOutfit; internal bool Diving = false; internal bool InQueue = false; internal int gamePoints; internal virtualUser User; internal virtualRoomUserStatusManager statusManager; internal bool isTyping; internal bool SPECIAL_TELEPORTABLE = false; private delegate void walkSleepPointer(); internal virtualRoomUser(int userID, int roomID, int roomUID, virtualUser User, virtualRoomUserStatusManager statusManager) { this.userID = userID; this.roomID = roomID; this.roomUID = roomUID; this.User = User; this.statusManager = statusManager; } internal virtualRoom Room { get { return roomManager.getRoom(roomID); } } internal void Refresh() { Room.Refresh(this); } internal string detailsString { get { string UserFigure = User._Figure; using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient()) { string gBadge = ""; string userName = dbClient.getString("SELECT name FROM users WHERE id = '" + userID + "'"); string userMotto = dbClient.getString("SELECT mission FROM users WHERE id = '" + userID + "'"); string userSex = dbClient.getString("SELECT sex FROM users WHERE id = '" + userID + "'"); string userGamepoints = Encoding.encodeVL64(dbClient.getInt("SELECT totalpoints FROM users WHERE id = '" + userID + "'")); if (userGamepoints == "H") userGamepoints = "M"; if (User._groupID > 0) { gBadge = Encoding.encodeVL64(User._groupID); } else { gBadge = "M"; } string s = Encoding.encodeVL64(userID) + userName + Convert.ToChar(2) + userMotto + " " + Convert.ToChar(2) + UserFigure + Convert.ToChar(2) + Encoding.encodeVL64(roomUID) + Encoding.encodeVL64(X) + Encoding.encodeVL64(Y) + "H" + Convert.ToChar(2) + "HI" + userSex + Convert.ToChar(2) + userGamepoints + gBadge + "M" + swimOutfit + Convert.ToChar(2); return s; } } } internal string statusString { get { return Encoding.encodeVL64(roomUID) + Encoding.encodeVL64(X) + Encoding.encodeVL64(Y) + H.ToString().Replace(",", ".") + Convert.ToChar(2) + Encoding.encodeVL64(Z1) + Encoding.encodeVL64(Z2) + "/" + statusManager.ToString(); } } } }