From 449cc186d5b8117d74ba22d6173497d00939f5f1 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Sat, 28 Apr 2012 17:53:17 +0200 Subject: Source files split into modules --- src/common/metafile.h | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 src/common/metafile.h (limited to 'src/common/metafile.h') diff --git a/src/common/metafile.h b/src/common/metafile.h new file mode 100644 index 0000000..b334b3e --- /dev/null +++ b/src/common/metafile.h @@ -0,0 +1,78 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch +// * +// * This program is free software: you can redistribute it and/or modify +// * it under the terms of the GNU General Public License as published by +// * the Free Software Foundation, either version 3 of the License, or +// * (at your option) any later version. +// * +// * This program is distributed in the hope that it will be useful, +// * but WITHOUT ANY WARRANTY; without even the implied warranty of +// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// * GNU General Public License for more details. +// * +// * You should have received a copy of the GNU General Public License +// * along with this program. If not, see http://www.gnu.org/licenses/. + +// metafile.h + +#ifndef _METAFILE_H_ +#define _METAFILE_H_ + + +#include + + +#define METAMAX 5 + +typedef struct +{ + char name[14]; // file name (8.3 max) + int start; // position from the beginning of the metafile + int len; // length of the file +} +MetaHeader; + +typedef struct +{ + char name[50]; // name of the metafile + FILE* stream; // channel + int total; // number of files + MetaHeader* headers; // headers of files +} +MetaFile; + + + +class CMetaFile +{ +public: + CMetaFile(); + ~CMetaFile(); + + BOOL IsExist(char *metaname, char *filename); + int Open(char *metaname, char *filename); + int RetLength(); + int Seek(int offset); + int Read(void *buffer, int size); + int GetByte(); + int GetWord(); + int Close(); + int MetaClose(); + +protected: + int MetaOpen(char *metaname); + int MetaSearch(char *metaname); + +protected: + MetaFile m_list[METAMAX]; // metafile open + BOOL m_bOpen; // open file + BOOL m_bMeta; // metafile open + FILE* m_stream; // channel + int m_start; // position from the beginning + int m_pos; // current position + int m_len; // length of the file +}; + + +#endif //_METAFILE_H_ -- cgit v1.2.3-1-g7c22