Esempio n. 1
0
 public static TriggerXfer FromStream(Stream mstream, short ParsingRule)
 {
     TriggerXfer result = GetDefault();
     NoxBinaryReader br = new NoxBinaryReader(mstream);
     // collisionbox
     result.SizeX = br.ReadInt32();
     result.SizeY = br.ReadInt32();
     if (result.SizeX > 60) result.SizeX = 60;
     if (result.SizeY > 60) result.SizeY = 60;
     // цвета заливки и граней для PressurePlate
     result.EdgeColor = br.ReadColor();
     result.BackColor = br.ReadColor();
     result.UnkInt1 = br.ReadInt32();
     // обработчики событий
     result.ScriptOnPressed = br.ReadScriptEventString();
     result.ScriptOnReleased = br.ReadScriptEventString();
     result.ScriptOnCollided = br.ReadScriptEventString();
     // кто может активировать
     result.AllowedObjClass = br.ReadInt32();
     result.IgnoredObjClass = br.ReadInt32();
     result.AllowedTeamID = br.ReadByte();
     result.IgnoredTeamID = br.ReadByte();
     if (ParsingRule >= 61)
     {
         result.TriggerState = br.ReadByte();
         result.Unk7 = br.ReadByte();
         result.UnkInt2 = br.ReadInt32();
     }
     return result;
 }
        public int UnknownVal; // 0x94

        #endregion Fields

        #region Methods

        public static InvisibleLightXfer FromMapObject(Map.Object obj)
        {
            InvisibleLightXfer result = new InvisibleLightXfer();
            using (NoxBinaryReader br = new NoxBinaryReader(new MemoryStream(obj.modbuf)))
            {
                result.StateMB = br.ReadInt32(); // 2 normally
                result.LightIntensity = br.ReadSingle();
                result.LightRadius = br.ReadInt32();
                result.UnknownVal = br.ReadInt32(); // unused?
                result.BaseColor = br.ReadColor(); // ChangeColors is used normally
                result.Unknown3 = br.ReadInt16(); // Color Flags?
                result.Unknown4 = br.ReadInt16();
                result.Unknown5 = br.ReadInt32(); // Flags2?
                result.Unknown6 = br.ReadInt16(); // Some flag
                result.ChangeColors = new Color[16];
                for (int i = 0; i < 16; i++) result.ChangeColors[i] = br.ReadColor();
                result.ChangeIntensity = new byte[16];
                for (int i = 0; i < 16; i++) result.ChangeIntensity[i] = br.ReadByte();
                result.ChangeRadius = new byte[16];
                for (int i = 0; i < 16; i++) result.ChangeRadius[i] = br.ReadByte();
                result.ColorChangeIndex = br.ReadInt16();
                result.IntensityChangeIndex = br.ReadInt16();
                result.RadiusChangeIndex = br.ReadInt16();
                result.ObjExtentID = br.ReadInt32();
                result.Unknown13 = br.ReadInt16(); // some flags
                result.Unknown14 = br.ReadInt16();
                result.Unknown15 = br.ReadByte();
                if (obj.ReadRule1 > 40)
                {
                    if (obj.ReadRule1 < 42) br.ReadByte();
                    else result.Unknown16 = br.ReadInt32(); // unused?
                }
            }
            return result;
        }
Esempio n. 3
0
        protected void ReadCharacterInfo(NoxBinaryReader rdr)
        {
            long finish = rdr.ReadInt64() + rdr.BaseStream.Position;

            rdr.ReadBytes(6);          //UNKNOWN header seems to always = 0c 00 02 00 00 00
            SavePath = rdr.ReadString(System.Type.GetType("System.Int16"));
            rdr.ReadByte();            //terminating null not included in length

            //the time this file was written
            FileTime = new DateTime(
                rdr.ReadInt16(),               //year
                rdr.ReadInt32() & 0xFFFF,      //month --skip the next 16bytes
                //rdr.ReadInt16(),//day of the week (not needed)
                rdr.ReadInt16(),               //day
                rdr.ReadInt16(),               //hour
                rdr.ReadInt16(),               //minute
                rdr.ReadInt16(),               //seconds
                rdr.ReadInt16()                //milliseconds
                );

            //these colors are RGB
            HairColor      = rdr.ReadColor();
            SkinColor      = rdr.ReadColor();
            MustacheColor  = rdr.ReadColor();
            BeardColor     = rdr.ReadColor();
            SideburnsColor = rdr.ReadColor();

            PantsColor     = rdr.ReadUserColor();
            ShirtColor     = rdr.ReadUserColor();
            ShirtTrimColor = rdr.ReadUserColor();
            ShoesColor     = rdr.ReadUserColor();
            ShoesTrimColor = rdr.ReadUserColor();

            Name  = rdr.ReadUnicodeString();
            Class = (CharacterClass)rdr.ReadByte();
            rdr.ReadBytes(2);          //UNKNOWN: always 00 0A?
            LastMapPlayed = rdr.ReadString();
            rdr.ReadByte();            //null terminator not included in string length

            System.Diagnostics.Debug.Assert(rdr.BaseStream.Position == finish, "Bad CharacterInfo length");
        }
Esempio n. 4
0
        protected void ReadCharacterInfo(NoxBinaryReader rdr)
        {
            long finish = rdr.ReadInt64() + rdr.BaseStream.Position;

            rdr.ReadBytes(6);//UNKNOWN header seems to always = 0c 00 02 00 00 00
            SavePath = rdr.ReadString(System.Type.GetType("System.Int16"));
            rdr.ReadByte();//terminating null not included in length

            //the time this file was written
            FileTime = new DateTime(
                rdr.ReadInt16(),//year
                rdr.ReadInt32() & 0xFFFF,//month --skip the next 16bytes
                //rdr.ReadInt16(),//day of the week (not needed)
                rdr.ReadInt16(),//day
                rdr.ReadInt16(),//hour
                rdr.ReadInt16(),//minute
                rdr.ReadInt16(),//seconds
                rdr.ReadInt16()//milliseconds
            );

            //these colors are RGB
            HairColor = rdr.ReadColor();
            SkinColor = rdr.ReadColor();
            MustacheColor = rdr.ReadColor();
            BeardColor = rdr.ReadColor();
            SideburnsColor = rdr.ReadColor();

            PantsColor = rdr.ReadUserColor();
            ShirtColor = rdr.ReadUserColor();
            ShirtTrimColor = rdr.ReadUserColor();
            ShoesColor = rdr.ReadUserColor();
            ShoesTrimColor = rdr.ReadUserColor();

            Name = rdr.ReadUnicodeString();
            Class = (CharacterClass) rdr.ReadByte();
            rdr.ReadBytes(2);//UNKNOWN: always 00 0A?
            LastMapPlayed = rdr.ReadString();
            rdr.ReadByte();//null terminator not included in string length

            System.Diagnostics.Debug.Assert(rdr.BaseStream.Position == finish, "Bad CharacterInfo length");
        }