00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef MAINSHAPEARCHIVE_H
00020 #define MAINSHAPEARCHIVE_H
00021
00022 #include "ShapeArchive.h"
00023
00024 class TypeFlags;
00025 class ShapeInfo;
00026 class AnimDat;
00027 class ActorAnim;
00028 struct AnimAction;
00029
00030 class MainShapeArchive : public ShapeArchive
00031 {
00032 public:
00033 ENABLE_RUNTIME_CLASSTYPE();
00034
00035 MainShapeArchive(uint16 id_, Pentagram::Palette* pal_ = 0,
00036 const ConvertShapeFormat *format_ = 0)
00037 : ShapeArchive(id_, pal_, format_), typeFlags(0), animdat(0) { }
00038 MainShapeArchive(ArchiveFile* af, uint16 id_, Pentagram::Palette* pal_ = 0,
00039 const ConvertShapeFormat *format_ = 0)
00040 : ShapeArchive(af, id_, pal_, format_), typeFlags(0), animdat(0) { }
00041 MainShapeArchive(IDataSource* ds, uint16 id_, Pentagram::Palette* pal_ = 0,
00042 const ConvertShapeFormat *format_ = 0)
00043 : ShapeArchive(ds, id_, pal_, format_), typeFlags(0), animdat(0) { }
00044 MainShapeArchive(const std::string& path, uint16 id_,
00045 Pentagram::Palette* pal_ = 0,
00046 const ConvertShapeFormat *format_ = 0)
00047 : ShapeArchive(path, id_, pal_, format_), typeFlags(0), animdat(0) { }
00048
00049 virtual ~MainShapeArchive();
00050
00051 void loadTypeFlags(IDataSource *ds);
00052 ShapeInfo* getShapeInfo(uint32 shapenum);
00053
00054 void loadAnimDat(IDataSource *ds);
00055 ActorAnim* getAnim(uint32 shape) const;
00056 AnimAction* getAnim(uint32 shape, uint32 action) const;
00057
00058 protected:
00059 TypeFlags* typeFlags;
00060 AnimDat* animdat;
00061 };
00062
00063
00064 #endif