275 lines
7.6 KiB
Plaintext
275 lines
7.6 KiB
Plaintext
================================
|
|
================================
|
|
HLLib BY: RYAN "NEMESIS" GREGG
|
|
================================
|
|
================================
|
|
|
|
===========================
|
|
Library/Author Information:
|
|
===========================
|
|
|
|
---- General Library Information ----
|
|
Date : January 22nd, 2017
|
|
Author : Ryan Gregg
|
|
Michael Mohr (Linux Port)
|
|
Title : HLLib
|
|
Build : 2.4.6
|
|
Email address : ryansgregg@hotmail.com (Ryan Gregg)
|
|
m.mohr@laposte.net (Michael Mohr)
|
|
Home page / Website : http://nemesis.thewavelength.net/
|
|
|
|
---- Library Construction Information ----
|
|
Written In : C, C++
|
|
|
|
======
|
|
Other:
|
|
======
|
|
|
|
The library contains four folders:
|
|
|
|
Bin
|
|
- Contains library and example program binaries.
|
|
|
|
HLExtract
|
|
- Contains example program source code.
|
|
|
|
HLExtract.Net
|
|
- Contains example .Net wrapper program source code.
|
|
|
|
HLLib
|
|
- Contains library source code.
|
|
|
|
Lib
|
|
- Contains library C/C++ Header and Inline Files.
|
|
|
|
Sln
|
|
- Contains Visual Studio solutions.
|
|
|
|
The project files are for Visual Studio .NET 2005, 2008 and 2010; no .NET extensions are used.
|
|
|
|
================
|
|
HLExtract Usage:
|
|
================
|
|
|
|
Correct HLExtract usage:
|
|
-p <filepath> (Package to load.)
|
|
-d <path> (Destination extraction directory.)
|
|
-e <itempath> (Item in package to extract.)
|
|
-t <itempath> (Item in package to validate.)
|
|
-l[d][f] [filepath] (List the contents of the package.)
|
|
-f (Defragment package.)
|
|
-c (Console mode.)
|
|
-s (Silent mode.)
|
|
-m (Use file mapping.)
|
|
-q (Use quick file mapping.)
|
|
-v (Allow volatile access.)
|
|
-o (Don't overwrite files.)
|
|
-r (Force defragmenting on all files.)
|
|
-n <path> (NCF file's root path.)
|
|
|
|
Example HLExtract usage:
|
|
HLExtract.exe -p "C:\half-life.gcf" -d "C:\backup" -e "root\valve\models" -e "root\valve\config.cfg"
|
|
HLExtract.exe -p "C:\half-life.gcf" -c -m -q -v
|
|
HLExtract.exe -p "C:\half-life.gcf" -lf "C:\half-life.txt" -m -s
|
|
HLExtract.exe -p "C:\half-life.gcf" -m -f
|
|
|
|
Console Commands (Interactive console mode):
|
|
|
|
dir [filter] Directory listing.
|
|
cd <folder> Change directory to <folder>.
|
|
info <item> Information on <item>.
|
|
extract <item> Extract <item> to <path> specified by -d.
|
|
validate <item> Validate <item> data.
|
|
find <filter> Search the current folder for <item> recursively.
|
|
type <file> Type <file> to the console.
|
|
open <file> Open nested package <file>.
|
|
root Change directory to root\.
|
|
status Package information.
|
|
cls Clear screen.
|
|
help Display help.
|
|
exit Exit HLExtract.
|
|
|
|
==================
|
|
Library Changelog:
|
|
==================
|
|
|
|
v2.4.6
|
|
- Modified VPF file support to handle the removal of a null terminator from the end of directory.
|
|
|
|
v2.4.5
|
|
- Added support for new SGA file format (v6).
|
|
- Added support for new SGA file format (v7).
|
|
|
|
v2.4.4
|
|
- Fixed support for VPK file format (v1).
|
|
|
|
v2.4.3
|
|
- Added support for new VPK file format (v2).
|
|
- Added SGA file support.
|
|
- Added ZIP deflate support.
|
|
|
|
v2.4.2
|
|
- Fixed crash when opening VBSP files with no pak file lump.
|
|
|
|
v2.4.1
|
|
- Fixed crash in CProcStream.
|
|
- Fixed VPK signature check.
|
|
- Workaround for crash in .Net wrapper.
|
|
|
|
v2.4.0
|
|
- Added support for GCF files larger than 4 GB.
|
|
|
|
v2.3.0
|
|
- Added support for x64.
|
|
- Added Visual Studio 2010 solution.
|
|
- Added Visual Studio 2008 solution.
|
|
- Removed Visual Studio 2003 solution.
|
|
|
|
v2.2.0
|
|
- Added support for packages larger than 4 GB.
|
|
|
|
v2.1.2
|
|
- Added support for new VBSP file format.
|
|
|
|
v2.1.1
|
|
- Added support for new VPK file format (v1).
|
|
- Added VPK file validation.
|
|
- Fixed crash when closing VPK files.
|
|
|
|
v2.1.0
|
|
- Added VPK file support.
|
|
|
|
v2.0.11
|
|
- Added VBSP .lmp support.
|
|
- Fixed support for files over 2 GB.
|
|
|
|
v2.0.10
|
|
- Added Last Version Played attribute to NCF file.
|
|
- Fixed change to directory entry folder terminator.
|
|
|
|
v2.0.9
|
|
- Added Last Version Played attribute to GCF file.
|
|
|
|
v2.0.8
|
|
- Improved GCF version check.
|
|
- Fixed fragmentation header checksum after defragment.
|
|
|
|
v2.0.7
|
|
- Added different search string comparisons.
|
|
- Added Visual Studio 2005 solution.
|
|
- Improved package type tests.
|
|
|
|
v2.0.6
|
|
- Added generic write support to mapping interface.
|
|
- Added no recurse option to FindFirst()/FindNext().
|
|
- Improved package item attribute consistency.
|
|
- Fixed GCC visibility support.
|
|
- Fixed unnecessary GCF bounds check.
|
|
- Fixed BSP unused lump check.
|
|
|
|
v2.0.5
|
|
- Added Linux support.
|
|
- Fixed near infinite find next recursion.
|
|
|
|
v2.0.4
|
|
- Fixed bug in GCF file defragmentation progress.
|
|
|
|
v2.0.3
|
|
- Added NCF file support.
|
|
|
|
v2.0.2
|
|
- Added GCF file defragmentation.
|
|
- Added fragmentation property to GCF files.
|
|
- Added Dark Messiah VBSP support.
|
|
- Fixed hlPackageCreateStream() bug.
|
|
- Fixed CMapping::GetTotalMemoryUsed() calculation.
|
|
- Fixed PAK file path parsing.
|
|
- Improved error messages.
|
|
- Improved file mapping performance.
|
|
|
|
v2.0.1
|
|
- Added memory tracking.
|
|
- Improved view management.
|
|
- Fixed memory mapping bug.
|
|
- Fixed user data bug in proc reader.
|
|
- Fixed WAD file GetImageData() bug.
|
|
- Fixed default mapping stream view size.
|
|
- Fixed a minor memory leak.
|
|
|
|
v2.0.0
|
|
- Rewrote entire library.
|
|
- Open packages from anywhere (files, memory, abstract streams).
|
|
- Get package and item attributes.
|
|
- Stream package data.
|
|
- Validate package data.
|
|
- Added a C wrapper.
|
|
- Improved and optimized package loading code.
|
|
- Improved package detection.
|
|
|
|
v1.1.8
|
|
- Added CXZPFile support.
|
|
|
|
v1.1.7
|
|
- Added Source engine BSP support.
|
|
|
|
v1.1.6
|
|
- Added mipmap level option to CWADFile.
|
|
|
|
v1.1.5
|
|
- Improved CWADFile file support.
|
|
|
|
v1.1.4
|
|
- Improved detection of corrupt packages.
|
|
|
|
v1.1.3
|
|
- Extended CGCFFile.
|
|
- Extended CFileMapping and CPrimitiveFileMapping to allow for volatile access.
|
|
- Fixed CPackageUtility::Extract() bug caused by illegal characters.
|
|
- Files of size 0 B are now treated as valid files.
|
|
|
|
v1.1.2
|
|
- Extended CPackage.
|
|
- Extended CMappedPackage.
|
|
- Improved error messages for system calls.
|
|
|
|
v1.1.1
|
|
- Fixed last error not being set in CMappedPackage::Open().
|
|
|
|
v1.1.0
|
|
- Rewrote mapping code to be more flexible.
|
|
- Packages located on disk or in memory can now be loaded.
|
|
- Optimized file mapping.
|
|
- Fixed CPackage::Root bug.
|
|
- Fixed CGCFFile::GetFileSizeOnDisk() bug.
|
|
|
|
v1.0.4
|
|
- Fixed CPackage memory leak.
|
|
- Fixed CMappedPackage initialization bug.
|
|
- Fixed CMappedPackage deinitialization bug.
|
|
- Changed CDirectoryItem::Parent to a CDirectoryFolder.
|
|
- Extended CWADFile.
|
|
- Added CBSPFile which acts like CWADFile on a BSP's textures.
|
|
|
|
v1.0.3
|
|
- Extended CWADFile.
|
|
- Changed GetFileSizeEx() to GetFileSize() (Not all versions of Windows supported the former).
|
|
|
|
v1.0.2
|
|
- Extended CPackage.
|
|
- Extended CGCFFile.
|
|
- Converted from bool to BOOL.
|
|
- HLLib now used by GCFScape.
|
|
|
|
v1.0.1
|
|
- Added callback functionality to CPackageUtility::Extract().
|
|
- Extended CGCFFile.
|
|
- Minor bug fixes.
|
|
|
|
v1.0.0
|
|
- Original build.
|
|
|
|
==============================
|
|
Program Copyright-Permissions:
|
|
==============================
|
|
|
|
See the lgpl.txt (HLLib) and gpl.txt (HLExtract) files contained in the distribution. |