/// <summary>
        /// Changes the location of the resource by changing its location flags.
        /// </summary>
        /// <param name="newLocation">The new location.</param>
        /// <exception cref="System.ArgumentException">Unsupported resource location</exception>
        public void ChangeLocation(ResourceLocation newLocation)
        {
            OldLocationFlags &= ~OldResourceLocationFlags.LocationMask;
            NewLocationFlags &= ~NewResourceLocationFlags.LocationMask;
            switch (newLocation)
            {
            case ResourceLocation.Resources:
                OldLocationFlags |= OldResourceLocationFlags.InResources;
                NewLocationFlags |= NewResourceLocationFlags.InResources;
                break;

            case ResourceLocation.Textures:
                OldLocationFlags |= OldResourceLocationFlags.InTextures;
                NewLocationFlags |= NewResourceLocationFlags.InTextures;
                break;

            case ResourceLocation.TexturesB:
                OldLocationFlags |= OldResourceLocationFlags.InTexturesB;
                NewLocationFlags |= NewResourceLocationFlags.InTexturesB;
                break;

            case ResourceLocation.Audio:
                OldLocationFlags |= OldResourceLocationFlags.InAudio;
                NewLocationFlags |= NewResourceLocationFlags.InAudio;
                break;

            case ResourceLocation.Video:
                OldLocationFlags |= OldResourceLocationFlags.InVideo;
                NewLocationFlags |= NewResourceLocationFlags.InVideo;
                break;

            case ResourceLocation.RenderModels:
                NewLocationFlags |= NewResourceLocationFlags.InRenderModels;
                break;

            case ResourceLocation.Lightmaps:
                NewLocationFlags |= NewResourceLocationFlags.InLightmaps;
                break;

            default:
                throw new ArgumentException("Unsupported resource location");
            }
        }
 /// <summary>
 /// Disables the resource's checksum by changing its location flags.
 /// </summary>
 public void DisableChecksum()
 {
     OldLocationFlags &= ~(OldResourceLocationFlags.UseChecksum | OldResourceLocationFlags.UseChecksum2);
     NewLocationFlags &= ~NewResourceLocationFlags.UseChecksum;
 }
 /// <summary>
 /// Changes the location of the resource by changing its location flags.
 /// </summary>
 /// <param name="newLocation">The new location.</param>
 /// <exception cref="System.ArgumentException">Unsupported resource location</exception>
 public void ChangeLocation(ResourceLocation newLocation)
 {
     OldLocationFlags &= ~OldResourceLocationFlags.LocationMask;
     NewLocationFlags &= ~NewResourceLocationFlags.LocationMask;
     switch (newLocation)
     {
         case ResourceLocation.Resources:
             OldLocationFlags |= OldResourceLocationFlags.InResources;
             NewLocationFlags |= NewResourceLocationFlags.InResources;
             break;
         case ResourceLocation.Textures:
             OldLocationFlags |= OldResourceLocationFlags.InTextures;
             NewLocationFlags |= NewResourceLocationFlags.InTextures;
             break;
         case ResourceLocation.TexturesB:
             OldLocationFlags |= OldResourceLocationFlags.InTexturesB;
             NewLocationFlags |= NewResourceLocationFlags.InTexturesB;
             break;
         case ResourceLocation.Audio:
             OldLocationFlags |= OldResourceLocationFlags.InAudio;
             NewLocationFlags |= NewResourceLocationFlags.InAudio;
             break;
         case ResourceLocation.Video:
             OldLocationFlags |= OldResourceLocationFlags.InVideo;
             NewLocationFlags |= NewResourceLocationFlags.InVideo;
             break;
         case ResourceLocation.RenderModels:
             NewLocationFlags |= NewResourceLocationFlags.InRenderModels;
             break;
         case ResourceLocation.Lightmaps:
             NewLocationFlags |= NewResourceLocationFlags.InLightmaps;
             break;
         default:
             throw new ArgumentException("Unsupported resource location");
     }
 }
 /// <summary>
 /// Disables the resource's checksum by changing its location flags.
 /// </summary>
 public void DisableChecksum()
 {
     OldLocationFlags &= ~(OldResourceLocationFlags.UseChecksum | OldResourceLocationFlags.UseChecksum2);
     NewLocationFlags &= ~NewResourceLocationFlags.UseChecksum;
 }