Ver código fonte

Adds package entry filenames to PackageFile

Chris Friesen 11 anos atrás
pai
commit
0171669690
2 arquivos alterados com 8 adições e 0 exclusões
  1. 2 0
      Source/Engine/IO/PackageFile.h
  2. 6 0
      Source/Engine/Script/IOAPI.cpp

+ 2 - 0
Source/Engine/IO/PackageFile.h

@@ -71,6 +71,8 @@ public:
     unsigned GetChecksum() const { return checksum_; }
     unsigned GetChecksum() const { return checksum_; }
     /// Return whether the files are compressed.
     /// Return whether the files are compressed.
     bool IsCompressed() const { return compressed_; }
     bool IsCompressed() const { return compressed_; }
+    /// Return list of entry names
+    const Vector<String> GetEntryNames() const { return entries_.Keys(); }
     
     
 private:
 private:
     /// File entries.
     /// File entries.

+ 6 - 0
Source/Engine/Script/IOAPI.cpp

@@ -369,6 +369,11 @@ static PackageFile* ConstructAndOpenPackageFile(const String& fileName, unsigned
     return new PackageFile(GetScriptContext(), fileName, startOffset);
     return new PackageFile(GetScriptContext(), fileName, startOffset);
 }
 }
 
 
+static const CScriptArray* PackageFileGetEntryNames(PackageFile* packageFile)
+{
+    return VectorToArray<String>(packageFile->GetEntryNames(), "Array<String>");
+}
+
 static void RegisterPackageFile(asIScriptEngine* engine)
 static void RegisterPackageFile(asIScriptEngine* engine)
 {
 {
     RegisterObject<PackageFile>(engine, "PackageFile");
     RegisterObject<PackageFile>(engine, "PackageFile");
@@ -381,6 +386,7 @@ static void RegisterPackageFile(asIScriptEngine* engine)
     engine->RegisterObjectMethod("PackageFile", "uint get_totalSize() const", asMETHOD(PackageFile, GetTotalSize), asCALL_THISCALL);
     engine->RegisterObjectMethod("PackageFile", "uint get_totalSize() const", asMETHOD(PackageFile, GetTotalSize), asCALL_THISCALL);
     engine->RegisterObjectMethod("PackageFile", "uint get_checksum() const", asMETHOD(PackageFile, GetChecksum), asCALL_THISCALL);
     engine->RegisterObjectMethod("PackageFile", "uint get_checksum() const", asMETHOD(PackageFile, GetChecksum), asCALL_THISCALL);
     engine->RegisterObjectMethod("PackageFile", "bool compressed() const", asMETHOD(PackageFile, IsCompressed), asCALL_THISCALL);
     engine->RegisterObjectMethod("PackageFile", "bool compressed() const", asMETHOD(PackageFile, IsCompressed), asCALL_THISCALL);
+    engine->RegisterObjectMethod("PackageFile", "Array<String>@ GetEntryNames() const", asFUNCTION(PackageFileGetEntryNames), asCALL_CDECL_OBJLAST);
 }
 }
 
 
 void RegisterIOAPI(asIScriptEngine* engine)
 void RegisterIOAPI(asIScriptEngine* engine)