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>
119 lines
2.9 KiB
C++
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
|
|
|