Simplify tileset-specific sequence definitions.

All magic behaviour for constructing sprite filenames
has been removed in favour of an explicit Filename
(and TilesetFilenames for tileset-specific sequences)
property.
This commit is contained in:
Paul Chote
2023-01-21 14:41:32 +00:00
committed by Pavel Penev
parent 04c3cd6ec5
commit 5b8f148c50
41 changed files with 8088 additions and 3718 deletions

View File

@@ -18,23 +18,8 @@ namespace OpenRA.Mods.Cnc.Graphics
{
public class ClassicTilesetSpecificSpriteSequenceLoader : ClassicSpriteSequenceLoader
{
public readonly string DefaultSpriteExtension = ".shp";
public readonly Dictionary<string, string> TilesetExtensions = new Dictionary<string, string>();
public readonly Dictionary<string, string> TilesetCodes = new Dictionary<string, string>();
public ClassicTilesetSpecificSpriteSequenceLoader(ModData modData)
: base(modData)
{
var metadata = modData.Manifest.Get<SpriteSequenceFormat>().Metadata;
if (metadata.TryGetValue("DefaultSpriteExtension", out var yaml))
DefaultSpriteExtension = yaml.Value;
if (metadata.TryGetValue("TilesetExtensions", out yaml))
TilesetExtensions = yaml.ToDictionary(kv => kv.Value);
if (metadata.TryGetValue("TilesetCodes", out yaml))
TilesetCodes = yaml.ToDictionary(kv => kv.Value);
}
: base(modData) { }
public override ISpriteSequence CreateSequence(ModData modData, string tileset, SpriteCache cache, string image, string sequence, MiniYaml data, MiniYaml defaults)
{
@@ -46,49 +31,23 @@ namespace OpenRA.Mods.Cnc.Graphics
"that come with first-generation Westwood titles.")]
public class ClassicTilesetSpecificSpriteSequence : ClassicSpriteSequence
{
[Desc("Dictionary of <string: string> with tileset name to override -> tileset name to use instead.")]
static readonly SpriteSequenceField<Dictionary<string, string>> TilesetOverrides = new SpriteSequenceField<Dictionary<string, string>>(nameof(TilesetOverrides), null);
[Desc("Use `TilesetCodes` as defined in `mod.yaml` to add a letter as a second character " +
"into the sprite filename like the Westwood 2.5D titles did for tileset-specific variants.")]
static readonly SpriteSequenceField<bool> UseTilesetCode = new SpriteSequenceField<bool>(nameof(UseTilesetCode), false);
[Desc("Append a tileset-specific extension to the file name " +
"- either as defined in `mod.yaml`'s `TilesetExtensions` (if `UseTilesetExtension` is used) " +
"or the default hardcoded one for this sequence type (.shp).")]
static readonly SpriteSequenceField<bool> AddExtension = new SpriteSequenceField<bool>(nameof(AddExtension), true);
[Desc("Whether `mod.yaml`'s `TilesetExtensions` should be used with the sequence's file name.")]
static readonly SpriteSequenceField<bool> UseTilesetExtension = new SpriteSequenceField<bool>(nameof(UseTilesetExtension), false);
[Desc("Dictionary of <tileset name>: filename to override the Filename key.")]
static readonly SpriteSequenceField<Dictionary<string, string>> TilesetFilenames = new SpriteSequenceField<Dictionary<string, string>>(nameof(TilesetFilenames), null);
public ClassicTilesetSpecificSpriteSequence(ModData modData, string tileset, SpriteCache cache, ISpriteSequenceLoader loader, string image, string sequence, MiniYaml data, MiniYaml defaults)
: base(modData, tileset, cache, loader, image, sequence, data, defaults) { }
static string ResolveTilesetId(string tileset, MiniYaml data, MiniYaml defaults)
{
var node = data.Nodes.FirstOrDefault(n => n.Key == TilesetOverrides.Key) ?? defaults.Nodes.FirstOrDefault(n => n.Key == TilesetOverrides.Key);
var overrideNode = node?.Value.Nodes.FirstOrDefault(n => n.Key == tileset);
return overrideNode?.Value.Value ?? tileset;
}
protected override string GetSpriteFilename(ModData modData, string tileset, string image, string sequence, MiniYaml data, MiniYaml defaults)
{
var loader = (ClassicTilesetSpecificSpriteSequenceLoader)Loader;
var filename = data.Value ?? defaults.Value ?? image;
if (LoadField(UseTilesetCode, data, defaults))
if (loader.TilesetCodes.TryGetValue(ResolveTilesetId(tileset, data, defaults), out var tilesetCode))
filename = filename.Substring(0, 1) + tilesetCode + filename.Substring(2, filename.Length - 2);
if (LoadField(AddExtension, data, defaults))
var node = data.Nodes.FirstOrDefault(n => n.Key == TilesetFilenames.Key) ?? defaults.Nodes.FirstOrDefault(n => n.Key == TilesetFilenames.Key);
if (node != null)
{
if (LoadField(UseTilesetExtension, data, defaults))
if (loader.TilesetExtensions.TryGetValue(ResolveTilesetId(tileset, data, defaults), out var tilesetExtension))
return filename + tilesetExtension;
return filename + loader.DefaultSpriteExtension;
var tilesetNode = node.Value.Nodes.FirstOrDefault(n => n.Key == tileset);
if (tilesetNode != null)
return tilesetNode.Value.Value;
}
return filename;
return base.GetSpriteFilename(modData, tileset, image, sequence, data, defaults);
}
}
}

View File

