blob: fe172072b57640339ead96ce900ad08f6eda4a1a [file] [log] [blame]
//
// filesystem.h
// Duke3D
//
// Created by fabien sanglard on 12-12-19.
// Copyright (c) 2012 fabien sanglard. All rights reserved.
//
#ifndef Duke3D_filesystem_h
#define Duke3D_filesystem_h
#include "stdio.h"
#include "platform.h"
#define MAXGROUPFILES 4 /* Warning: Fix groupfil if this is changed */
extern int32_t groupefil_crc32[MAXGROUPFILES];
int32_t initgroupfile(const char *filename);
void uninitgroupfile(void);
uint16_t crc16(uint8_t *data_p, uint16_t length);
uint32_t crc32_update(uint8_t *buf, uint32_t length, uint32_t crc_to_update);
int32_t kopen4load(const char *filename, int openOnlyFromGRP);
int32_t kread(int32_t handle, void *buffer, int32_t leng);
int32_t kread8(int32_t handle, uint8_t *buffer);
int32_t kread16(int32_t handle, int16_t *buffer);
int32_t kread32(int32_t handle, int32_t *buffer);
int32_t klseek(int32_t handle, int32_t offset, int whence);
int32_t kfilelength(int32_t handle);
void kclose(int32_t handle);
void kdfread(void *buffer, size_t dasizeof, size_t count, int32_t fil);
void dfread(void *buffer, size_t dasizeof, size_t count, FILE *fil);
void dfwrite(void *buffer, size_t dasizeof, size_t count, FILE *fil);
int getGRPcrc32(int grpID);
char* getGameDir(void);
void setGameDir(char* gameDir);
int32_t TCkopen4load(const char *filename, int32_t readfromGRP);
int32_t filelength(int32_t fd);
#endif