public static M2Array<short> GenerateTexReplaceLookup(M2Array<M2Texture> textures) { var lookup = new M2Array<short>(); if (textures.Count == 0) return lookup; var maxId = (short) textures.Max(x => x.Type); for (short i = 0; i <= maxId; i++) lookup.Add(-1); for (short i = 0; i < textures.Count; i++) { var id = (short) textures[i].Type; if (lookup[id] == -1) lookup[id] = i; } return lookup; }
public static M2Array<short> GenerateLookup(M2Array<M2Attachment> attachments) { var lookup = new M2Array<short>(); if (attachments.Count == 0) return lookup; var maxId = attachments.Max(x => x.Id); for (short i = 0; i <= maxId; i++) lookup.Add(-1); for (short i = 0; i < attachments.Count; i++) { var id = (short) attachments[i].Id; if (lookup[id] == -1) lookup[id] = i; } return lookup; }
public static M2Array<short> GenerateKeyBoneLookup(M2Array<M2Bone> bones) { var lookup = new M2Array<short>(); var maxId = (int) bones.Max(x => x.KeyBoneId); for (short i = 0; i < maxId + 1; i++) lookup.Add(-1); for (short i = 0; i < bones.Count; i++) { var id = (int) bones[i].KeyBoneId; if (id >= 0 && lookup[id] == -1) lookup[id] = i; } return lookup; }