@@ -151,6 +151,9 @@ namespace OpenRA.Mods.Common.Graphics
public string Name { get; }
[Desc("File name of the sprite to use for this sequence.")]
static readonly SpriteSequenceField<string> Filename = new SpriteSequenceField<string>(nameof(Filename), null);
[Desc("Frame index to start from.")]
static readonly SpriteSequenceField<int> Start = new SpriteSequenceField<int>(nameof(Start), 0);
int ISpriteSequence.Start => start;
@@ -261,7 +264,7 @@ namespace OpenRA.Mods.Common.Graphics
protected virtual string GetSpriteFilename(ModData modData, string tileset, string image, string sequence, MiniYaml data, MiniYaml defaults)
{
return data.Value ?? defaults.Value ?? image;
return LoadField(Filename, data, defaults);
}
protected static T LoadField<T>(string key, T fallback, MiniYaml data, MiniYaml defaults)
@@ -414,7 +417,10 @@ namespace OpenRA.Mods.Common.Graphics
return subFrames != null ? subFrames.Skip(subStart).Take(subLength) : Enumerable.Range(subStart, subLength);
};
var subFilename = GetSpriteFilename(modData, tileSet, combineSequenceNode.Key, sequence, combineData, NoData);
var subFilename = GetSpriteFilename(modData, tileSet, image, sequence, combineData, NoData);
if (subFilename == null)
throw new YamlException($"Sequence {image}.{sequence}.{combineSequenceNode.Key} does not define a filename.");
var subSprites = cache[subFilename, subGetUsedFrames].Select(s =>
{
if (s == null)
@@ -440,6 +446,9 @@ namespace OpenRA.Mods.Common.Graphics
// Apply offset to each sprite in the sequence
// Different sequences may apply different offsets to the same frame
var filename = GetSpriteFilename(modData, tileSet, image, sequence, data, defaults);
if (filename == null)
throw new YamlException($"Sequence {image}.{sequence} does not define a filename.");
sprites = cache[filename, getUsedFrames].Select(s =>
{
if (s == null)
@@ -497,11 +506,14 @@ namespace OpenRA.Mods.Common.Graphics
if (LoadField(HasEmbeddedPalette, data, defaults))
{
var filename = GetSpriteFilename(modData, tileSet, image, sequence, data, defaults);
if (filename == null)
throw new YamlException($"Sequence {image}.{sequence} does not define a filename.");
var metadata = cache.FrameMetadata(filename);
var i = frames != null ? frames[0] : start;
var palettes = metadata?.GetOrDefault<EmbeddedSpritePalette>();
if (palettes == null || !palettes.TryGetPaletteForFrame(i, out EmbeddedPalette))
throw new YamlException($"Cannot export palette from {filename}: frame {i} does not define an embedded palette");
throw new YamlException($"Cannot export palette from {filename}: frame {i} does not define an embedded palette.");
}
var boundSprites = SpriteBounds(sprites, frames, start, facings, length, stride, transpose);

View File

@@ -17,23 +17,8 @@ namespace OpenRA.Mods.Common.Graphics
{
public class TilesetSpecificSpriteSequenceLoader : DefaultSpriteSequenceLoader
{
public readonly string DefaultSpriteExtension = ".shp";
public readonly Dictionary<string, string> TilesetExtensions = new Dictionary<string, string>();
public readonly Dictionary<string, string> TilesetCodes = new Dictionary<string, string>();
public TilesetSpecificSpriteSequenceLoader(ModData modData)
: base(modData)
{
var metadata = modData.Manifest.Get<SpriteSequenceFormat>().Metadata;
if (metadata.TryGetValue("DefaultSpriteExtension", out var yaml))
DefaultSpriteExtension = yaml.Value;
if (metadata.TryGetValue("TilesetExtensions", out yaml))
TilesetExtensions = yaml.ToDictionary(kv => kv.Value);
if (metadata.TryGetValue("TilesetCodes", out yaml))
TilesetCodes = yaml.ToDictionary(kv => kv.Value);
}
: base(modData) { }
public override ISpriteSequence CreateSequence(ModData modData, string tileSet, SpriteCache cache, string image, string sequence, MiniYaml data, MiniYaml defaults)
{
@@ -44,50 +29,23 @@ namespace OpenRA.Mods.Common.Graphics
[Desc("A sprite sequence that can have tileset-specific variants.")]
public class TilesetSpecificSpriteSequence : DefaultSpriteSequence
{
[Desc("Dictionary of <string: string> with tileset name to override -> tileset name to use instead.")]
static readonly SpriteSequenceField<Dictionary<string, string>> TilesetOverrides = new SpriteSequenceField<Dictionary<string, string>>(nameof(TilesetOverrides), null);
[Desc("Use `TilesetCodes` as defined in `mod.yaml` to add a letter as a second character " +
"into the sprite filename like the Westwood 2.5D titles did for tileset-specific variants.")]
static readonly SpriteSequenceField<bool> UseTilesetCode = new SpriteSequenceField<bool>(nameof(UseTilesetCode), false);
[Desc("Append a tileset-specific extension to the file name " +
"- either as defined in `mod.yaml`'s `TilesetExtensions` (if `UseTilesetExtension` is used) " +
"or the default hardcoded one for this sequence type (.shp).")]
static readonly SpriteSequenceField<bool> AddExtension = new SpriteSequenceField<bool>(nameof(AddExtension), true);
[Desc("Whether `mod.yaml`'s `TilesetExtensions` should be used with the sequence's file name.")]
static readonly SpriteSequenceField<bool> UseTilesetExtension = new SpriteSequenceField<bool>(nameof(UseTilesetExtension), false);
[Desc("Dictionary of <tileset name>: filename to override the Filename key.")]
static readonly SpriteSequenceField<Dictionary<string, string>> TilesetFilenames = new SpriteSequenceField<Dictionary<string, string>>(nameof(TilesetFilenames), null);
public TilesetSpecificSpriteSequence(ModData modData, string tileset, SpriteCache cache, ISpriteSequenceLoader loader, string image, string sequence, MiniYaml data, MiniYaml defaults)
: base(modData, tileset, cache, loader, image, sequence, data, defaults) { }
static string ResolveTilesetId(string tileset, MiniYaml data, MiniYaml defaults)
{
var node = data.Nodes.FirstOrDefault(n => n.Key == TilesetOverrides.Key) ?? defaults.Nodes.FirstOrDefault(n => n.Key == TilesetOverrides.Key);
var overrideNode = node?.Value.Nodes.FirstOrDefault(n => n.Key == tileset);
return overrideNode?.Value.Value ?? tileset;
}
protected override string GetSpriteFilename(ModData modData, string tileset, string image, string sequence, MiniYaml data, MiniYaml defaults)
{
var loader = (TilesetSpecificSpriteSequenceLoader)Loader;
var filename = data.Value ?? defaults.Value ?? image;
if (LoadField(UseTilesetCode, data, defaults))
if (loader.TilesetCodes.TryGetValue(ResolveTilesetId(tileset, data, defaults), out var tilesetCode))
filename = filename.Substring(0, 1) + tilesetCode + filename.Substring(2, filename.Length - 2);
if (LoadField(AddExtension, data, defaults))
var node = data.Nodes.FirstOrDefault(n => n.Key == TilesetFilenames.Key) ?? defaults.Nodes.FirstOrDefault(n => n.Key == TilesetFilenames.Key);
if (node != null)
{
if (LoadField(UseTilesetExtension, data, defaults))
if (loader.TilesetExtensions.TryGetValue(ResolveTilesetId(tileset, data, defaults), out var tilesetExtension))
return filename + tilesetExtension;
return filename + loader.DefaultSpriteExtension;
var tilesetNode = node.Value.Nodes.FirstOrDefault(n => n.Key == tileset);
if (tilesetNode != null)
return tilesetNode.Value.Value;
}
return filename;
return base.GetSpriteFilename(modData, tileset, image, sequence, data, defaults);
}
}
}

View File

@@ -0,0 +1,421 @@
#region Copyright & License Information
/*
* Copyright (c) The OpenRA Developers and Contributors
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. For more
* information, see COPYING.
*/
#endregion
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace OpenRA.Mods.Common.UpdateRules.Rules
{
public class ExplicitSequenceFilenames : UpdateRule
{
public override string Name => "Sequence filenames must be specified explicitly.";
public override string Description =>
"Sequence sprite filenames are no longer automatically inferred, and the AddExtension,\n" +
"UseTilesetExtension, UseTilesetNodes and TilesetOverrides fields have been removed.\n\n" +
"The sprite filename for each sequence must now be defined using the Filename field.\n" +
"Tileset specific overrides can be defined as children of the TilesetFilenames field.";
string defaultSpriteExtension = ".shp";
List<MiniYamlNode> resolvedImagesNodes;
readonly Dictionary<string, string> tilesetExtensions = new Dictionary<string, string>();
readonly Dictionary<string, string> tilesetCodes = new Dictionary<string, string>();
bool parseModYaml = true;
bool reportModYamlChanges;
bool disabled;
public override IEnumerable<string> BeforeUpdateSequences(ModData modData, List<MiniYamlNode> resolvedImagesNodes)
{
// Keep a resolved copy of the sequences so we can account for values imported through inheritance or Defaults.
// This will be modified during processing, so take a deep copy to avoid side-effects on other update rules.
this.resolvedImagesNodes = MiniYaml.FromString(resolvedImagesNodes.WriteToString());
var requiredMetadata = new HashSet<string>();
foreach (var imageNode in resolvedImagesNodes)
{
foreach (var sequenceNode in imageNode.Value.Nodes)
{
var useTilesetExtensionNode = sequenceNode.LastChildMatching("UseTilesetExtension");
if (useTilesetExtensionNode != null && !tilesetExtensions.Any())
requiredMetadata.Add("TilesetExtensions");
var useTilesetCodeNode = sequenceNode.LastChildMatching("UseTilesetCode");
if (useTilesetCodeNode != null && !tilesetCodes.Any())
requiredMetadata.Add("TilesetCodes");
}
}
if (requiredMetadata.Any())
{
yield return $"The ExplicitSequenceFilenames rule requires {requiredMetadata.JoinWith(", ")}\n" +
"to be defined under the SpriteSequenceFormat definition in mod.yaml.\n" +
"Add these definitions back and run the update rule again.";
disabled = true;
}
}
public override IEnumerable<string> BeforeUpdate(ModData modData)
{
// Don't reload data when processing maps
if (!parseModYaml)
yield break;
parseModYaml = false;
// HACK: We need to read the obsolete yaml definitions to be able to update the sequences
// TilesetSpecificSpriteSequence no longer defines fields for these, so we must take them directly from mod.yaml
var yamlField = modData.Manifest.GetType().GetField("yaml", BindingFlags.Instance | BindingFlags.NonPublic);
var yaml = (Dictionary<string, MiniYaml>)yamlField?.GetValue(modData.Manifest);
if (yaml != null && yaml.TryGetValue("SpriteSequenceFormat", out var spriteSequenceFormatYaml))
{
if (spriteSequenceFormatYaml.Value == "DefaultSpriteSequence")
{
defaultSpriteExtension = "";
yield break;
}
var spriteSequenceFormatNode = new MiniYamlNode("", spriteSequenceFormatYaml);
var defaultSpriteExtensionNode = spriteSequenceFormatNode.LastChildMatching("DefaultSpriteExtension");
if (defaultSpriteExtensionNode != null)
{
reportModYamlChanges = true;
defaultSpriteExtension = defaultSpriteExtensionNode.Value.Value;
}
var tilesetExtensionsNode = spriteSequenceFormatNode.LastChildMatching("TilesetExtensions");
if (tilesetExtensionsNode != null)
{
reportModYamlChanges = true;
foreach (var n in tilesetExtensionsNode.Value.Nodes)
tilesetExtensions[n.Key] = n.Value.Value;
}
var tilesetCodesNode = spriteSequenceFormatNode.LastChildMatching("TilesetCodes");
if (tilesetCodesNode != null)
{
reportModYamlChanges = true;
foreach (var n in tilesetCodesNode.Value.Nodes)
tilesetCodes[n.Key] = n.Value.Value;
}
}
}
public override IEnumerable<string> AfterUpdate(ModData modData)
{
if (!reportModYamlChanges)
yield break;
yield return "The DefaultSpriteExtension, TilesetExtensions, and TilesetCodes fields defined\n" +
"under SpriteSequenceFormat in your mod.yaml are no longer used, and can be removed.";
reportModYamlChanges = false;
}
public override IEnumerable<string> UpdateSequenceNode(ModData modData, MiniYamlNode imageNode)
{
if (disabled)
yield break;
var resolvedImageNode = resolvedImagesNodes.Single(n => n.Key == imageNode.Key);
// Add a placeholder for inherited sequences that were previously implicitly named
var implicitInheritedSequences = new List<string>();
foreach (var resolvedSequenceNode in resolvedImageNode.Value.Nodes)
{
if (resolvedSequenceNode.Key != "Defaults" && string.IsNullOrEmpty(resolvedSequenceNode.Value.Value) &&
imageNode.LastChildMatching(resolvedSequenceNode.Key) == null)
{
imageNode.AddNode(resolvedSequenceNode.Key, "");
implicitInheritedSequences.Add(resolvedSequenceNode.Key);
}
}
var resolvedDefaultsNode = resolvedImageNode.LastChildMatching("Defaults");
if (resolvedDefaultsNode != null)
{
foreach (var resolvedSequenceNode in resolvedImageNode.Value.Nodes)
{
if (resolvedSequenceNode == resolvedDefaultsNode)
continue;
resolvedSequenceNode.Value.Nodes = MiniYaml.Merge(new[] { resolvedDefaultsNode.Value.Nodes, resolvedSequenceNode.Value.Nodes });
resolvedSequenceNode.Value.Value = resolvedSequenceNode.Value.Value ?? resolvedDefaultsNode.Value.Value;
}
}
// Sequences that explicitly defined a filename may be inherited by others that depend on the explicit name
// Keep track of these sequences so we don't remove the filenames later!
var explicitlyNamedSequences = new List<string>();
// Add Filename/TilesetFilenames nodes to every sequence
foreach (var sequenceNode in imageNode.Value.Nodes)
{
if (string.IsNullOrEmpty(sequenceNode.Key) || sequenceNode.KeyMatches("Inherits"))
continue;
if (!string.IsNullOrEmpty(sequenceNode.Value.Value))
explicitlyNamedSequences.Add(sequenceNode.Key);
var resolvedSequenceNode = resolvedImageNode.Value.Nodes.SingleOrDefault(n => n.Key == sequenceNode.Key);
if (resolvedSequenceNode == null)
continue;
ProcessNode(modData, sequenceNode, resolvedSequenceNode, imageNode.Key);
}
// Identify a suitable default for deduplication
MiniYamlNode defaultFilenameNode = null;
MiniYamlNode defaultTilesetFilenamesNode = null;
foreach (var defaultsNode in imageNode.ChildrenMatching("Defaults"))
{
defaultFilenameNode = defaultsNode.LastChildMatching("Filename") ?? defaultFilenameNode;
defaultTilesetFilenamesNode = defaultsNode.LastChildMatching("TilesetFilenames") ?? defaultTilesetFilenamesNode;
}
if ((defaultFilenameNode == null || defaultTilesetFilenamesNode == null) && !imageNode.Key.StartsWith("^"))
{
var duplicateCount = new Dictionary<string, int>();
var duplicateTilesetCount = new Dictionary<string, int>();
foreach (var sequenceNode in imageNode.Value.Nodes)
{
if (string.IsNullOrEmpty(sequenceNode.Key) || explicitlyNamedSequences.Contains(sequenceNode.Key))
continue;
var tilesetFilenamesNode = sequenceNode.LastChildMatching("TilesetFilenames");
if (defaultTilesetFilenamesNode == null && tilesetFilenamesNode != null)
{
var key = tilesetFilenamesNode.Value.Nodes.WriteToString();
duplicateTilesetCount[key] = duplicateTilesetCount.GetValueOrDefault(key, 0) + 1;
}
var filenameNode = sequenceNode.LastChildMatching("Filename");
if (defaultFilenameNode == null && filenameNode != null)
{
var key = filenameNode.Value.Value;
duplicateCount[key] = duplicateCount.GetValueOrDefault(key, 0) + 1;
}
}
var maxDuplicateTilesetCount = duplicateTilesetCount.MaxByOrDefault(kv => kv.Value).Value;
if (maxDuplicateTilesetCount > 1)
{
if (imageNode.LastChildMatching("Defaults") == null)
imageNode.Value.Nodes.Insert(0, new MiniYamlNode("Defaults", ""));
var nodes = MiniYaml.FromString(duplicateTilesetCount.First(kv => kv.Value == maxDuplicateTilesetCount).Key);
defaultTilesetFilenamesNode = new MiniYamlNode("TilesetFilenames", "", nodes);
imageNode.LastChildMatching("Defaults").Value.Nodes.Insert(0, defaultTilesetFilenamesNode);
}
var maxDuplicateCount = duplicateCount.MaxByOrDefault(kv => kv.Value).Value;
if (maxDuplicateCount > 1)
{
if (imageNode.LastChildMatching("Defaults") == null)
imageNode.Value.Nodes.Insert(0, new MiniYamlNode("Defaults", ""));
defaultFilenameNode = new MiniYamlNode("Filename", duplicateCount.First(kv => kv.Value == maxDuplicateCount).Key);
imageNode.LastChildMatching("Defaults").Value.Nodes.Insert(0, defaultFilenameNode);
}
}
// Remove redundant definitions
foreach (var sequenceNode in imageNode.Value.Nodes.ToList())
{
if (sequenceNode.Key == "Defaults" || sequenceNode.Key == "Inherits" || string.IsNullOrEmpty(sequenceNode.Key))
continue;
var combineNode = sequenceNode.LastChildMatching("Combine");
var filenameNode = sequenceNode.LastChildMatching("Filename");
var tilesetFilenamesNode = sequenceNode.LastChildMatching("TilesetFilenames");
if (defaultTilesetFilenamesNode != null && combineNode != null)
sequenceNode.Value.Nodes.Insert(0, new MiniYamlNode("TilesetFilenames", ""));
if (defaultFilenameNode != null && combineNode != null)
sequenceNode.Value.Nodes.Insert(0, new MiniYamlNode("Filename", ""));
if (defaultTilesetFilenamesNode != null && tilesetFilenamesNode == null && filenameNode != null)
{
var index = sequenceNode.Value.Nodes.IndexOf(filenameNode) + 1;
sequenceNode.Value.Nodes.Insert(index, new MiniYamlNode("TilesetFilenames", ""));
}
// Remove redundant overrides
if (!explicitlyNamedSequences.Contains(sequenceNode.Key))
{
if (defaultTilesetFilenamesNode != null && tilesetFilenamesNode != null)
{
var allTilesetsMatch = true;
foreach (var overrideNode in tilesetFilenamesNode.Value.Nodes)
if (!defaultTilesetFilenamesNode.Value.Nodes.Any(n => n.Key == overrideNode.Key && n.Value.Value == overrideNode.Value.Value))
allTilesetsMatch = false;
if (allTilesetsMatch)
sequenceNode.RemoveNode(tilesetFilenamesNode);
}
if (filenameNode?.Value.Value != null && filenameNode?.Value.Value == defaultFilenameNode?.Value.Value)
sequenceNode.RemoveNode(filenameNode);
}
}
var allSequencesHaveFilename = true;
var allSequencesHaveTilesetFilenames = true;
foreach (var sequenceNode in imageNode.Value.Nodes.ToList())
{
if (sequenceNode.Key == "Defaults" || sequenceNode.Key == "Inherits" || string.IsNullOrEmpty(sequenceNode.Key))
continue;
if (sequenceNode.LastChildMatching("Filename") == null)
allSequencesHaveFilename = false;
if (sequenceNode.LastChildMatching("TilesetFilenames") == null)
allSequencesHaveTilesetFilenames = false;
}
if (allSequencesHaveFilename || allSequencesHaveTilesetFilenames)
{
foreach (var sequenceNode in imageNode.Value.Nodes.ToList())
{
if (sequenceNode.Key == "Defaults")
{
if (allSequencesHaveFilename)
sequenceNode.RemoveNodes("Filename");
if (allSequencesHaveTilesetFilenames)
sequenceNode.RemoveNodes("TilesetFilenames");
if (!sequenceNode.Value.Nodes.Any())
imageNode.RemoveNode(sequenceNode);
}
if (allSequencesHaveFilename && sequenceNode.LastChildMatching("Combine") != null)
sequenceNode.RemoveNodes("Filename");
if (allSequencesHaveTilesetFilenames && sequenceNode.LastChildMatching("Combine") != null)
sequenceNode.RemoveNodes("TilesetFilenames");
var tilesetFilenamesNode = sequenceNode.LastChildMatching("TilesetFilenames");
if (allSequencesHaveTilesetFilenames && tilesetFilenamesNode != null && !tilesetFilenamesNode.Value.Nodes.Any())
sequenceNode.RemoveNode(tilesetFilenamesNode);
}
}
foreach (var sequenceNode in imageNode.Value.Nodes.ToList())
if (implicitInheritedSequences.Contains(sequenceNode.Key) && !sequenceNode.Value.Nodes.Any())
imageNode.RemoveNode(sequenceNode);
yield break;
}
void ProcessNode(ModData modData, MiniYamlNode sequenceNode, MiniYamlNode resolvedSequenceNode, string imageName)
{
var addExtension = true;
var addExtensionNode = resolvedSequenceNode.LastChildMatching("AddExtension");
if (addExtensionNode != null)
addExtension = FieldLoader.GetValue<bool>("AddExtension", addExtensionNode.Value.Value);
var useTilesetExtension = false;
var useTilesetExtensionNode = resolvedSequenceNode.LastChildMatching("UseTilesetExtension");
if (useTilesetExtensionNode != null)
useTilesetExtension = FieldLoader.GetValue<bool>("UseTilesetExtension", useTilesetExtensionNode.Value.Value);
var useTilesetCode = false;
var useTilesetCodeNode = resolvedSequenceNode.LastChildMatching("UseTilesetCode");
if (useTilesetCodeNode != null)
useTilesetCode = FieldLoader.GetValue<bool>("UseTilesetCode", useTilesetCodeNode.Value.Value);
var tilesetOverrides = new Dictionary<string, string>();
var tilesetOverridesNode = resolvedSequenceNode.LastChildMatching("TilesetOverrides");
if (tilesetOverridesNode != null)
foreach (var tilesetNode in tilesetOverridesNode.Value.Nodes)
tilesetOverrides[tilesetNode.Key] = tilesetNode.Value.Value;
sequenceNode.RemoveNodes("AddExtension");
sequenceNode.RemoveNodes("UseTilesetExtension");
sequenceNode.RemoveNodes("UseTilesetCode");
sequenceNode.RemoveNodes("TilesetOverrides");
// Replace removals with masking
foreach (var node in sequenceNode.Value.Nodes)
if (node.Key?.StartsWith("-") ?? false)
node.Key = node.Key.Substring(1);
var combineNode = sequenceNode.LastChildMatching("Combine");
if (combineNode != null)
{
var i = 0;
foreach (var node in combineNode.Value.Nodes)
{
ProcessNode(modData, node, node, node.Key);
node.Key = (i++).ToString();
}
return;
}
var filename = string.IsNullOrEmpty(resolvedSequenceNode.Value.Value) ? imageName : resolvedSequenceNode.Value.Value;
if (filename.StartsWith("^"))
return;
if (useTilesetExtension || useTilesetCode)
{
var tilesetFilenamesNode = new MiniYamlNode("TilesetFilenames", "");
var duplicateCount = new Dictionary<string, int>();
foreach (var tileset in modData.DefaultTerrainInfo.Keys)
{
if (!tilesetOverrides.TryGetValue(tileset, out var sequenceTileset))
sequenceTileset = tileset;
var overrideFilename = filename;
if (useTilesetCode)
overrideFilename = filename.Substring(0, 1) + tilesetCodes[sequenceTileset] +
filename.Substring(2, filename.Length - 2);
if (addExtension)
overrideFilename += useTilesetExtension ? tilesetExtensions[sequenceTileset] : defaultSpriteExtension;
tilesetFilenamesNode.AddNode(tileset, overrideFilename);
duplicateCount[overrideFilename] = duplicateCount.GetValueOrDefault(overrideFilename, 0) + 1;
}
sequenceNode.Value.Nodes.Insert(0, tilesetFilenamesNode);
// Deduplicate tileset overrides
var maxDuplicateCount = duplicateCount.MaxByOrDefault(kv => kv.Value).Value;
if (maxDuplicateCount > 1)
{
var filenameNode = new MiniYamlNode("Filename", duplicateCount.First(kv => kv.Value == maxDuplicateCount).Key);
foreach (var overrideNode in tilesetFilenamesNode.Value.Nodes.ToList())
if (overrideNode.Value.Value == filenameNode.Value.Value)
tilesetFilenamesNode.Value.Nodes.Remove(overrideNode);
if (!tilesetFilenamesNode.Value.Nodes.Any())
sequenceNode.RemoveNode(tilesetFilenamesNode);
sequenceNode.Value.Nodes.Insert(0, filenameNode);
}
}
else
{
if (addExtension)
filename += defaultSpriteExtension;
sequenceNode.Value.Nodes.Insert(0, new MiniYamlNode("Filename", filename));
}
sequenceNode.ReplaceValue("");
}
}
}

View File

@@ -103,6 +103,7 @@ namespace OpenRA.Mods.Common.UpdateRules
new UpdatePath("playtest-20221203", new UpdateRule[]
{
new TextNotificationsDisplayWidgetRemoveTime(),
new ExplicitSequenceFilenames(),
})
};

View File

@@ -1,21 +1,29 @@
c17:
idle:
Filename: c17.shp
Facings: 32
UseClassicFacings: True
icon: c17icnh
icon:
Filename: c17icnh.shp
tran:
Defaults:
Filename: tran.shp
idle:
Facings: 32
UseClassicFacings: True
rotor: lrotor
rotor:
Filename: lrotor.shp
Length: 4
rotor2: rrotor
rotor2:
Filename: rrotor.shp
Length: 4
slow-rotor: lrotor
slow-rotor:
Filename: lrotor.shp
Start: 4
Length: 8
slow-rotor2: rrotor
slow-rotor2:
Filename: rrotor.shp
Start: 4
Length: 8
open:
@@ -23,40 +31,48 @@ tran:
Length: 4
unload:
Start: 35
icon: tranicnh.tem
AddExtension: False
icon:
Filename: tranicnh.tem
heli:
idle:
Filename: heli.shp
Facings: 32
UseClassicFacings: True
rotor: lrotor
rotor:
Filename: lrotor.shp
Length: 4
slow-rotor: lrotor
slow-rotor:
Filename: lrotor.shp
Start: 4
Length: 8
muzzle: minigun
muzzle:
Filename: minigun.shp
Length: 6
Facings: 8
icon: heliicnh.tem
AddExtension: False
icon:
Filename: heliicnh.tem
orca:
Defaults:
Filename: orca.shp
idle:
Facings: 32
UseClassicFacings: True
move:
Start: 32
Facings: 32
icon: orcaicnh.tem
AddExtension: False
icon:
Filename: orcaicnh.tem
a10:
idle:
Filename: a10.shp
Facings: 32
UseClassicFacings: True
muzzle: minigun
muzzle:
Filename: minigun.shp
Length: 6
Facings: 8
icon: a10icnh.tem
AddExtension: False
icon:
Filename: a10icnh.tem

View File

@@ -1,12 +1,15 @@
lst:
idle: lst
idle:
Filename: lst.shp
Start: 0
Facings: 1
ZOffset: -1024
icon: lsticnh.tem
AddExtension: False
icon:
Filename: lsticnh.tem
boat:
Defaults:
Filename: boat.shp
left:
Facings: 32
damaged-left:
@@ -15,7 +18,8 @@ boat:
critical-left:
Start: 64
Facings: 32
wake-left: wake
wake-left:
Filename: wake.shp
Start: 6
Length: 6
Offset: 1,2
@@ -29,9 +33,10 @@ boat:
critical-right:
Start: 160
Facings: 32
wake-right: wake
wake-right:
Filename: wake.shp
Length: 6
Offset: -1,2
Tick: 120
icon: boaticnh.tem
AddExtension: False
icon:
Filename: boaticnh.tem

View File

@@ -1,4 +1,6 @@
c1:
Defaults:
Filename: c1.shp
stand:
Facings: 8
panic-stand:
@@ -44,43 +46,65 @@ c1:
Start: 182
Length: 4
Tick: 80
die-crushed: e1rot
die-crushed:
Filename: e1rot.shp
Start: 16
Length: 4
Tick: 1600
c2:
Defaults:
Filename: c2.shp
Inherits: c1
c3:
Defaults:
Filename: c3.shp
Inherits: c1
c4:
Defaults:
Filename: c4.shp
Inherits: c1
c5:
Defaults:
Filename: c5.shp
Inherits: c1
c6:
Defaults:
Filename: c6.shp
Inherits: c1
c7:
Defaults:
Filename: c7.shp
Inherits: c1
c8:
Defaults:
Filename: c8.shp
Inherits: c1
c9:
Defaults:
Filename: c9.shp
Inherits: c1
c10:
Defaults:
Filename: c10.shp
Inherits: c1
delphi:
Defaults:
Filename: delphi.shp
Inherits: c1
moebius:
Defaults:
Filename: moebius.shp
Tick: 80
stand:
Facings: 8
@@ -115,10 +139,13 @@ moebius:
die6:
Start: 214
Length: 3
die-crushed: e1rot
die-crushed:
Filename: e1rot.shp
Start: 16
Length: 4
Tick: 1600
chan:
Defaults:
Filename: chan.shp
Inherits: moebius

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,6 @@
steg:
Defaults:
Filename: steg.shp
stand:
Facings: 8
stand2:
@@ -15,9 +17,12 @@ steg:
die:
Start: 176
Length: 22
icon: stegicnh
icon:
Filename: stegicnh.shp
trex:
Defaults:
Filename: trex.shp
stand:
Facings: 8
stand2:
@@ -34,9 +39,12 @@ trex:
die:
Start: 144
Length: 40
icon: trexicnh
icon:
Filename: trexicnh.shp
tric:
Defaults:
Filename: tric.shp
stand:
Facings: 8
stand2:
@@ -53,9 +61,12 @@ tric:
die:
Start: 176
Length: 20
icon: tricicnh
icon:
Filename: tricicnh.shp
rapt:
Defaults:
Filename: rapt.shp
stand:
Facings: 8
stand2:
@@ -72,4 +83,5 @@ rapt:
die:
Start: 144
Length: 40
icon: rapticnh
icon:
Filename: rapticnh.shp

View File

@@ -1,43 +1,58 @@
vice:
idle:
Filename: vice.shp
Length: *
muzzle:
Combine:
chem-n:
0:
Filename: chem-n.shp
Length: *
Offset: 1,2
chem-nw:
1:
Filename: chem-nw.shp
Length: *
Offset: 8,2
chem-w:
2:
Filename: chem-w.shp
Length: *
Offset: 8,-3
chem-sw:
3:
Filename: chem-sw.shp
Length: *
Offset: 7,-6
chem-s:
4:
Filename: chem-s.shp
Length: *
Offset: 1,-6
chem-se:
5:
Filename: chem-se.shp
Length: *
Offset: -5,-6
chem-e:
6:
Filename: chem-e.shp
Length: *
Offset: -7,-3
chem-ne:
7:
Filename: chem-ne.shp
Length: *
Offset: -3,2
Facings: 8
Length: 13
die: chemball
die:
Filename: chemball.shp
Length: *
ZOffset: 2047
icon: viceicnh
icon:
Filename: viceicnh.shp
pvice:
Defaults:
Filename: pvice.shp
Inherits: vice
e1:
Defaults:
Filename: e1.shp
stand:
Facings: 8
stand2:
@@ -131,15 +146,18 @@ e1:
Start: 366
Length: 11
Tick: 80
die-crushed: e1rot
die-crushed:
Filename: e1rot.shp
Start: 16
Length: 4
Tick: 1600
ZOffset: -511
icon: e1icnh.tem
AddExtension: False
icon:
Filename: e1icnh.tem
e2:
Defaults:
Filename: e2.shp
stand:
Facings: 8
stand2:
@@ -224,15 +242,18 @@ e2:
Start: 494
Length: 11
Tick: 80
die-crushed: e2rot
die-crushed:
Filename: e2rot.shp
Start: 16
Length: 4
Tick: 1600
ZOffset: -511
icon: e2icnh.tem
AddExtension: False
icon:
Filename: e2icnh.tem
e3:
Defaults:
Filename: e3.shp
stand:
Facings: 8
stand2:
@@ -317,15 +338,18 @@ e3:
Start: 382
Length: 11
Tick: 80
die-crushed: e3rot
die-crushed:
Filename: e3rot.shp
Start: 16
Length: 4
Tick: 1600
ZOffset: -511
icon: e3icnh.tem
AddExtension: False
icon:
Filename: e3icnh.tem
e4:
Defaults:
Filename: e4.shp
stand:
Facings: 8
stand2:
@@ -410,43 +434,55 @@ e4:
Start: 494
Length: 10
Tick: 80
die-crushed: e4rot
die-crushed:
Filename: e4rot.shp
Start: 16
Length: 4
Tick: 1600
ZOffset: -511
muzzle:
Filename:
Combine:
flame-n:
0:
Filename: flame-n.shp
Length: *
Offset: 1,6
flame-nw:
1:
Filename: flame-nw.shp
Length: *
Offset: 8,7
flame-w:
2:
Filename: flame-w.shp
Length: *
Offset: 8,2
flame-sw:
3:
Filename: flame-sw.shp
Length: *
Offset: 7,-2
flame-s:
4:
Filename: flame-s.shp
Length: *
Offset: 1,-2
flame-se:
5:
Filename: flame-se.shp
Length: *
Offset: -5,-2
flame-e:
6:
Filename: flame-e.shp
Length: *
Offset: -7,2
flame-ne:
7:
Filename: flame-ne.shp
Length: *
Offset: -7,8
Facings: 8
Length: 13
icon: e4icnh.tem
AddExtension: False
icon:
Filename: e4icnh.tem
e5:
Defaults:
Filename: e5.shp
stand:
Facings: 8
stand2:
@@ -531,43 +567,55 @@ e5:
Start: 494
Length: 10
Tick: 80
die-crushed: e4rot
die-crushed:
Filename: e4rot.shp
Start: 16
Length: 4
Tick: 1600
ZOffset: -511
muzzle:
Filename:
Combine:
chem-n:
0:
Filename: chem-n.shp
Length: *
Offset: 1,2
chem-nw:
1:
Filename: chem-nw.shp
Length: *
Offset: 8,2
chem-w:
2:
Filename: chem-w.shp
Length: *
Offset: 8,-3
chem-sw:
3:
Filename: chem-sw.shp
Length: *
Offset: 7,-6
chem-s:
4:
Filename: chem-s.shp
Length: *
Offset: 1,-6
chem-se:
5:
Filename: chem-se.shp
Length: *
Offset: -5,-6
chem-e:
6:
Filename: chem-e.shp
Length: *
Offset: -7,-3
chem-ne:
7:
Filename: chem-ne.shp
Length: *
Offset: -3,2
Facings: 8
Length: 13
icon: e5icnh.tem
AddExtension: False
icon:
Filename: e5icnh.tem
e6:
Defaults:
Filename: e6.shp
stand:
Facings: 8
stand2:
@@ -644,15 +692,18 @@ e6:
Start: 130
Length: 4
Tick: 80
die-crushed: e1rot
die-crushed:
Filename: e1rot.shp
Start: 16
Length: 4
Tick: 1600
ZOffset: -511
icon: e6icnh.tem
AddExtension: False
icon:
Filename: e6icnh.tem
rmbo:
Defaults:
Filename: rmbo.shp
stand:
Facings: 8
stand2:
@@ -741,10 +792,11 @@ rmbo:
Start: 308
Length: 4
Tick: 80
die-crushed: e1rot
die-crushed:
Filename: e1rot.shp
Start: 16
Length: 4
Tick: 1600
ZOffset: -511
icon: rmboicnh.tem
AddExtension: False
icon:
Filename: rmboicnh.tem

View File

@@ -1,19 +1,24 @@
fb4:
idle:
Filename: fb4.shp
Length: 4
ZOffset: 1023
fire:
1: fire1
1:
Filename: fire1.shp
Length: *
Offset: 0,-3
ZOffset: 1023
2: fire2
2:
Filename: fire2.shp
Length: *
Offset: 0,-3
ZOffset: 1023
burn-l:
Defaults:
Filename: burn-l.shp
idle:
Length: *
ZOffset: 512
@@ -27,6 +32,8 @@ burn-l:
ZOffset: 512
burn-m:
Defaults:
Filename: burn-m.shp
idle:
Length: *
ZOffset: 512
@@ -40,6 +47,8 @@ burn-m:
ZOffset: 512
burn-s:
Defaults:
Filename: burn-s.shp
idle:
Length: *
ZOffset: 512
@@ -54,9 +63,12 @@ burn-s:
120mm:
idle:
Filename: 120mm.shp
ZOffset: 1023
smoke_m:
Defaults:
Filename: smoke_m.shp
idle:
Length: *
Offset: 2, -5
@@ -73,32 +85,38 @@ smoke_m:
ZOffset: 512
laserfire:
idle: veh-hit3
idle:
Filename: veh-hit3.shp
Length: *
ZOffset: 511
dragon:
idle:
Filename: dragon.shp
Facings: 32
ZOffset: 1023
smokey:
idle:
Filename: smokey.shp
Length: *
ZOffset: 1023
bomb:
idle:
Filename: bomb.shp
Length: *
ZOffset: 1023
missile:
idle:
Filename: missile.shp
Facings: 32
ZOffset: 1023
patriot:
idle:
Filename: patriot.shp
Facings: 32
ZOffset: 1023
@@ -106,25 +124,41 @@ explosion:
Defaults:
Length: *
ZOffset: 2047
nuke_explosion: atomsfx
piff: piff
piffs: piffpiff
chemball: chemball
small_napalm: napalm1
med_napalm: napalm2
big_napalm: napalm3
small_frag: veh-hit3
med_frag: frag1
big_frag: frag3
small_poof: veh-hit2
poof: art-exp1
small_building: veh-hit1
building: fball1
building_napalm: napalm2
nuke_explosion:
Filename: atomsfx.shp
piff:
Filename: piff.shp
piffs:
Filename: piffpiff.shp
chemball:
Filename: chemball.shp
small_napalm:
Filename: napalm1.shp
med_napalm:
Filename: napalm2.shp
big_napalm:
Filename: napalm3.shp
small_frag:
Filename: veh-hit3.shp
med_frag:
Filename: frag1.shp
big_frag:
Filename: frag3.shp
small_poof:
Filename: veh-hit2.shp
poof:
Filename: art-exp1.shp
small_building:
Filename: veh-hit1.shp
building:
Filename: fball1.shp
building_napalm:
Filename: napalm2.shp
FlipX: true
rank:
Defaults:
Filename: rank.shp
Offset: 0, 3
rank-veteran-1:
rank-veteran-2:
@@ -136,67 +170,82 @@ rank:
Offset: 1, 3
rallypoint:
flag: flagfly
flag:
Filename: flagfly.shp
Length: *
Offset: 10,-5
ZOffset: 2535
circles: fpls
circles:
Filename: fpls.shp
Length: *
ZOffset: 2047
beacon:
Defaults:
ZOffset: 2535
arrow: mouse2
arrow:
Filename: mouse2.shp
Start: 5
Offset: 1,-12
circles: fpls
circles:
Filename: fpls.shp
Length: *
ZOffset: 2047
airstrike: bombicon
airstrike:
Filename: bombicon.shp
Offset: 0,-42
atomic: atomicon
atomic:
Filename: atomicon.shp
Offset: 0,-42
clock: beaconclock
clock:
Filename: beaconclock.shp
Length: *
Offset: 0,-42
select:
repair:
Filename: select.shp
Start: 2
allyrepair:
repair:
Filename: allyrepair.shp
Length: *
Tick: 160
ZOffset: 2047
scrate:
idle:
Filename: scrate.shp
Start: 1
ZOffset: -511
wcrate:
idle:
Filename: wcrate.shp
Start: 1
ZOffset: -511
xcratea:
idle: xcrate
idle:
Filename: xcrate.shp
ZOffset: -511
xcrateb:
idle: xcrate
idle:
Filename: xcrate.shp
Start: 1
ZOffset: -511
xcratec:
idle: xcrate
idle:
Filename: xcrate.shp
Start: 2
ZOffset: -511
xcrated:
idle: xcrate
idle:
Filename: xcrate.shp
Start: 3
ZOffset: -511
@@ -204,56 +253,79 @@ crate-effects:
Defaults:
Length: *
ZOffset: 2047
airstrike: deviator
nuke: missile2
dollar: dollar
reveal-map: radarcrate
hide-map: empulse
heal: healcrate
mine: mine
redskull: rapid
cloak: cloakcrate
levelup: levelup
airstrike:
Filename: deviator.shp
nuke:
Filename: missile2.shp
dollar:
Filename: dollar.shp
reveal-map:
Filename: radarcrate.shp
hide-map:
Filename: empulse.shp
heal:
Filename: healcrate.shp
mine:
Filename: mine.shp
redskull:
Filename: rapid.shp
cloak:
Filename: cloakcrate.shp
levelup:
Filename: levelup.shp
Tick: 200
firepowerup: firepowercrate
armorup: armorcrate
speedup: speedcrate
firepowerup:
Filename: firepowercrate.shp
armorup:
Filename: armorcrate.shp
speedup:
Filename: speedcrate.shp
atomic:
Defaults:
Length: *
ZOffset: 1023
up: atomicup
down: atomicdn
up:
Filename: atomicup.shp
down:
Filename: atomicdn.shp
ionsfx:
idle:
Filename: ionsfx.shp
Length: *
Offset: 0, -78
ZOffset: 1023
bomblet:
idle:
Filename: bomblet.shp
Length: *
ZOffset: 1023
mpspawn:
idle:
Filename: mpspawn.shp
Length: *
waypoint:
idle:
Filename: waypoint.shp
Length: *
camera:
idle:
Filename: camera.shp
Length: *
clock:
idle: hclock
idle:
Filename: hclock.shp
Length: *
pips:
Defaults:
Filename: pips.shp
pip-empty:
pip-green:
Start: 1
@@ -265,18 +337,21 @@ pips:
Start: 4
pip-blue:
Start: 5
pip-heal: pip-heal
pip-heal:
Filename: pip-heal.shp
Offset: -1, 1
groups: pdigits
groups:
Filename: pdigits.shp
Length: *
Offset: 9, 5
Frames: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0
pip-hazmat: pip-hazmat
pip-hazmat:
Filename: pip-hazmat.shp
Offset: -3, 0
overlay:
Defaults: trans.icn
AddExtension: False
Defaults:
Filename: trans.icn
build-valid:
build-invalid:
Start: 2
@@ -287,146 +362,285 @@ overlay:
Start: 2
editor-overlay:
Defaults: trans.icn
AddExtension: False
Defaults:
Filename: trans.icn
copy:
paste:
Start: 2
poweroff:
offline:
Filename: poweroff.shp
Length: *
Tick: 160
ZOffset: 2047
icon:
Defaults:
AddExtension: False
airstrike: bombicnh.tem
ioncannon: ionicnh.tem
abomb: atomicnh.tem
airstrike:
Filename: bombicnh.tem
ioncannon:
Filename: ionicnh.tem
abomb:
Filename: atomicnh.tem
moveflsh:
idle:
Filename: moveflsh.shp
Length: *
Tick: 80
ZOffset: 2047
resources:
Defaults:
UseTilesetExtension: true
Length: *
ti1: ti1
ti2: ti2
ti3: ti3
ti4: ti4
ti5: ti5
ti6: ti6
ti7: ti7
ti8: ti8
ti9: ti9
ti10: ti10
ti11: ti11
ti12: ti12
bti1: rtib1
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bti2: rtib2
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bti3: rtib3
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bti4: rtib4
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bti5: rtib5
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bti6: rtib6
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bti7: rtib7
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bti8: rtib8
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bti9: rtib9
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bti10: rtib10
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bti11: rtib11
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bti12: rtib12
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
ti1:
TilesetFilenames:
DESERT: ti1.des
WINTER: ti1.win
SNOW: ti1.sno
TEMPERAT: ti1.tem
JUNGLE: ti1.jun
ti2:
TilesetFilenames:
DESERT: ti2.des
WINTER: ti2.win
SNOW: ti2.sno
TEMPERAT: ti2.tem
JUNGLE: ti2.jun
ti3:
TilesetFilenames:
DESERT: ti3.des
WINTER: ti3.win
SNOW: ti3.sno
TEMPERAT: ti3.tem
JUNGLE: ti3.jun
ti4:
TilesetFilenames:
DESERT: ti4.des
WINTER: ti4.win
SNOW: ti4.sno
TEMPERAT: ti4.tem
JUNGLE: ti4.jun
ti5:
TilesetFilenames:
DESERT: ti5.des
WINTER: ti5.win
SNOW: ti5.sno
TEMPERAT: ti5.tem
JUNGLE: ti5.jun
ti6:
TilesetFilenames:
DESERT: ti6.des
WINTER: ti6.win
SNOW: ti6.sno
TEMPERAT: ti6.tem
JUNGLE: ti6.jun
ti7:
TilesetFilenames:
DESERT: ti7.des
WINTER: ti7.win
SNOW: ti7.sno
TEMPERAT: ti7.tem
JUNGLE: ti7.jun
ti8:
TilesetFilenames:
DESERT: ti8.des
WINTER: ti8.win
SNOW: ti8.sno
TEMPERAT: ti8.tem
JUNGLE: ti8.jun
ti9:
TilesetFilenames:
DESERT: ti9.des
WINTER: ti9.win
SNOW: ti9.sno
TEMPERAT: ti9.tem
JUNGLE: ti9.jun
ti10:
TilesetFilenames:
DESERT: ti10.des
WINTER: ti10.win
SNOW: ti10.sno
TEMPERAT: ti10.tem
JUNGLE: ti10.jun
ti11:
TilesetFilenames:
DESERT: ti11.des
WINTER: ti11.win
SNOW: ti11.sno
TEMPERAT: ti11.tem
JUNGLE: ti11.jun
ti12:
TilesetFilenames:
DESERT: ti12.des
WINTER: ti12.win
SNOW: ti12.sno
TEMPERAT: ti12.tem
JUNGLE: ti12.jun
bti1:
Filename: rtib1.tem
TilesetFilenames:
DESERT: rtib1.des
bti2:
Filename: rtib2.tem
TilesetFilenames:
DESERT: rtib2.des
bti3:
Filename: rtib3.tem
TilesetFilenames:
DESERT: rtib3.des
bti4:
Filename: rtib4.tem
TilesetFilenames:
DESERT: rtib4.des
bti5:
Filename: rtib5.tem
TilesetFilenames:
DESERT: rtib5.des
bti6:
Filename: rtib6.tem
TilesetFilenames:
DESERT: rtib6.des
bti7:
Filename: rtib7.tem
TilesetFilenames:
DESERT: rtib7.des
bti8:
Filename: rtib8.tem
TilesetFilenames:
DESERT: rtib8.des
bti9:
Filename: rtib9.tem
TilesetFilenames:
DESERT: rtib9.des
bti10:
Filename: rtib10.tem
TilesetFilenames:
DESERT: rtib10.des
bti11:
Filename: rtib11.tem
TilesetFilenames:
DESERT: rtib11.des
bti12:
Filename: rtib12.tem
TilesetFilenames:
DESERT: rtib12.des
shroud:
Defaults:
Length: 12
typea: shadow
typeb: shadow
typea:
Filename: shadow.shp
typeb:
Filename: shadow.shp
Start: 12
typec: shadow
typec:
Filename: shadow.shp
Start: 24
typed: shadow
typed:
Filename: shadow.shp
Start: 36
full: fullshroud
full:
Filename: fullshroud.shp
Length: 1
# Note: The order of smudges and craters determines
# the index that is mapped to them in maps
scorches:
Defaults:
UseTilesetExtension: true
Length: *
sc1: sc1
sc2: sc2
sc3: sc3
sc4: sc4
sc5: sc5
sc6: sc6
sc1:
TilesetFilenames:
DESERT: sc1.des
WINTER: sc1.win
SNOW: sc1.sno
TEMPERAT: sc1.tem
JUNGLE: sc1.jun
sc2:
TilesetFilenames:
DESERT: sc2.des
WINTER: sc2.win
SNOW: sc2.sno
TEMPERAT: sc2.tem
JUNGLE: sc2.jun
sc3:
TilesetFilenames:
DESERT: sc3.des
WINTER: sc3.win
SNOW: sc3.sno
TEMPERAT: sc3.tem
JUNGLE: sc3.jun
sc4:
TilesetFilenames:
DESERT: sc4.des
WINTER: sc4.win
SNOW: sc4.sno
TEMPERAT: sc4.tem
JUNGLE: sc4.jun
sc5:
TilesetFilenames:
DESERT: sc5.des
WINTER: sc5.win
SNOW: sc5.sno
TEMPERAT: sc5.tem
JUNGLE: sc5.jun
sc6:
TilesetFilenames:
DESERT: sc6.des
WINTER: sc6.win
SNOW: sc6.sno
TEMPERAT: sc6.tem
JUNGLE: sc6.jun
craters:
Defaults:
UseTilesetExtension: true
Length: *
cr1: cr1
cr2: cr2
cr3: cr3
cr4: cr4
cr5: cr5
cr6: cr6
cr1:
TilesetFilenames:
DESERT: cr1.des
WINTER: cr1.win
SNOW: cr1.sno
TEMPERAT: cr1.tem
JUNGLE: cr1.jun
cr2:
TilesetFilenames:
DESERT: cr2.des
WINTER: cr2.win
SNOW: cr2.sno
TEMPERAT: cr2.tem
JUNGLE: cr2.jun
cr3:
TilesetFilenames:
DESERT: cr3.des
WINTER: cr3.win
SNOW: cr3.sno
TEMPERAT: cr3.tem
JUNGLE: cr3.jun
cr4:
TilesetFilenames:
DESERT: cr4.des
WINTER: cr4.win
SNOW: cr4.sno
TEMPERAT: cr4.tem
JUNGLE: cr4.jun
cr5:
TilesetFilenames:
DESERT: cr5.des
WINTER: cr5.win
SNOW: cr5.sno
TEMPERAT: cr5.tem
JUNGLE: cr5.jun
cr6:
TilesetFilenames:
DESERT: cr6.des
WINTER: cr6.win
SNOW: cr6.sno
TEMPERAT: cr6.tem
JUNGLE: cr6.jun
smokland:
Defaults:
Filename: smokland.shp
open:
Length: 72
Tick: 120
@@ -438,27 +652,35 @@ smokland:
ZOffset: 1023
airstrikedirection:
arrow-t: mouse2
arrow-t:
Filename: mouse2.shp
Start: 1
Offset: 0, -15, 0
arrow-tr: mouse2
arrow-tr:
Filename: mouse2.shp
Start: 2
Offset: 7, -7, 0
arrow-r: mouse2
arrow-r:
Filename: mouse2.shp
Start: 3
Offset: 12, 0, 0
arrow-br: mouse2
arrow-br:
Filename: mouse2.shp
Start: 4
Offset: 7, 7, 0
arrow-b: mouse2
arrow-b:
Filename: mouse2.shp
Start: 5
Offset: 0, 15, 0
arrow-bl: mouse2
arrow-bl:
Filename: mouse2.shp
Start: 6
Offset: -7, 7, 0
arrow-l: mouse2
arrow-l:
Filename: mouse2.shp
Start: 7
Offset: -12, 0, 0
arrow-tl: mouse2
arrow-tl:
Filename: mouse2.shp
Start: 8
Offset: -7, -7, 0

View File

@@ -1,4 +1,6 @@
fact:
Defaults:
Filename: fact.shp
build:
Start: 4
Length: 20
@@ -17,15 +19,24 @@ fact:
dead:
Start: 48
Tick: 800
make: factmake
make:
Filename: factmake.shp
Length: *
Tick: 80
bib: bib2
UseTilesetExtension: true
bib:
TilesetFilenames:
DESERT: bib2.des
WINTER: bib2.win
SNOW: bib2.sno
TEMPERAT: bib2.tem
JUNGLE: bib2.jun
Length: *
icon: facticnh
icon:
Filename: facticnh.shp
nuke:
Defaults:
Filename: nuke.shp
idle:
Length: 4
Tick: 1000
@@ -36,16 +47,24 @@ nuke:
dead:
Start: 8
Tick: 800
make: nukemake
make:
Filename: nukemake.shp
Length: *
Tick: 80
bib: bib3
UseTilesetExtension: true
bib:
TilesetFilenames:
DESERT: bib3.des
WINTER: bib3.win
SNOW: bib3.sno
TEMPERAT: bib3.tem
JUNGLE: bib3.jun
Length: *
icon: nukeicnh.tem
AddExtension: False
icon:
Filename: nukeicnh.tem
proc:
Defaults:
Filename: proc.shp
idle:
Length: 6
Tick: 120
@@ -59,24 +78,34 @@ proc:
Start: 60
Tick: 800
Offset: 2,4
make: procmake
make:
Filename: procmake.shp
Length: *
Tick: 80
Offset: 2,4
resources: proctwr
resources:
Filename: proctwr.shp
Length: 6
Offset: -30,-17
damaged-resources: proctwr
damaged-resources:
Filename: proctwr.shp
Start: 6
Length: 6
Offset: -30,-17
bib: bib2
UseTilesetExtension: true
bib:
TilesetFilenames:
DESERT: bib2.des
WINTER: bib2.win
SNOW: bib2.sno
TEMPERAT: bib2.tem
JUNGLE: bib2.jun
Length: *
icon: procicnh.tem
AddExtension: False
icon:
Filename: procicnh.tem
silo:
Defaults:
Filename: silo.shp
idle:
Offset: 0,-1
damaged-idle:
@@ -93,23 +122,23 @@ silo:
Start: 5
Length: 5
Offset: 0,-1
make: silomake
make:
Filename: silomake.shp
Length: *
Tick: 80
Offset: 0,-1
bib: mbSILO
UseTilesetExtension: true
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bib:
Filename: mbSILO.tem
TilesetFilenames:
DESERT: mbSILO.des
Length: *
Offset: 0,1
icon: siloicnh.tem
AddExtension: False
icon:
Filename: siloicnh.tem
hand:
Defaults:
Filename: hand.shp
Offset: 0,-8
idle:
damaged-idle:
@@ -117,18 +146,26 @@ hand:
dead:
Start: 2
Tick: 800
make: handmake
make:
Filename: handmake.shp
Length: *
Tick: 80
bib: bib3
UseTilesetExtension: true
bib:
TilesetFilenames:
DESERT: bib3.des
WINTER: bib3.win
SNOW: bib3.sno
TEMPERAT: bib3.tem
JUNGLE: bib3.jun
Length: *
Offset: 0,0
icon: handicnh.tem
AddExtension: False
icon:
Filename: handicnh.tem
Offset: 0,0
pyle:
Defaults:
Filename: pyle.shp
idle:
Length: 10
Tick: 100
@@ -141,17 +178,24 @@ pyle:
dead:
Start: 20
Tick: 800
make: pylemake
make:
Filename: pylemake.shp
Length: *
Tick: 80
bib: bib3
UseTilesetExtension: true
bib:
TilesetFilenames:
DESERT: bib3.des
WINTER: bib3.win
SNOW: bib3.sno
TEMPERAT: bib3.tem
JUNGLE: bib3.jun
Length: *
icon: pyleicnh.tem
AddExtension: False
icon:
Filename: pyleicnh.tem
weap:
Defaults:
Filename: weap.shp
Offset: 0,-12
idle:
ZOffset: -511
@@ -161,27 +205,38 @@ weap:
dead:
Start: 2
Tick: 800
build-top: weap2
build-top:
Filename: weap2.shp
Length: 10
ZOffset: -1024
damaged-build-top: weap2
damaged-build-top:
Filename: weap2.shp
Start: 10
Length: 10
ZOffset: -1024
place: weapmake
place:
Filename: weapmake.shp
Start: 19
make: weapmake
make:
Filename: weapmake.shp
Length: *
Tick: 80
bib: bib2
UseTilesetExtension: true
bib:
TilesetFilenames:
DESERT: bib2.des
WINTER: bib2.win
SNOW: bib2.sno
TEMPERAT: bib2.tem
JUNGLE: bib2.jun
Length: *
Offset: 0,0
icon: weapicnh.tem
AddExtension: False
icon:
Filename: weapicnh.tem
Offset: 0,0
afld:
Defaults:
Filename: afld.shp
idle:
Tick: 120
ZOffset: -1023
@@ -198,10 +253,12 @@ afld:
Length: 16
Tick: 120
ZOffset: -1023
idle-dish: afld_d
idle-dish:
Filename: afld_d.shp
Length: 16
Tick: 160
damaged-idle-dish: afld_d
damaged-idle-dish:
Filename: afld_d.shp
Start: 16
Length: 16
Tick: 160
@@ -209,16 +266,24 @@ afld:
Start: 32
ZOffset: -1023
Tick: 800
make: afldmake
make:
Filename: afldmake.shp
Length: *
Tick: 80
bib: bib1
UseTilesetExtension: true
bib:
TilesetFilenames:
DESERT: bib1.des
WINTER: bib1.win
SNOW: bib1.sno
TEMPERAT: bib1.tem
JUNGLE: bib1.jun
Length: *
icon: afldicnh.tem
AddExtension: False
icon:
Filename: afldicnh.tem
hq:
Defaults:
Filename: hq.shp
idle:
Length: 16
Tick: 100
@@ -229,16 +294,24 @@ hq:
dead:
Start: 32
Tick: 800
make: hqmake
make:
Filename: hqmake.shp
Length: *
Tick: 80
bib: bib3
UseTilesetExtension: true
bib:
TilesetFilenames:
DESERT: bib3.des
WINTER: bib3.win
SNOW: bib3.sno
TEMPERAT: bib3.tem
JUNGLE: bib3.jun
Length: *
icon: hqicnh.tem
AddExtension: False
icon:
Filename: hqicnh.tem
nuk2:
Defaults:
Filename: nuk2.shp
idle:
Length: 4
Tick: 1000
@@ -249,16 +322,24 @@ nuk2:
dead:
Start: 8
Tick: 800
make: nuk2make
make:
Filename: nuk2make.shp
Length: *
Tick: 80
bib: bib3
UseTilesetExtension: true
bib:
TilesetFilenames:
DESERT: bib3.des
WINTER: bib3.win
SNOW: bib3.sno
TEMPERAT: bib3.tem
JUNGLE: bib3.jun
Length: *
icon: nuk2icnh.tem
AddExtension: False
icon:
Filename: nuk2icnh.tem
hpad:
Defaults:
Filename: hpad.shp
idle:
ZOffset: -1023
damaged-idle:
@@ -278,13 +359,16 @@ hpad:
Start: 14
ZOffset: -1023
Tick: 800
make: hpadmake
make:
Filename: hpadmake.shp
Length: *
Tick: 80
icon: hpadicnh.tem
AddExtension: False
icon:
Filename: hpadicnh.tem
fix:
Defaults:
Filename: fix.shp
idle:
ZOffset: -1c511
damaged-idle:
@@ -301,21 +385,22 @@ fix:
Start: 14
ZOffset: -1c511
Tick: 800
make: fixmake
make:
Filename: fixmake.shp
Length: 14
Tick: 60
bib: mbFIX
UseTilesetExtension: true
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bib:
Filename: mbFIX.tem
TilesetFilenames:
DESERT: mbFIX.des
Length: *
Offset: 0,-9
icon: fixicnh.tem
AddExtension: False
icon:
Filename: fixicnh.tem
eye:
Defaults:
Filename: eye.shp
idle:
Length: 16
Tick: 100
@@ -326,17 +411,24 @@ eye:
dead:
Start: 32
Tick: 800
make: eyemake
make:
Filename: eyemake.shp
Length: *
Tick: 80
bib: bib3
UseTilesetExtension: true
bib:
TilesetFilenames:
DESERT: bib3.des
WINTER: bib3.win
SNOW: bib3.sno
TEMPERAT: bib3.tem
JUNGLE: bib3.jun
Length: *
icon: eyeicnh.tem
AddExtension: False
icon:
Filename: eyeicnh.tem
tmpl:
Defaults:
Filename: tmpl.shp
Offset: 0,-12
idle:
damaged-idle:
@@ -344,7 +436,8 @@ tmpl:
active:
Length: 5
Tick: 200
smoke: atomdoor
smoke:
Filename: atomdoor.shp
Length: *
Offset: -1,-47
damaged-active:
@@ -353,19 +446,26 @@ tmpl:
dead:
Start: 10
Tick: 800
make: tmplmake
make:
Filename: tmplmake.shp
Length: *
Tick: 60
bib: bib2
UseTilesetExtension: true
bib:
TilesetFilenames:
DESERT: bib2.des
WINTER: bib2.win
SNOW: bib2.sno
TEMPERAT: bib2.tem
JUNGLE: bib2.jun
Length: *
Offset: 0,0
icon: tmplicnh.tem
AddExtension: False
icon:
Filename: tmplicnh.tem
Offset: 0,0
obli:
Defaults:
Filename: obli.shp
Offset: 0,-12
idle:
damaged-idle:
@@ -380,22 +480,23 @@ obli:
dead:
Start: 8
Tick: 800
make: oblimake
make:
Filename: oblimake.shp
Length: 13
Tick: 80
bib: mbOBLI
UseTilesetExtension: true
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bib:
Filename: mbOBLI.tem
TilesetFilenames:
DESERT: mbOBLI.des
Length: *
Offset: -1,-3
icon: obliicnh.tem
AddExtension: False
icon:
Filename: obliicnh.tem
Offset: 0,0
brik:
Defaults:
Filename: brik.shp
idle:
Length: 16
scratched-idle:
@@ -404,25 +505,30 @@ brik:
damaged-idle:
Start: 32
Length: 16
icon: brikicnh.tem
AddExtension: False
icon:
Filename: brikicnh.tem
sbag:
idle:
Filename: sbag.shp
Length: 16
icon: sbagicnh.tem
AddExtension: False
icon:
Filename: sbagicnh.tem
cycl:
Defaults:
Filename: cycl.shp
idle:
Length: 16
damaged-idle:
Start: 16
Length: 16
icon: cyclicnh.tem
AddExtension: False
icon:
Filename: cyclicnh.tem
barb:
Defaults:
Filename: barb.shp
idle:
Length: 16
damaged-idle:
@@ -430,6 +536,8 @@ barb:
Length: 16
wood:
Defaults:
Filename: wood.shp
idle:
Length: 16
damaged-idle:
@@ -437,7 +545,10 @@ wood:
Length: 16
gun:
idle: gunmake # Empty first frame. We need WithSpriteBody for the make anim, and WSB needs at least a placeholder default sequence to work
Defaults:
Filename: gun.shp
idle: # Empty first frame. We need WithSpriteBody for the make anim, and WSB needs at least a placeholder default sequence to work
Filename: gunmake.shp
turret:
Facings: 32
UseClassicFacings: True
@@ -453,23 +564,25 @@ gun:
Start: 96
Facings: 32
UseClassicFacings: True
make: gunmake
make:
Filename: gunmake.shp
Length: *
Tick: 80
muzzle: gunfire2
muzzle:
Filename: gunfire2.shp
Length: *
bib: mbGUN
UseTilesetExtension: true
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bib:
Filename: mbGUN.tem
TilesetFilenames:
DESERT: mbGUN.des
Length: *
Offset: -1,-1
icon: gunicnh.tem
AddExtension: False
icon:
Filename: gunicnh.tem
sam:
Defaults:
Filename: sam.shp
closed-idle:
Start: 0
opening:
@@ -503,16 +616,20 @@ sam:
Tick: 800
place:
Start: 0
make: sammake
make:
Filename: sammake.shp
Length: 20
Tick: 50
muzzle: samfire
muzzle:
Filename: samfire.shp
Length: 18
Facings: 8
icon: samicnh.tem
AddExtension: False
icon:
Filename: samicnh.tem
gtwr:
Defaults:
Filename: gtwr.shp
idle:
damaged-idle:
Start: 1
@@ -520,29 +637,32 @@ gtwr:
Start: 2
Tick: 800
make:
Filename:
Combine:
gtwrmake:
0:
Filename: gtwrmake.shp
Length: 17
gtwrmake:
1:
Filename: gtwrmake.shp
Start: 19
Length: 18
Tick: 80
muzzle: minigun
muzzle:
Filename: minigun.shp
Length: 6
Facings: 8
bib: mbGTWR
UseTilesetExtension: true
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bib:
Filename: mbGTWR.tem
TilesetFilenames:
DESERT: mbGTWR.des
Length: *
Offset: 0,-2
icon: gtwricnh.tem
AddExtension: False
icon:
Filename: gtwricnh.tem
atwr:
Defaults:
Filename: atwr.shp
Offset: 0,-13
idle:
damaged-idle:
@@ -550,24 +670,26 @@ atwr:
dead:
Start: 2
Tick: 800
make: atwrmake
make:
Filename: atwrmake.shp
Length: *
Tick: 80
muzzle: gunfire2
muzzle:
Filename: gunfire2.shp
Length: *
bib: mbGTWR
UseTilesetExtension: true
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bib:
Filename: mbGTWR.tem
TilesetFilenames:
DESERT: mbGTWR.des
Length: *
Offset: -3,0
icon: atwricnh.tem
AddExtension: False
icon:
Filename: atwricnh.tem
Offset: 0,0
hosp:
Defaults:
Filename: hosp.shp
idle:
Length: 4
Tick: 100
@@ -576,71 +698,74 @@ hosp:
Start: 4
Length: 4
Offset: 0,-2
make: hospmake
make:
Filename: hospmake.shp
Length: *
Tick: 80
Offset: 0,-2
bib: mbHOSP
UseTilesetExtension: true
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bib:
Filename: mbHOSP.tem
TilesetFilenames:
DESERT: mbHOSP.des
Length: *
Offset: 0,1
hosp.husk:
idle: hosp
idle:
Filename: hosp.shp
Start: 8
bib: mbHOSP
UseTilesetExtension: true
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bib:
Filename: mbHOSP.tem
TilesetFilenames:
DESERT: mbHOSP.des
Length: *
Offset: 0,1
bio:
Defaults:
Filename: bio.shp
idle:
damaged-idle:
Start: 1
make: biomake
make:
Filename: biomake.shp
Length: *
Tick: 80
bio.husk:
idle: bio
idle:
Filename: bio.shp
Start: 2
miss:
Defaults:
Filename: miss.shp
idle:
Offset: 0,-1
damaged-idle:
Start: 1
Offset: 0,-1
make: missmake
make:
Filename: missmake.shp
Length: *
Tick: 80
Offset: 0,-1
bib: mbMISS
UseTilesetExtension: true
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bib:
Filename: mbMISS.tem
TilesetFilenames:
DESERT: mbMISS.des
Length: *
Offset: 0,1
icon: missicnh
icon:
Filename: missicnh.shp
miss.husk:
idle: miss
idle:
Filename: miss.shp
Start: 2
bib: mbMISS
UseTilesetExtension: true
TilesetOverrides:
WINTER: TEMPERAT
JUNGLE: TEMPERAT
SNOW: TEMPERAT
bib:
Filename: mbMISS.tem
TilesetFilenames:
DESERT: mbMISS.des
Length: *
Offset: 0,1

View File

@@ -1,17 +1,21 @@
mcv:
idle:
Filename: mcv.shp
Facings: 32
UseClassicFacings: True
icon: mcvicnh.tem
AddExtension: False
icon:
Filename: mcvicnh.tem
mcv.destroyed:
idle: mcv
idle:
Filename: mcv.shp
Facings: 32
UseClassicFacings: True
ZOffset: -512
harv:
Defaults:
Filename: harv.shp
idle:
Facings: 32
UseClassicFacings: True
@@ -20,20 +24,25 @@ harv:
Length: 4
Facings: 8
Tick: 60
dock: harvdump
dock:
Filename: harvdump.shp
Length: 7
dock-loop: harvdump
dock-loop:
Filename: harvdump.shp
Start: 7
icon: harvicnh.tem
AddExtension: False
icon:
Filename: harvicnh.tem
harv.destroyed:
idle: harv
idle:
Filename: harv.shp
Facings: 32
UseClassicFacings: True
ZOffset: -512
bggy:
Defaults:
Filename: bggy.shp
idle:
Facings: 32
UseClassicFacings: True
@@ -41,24 +50,29 @@ bggy:
Start: 32
Facings: 32
UseClassicFacings: True
muzzle: minigun
muzzle:
Filename: minigun.shp
Length: 6
Facings: 8
icon: bggyicnh.tem
AddExtension: False
icon:
Filename: bggyicnh.tem
bggy.destroyed:
idle: bggy
idle:
Filename: bggy.shp
Facings: 32
UseClassicFacings: True
ZOffset: -512
turret: bggy
turret:
Filename: bggy.shp
Start: 32
Facings: 32
UseClassicFacings: True
ZOffset: -512
mtnk:
Defaults:
Filename: mtnk.shp
idle:
Facings: 32
UseClassicFacings: True
@@ -66,23 +80,28 @@ mtnk:
Start: 32
Facings: 32
UseClassicFacings: True
muzzle: gunfire2
muzzle:
Filename: gunfire2.shp
Length: *
icon: mtnkicnh.tem
AddExtension: False
icon:
Filename: mtnkicnh.tem
mtnk.destroyed:
idle: mtnk
idle:
Filename: mtnk.shp
Facings: 32
UseClassicFacings: True
ZOffset: -512
turret: mtnk
turret:
Filename: mtnk.shp
Start: 32
Facings: 32
UseClassicFacings: True
ZOffset: -512
ltnk:
Defaults:
Filename: ltnk.shp
idle:
Facings: 32
UseClassicFacings: True
@@ -90,23 +109,28 @@ ltnk:
Start: 32
Facings: 32
UseClassicFacings: True
muzzle: gunfire2
muzzle:
Filename: gunfire2.shp
Length: *
icon: ltnkicnh.tem
AddExtension: False
icon:
Filename: ltnkicnh.tem
ltnk.destroyed:
idle: ltnk
idle:
Filename: ltnk.shp
Facings: 32
UseClassicFacings: True
ZOffset: -512
turret: ltnk
turret:
Filename: ltnk.shp
Start: 32
Facings: 32
UseClassicFacings: True
ZOffset: -512
htnk:
Defaults:
Filename: htnk.shp
idle:
Facings: 32
UseClassicFacings: True
@@ -114,23 +138,28 @@ htnk:
Start: 32
Facings: 32
UseClassicFacings: True
muzzle: gunfire2
muzzle:
Filename: gunfire2.shp
Length: *
icon: htnkicnh.tem
AddExtension: False
icon:
Filename: htnkicnh.tem
htnk.destroyed:
idle: htnk
idle:
Filename: htnk.shp
Facings: 32
UseClassicFacings: True
ZOffset: -512
turret: htnk
turret:
Filename: htnk.shp
Start: 32
Facings: 32
UseClassicFacings: True
ZOffset: -512
jeep:
Defaults:
Filename: jeep.shp
idle:
Facings: 32
UseClassicFacings: True
@@ -138,18 +167,21 @@ jeep:
Start: 32
Facings: 32
UseClassicFacings: True
muzzle: minigun
muzzle:
Filename: minigun.shp
Length: 6
Facings: 8
icon: jeepicnh.tem
AddExtension: False
icon:
Filename: jeepicnh.tem
jeep.destroyed:
idle: jeep
idle:
Filename: jeep.shp
Facings: 32
UseClassicFacings: True
ZOffset: -512
turret: jeep
turret:
Filename: jeep.shp
Start: 32
Facings: 32
UseClassicFacings: True
@@ -157,68 +189,85 @@ jeep.destroyed:
bike:
idle:
Filename: bike.shp
Facings: 32
UseClassicFacings: True
icon: bikeicnh.tem
AddExtension: False
icon:
Filename: bikeicnh.tem
bike.destroyed:
idle: bike
idle:
Filename: bike.shp
Facings: 32
UseClassicFacings: True
ZOffset: -512
ftnk:
idle:
Filename: ftnk.shp
Facings: 32
UseClassicFacings: True
muzzle:
Combine:
flame-n:
0:
Filename: flame-n.shp
Length: *
Offset: 3,6
flame-nw:
1:
Filename: flame-nw.shp
Length: *
Offset: 8,7
flame-w:
2:
Filename: flame-w.shp
Length: *
Offset: 8,2
flame-sw:
3:
Filename: flame-sw.shp
Length: *
Offset: 7,-2
flame-s:
4:
Filename: flame-s.shp
Length: *
Offset: 3,-2
flame-se:
5:
Filename: flame-se.shp
Length: *
Offset: -5,-2
flame-e:
6:
Filename: flame-e.shp
Length: *
Offset: -7,2
flame-ne:
7:
Filename: flame-ne.shp
Length: *
Offset: -7,8
Facings: 8
Length: 13
icon: ftnkicnh.tem
AddExtension: False
icon:
Filename: ftnkicnh.tem
ftnk.destroyed:
idle: ftnk
idle:
Filename: ftnk.shp
Facings: 32
UseClassicFacings: True
ZOffset: -512
mhq:
Defaults:
Filename: mhq.shp
idle:
Facings: 32
UseClassicFacings: True
spinner:
Start: 32
Length: 32
icon: mhqicnh
icon:
Filename: mhqicnh.shp
msam:
Defaults:
Filename: msam.shp
idle:
Facings: 32
UseClassicFacings: True
@@ -234,21 +283,25 @@ msam:
Start: 64
Facings: 32
UseClassicFacings: True
icon: msamicnh.tem
AddExtension: False
icon:
Filename: msamicnh.tem
msam.destroyed:
idle: msam
idle:
Filename: msam.shp
Facings: 32
UseClassicFacings: True
ZOffset: -512
turret: msam
turret:
Filename: msam.shp
Start: 32
Facings: 32
UseClassicFacings: True
ZOffset: -512
mlrs:
Defaults:
Filename: mlrs.shp
idle:
Facings: 32
UseClassicFacings: True
@@ -264,15 +317,17 @@ mlrs:
Start: 96
Facings: 32
UseClassicFacings: True
icon: mlrsicnh.tem
AddExtension: False
icon:
Filename: mlrsicnh.tem
mlrs.destroyed:
idle: mlrs
idle:
Filename: mlrs.shp
Facings: 32
UseClassicFacings: True
ZOffset: -512
turret: mlrs
turret:
Filename: mlrs.shp
Start: 32
Facings: 32
UseClassicFacings: True
@@ -280,45 +335,56 @@ mlrs.destroyed:
stnk:
idle:
Filename: stnk.shp
Facings: 32
UseClassicFacings: True
icon: stnkicnh.tem
AddExtension: False
icon:
Filename: stnkicnh.tem
stnk.destroyed:
idle: stnk
idle:
Filename: stnk.shp
Facings: 32
UseClassicFacings: True
ZOffset: -512
arty:
idle:
Filename: arty.shp
Facings: 32
UseClassicFacings: True
muzzle: gunfire2
muzzle:
Filename: gunfire2.shp
Length: *
icon: artyicnh.tem
AddExtension: False
icon:
Filename: artyicnh.tem
arty.destroyed:
idle: arty
idle:
Filename: arty.shp
Facings: 32
UseClassicFacings: True
ZOffset: -512
apc:
Defaults:
Filename: apc.shp
idle:
Facings: 32
UseClassicFacings: True
turret: apctur
turret:
Filename: apctur.shp
Facings: 32
turret-air: apctur
turret-air:
Filename: apctur.shp
Start: 32
Facings: 32
muzzle: minigun
muzzle:
Filename: minigun.shp
Length: 6
Facings: 8
muzzle-air: apcmuz
muzzle-air:
Filename: apcmuz.shp
Length: 3
Stride: 6
Facings: 8
@@ -327,26 +393,31 @@ apc:
Length: 3
unload:
Start: 32
icon: apcicnh.tem
AddExtension: False
icon:
Filename: apcicnh.tem
apc.destroyed:
idle: apc
idle:
Filename: apc.shp
Facings: 32
UseClassicFacings: True
ZOffset: -512
turret: apctur
turret:
Filename: apctur.shp
Facings: 32
ZOffset: -512
truck:
idle:
Filename: truck.shp
Facings: 32
UseClassicFacings: True
icon: truckicon
icon:
Filename: truckicon.shp
truck.destroyed:
idle: truck
idle:
Filename: truck.shp
Facings: 32
UseClassicFacings: True
ZOffset: -512

View File

@@ -1,5 +1,6 @@
tile475:
Defaults: BLOXWAST.R8
Defaults:
Filename: BLOXWAST.R8
idle:
Start: 706
Offset: -16,-16

View File

@@ -1,23 +1,28 @@
carryall:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 1923
Facings: -32
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4290
Offset: -30,-24
ornithopter:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 1955
Facings: -32
Length: 3
Tick: 120
Transpose: true
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4292
Offset: -30,-24
frigate:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 2517
Facings: 1

View File

@@ -1,567 +1,693 @@
light_inf:
stand: DATA.R8
stand:
Filename: DATA.R8
Start: 206
Facings: -8
Transpose: true
idle1: DATA.R8
idle1:
Filename: DATA.R8
Frames: 387, 394, 401, 408, 415, 422, 429, 436
Length: 8
Tick: 80
idle2: DATA.R8
idle2:
Filename: DATA.R8
Frames: 388, 395, 402, 409, 416, 423, 430, 437
Length: 8
Tick: 80
run: DATA.R8
run:
Filename: DATA.R8
Start: 214
Length: 6
Facings: -8
Tick: 110
Transpose: true
shoot: DATA.R8
shoot:
Filename: DATA.R8
Start: 254
Length: 6
Facings: -8
Transpose: true
prone-stand: DATA.R8
prone-stand:
Filename: DATA.R8
Start: 310
Facings: -8
Transpose: true
prone-run: DATA.R8
prone-run:
Filename: DATA.R8
Start: 310
Length: 3
Facings: -8
Transpose: true
Tick: 110
standup: DATA.R8
standup:
Filename: DATA.R8
Start: 302
Facings: -8
Transpose: true
Tick: 120
prone-shoot: DATA.R8
prone-shoot:
Filename: DATA.R8
Start: 334
Length: 6
Facings: -8
Transpose: true
die1: DATA.R8
die1:
Filename: DATA.R8
Frames: 382, 389, 396, 403, 410, 417, 424, 431, 438, 443, 448, 453
Length: 12
Tick: 80
die2: DATA.R8
die2:
Filename: DATA.R8
Frames: 383, 390, 397, 404, 411, 418, 425, 432, 439, 444, 449, 454
Length: 12
Tick: 80
die3: DATA.R8
die3:
Filename: DATA.R8
Frames: 384, 391, 398, 405, 412, 419, 426, 433, 440, 445, 450, 455
Length: 12
Tick: 80
die4: DATA.R8
die4:
Filename: DATA.R8
Frames: 385, 392, 399, 406, 413, 420, 427, 434, 441, 446, 451, 456
Length: 12
Tick: 80
die-crushed: DATA.R8
die-crushed:
Filename: DATA.R8
Frames: 386, 393, 400, 407, 414, 421, 428, 435, 442, 447, 452, 457
Length: 12
Tick: 800
ZOffset: -511
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4272
Offset: -30,-24
trooper:
stand: DATA.R8
stand:
Filename: DATA.R8
Start: 458
Facings: -8
Transpose: true
idle1: DATA.R8
idle1:
Filename: DATA.R8
Frames: 639, 646, 653, 660, 667, 674, 681, 688
Length: 8
Tick: 80
idle2: DATA.R8
idle2:
Filename: DATA.R8
Frames: 640, 647, 654, 661, 668, 675, 682, 689
Length: 8
Tick: 80
run: DATA.R8
run:
Filename: DATA.R8
Start: 466
Length: 6
Facings: -8
Tick: 120
Transpose: true
shoot: DATA.R8
shoot:
Filename: DATA.R8
Start: 506
Length: 6
Facings: -8
Transpose: true
prone-stand: DATA.R8
prone-stand:
Filename: DATA.R8
Start: 562
Facings: -8
Transpose: true
prone-run: DATA.R8
prone-run:
Filename: DATA.R8
Start: 570
Length: 3
Facings: -8
Transpose: true
Tick: 120
standup: DATA.R8
standup:
Filename: DATA.R8
Start: 554
Facings: -8
Transpose: true
prone-shoot: DATA.R8
prone-shoot:
Filename: DATA.R8
Start: 586
Length: 6
Facings: -8
Transpose: true
die1: DATA.R8
die1:
Filename: DATA.R8
Frames: 634, 641, 648, 655, 662, 669, 676, 683, 690, 691, 692, 693
Length: 12
Tick: 80
die2: DATA.R8
die2:
Filename: DATA.R8
Frames: 635, 642, 649, 656, 663, 670, 677, 684
Length: 8
Tick: 80
die3: DATA.R8
die3:
Filename: DATA.R8
Frames: 636, 643, 650, 657, 664, 671, 678, 685
Length: 8
Tick: 80
die4: DATA.R8
die4:
Filename: DATA.R8
Frames: 637, 644, 651, 658, 665, 672, 679, 686
Length: 8
Tick: 80
die-crushed: DATA.R8
die-crushed:
Filename: DATA.R8
Frames: 638, 645, 652, 659, 666, 673, 680, 687
Length: 8
Tick: 800
ZOffset: -511
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4273
Offset: -30,-24
engineer:
stand: DATA.R8
stand:
Filename: DATA.R8
Start: 1166
Facings: -8
Transpose: true
idle1: DATA.R8
idle1:
Filename: DATA.R8
Frames: 1347, 1354, 1361, 1368, 1375, 1382, 1389, 1396
Length: 8
Tick: 80
idle2: DATA.R8
idle2:
Filename: DATA.R8
Frames: 1348, 1355, 1362, 1369, 1376, 1383, 1390, 1397
Length: 8
Tick: 80
run: DATA.R8
run:
Filename: DATA.R8
Start: 1174
Length: 6
Facings: -8
Transpose: true
Tick: 120
standup: DATA.R8
standup:
Filename: DATA.R8
Start: 1262
Facings: -8
Transpose: true
Tick: 120
prone-stand: DATA.R8
prone-stand:
Filename: DATA.R8
Start: 1270
Facings: -8
Transpose: true
prone-run: DATA.R8
prone-run:
Filename: DATA.R8
Start: 1278
Length: 3
Facings: -8
Transpose: true
Tick: 120
die1: DATA.R8
die1:
Filename: DATA.R8
Frames: 1342, 1349, 1356, 1363, 1370, 1377, 1384, 1391, 1398, 1399, 1400, 1401
Length: 12
Tick: 80
die2: DATA.R8
die2:
Filename: DATA.R8
Frames: 1343, 1350, 1357, 1364, 1371, 1378, 1385, 1392
Length: 8
Tick: 80
die3: DATA.R8
die3:
Filename: DATA.R8
Frames: 1344, 1351, 1358, 1365, 1372, 1379, 1386, 1393
Length: 8
Tick: 80
die4: DATA.R8
die4:
Filename: DATA.R8
Frames: 1345, 1352, 1359, 1366, 1373, 1380, 1387, 1394
Length: 8
Tick: 80
die-crushed: DATA.R8
die-crushed:
Filename: DATA.R8
Frames: 1346, 1353, 1360, 1367, 1374, 1381, 1388, 1395
Length: 8
Tick: 800
ZOffset: -511
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4274
Offset: -30,-24
thumper:
stand: DATA.R8
stand:
Filename: DATA.R8
Start: 1402
Facings: -8
Transpose: true
idle1: DATA.R8
idle1:
Filename: DATA.R8
Frames: 1548, 1555, 1562, 1569, 1576, 1583, 1590, 1597
Length: 8
Tick: 80
idle2: DATA.R8
idle2:
Filename: DATA.R8
Frames: 1549, 1556, 1563, 1570, 1577, 1584, 1591, 1598
Length: 8
Tick: 80
run: DATA.R8
run:
Filename: DATA.R8
Start: 1410
Length: 6
Facings: -8
Transpose: true
Tick: 120
standup: DATA.R8
standup:
Filename: DATA.R8
Start: 1462
Facings: -8
Transpose: true
Tick: 120
prone-stand: DATA.R8
prone-stand:
Filename: DATA.R8
Start: 1470
Facings: -8
Transpose: true
prone-run: DATA.R8
prone-run:
Filename: DATA.R8
Start: 1478
Length: 3
Facings: -8
Transpose: true
Tick: 120
deploy: DATA.R8
deploy:
Filename: DATA.R8
Start: 1458
Length: 5
thump: DATA.R8
thump:
Filename: DATA.R8
Start: 1458
Length: 5
Tick: 480
thump-sand: DATA.R8
thump-sand:
Filename: DATA.R8
Frames: 3882, 3883, 3879, 3880, 3881
Length: 5
Tick: 480
BlendMode: Multiply
die1: DATA.R8
die1:
Filename: DATA.R8
Frames: 1543, 1550, 1557, 1564, 1571, 1578, 1585, 1592, 1599, 1600, 1601, 1602
Length: 12
Tick: 80
die2: DATA.R8
die2:
Filename: DATA.R8
Frames: 1544, 1551, 1558, 1565, 1572, 1579, 1586, 1593
Length: 8
Tick: 80
die3: DATA.R8
die3:
Filename: DATA.R8
Frames: 1546, 1552, 1559, 1566, 1573, 1580, 1587, 1594
Length: 8
Tick: 80
die4: DATA.R8
die4:
Filename: DATA.R8
Frames: 1547, 1553, 1560, 1567, 1574, 1581, 1588, 1595
Length: 8
Tick: 80
die-crushed: DATA.R8
die-crushed:
Filename: DATA.R8
Frames: 1548, 1554, 1561, 1568, 1575, 1582, 1589, 1596
Length: 8
Tick: 800
ZOffset: -511
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4275
Offset: -30,-24
fremen:
stand: DATA.R8
stand:
Filename: DATA.R8
Start: 694
Facings: -8
Transpose: true
idle1: DATA.R8
idle1:
Filename: DATA.R8
Frames: 875, 882, 889, 896, 903, 910, 917, 924
Length: 8
Tick: 80
idle2: DATA.R8
idle2:
Filename: DATA.R8
Frames: 876, 883, 890, 897, 904, 911, 918, 925
Length: 8
Tick: 80
run: DATA.R8
run:
Filename: DATA.R8
Start: 702
Length: 6
Facings: -8
Transpose: true
Tick: 120
shoot: DATA.R8
shoot:
Filename: DATA.R8
Start: 742
Length: 6
Facings: -8
Transpose: true
prone-stand: DATA.R8
prone-stand:
Filename: DATA.R8
Start: 798
Facings: -8
Transpose: true
prone-run: DATA.R8
prone-run:
Filename: DATA.R8
Start: 806
Length: 3
Facings: -8
Transpose: true
Tick: 120
standup: DATA.R8
standup:
Filename: DATA.R8
Start: 790
Facings: -8
Transpose: true
Tick: 120
prone-shoot: DATA.R8
prone-shoot:
Filename: DATA.R8
Start: 822
Length: 6
Facings: -8
Transpose: true
die1: DATA.R8
die1:
Filename: DATA.R8
Frames: 870, 877, 884, 891, 898, 905, 912, 919, 926, 927, 928, 929
Length: 12
Tick: 80
die2: DATA.R8
die2:
Filename: DATA.R8
Frames: 871, 878, 885, 892, 899, 906, 913, 920
Length: 8
Tick: 80
die3: DATA.R8
die3:
Filename: DATA.R8
Frames: 872, 879, 886, 893, 900, 907, 914, 921
Length: 8
Tick: 80
die4: DATA.R8
die4:
Filename: DATA.R8
Frames: 873, 880, 887, 894, 901, 908, 915, 922
Length: 8
Tick: 80
die-crushed: DATA.R8
die-crushed:
Filename: DATA.R8
Frames: 874, 881, 888, 895, 902, 909, 916, 923
Length: 8
Tick: 800
ZOffset: -511
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4293
Offset: -30,-24
saboteur:
stand: DATA.R8
stand:
Filename: DATA.R8
Start: 2149
Facings: -8
Transpose: true
idle1: DATA.R8
idle1:
Filename: DATA.R8
Frames: 2330, 2337, 2344, 2351, 2358, 2365, 2372, 2379
Length: 8
Tick: 80
idle2: DATA.R8
idle2:
Filename: DATA.R8
Frames: 2331, 2338, 2345, 2352, 2359, 2366, 2373, 2380
Length: 8
Tick: 80
run: DATA.R8
run:
Filename: DATA.R8
Start: 2157
Length: 6
Facings: -8
Transpose: true
Tick: 120
prone-stand: DATA.R8
prone-stand:
Filename: DATA.R8
Start: 2253
Facings: -8
Transpose: true
prone-run: DATA.R8
prone-run:
Filename: DATA.R8
Start: 2261
Length: 3
Facings: -8
Transpose: true
Tick: 120
standup: DATA.R8
standup:
Filename: DATA.R8
Start: 2245
Facings: -8
Transpose: true
Tick: 120
die1: DATA.R8
die1:
Filename: DATA.R8
Frames: 2325, 2332, 2339, 2346, 2353, 2360, 2367, 2374, 2381, 2383, 2385, 2387
Length: 12
Tick: 80
die2: DATA.R8
die2:
Filename: DATA.R8
Frames: 2326, 2333, 2340, 2347, 2354, 2361, 2368, 2375, 2382, 2384, 2386, 2388
Length: 12
Tick: 80
die3: DATA.R8
die3:
Filename: DATA.R8
Frames: 2327, 2334, 2341, 2348, 2355, 2362, 2369, 2376
Length: 8
Tick: 80
die4: DATA.R8
die4:
Filename: DATA.R8
Frames: 2328, 2335, 2342, 2349, 2356, 2363, 2370, 2377
Length: 8
Tick: 80
die-crushed: DATA.R8
die-crushed:
Filename: DATA.R8
Frames: 2329, 2336, 2343, 2350, 2357, 2364, 2371, 2378
Length: 8
Tick: 800
ZOffset: -511
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4295
Offset: -30,-24
sardaukar:
stand: DATA.R8
stand:
Filename: DATA.R8
Start: 930
Facings: -8
Transpose: true
idle1: DATA.R8
idle1:
Filename: DATA.R8
Frames: 1111, 1118, 1125, 1132, 1139, 1146, 1153, 1160
Length: 8
Tick: 80
Offset: -1,0
idle2: DATA.R8
idle2:
Filename: DATA.R8
Frames: 1112, 1119, 1126, 1133, 1140, 1147, 1154, 1161
Length: 8
Tick: 80
Offset: -1,0
run: DATA.R8
run:
Filename: DATA.R8
Start: 938
Length: 6
Facings: -8
Transpose: true
Tick: 120
shoot: DATA.R8
shoot:
Filename: DATA.R8
Start: 978
Length: 6
Facings: -8
Transpose: true
prone-stand: DATA.R8
prone-stand:
Filename: DATA.R8
Start: 1034
Facings: -8
Transpose: true
prone-run: DATA.R8
prone-run:
Filename: DATA.R8
Start: 1042
Length: 3
Facings: -8
Transpose: true
Tick: 120
standup: DATA.R8
standup:
Filename: DATA.R8
Start: 1026
Facings: -8
Transpose: true
Tick: 120
prone-shoot: DATA.R8
prone-shoot:
Filename: DATA.R8
Start: 1058
Length: 6
Facings: -8
Transpose: true
die1: DATA.R8
die1:
Filename: DATA.R8
Frames: 1106, 1113, 1120, 1127, 1134, 1141, 1148, 1155, 1162, 1163, 1164, 1165
Length: 12
Tick: 80
die2: DATA.R8
die2:
Filename: DATA.R8
Frames: 1107, 1114, 1121, 1128, 1135, 1142, 1149, 1156
Length: 8
Tick: 80
die3: DATA.R8
die3:
Filename: DATA.R8
Frames: 1108, 1115, 1122, 1129, 1136, 1143, 1150, 1157
Length: 8
Tick: 80
die4: DATA.R8
die4:
Filename: DATA.R8
Frames: 1109, 1116, 1123, 1130, 1137, 1144, 1151, 1158
Length: 8
Tick: 80
die-crushed: DATA.R8
die-crushed:
Filename: DATA.R8
Frames: 1110, 1117, 1124, 1131, 1138, 1145, 1152, 1159
Length: 8
Tick: 800
ZOffset: -511
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4276
Offset: -30,-24
grenadier:
stand: DATA.R8
stand:
Filename: DATA.R8
Start: 2606
Facings: -8
Transpose: true
idle1: DATA.R8
idle1:
Filename: DATA.R8
Frames: 2700, 2707, 2714, 2721, 2728, 2735, 2742, 2749
Length: 8
idle2: DATA.R8
idle2:
Filename: DATA.R8
Frames: 2699, 2706, 2713, 2720, 2727, 2734, 2741, 2748
Length: 8
run: DATA.R8
run:
Filename: DATA.R8
Start: 2526
Length: 6
Facings: -8
Transpose: true
Tick: 120
throw: DATA.R8
throw:
Filename: DATA.R8
Start: 2574
Length: 5
Facings: -8
Transpose: true
Tick: 120
die1: DATA.R8
die1:
Filename: DATA.R8
Frames: 2694, 2701, 2708, 2715, 2722, 2729, 2736, 2743
Length: 8
die2: DATA.R8
die2:
Filename: DATA.R8
Frames: 2695, 2702, 2709, 2716, 2723, 2730, 2737, 2744
Length: 8
die3: DATA.R8
die3:
Filename: DATA.R8
Frames: 2696, 2703, 2710, 2717, 2724, 2731, 2738, 2745
Length: 8
die4: DATA.R8
die4:
Filename: DATA.R8
Frames: 2697, 2704, 2711, 2718, 2725, 2732, 2738, 2746
Length: 8
die-crushed: DATA.R8
die-crushed:
Filename: DATA.R8
Frames: 2698, 2705, 2712, 2719, 2726, 2733, 2740, 2747
Tick: 800
ZOffset: -511
prone-stand: DATA.R8
prone-stand:
Filename: DATA.R8
Start: 2622
Facings: -8
Transpose: true
prone-run: DATA.R8
prone-run:
Filename: DATA.R8
Start: 2622
Length: 4
Facings: -8
Tick: 120
Transpose: true
prone-throw: DATA.R8
prone-throw:
Filename: DATA.R8
Start: 2654
Length: 5
Facings: -8
Tick: 120
Transpose: true
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4297
Offset: -30,-24
sandworm:
mouth: DATA.R8
mouth:
Filename: DATA.R8
Start: 3802
Length: 15
Tick: 100
sand: DATA.R8
sand:
Filename: DATA.R8
Start: 3818
Length: 20
Tick: 100
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 39
lightninga: DATA.R8
lightninga:
Filename: DATA.R8
Start: 3844
Length: 5
Tick: 80
BlendMode: Additive
lightningb: DATA.R8
lightningb:
Filename: DATA.R8
Start: 3849
Length: 5
Tick: 80
BlendMode: Additive
lightningc: DATA.R8
lightningc:
Filename: DATA.R8
Start: 3854
Length: 5
Tick: 80
BlendMode: Additive
lightningd: DATA.R8
lightningd:
Filename: DATA.R8
Start: 3859
Length: 5
Tick: 80
BlendMode: Additive
lightninge: DATA.R8
lightninge:
Filename: DATA.R8
Start: 3864
Length: 5
Tick: 80
BlendMode: Additive
lightningf: DATA.R8
lightningf:
Filename: DATA.R8
Start: 3869
Length: 5
Tick: 80
BlendMode: Additive
icon: wormicon.shp
icon:
Filename: wormicon.shp

View File

@@ -3,67 +3,84 @@ explosion:
BlendMode: Additive
Tick: 80
ZOffset: 511
piff: DATA.R8
piff:
Filename: DATA.R8
Start: 3879
Length: 5
piffs: DATA.R8
piffs:
Filename: DATA.R8
Start: 3682
Length: 4
small_explosion: DATA.R8
small_explosion:
Filename: DATA.R8
Start: 3656
Length: 15
med_explosion: DATA.R8
med_explosion:
Filename: DATA.R8
Start: 3643
Length: 12
tiny_explosion: DATA.R8
tiny_explosion:
Filename: DATA.R8
Start: 3639
Length: 4
nuke: DATA.R8
nuke:
Filename: DATA.R8
Start: 4218
Length: 14
self_destruct: DATA.R8
self_destruct:
Filename: DATA.R8
Start: 3686
Length: 15
building: DATA.R8
building:
Filename: DATA.R8
Start: 3701
Length: 22
large_explosion: DATA.R8
large_explosion:
Filename: DATA.R8
Start: 4241
Length: 22
small_napalm: DATA.R8
small_napalm:
Filename: DATA.R8
Start: 3674
Length: 8
rocket_explosion: DATA.R8
rocket_explosion:
Filename: DATA.R8
Start: 3634
Length: 5
BlendMode: Alpha
shockwave: DATA.R8
shockwave:
Filename: DATA.R8
Start: 3940
Length: 6
Tick: 120
deviator: DATA.R8
deviator:
Filename: DATA.R8
Start: 3765
Length: 23
BlendMode: Alpha
Offset: 12, -10
Tick: 120
corpse: DATA.R8
corpse:
Filename: DATA.R8
ZOffset: -511
Start: 430
Length: 12
Tick: 1600
wall_explosion: DATA.R8
wall_explosion:
Filename: DATA.R8
Start: 4130
Length: 8
Tick: 120
BlendMode: Alpha
devastator: DATA.R8
devastator:
Filename: DATA.R8
Start: 3947
Length: 17
Tick: 120
large_trail:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 4126
Length: 4
Tick: 120
@@ -71,7 +88,8 @@ large_trail:
ZOffset: 1023
small_trail:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3988
Length: 4
Tick: 80
@@ -79,7 +97,8 @@ small_trail:
ZOffset: 1023
small_trail2:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3793
Length: 4
Tick: 80
@@ -87,28 +106,32 @@ small_trail2:
ZOffset: 1023
bazooka_trail:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3634
Length: 4
Tick: 80
ZOffset: 1023
bazooka_trail2:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3797
Length: 4
Tick: 80
ZOffset: 1023
deviator_trail:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3788
Length: 5
Tick: 80
ZOffset: 1023
laserfire:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3639
Length: 4
Tick: 80
@@ -120,57 +143,74 @@ sandtrail:
Length: 8
Tick: 200
ZOffset: -512
traila: sandtrail.shp
trailb: sandtrail.shp
traila:
Filename: sandtrail.shp
trailb:
Filename: sandtrail.shp
Frames: 2, 6, 4, 5, 0, 1, 3, 7
trailc: sandtrail.shp
trailc:
Filename: sandtrail.shp
Frames: 7, 4, 6, 5, 2, 0, 3, 1
pips:
groups: DATA.R8
groups:
Filename: DATA.R8
Length: 10
Frames: 18, 19, 20, 21, 22, 23, 24, 25, 26, 17
Offset: 3, 3
pickup-indicator: DATA.R8
pickup-indicator:
Filename: DATA.R8
Start: 112
Offset: -9, -9
pip-empty: DATA.R8
pip-empty:
Filename: DATA.R8
Start: 15
pip-green: DATA.R8
pip-green:
Filename: DATA.R8
Start: 16
tag-upgraded: DATA.R8
tag-upgraded:
Filename: DATA.R8
Start: 110
Offset: -8,-8
clock:
idle: clock.shp
idle:
Filename: clock.shp
Length: *
powerdown:
disabled: speed.shp
disabled:
Filename: speed.shp
Start: 3
ZOffset: 2047
poweroff:
offline: poweroff.shp
offline:
Filename: poweroff.shp
Length: *
Tick: 160
ZOffset: 2047
rank:
rank-veteran-1: rank.shp
rank-veteran-2: rank.shp
rank-veteran-1:
Filename: rank.shp
rank-veteran-2:
Filename: rank.shp
Start: 1
rank-veteran-3: rank.shp
rank-veteran-3:
Filename: rank.shp
Start: 2
rank-elite: rank.shp
rank-elite:
Filename: rank.shp
Start: 3
overlay:
Defaults: DATA.R8
Defaults:
Filename: DATA.R8
Offset: -16,-16
build-valid:
build-unsafe: concfoot.shp
build-unsafe:
Filename: concfoot.shp
Offset: 0, 0
build-invalid:
Start: 1
@@ -181,68 +221,82 @@ overlay:
Start: 1
editor-overlay:
Defaults: DATA.R8
Defaults:
Filename: DATA.R8
Offset: -16,-16
copy:
paste:
Start: 1
rallypoint:
flag: flagfly.shp
flag:
Filename: flagfly.shp
Length: *
Offset: 11,-5
ZOffset: 2535
circles: fpls.shp
circles:
Filename: fpls.shp
Length: *
ZOffset: 2047
beacon:
arrow: MOUSE.R8
arrow:
Filename: MOUSE.R8
Start: 148
Offset: -24,-24
ZOffset: 2535
circles: fpls.shp
circles:
Filename: fpls.shp
Length: *
ZOffset: 2047
rpg:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3263
Facings: -32
ZOffset: 1023
120mm:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3262
BlendMode: Additive
ZOffset: 1023
155mm:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3329
ZOffset: 1023
crate-effects:
Defaults:
ZOffset: 2047
dollar: DATA.R8
dollar:
Filename: DATA.R8
Start: 3932
Length: 8
reveal-map: DATA.R8
reveal-map:
Filename: DATA.R8
Start: 4200
Length: 18
hide-map: DATA.R8
hide-map:
Filename: DATA.R8
Frames: 4217, 4216, 4215, 4214, 4213, 4212, 4211, 4210, 4209, 4208, 4207, 4206, 4205, 4204, 4203, 4202, 4201, 4200
Length: 18
levelup: levelup.shp
levelup:
Filename: levelup.shp
Length: *
Tick: 200
cloak: DATA.R8
cloak:
Filename: DATA.R8
Start: 4164
Length: 36
allyrepair:
repair: DATA.R8
repair:
Filename: DATA.R8
Frames: 3, 39
Length: 2
Tick: 300
@@ -250,50 +304,59 @@ allyrepair:
ZOffset: 2047
missile:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3336
Facings: -32
ZOffset: 1023
missile2:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3554
Facings: -32
ZOffset: 1023
deathhand:
up: DATA.R8
up:
Filename: DATA.R8
Start: 2147
ZOffset: 1023
Offset: 2,0
down: DATA.R8
down:
Filename: DATA.R8
Start: 2148
ZOffset: 1023
Offset: -1,0
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4296
Offset: -30,-24
fire:
1: DATA.R8
1:
Filename: DATA.R8
Start: 3965
Length: 10
Offset: 4,-17
ZOffset: 1023
BlendMode: Additive
2: DATA.R8
2:
Filename: DATA.R8
Start: 3976
Length: 11
Offset: 0,-3
ZOffset: 1023
BlendMode: Additive
3: DATA.R8
3:
Filename: DATA.R8
Start: 4138
Length: 13
Offset: 0,-3
ZOffset: 1023
BlendMode: Additive
4: DATA.R8
4:
Filename: DATA.R8
Start: 3965
Length: 10
Offset: 0,-3
@@ -303,133 +366,159 @@ fire:
smoke_m:
Defaults:
ZOffset: 511
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3671
Length: 2
BlendMode: Additive
loop: DATA.R8
loop:
Filename: DATA.R8
Start: 3671
Length: 2
BlendMode: Additive
end: DATA.R8
end:
Filename: DATA.R8
Start: 3671
Length: 3
BlendMode: Additive
bombs:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3528
Length: 4
ZOffset: 1023
grenade:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3618
Length: 4
Tick: 80
ZOffset: 1023
shrapnel:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3538
Length: 4
ZOffset: 1023
shrapnel2:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3542
Length: 1
ZOffset: 1023
shrapnel3:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3543
Length: 8
ZOffset: 1023
shrapnel4:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3551
Length: 1
ZOffset: 1023
mpspawn:
idle: mpspawn.shp
idle:
Filename: mpspawn.shp
Length: *
waypoint:
idle: waypoint.shp
idle:
Filename: waypoint.shp
Length: *
camera:
idle: camera.shp
idle:
Filename: camera.shp
Length: *
wormspawner:
idle: wormspawner.shp
idle:
Filename: wormspawner.shp
Length: *
sietch:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3246
Offset: -32,32
doubleblast:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3527
Facings: -16
BlendMode: Additive
ZOffset: 511
doubleblastbullet:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3496
Facings: -16
BlendMode: Additive
ZOffset: 1023
icon:
ornistrike: DATA.R8
ornistrike:
Filename: DATA.R8
Start: 4292
Offset: -30,-24
fremen: DATA.R8
fremen:
Filename: DATA.R8
Start: 4293
Offset: -30,-24
saboteur: DATA.R8
saboteur:
Filename: DATA.R8
Start: 4295
Offset: -30,-24
deathhand: DATA.R8
deathhand:
Filename: DATA.R8
Start: 4296
Offset: -30,-24
crate:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 102
ZOffset: -511
Offset: -16,-16
spicebloom:
grow0: DATA.R8
grow0:
Filename: DATA.R8
Start: 106
Length: 1
ZOffset: -1023
Offset: -16,-16
grow1: DATA.R8
grow1:
Filename: DATA.R8
Start: 107
Length: 1
ZOffset: -1023
Offset: -16,-16
grow2: DATA.R8
grow2:
Filename: DATA.R8
Start: 108
Length: 1
ZOffset: -1023
Offset: -16,-16
grow3: DATA.R8
grow3:
Filename: DATA.R8
Start: 109
Length: 1
ZOffset: -1023
Offset: -16,-16
spurt: DATA.R8
spurt:
Filename: DATA.R8
Start: 4233
Length: 8
Tick: 80
@@ -438,7 +527,8 @@ spicebloom:
Offset: 0, -16
moveflsh:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3874
Length: 5
Tick: 80
@@ -447,19 +537,23 @@ moveflsh:
HasEmbeddedPalette: True
resources:
spicea: BLOXBASE.R8
spicea:
Filename: BLOXBASE.R8
Frames: 748, 300, 750, 751, 752, 753, 754, 755, 756, 757, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 300
Length: *
Offset: -16,-16
spiceb: BLOXBASE.R8
spiceb:
Filename: BLOXBASE.R8
Frames: 749, 301, 750, 751, 752, 753, 754, 755, 756, 757, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 301
Length: *
Offset: -16,-16
spicec: BLOXBASE.R8
spicec:
Filename: BLOXBASE.R8
Frames: 793, 320, 750, 751, 752, 753, 754, 755, 756, 757, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 320
Length: *
Offset: -16,-16
spiced: BLOXBASE.R8
spiced:
Filename: BLOXBASE.R8
Frames: 748, 321, 750, 751, 752, 753, 754, 755, 756, 757, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 321
Length: *
Offset: -16,-16
@@ -469,83 +563,107 @@ shroud:
BlendMode: Subtractive
Offset: -16,-16
Length: 14
palette: DATA.R8
palette:
Filename: DATA.R8
Start: 38
HasEmbeddedPalette: True
shrouda: DATA.R8
shrouda:
Filename: DATA.R8
Start: 40
shroudb: DATA.R8
shroudb:
Filename: DATA.R8
Start: 56
shroudc: DATA.R8
shroudc:
Filename: DATA.R8
Start: 72
shroudd: DATA.R8
shroudd:
Filename: DATA.R8
Start: 88
shroudfull: fullshroud.shp
shroudfull:
Filename: fullshroud.shp
Offset: 0,0
Length: 1
foga: DATA.R8
foga:
Filename: DATA.R8
BlendMode: Multiply
Start: 40
fogb: DATA.R8
fogb:
Filename: DATA.R8
BlendMode: Multiply
Start: 56
fogc: DATA.R8
fogc:
Filename: DATA.R8
BlendMode: Multiply
Start: 72
fogd: DATA.R8
fogd:
Filename: DATA.R8
BlendMode: Multiply
Start: 88
fogfull: fullshroud.shp
fogfull:
Filename: fullshroud.shp
BlendMode: Multiply
Offset: 0,0
Length: 1
rockcraters:
rockcrater1: DATA.R8
rockcrater1:
Filename: DATA.R8
Start: 114
Length: 16
Offset: -16,-16
rockcrater2: DATA.R8
rockcrater2:
Filename: DATA.R8
Start: 130
Length: 16
Offset: -16,-16
sandcraters:
sandcrater1: DATA.R8
sandcrater1:
Filename: DATA.R8
Start: 146
Length: 16
Offset: -16,-16
sandcrater2: DATA.R8
sandcrater2:
Filename: DATA.R8
Start: 162
Length: 16
Offset: -16,-16
ornidirection:
arrow-t: MOUSE.R8
arrow-t:
Filename: MOUSE.R8
Start: 112
Offset: -25, -53, 0
arrow-tr: MOUSE.R8
arrow-tr:
Filename: MOUSE.R8
Start: 120
Offset: 6, -47, 0
arrow-r: MOUSE.R8
arrow-r:
Filename: MOUSE.R8
Start: 128
Offset: 17, -26, 0
arrow-br: MOUSE.R8
arrow-br:
Filename: MOUSE.R8
Start: 136
Offset: 6, -1, 0
arrow-b: MOUSE.R8
arrow-b:
Filename: MOUSE.R8
Start: 148
Offset: -25, 7, 0
arrow-bl: MOUSE.R8
arrow-bl:
Filename: MOUSE.R8
Start: 156
Offset: -52, -3, 0
arrow-l: MOUSE.R8
arrow-l:
Filename: MOUSE.R8
Start: 164
Offset: -61, -26, 0
arrow-tl: MOUSE.R8
arrow-tl:
Filename: MOUSE.R8
Start: 172
Offset: -52, -44, 0
null:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 3552

File diff suppressed because it is too large Load Diff

View File

@@ -1,260 +1,319 @@
mcv:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 1795
Facings: -32
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4284
Offset: -30,-24
mcv.husk:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 1795
Facings: -32
ZOffset: -1023
harvester:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 1699
Facings: -32
harvest: DATA.R8
harvest:
Filename: DATA.R8
Start: 3884
Length: 6
Facings: -8
Tick: 80
ZOffset: 1
BlendMode: Multiply
dock: DATA.R8
dock:
Filename: DATA.R8
Start: 3623
Length: 10
dock-loop: DATA.R8
dock-loop:
Filename: DATA.R8
Start: 3633
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4280
Offset: -30,-24
harvester.husk:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 1699
Facings: -32
ZOffset: -512
trike:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 1635
Facings: -32
muzzle: DATA.R8
muzzle:
Filename: DATA.R8
Start: 4092
Tick: 50
Facings: -32
BlendMode: Additive
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4305
Offset: -30,-24
quad:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 1667
Facings: -32
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4279
Offset: -30,-24
siege_tank:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 1763
Facings: -32
turret: DATA.R8
turret:
Filename: DATA.R8
Start: 1891
Facings: -32
muzzle: DATA.R8
muzzle:
Filename: DATA.R8
Start: 3671
Length: 3
BlendMode: Additive
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4287
Offset: -30,-24
siege_tank.husk:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 1763
Facings: -32
ZOffset: -512
turret: DATA.R8
turret:
Filename: DATA.R8
Start: 1891
Facings: -32
ZOffset: -512
missile_tank:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 1603
Facings: -32
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4285
Offset: -30,-24
missile_tank.husk:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 1603
Facings: -32
ZOffset: -512
sonic_tank:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 1827
Facings: -32
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4288
Offset: -30,-24
sonic_tank.husk:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 1827
Facings: -32
ZOffset: -512
combat_tank_a:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 1731
Facings: -32
turret: DATA.R8
turret:
Filename: DATA.R8
Start: 1859
Facings: -32
muzzle: DATA.R8
muzzle:
Filename: DATA.R8
Start: 4028
Tick: 60
Facings: -32
BlendMode: Additive
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4281
Offset: -30,-24
combat_tank_a.husk:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 1731
Facings: -32
ZOffset: -512
turret: DATA.R8
turret:
Filename: DATA.R8
Start: 1859
Facings: -32
ZOffset: -512
combat_tank_h:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 2051
Facings: -32
turret: DATA.R8
turret:
Filename: DATA.R8
Start: 2115
Facings: -32
muzzle: DATA.R8
muzzle:
Filename: DATA.R8
Start: 4028
Tick: 60
Facings: -32
BlendMode: Additive
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4282
Offset: -30,-24
combat_tank_h.husk:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 2051
Facings: -32
ZOffset: -512
turret: DATA.R8
turret:
Filename: DATA.R8
Start: 2115
Facings: -32
ZOffset: -512
combat_tank_o:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 2453
Facings: -32
turret: DATA.R8
turret:
Filename: DATA.R8
Start: 2485
Facings: -32
muzzle: DATA.R8
muzzle:
Filename: DATA.R8
Start: 4028
Tick: 60
Facings: -32
BlendMode: Additive
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4283
Offset: -30,-24
combat_tank_o.husk:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 2453
Facings: -32
ZOffset: -512
turret: DATA.R8
turret:
Filename: DATA.R8
Start: 2485
Facings: -32
ZOffset: -512
devastator:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 2083
Facings: -32
muzzle: DATA.R8
muzzle:
Filename: DATA.R8
Start: 4060
Tick: 80
Facings: -32
BlendMode: Additive
active: DATA.R8
active:
Filename: DATA.R8
Start: 3839
Length: 14
Tick: 130
BlendMode: Additive
active-2: DATA.R8
active-2:
Filename: DATA.R8
Start: 4152
Length: 12
Tick: 110
BlendMode: Additive
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4289
Offset: -30,-24
devastator.husk:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 2083
Facings: -32
ZOffset: -512
raider:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 2421
Facings: -32
muzzle: DATA.R8
muzzle:
Filename: DATA.R8
Start: 3996
Tick: 50
Facings: -32
BlendMode: Additive
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4278
Offset: -30,-24
stealth_raider:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 2421
Facings: -32
muzzle: DATA.R8
muzzle:
Filename: DATA.R8
Start: 3996
Tick: 50
Facings: -32
BlendMode: Additive
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4298
Offset: -30,-24
deviator:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 2389
Facings: -32
icon: DATA.R8
icon:
Filename: DATA.R8
Start: 4286
Offset: -30,-24
deviator.husk:
idle: DATA.R8
idle:
Filename: DATA.R8
Start: 2389
Facings: -32
ZOffset: -512

View File

@@ -1,9 +1,12 @@
miner:
idle:
Filename: miner.shp
Length: *
Tick: 400
ZOffset: -512
icon: jmin
icon:
Filename: jmin.shp
brick:
idle:
Filename: brick.shp

View File

@@ -1,8 +1,12 @@
lst:
muzzle: minigun
Defaults:
Filename: lst.shp
muzzle:
Filename: minigun.shp
Start: 0
Length: 6
Facings: 8
turret: mgun
turret:
Filename: mgun.shp
Start: 0
Facings: 32

View File

@@ -1,4 +1,6 @@
sniper:
Defaults:
Filename: sniper.shp
stand:
Facings: 8
stand2:
@@ -66,24 +68,24 @@ sniper:
Start: 452
Length: 18
Tick: 80
die6: electro
die6:
Filename: electro.tem
TilesetFilenames:
SNOW: electro.sno
Frames: 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
Length: *
Tick: 80
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
INTERIOR: TEMPERAT
die-crushed: corpse1
die-crushed:
Filename: corpse1.tem
TilesetFilenames:
SNOW: corpse1.sno
Length: 6
Tick: 1600
ZOffset: -511
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
INTERIOR: TEMPERAT
garrison-muzzle: minigun
garrison-muzzle:
Filename: minigun.shp
Length: 3
Stride: 6
Facings: 8
icon: snipericon
icon:
Filename: snipericon.shp

View File

@@ -1,4 +1,5 @@
oilb.husk: oilb
idle: oilb
idle:
Filename: oilb.shp
Start: 1
Offset: 0,-6

View File

@@ -1,90 +1,121 @@
mig:
idle:
Filename: mig.shp
Facings: 16
InterpolatedFacings: 64
icon: migicon
icon:
Filename: migicon.shp
yak:
idle:
Filename: yak.shp
Facings: 16
InterpolatedFacings: 64
muzzle: minigun
muzzle:
Filename: minigun.shp
Length: 6
Facings: 8
icon: yakicon
icon:
Filename: yakicon.shp
heli:
idle:
Filename: heli.shp
Facings: 32
UseClassicFacings: True
rotor: lrotor
rotor:
Filename: lrotor.shp
Length: 4
slow-rotor: lrotor
slow-rotor:
Filename: lrotor.shp
Start: 4
Length: 8
icon: heliicon
icon:
Filename: heliicon.shp
hind:
idle:
Filename: hind.shp
Facings: 32
UseClassicFacings: True
rotor: lrotorlg
rotor:
Filename: lrotorlg.shp
Length: 4
slow-rotor: lrotorlg
slow-rotor:
Filename: lrotorlg.shp
Start: 4
Length: 8
muzzle: minigun
muzzle:
Filename: minigun.shp
Length: 6
Facings: 8
icon: hindicon
icon:
Filename: hindicon.shp
tran:
idle: tran2
idle:
Filename: tran2.shp
Facings: 32
UseClassicFacings: True
rotor: lrotor
rotor:
Filename: lrotor.shp
Length: 4
rotor2: rrotor
rotor2:
Filename: rrotor.shp
Length: 4
slow-rotor: lrotor
slow-rotor:
Filename: lrotor.shp
Start: 4
Length: 8
slow-rotor2: rrotor
slow-rotor2:
Filename: rrotor.shp
Start: 4
Length: 8
open: tran2
open:
Filename: tran2.shp
Start: 32
Length: 4
unload: tran2
unload:
Filename: tran2.shp
Start: 35
icon: tranicon
icon:
Filename: tranicon.shp
tran1husk:
idle:
Filename: tran1husk.shp
tran2husk:
idle:
Filename: tran2husk.shp
u2:
idle:
Filename: u2.shp
Facings: 16
InterpolatedFacings: 64
badr:
idle:
Filename: badr.shp
Facings: 16
InterpolatedFacings: 64
mh60:
idle:
Filename: mh60.shp
Facings: 32
UseClassicFacings: True
rotor: yrotorlg
rotor:
Filename: yrotorlg.shp
Length: 4
slow-rotor: yrotorlg
slow-rotor:
Filename: yrotorlg.shp
Start: 4
Length: 8
muzzle: minigun
muzzle:
Filename: minigun.shp
Length: 6
Facings: 8
icon: mh60icon
icon:
Filename: mh60icon.shp

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,61 +1,88 @@
clock:
idle:
Filename: clock.shp
Length: *
powerdown:
disabled: speed
disabled:
Filename: speed.shp
Start: 3
ZOffset: 2047
120mm:
idle:
Filename: 120mm.shp
ZOffset: 1023
50cal:
idle:
Filename: 50cal.shp
ZOffset: 1023
explosion:
Defaults:
Length: *
ZOffset: 2047
piff: piff
piffs: piffpiff
water_piff: wpiff
water_piffs: wpifpif
small_explosion: veh-hit3
med_explosion: veh-hit2
flak_explosion_ground: flak
small_explosion_air: flak
piff:
Filename: piff.shp
piffs:
Filename: piffpiff.shp
water_piff:
Filename: wpiff.shp
water_piffs:
Filename: wpifpif.shp
small_explosion:
Filename: veh-hit3.shp
med_explosion:
Filename: veh-hit2.shp
flak_explosion_ground:
Filename: flak.shp
small_explosion_air:
Filename: flak.shp
ZOffset: 511 # only used by AA weapons, so a high ZOffset to overlay buildings isn't needed
med_explosion_air: veh-hit1
med_explosion_air:
Filename: veh-hit1.shp
ZOffset: 511 # only used by AA weapons, so a high ZOffset to overlay buildings isn't needed
large_splash: h2o_exp1
napalm: napalm2
building_napalm: napalm2
large_splash:
Filename: h2o_exp1.shp
napalm:
Filename: napalm2.shp
building_napalm:
Filename: napalm2.shp
FlipX: true
nuke: atomsfx
med_splash: h2o_exp2
self_destruct: art-exp1
artillery_explosion: art-exp1
building: fball1
nuke:
Filename: atomsfx.shp
med_splash:
Filename: h2o_exp2.shp
self_destruct:
Filename: art-exp1.shp
artillery_explosion:
Filename: art-exp1.shp
building:
Filename: fball1.shp
Offset: 0,-9
small_splash: h2o_exp3
large_explosion: frag1
small_splash:
Filename: h2o_exp3.shp
large_explosion:
Filename: frag1.shp
Offset: -2,0
small_napalm: napalm1
offset_napalm: napalm1 # Used for E4 Explosion
small_napalm:
Filename: napalm1.shp
offset_napalm: # Used for E4 Explosion
Filename: napalm1.shp
Offset: 0, -6
large_napalm: napalm3
corpse: corpse1
large_napalm:
Filename: napalm3.shp
corpse:
Filename: corpse1.tem
TilesetFilenames:
SNOW: corpse1.sno
ZOffset: -512
Tick: 1600
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
INTERIOR: TEMPERAT
burn-l:
Defaults:
Filename: burn-l.shp
idle:
Length: *
ZOffset: 512
@@ -69,6 +96,8 @@ burn-l:
ZOffset: 512
burn-m:
Defaults:
Filename: burn-m.shp
idle:
Length: *
ZOffset: 512
@@ -82,6 +111,8 @@ burn-m:
ZOffset: 512
burn-s:
Defaults:
Filename: burn-s.shp
idle:
Length: *
ZOffset: 512
@@ -95,6 +126,8 @@ burn-s:
ZOffset: 512
pips:
Defaults:
Filename: pips.shp
groups:
Length: 10
Frames: 9, 10, 11, 12, 13, 14, 15, 16, 17, 8
@@ -112,63 +145,83 @@ pips:
tag-primary:
Start: 2
Offset: 0, 2
tag-spy: tag-spy
pip-empty: pips2
pip-green: pips2
tag-spy:
Filename: tag-spy.shp
pip-empty:
Filename: pips2.shp
pip-green:
Filename: pips2.shp
Start: 1
pip-yellow: pips2
pip-yellow:
Filename: pips2.shp
Start: 2
pip-gray: pips2
pip-gray:
Filename: pips2.shp
Start: 3
pip-red: pips2
pip-red:
Filename: pips2.shp
Start: 4
pip-blue: pips2
pip-blue:
Filename: pips2.shp
Start: 5
pip-disguise: pip-disguise
pip-disguise:
Filename: pip-disguise.shp
Length: *
Tick: 300
Offset: 0, -6
v2:
idle:
Filename: v2.shp
Facings: 32
ZOffset: 1023
rallypoint:
flag: flagfly
flag:
Filename: flagfly.shp
Length: *
Offset: 11,-5
ZOffset: 2535
circles: fpls
circles:
Filename: fpls.shp
Length: *
ZOffset: 2047
beacon:
Defaults:
ZOffset: 2535
arrow: mouse
arrow:
Filename: mouse.shp
Start: 5
Offset: 1,-12
circles: fpls
circles:
Filename: fpls.shp
Length: *
ZOffset: 2047
atomicon: lores|atomicon
atomicon:
Filename: lores|atomicon.shp
Length: *
Offset: 0,-42
pbmbicon: lores|pbmbicon
pbmbicon:
Filename: lores|pbmbicon.shp
Length: *
Offset: 0,-42
camicon: lores|camicon
camicon:
Filename: lores|camicon.shp
Length: *
Offset: 0,-42
pinficon: lores|pinficon
pinficon:
Filename: lores|pinficon.shp
Length: *
Offset: 0,-42
clock: beaconclock
clock:
Filename: beaconclock.shp
Length: *
Offset: 0,-42
smoke_m:
Defaults:
Filename: smoke_m.shp
idle:
Length: *
Offset: 2, -5
@@ -186,30 +239,37 @@ smoke_m:
dragon:
idle:
Filename: dragon.shp
Facings: 32
ZOffset: 1023
smokey:
idle:
Filename: smokey.shp
Length: *
ZOffset: 1023
bomb:
idle:
Filename: bomb.shp
Length: *
ZOffset: 1023
missile:
idle:
Filename: missile.shp
Facings: 32
ZOffset: 1023
torpedo:
idle: missile
idle:
Filename: missile.shp
Facings: 32
ZOffset: -1023
litning:
Defaults:
Filename: litning.shp
bright:
Length: 4
ZOffset: 1023
@@ -220,46 +280,56 @@ litning:
fb1:
idle:
Filename: fb1.shp
Length: *
ZOffset: 1023
moveflsh:
idle:
Filename: moveflsh.tem
TilesetFilenames:
SNOW: moveflsh.sno
INTERIOR: moveflsh.int
Length: *
Tick: 80
ZOffset: 2047
UseTilesetExtension: true
TilesetOverrides:
DESERT: TEMPERAT
select:
repair:
Filename: select.shp
Start: 2
poweroff:
offline:
Filename: poweroff.shp
Length: *
Tick: 160
ZOffset: 2047
allyrepair:
repair:
Filename: allyrepair.shp
Length: *
Tick: 160
ZOffset: 2047
tabs:
Defaults:
Filename: tabs.shp
left-normal:
left-pressed:
Start: 1
sputnik:
idle:
Filename: sputnik.shp
Length: *
Offset: -4,0
ZOffset: 1023
dd-crnr:
Defaults:
Filename: dd-crnr.shp
idle:
Length: *
top-left:
@@ -272,21 +342,25 @@ dd-crnr:
fb2:
idle:
Filename: fb2.shp
Length: *
ZOffset: 1023
fb3:
idle:
Filename: fb3.shp
Facings: 32
ZOffset: 1023
fb4:
idle:
Filename: fb4.shp
Length: *
ZOffset: 1023
scrate:
Defaults:
Filename: scrate.shp
ZOffset: -511
idle:
land:
@@ -298,15 +372,19 @@ scrate:
wcrate:
Defaults:
Filename: wcrate.shp
ZOffset: -511
idle:
land:
Start: 1
water: wwcrate
water:
Filename: wwcrate.shp
Length: *
Tick: 500
xcratea:
Defaults:
Filename: xcratea.shp
idle:
ZOffset: -511
land:
@@ -319,6 +397,8 @@ xcratea:
ZOffset: -511
xcrateb:
Defaults:
Filename: xcrateb.shp
idle:
ZOffset: -511
land:
@@ -331,6 +411,8 @@ xcrateb:
ZOffset: -511
xcratec:
Defaults:
Filename: xcratec.shp
idle:
ZOffset: -511
land:
@@ -343,6 +425,8 @@ xcratec:
ZOffset: -511
xcrated:
Defaults:
Filename: xcrated.shp
idle:
ZOffset: -511
land:
@@ -358,26 +442,45 @@ crate-effects:
Defaults:
ZOffset: 2047
Length: *
speed: speed
dollar: dollar
reveal-map: earth
hide-map: empulse
fpower: fpower
gps: gpsbox
invuln: invulbox
heal: invun
nuke: missile2
parabombs: parabox
sonar: sonarbox
stealth: stealth2
timequake: tquake
armor: armor
chrono: chronbox
airstrike: deviator
levelup: levelup
speed:
Filename: speed.shp
dollar:
Filename: dollar.shp
reveal-map:
Filename: earth.shp
hide-map:
Filename: empulse.shp
fpower:
Filename: fpower.shp
gps:
Filename: gpsbox.shp
invuln:
Filename: invulbox.shp
heal:
Filename: invun.shp
nuke:
Filename: missile2.shp
parabombs:
Filename: parabox.shp
sonar:
Filename: sonarbox.shp
stealth:
Filename: stealth2.shp
timequake:
Filename: tquake.shp
armor:
Filename: armor.shp
chrono:
Filename: chronbox.shp
airstrike:
Filename: deviator.shp
levelup:
Filename: levelup.shp
Tick: 200
parach:
Defaults:
Filename: parach.shp
open:
Length: 5
idle:
@@ -386,14 +489,18 @@ parach:
parach-shadow:
idle:
Filename: parach-shadow.shp
Length: *
bomblet:
idle:
Filename: bomblet.shp
Length: *
ZOffset: 1023
parabomb:
Defaults:
Filename: parabomb.shp
open:
Length: 8
ZOffset: 1023
@@ -403,36 +510,43 @@ parabomb:
ZOffset: 1023
smokland:
open: playersmoke
open:
Filename: playersmoke.shp
Length: 72
Tick: 120
ZOffset: 1023
idle: playersmoke
idle:
Filename: playersmoke.shp
Start: 72
Length: 20
Tick: 120
ZOffset: 1023
fire:
1: fire1
1:
Filename: fire1.shp
Length: *
Offset: 0,-3
ZOffset: 1023
2: fire2
2:
Filename: fire2.shp
Length: *
Offset: 0,-3
ZOffset: 1023
3: fire3
3:
Filename: fire3.shp
Length: *
Offset: 0,-3
ZOffset: 1023
4: fire4
4:
Filename: fire4.shp
Length: *
Offset: 0,-3
ZOffset: 1023
rank:
Defaults:
Filename: rank.shp
Offset: 0, 3
rank-veteran-1:
rank-veteran-2:
@@ -445,34 +559,43 @@ rank:
iconchevrons:
veteran:
Filename: iconchevrons.shp
Offset: 2, 2
atomic:
up: atomicup
up:
Filename: atomicup.shp
Length: *
ZOffset: 1023
down: atomicdn
down:
Filename: atomicdn.shp
Length: *
ZOffset: 1023
bubbles:
idle:
Filename: bubbles.shp
Length: *
Tick: 220
mpspawn:
idle:
Filename: mpspawn.shp
Length: *
waypoint:
idle:
Filename: waypoint.shp
Length: *
camera:
idle:
Filename: camera.shp
Length: *
gpsdot:
Defaults:
Filename: gpsdot.shp
Infantry:
Vehicle:
Start: 1
@@ -498,16 +621,26 @@ gpsdot:
Start: 11
icon:
abomb: atomicon
invuln: infxicon
chrono: warpicon
spyplane: smigicon
paratroopers: pinficon
gps: gpssicon
parabombs: pbmbicon
sonar: sonricon
abomb:
Filename: atomicon.shp
invuln:
Filename: infxicon.shp
chrono:
Filename: warpicon.shp
spyplane:
Filename: smigicon.shp
paratroopers:
Filename: pinficon.shp
gps:
Filename: gpssicon.shp
parabombs:
Filename: pbmbicon.shp
sonar:
Filename: sonricon.shp
quee:
Defaults:
Filename: quee.shp
idle:
Length: 10
damaged-idle:
@@ -516,23 +649,29 @@ quee:
lar1:
idle:
Filename: lar1.shp
lar2:
idle:
Filename: lar2.shp
minp:
idle:
Filename: minp.shp
ZOffset: -512
icon: jmin
icon:
Filename: jmin.shp
minv:
idle:
Filename: minv.shp
ZOffset: -512
icon: jmin
icon:
Filename: jmin.shp
overlay:
Defaults: trans.icn
AddExtension: False
Defaults:
Filename: trans.icn
build-valid:
build-invalid:
Start: 2
@@ -543,8 +682,8 @@ overlay:
Start: 2
editor-overlay:
Defaults: trans.icn
AddExtension: False
Defaults:
Filename: trans.icn
copy:
paste:
Start: 2
@@ -552,21 +691,42 @@ editor-overlay:
resources:
Defaults:
Length: *
UseTilesetExtension: true
TilesetOverrides:
INTERIOR: TEMPERAT
DESERT: TEMPERAT
gold01: gold01
gold02: gold02
gold03: gold03
gold04: gold04
gem01: gem01
gem02: gem02
gem03: gem03
gem04: gem04
gold01:
Filename: gold01.tem
TilesetFilenames:
SNOW: gold01.sno
gold02:
Filename: gold02.tem
TilesetFilenames:
SNOW: gold02.sno
gold03:
Filename: gold03.tem
TilesetFilenames:
SNOW: gold03.sno
gold04:
Filename: gold04.tem
TilesetFilenames:
SNOW: gold04.sno
gem01:
Filename: gem01.tem
TilesetFilenames:
SNOW: gem01.sno
gem02:
Filename: gem02.tem
TilesetFilenames:
SNOW: gem02.sno
gem03:
Filename: gem03.tem
TilesetFilenames:
SNOW: gem03.sno
gem04:
Filename: gem04.tem
TilesetFilenames:
SNOW: gem04.sno
shroud:
shroud: shadow
shroud:
Filename: shadow.shp
Length: *
# Note: The order of smudges and craters determines
@@ -574,86 +734,150 @@ shroud:
scorches:
Defaults:
Length: *
UseTilesetExtension: true
TilesetOverrides:
INTERIOR: TEMPERAT
sc1: sc1
sc2: sc2
sc3: sc3
sc4: sc4
sc5: sc5
sc6: sc6
sc1:
Filename: sc1.tem
TilesetFilenames:
SNOW: sc1.sno
DESERT: sc1.des
sc2:
Filename: sc2.tem
TilesetFilenames:
SNOW: sc2.sno
DESERT: sc2.des
sc3:
Filename: sc3.tem
TilesetFilenames:
SNOW: sc3.sno
DESERT: sc3.des
sc4:
Filename: sc4.tem
TilesetFilenames:
SNOW: sc4.sno
DESERT: sc4.des
sc5:
Filename: sc5.tem
TilesetFilenames:
SNOW: sc5.sno
DESERT: sc5.des
sc6:
Filename: sc6.tem
TilesetFilenames:
SNOW: sc6.sno
DESERT: sc6.des
craters:
Defaults:
Length: *
UseTilesetExtension: true
TilesetOverrides:
INTERIOR: TEMPERAT
cr1: cr1
cr2: cr2
cr3: cr3
cr4: cr4
cr5: cr5
cr6: cr6
cr1:
Filename: cr1.tem
TilesetFilenames:
SNOW: cr1.sno
DESERT: cr1.des
cr2:
Filename: cr2.tem
TilesetFilenames:
SNOW: cr2.sno
DESERT: cr2.des
cr3:
Filename: cr3.tem
TilesetFilenames:
SNOW: cr3.sno
DESERT: cr3.des
cr4:
Filename: cr4.tem
TilesetFilenames:
SNOW: cr4.sno
DESERT: cr4.des
cr5:
Filename: cr5.tem
TilesetFilenames:
SNOW: cr5.sno
DESERT: cr5.des
cr6:
Filename: cr6.tem
TilesetFilenames:
SNOW: cr6.sno
DESERT: cr6.des
mine:
idle:
UseTilesetExtension: true
TilesetFilenames:
SNOW: mine.sno
INTERIOR: mine.int
TEMPERAT: mine.tem
DESERT: mine.des
ZOffset: -2c512
gmine:
idle:
Filename: gmine.tem
TilesetFilenames:
SNOW: gmine.sno
DESERT: gmine.des
ZOffset: -2c512
UseTilesetExtension: true
TilesetOverrides:
INTERIOR: TEMPERAT
railmine:
idle:
Filename: railmine.tem
TilesetFilenames:
SNOW: railmine.sno
DESERT: railmine.des
ZOffset: -512
UseTilesetExtension: true
TilesetOverrides:
INTERIOR: TEMPERAT
ctflag:
idle:
Filename: ctflag.shp
Length: 9
Tick: 50
Offset: 0,-12
bib: mbGAP
bib:
TilesetFilenames:
SNOW: mbGAP.sno
INTERIOR: mbGAP.int
TEMPERAT: mbGAP.tem
DESERT: mbGAP.des
Length: *
UseTilesetExtension: true
paradirection:
arrow-t: mouse
arrow-t:
Filename: mouse.shp
Start: 1
Offset: 0, -19, 0
arrow-tr: mouse
arrow-tr:
Filename: mouse.shp
Start: 2
Offset: 15, -15, 0
arrow-r: mouse
arrow-r:
Filename: mouse.shp
Start: 3
Offset: 19, 0, 0
arrow-br: mouse
arrow-br:
Filename: mouse.shp
Start: 4
Offset: 15, 15, 0
arrow-b: mouse
arrow-b:
Filename: mouse.shp
Start: 5
Offset: 0, 19, 0
arrow-bl: mouse
arrow-bl:
Filename: mouse.shp
Start: 6
Offset: -15, 15, 0
arrow-l: mouse
arrow-l:
Filename: mouse.shp
Start: 7
Offset: -19, 0, 0
arrow-tl: mouse
arrow-tl:
Filename: mouse.shp
Start: 8
Offset: -15, -15, 0
twinkle:
Defaults:
Length: *
twinkle1: twinkle1
twinkle2: twinkle2
twinkle3: twinkle3
twinkle1:
Filename: twinkle1.shp
twinkle2:
Filename: twinkle2.shp
twinkle3:
Filename: twinkle3.shp

View File

@@ -1,34 +1,49 @@
ss:
idle:
Filename: ss.shp
Facings: 16
icon: ssicon
icon:
Filename: ssicon.shp
ca:
idle:
Filename: ca.shp
Facings: 16
turret: turr
turret:
Filename: turr.shp
Facings: 32
muzzle: gunfire2
muzzle:
Filename: gunfire2.shp
Length: 5
icon: caicon
icon:
Filename: caicon.shp
dd:
idle:
Filename: dd.shp
Facings: 16
turret: ssam
turret:
Filename: ssam.shp
Facings: 32
icon: ddicon
icon:
Filename: ddicon.shp
pt:
idle:
Filename: pt.shp
Facings: 16
turret: mgun
turret:
Filename: mgun.shp
Facings: 32
muzzle: gunfire2
muzzle:
Filename: gunfire2.shp
Length: 5
icon: pticon
icon:
Filename: pticon.shp
lst:
Defaults:
Filename: lst.shp
idle:
open:
Start: 1
@@ -41,9 +56,12 @@ lst:
unload:
Start: 4
ZOffset: -511
icon: lsticon
icon:
Filename: lsticon.shp
msub:
idle:
Filename: msub.shp
Facings: 16
icon: msubicon
icon:
Filename: msubicon.shp

File diff suppressed because it is too large Load Diff

View File

@@ -1,22 +1,29 @@
mcv:
idle:
Filename: mcv.shp
Facings: 32
UseClassicFacings: True
icon: mcvicon
icon:
Filename: mcvicon.shp
mcvhusk:
idle:
Filename: mcvhusk.shp
Facings: 32
UseClassicFacings: True
ZOffset: -1023
truk:
idle:
Filename: truk.shp
Facings: 32
UseClassicFacings: True
icon: trukicon
icon:
Filename: trukicon.shp
harv:
Defaults:
Filename: harv.shp
idle:
Facings: 32
UseClassicFacings: True
@@ -24,34 +31,45 @@ harv:
Start: 32
Length: 8
Facings: 8
dock: harv
dock:
Filename: harv.shp
Start: 96
Length: 8
dock-loop: harv
dock-loop:
Filename: harv.shp
Start: 104
Length: 7
icon: harvicon
icon:
Filename: harvicon.shp
Start: 0
harvempty:
Defaults:
Filename: harvempty.shp
Inherits: harv
harvhalf:
Defaults:
Filename: harvhalf.shp
Inherits: harv
hhusk:
idle:
Filename: hhusk.shp
Facings: 32
UseClassicFacings: True
ZOffset: -1023
hhusk2:
idle:
Filename: hhusk2.shp
Facings: 32
UseClassicFacings: True
ZOffset: -1023
1tnk:
Defaults:
Filename: 1tnk.shp
idle:
Facings: 32
UseClassicFacings: True
@@ -59,22 +77,28 @@ hhusk2:
Start: 32
Facings: 32
UseClassicFacings: True
muzzle: gunfire2
muzzle:
Filename: gunfire2.shp
Length: 2
icon: 1tnkicon
icon:
Filename: 1tnkicon.shp
1tnk.destroyed:
idle: 1tnk
idle:
Filename: 1tnk.shp
Facings: 32
UseClassicFacings: True
ZOffset: -512
turret: 1tnk
turret:
Filename: 1tnk.shp
Start: 32
Facings: 32
UseClassicFacings: True
ZOffset: -512
2tnk:
Defaults:
Filename: 2tnk.shp
idle:
Facings: 32
UseClassicFacings: True
@@ -82,22 +106,28 @@ hhusk2:
Start: 32
Facings: 32
UseClassicFacings: True
muzzle: gunfire2
muzzle:
Filename: gunfire2.shp
Length: 5
icon: 2tnkicon
icon:
Filename: 2tnkicon.shp
2tnk.destroyed:
idle: 2tnk
idle:
Filename: 2tnk.shp
Facings: 32
UseClassicFacings: True
ZOffset: -512
turret: 2tnk
turret:
Filename: 2tnk.shp
Start: 32
Facings: 32
UseClassicFacings: True
ZOffset: -512
3tnk:
Defaults:
Filename: 3tnk.shp
idle:
Facings: 32
UseClassicFacings: True
@@ -105,22 +135,28 @@ hhusk2:
Start: 32
Facings: 32
UseClassicFacings: True
muzzle: gunfire2
muzzle:
Filename: gunfire2.shp
Length: 5
icon: 3tnkicon
icon:
Filename: 3tnkicon.shp
3tnk.destroyed:
idle: 3tnk
idle:
Filename: 3tnk.shp
Facings: 32
UseClassicFacings: True
ZOffset: -512
turret: 3tnk
turret:
Filename: 3tnk.shp
Start: 32
Facings: 32
UseClassicFacings: True
ZOffset: -512
4tnk:
Defaults:
Filename: 4tnk.shp
idle:
Facings: 32
UseClassicFacings: True
@@ -128,22 +164,28 @@ hhusk2:
Start: 32
Facings: 32
UseClassicFacings: True
muzzle: gunfire2
muzzle:
Filename: gunfire2.shp
Length: 5
icon: 4tnkicon
icon:
Filename: 4tnkicon.shp
4tnk.destroyed:
idle: 4tnk
idle:
Filename: 4tnk.shp
Facings: 32
UseClassicFacings: True
ZOffset: -512
turret: 4tnk
turret:
Filename: 4tnk.shp
Start: 32
Facings: 32
UseClassicFacings: True
ZOffset: -512
v2rl:
Defaults:
Filename: v2rl.shp
idle:
Facings: 32
UseClassicFacings: True
@@ -151,17 +193,23 @@ v2rl:
Start: 32
Facings: 32
UseClassicFacings: True
icon: v2rlicon
icon:
Filename: v2rlicon.shp
arty:
idle:
Filename: arty.shp
Facings: 32
UseClassicFacings: True
muzzle: gunfire2
muzzle:
Filename: gunfire2.shp
Length: 5
icon: artyicon
icon:
Filename: artyicon.shp
jeep:
Defaults:
Filename: jeep.shp
idle:
Facings: 32
UseClassicFacings: True
@@ -169,16 +217,21 @@ jeep:
Start: 32
Facings: 32
UseClassicFacings: True
muzzle: minigun
muzzle:
Filename: minigun.shp
Length: 6
Facings: 8
icon: jeepicon
icon:
Filename: jeepicon.shp
apc:
Defaults:
Filename: apc.shp
idle:
Facings: 32
UseClassicFacings: True
muzzle: minigun
muzzle:
Filename: minigun.shp
Length: 6
Facings: 8
open:
@@ -186,24 +239,32 @@ apc:
Length: 3
unload:
Start: 32
icon: apcicon
icon:
Filename: apcicon.shp
mnly:
idle:
Filename: mnly.shp
Facings: 32
UseClassicFacings: True
icon: mnlyicon
icon:
Filename: mnlyicon.shp
mrj:
Defaults:
Filename: mrj.shp
idle:
Facings: 32
UseClassicFacings: True
spinner:
Start: 32
Length: 32
icon: mrjicon
icon:
Filename: mrjicon.shp
mgg:
Defaults:
Filename: mgg.shp
idle:
Facings: 32
UseClassicFacings: True
@@ -213,30 +274,39 @@ mgg:
spinner-idle:
Start: 32
Length: 1
icon: mggicon
icon:
Filename: mggicon.shp
mgg.destroyed:
idle: mgg
idle:
Filename: mgg.shp
Facings: 32
UseClassicFacings: True
ZOffset: -512
spinner: mgg
spinner:
Filename: mgg.shp
Start: 32
Length: 8
ZOffset: -512
spinner-idle: mgg
spinner-idle:
Filename: mgg.shp
Start: 32
ttnk:
Defaults:
Filename: ttnk.shp
idle:
Facings: 32
UseClassicFacings: True
spinner:
Start: 32
Length: 32
icon: ttnkicon
icon:
Filename: ttnkicon.shp
ftrk:
Defaults:
Filename: ftrk.shp
idle:
Facings: 32
UseClassicFacings: True
@@ -244,25 +314,34 @@ ftrk:
Start: 32
Facings: 32
UseClassicFacings: True
muzzle: gunfire2
muzzle:
Filename: gunfire2.shp
Length: 2
icon: ftrkicon
icon:
Filename: ftrkicon.shp
dtrk:
idle:
Filename: dtrk.shp
Facings: 32
UseClassicFacings: True
icon: dtrkicon
icon:
Filename: dtrkicon.shp
ctnk:
idle:
Filename: ctnk.shp
Facings: 32
UseClassicFacings: True
muzzle: gunfire2
muzzle:
Filename: gunfire2.shp
Length: 5
icon: ctnkicon
icon:
Filename: ctnkicon.shp
qtnk:
Defaults:
Filename: qtnk.shp
idle:
Facings: 32
UseClassicFacings: True
@@ -270,9 +349,12 @@ qtnk:
Start: 32
Facings: 8
Length: 8
icon: qtnkicon
icon:
Filename: qtnkicon.shp
stnk:
Defaults:
Filename: stnk.shp
idle:
Facings: 32
UseClassicFacings: True
@@ -280,4 +362,5 @@ stnk:
Start: 38
Facings: 32
UseClassicFacings: True
icon: stnkicon
icon:
Filename: stnkicon.shp

View File

@@ -1,5 +1,9 @@
slav:
icon: xxicon
Defaults:
Filename: slav.shp
icon:
Filename: xxicon.shp
4tnk:
icon: xxicon
icon:
Filename: xxicon.shp

View File

@@ -1,29 +1,36 @@
orca:
Inherits: ^VehicleOverlays
icon: orcaicon
icon:
Filename: orcaicon.shp
orcab:
Inherits: ^VehicleOverlays
icon: obmbicon
icon:
Filename: obmbicon.shp
trnsport:
Inherits: ^VehicleOverlays
icon: otrnicon
icon:
Filename: otrnicon.shp
scrin:
Inherits: ^VehicleOverlays
icon: proicon
icon:
Filename: proicon.shp
apache:
Inherits: ^VehicleOverlays
icon: apchicon
rotor: harpyrotor
icon:
Filename: apchicon.shp
rotor:
Filename: harpyrotor.shp
Start: 32
Length: 31
Offset: 0, 0, 32
ZRamp: 1
Tick: 25
slow-rotor: harpyrotor
slow-rotor:
Filename: harpyrotor.shp
Length: 31
Offset: 0, 0, 32
ZRamp: 1
@@ -31,10 +38,12 @@ apache:
orcatran:
Inherits: ^VehicleOverlays
icon: crryicon
icon:
Filename: crryicon.shp
pod:
Inherits: ^VehicleOverlays
idle:
Filename: pod.shp
Facings: 1
Length: 1

View File

@@ -1,97 +1,200 @@
^bridge:
Defaults:
ZOffset: -1c511
UseTilesetExtension: true
Start: 1
ZRamp: 1
Offset: 0, 0, 1
lobrdg_a:
Inherits: ^bridge
idle: lobrdg10
idle2: lobrdg11
idle3: lobrdg12
idle4: lobrdg13
adead: lobrdg15
bdead: lobrdg14
abdead: lobrdg16
idle:
TilesetFilenames:
TEMPERATE: lobrdg10.tem
SNOW: lobrdg10.sno
idle2:
TilesetFilenames:
TEMPERATE: lobrdg11.tem
SNOW: lobrdg11.sno
idle3:
TilesetFilenames:
TEMPERATE: lobrdg12.tem
SNOW: lobrdg12.sno
idle4:
TilesetFilenames:
TEMPERATE: lobrdg13.tem
SNOW: lobrdg13.sno
adead:
TilesetFilenames:
TEMPERATE: lobrdg15.tem
SNOW: lobrdg15.sno
bdead:
TilesetFilenames:
TEMPERATE: lobrdg14.tem
SNOW: lobrdg14.sno
abdead:
TilesetFilenames:
TEMPERATE: lobrdg16.tem
SNOW: lobrdg16.sno
lobrdg_a_d:
Inherits: ^bridge
idle: lobrdg28
aramp: lobrdg17
bramp: lobrdg18
abramp: lobrdg28
editor: lobrdg10
idle:
TilesetFilenames:
TEMPERATE: lobrdg28.tem
SNOW: lobrdg28.sno
aramp:
TilesetFilenames:
TEMPERATE: lobrdg17.tem
SNOW: lobrdg17.sno
bramp:
TilesetFilenames:
TEMPERATE: lobrdg18.tem
SNOW: lobrdg18.sno
abramp:
TilesetFilenames:
TEMPERATE: lobrdg28.tem
SNOW: lobrdg28.sno
editor:
TilesetFilenames:
TEMPERATE: lobrdg10.tem
SNOW: lobrdg10.sno
lobrdg_b:
Inherits: ^bridge
idle: lobrdg01
idle2: lobrdg02
idle3: lobrdg03
idle4: lobrdg04
adead: lobrdg05
bdead: lobrdg06
abdead: lobrdg07
idle:
TilesetFilenames:
TEMPERATE: lobrdg01.tem
SNOW: lobrdg01.sno
idle2:
TilesetFilenames:
TEMPERATE: lobrdg02.tem
SNOW: lobrdg02.sno
idle3:
TilesetFilenames:
TEMPERATE: lobrdg03.tem
SNOW: lobrdg03.sno
idle4:
TilesetFilenames:
TEMPERATE: lobrdg04.tem
SNOW: lobrdg04.sno
adead:
TilesetFilenames:
TEMPERATE: lobrdg05.tem
SNOW: lobrdg05.sno
bdead:
TilesetFilenames:
TEMPERATE: lobrdg06.tem
SNOW: lobrdg06.sno
abdead:
TilesetFilenames:
TEMPERATE: lobrdg07.tem
SNOW: lobrdg07.sno
lobrdg_b_d:
Inherits: ^bridge
idle: lobrdg27
aramp: lobrdg08
bramp: lobrdg09
abramp: lobrdg27
editor: lobrdg01
idle:
TilesetFilenames:
TEMPERATE: lobrdg27.tem
SNOW: lobrdg27.sno
aramp:
TilesetFilenames:
TEMPERATE: lobrdg08.tem
SNOW: lobrdg08.sno
bramp:
TilesetFilenames:
TEMPERATE: lobrdg09.tem
SNOW: lobrdg09.sno
abramp:
TilesetFilenames:
TEMPERATE: lobrdg27.tem
SNOW: lobrdg27.sno
editor:
TilesetFilenames:
TEMPERATE: lobrdg01.tem
SNOW: lobrdg01.sno
lobrdg_r_se:
Inherits: ^bridge
idle: lobrdg19
damaged-idle: lobrdg20
idle:
TilesetFilenames:
TEMPERATE: lobrdg19.tem
SNOW: lobrdg19.sno
damaged-idle:
TilesetFilenames:
TEMPERATE: lobrdg20.tem
SNOW: lobrdg20.sno
lobrdg_r_nw:
Inherits: ^bridge
idle: lobrdg21
damaged-idle: lobrdg22
idle:
TilesetFilenames:
TEMPERATE: lobrdg21.tem
SNOW: lobrdg21.sno
damaged-idle:
TilesetFilenames:
TEMPERATE: lobrdg22.tem
SNOW: lobrdg22.sno
lobrdg_r_ne:
Inherits: ^bridge
idle: lobrdg23
damaged-idle: lobrdg24
idle:
TilesetFilenames:
TEMPERATE: lobrdg23.tem
SNOW: lobrdg23.sno
damaged-idle:
TilesetFilenames:
TEMPERATE: lobrdg24.tem
SNOW: lobrdg24.sno
lobrdg_r_sw:
Inherits: ^bridge
idle: lobrdg25
damaged-idle: lobrdg26
idle:
TilesetFilenames:
TEMPERATE: lobrdg25.tem
SNOW: lobrdg25.sno
damaged-idle:
TilesetFilenames:
TEMPERATE: lobrdg26.tem
SNOW: lobrdg26.sno
bridge1:
idle: bridge
idle:
TilesetFilenames:
TEMPERATE: bridge.tem
SNOW: bridge.sno
# Disabled to avoid glitches until shadow rendering is fixed
# ShadowStart: 18
UseTilesetExtension: true
ZRamp: 1
Offset: 0, -13, 49
bridge2:
idle: bridge
idle:
TilesetFilenames:
TEMPERATE: bridge.tem
SNOW: bridge.sno
Start: 9
# Disabled to avoid glitches until shadow rendering is fixed
# ShadowStart: 27
UseTilesetExtension: true
ZRamp: 1
Offset: 0, -25, 49
railbrdg1:
idle: railbrdg
idle:
TilesetFilenames:
TEMPERATE: railbrdg.tem
SNOW: railbrdg.sno
# Disabled to avoid glitches until shadow rendering is fixed
# ShadowStart: 18
UseTilesetExtension: true
ZRamp: 1
Offset: 0, -13, 49
railbrdg2:
idle: railbrdg
idle:
TilesetFilenames:
TEMPERATE: railbrdg.tem
SNOW: railbrdg.sno
Start: 9
# Disabled to avoid glitches until shadow rendering is fixed
# ShadowStart: 27
UseTilesetExtension: true
ZRamp: 1
Offset: 0, -25, 49

View File

@@ -1,5 +1,6 @@
ammocrat:
idle: ammo01
idle:
Filename: ammo01.shp
DepthSprite: isodepth.shp
ShadowStart: 2
Offset: 0, -12, 12
@@ -54,67 +55,98 @@ ammocrat:
DepthSpriteOffset: -24, 0
aban01:
Defaults:
Filename: aban01.shp
Inherits: ^aban2x6
aban02:
Defaults:
Filename: aban02.shp
Inherits: ^aban5x3
aban03:
Defaults:
Filename: aban03.shp
Inherits: ^aban2x5
aban04:
Defaults:
Filename: aban04.shp
Inherits: ^aban4x2
aban05:
Defaults:
Filename: aban05.shp
Inherits: ^aban3x2
aban06:
Defaults:
Filename: aban06.shp
Inherits: ^aban2x2
aban07:
Defaults:
Filename: aban07.shp
Inherits: ^aban2x2
aban08:
Defaults:
Filename: aban08.shp
Inherits: ^aban2x2
aban09:
Inherits: ^aban2x2
Defaults:
Filename: aban09.shp
Offset: 2, -20, 24
aban10:
Defaults:
Filename: aban10.shp
Inherits: ^aban2x2
aban11:
Inherits: ^aban2x2
Defaults:
Filename: aban11.shp
Offset: 0, -20, 24
aban12:
Inherits: ^aban2x2
Defaults:
Filename: aban12.shp
Offset: 2, -22, 24
aban13:
Inherits: ^aban1x1
Defaults:
Filename: aban13.shp
Offset: 0, -10, 12
aban14:
Defaults:
Filename: aban14.shp
Inherits: ^aban1x1
aban15:
Inherits: ^aban1x1
Defaults:
Filename: aban15.shp
Offset: 0, -10, 12
aban16:
Defaults:
Filename: aban16.shp
Inherits: ^aban2x2
aban17:
Defaults:
Filename: aban17.shp
Inherits: ^aban1x1
aban18:
Defaults:
Filename: aban18.shp
Inherits: ^aban1x1
^bboard1x1:
@@ -145,51 +177,83 @@ aban18:
ShadowStart: 3
bboard01:
Defaults:
Filename: bboard01.shp
Inherits: ^bboard1x1
bboard02:
Defaults:
Filename: bboard02.shp
Inherits: ^bboard1x1
bboard03:
Defaults:
Filename: bboard03.shp
Inherits: ^bboard1x1
bboard04:
Defaults:
Filename: bboard04.shp
Inherits: ^bboard1x1
bboard05:
Defaults:
Filename: bboard05.shp
Inherits: ^bboard1x1
bboard06:
Defaults:
Filename: bboard06.shp
Inherits: ^bboard1x2
bboard07:
Defaults:
Filename: bboard07.shp
Inherits: ^bboard1x2
bboard08:
Defaults:
Filename: bboard08.shp
Inherits: ^bboard1x2
bboard09:
Defaults:
Filename: bboard09.shp
Inherits: ^bboard1x1
bboard10:
Defaults:
Filename: bboard10.shp
Inherits: ^bboard1x1
bboard11:
Defaults:
Filename: bboard11.shp
Inherits: ^bboard1x1
bboard12:
Defaults:
Filename: bboard12.shp
Inherits: ^bboard1x1
bboard13:
Defaults:
Filename: bboard13.shp
Inherits: ^bboard1x1
bboard14:
Defaults:
Filename: bboard14.shp
Inherits: ^bboard2x1
bboard15:
Defaults:
Filename: bboard15.shp
Inherits: ^bboard2x1
bboard16:
Defaults:
Filename: bboard16.shp
Inherits: ^bboard2x1
^cabase:
@@ -205,114 +269,195 @@ bboard16:
Inherits: ^cabase
Defaults:
Offset: 0, -12, 12
UseTilesetCode: true
^ca1x2:
Inherits: ^cabase
Defaults:
Offset: 12, -18, 18
DepthSpriteOffset: 12, 0
UseTilesetCode: true
^ca2x1:
Inherits: ^cabase
Defaults:
Offset: -12, -18, 18
DepthSpriteOffset: -12, 0
UseTilesetCode: true
^ca2x3:
Inherits: ^cabase
Defaults:
Offset: 12, -30, 30
DepthSpriteOffset: 12, 0
UseTilesetCode: true
^ca3x3:
Inherits: ^cabase
Defaults:
Offset: 0, -36, 36
UseTilesetCode: true
^ca2x2:
Inherits: ^cabase
Defaults:
Offset: 0, -24, 24
UseTilesetCode: true
ca0001:
Defaults:
TilesetFilenames:
TEMPERATE: ct0001.shp
SNOW: ca0001.shp
Inherits: ^ca3x3
ca0002:
Defaults:
TilesetFilenames:
TEMPERATE: ct0002.shp
SNOW: ca0002.shp
Inherits: ^ca3x3
ca0003:
Defaults:
TilesetFilenames:
TEMPERATE: ct0003.shp
SNOW: ca0003.shp
Inherits: ^ca2x2
ca0004:
Defaults:
TilesetFilenames:
TEMPERATE: ct0004.shp
SNOW: ca0004.shp
Inherits: ^ca2x2
ca0005:
Defaults:
TilesetFilenames:
TEMPERATE: ct0005.shp
SNOW: ca0005.shp
Inherits: ^ca1x2
ca0006:
Defaults:
TilesetFilenames:
TEMPERATE: ct0006.shp
SNOW: ca0006.shp
Inherits: ^ca1x2
ca0007:
Defaults:
TilesetFilenames:
TEMPERATE: ct0007.shp
SNOW: ca0007.shp
Inherits: ^ca1x2
ca0008:
Defaults:
TilesetFilenames:
TEMPERATE: ct0008.shp
SNOW: ca0008.shp
Inherits: ^ca2x3
ca0009:
Defaults:
TilesetFilenames:
TEMPERATE: ct0009.shp
SNOW: ca0009.shp
Inherits: ^ca2x3
ca0010:
Defaults:
TilesetFilenames:
TEMPERATE: ct0010.shp
SNOW: ca0010.shp
Inherits: ^ca2x2
ca0011:
Defaults:
TilesetFilenames:
TEMPERATE: ct0011.shp
SNOW: ca0011.shp
Inherits: ^ca1x2
ca0012:
Defaults:
TilesetFilenames:
TEMPERATE: ct0012.shp
SNOW: ca0012.shp
Inherits: ^ca1x2
ca0013:
Defaults:
TilesetFilenames:
TEMPERATE: ct0013.shp
SNOW: ca0013.shp
Inherits: ^ca2x1
ca0014:
Defaults:
TilesetFilenames:
TEMPERATE: ct0014.shp
SNOW: ca0014.shp
Inherits: ^ca1x1
ca0015:
Defaults:
TilesetFilenames:
TEMPERATE: ct0015.shp
SNOW: ca0015.shp
Inherits: ^ca1x1
ca0016:
Defaults:
TilesetFilenames:
TEMPERATE: ct0016.shp
SNOW: ca0016.shp
Inherits: ^ca1x1
ca0017:
Defaults:
TilesetFilenames:
TEMPERATE: ct0017.shp
SNOW: ca0017.shp
Inherits: ^ca1x1
ca0018:
Defaults:
TilesetFilenames:
TEMPERATE: ct0018.shp
SNOW: ca0018.shp
Inherits: ^ca1x2
ca0019:
Defaults:
TilesetFilenames:
TEMPERATE: ct0019.shp
SNOW: ca0019.shp
Inherits: ^ca1x2
ca0020:
Defaults:
TilesetFilenames:
TEMPERATE: ct0020.shp
SNOW: ca0020.shp
Inherits: ^ca1x2
ca0021:
Defaults:
TilesetFilenames:
TEMPERATE: ct0021.shp
SNOW: ca0021.shp
Inherits: ^ca1x2
caarmr:
Defaults:
DepthSprite: isodepth.shp
Offset: 0, -48, 48
idle: ctarmr
idle:
Filename: ctarmr.shp
ShadowStart: 3
damaged-idle: ctarmr
damaged-idle:
Filename: ctarmr.shp
Start: 1
ShadowStart: 4
critical-idle: ctarmr
critical-idle:
Filename: ctarmr.shp
Start: 2
ShadowStart: 5
@@ -320,32 +465,41 @@ caaray:
Defaults:
DepthSprite: isodepth.shp
Offset: 0, -24, 24
idle: ctaray
idle:
Filename: ctaray.shp
ShadowStart: 3
damaged-idle: ctaray
damaged-idle:
Filename: ctaray.shp
Start: 1
ShadowStart: 4
critical-idle: ctaray
critical-idle:
Filename: ctaray.shp
Start: 2
ShadowStart: 5
idle-satellite: ctaray_a
idle-satellite:
Filename: ctaray_a.shp
Length: 16
Tick: 100
idle-radar: ctaray_b
idle-radar:
Filename: ctaray_b.shp
Length: 16
Tick: 100
idle-scanner: ctaray_c
idle-scanner:
Filename: ctaray_c.shp
Length: 16
Tick: 100
damaged-idle-scanner: ctaray_c
damaged-idle-scanner:
Filename: ctaray_c.shp
Start: 16
Length: 16
Tick: 100
idle-light-bright: ctaray_d
idle-light-bright:
Filename: ctaray_d.shp
Length: 12
Tick: 100
IgnoreWorldTint: True
damaged-idle-light-bright: ctaray_d
damaged-idle-light-bright:
Filename: ctaray_d.shp
Start: 12
Length: 12
Tick: 100
@@ -353,36 +507,59 @@ caaray:
cabhut:
idle:
TilesetFilenames:
TEMPERATE: ctbhut.shp
SNOW: cabhut.shp
DepthSprite: isodepth.shp
UseTilesetCode: true
Offset: 0, -12, 12
ShadowStart: 1
^cacrsh:
idle:
UseTilesetCode: true
Offset: 0, -12, 12
cacrsh01:
Inherits: ^cacrsh
idle:
TilesetFilenames:
TEMPERATE: ctcrsh01.shp
SNOW: cacrsh01.shp
cacrsh02:
Inherits: ^cacrsh
idle:
TilesetFilenames:
TEMPERATE: ctcrsh02.shp
SNOW: cacrsh02.shp
cacrsh03:
Inherits: ^cacrsh
idle:
TilesetFilenames:
TEMPERATE: ctcrsh03.shp
SNOW: cacrsh03.shp
cacrsh04:
Inherits: ^cacrsh
idle:
TilesetFilenames:
TEMPERATE: ctcrsh04.shp
SNOW: cacrsh04.shp
cacrsh05:
Inherits: ^cacrsh
idle:
TilesetFilenames:
TEMPERATE: ctcrsh05.shp
SNOW: cacrsh05.shp
cahosp:
Defaults:
TilesetFilenames:
TEMPERATE: cthosp.shp
SNOW: cahosp.shp
DepthSprite: isodepth.shp
DepthSpriteOffset: 15, 0
UseTilesetCode: true
Offset: 15, -36, 36
idle:
ShadowStart: 3
@@ -394,19 +571,22 @@ cahosp:
ShadowStart: 5
capyr01:
idle: ctpyr01
idle:
Filename: ctpyr01.shp
DepthSprite: isodepth.shp
ShadowStart: 1
Offset: 0, -24, 24
capyr02:
idle: ctpyr02
idle:
Filename: ctpyr02.shp
DepthSprite: isodepth.shp
ShadowStart: 1
Offset: 0, -48, 48
capyr03:
idle: ctpyr03
idle:
Filename: ctpyr03.shp
DepthSprite: isodepth.shp
ShadowStart: 1
Offset: 0, -48, 48
@@ -454,102 +634,150 @@ capyr03:
city01:
Inherits: ^city4x2
Defaults:
Filename: city01.shp
Offset: -12, -30, 36
city02:
Defaults:
Filename: city02.shp
Inherits: ^city2x3
city03:
Defaults:
Filename: city03.shp
Inherits: ^city3x2
city04:
Defaults:
Filename: city04.shp
Inherits: ^city3x2
city05:
Defaults:
Filename: city05.shp
Inherits: ^city3x2
city06:
Defaults:
Filename: city06.shp
Inherits: ^city4x2
city07:
Inherits: ^city4x2
Defaults:
Filename: city07.shp
Offset: -12, -30, 36
city08:
Defaults:
Filename: city08.shp
Inherits: ^city2x2
city09:
Defaults:
Filename: city09.shp
Inherits: ^city2x2
city10:
Defaults:
Filename: city10.shp
Inherits: ^city2x2
city11:
Defaults:
Filename: city11.shp
Inherits: ^city2x2
city12:
Defaults:
Filename: city12.shp
Inherits: ^city2x2
city13:
Defaults:
Filename: city13.shp
Inherits: ^city2x2
city14:
Defaults:
Filename: city14.shp
Inherits: ^city1x1
city15:
Defaults:
Filename: city15.shp
Inherits: ^city4x2
city16:
Inherits: ^city4x2
Defaults:
Filename: city16.shp
Offset: -24, -30, 36
city17:
Defaults:
Filename: city17.shp
Inherits: ^city4x3
city18:
Defaults:
Filename: city18.shp
Inherits: ^city3x5
city19:
Defaults:
Filename: city19.shp
Inherits: ^city2x2
city20:
Defaults:
Filename: city20.shp
Inherits: ^city1x1
city21:
Defaults:
Filename: city21.shp
Inherits: ^city1x1
city22:
Defaults:
Filename: city22.shp
Inherits: ^city2x2
ctdam:
Defaults:
Filename: ctdam.shp
Offset: 36,-42, 42
idle:
damaged-idle:
Start: 1
idle-lights-bright: ctdam_a
idle-lights-bright:
Filename: ctdam_a.shp
Length: 10
Tick: 200
IgnoreWorldTint: True
damaged-idle-lights-bright: ctdam_a
damaged-idle-lights-bright:
Filename: ctdam_a.shp
Start: 10
Length: 10
Tick: 200
IgnoreWorldTint: True
idle-water-a: ctdam_b
idle-water-a:
Filename: ctdam_b.shp
Length: 8
Tick: 200
damaged-idle-water-a: ctdam_b
damaged-idle-water-a:
Filename: ctdam_b.shp
Start: 8
Length: 8
Tick: 200
idle-water-b: ctdam_b
idle-water-b:
Filename: ctdam_b.shp
Start: 16
Length: 8
Tick: 200
damaged-idle-water-b: ctdam_b
damaged-idle-water-b:
Filename: ctdam_b.shp
Start: 24
Start: 8
Length: 8
@@ -557,6 +785,7 @@ ctdam:
ctvega:
Defaults:
Filename: ctvega.shp
DepthSprite: isodepth.shp
Offset: 0, -48, 48
idle:
@@ -572,32 +801,57 @@ ctvega:
idle:
ShadowStart: 2
DepthSprite: isodepth.shp
UseTilesetCode: true
Offset: 0, -24, 24
gaoldcc1:
Inherits: ^gaoldcc
idle:
TilesetFilenames:
TEMPERATE: gtoldcc1.shp
SNOW: gaoldcc1.shp
gaoldcc2:
Inherits: ^gaoldcc
idle:
TilesetFilenames:
TEMPERATE: gtoldcc2.shp
SNOW: gaoldcc2.shp
gaoldcc3:
Inherits: ^gaoldcc
idle:
TilesetFilenames:
TEMPERATE: gtoldcc3.shp
SNOW: gaoldcc3.shp
gaoldcc4:
Inherits: ^gaoldcc
idle:
TilesetFilenames:
TEMPERATE: gtoldcc4.shp
SNOW: gaoldcc4.shp
gaoldcc5:
Inherits: ^gaoldcc
idle:
TilesetFilenames:
TEMPERATE: gtoldcc5.shp
SNOW: gaoldcc5.shp
gaoldcc6:
Inherits: ^gaoldcc
idle:
TilesetFilenames:
TEMPERATE: gtoldcc6.shp
SNOW: gaoldcc6.shp
gakodk:
Defaults:
TilesetFilenames:
TEMPERATE: gtkodk.shp
SNOW: gakodk.shp
DepthSprite: isodepth.shp
DepthSpriteOffset: -24, 0
UseTilesetCode: true
Offset: -24, -36, 36
idle:
ShadowStart: 3
@@ -607,41 +861,71 @@ gakodk:
critical-idle:
Start: 2
ShadowStart: 5
large-lights: gakodk_a
large-lights:
TilesetFilenames:
TEMPERATE: gtkodk_a.shp
SNOW: gakodk_a.shp
Length: 12
Tick: 200
large-lights-bright: gakodk_a
large-lights-bright:
TilesetFilenames:
TEMPERATE: gtkodk_a.shp
SNOW: gakodk_a.shp
Length: 12
Tick: 200
IgnoreWorldTint: True
damaged-large-lights: gakodk_a
damaged-large-lights:
TilesetFilenames:
TEMPERATE: gtkodk_a.shp
SNOW: gakodk_a.shp
Start: 12
Length: 12
Tick: 200
damaged-large-lights-bright: gakodk_a
damaged-large-lights-bright:
TilesetFilenames:
TEMPERATE: gtkodk_a.shp
SNOW: gakodk_a.shp
Start: 12
Length: 12
Tick: 200
IgnoreWorldTint: True
small-light: gakodk_b
small-light:
TilesetFilenames:
TEMPERATE: gtkodk_b.shp
SNOW: gakodk_b.shp
Length: 22
Tick: 200
small-light-bright: gakodk_b
small-light-bright:
TilesetFilenames:
TEMPERATE: gtkodk_b.shp
SNOW: gakodk_b.shp
Length: 22
Tick: 200
IgnoreWorldTint: True
small-lights: gakodk_c
small-lights:
TilesetFilenames:
TEMPERATE: gtkodk_c.shp
SNOW: gakodk_c.shp
Length: 12
Tick: 200
small-lights-bright: gakodk_c
small-lights-bright:
TilesetFilenames:
TEMPERATE: gtkodk_c.shp
SNOW: gakodk_c.shp
Length: 12
Tick: 200
IgnoreWorldTint: True
damaged-small-lights: gakodk_c
damaged-small-lights:
TilesetFilenames:
TEMPERATE: gtkodk_c.shp
SNOW: gakodk_c.shp
Start: 12
Length: 12
Tick: 200
damaged-small-lights-bright: gakodk_c
damaged-small-lights-bright:
TilesetFilenames:
TEMPERATE: gtkodk_c.shp
SNOW: gakodk_c.shp
Start: 12
Length: 12
Tick: 200
@@ -649,9 +933,11 @@ gakodk:
gaspot:
Defaults:
TilesetFilenames:
TEMPERATE: gtspot.shp
SNOW: gaspot.shp
DepthSprite: isodepth.shp
Offset: 0, -12, 12
UseTilesetCode: true
idle:
ShadowStart: 3
damaged-idle:
@@ -661,67 +947,85 @@ gaspot:
Start: 2
ShadowStart: 5
Tick: 400
idle-lights-bright: gaspot_a
idle-lights-bright:
TilesetFilenames:
TEMPERATE: gtspot_a.shp
SNOW: gaspot_a.shp
Length: 8
Tick: 200
IgnoreWorldTint: True
damaged-idle-lights-bright: gaspot_a
damaged-idle-lights-bright:
TilesetFilenames:
TEMPERATE: gtspot_a.shp
SNOW: gaspot_a.shp
Start: 8
Length: 8
Tick: 200
IgnoreWorldTint: True
make: gaspotmk
make:
TilesetFilenames:
TEMPERATE: gtspotmk.shp
SNOW: gaspotmk.shp
Length: 14
ShadowStart: 14
emp-overlay: emp_fx01
emp-overlay:
Filename: emp_fx01.shp
TilesetFilenames:
Length: *
Offset: 0, 0
-DepthSprite:
UseTilesetCode: false
DepthSprite:
ZOffset: 512
BlendMode: Additive
IgnoreWorldTint: True
icon: spoticon
icon:
Filename: spoticon.shp
TilesetFilenames:
Offset: 0, 0
UseTilesetCode: false
-DepthSprite:
DepthSprite:
galite:
Defaults:
DepthSprite: isodepth.shp
Offset: 0, -12, 12
UseTilesetCode: true
idle: gtlite
idle:
TilesetFilenames:
TEMPERATE: gtlite.shp
SNOW: galite.shp
ShadowStart: 2
damaged-idle: gtlite
damaged-idle:
TilesetFilenames:
TEMPERATE: gtlite.shp
SNOW: galite.shp
Start: 1
ShadowStart: 3
lighting: alphatst
lighting:
Filename: alphatst.shp
BlendMode: DoubleMultiplicative
UseTilesetCode: false
IgnoreWorldTint: true
-DepthSprite:
DepthSprite:
Offset: 0, 0, 240
ZRamp: 1
ZOffset: 10240
emp-overlay: emp_fx01
emp-overlay:
Filename: emp_fx01.shp
Length: *
Offset: 0, 0
-DepthSprite:
UseTilesetCode: false
DepthSprite:
ZOffset: 512
BlendMode: Additive
IgnoreWorldTint: True
icon: liteicon
icon:
Filename: liteicon.shp
Offset: 0, 0
-DepthSprite:
UseTilesetCode: false
DepthSprite:
namntk:
Defaults:
TilesetFilenames:
TEMPERATE: ntmntk.shp
SNOW: namntk.shp
DepthSprite: isodepth.shp
DepthSpriteOffset: 24, 0
UseTilesetCode: true
Offset: 24, -24, 24
idle:
ShadowStart: 3
@@ -731,16 +1035,23 @@ namntk:
critical-idle:
Start: 2
ShadowStart: 5
idle-lights: namntk_a
idle-lights:
TilesetFilenames:
TEMPERATE: ntmntk_a.shp
SNOW: namntk_a.shp
Length: 8
Tick: 200
idle-lights-bright: namntk_a
idle-lights-bright:
TilesetFilenames:
TEMPERATE: ntmntk_a.shp
SNOW: namntk_a.shp
Length: 8
Tick: 200
IgnoreWorldTint: True
ntpyra:
Defaults:
Filename: ntpyra.shp
DepthSprite: isodepth.shp
Offset: 0, -42, 42
idle:
@@ -751,16 +1062,18 @@ ntpyra:
critical-idle:
Start: 2
ShadowStart: 5
idle-lights: ntpyra_a
idle-lights:
Filename: ntpyra_a.shp
Length: 16
Tick: 200
damaged-idle-lights: ntpyra_a
damaged-idle-lights:
Filename: ntpyra_a.shp
Start: 16
Length: 16
Tick: 200
ufo:
idle: ufo.tem
idle:
Filename: ufo.tem
DepthSprite: isodepth.shp
Offset: -24, -60, 60
AddExtension: false

View File

@@ -1,5 +1,6 @@
doggie:
Defaults:
Filename: doggie.shp
Tick: 80
Offset: 0, 0, 16
stand:
@@ -34,7 +35,8 @@ doggie:
Start: 99
Length: 10
ShadowStart: 218
die-exploding: s_bang34
die-exploding:
Filename: s_bang34.shp
Length: *
die-crushed:
Start: 105
@@ -54,6 +56,7 @@ doggie:
vissml:
idle:
Filename: vissml.shp
Length: 90
ShadowStart: 90
Tick: 80
@@ -61,16 +64,19 @@ vissml:
vislrg:
idle:
Filename: vislrg.shp
Length: 90
ShadowStart: 90
Tick: 80
Offset: 0, 0, 16
attack:
Combine:
vislgatk:
0:
Filename: vislgatk.shp
Start: 5
Length: 35
vislgatk:
1:
Filename: vislgatk.shp
Start: 0
Length: 5
Facings: -8
@@ -80,6 +86,8 @@ vislrg:
# ShadowStart: 40 # TODO: enable shadow frames
floater:
Defaults:
Filename: floater.shp
idle:
Length: 16
ShadowStart: 32

View File

@@ -36,7 +36,8 @@
Start: 149
Length: 15
ShadowStart: 441
die-exploding: s_bang34
die-exploding:
Filename: s_bang34.shp
Length: *
die-crushed:
Start: 159
@@ -49,7 +50,8 @@
Length: 2
Facings: 8
ShadowStart: 552
die-melting: electro
die-melting:
Filename: electro.shp
Frames: 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
Length: *
@@ -78,81 +80,125 @@
e1.gdi:
Inherits: ^BasicInfantry
Inherits@attack: ^BasicInfantryAttack
Defaults: e1
icon: sidebar-gdi|e1icon
Defaults:
Filename: e1.shp
icon:
Filename: sidebar-gdi|e1icon.shp
e1.nod:
Inherits: ^BasicInfantry
Inherits@attack: ^BasicInfantryAttack
Defaults: e1
icon: sidebar-nod|e1icon
Defaults:
Filename: e1.shp
icon:
Filename: sidebar-nod|e1icon.shp
e2:
Defaults:
Filename: e2.shp
Inherits: ^BasicInfantry
Inherits@attack: ^BasicInfantryAttack
icon: e2icon
icon:
Filename: e2icon.shp
e3:
Defaults:
Filename: e3.shp
Inherits: ^BasicInfantry
Inherits@attack: ^BasicInfantryAttack
icon: e4icon
icon:
Filename: e4icon.shp
engineer.gdi:
Inherits: ^BasicInfantry
Defaults: engineer
icon: sidebar-gdi|engnicon
Defaults:
Filename: engineer.shp
icon:
Filename: sidebar-gdi|engnicon.shp
engineer.nod:
Inherits: ^BasicInfantry
Defaults: engineer
icon: sidebar-nod|engnicon
Defaults:
Filename: engineer.shp
icon:
Filename: sidebar-nod|engnicon.shp
umagon:
Defaults:
Filename: umagon.shp
Inherits: ^BasicInfantry
Inherits@attack: ^BasicInfantryAttack
icon: umagicon
icon:
Filename: umagicon.shp
ghost:
Defaults:
Filename: ghost.shp
Inherits: ^BasicInfantry
Inherits@attack: ^BasicInfantryAttack
icon: gosticon
icon:
Filename: gosticon.shp
mhijack:
Defaults:
Filename: mhijack.shp
Inherits: ^BasicInfantry
icon: chamicon
icon:
Filename: chamicon.shp
chamspy:
Defaults:
Filename: chamspy.shp
Inherits: ^BasicInfantry
icon: chamicon
icon:
Filename: chamicon.shp
mutant:
Defaults:
Filename: mutant.shp
Inherits: ^BasicInfantry
Inherits@attack: ^BasicInfantryAttack
icon: mutcicon
icon:
Filename: mutcicon.shp
mwmn:
Defaults:
Filename: mwmn.shp
Inherits: ^BasicInfantry
Inherits@attack: ^BasicInfantryAttack
icon: mutcicon
icon:
Filename: mutcicon.shp
mutant3:
Defaults:
Filename: mutant3.shp
Inherits: ^BasicInfantry
Inherits@attack: ^BasicInfantryAttack
icon: mutcicon
icon:
Filename: mutcicon.shp
tratos:
Defaults:
Filename: tratos.shp
Inherits: ^BasicInfantry
icon: mutcicon
icon:
Filename: mutcicon.shp
oxanna:
Defaults:
Filename: oxanna.shp
Inherits: ^BasicInfantry
Inherits@attack: ^BasicInfantryAttack
slav:
Defaults:
Filename: slav.shp
Inherits: ^BasicInfantry
Inherits@attack: ^BasicInfantryAttack
civ1:
Defaults:
Filename: civ1.shp
Inherits: ^BasicInfantry
attack:
Start: 164
@@ -175,6 +221,8 @@ civ1:
ShadowStart: 292
civ2:
Defaults:
Filename: civ2.shp
Inherits: ^BasicInfantry
panic-run:
Start: 86
@@ -186,10 +234,13 @@ civ2:
ShadowStart: 292
civ3:
Defaults:
Filename: civ3.shp
Inherits: civ1
cyborg:
Defaults:
Filename: cyborg.shp
Tick: 80
Offset: 0, 0, 16
stand:
@@ -238,15 +289,18 @@ cyborg:
Length: 6
Facings: 8
IgnoreWorldTint: True
emp-overlay: emp_fx01
emp-overlay:
Filename: emp_fx01.shp
Length: *
ZOffset: 512
BlendMode: Additive
IgnoreWorldTint: True
icon: cybiicon
icon:
Filename: cybiicon.shp
cyc2:
Defaults:
Filename: cyc2.shp
Offset: 0, 0, 16
stand:
Facings: 8
@@ -297,15 +351,18 @@ cyc2:
Facings: 8
ShadowStart: 568
IgnoreWorldTint: True
emp-overlay: emp_fx01
emp-overlay:
Filename: emp_fx01.shp
Length: *
ZOffset: 512
BlendMode: Additive
IgnoreWorldTint: True
icon: cybcicon
icon:
Filename: cybcicon.shp
medic:
Defaults:
Filename: medic.shp
Tick: 80
Offset: 0, 0, 16
stand:
@@ -342,7 +399,8 @@ medic:
Start: 149
Length: 15
ShadowStart: 455
die-exploding: s_bang34
die-exploding:
Filename: s_bang34.shp
Length: *
die-crushed:
Start: 159
@@ -359,13 +417,16 @@ medic:
Start: 292
Length: 14
ShadowStart: 599
die-melting: electro
die-melting:
Filename: electro.shp
Frames: 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
Length: *
icon: mediicon
icon:
Filename: mediicon.shp
jumpjet:
Defaults:
Filename: jumpjet.shp
Tick: 80
Offset: 0, 0, 16
stand:
@@ -413,9 +474,11 @@ jumpjet:
Start: 445
Length: 6
ShadowStart: 896
die-splash: h2o_exp2
die-splash:
Filename: h2o_exp2.shp
Length: *
die-exploding: s_bang34
die-exploding:
Filename: s_bang34.shp
Length: *
die-crushed:
Start: 450
@@ -457,13 +520,16 @@ jumpjet:
Length: 2
Facings: 8
ShadowStart: 711
die-melting: electro
die-melting:
Filename: electro.shp
Frames: 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
Length: *
icon: jjeticon
icon:
Filename: jjeticon.shp
weedguy:
Defaults: weed
Defaults:
Filename: weed.shp
Tick: 80
Offset: 0, 0, 16
stand:
@@ -522,7 +588,8 @@ weedguy:
Start: 177
Length: 20
ShadowStart: 379
die-melting: electro
die-melting:
Filename: electro.shp
Frames: 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
Length: *
die-crushed:
@@ -533,6 +600,7 @@ weedguy:
flameguy:
Defaults:
Filename: flameguy.shp
Facings: 8
Tick: 80
ShadowStart: 148

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,5 @@
^tibtree:
Defaults:
UseTilesetExtension: true
Offset: 0, -12, 12
idle:
ShadowStart: 11
@@ -11,29 +10,43 @@
Tick: 160
tibtre01:
Defaults:
TilesetFilenames:
TEMPERATE: tibtre01.tem
SNOW: tibtre01.sno
Inherits: ^tibtree
tibtre02:
Defaults:
TilesetFilenames:
TEMPERATE: tibtre02.tem
SNOW: tibtre02.sno
Inherits: ^tibtree
tibtre03:
Defaults:
TilesetFilenames:
TEMPERATE: tibtre03.tem
SNOW: tibtre03.sno
Inherits: ^tibtree
bigblue:
Defaults:
Offset: 0, 0, 12
idle: bigblue2
idle:
Filename: bigblue2.shp
ShadowStart: 10
active: bigblue2
active:
Filename: bigblue2.shp
Start: 1
Length: 9
ShadowStart: 11
Tick: 160
bigblue3:
Defaults: bigblue3.tem
Defaults:
Filename: bigblue3.tem
Offset: 0, -12, 12
AddExtension: false
idle:
ShadowStart: 10
active:
@@ -45,152 +58,267 @@ bigblue3:
^tree:
idle:
ShadowStart: 1
UseTilesetExtension: true
Offset: 0, -12, 12
tree01:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree01.tem
SNOW: tree01.sno
tree02:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree02.tem
SNOW: tree02.sno
tree03:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree03.tem
SNOW: tree03.sno
tree04:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree04.tem
SNOW: tree04.sno
tree05:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree05.tem
SNOW: tree05.sno
tree06:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree06.tem
SNOW: tree06.sno
tree07:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree07.tem
SNOW: tree07.sno
tree08:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree08.tem
SNOW: tree08.sno
tree09:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree09.tem
SNOW: tree09.sno
tree10:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree10.tem
SNOW: tree10.sno
tree11:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree11.tem
SNOW: tree11.sno
tree12:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree12.tem
SNOW: tree12.sno
tree13:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree13.tem
SNOW: tree13.sno
tree14:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree14.tem
SNOW: tree14.sno
tree15:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree15.tem
SNOW: tree15.sno
tree16:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree16.tem
SNOW: tree16.sno
tree17:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree17.tem
SNOW: tree17.sno
tree18:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree18.tem
SNOW: tree18.sno
tree19:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree19.tem
SNOW: tree19.sno
tree20:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree20.tem
SNOW: tree20.sno
tree21:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree21.tem
SNOW: tree21.sno
tree22:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree22.tem
SNOW: tree22.sno
tree23:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree23.tem
SNOW: tree23.sno
tree24:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree24.tem
SNOW: tree24.sno
tree25:
Inherits: ^tree
idle:
TilesetFilenames:
TEMPERATE: tree25.tem
SNOW: tree25.sno
^fona:
Inherits: ^tree
idle:
AddExtension: false
fona01:
Inherits: ^fona
Defaults: fona01.tem
idle:
Filename: fona01.tem
fona02:
Inherits: ^fona
Defaults: fona02.tem
idle:
Filename: fona02.tem
fona03:
Inherits: ^fona
Defaults: fona03.tem
idle:
Filename: fona03.tem
fona04:
Inherits: ^fona
Defaults: fona04.tem
idle:
Filename: fona04.tem
fona05:
Inherits: ^fona
Defaults: fona05.tem
idle:
Filename: fona05.tem
fona06:
Inherits: ^fona
Defaults: fona06.tem
idle:
Filename: fona06.tem
fona07:
Inherits: ^fona
Defaults: fona07.tem
idle:
Filename: fona07.tem
fona08:
Inherits: ^fona
Defaults: fona08.tem
idle:
Filename: fona08.tem
fona09:
Inherits: ^fona
Defaults: fona09.tem
idle:
Filename: fona09.tem
fona10:
Inherits: ^fona
Defaults: fona10.tem
idle:
Filename: fona10.tem
fona11:
Inherits: ^fona
Defaults: fona11.tem
idle:
Filename: fona11.tem
fona12:
Inherits: ^fona
Defaults: fona12.tem
idle:
Filename: fona12.tem
fona13:
Inherits: ^fona
Defaults: fona13.tem
idle:
Filename: fona13.tem
fona14:
Inherits: ^fona
Defaults: fona14.tem
idle:
Filename: fona14.tem
fona15:
Inherits: ^fona
Defaults: fona15.tem
idle:
Filename: fona15.tem
veinhole:
idle:
TilesetFilenames:
TEMPERATE: veinhole.tem
SNOW: veinhole.sno
ShadowStart: 1
UseTilesetExtension: true
Offset: 0, -36, 1
ZRamp: 1

View File

@@ -1,5 +1,6 @@
^VehicleOverlays:
emp-overlay: emp_fx01
emp-overlay:
Filename: emp_fx01.shp
Offset: 0, 0, 24
Length: *
BlendMode: Additive
@@ -7,118 +8,149 @@
mcv.gdi:
Inherits: ^VehicleOverlays
icon: sidebar-gdi|mcvicon
icon:
Filename: sidebar-gdi|mcvicon.shp
mcv.nod:
Inherits: ^VehicleOverlays
icon: sidebar-nod|mcvicon
icon:
Filename: sidebar-nod|mcvicon.shp
apc:
Inherits: ^VehicleOverlays
icon: apcicon
icon:
Filename: apcicon.shp
harv.gdi:
Inherits: ^VehicleOverlays
harvest: harvestr
harvest:
Filename: harvestr.shp
Length: *
ZRamp: 1
Offset: 0, 0, 1
icon: sidebar-gdi|harvicon
icon:
Filename: sidebar-gdi|harvicon.shp
harv.nod:
Inherits: ^VehicleOverlays
harvest: harvestr
harvest:
Filename: harvestr.shp
Length: *
ZRamp: 1
Offset: 0, 0, 1
icon: sidebar-nod|harvicon
icon:
Filename: sidebar-nod|harvicon.shp
hvr:
Inherits: ^VehicleOverlays
icon: hovricon
icon:
Filename: hovricon.shp
4tnk:
Inherits: ^VehicleOverlays
muzzle: gunfire
muzzle:
Filename: gunfire.shp
Length: *
IgnoreWorldTint: True
lpst.gdi:
Inherits: ^VehicleOverlays
idle: gadpsa
idle:
TilesetFilenames:
TEMPERATE: gtdpsa.shp
SNOW: gadpsa.shp
DepthSprite: isodepth.shp
DepthSpriteOffset: -6, -6
Offset: 0, -13, 12
UseTilesetCode: true
ShadowStart: 3
make: gadpsamk
make:
TilesetFilenames:
TEMPERATE: gtdpsamk.shp
SNOW: gadpsamk.shp
DepthSprite: isodepth.shp
DepthSpriteOffset: -6, -6
Offset: 0, -13, 12
UseTilesetCode: true
Length: 36
ShadowStart: 36
idle-lights: gadpsa_a
idle-lights:
TilesetFilenames:
TEMPERATE: gtdpsa_a.shp
SNOW: gadpsa_a.shp
DepthSprite: isodepth.shp
DepthSpriteOffset: -6, -6
Offset: 0, -13, 12
UseTilesetCode: true
Length: 10
Tick: 200
idle-lights-bright: gadpsa_a
idle-lights-bright:
TilesetFilenames:
TEMPERATE: gtdpsa_a.shp
SNOW: gadpsa_a.shp
DepthSprite: isodepth.shp
DepthSpriteOffset: -6, -6
Offset: 0, -13, 12
UseTilesetCode: true
Length: 10
Tick: 200
IgnoreWorldTint: True
icon: sidebar-gdi|lpsticon
icon:
Filename: sidebar-gdi|lpsticon.shp
lpst.nod:
Inherits: lpst.gdi
icon: sidebar-nod|lpsticon
icon:
Filename: sidebar-nod|lpsticon.shp
repair:
Inherits: ^VehicleOverlays
icon: rboticon
icon:
Filename: rboticon.shp
art2:
Inherits: ^VehicleOverlays
icon: artyicon
idle: gaarty
icon:
Filename: artyicon.shp
idle:
TilesetFilenames:
TEMPERATE: gtarty.shp
SNOW: gaarty.shp
ShadowStart: 3
Offset: 0, -12, 12
UseTilesetCode: true
DepthSprite: isodepth.shp
damaged-idle: gaarty
damaged-idle:
TilesetFilenames:
TEMPERATE: gtarty.shp
SNOW: gaarty.shp
Start: 1
ShadowStart: 4
Offset: 0, -12, 12
UseTilesetCode: true
DepthSprite: isodepth.shp
make: gaartymk
make:
TilesetFilenames:
TEMPERATE: gtartymk.shp
SNOW: gaartymk.shp
Length: 16
ShadowStart: 16
Offset: 0, -12, 12
UseTilesetCode: true
DepthSprite: isodepth.shp
muzzle: gunfire
muzzle:
Filename: gunfire.shp
Length: *
Offset: 0, 0, 24
IgnoreWorldTint: True
weed:
Inherits: ^VehicleOverlays
icon: weedicon
icon:
Filename: weedicon.shp
hmec:
Inherits: ^VehicleOverlays
icon: hmecicon
icon:
Filename: hmecicon.shp
bike:
Inherits: ^VehicleOverlays
icon: cyclicon
icon:
Filename: cyclicon.shp
bggy:
Inherits: ^VehicleOverlays
@@ -126,64 +158,84 @@ bggy:
Offset: 0, 0, 24
muzzle:
Combine:
mgun-n:
0:
Filename: mgun-n.shp
Length: 6
mgun-nw:
1:
Filename: mgun-nw.shp
Length: 6
mgun-w:
2:
Filename: mgun-w.shp
Length: 6
mgun-sw:
3:
Filename: mgun-sw.shp
Length: 6
mgun-s:
4:
Filename: mgun-s.shp
Length: 6
mgun-se:
5:
Filename: mgun-se.shp
Length: 6
mgun-e:
6:
Filename: mgun-e.shp
Length: 6
mgun-ne:
7:
Filename: mgun-ne.shp
Length: 6
Facings: 8
Length: 6
IgnoreWorldTint: True
icon: bggyicon
icon:
Filename: bggyicon.shp
Offset: 0, 0
sapc:
Inherits: ^VehicleOverlays
icon: sapcicon
icon:
Filename: sapcicon.shp
subtank:
Inherits: ^VehicleOverlays
icon: subticon
icon:
Filename: subticon.shp
sonic:
Inherits: ^VehicleOverlays
icon: soniicon
icon:
Filename: soniicon.shp
ttnk:
Inherits: ^VehicleOverlays
idle: gatick
idle:
Filename: gatick.shp
ShadowStart: 3
Offset: 0, -14, 14
damaged-idle: gatick
damaged-idle:
Filename: gatick.shp
Start: 1
ShadowStart: 4
Offset: 0, -14, 14
make: gatickmk
make:
Filename: gatickmk.shp
Length: 24
ShadowStart: 24
Offset: 0, -14, 14
muzzle: gunfire
muzzle:
Filename: gunfire.shp
Length: *
Offset: 0, 0, 24
IgnoreWorldTint: True
icon: tickicon
icon:
Filename: tickicon.shp
stnk:
Inherits: ^VehicleOverlays
icon: stnkicon
icon:
Filename: stnkicon.shp
mmch:
Defaults:
Filename: mmch.shp
Inherits: ^VehicleOverlays
stand:
Facings: -8
@@ -200,41 +252,51 @@ mmch:
Start: 120
Facings: -32
Offset: 0, 0, 12
muzzle: gunfire
muzzle:
Filename: gunfire.shp
Length: *
Offset: 0, 0, 12
IgnoreWorldTint: True
icon: mmchicon
icon:
Filename: mmchicon.shp
jugg:
Inherits: ^VehicleOverlays
icon: juggicon
stand: jugger
icon:
Filename: juggicon.shp
stand:
Filename: jugger.shp
Facings: -8
Stride: 15
ShadowStart: 120
Offset: 0, 0, 12
walk: jugger
walk:
Filename: jugger.shp
Length: 15
Facings: -8
ShadowStart: 120
Offset: 0, 0, 12
Tick: 60
turret: djugg_a
turret:
Filename: djugg_a.shp
Facings: 32
Offset: -4, 0, 12
idle: djugg
idle:
Filename: djugg.shp
ShadowStart: 3
Offset: 0, -12, 12
damaged-idle: djugg
damaged-idle:
Filename: djugg.shp
Start: 1
ShadowStart: 4
Offset: 0, -12, 12
make: djuggmk
make:
Filename: djuggmk.shp
Length: 18
ShadowStart: 18
Offset: 0, -12, 12
muzzle: gunfire
muzzle:
Filename: gunfire.shp
Length: *
Offset: 0, 0, 24
IgnoreWorldTint: True
@@ -242,6 +304,7 @@ jugg:
gghunt:
Inherits: ^VehicleOverlays
idle:
Filename: gghunt.shp
Facings: 1
Length: 8
ShadowStart: 8
@@ -249,6 +312,7 @@ gghunt:
smech:
Inherits: ^VehicleOverlays
Defaults:
Filename: smech.shp
Offset: 0,0,8
stand:
Start: 96
@@ -271,7 +335,8 @@ smech:
Facings: -8
Tick: 80
IgnoreWorldTint: True
icon: smchicon
icon:
Filename: smchicon.shp
trucka:
Inherits: ^VehicleOverlays