Alientech 0.01
An extendable game engine
C:/Alientech/AlienCargoHold/CAlienCargoHold.cpp
Go to the documentation of this file.
00001 #include <iostream>
00002 #include "CAlienCargoHold.h"
00003 using namespace alien::utils;
00004 
00005 AlienCargoHold::AlienCargoHold(string filename) : currentFile(NULL)
00006 {
00007         file.open(filename.c_str(),fstream::binary | fstream::in);
00008         if (!file.is_open())
00009                 return;
00010 
00011         file.seekg(fstream::beg);
00012         // Read file structure
00013         root = ACHDirectory::readDirectory(&file);
00014         root->setName("root");
00015         root->updatePath();
00016 }
00017 
00018 bool AlienCargoHold::isOpen()
00019 {
00020         return (file.is_open());
00021 }
00022 
00023 ACHDirectory* AlienCargoHold::getRoot()
00024 {
00025         return root;
00026 }
00027 
00028 ifstream* AlienCargoHold::seekFile(string path)
00029 {
00030         ACHFile* f = root->getFile(path);
00031         if (f == NULL)
00032                 return NULL;
00033         file.seekg(f->getOffset());
00034         file.eof();
00035         return &file;
00036 }
00037 
00038 string AlienCargoHold::getCurrentFile()
00039 {
00040         if (currentFile == NULL) return "";
00041         return currentFile->getPath()+currentFile->getName();
00042 }
00043 
00044 AlienCargoHold::~AlienCargoHold()
00045 {
00046         file.close();
00047         root->destroy();
00048 }