public override void Deserialize(IDataReader reader)
 {
     base.Deserialize(reader);
     stepId = reader.ReadShort();
     if (stepId < 0)
         throw new Exception("Forbidden value on stepId = " + stepId + ", it doesn't respect the following condition : stepId < 0");
     var limit = reader.ReadUShort();
     objectives = new Types.QuestObjectiveInformations[limit];
     for (int i = 0; i < limit; i++)
     {
          objectives[i] = Types.ProtocolTypeManager.GetInstance<Types.QuestObjectiveInformations>(reader.ReadShort());
          objectives[i].Deserialize(reader);
     }
 }
 public QuestActiveDetailedInformations(short questId, short stepId, Types.QuestObjectiveInformations[] objectives)
     : base(questId)
 {
     this.stepId = stepId;
     this.objectives = objectives;
 }