raze/polymer/eduke32/source/jmact/file_lib.h
hendricks266 fcf9beae6a Work-in-progress adjustment to the C code to compile under C++. It builds for me without errors using Win32 MinGW-GCC, but it still generates warning soup. No guarantees about MSVC or anything using SDL. Enable C++ by building with CPLUSPLUS=1. C remains the default and should compile with no change in setup.
Credit to Plagman for the idea and doing the work on the game side, which is included in this commit.

(Building as C++ will give us features with which we can make improvements and optimizations on the multiplayer code and Polymer.)

git-svn-id: https://svn.eduke32.com/eduke32@3116 1a8010ca-5511-0410-912e-c29ae57300e0
2012-11-05 02:49:08 +00:00

260 lines
8.1 KiB
C

//-------------------------------------------------------------------------
/*
Copyright (C) 1996, 2003 - 3D Realms Entertainment
This file is part of Duke Nukem 3D version 1.5 - Atomic Edition
Duke Nukem 3D is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Original Source: 1996 - Todd Replogle
Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms
*/
//-------------------------------------------------------------------------
#ifndef _file_lib_public
#define _file_lib_public
#ifdef EXTERNC
{
#endif
enum
{
filetype_binary,
filetype_text
};
enum
{
access_read,
access_write,
access_append
};
//==========================================================================
//
// SafeOpenWrite - Opens a file for writing, returns handle
//
//==========================================================================
int32_t SafeOpenWrite ( const char * filename, int32_t filetype );
//==========================================================================
//
// SafeOpenRead - Opens a file for reading, returns handle
//
//==========================================================================
int32_t SafeOpenRead ( const char * filename, int32_t filetype );
//==========================================================================
//
// SafeOpenAppend - Opens a file for appending, returns handle
//
//==========================================================================
int32_t SafeOpenAppend ( const char * filename, int32_t filetype );
//==========================================================================
//
// SafeClose - Close a file denoted by the file handle
//
//==========================================================================
void SafeClose ( int32_t handle );
//==========================================================================
//
// SafeFileExists - Checks for existence of file
//
//==========================================================================
int32_t SafeFileExists ( const char * filename );
//==========================================================================
//
// SafeFileLength - Get length of a file pointed to by handle
//
//==========================================================================
int32_t SafeFileLength ( int32_t handle );
//==========================================================================
//
// SafeRead - reads from a handle
//
// handle - handle of file to read from
//
// buffer - pointer of buffer to read into
//
// count - number of bytes to read
//
//==========================================================================
void SafeRead (int32_t handle, void *buffer, int32_t count);
//==========================================================================
//
// SafeWrite - writes to a handle
//
// handle - handle of file to write to
//
// buffer - pointer of buffer to write from
//
// count - number of bytes to write
//
//==========================================================================
void SafeWrite (int32_t handle, void *buffer, int32_t count);
//==========================================================================
//
// LoadFile - Load a file
//
// filename - name of file
//
// bufferptr - pointer to pointer of buffer to read into
//
// returns number of bytes read
//
//==========================================================================
int32_t LoadFile ( const char * filename, void ** bufferptr );
//==========================================================================
//
// SaveFile - Save a file
//
// filename - name of file
//
// bufferptr - pointer to buffer to write from
//
// count - number of bytes to write
//
//==========================================================================
void SaveFile ( const char * filename, void * bufferptr, int32_t count );
//==========================================================================
//
// GetPathFromEnvironment - Add a pathname described in an environment
// variable to a standard filename.
//
// fullname - final string containing entire path
//
// envname - string naming enivronment variable
//
// filename - standard filename
//
//==========================================================================
void GetPathFromEnvironment( char *fullname, const char *envname, const char *filename );
//==========================================================================
//
// DefaultExtension - Add a default extension to a path
//
// path - a path
//
// extension - default extension should include '.'
//
//==========================================================================
void DefaultExtension (char *path, const char *extension);
//==========================================================================
//
// DefaultPath - Add the default path to a filename if it doesn't have one
//
// path - filename
//
// extension - default path
//
//==========================================================================
void DefaultPath (char *path, const char *basepath);
//==========================================================================
//
// ExtractFileBase - Extract the base filename from a path
//
// path - the path
//
// dest - where the file base name will be placed
//
//==========================================================================
void ExtractFileBase (char *path, char *dest);
//==========================================================================
//
// GetExtension - Extract the extension from a name
// returns true if an extension is found
// returns false otherwise
//
//==========================================================================
int32_t GetExtension( char *filename, char *extension );
//==========================================================================
//
// SetExtension - Sets the extension from a name. Assumes that enough
// space is left at the end of the string to hold an extension.
//
//==========================================================================
void SetExtension( char *filename, const char *extension );
#ifdef __MSDOS__
//******************************************************************************
//
// GetPath
//
// Purpose
// To parse the directory entered by the user to make the directory.
//
// Parms
// Path - the path to be parsed.
//
// Returns
// Pointer to next path
//
//******************************************************************************
char * GetPath (char * path, char *dir);
//******************************************************************************
//
// ChangeDirectory ()
//
// Purpose
// To change to a directory. Checks for drive changes.
//
// Parms
// path - The path to change to.
//
// Returns
// TRUE - If successful.
// FALSE - If unsuccessful.
//
//******************************************************************************
int32_t ChangeDirectory (char * path);
//******************************************************************************
//
// ChangeDrive ()
//
// Purpose
// To change drives.
//
// Parms
// drive - The drive to change to.
//
// Returns
// TRUE - If drive change successful.
// FALSE - If drive change unsuccessful.
//
//******************************************************************************
int32_t ChangeDrive (char *drive);
#endif
#ifdef EXTERNC
};
#endif
#endif