Rewrote Read_file() to use our File class, and removed the unused functions

Direct_read_file() and Direct_write_file().

This change is completely untested, but that should be ok since Read_file()
(which is now the only function left in tony_gsdk.cpp) only seems to be
used in debug builds.

Perhaps we should remove these files completely?

svn-id: r10272
This commit is contained in:
Torbjörn Andersson 2003-09-17 14:33:47 +00:00
parent ccf2eb2cc6
commit 27b734a044
2 changed files with 23 additions and 120 deletions

View File

@ -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
//-----------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------
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
// FIXME: As far as I can see, this function is only used in debug
// builds, so maybe it should be removed completely?
FILE *fh=0; //file pointer
uint32 end;
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
}
//-----------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------

View File

@ -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