Niotso  git revision 558726a9f13d7c3423a683dd2f4323589b66c310
The New Implementation of The Sims Online
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Classes | Macros | Typedefs | Enumerations | Functions | Variables
iff.h File Reference
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <limits.h>

Go to the source code of this file.

Classes

struct  IFFChunk_s
 
struct  IFFFile_s
 
struct  IFF_BCON_s
 
struct  IFFInstruction_s
 
struct  IFFBehavior_s
 
struct  IFFSpriteInfo_s
 
struct  IFFDrawAngle_s
 
struct  IFFDrawGroup_s
 
struct  IFFConstant_s
 
struct  IFFConstantList_s
 
struct  IFFFunction_s
 
struct  IFFFunctionTable_s
 
struct  IFFPalette_s
 
struct  IFFSprite_s
 
struct  IFFSpriteList_s
 
struct  IFFStringPair_s
 
struct  IFFLanguageSet_s
 
struct  IFF_STR_s
 
struct  IFFTemplateField_s
 
struct  IFFTemplate_s
 
struct  IFFRangeEntry_s
 
struct  IFFRangeSet_s
 
struct  IFFResource_s
 
struct  IFFResouceType_s
 
struct  IFFResourceMap_s
 

Macros

#define read_int32be(x)   (signed)(((x)[0]<<(8*3)) | ((x)[1]<<(8*2)) | ((x)[2]<<(8*1)) | ((x)[3]<<(8*0)))
 
#define read_int24be(x)   (signed)(((x)[0]<<(8*2)) | ((x)[1]<<(8*1)) | ((x)[2]<<(8*0)))
 
#define read_int16be(x)   (signed)(((x)[0]<<(8*1)) | ((x)[1]<<(8*0)))
 
#define read_int8be(x)   (signed)(((x)[0]<<(8*0)))
 
#define read_int32le(x)   (signed)(((x)[0]<<(8*0)) | ((x)[1]<<(8*1)) | ((x)[2]<<(8*2)) | ((x)[3]<<(8*3)))
 
#define read_int24le(x)   (signed)(((x)[0]<<(8*0)) | ((x)[1]<<(8*1)) | ((x)[2]<<(8*2)))
 
#define read_int16le(x)   (signed)(((x)[0]<<(8*0)) | ((x)[1]<<(8*1)))
 
#define read_int8le(x)   (signed)(((x)[0]<<(8*0)))
 
#define read_uint32be(x)   (unsigned)(((x)[0]<<(8*3)) | ((x)[1]<<(8*2)) | ((x)[2]<<(8*1)) | ((x)[3]<<(8*0)))
 
#define read_uint24be(x)   (unsigned)(((x)[0]<<(8*2)) | ((x)[1]<<(8*1)) | ((x)[2]<<(8*0)))
 
#define read_uint16be(x)   (unsigned)(((x)[0]<<(8*1)) | ((x)[1]<<(8*0)))
 
#define read_uint8be(x)   (unsigned)(((x)[0]<<(8*0)))
 
#define read_uint32le(x)   (unsigned)(((x)[0]<<(8*0)) | ((x)[1]<<(8*1)) | ((x)[2]<<(8*2)) | ((x)[3]<<(8*3)))
 
#define read_uint24le(x)   (unsigned)(((x)[0]<<(8*0)) | ((x)[1]<<(8*1)) | ((x)[2]<<(8*2)))
 
#define read_uint16le(x)   (unsigned)(((x)[0]<<(8*0)) | ((x)[1]<<(8*1)))
 
#define read_uint8le(x)   (unsigned)(((x)[0]<<(8*0)))
 

Typedefs

typedef struct IFFChunk_s IFFChunk
 
typedef struct IFFFile_s IFFFile
 
typedef struct IFF_BCON_s IFF_BCON
 
typedef struct IFFInstruction_s IFFInstruction
 
typedef struct IFFBehavior_s IFFBehavior
 
typedef struct IFFSpriteInfo_s IFFSpriteInfo
 
typedef struct IFFDrawAngle_s IFFDrawAngle
 
typedef struct IFFDrawGroup_s IFFDrawGroup
 
typedef struct IFFConstant_s IFFConstant
 
typedef struct IFFConstantList_s IFFConstantList
 
typedef struct IFFFunction_s IFFFunction
 
typedef struct IFFFunctionTable_s IFFFunctionTable
 
typedef struct IFFPalette_s IFFPalette
 
typedef struct IFFSprite_s IFFSprite
 
typedef struct IFFSpriteList_s IFFSpriteList
 
typedef struct IFFStringPair_s IFFStringPair
 
