package com.yarin.android.GameEngine.Script.pak; /** * Pak�ļ�ͷ�� * �ṹ�� * ǩ����6�ֽ�char���� * �汾�ţ�32λfloat * �ļ�table������32λ���� * ������Ϊ��8λ�ֽ� * ���룺8λ�ֽ� * �ļ�ΨһID��10�ֽ�char���� * ����λ��32λ����(4�ֽ�) * */ public class PakHeader { //�����ļ�ΨһID���� public static final int UNIQUEID_LENGTH=10; //�����ļ�ǩ������ public static final int SIGNATURE_LENGTH=6; //����ӷ����� public static final int ADDITION_CIPHERACTION=0; //����������� public static final int SUBTRACT_CIHOERACTION=1; //�ļ�ǩ�� private char[] signature=new char[SIGNATURE_LENGTH]; //�汾�� private float version=0f; //�ļ�table���� private long numFileTableEntries=0; //����ʹ�÷�������ԭ�����Ͻ��мӷ����Ǽ��� private byte cipherAction=ADDITION_CIPHERACTION; //����ֵ private byte cipherValue=0x00; //ΨһID private char[] uniqueID=new char[UNIQUEID_LENGTH]; //������4�ֽ� private long reserved=0; public PakHeader(){ } /** * ���췽�� * @param signature ǩ�� * @param version �汾 * @param numFileTableEntries �ļ�table���� * @param cipherAction ����ʹ�÷��� * @param cipherValue ����ֵ * @param uniqueID ΨһID * @param reserved ������2�ֽ� */ public PakHeader(char[] signature,float version, long numFileTableEntries,byte cipherAction, byte cipherValue,char[] uniqueID,long reserved){ for(int i=0;i<SIGNATURE_LENGTH;this.signature[i]=signature[i],i++) ; this.version=version; this.cipherAction=cipherAction; this.numFileTableEntries=numFileTableEntries; this.cipherValue=cipherValue; for(int i=0;i<UNIQUEID_LENGTH;this.uniqueID[i]=uniqueID[i],i++) ; this.reserved=reserved; } public byte getCipherValue() { return cipherValue; } public void setCipherValue(byte cipherValue) { this.cipherValue = cipherValue; } public long getNumFileTableEntries() { return numFileTableEntries; } public void setNumFileTableEntries(long numFileTableEntries) { this.numFileTableEntries = numFileTableEntries; } public long getReserved() { return reserved; } public void setReserved(long reserved) { this.reserved = reserved; } public char[] getUniqueID() { return uniqueID; } public void setUniqueID(char[] uniqueID) { for(int i=0;i<UNIQUEID_LENGTH;this.uniqueID[i]=uniqueID[i],i++) ; } public float getVersion() { return version; } public void setVersion(float version) { this.version = version; } public byte getCipherAction() { return cipherAction; } public void setCipherAction(byte cipherAction) { this.cipherAction = cipherAction; } public char[] getSignature() { return signature; } public void setSignature(char[] signature) { for(int i=0;i<SIGNATURE_LENGTH;this.signature[i] = signature[i],i++) ; } /** * ����PakHeader�Ĵ�С * @return ����PakHeader�Ĵ�С */ public static int size(){ return SIGNATURE_LENGTH+4+4+1+1+UNIQUEID_LENGTH+4; } public String toString(){ String result=""; result+="\tǩ��:"+new String(this.signature).trim() +"\t�汾��:"+this.version +"\t�ļ�table����:"+this.numFileTableEntries +"\t������Ϊ:" +this.cipherAction +"\t����:"+this.cipherValue +"\t�ļ�ΨһID:"+new String(this.uniqueID).trim() +"\t����λ:"+this.reserved; return result; } }