diff options
-rw-r--r-- | sword2/tony_gsdk.cpp | 135 | ||||
-rw-r--r-- | sword2/tony_gsdk.h | 8 |
2 files changed, 23 insertions, 120 deletions
diff --git a/sword2/tony_gsdk.cpp b/sword2/tony_gsdk.cpp index 364fafe191..b401e7223e 100644 --- a/sword2/tony_gsdk.cpp +++ b/sword2/tony_gsdk.cpp @@ -17,133 +17,42 @@ * $Header$ */ -//=================================================================================================================== -// -// File - tony_gsdk.cpp -// -//=================================================================================================================== - - -//general odds and ends - -#include <sys/stat.h> -//#include <fcntl.h> -//#include <io.h> -#include <stdarg.h> -#include <stdio.h> -#include <stdlib.h> +// general odds and ends #include "stdafx.h" -//#include "src\driver96.h" +#include "driver/driver96.h" #include "debug.h" -#include "header.h" -#include "layers.h" #include "memory.h" -#include "protocol.h" -#include "resman.h" #include "tony_gsdk.h" +#include "sword2.h" +#include "common/file.h" -// TODO replace with file class - -//----------------------------------------------------------------------------------------------------------------------- -//----------------------------------------------------------------------------------------------------------------------- -uint32 Read_file(const char *name, mem **membloc, uint32 uid) //Tony25Apr96 -{ -//read the file in and place into an allocated MEM_float block -//used for non resources manager files - stuff like fonts, etc. -//returns bytes read or 0 for error +uint32 Read_file(const char *name, mem **membloc, uint32 uid) { // Tony25Apr96 + // read the file in and place into an allocated MEM_float block - FILE *fh=0; //file pointer - uint32 end; + // FIXME: As far as I can see, this function is only used in debug + // builds, so maybe it should be removed completely? + File fh; + uint32 size; - - fh = fopen(name, "rb"); //open for binary reading - - if (fh==NULL) - { Zdebug("Read_file cannot open %s", name); - return(0); + if (!fh.open(name, g_sword2->getGameDataPath())) { + Zdebug("Read_file cannot open %s", name); + return 0; } -//ok, find the length and read the file in - fseek(fh, 0, SEEK_END); //get size of file - end = ftell(fh); //finally got the end + size = fh.size(); - *membloc= Twalloc(end, MEM_float, uid); //reserve enough floating memory for the file + // reserve enough floating memory for the file + *membloc = Twalloc(size, MEM_float, uid); - fseek( fh, 0, SEEK_SET ); //back to beginning of file - - if (fread( (*membloc)->ad, sizeof(char), end,fh) < end) - { Zdebug("Read_file read fail %d", name); - return(0); + if (fh.read((*membloc)->ad, size) != size) { + Zdebug("Read_file read fail %d", name); + return 0; } - fclose(fh); + fh.close(); - return(end); //ok, done it - return bytes read + //ok, done it - return bytes read + return size; } -//----------------------------------------------------------------------------------------------------------------------- -int32 Direct_read_file(const char *name, char *ad) //Tony1May96 -{ -//load the file directly into the memory location passed -//memory must be pre-allocated - - FILE *fh=0; //file pointer - uint32 end; - - - fh = fopen(name, "rb"); //open for binary reading - - if (fh==NULL) - { Zdebug("Direct_read_file cannot open %s", name); - return(0); - } - -//ok, find the length and read the file in - fseek(fh, 0, SEEK_END); //get size of file - end = ftell(fh); //finally got the end - fseek( fh, 0, SEEK_SET ); //back to beginning of file - - if (fread( ad, sizeof(char), end,fh) < end) - { Zdebug("Direct_read_file read fail %d", name); - return(0); - } - - fclose(fh); - - - return(end); //ok, done it - return bytes read -} -//----------------------------------------------------------------------------------------------------------------------- -int32 Direct_write_file(const char *name, char *ad, uint32 total_bytes) //Tony1May96 -{ -//load the file directly into the memory location passed - FILE *fh; - - fh = fopen(name, "wb"); //open for writing - - if (fh==NULL) - { Zdebug("Direct_write_file open fail %d", name); - return(-1); - } - - if (fwrite( ad, 1, total_bytes, fh)!=total_bytes) - { Zdebug("Direct_write_file write fail %d", name); - return(-1); - } - - fclose(fh); - - return(0); //ok, done it -} - -//----------------------------------------------------------------------------------------------------------------------- -//----------------------------------------------------------------------------------------------------------------------- -//----------------------------------------------------------------------------------------------------------------------- -//----------------------------------------------------------------------------------------------------------------------- -//----------------------------------------------------------------------------------------------------------------------- -//----------------------------------------------------------------------------------------------------------------------- -//----------------------------------------------------------------------------------------------------------------------- -//----------------------------------------------------------------------------------------------------------------------- -//----------------------------------------------------------------------------------------------------------------------- - diff --git a/sword2/tony_gsdk.h b/sword2/tony_gsdk.h index b6079b4804..ea580cc781 100644 --- a/sword2/tony_gsdk.h +++ b/sword2/tony_gsdk.h @@ -20,14 +20,8 @@ #ifndef TONY_GSDK #define TONY_GSDK -//#include "src\driver96.h" #include "memory.h" - - -uint32 Read_file(const char *name, mem **membloc, uint32 uid); -int32 Direct_read_file(const char *name, char *ad); -int32 Direct_write_file(const char *name, char *ad, uint32 total_bytes); - +uint32 Read_file(const char *name, mem **membloc, uint32 uid); #endif |