typedef struct IFFLanguageSet_s IFFLanguageSet
 
typedef struct IFF_STR_s IFFString
 
typedef struct IFFTemplateField_s IFFTemplateField
 
typedef struct IFFTemplate_s IFFTemplate
 
typedef struct IFFRangeEntry_s IFFRangeEntry
 
typedef struct IFFRangeSet_s IFFRangeSet
 
typedef struct IFFResource_s IFFResource
 
typedef struct IFFResouceType_s IFFResourceType
 
typedef struct IFFResourceMap_s IFFResourceMap
 

Enumerations

enum  IFFDrawDirection { IFFDIRECTION_NORTHEAST = 1, IFFDIRECTION_SOUTHEAST = 4, IFFDIRECTION_NORTHWEST = 16, IFFDIRECTION_SOUTHWEST = 64 }
 
enum  IFFDrawZoom { IFFZOOM_FAR = 1, IFFZOOM_MIDDLE, IFFZOOM_CLOSE }
 
enum  IFFSpriteFlags { IFFSPRITE_FLAG_COLOR = 1, IFFSPRITE_FLAG_ZBUFFER = 2, IFFSPRITE_FLAG_ALPHA = 4 }
 
enum  IFFLanguage {
  IFFLANG_DEFAULT = 0, IFFLANG_EN_US = 1, IFFLANG_EN_INTERNATIONAL = 2, IFFLANG_FRENCH = 3,
  IFFLANG_GERMAN = 4, IFFLANG_ITALIAN = 5, IFFLANG_SPANISH = 6, IFFLANG_DUTCH = 7,
  IFFLANG_DANISH = 8, IFFLANG_SWEDISH = 9, IFFLANG_NORWEGIAN = 10, IFFLANG_FINNISH = 11,
  IFFLANG_HEBREW = 12, IFFLANG_RUSSIAN = 13, IFFLANG_PORTUGUESE = 14, IFFLANG_JAPANESE = 15,
  IFFLANG_POLISH = 16, IFFLANG_CHINESE_SIMPLIFIED = 17, IFFLANG_CHINESE_TRADITIONAL = 18, IFFLANG_THAI = 19,
  IFFLANG_KOREAN = 20
}
 

Functions

int iff_depalette (IFFSprite *Sprite, const IFFPalette *Palette)
 
int iff_create (IFFFile *IFFFileInfo)
 
int iff_read_header (IFFFile *IFFFileInfo, const uint8_t *Buffer, unsigned FileSize)
 
IFFChunkiff_add_chunk (IFFFile *IFFFileInfo)
 
int iff_read_chunk (IFFChunk *ChunkInfo, const uint8_t *Buffer, unsigned MaxChunkSize)
 
int iff_parse_chunk (IFFChunk *ChunkInfo, const uint8_t *Buffer)
 
int iff_enumerate_chunks (IFFFile *IFFFileInfo, const uint8_t *Buffer, unsigned BufferSize)
 
IFFChunkiff_find_chunk (IFFFile *IFFFileInfo, const char *Type, int ChunkID)
 
void iff_free_chunk (IFFChunk *ChunkInfo)
 
void iff_delete_chunk (IFFFile *IFFFileInfo, int Position)
 
void iff_delete (IFFFile *IFFFileInfo)
 

Variables

static const uint8_t Header_IFF [] = "IFF FILE 2.5:TYPE FOLLOWED BY SIZE\0 JAMIE DOORNBOS & MAXIS 1"
 

Macro Definition Documentation

