Files
TeslaRel410/CODE/RP/MUNGA/FILESTRM.HPP
T
CydandClaude Fable 5 fdd9ac9d97 Initial import: Tesla Release 4.10 (Tesla:BattleTech & Tesla:Red Planet)
Archival snapshot of the Virtual World Entertainment Tesla cockpit
software, 1994-1996: MUNGA engine and L4 pod layer source (Borland
C++ 5.0), BT/RP game code, and game content (models, audio, maps,
gauges, Division renderer data). Includes third-party libraries:
Division dVS/DPL graphics, HMI SOS audio, WATTCP networking.

Files are preserved byte-for-byte (.gitattributes disables all
line-ending conversion). README.md documents the layout, target
hardware, and toolchain.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 13:21:58 -05:00

119 lines
2.9 KiB
C++

//===========================================================================//
// File: filestrm.hpp //
// Project: MUNGA Brick: Resource Manager //
// Contents: Implementation Details of resource management //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
//---------------------------------------------------------------------------//
// Copyright (C) 1996, Virtual World Entertainment, Inc. //
// PROPRIETARY AND CONFIDENTIAL //
//===========================================================================//
#if !defined(FILESTRM_HPP)
# define FILESTRM_HPP
# if !defined(MEMSTRM_HPP)
# include <memstrm.hpp>
# endif
//##########################################################################
//######################## FileStream ################################
//##########################################################################
class FileStream:
public MemoryStream
{
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Constructors
//
public:
FileStream(
const char* file_name = NULL,
Logical writable = False
);
~FileStream()
{Close();}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Status functions
//
public:
void*
GetPointer() const
{
Fail("No implementation possible for FileStream::GetPointer()");
return NULL;
}
void
SetPointer(void *new_pointer)
{Fail("No implementation possible for FileStream::SetPointer(void*)");}
void
SetPointer(size_t index);
MemoryStream&
AdvancePointer(size_t count);
MemoryStream&
RewindPointer(size_t count);
MemoryStream&
ReadBytes(
void *ptr,
size_t number_of_bytes
);
MemoryStream&
WriteBytes(
const void *ptr,
size_t number_of_bytes
);
void
Open(
const char* file_name = NULL,
Logical writable = False
);
void
Close();
Logical
IsFileOpened()
{return fileHandle != -1;}
Logical
TestInstance() const;
protected:
int fileHandle;
Logical readOnly;
static int
OpenImplementation(
const char* file_name,
Logical read_only
);
static void
CloseImplementation(int file_handle);
static size_t
SeekImplementation(
int file_handle,
size_t where,
Logical from_end = False
);
static size_t
ReadImplementation(
int file_handle,
void *buffer,
size_t length
);
static size_t
WriteImplementation(
int file_handle,
const void* buffer,
size_t length
);
};
#endif