diff options
Diffstat (limited to 'src/randtiles.h')
| -rw-r--r-- | src/randtiles.h | 63 | 
1 files changed, 63 insertions, 0 deletions
| diff --git a/src/randtiles.h b/src/randtiles.h new file mode 100644 index 0000000..ab2553d --- /dev/null +++ b/src/randtiles.h @@ -0,0 +1,63 @@ +#ifndef __NEWER_RANDTILES_H
 +#define __NEWER_RANDTILES_H
 +
 +#include <common.h>
 +#include "fileload.h"
 +
 +#define RAND_CHECK_HORZ
 +#define RAND_CHECK_VERT
 +#define RAND_CHECK_BOTH
 +
 +struct RandTiles_Header {
 +	u32 magic;
 +	u32 sectionCount;
 +};
 +
 +struct RandTiles_Section {
 +	u32 nameHash;
 +	u32 entryCount;
 +};
 +
 +struct RandTiles_Entry {
 +	u16 startTile;
 +	u16 endTile;
 +	u8 count;
 +	u8 type;
 +	u16 reserved;
 +	u32 dataOffset;
 +};
 +
 +inline u32 RandTiles_GetSectionCount(void *file) {
 +	return ((RandTiles_Header*)file)->sectionCount;
 +}
 +
 +inline u32 *RandTiles_GetOffsets(void *file) {
 +	return (u32*)(((RandTiles_Header*)file)+1);
 +}
 +
 +inline RandTiles_Section *RandTiles_GetSection(void *file, int id) {
 +	u32 offs = RandTiles_GetOffsets(file)[id];
 +	return (RandTiles_Section*)(((char*)file)+offs);
 +};
 +
 +inline RandTiles_Entry *RandTiles_GetTiles(void *file, RandTiles_Section *section) {
 +	return (RandTiles_Entry*)(section+1);
 +}
 +
 +inline RandTiles_Entry *RandTiles_GetTiles(void *file, int sectionID) {
 +	return (RandTiles_Entry*)(RandTiles_GetSection(file, sectionID)+1);
 +}
 +
 +inline char *RandTiles_GetName(void *file, RandTiles_Section *section) {
 +	return ((char*)file)+section->nameOffset;
 +}
 +
 +inline u16 *RandTiles_GetData(void *file, RandTiles_Entry *entry) {
 +	return (u16*)(((char*)file)+entry->dataOffset);
 +}
 +
 +u32 djb2(u8 *str);
 +RandTiles_Section *RandTiles_Search(void *file, u32 nameHash);
 +
 +
 +#endif
 | 