#define read_int16be (   x)    (signed)(((x)[0]<<(8*1)) | ((x)[1]<<(8*0)))
#define read_int16le (   x)    (signed)(((x)[0]<<(8*0)) | ((x)[1]<<(8*1)))
#define read_int24be (   x)    (signed)(((x)[0]<<(8*2)) | ((x)[1]<<(8*1)) | ((x)[2]<<(8*0)))
#define read_int24le (   x)    (signed)(((x)[0]<<(8*0)) | ((x)[1]<<(8*1)) | ((x)[2]<<(8*2)))
#define read_int32be (   x)    (signed)(((x)[0]<<(8*3)) | ((x)[1]<<(8*2)) | ((x)[2]<<(8*1)) | ((x)[3]<<(8*0)))
#define read_int32le (   x)    (signed)(((x)[0]<<(8*0)) | ((x)[1]<<(8*1)) | ((x)[2]<<(8*2)) | ((x)[3]<<(8*3)))
#define read_int8be (   x)    (signed)(((x)[0]<<(8*0)))
#define read_int8le (   x)    (signed)(((x)[0]<<(8*0)))
#define read_uint16be (   x)    (unsigned)(((x)[0]<<(8*1)) | ((x)[1]<<(8*0)))
#define read_uint16le (   x)    (unsigned)(((x)[0]<<(8*0)) | ((x)[1]<<(8*1)))
#define read_uint24be (   x)    (unsigned)(((x)[0]<<(8*2)) | ((x)[1]<<(8*1)) | ((x)[2]<<(8*0)))
#define read_uint24le (   x)    (unsigned)(((x)[0]<<(8*0)) | ((x)[1]<<(8*1)) | ((x)[2]<<(8*2)))
#define read_uint32be (   x)    (unsigned)(((x)[0]<<(8*3)) | ((x)[1]<<(8*2)) | ((x)[2]<<(8*1)) | ((x)[3]<<(8*0)))
#define read_uint32le (   x)    (unsigned)(((x)[0]<<(8*0)) | ((x)[1]<<(8*1)) | ((x)[2]<<(8*2)) | ((x)[3]<<(8*3)))
#define read_uint8be (   x)    (unsigned)(((x)[0]<<(8*0)))
#define read_uint8le (   x)    (unsigned)(((x)[0]<<(8*0)))

Typedef Documentation

typedef struct IFF_BCON_s IFF_BCON
typedef struct IFFBehavior_s IFFBehavior
typedef struct IFFChunk_s IFFChunk
typedef struct IFFConstant_s IFFConstant
typedef struct IFFDrawAngle_s IFFDrawAngle
typedef struct IFFDrawGroup_s IFFDrawGroup
typedef struct IFFFile_s IFFFile
typedef struct IFFFunction_s IFFFunction
typedef struct IFFPalette_s IFFPalette
typedef struct IFFRangeSet_s IFFRangeSet
typedef struct IFFResource_s IFFResource
typedef struct IFFSprite_s IFFSprite
typedef struct IFF_STR_s IFFString
typedef struct IFFTemplate_s IFFTemplate

Enumeration Type Documentation

Enumerator
IFFDIRECTION_NORTHEAST 
IFFDIRECTION_SOUTHEAST 
IFFDIRECTION_NORTHWEST 
IFFDIRECTION_SOUTHWEST 
Enumerator
IFFZOOM_FAR 
IFFZOOM_MIDDLE 
IFFZOOM_CLOSE 
Enumerator
IFFLANG_DEFAULT 
IFFLANG_EN_US 
IFFLANG_EN_INTERNATIONAL 
IFFLANG_FRENCH 
IFFLANG_GERMAN 
IFFLANG_ITALIAN 
IFFLANG_SPANISH 
IFFLANG_DUTCH 
IFFLANG_DANISH 
IFFLANG_SWEDISH 
IFFLANG_NORWEGIAN 
IFFLANG_FINNISH 
IFFLANG_HEBREW 
IFFLANG_RUSSIAN 
IFFLANG_PORTUGUESE 
IFFLANG_JAPANESE 
IFFLANG_POLISH 
IFFLANG_CHINESE_SIMPLIFIED 
IFFLANG_CHINESE_TRADITIONAL 
IFFLANG_THAI 
IFFLANG_KOREAN 
Enumerator
IFFSPRITE_FLAG_COLOR 
IFFSPRITE_FLAG_ZBUFFER 
IFFSPRITE_FLAG_ALPHA 

Function Documentation

IFFChunk* iff_add_chunk ( IFFFile IFFFileInfo)
int iff_create ( IFFFile IFFFileInfo)
void iff_delete ( IFFFile IFFFileInfo)
void iff_delete_chunk ( IFFFile IFFFileInfo,
int  Position 
)
int iff_depalette ( IFFSprite Sprite,
const IFFPalette Palette 
)
int iff_enumerate_chunks ( IFFFile IFFFileInfo,
const uint8_t *  Buffer,
unsigned  BufferSize 
)
IFFChunk* iff_find_chunk ( IFFFile IFFFileInfo,
const char *  Type,
int  ChunkID 
)
void iff_free_chunk ( IFFChunk ChunkInfo)
int iff_parse_chunk ( IFFChunk ChunkInfo,
const uint8_t *  Buffer 
)
int iff_read_chunk ( IFFChunk ChunkInfo,
const uint8_t *  Buffer,
unsigned  MaxChunkSize 
)
int iff_read_header ( IFFFile IFFFileInfo,
const uint8_t *  Buffer,
unsigned  FileSize 
)

Variable Documentation

const uint8_t Header_IFF[] = "IFF FILE 2.5:TYPE FOLLOWED BY SIZE\0 JAMIE DOORNBOS & MAXIS 1"
static