public static BaseWorldTcpMessage ReadMessage(IncomingMessage inMessage)
 {
     BaseWorldTcpMessage rv;
     byte[] data = inMessage.ReadBytes();
     IncomingMessage subMsg = new IncomingMessage(data, inMessage);
     WorldTcpMessageType messageType = subMsg.ReadWorldTcpMessageType();
     switch (messageType) {
         case WorldTcpMessageType.CharacterResponse:
             rv = new WorldCharacterResponseMessage();
             break;
         case WorldTcpMessageType.CharacterCreateResponse:
             rv = new WorldCharacterCreateResponseMessage();
             break;
         case WorldTcpMessageType.CharacterDeleteResponse:
             rv = new WorldCharacterDeleteResponseMessage();
             break;
         case WorldTcpMessageType.CharacterSelectResponse:
             rv = new WorldCharacterSelectResponseMessage();
             break;
         default:
             log.ErrorFormat("Unhandled world tcp message type: {0}", messageType);
             return null;
     }
     log.InfoFormat("WorldTcpMessageFactory got message type: {0}", messageType);
     rv.ParseWorldTcpMessage(subMsg);
     return rv;
 }
        protected override void ParseMessage(IncomingMessage inMessage)
        {
            version = inMessage.ReadString();
            worldToken = inMessage.ReadBytes();
            error = inMessage.ReadString();

            int entryCount = inMessage.ReadInt32();
            entries = new List<PropertyMap>();
            for (int i = 0; i < entryCount; ++i) {
                PropertyMap entry = new PropertyMap();
                entry.OldParseMessage(inMessage);
                entries.Add(entry);
            }
        }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     int subMessageCount = inMessage.ReadInt32();
     for (int i = 0; i < subMessageCount; i++) {
         byte[] subMessageBytes = inMessage.ReadBytes();
         IncomingMessage subMessage = new IncomingMessage(subMessageBytes, inMessage);
         BaseWorldMessage msg = WorldMessageFactory.ReadMessage(subMessage);
         if (msg != null)
             subMessages.Add(msg);
         else
             log.WarnFormat("AggregatedRDP.ParseMessage got null when reading message from {0} bytes", subMessageBytes.Length);
     }
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     loginStatus = (LoginStatus)inMessage.ReadInt32();
     masterToken = inMessage.ReadBytes();
     oldToken = inMessage.ReadBytes();
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     version = inMessage.ReadInt32();
     challenge = inMessage.ReadBytes();
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     messageNumber = inMessage.ReadInt32();
     fragmentNumber = inMessage.ReadInt32();
     if (fragmentNumber == 0)
         numFragments = inMessage.ReadInt32();
     payload = inMessage.ReadBytes();
 }