summaryrefslogtreecommitdiffstats
path: root/src/common/metafile.h
diff options
context:
space:
mode:
authorPiotr Dziwinski <piotrdz@gmail.com>2012-04-28 17:53:17 +0200
committerPiotr Dziwinski <piotrdz@gmail.com>2012-04-28 17:53:17 +0200
commit449cc186d5b8117d74ba22d6173497d00939f5f1 (patch)
tree39f38530dab2c9c8b33f5d8e42a81242bd48704b /src/common/metafile.h
parenteeb69b34d2467e51ff84b3235f94506ce6bb9283 (diff)
downloadcolobot-449cc186d5b8117d74ba22d6173497d00939f5f1.tar.gz
colobot-449cc186d5b8117d74ba22d6173497d00939f5f1.tar.bz2
colobot-449cc186d5b8117d74ba22d6173497d00939f5f1.zip
Source files split into modules
Diffstat (limited to 'src/common/metafile.h')
-rw-r--r--src/common/metafile.h78
1 files changed, 78 insertions, 0 deletions
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 <stdio.h>
+
+
+#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_