Ykkrosh
bdbb2bcb16
Added UnitAnimation class, to act as the interface between the entity and actor. (Currently doesn't work very well, but it does make animations loop smoothly and sometimes kind of makes them stay synchronised.) Fixed corpse animation - it now plays the final frame of the death animation before turning static. Fixed update/interpolate timings. Added JS function saveProfileData. Updated ffmpeg library. This was SVN commit r4880.
64 lines
1.7 KiB
C++
64 lines
1.7 KiB
C++
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Name: FileUnpacker.h
|
|
// Author: Rich Cross
|
|
// Contact: rich@wildfiregames.com
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _FILEUNPACKER_H
|
|
#define _FILEUNPACKER_H
|
|
|
|
#include <vector>
|
|
#include "lib/res/file/file_io.h"
|
|
|
|
class CStr8;
|
|
|
|
#include "ps/Errors.h"
|
|
#ifndef ERROR_GROUP_FILE_DEFINED
|
|
#define ERROR_GROUP_FILE_DEFINED
|
|
// FilePacker.h defines these too
|
|
ERROR_GROUP(File);
|
|
ERROR_TYPE(File, OpenFailed);
|
|
#endif
|
|
ERROR_TYPE(File, InvalidType);
|
|
ERROR_TYPE(File, InvalidVersion);
|
|
ERROR_TYPE(File, ReadFailed);
|
|
ERROR_TYPE(File, UnexpectedEOF);
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// CFileUnpacker: class to assist in reading of binary files
|
|
class CFileUnpacker
|
|
{
|
|
public:
|
|
// constructor
|
|
CFileUnpacker();
|
|
|
|
~CFileUnpacker();
|
|
|
|
// Read: open and read in given file, check magic bits against those given; throw
|
|
// variety of exceptions for missing files etc
|
|
void Read(const char* filename, const char magicstr[4]);
|
|
|
|
// GetVersion: return stored file version
|
|
u32 GetVersion() const { return m_Version; }
|
|
|
|
// UnpackRaw: unpack given number of bytes from the input stream into the given array
|
|
// - throws PSERROR_File_UnexpectedEOF if the end of the data stream is reached before
|
|
// the given number of bytes have been read
|
|
void UnpackRaw(void* rawdata, u32 rawdatalen);
|
|
// UnpackString: unpack a string from the raw data stream
|
|
void UnpackString(CStr8& result);
|
|
|
|
private:
|
|
// the data read from file and used during unpack operations
|
|
FileIOBuf m_Buf;
|
|
size_t m_Size;
|
|
// current unpack position in stream
|
|
u32 m_UnpackPos;
|
|
// version of the file currently being read
|
|
u32 m_Version;
|
|
};
|
|
|
|
#endif
|