initial commit
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
|
||||
namespace Qoo.File
|
||||
{
|
||||
// Token: 0x02000013 RID: 19
|
||||
public class FileId
|
||||
{
|
||||
// Token: 0x06000056 RID: 86 RVA: 0x00003318 File Offset: 0x00001518
|
||||
public FileId(string name = "")
|
||||
{
|
||||
this.Set(name);
|
||||
}
|
||||
|
||||
// Token: 0x17000012 RID: 18
|
||||
// (get) Token: 0x06000057 RID: 87 RVA: 0x00003328 File Offset: 0x00001528
|
||||
// (set) Token: 0x06000058 RID: 88 RVA: 0x00003330 File Offset: 0x00001530
|
||||
public string Name { get; private set; }
|
||||
|
||||
// Token: 0x06000059 RID: 89 RVA: 0x0000333C File Offset: 0x0000153C
|
||||
public static string Normalize(string name)
|
||||
{
|
||||
int num = name.IndexOf('.');
|
||||
if (num >= 0)
|
||||
{
|
||||
name = name.Substring(0, num);
|
||||
}
|
||||
return name.ToLower();
|
||||
}
|
||||
|
||||
// Token: 0x0600005A RID: 90 RVA: 0x0000336C File Offset: 0x0000156C
|
||||
public bool Set(string name)
|
||||
{
|
||||
this.Name = FileId.Normalize(name);
|
||||
return this.Name.Length > 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
using System;
|
||||
|
||||
namespace Qoo.File
|
||||
{
|
||||
// Token: 0x02000016 RID: 22
|
||||
public struct NMB_BTREEITEM
|
||||
{
|
||||
// Token: 0x040000DB RID: 219
|
||||
public uint nKey;
|
||||
|
||||
// Token: 0x040000DC RID: 220
|
||||
public int nIndex;
|
||||
|
||||
// Token: 0x040000DD RID: 221
|
||||
public int nL;
|
||||
|
||||
// Token: 0x040000DE RID: 222
|
||||
public int nR;
|
||||
|
||||
// Token: 0x040000DF RID: 223
|
||||
public int nE;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
|
||||
namespace Qoo.File
|
||||
{
|
||||
// Token: 0x02000014 RID: 20
|
||||
public struct NMB_FILEHEADER
|
||||
{
|
||||
// Token: 0x040000CF RID: 207
|
||||
public uint FourCC;
|
||||
|
||||
// Token: 0x040000D0 RID: 208
|
||||
public int nItemNum;
|
||||
|
||||
// Token: 0x040000D1 RID: 209
|
||||
public int nSearchTop;
|
||||
|
||||
// Token: 0x040000D2 RID: 210
|
||||
public int nStrSize;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
using System;
|
||||
|
||||
namespace Qoo.File
|
||||
{
|
||||
// Token: 0x02000015 RID: 21
|
||||
public class NMB_FILEINFO
|
||||
{
|
||||
// Token: 0x040000D3 RID: 211
|
||||
public string StrName;
|
||||
|
||||
// Token: 0x040000D4 RID: 212
|
||||
public string DirName;
|
||||
|
||||
// Token: 0x040000D5 RID: 213
|
||||
public string FileName;
|
||||
|
||||
// Token: 0x040000D6 RID: 214
|
||||
public int nStrName;
|
||||
|
||||
// Token: 0x040000D7 RID: 215
|
||||
public int nStrDir;
|
||||
|
||||
// Token: 0x040000D8 RID: 216
|
||||
public int nStrFile;
|
||||
|
||||
// Token: 0x040000D9 RID: 217
|
||||
public uint nCRC;
|
||||
|
||||
// Token: 0x040000DA RID: 218
|
||||
public uint nSUM;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Qoo.File
|
||||
{
|
||||
// Token: 0x02000018 RID: 24
|
||||
public static class Nmb
|
||||
{
|
||||
// Token: 0x06000066 RID: 102 RVA: 0x0000374C File Offset: 0x0000194C
|
||||
public static bool Add(byte[] data_)
|
||||
{
|
||||
NmbFile nmbFile = new NmbFile();
|
||||
bool flag = nmbFile.Create(data_, Nmb.m_NmbFile.Count);
|
||||
if (flag)
|
||||
{
|
||||
Nmb.m_NmbFile.Add(nmbFile);
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x06000067 RID: 103 RVA: 0x00003784 File Offset: 0x00001984
|
||||
public static bool Clear()
|
||||
{
|
||||
foreach (NmbFile nmbFile in Nmb.m_NmbFile)
|
||||
{
|
||||
if (nmbFile != null)
|
||||
{
|
||||
nmbFile.Release();
|
||||
}
|
||||
}
|
||||
Nmb.m_NmbFile.Clear();
|
||||
return true;
|
||||
}
|
||||
|
||||
// Token: 0x06000068 RID: 104 RVA: 0x000037FC File Offset: 0x000019FC
|
||||
public static int GetFileNum()
|
||||
{
|
||||
int num = 0;
|
||||
foreach (NmbFile nmbFile in Nmb.m_NmbFile)
|
||||
{
|
||||
num += nmbFile.GetFileNum();
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x06000069 RID: 105 RVA: 0x00003868 File Offset: 0x00001A68
|
||||
public static NMB_FILEINFO GetFileInfo(int nFileNo)
|
||||
{
|
||||
int num = nFileNo;
|
||||
foreach (NmbFile nmbFile in Nmb.m_NmbFile)
|
||||
{
|
||||
if (num < nmbFile.GetFileNum())
|
||||
{
|
||||
return nmbFile.GetFileInfo(num);
|
||||
}
|
||||
num -= nmbFile.GetFileNum();
|
||||
}
|
||||
Debug.Print(string.Format("指定ファイルが見つかりません ({0})", nFileNo));
|
||||
return null;
|
||||
}
|
||||
|
||||
// Token: 0x0600006A RID: 106 RVA: 0x00003904 File Offset: 0x00001B04
|
||||
public static NMB_FILEINFO GetFileInfo(string szName)
|
||||
{
|
||||
NMB_FILEINFO nmb_FILEINFO = null;
|
||||
foreach (NmbFile nmbFile in Nmb.m_NmbFile)
|
||||
{
|
||||
nmb_FILEINFO = nmbFile.GetFileInfo(szName);
|
||||
if (nmb_FILEINFO != null)
|
||||
{
|
||||
return nmb_FILEINFO;
|
||||
}
|
||||
}
|
||||
Debug.Print(string.Format("指定ファイルが見つかりません ({0})", szName));
|
||||
return nmb_FILEINFO;
|
||||
}
|
||||
|
||||
// Token: 0x0600006B RID: 107 RVA: 0x0000398C File Offset: 0x00001B8C
|
||||
public static int GetPackNo(string name)
|
||||
{
|
||||
foreach (NmbFile nmbFile in Nmb.m_NmbFile)
|
||||
{
|
||||
NMB_FILEINFO fileInfo = nmbFile.GetFileInfo(name);
|
||||
if (fileInfo != null)
|
||||
{
|
||||
return nmbFile.No;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Token: 0x0600006C RID: 108 RVA: 0x00003A08 File Offset: 0x00001C08
|
||||
public static int NameToNo(string szName)
|
||||
{
|
||||
int num = 0;
|
||||
foreach (NmbFile nmbFile in Nmb.m_NmbFile)
|
||||
{
|
||||
int num2 = nmbFile.NameToNo(szName);
|
||||
if (num2 >= 0)
|
||||
{
|
||||
return num + num2;
|
||||
}
|
||||
num += nmbFile.GetFileNum();
|
||||
}
|
||||
Debug.Assert(false, string.Format("指定ファイルが見つかりません ({0})", szName));
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Token: 0x040000E6 RID: 230
|
||||
private static List<NmbFile> m_NmbFile = new List<NmbFile>();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Qoo.Memory;
|
||||
|
||||
namespace Qoo.File
|
||||
{
|
||||
// Token: 0x02000017 RID: 23
|
||||
internal class NmbFile
|
||||
{
|
||||
// Token: 0x17000013 RID: 19
|
||||
// (get) Token: 0x0600005D RID: 93 RVA: 0x000033E0 File Offset: 0x000015E0
|
||||
public int No
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_nNo;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600005E RID: 94 RVA: 0x000033E8 File Offset: 0x000015E8
|
||||
public bool Create(byte[] data_, int no)
|
||||
{
|
||||
this.Release();
|
||||
this.m_nNo = no;
|
||||
MemFile memFile = new MemFile(data_);
|
||||
this.m_Header.FourCC = memFile.GetUInt32();
|
||||
this.m_Header.nItemNum = memFile.GetInt32();
|
||||
this.m_Header.nSearchTop = memFile.GetInt32();
|
||||
this.m_Header.nStrSize = memFile.GetInt32();
|
||||
for (int num = 0; num != this.m_Header.nItemNum; num++)
|
||||
{
|
||||
NMB_FILEINFO nmb_FILEINFO = new NMB_FILEINFO();
|
||||
nmb_FILEINFO.nStrName = memFile.GetInt32();
|
||||
nmb_FILEINFO.nStrDir = memFile.GetInt32();
|
||||
nmb_FILEINFO.nStrFile = memFile.GetInt32();
|
||||
nmb_FILEINFO.nCRC = (uint)memFile.GetUInt16();
|
||||
nmb_FILEINFO.nSUM = (uint)memFile.GetUInt16();
|
||||
this.m_FileInfo.Add(nmb_FILEINFO);
|
||||
}
|
||||
for (int num2 = 0; num2 != this.m_Header.nItemNum; num2++)
|
||||
{
|
||||
NMB_BTREEITEM item = default(NMB_BTREEITEM);
|
||||
item.nKey = memFile.GetUInt32();
|
||||
item.nIndex = (int)memFile.GetInt16();
|
||||
item.nL = (int)memFile.GetInt16();
|
||||
item.nR = (int)memFile.GetInt16();
|
||||
item.nE = (int)memFile.GetInt16();
|
||||
this.m_TreeItem.Add(item);
|
||||
}
|
||||
memFile.SetPos(memFile.Length() - this.m_Header.nStrSize);
|
||||
string @string = memFile.GetString(this.m_Header.nStrSize);
|
||||
Func<string, int, string> func = delegate(string str, int pos)
|
||||
{
|
||||
int num4 = str.IndexOf('\0', pos);
|
||||
return str.Substring(pos, num4 - pos);
|
||||
};
|
||||
for (int num3 = 0; num3 != this.m_Header.nItemNum; num3++)
|
||||
{
|
||||
NMB_FILEINFO nmb_FILEINFO2 = this.m_FileInfo[num3];
|
||||
nmb_FILEINFO2.StrName = func(@string, nmb_FILEINFO2.nStrName).ToLower();
|
||||
nmb_FILEINFO2.DirName = func(@string, nmb_FILEINFO2.nStrDir).ToLower();
|
||||
nmb_FILEINFO2.FileName = func(@string, nmb_FILEINFO2.nStrFile).ToLower();
|
||||
this.m_FileInfo[num3] = nmb_FILEINFO2;
|
||||
if (this.m_FileDictionary.ContainsKey(nmb_FILEINFO2.StrName))
|
||||
{
|
||||
Debug.Print(string.Format("ERROR:NMB ITEM :{0}/{1}", nmb_FILEINFO2.DirName, nmb_FILEINFO2.StrName));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_FileDictionary.Add(nmb_FILEINFO2.StrName, num3);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Token: 0x0600005F RID: 95 RVA: 0x00003654 File Offset: 0x00001854
|
||||
public bool Release()
|
||||
{
|
||||
this.m_Header = default(NMB_FILEHEADER);
|
||||
this.m_FileDictionary.Clear();
|
||||
this.m_FileInfo.Clear();
|
||||
this.m_TreeItem.Clear();
|
||||
return true;
|
||||
}
|
||||
|
||||
// Token: 0x06000060 RID: 96 RVA: 0x00003694 File Offset: 0x00001894
|
||||
public int GetFileNum()
|
||||
{
|
||||
return this.m_Header.nItemNum;
|
||||
}
|
||||
|
||||
// Token: 0x06000061 RID: 97 RVA: 0x000036A4 File Offset: 0x000018A4
|
||||
public NMB_FILEINFO GetFileInfo(int nFileNo)
|
||||
{
|
||||
return this.m_FileInfo[nFileNo];
|
||||
}
|
||||
|
||||
// Token: 0x06000062 RID: 98 RVA: 0x000036B4 File Offset: 0x000018B4
|
||||
public NMB_FILEINFO GetFileInfo(string szName)
|
||||
{
|
||||
szName = szName.ToLower();
|
||||
if (this.m_FileDictionary.ContainsKey(szName))
|
||||
{
|
||||
return this.m_FileInfo[this.m_FileDictionary[szName]];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// Token: 0x06000063 RID: 99 RVA: 0x000036F4 File Offset: 0x000018F4
|
||||
public int NameToNo(string szName)
|
||||
{
|
||||
szName = szName.ToLower();
|
||||
if (this.m_FileDictionary.ContainsKey(szName))
|
||||
{
|
||||
return this.m_FileDictionary[szName];
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Token: 0x040000E0 RID: 224
|
||||
private NMB_FILEHEADER m_Header = default(NMB_FILEHEADER);
|
||||
|
||||
// Token: 0x040000E1 RID: 225
|
||||
private List<NMB_FILEINFO> m_FileInfo = new List<NMB_FILEINFO>();
|
||||
|
||||
// Token: 0x040000E2 RID: 226
|
||||
private List<NMB_BTREEITEM> m_TreeItem = new List<NMB_BTREEITEM>();
|
||||
|
||||
// Token: 0x040000E3 RID: 227
|
||||
private Dictionary<string, int> m_FileDictionary = new Dictionary<string, int>();
|
||||
|
||||
// Token: 0x040000E4 RID: 228
|
||||
private int m_nNo;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user