public void Clear() { this.amb_header = (AppMain.AMS_AMB_HEADER)null; this.tex_buf = (AppMain.NNS_TEXFILELIST)null; this.texlistbuf = (object)null; this.texlist = (AppMain.NNS_TEXLIST)null; this.texId = this.regId = this.drawFlag = 0; }
public static int amTextureLoad( AppMain.NNS_TEXLIST texlist, AppMain.NNS_TEXFILELIST texfilelist, string filepath) { AppMain.mppAssertNotImpl(); return(AppMain.amTextureLoad(texlist, texfilelist, filepath, (AppMain.AMS_AMB_HEADER)null)); }
// Token: 0x06000CF5 RID: 3317 RVA: 0x00074804 File Offset: 0x00072A04 public static void AoTexLoad(AppMain.AOS_TEXTURE tex) { if (tex == null || tex.txb == null || tex.amb == null || tex.reg_id >= 0) { return; } uint num = AppMain.amTxbGetCount(tex.txb); AppMain.nnSetUpTexlist(out tex.texlist, ( int )num, ref tex.texlist_buf); AppMain.NNS_TEXFILELIST texfilelist = AppMain.amTxbGetTexFileList(tex.txb); tex.reg_id = AppMain.amTextureLoad(tex.texlist, texfilelist, null, tex.amb); }
// Token: 0x06001FB7 RID: 8119 RVA: 0x0013D0FC File Offset: 0x0013B2FC public static AppMain.NNS_TEXFILELIST Read(BinaryReader reader, long data0Pos) { AppMain.NNS_TEXFILELIST nns_TEXFILELIST = new AppMain.NNS_TEXFILELIST(); nns_TEXFILELIST.nTex = reader.ReadInt32(); nns_TEXFILELIST.pTexFileList = new AppMain.NNS_TEXFILE[nns_TEXFILELIST.nTex]; uint num = reader.ReadUInt32(); reader.BaseStream.Seek(data0Pos + ( long )(( ulong )num), 0); for (int i = 0; i < nns_TEXFILELIST.nTex; i++) { nns_TEXFILELIST.pTexFileList[i] = AppMain.NNS_TEXFILE.Read(reader, data0Pos); } return(nns_TEXFILELIST); }
public static AppMain.NNS_TEXFILELIST Read(BinaryReader reader, long data0Pos) { AppMain.NNS_TEXFILELIST nnsTexfilelist = new AppMain.NNS_TEXFILELIST() { nTex = reader.ReadInt32() }; nnsTexfilelist.pTexFileList = new AppMain.NNS_TEXFILE[nnsTexfilelist.nTex]; uint num = reader.ReadUInt32(); reader.BaseStream.Seek(data0Pos + (long)num, SeekOrigin.Begin); for (int index = 0; index < nnsTexfilelist.nTex; ++index) { nnsTexfilelist.pTexFileList[index] = AppMain.NNS_TEXFILE.Read(reader, data0Pos); } return(nnsTexfilelist); }
// Token: 0x06001148 RID: 4424 RVA: 0x000974D0 File Offset: 0x000956D0 private static int amObjectLoad(out AppMain.NNS_OBJECT _object, AppMain.NNS_TEXFILELIST txbfilelist, out AppMain.NNS_TEXLIST texlist, out object texlistbuf, object buf, uint drawflag, string filepath, AMS_AMB_HEADER amb) { AppMain.NNS_OBJECT obj_file; AppMain.NNS_TEXFILELIST nns_TEXFILELIST; AppMain.amObjectSetup(out obj_file, out nns_TEXFILELIST, buf); int nTex = txbfilelist.nTex; texlistbuf = null; AppMain.nnSetUpTexlist(out texlist, nTex, ref texlistbuf); int result = AppMain.amObjectLoad(out _object, obj_file, drawflag); if (filepath != null || amb != null) { result = AppMain.amTextureLoad(texlist, txbfilelist, filepath, amb); } return(result); }
// Token: 0x06001860 RID: 6240 RVA: 0x000DB6A8 File Offset: 0x000D98A8 public static int amTextureLoad(AppMain.NNS_TEXLIST texlist, AppMain.NNS_TEXFILELIST texfilelist, string filepath, AppMain.AMS_AMB_HEADER amb) { int result = 0; AppMain.ArrayPointer <AppMain.NNS_TEXINFO> pointer = new AppMain.ArrayPointer <AppMain.NNS_TEXINFO>(texlist.pTexInfoList); AppMain.ArrayPointer <AppMain.NNS_TEXFILE> pointer2 = new AppMain.ArrayPointer <AppMain.NNS_TEXFILE>(texfilelist.pTexFileList); int i = texfilelist.nTex; while (i > 0) { if (amb == null) { result = AppMain.amTextureLoad(pointer, pointer2, filepath, null, 0); } else { string text = (~pointer2).Filename; int num = text.LastIndexOf(".pvr", StringComparison.OrdinalIgnoreCase); if (num > 0) { text = text.Remove(num); text += ".PNG"; } num = Array.IndexOf <string>(amb.files, text); Texture2D texture2D; if (amb.buf[num] != null) { texture2D = ( Texture2D )amb.buf[num]; } else { using (MemoryStream memoryStream = new MemoryStream(amb.data, amb.offsets[num], amb.data.Length - amb.offsets[num])) { texture2D = Texture2D.FromStream(AppMain.m_game.GraphicsDevice, memoryStream); amb.buf[num] = texture2D; } } result = AppMain.amTextureLoad(pointer, pointer2, filepath, texture2D, 0); } i--; pointer = ++pointer; pointer2 = ++pointer2; } return(result); }
// Token: 0x06001145 RID: 4421 RVA: 0x000972F4 File Offset: 0x000954F4 public static void amObjectSetup(out AppMain.NNS_OBJECT _object, out AppMain.NNS_TEXFILELIST texfilelist, object _buf) { _object = null; texfilelist = null; AmbChunk ambChunk = (AmbChunk)_buf; using (MemoryStream memoryStream = new MemoryStream(ambChunk.array, ambChunk.offset, ambChunk.array.Length - ambChunk.offset)) { BinaryReader binaryReader = new BinaryReader(memoryStream); AppMain.NNS_BINCNK_FILEHEADER nns_BINCNK_FILEHEADER = AppMain.NNS_BINCNK_FILEHEADER.Read(binaryReader); long num; binaryReader.BaseStream.Seek(num = (long)nns_BINCNK_FILEHEADER.OfsData, 0); AppMain.NNS_BINCNK_DATAHEADER nns_BINCNK_DATAHEADER = AppMain.NNS_BINCNK_DATAHEADER.Read(binaryReader); long num2 = num; binaryReader.BaseStream.Seek((long)nns_BINCNK_FILEHEADER.OfsNOF0, 0); AppMain.NNS_BINCNK_NOF0HEADER.Read(binaryReader); int i = nns_BINCNK_FILEHEADER.nChunk; while (i > 0) { uint id = nns_BINCNK_DATAHEADER.Id; // NIOB/NZOB (little endian) if (id != 0x424F494E && id != 0x424F5A4E) { if (id == 1145980238U) { break; } if (id == 1280592206U || id == 0x4C545A4e) { binaryReader.BaseStream.Seek(num2 + (long)nns_BINCNK_DATAHEADER.OfsMainData, 0); texfilelist = AppMain.NNS_TEXFILELIST.Read(binaryReader, num2); } } else { binaryReader.BaseStream.Seek(num2 + (long)nns_BINCNK_DATAHEADER.OfsMainData, 0); _object = AppMain.NNS_OBJECT.Read(binaryReader, num2); } i--; binaryReader.BaseStream.Seek(num += (long)(8 + nns_BINCNK_DATAHEADER.OfsNextId), 0); nns_BINCNK_DATAHEADER = AppMain.NNS_BINCNK_DATAHEADER.Read(binaryReader); } } }
public static void amObjectSetup( out AppMain.NNS_OBJECT _object, out AppMain.NNS_TEXFILELIST texfilelist, object _buf) { _object = (AppMain.NNS_OBJECT)null; texfilelist = (AppMain.NNS_TEXFILELIST)null; AppMain.AmbChunk ambChunk = (AppMain.AmbChunk)_buf; using (MemoryStream memoryStream = new MemoryStream(ambChunk.array, ambChunk.offset, ambChunk.array.Length - ambChunk.offset)) { BinaryReader reader = new BinaryReader((Stream)memoryStream); AppMain.NNS_BINCNK_FILEHEADER bincnkFileheader = AppMain.NNS_BINCNK_FILEHEADER.Read(reader); long ofsData; reader.BaseStream.Seek(ofsData = (long)bincnkFileheader.OfsData, SeekOrigin.Begin); AppMain.NNS_BINCNK_DATAHEADER bincnkDataheader = AppMain.NNS_BINCNK_DATAHEADER.Read(reader); long data0Pos = ofsData; reader.BaseStream.Seek((long)bincnkFileheader.OfsNOF0, SeekOrigin.Begin); AppMain.NNS_BINCNK_NOF0HEADER.Read(reader); int nChunk = bincnkFileheader.nChunk; while (nChunk > 0) { switch (bincnkDataheader.Id) { case 1112492366: reader.BaseStream.Seek(data0Pos + (long)bincnkDataheader.OfsMainData, SeekOrigin.Begin); _object = AppMain.NNS_OBJECT.Read(reader, data0Pos); break; case 1145980238: return; case 1280592206: reader.BaseStream.Seek(data0Pos + (long)bincnkDataheader.OfsMainData, SeekOrigin.Begin); texfilelist = AppMain.NNS_TEXFILELIST.Read(reader, data0Pos); break; } --nChunk; reader.BaseStream.Seek(ofsData += (long)(8 + bincnkDataheader.OfsNextId), SeekOrigin.Begin); bincnkDataheader = AppMain.NNS_BINCNK_DATAHEADER.Read(reader); } } }
private static int amObjectLoad( out AppMain.NNS_OBJECT _object, AppMain.NNS_TEXFILELIST txbfilelist, out AppMain.NNS_TEXLIST texlist, out object texlistbuf, object buf, uint drawflag, string filepath, AppMain.AMS_AMB_HEADER amb) { AppMain.NNS_OBJECT _object1; AppMain.amObjectSetup(out _object1, out AppMain.NNS_TEXFILELIST _, buf); int nTex = txbfilelist.nTex; texlistbuf = (object)null; AppMain.nnSetUpTexlist(out texlist, nTex, ref texlistbuf); int num = AppMain.amObjectLoad(out _object, _object1, drawflag); if (filepath != null || amb != null) { num = AppMain.amTextureLoad(texlist, txbfilelist, filepath, amb); } return(num); }
// Token: 0x06001860 RID: 6240 RVA: 0x000DB6A8 File Offset: 0x000D98A8 public static int amTextureLoad(AppMain.NNS_TEXLIST texlist, AppMain.NNS_TEXFILELIST texfilelist, string filepath, AMS_AMB_HEADER amb) { int result = 0; AppMain.ArrayPointer <AppMain.NNS_TEXINFO> pointer = new AppMain.ArrayPointer <AppMain.NNS_TEXINFO>(texlist.pTexInfoList); AppMain.ArrayPointer <AppMain.NNS_TEXFILE> pointer2 = new AppMain.ArrayPointer <AppMain.NNS_TEXFILE>(texfilelist.pTexFileList); int i = texfilelist.nTex; while (i > 0) { if (amb == null) { result = AppMain.amTextureLoad(pointer, pointer2, filepath, null, 0); } else { string fileName = (~pointer2).Filename; fileName = Path.ChangeExtension(fileName, "PNG"); var num = Math.Max(Array.IndexOf(amb.files, fileName), Array.IndexOf(amb.files, (~pointer2).Filename)); Texture2D texture2D = null; if (amb.buf.ElementAtOrDefault(num) != null) { texture2D = (Texture2D)amb.buf[num]; } else { var dir = Path.Combine(Directory.GetCurrentDirectory(), "ExternalTextures"); var path = Path.Combine(dir, fileName); if (File.Exists(path)) { using (var file = File.OpenRead(path)) { texture2D = Texture2D.FromStream(AppMain.m_game.GraphicsDevice, file); amb.buf[num] = texture2D; } } else { using (var memoryStream = new MemoryStream(amb.data, amb.offsets[num], amb.data.Length - amb.offsets[num])) { if (Directory.Exists(dir)) { using (var file = File.Create(path)) { memoryStream.CopyTo(file); memoryStream.Seek(0, SeekOrigin.Begin); } } texture2D = Texture2D.FromStream(AppMain.m_game.GraphicsDevice, memoryStream); amb.buf[num] = texture2D; } } } result = AppMain.amTextureLoad(pointer, pointer2, filepath, texture2D, 0); } i--; pointer = ++pointer; pointer2 = ++pointer2; } return(result); }
public static int amTextureLoad( AppMain.NNS_TEXLIST texlist, AppMain.NNS_TEXFILELIST texfilelist, string filepath, AppMain.AMS_AMB_HEADER amb) { int num = 0; AppMain.ArrayPointer <AppMain.NNS_TEXINFO> arrayPointer1 = new AppMain.ArrayPointer <AppMain.NNS_TEXINFO>(texlist.pTexInfoList); AppMain.ArrayPointer <AppMain.NNS_TEXFILE> arrayPointer2 = new AppMain.ArrayPointer <AppMain.NNS_TEXFILE>(texfilelist.pTexFileList); int nTex = texfilelist.nTex; while (nTex > 0) { if (amb == null) { num = AppMain.amTextureLoad((AppMain.NNS_TEXINFO)arrayPointer1, (AppMain.NNS_TEXFILE)arrayPointer2, filepath, (Texture2D)null, 0); } else { Texture2D texbuf; try { string str = ((AppMain.NNS_TEXFILE) ~arrayPointer2).Filename; int startIndex = str.LastIndexOf(".pvr", StringComparison.OrdinalIgnoreCase); if (startIndex > 0) { str = str.Remove(startIndex) + ".PNG"; } int index = Array.IndexOf <string>(amb.files, str); if (amb.buf[index] != null) { texbuf = (Texture2D)amb.buf[index]; } else { using (MemoryStream memoryStream = new MemoryStream(amb.data, amb.offsets[index], amb.data.Length - amb.offsets[index])) { texbuf = Texture2D.FromStream(AppMain.m_game.GraphicsDevice, (Stream)memoryStream); amb.buf[index] = (object)texbuf; } } } catch (Exception) { string str = ((AppMain.NNS_TEXFILE) ~arrayPointer2).Filename; int index = Array.IndexOf <string>(amb.files, str); using (var stream = File.OpenRead("Content/dummy.png")) { texbuf = Texture2D.FromStream(AppMain.m_game.GraphicsDevice, (Stream)stream); amb.buf[index] = (object)texbuf; } } num = AppMain.amTextureLoad((AppMain.NNS_TEXINFO)arrayPointer1, (AppMain.NNS_TEXFILE)arrayPointer2, filepath, texbuf, 0); } --nTex; ++arrayPointer1; ++arrayPointer2; } return(num); }