Ejemplo n.º 1
0
 // Token: 0x060028EC RID: 10476 RVA: 0x000F99C8 File Offset: 0x000F7DC8
 private static void loadRegion(River river, List <LevelObject> objects)
 {
     for (;;)
     {
         ushort num = river.readUInt16();
         if (num == 65535)
         {
             break;
         }
         ushort num2  = river.readUInt16();
         byte[] array = river.readBytes();
         if ((int)num >= objects.Count)
         {
             return;
         }
         LevelObject levelObject = objects[(int)num];
         if (num2 == levelObject.id)
         {
             levelObject.state = array;
             if (!(levelObject.transform == null) && levelObject.asset != null)
             {
                 if (levelObject.interactable != null)
                 {
                     if (levelObject.interactable is InteractableObjectBinaryState)
                     {
                         if (levelObject.asset.interactabilityReset >= 1f)
                         {
                             array[0] = 0;
                         }
                     }
                     else if (levelObject.interactable is InteractableObjectResource)
                     {
                         if (levelObject.asset.rubble == EObjectRubble.DESTROY)
                         {
                             if (array.Length < 3)
                             {
                                 array             = levelObject.asset.getState();
                                 levelObject.state = array;
                             }
                         }
                         else if (array.Length < 2)
                         {
                             array             = levelObject.asset.getState();
                             levelObject.state = array;
                         }
                     }
                     levelObject.interactable.updateState(levelObject.asset, array);
                 }
                 if (levelObject.rubble != null)
                 {
                     array[array.Length - 1] = byte.MaxValue;
                     levelObject.rubble.updateState(levelObject.asset, array);
                 }
             }
         }
     }
 }