; Unpack Library Include File
;

	IFND	Unpack.i

Unpack.i	=	1

	INCLUDE	"Exec/Types.i"


; Library Name & Version


UNPACKNAME	MACRO
		dc.b	"unpack.library",0
		ENDM

UNPACKVERSION	=	34
UNPACKREVISION	=	21


; First The Library Offsets

AllocCInfo	=	-30
FreeCInfo	=	-36
DetermineFile	=	-42
Unpack		=	-48
TestHunk	=	-54
UnpackNum	=	-60
UnpackList	=	-66
UnpackListNext	=	-72

LoadFile	=	-78		;V34.20
FreeFile	=	-84		;V34.20


; Library Base Structure


	STRUCTURE LibraryStruct,0
	STRUCT	LIB_Node,14
	UBYTE	LIB_Flags
	UBYTE	LIB_Pad
	UWORD	LIB_NegSize
	UWORD	LIB_PosSize
	UWORD	LIB_Version
	UWORD	LIB_Revision
	APTR	LIB_IDString
	ULONG	LIB_Sum
	UWORD	LIB_OpenCnt

	APTR	LIB_SegList
	APTR	LIB_DosBase
	APTR	LIB_IntBase
	LABEL	LibraryStruct_SIZEOF


; Unpack Info Structure


	STRUCTURE UnpackInfo,0
	APTR	UI_Filename
	APTR	UI_Path
	APTR	UI_Jump
	APTR	UI_CruncherName
	APTR	UI_DecrunchAdr
	LONG	UI_DecrunchLen
	UWORD	UI_ErrorNum
	UWORD	UI_CrunchNum
	UBYTE	UI_CrunchType
	UBYTE	UI_Flag
	APTR	UI_LoadNamePoi
	LONG	UI_CrunchLen

; This Is Private, Do NOT Touch

	APTR	UI_CrunchAdr
	LONG	UI_CrunchLenTemp
	LONG	UI_FileHandler
	LONG	UI_Lock
	LONG	UI_OldLock
	APTR	UI_InfoAdr
	APTR	UI_UnpackPoi
	ULONG	UI_Temp
	STRUCT	UI_LoadName,128
	STRUCT	UI_ExecuteString,256
	LABEL	UnpackInfo_SIZEOF


; The Flag Have The Following Definations:

UFB_OneFile	=	0		;This Select To Decrunch One File Or
					;All Files In An Archive.
UFB_Delete	=	1		;Delete Files After Scanning.

UFN_OneFile	=	1<<UFB_OneFile
UFN_Delete	=	1<<UFB_Delete


; And Now For The UI_CrunchType Flag: 


CRU_Archive	=	1		;Archive (Lha, Zoo Etc.)
CRU_Data	=	2		;Data File
CRU_Object	=	3		;Object File
CRU_Object2	=	4		;2 Segment Object File

CRUB_Encryp	=	7		;Encrypted File (If Bit Is Set)


; And The Error Flag:


ERR_Open	=	1		;Can't Open File
ERR_ReadWrite	=	2		;Read/Write Error
ERR_Memory	=	3		;Allocation Error (Out Of Memory)
ERR_Determine	=	4		;Can't Determine File
ERR_Password	=	5		;Illegal Password
ERR_Hunk	=	6		;Hunk Error


; At Last The Cruncher Numbers:

MaxFilePack	=	15

CN_Lha		=	1		;Lha
CN_LhaSFX	=	2		;LhaSFX
CN_Pak10	=	3		;Pak 1.0

