Example #1
0
 private int WriteAction(EventDetailObject eventDetails, List <byte> actionData, int position)
 {
     foreach (var b in actionData)
     {
         eventDetails.WriteByte(b, position);
         position++;
     }
     return(position);
 }
 private void ExtractEventDetails(int eventDetailsStart)
 {
     for (var i = 0; i < EventPositions.Count; i++)
     {
         var currentEvent = EventPositions[i];
         if (currentEvent.Offset > 30000 || currentEvent.Offset == 0)
         {
             continue;
         }
         var eventEndOffset = 0;
         for (var j = i + 1; j < EventPositions.Count; j++)
         {
             var nextEvent = EventPositions[j];
             if (nextEvent.Offset > 30000 || nextEvent.Offset < currentEvent.Offset)
             {
                 continue;
             }
             eventEndOffset = nextEvent.Offset;
             break;
         }
         if (eventEndOffset == 0)
         {
             var currentOffset = eventDetailsStart + currentEvent.Offset;
             while (true)
             {
                 var value1 = ReadUnsignedInt(currentOffset);
                 var value2 = ReadUnsignedInt(currentOffset + 4);
                 if (value1 == 0 && value2 == uint.MaxValue)
                 {
                     eventEndOffset = currentOffset - eventDetailsStart;
                     break;
                 }
                 currentOffset++;
             }
         }
         if (currentEvent.Offset > eventEndOffset)
         {
             Console.WriteLine(currentEvent.Offset);
             continue;
         }
         var size         = eventEndOffset - currentEvent.Offset;
         var eventDetails = new EventDetailObject(this, eventDetailsStart + currentEvent.Offset, currentEvent.Id, size);
         EventDetailData.AddMappedObject(eventDetails);
     }
 }