Initial Source Code commit
Initial commit of original Tiberian Dawn and Red Alert source code converted to build as DLLs, and compatible with the release version of Command & Conquer Remastered.
This commit is contained in:
parent
ea8ecc76fa
commit
03416d24e1
1038 changed files with 629779 additions and 0 deletions
180
TIBERIANDAWN/WIN32LIB/_FILE.H
Normal file
180
TIBERIANDAWN/WIN32LIB/_FILE.H
Normal file
|
@ -0,0 +1,180 @@
|
|||
//
|
||||
// Copyright 2020 Electronic Arts Inc.
|
||||
//
|
||||
// TiberianDawn.DLL and RedAlert.dll and corresponding source code 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 3 of the License, or (at your option) any later version.
|
||||
|
||||
// TiberianDawn.DLL and RedAlert.dll and corresponding source code is distributed
|
||||
// in the hope that it will be useful, but with permitted additional restrictions
|
||||
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT
|
||||
// distributed with this program. You should have received a copy of the
|
||||
// GNU General Public License along with permitted additional restrictions
|
||||
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
|
||||
|
||||
/***************************************************************************
|
||||
;** C O N F I D E N T I A L --- W E S T W O O D A S S O C I A T E S **
|
||||
;***************************************************************************
|
||||
;* *
|
||||
;* Project Name : Library - Filio header stuff. *
|
||||
;* *
|
||||
;* File Name : FILE.H *
|
||||
;* *
|
||||
;* Programmer : Scott K. Bowen *
|
||||
;* *
|
||||
;* Start Date : September 13, 1993 *
|
||||
;* *
|
||||
;* Last Update : April 11, 1994 *
|
||||
;* *
|
||||
;*-------------------------------------------------------------------------*
|
||||
;* Functions: *
|
||||
;* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
|
||||
#ifndef FILE_H
|
||||
#include "file.h"
|
||||
#endif
|
||||
|
||||
#ifndef _FILE_H
|
||||
#define _FILE_H
|
||||
|
||||
|
||||
/*=========================================================================*/
|
||||
/* Fileio defines */
|
||||
/*=========================================================================*/
|
||||
|
||||
#define LIB_CDROM TRUE
|
||||
|
||||
#define MODE_OLDFILE (O_RDONLY | O_BINARY)
|
||||
#define MODE_NEWFILE (O_WRONLY | O_BINARY | O_CREAT | O_TRUNC)
|
||||
#define MODE_READWRITE (O_RDWR | O_BINARY)
|
||||
|
||||
#define FILEOPENERROR -1
|
||||
#define FILEOPEN(f,m) ibm_open(f, m, (((UWORD) m) == MODE_OLDFILE) ? S_IREAD : (S_IREAD | S_IWRITE))
|
||||
|
||||
#define FILECLOSE(fd) ibm_close(fd)
|
||||
#define FILEREAD(f,b,n) ibm_read(f,b,(WORD)(n))
|
||||
#define FILEWRITE(f,b,n) ibm_write(f,b,(WORD)(n))
|
||||
#define FILESEEK(f,b,n) ibm_lseek(f, b, n)
|
||||
#define FILEDELETE(f) ibm_unlink(f)
|
||||
#define CHANGEDIR(p) ibm_chdir(p)
|
||||
|
||||
#define FILENAMESIZE 13
|
||||
#define IO_CHUNK_SIZE 0xfff0UL
|
||||
|
||||
/*
|
||||
** Maximum number of file handles
|
||||
*/
|
||||
#define TABLE_MAX 20
|
||||
|
||||
|
||||
/*=========================================================================*/
|
||||
/* The file handle table */
|
||||
/*=========================================================================*/
|
||||
typedef struct {
|
||||
BOOL Empty; // Is this handle empty?
|
||||
WORD Handle; // DOS file handle (0 = resident).
|
||||
LONG Pos; // Current file position.
|
||||
LONG Start; // Offset of file from pointer.
|
||||
WORD Index; // FileData[] index.
|
||||
WORD Mode; // Access mode (WW).
|
||||
BYTE *Name; // File name pointer.
|
||||
} FileHandleType;
|
||||
|
||||
|
||||
/*=========================================================================*/
|
||||
/* The following prototypes are for the file: FILEIO.CPP */
|
||||
/*=========================================================================*/
|
||||
|
||||
WORD ibm_getdisk(VOID);
|
||||
WORD ibm_setdisk(WORD drive);
|
||||
WORD ibm_close(WORD handle);
|
||||
WORD ibm_unlink(BYTE const *name);
|
||||
LONG ibm_lseek(WORD handle, LONG offset, WORD where);
|
||||
UWORD ibm_read(WORD handle, VOID *ptr, UWORD bytes);
|
||||
UWORD ibm_write(WORD handle, VOID *ptr, UWORD bytes);
|
||||
WORD ibm_open(BYTE const *name, UWORD mode, WORD attrib);
|
||||
WORD ibm_chdir(BYTE const *path);
|
||||
|
||||
/*=========================================================================*/
|
||||
/* The following prototypes are for the file: FILELIB.CPP */
|
||||
/*=========================================================================*/
|
||||
|
||||
WORD cdecl Do_Open_Error(FileErrorType errormsgnum, BYTE const *file_name);
|
||||
VOID cdecl Do_IO_Error(FileErrorType errormsgnum, BYTE const *filename);
|
||||
LONG cdecl Read_File_With_Recovery( WORD handle, VOID *buf, UWORD bytes );
|
||||
WORD cdecl Open_File_With_Recovery( BYTE const *file_name, UWORD mode );
|
||||
BOOL cdecl Cache_File(WORD index, WORD file_handle);
|
||||
|
||||
|
||||
/*=========================================================================*/
|
||||
/* The following prototypes are for the file: DEVICES.ASM */
|
||||
/*=========================================================================*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern VOID Get_Devices(VOID);
|
||||
extern WORD Is_Device_Real(WORD device);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/*=========================================================================*/
|
||||
/* The following prototypes are for the file: DEVTABLE.ASM */
|
||||
/*=========================================================================*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern VOID Init_Device_Table(BYTE *table);
|
||||
extern WORD Max_Device(VOID);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*=========================================================================*/
|
||||
/* The following prototypes are for the file: HARDERR.ASM */
|
||||
/*=========================================================================*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern VOID Install_Hard_Error_Handler(VOID);
|
||||
extern VOID Remove_Hard_Error_Handler(VOID);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*=========================================================================*/
|
||||
/* Globale variables in the fileio system. */
|
||||
/*=========================================================================*/
|
||||
|
||||
extern BYTE CallingDOSInt;
|
||||
extern "C" extern BYTE MaxDevice,DefaultDrive;
|
||||
extern BYTE MultiDriveSearch;
|
||||
extern FileDataType *FileDataPtr;
|
||||
extern FileHandleType FileHandleTable[TABLE_MAX];
|
||||
extern UWORD NumFiles; // Number of files, except PAK, in file table.
|
||||
extern UWORD NumPAKFiles; // Number of PAK files in filetable.
|
||||
extern VOID *FileCacheHeap; // Pointer to the cache in memory.
|
||||
extern WORD DiskNumber;
|
||||
extern WORD MaxDirNum;
|
||||
|
||||
|
||||
/*=========================================================================*/
|
||||
|
||||
|
||||
|
||||
#endif // _FILE_H
|
||||
|
||||
|
Reference in a new issue