CN_GP10		=	15		;Gnu Packer 1.0
CN_GP11		=	16		;Gnu Packer 1.1/1.2
CN_PPData	=	17		;PowerPacker Data
CN_PPDataE	=	18		;PowerPacker Data/Encrypted
CN_PPLoadSeg	=	19		;PowerPacker LoadSeg
CN_PPLib	=	20		;PowerPacker Library
CN_PPLibE	=	21		;PowerPacker Library/Encrypted
CN_PPLibOv	=	22		;PowerPacker Library/Overlayed
CN_PP2x		=	23		;PowerPacker 2.x
CN_PP30		=	24		;PowerPacker 3.0
CN_PP30E	=	25		;PowerPacker 3.0 Encrypted
CN_PP30Ov	=	26		;PowerPacker 3.0 Overlayed
CN_PP42		=	27		;PowerPacker 4.0-4.2
CN_PP42E	=	28		;PowerPacker 4.0-4.2 Encrypted
CN_PP42Ov	=	29		;PowerPacker 4.0-4.2 Overlayed
CN_Turtle	=	30		;Turtle Smasher 1.3
CN_TSqueeze80	=	31		;TurboSqueezer 8.0
CN_TSqueeze80S	=	32		;TurboSqueezer 8.0 Small
CN_TryIt101	=	33		;TryIt 1.01
CN_Titanic11	=	34		;Titanics Cruncher 1.1
CN_Titanic12	=	35		;Titanics Cruncher 1.2
CN_Time22	=	36		;Time Cruncher 1.7-2.2
CN_Tetra21	=	37		;TetraPacker 2.1
CN_Tetra21Pro	=	38		;TetraPacker 2.1 Pro
CN_Tetra22	=	39		;TetraPacker 2.2
CN_Tetra22Pro	=	40		;TetraPacker 2.2 Pro
CN_Tetra102	=	41		;TetraCrunch 1.02
CN_Tetra11	=	42		;TetraCrunch 1.1
CN_Stone299d	=	43		;Stone Cracker 2.99d
CN_Stone311	=	44		;Stone Cracker 3.10-3.11
CN_Stone401A	=	45		;Stone Cracker 4.01 A
CN_Imploder31	=	46		;Imploder 1.0-3.1
CN_Imploder31P	=	47		;Imploder 1.0-3.1 Protected
CN_Imploder31L	=	48		;Imploder 1.0-3.1 Library
CN_Imploder31LP	=	49		;Imploder 1.0-3.1 Library/Protected
CN_Imploder40	=	50		;Imploder 4.0
CN_Imploder40L	=	51		;Imploder 4.0 Library
CN_BlkDec21	=	52		;Black & Decker 2.1
CN_BytKil20	=	53		;ByteKiller 2.0
CN_BytKil30	=	54		;ByteKiller 3.0
CN_TNMCrun11	=	55		;TNM Cruncher 1.1
CN_CrunMast10	=	56		;Crunch Master 1.0
CN_CrMania14AN	=	57		;Crunch Mania 1.4 A/N
CN_CrMania14AP	=	58		;Crunch Mania 1.4 A/P
CN_CrMania14D	=	59		;Crunch Mania 1.4 D
CN_CrMania18RN	=	60		;Crunch Mania 1.4-1.8 R/N
CN_CrMania18RS	=	61		;Crunch Mania 1.4-1.8 R/S
CN_CrMania18RL	=	62		;Crunch Mania 1.8 R/L
CN_CrMania18RLH	=	63		;Crunch Mania 1.8 R/L/H
CN_CrMania18RNH	=	64		;Crunch Mania 1.8 R/N/H
CN_CrMania18DH	=	65		;Crunch Mania 1.8 D/H
CN_CrMania18DHS	=	66		;Crunch Mania 1.8 D/H/S
CN_CrMania18DS	=	67		;Crunch Mania 1.8 D/S
CN_DoubAction10	=	68		;Double Action 1.0
CN_DragPack10	=	69		;DragPack 1.0
CN_House14	=	70		;House 1.4 (RSI-Packer)
CN_HPC		=	71		;High Pressure Cruncher
CN_HPCU		=	72		;High Pressure Cruncher U
CN_IAM10Ice	=	73		;IAM Packer Pro 1.0 Ice
CN_IAM10IceD	=	74		;IAM Packer Pro 1.0 Ice/D
CN_IAM10Atm5	=	75		;IAM Packer Pro 1.0 Atm5
CN_IAM10Atm5D	=	76		;IAM Packer Pro 1.0 Atm5/D
CN_ISC15P1	=	77		;ISC 1.5 Pass 1
CN_ISC15P2	=	78		;ISC 1.5 Pass 2
CN_ISC15P3	=	79		;ISC 1.5 Pass 3
CN_MastCrun31A	=	80		;Master Cruncher 3.0-3.1 A
CN_MastCrun31R	=	81		;Master Cruncher 3.0-3.1 R
CN_MastCrun31D	=	82		;Master Cruncher 3.0-3.1 D
CN_MegaCrun10	=	83		;Megacruncher 1.0
CN_MegaCrun12A	=	84		;Megacruncher 1.2 A
CN_MegaCrun12R	=	85		;Megacruncher 1.2 R
CN_Defjam32	=	86		;Defjam 3.2
CN_Defjam32Pro	=	87		;Defjam 3.2 Pro
CN_PackIt10	=	88		;PackIt 1.0
CN_PackIt10D	=	89		;PackIt 1.0 D
CN_Relokit10	=	90		;Relokit 1.0
CN_Spike15	=	91		;Spike Cruncher 1.1-1.5
CN_SuperCrun27	=	92		;Super Cruncher 2.7
CN_Syncro46	=	93		;Syncro Packer 4.6
CN_Syncro46K	=	94		;Syncro Packer 4.6 K
CN_Syncro46R	=	95		;Syncro Packer 4.6 R
CN_Syncro46RK	=	96		;Syncro Packer 4.6 R/K
CN_Stone400	=	97		;Stone Cracker 4.00
CN_Stone400D	=	98		;Stone Cracker 4.00 D
CN_Stone401C	=	99		;Stone Cracker 4.01 C
CN_Stone401D	=	100		;Stone Cracker 4.01 D

; This Label Will Be Deleted Later On

CN_ComCra11	=	CN_TNMCrun11	;Compressor Crackings Inc. V1.1
	ENDC
