private static Dictionary <TEX0.DictPlttData> GetDictPlttData(Imd imd) { var dict = new Dictionary <TEX0.DictPlttData>(); foreach (var plt in imd.Body.TexPaletteArray.TexPalettes) { var data = new TEX0.DictPlttData { Data = plt.Bytes }; dict.Add(plt.Name.Length > 16 ? plt.Name.Substring(0, 16) : plt.Name, data); } return(dict); }
private static Dictionary <TEX0.DictPlttData> GetDictPlttData(List <Texture.Texture> textures) { var dict = new Dictionary <TEX0.DictPlttData>(); foreach (var tex in textures) { var data = new TEX0.DictPlttData { Data = tex.RawPalette }; dict.Add(tex.PaletteName.Length > 16 ? tex.PaletteName.Substring(0, 16) : tex.PaletteName, data); } return(dict); }
private void LoadTex() { try { TEX0 tt; if (mod.TexPlttSet != null) { tt = mod.TexPlttSet; } else if (tex != null) { tt = tex.TexPlttSet; } else { return; } for (int i = 0; i < mod.ModelSet.models.Length; i++) { for (int j = 0; j < mod.ModelSet.models[i].materials.materials.Length; j++) { TEX0.DictTexData t = null; for (int k = 0; k < mod.ModelSet.models[i].materials.dictTexToMatList.numEntry; k++) { if (mod.ModelSet.models[i].materials.dictTexToMatList[k].Value.Materials.Contains((byte)j)) { int texid = k; for (int l = 0; l < tt.dictTex.numEntry; l++) { if (tt.dictTex[l].Key == mod.ModelSet.models[i].materials.dictTexToMatList[k].Key) { texid = l; break; } } t = tt.dictTex[texid].Value; break; } } if (t == null) { continue; } mod.ModelSet.models[i].materials.materials[j].Fmt = t.Fmt; mod.ModelSet.models[i].materials.materials[j].origHeight = t.T; mod.ModelSet.models[i].materials.materials[j].origWidth = t.S; TEX0.DictPlttData p = null; if (t.Fmt != Textures.ImageFormat.DIRECT) { for (int k = 0; k < mod.ModelSet.models[i].materials.dictPlttToMatList.numEntry; k++) { if (mod.ModelSet.models[i].materials.dictPlttToMatList[k].Value.Materials.Contains((byte)j)) { int palid = k; for (int l = 0; l < tt.dictPltt.numEntry; l++) { if (tt.dictPltt[l].Key == mod.ModelSet.models[i].materials.dictPlttToMatList[k].Key) { palid = l; break; } } p = tt.dictPltt[palid].Value; break; } } } UploadTex(t.ToBitmap(p), mod.ModelSet.models[i].materials.materials[j], j + 1); //+ offset); } } } catch { } }