Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __SP_IMAGELOADER_WAD_H__
00009 #define __SP_IMAGELOADER_WAD_H__
00010
00011
00012 #include "Base/spStandard.hpp"
00013
00014 #ifdef SP_COMPILE_WITH_TEXLOADER_WAD
00015
00016
00017 #include "RenderSystem/spTextureBase.hpp"
00018
00019 #include <vector>
00020 #include <list>
00021
00022
00023 namespace sp
00024 {
00025 namespace video
00026 {
00027
00028
00029 class SP_EXPORT ImageLoaderWAD
00030 {
00031
00032 public:
00033
00034 ImageLoaderWAD();
00035 ~ImageLoaderWAD();
00036
00037 std::list<Texture*> loadTextureList(const io::stringc &Filename);
00038
00039 private:
00040
00041
00042
00043 struct SHeaderWAD
00044 {
00045 c8 Magic[4];
00046 u32 CountTextures;
00047 u32 DirOffset;
00048 };
00049
00050 struct STextureWAD
00051 {
00052 u32 Offset;
00053 u32 CompressedSize;
00054 u32 UncompressedSize;
00055 s8 Type;
00056 s8 CompressionType;
00057 s16 Padding;
00058 c8 Name[16];
00059 };
00060
00061 struct SWallTextureBSP
00062 {
00063 c8 Name[16];
00064 u32 Width, Height;
00065 u32 Offset1;
00066 u32 Offset2;
00067 u32 Offset4;
00068 u32 Offset8;
00069 };
00070
00071
00072
00073 void init();
00074 void clear();
00075
00076 void reset();
00077
00078 bool readHeader();
00079 void readTextureInfo();
00080 void readTextures();
00081
00082
00083
00084 io::FileSystem* FileLoader_;
00085 io::File* File_;
00086
00087 SHeaderWAD Header_;
00088
00089 std::vector<STextureWAD> TextureInfoList_;
00090 std::list<Texture*> TextureList_;
00091
00092 };
00093
00094
00095 }
00096
00097 }
00098
00099
00100 #endif
00101
00102 #endif
00103
00104
00105
00106