Merge pull request #7 from OmniBlade/brender

Implements minimum changes to get BRender files to compile.
This commit is contained in:
Jeff Harris 2019-11-15 15:27:14 -08:00 committed by GitHub
commit 25eaebfbb9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 302 additions and 275 deletions

View File

@ -1,4 +1,6 @@
#include "diag.h"
#include "fwsetup.h"
#include "printf.h"
#include "stdlib.h"
#include <stdarg.h>
@ -16,11 +18,11 @@ void BrFailure(const char *s, ...) {
BrStrCpy(_diag_scratch, failure_header);
BrVSprintf(&_diag_scratch[sizeof(failure_header) - 1], s, args);
if (fw.diag->failure == NULL) {
if (fw.err->error == NULL) {
BrAbort();
}
fw.diag->failure(_diag_scratch);
fw.err->error(_diag_scratch);
va_end(args);
}
@ -34,11 +36,11 @@ void BrWarning(const char *s, ...) {
BrStrCpy(_diag_scratch, warning_header);
BrVSprintf(&_diag_scratch[sizeof(warning_header) - 1], s, args);
if (fw.diag->warning == NULL) {
if (fw.err->message == NULL) {
BrAbort();
}
fw.diag->warning(_diag_scratch);
fw.err->message(_diag_scratch);
va_end(args);
}
@ -51,33 +53,33 @@ void BrFatal(const char *name, int line, const char *s, ...) {
va_start(args, s);
n = BrSprintF(_diag_scratch, "FATAL %s:%d\n", name, line);
BrVSprintf(&_diag_scratch[n], s, args);
if (fw.diag->failure == NULL) {
if (fw.err->error == NULL) {
BrAbort();
}
fw.diag->failure(_diag_scratch);
fw.err->error(_diag_scratch);
va_end(args);
}
// Offset: 406
// Size: 95
void _BrAssert(const char *condition, const char *file, unsigned int line) {
if (fw.diag->error == NULL) {
if (fw.err->error == NULL) {
BrAbort();
}
BrSprintf(_diag_scratch, "ASSERTION FAILED %s:%d: \"%s\"\n", file, line, condition);
fw.diag->error(_diag_scratch);
fw.err->error(_diag_scratch);
}
// Offset: 512
// Size: 95
void _BrUAssert(const char *condition, const char *file, unsigned int line) {
if (fw.diag->error == NULL) {
if (fw.err->error == NULL) {
BrAbort();
}
BrSprintf(_diag_scratch, "ASSERTION FAILED %s:%d: \"%s\"\n", file, line, condition);
fw.diag->error(_diag_scratch);
fw.err->error(_diag_scratch);
}

View File

@ -4,6 +4,8 @@
#include "dr_types.h"
#include "br_types.h"
extern br_framework_state fw;
// Offset: 10
// Size: 324
br_error BrFwBegin();

View File

@ -2,7 +2,7 @@
#include <stdio.h>
// Global variables
br_filesystem BrStdioFilesystem == {
br_filesystem BrStdioFilesystem = {
"Standard IO",
BrStdioAttributes,
BrStdioOpenRead,
@ -44,7 +44,7 @@ void* BrStdioOpenRead(char *name, br_size_t n_magics, br_mode_test_cbfn *identif
void* BrStdioOpenWrite(char *name, int mode) {
FILE *fh;
if(text == BR_FS_MODE_TEXT) {
if(mode == BR_FS_MODE_TEXT) {
fh = fopen(name, "w");
} else {
fh = fopen(name, "wb");
@ -80,13 +80,13 @@ void BrStdioPutChar(int c, void *f) {
// Offset: 1075
// Size: 53
br_size_t BrStdioRead(void *buf, br_size_t size, unsigned int n, void *f) {
return fread(buf, size, nelems, f);
return fread(buf, size, n, f);
}
// Offset: 1141
// Size: 53
br_size_t BrStdioWrite(void *buf, br_size_t size, unsigned int n, void *f) {
return fwrite(buf, size, nelems, f);
return fwrite(buf, size, n, f);
}
// Offset: 1209

View File

@ -18,19 +18,19 @@ int BrMemCmp(void *s1, void *s2, size_t n) {
// Offset: 68
// Size: 50
void* BrMemCpy(void *s1, void *s2, size_t n) {
memcpy(d, s, n);
memcpy(s1, s2, n);
}
// Offset: 127
// Size: 50
void* BrMemSet(void *s, int c, size_t n) {
memset(d, c, n);
memset(s, c, n);
}
// Offset: 186
// Size: 47
char* BrStrCat(char *s1, char *s2) {
return strcat(d, s);
return strcat(s1, s2);
}
// Offset: 242
@ -44,16 +44,16 @@ int BrStrCmp(char *s1, char *s2) {
int BrStrICmp(char *s1, char *s2) {
// Windows is stricmp, while posix is strcasecmp
#ifdef _WIN32
return stricmp(s1, s2, n);
return stricmp(s1, s2);
#else
return strcasecmp(s1, s2, n);
return strcasecmp(s1, s2);
#endif
}
// Offset: 355
// Size: 47
char* BrStrCpy(char *s1, char *s2) {
return strcpy(d, s);
return strcpy(s1, s2);
}
// Offset: 411
@ -82,13 +82,13 @@ int BrStrNICmp(char *s1, char *s2, size_t n) {
// Offset: 586
// Size: 50
char* BrStrNCpy(char *s1, char *s2, size_t n) {
return strncpy(d, s, n);
return strncpy(s1, s2, n);
}
// Offset: 646
// Size: 49
char* BrStrRChr(char *s1, char c) {
return strrchr(s, c);
return strrchr(s1, c);
}
// Offset: 703
@ -106,25 +106,25 @@ char* BrGetEnv(char *name) {
// Offset: 800
// Size: 58
float BrStrToF(char *nptr, char **endptr) {
return strtof(num, endp);
return strtof(nptr, endptr);
}
// Offset: 867
// Size: 67
double BrStrToD(char *nptr, char **endptr) {
return strtod(num, endp);
return strtod(nptr, endptr);
}
// Offset: 943
// Size: 50
long BrStrToL(char *nptr, char **endptr, int base) {
return strtol(num, endp, base);
return strtol(nptr, endptr, base);
}
// Offset: 1003
// Size: 50
unsigned long BrStrToUL(char *nptr, char **endptr, int base) {
return strtoul(num, endp, base);
return strtoul(nptr, endptr, base);
}
// Offset: 1063
@ -148,13 +148,13 @@ br_boolean BrIsSpace(int c) {
// Offset: 1270
// Size: 59
br_boolean BrIsPrint(int c) {
return isprint(c)
return isprint(c);
}
// Offset: 1340
// Size: 50
br_int_32 BrVSprintf(char *buf, char *fmt, va_list args) {
return vsprintf(s, f, a);
return vsprintf(buf, fmt, args);
}
// Offset: 1402
@ -166,7 +166,7 @@ br_int_32 BrVSprintfN(char *buf, br_size_t buf_size, char *fmt, va_list args) {
n = vsprintf(tmp, fmt, args);
if ( buf_size - 1 < n ) {
if (buf_size - 1 < n) {
n = buf_size - 1;
}
@ -177,6 +177,6 @@ br_int_32 BrVSprintfN(char *buf, br_size_t buf_size, char *fmt, va_list args) {
// Offset: 1513
// Size: 50
br_int_32 BrVSScanf(char *buf, char *fmt, va_list args) {
return vsscanf(s, f, a);
return vsscanf(buf, fmt, args);
}

View File

@ -94,15 +94,15 @@ br_boolean BrIsPrint(int c);
// Offset: 1340
// Size: 50
br_int_32 BrVSprintf(char *buf, char *fmt, char **args);
br_int_32 BrVSprintf(char *buf, char *fmt, va_list args);
// Offset: 1402
// Size: 101
br_int_32 BrVSprintfN(char *buf, br_size_t buf_size, char *fmt, char **args);
br_int_32 BrVSprintfN(char *buf, br_size_t buf_size, char *fmt, va_list args);
// Offset: 1513
// Size: 50
br_int_32 BrVSScanf(char *buf, char *fmt, char **args);
br_int_32 BrVSScanf(char *buf, char *fmt, va_list args);
#endif

View File

@ -32,6 +32,6 @@ br_size_t BrStdlibInquire(br_uint_8 type) {
// Offset: 218
// Size: 40
br_uint_32 BrStdlibAlign(br_uint_8 type) {
return sizeof(void *)
return sizeof(void *);
}

View File

@ -2,7 +2,7 @@
tCheat gKev_keys[44];
char *gAbuse_text[10];
tEdit_func gEdit_funcs[10][18][8];
tEdit_func *gEdit_funcs[10][18][8];
char *gEdit_mode_names[10];
tToggle_element gToggle_array[43];
char gString[84];

View File

@ -39,8 +39,9 @@ void OpenDiagnostics() {
// Offset: 452
// Size: 34
void dprintf(char *fmt_string) {
}
//void dprintf(char *fmt_string) {
//}
// Conflicts with stdio.h
// Offset: 488
// Size: 57

View File

@ -22,7 +22,7 @@ void OpenDiagnostics();
// Offset: 452
// Size: 34
void dprintf(char *fmt_string);
// void dprintf(char *fmt_string);
// Offset: 488
// Size: 57

View File

@ -1,7 +1,7 @@
#include "piping.h"
tPiped_registration_snapshot gRegistration_snapshots[5];
tPipe_reset_proc gReset_procs[32];
tPipe_reset_proc *gReset_procs[32];
float gWall_severity;
tPipe_smudge_data *gSmudge_space;
tU32 gOldest_time;

View File

@ -1,10 +1,10 @@
#include "powerup.h"
int gPed_harvest_sounds[4];
tGot_proc gGot_procs[34];
tLose_proc gLose_procs[34];
tGot_proc *gGot_procs[34];
tLose_proc *gLose_procs[34];
tHeadup_icon gIcon_list[20];
tPeriodic_proc gPeriodic_procs[34];
tPeriodic_proc *gPeriodic_procs[34];
char *gFizzle_names[3];
br_pixelmap *gFizzle_in[3];
int gNumber_of_powerups;

View File

@ -816,7 +816,7 @@ void SetWallTexturingLevel(tWall_texturing_level pLevel) {
// Size: 82
// EAX: pLevel
void ReallySetWallTexturingLevel(tWall_texturing_level pLevel) {
tPMFMCB tweaker[3][3];
tPMFMCB *tweaker[3][3];
}
// Offset: 22536

View File

@ -29,15 +29,15 @@ typedef float br_scalar_f;
typedef float br_fraction_f;
typedef float br_ufraction_f;
typedef unsigned long br_colour;
typedef br_bounds3 br_bounds;
typedef br_bounds2_i br_bounds2i;
typedef br_bounds3_i br_bounds3i;
typedef br_bounds4_i br_bounds4i;
typedef struct br_bounds3 br_bounds;
typedef struct br_bounds2_i br_bounds2i;
typedef struct br_bounds3_i br_bounds3i;
typedef struct br_bounds4_i br_bounds4i;
typedef br_fixed_luf br_angle;
typedef br_value_tag br_value;
typedef br_associative_array_tag br_associative_array;
typedef br_tri_strip br_tri_fan;
typedef br_tri_strip br_quad_strip;
typedef struct br_value_tag br_value;
typedef struct br_associative_array_tag br_associative_array;
typedef struct br_tri_strip br_tri_fan;
typedef struct br_tri_strip br_quad_strip;
typedef enum br_filesystem_attributes {
BR_FS_ATTR_READABLE = 1,
@ -645,29 +645,51 @@ typedef br_uint_32 brmem_align_cbfn(br_uint_8);
typedef void br_resourcefree_cbfn(void*, br_uint_8, br_size_t);
typedef void br_diag_warning_cbfn(char*);
typedef void br_diag_failure_cbfn(char*);
typedef struct br_resource_class br_resource_class;
typedef br_resource_class* br_resclass_find_cbfn(char*);
typedef br_uint_32 br_resclass_enum_cbfn(br_resource_class*, void*);
typedef int br_qsort_cbfn(void*, void*);
typedef br_uint_32 br_resenum_cbfn(void*, void*);
typedef struct br_device br_device;
typedef br_device* br_device_begin_fn(char*);
typedef br_boolean br_device_enum_cbfn(char*, br_uint_32, char*, char*, char*, char*, void*);
typedef struct br_outfcty_desc br_outfcty_desc;
typedef br_boolean br_outfcty_enum_cbfn(char*, br_outfcty_desc*, void*);
typedef struct br_actor br_actor;
typedef struct br_model br_model;
typedef struct br_material br_material;
typedef void br_model_custom_cbfn(br_actor*, br_model*, br_material*, void*, br_uint_8, int);
typedef int br_fmt_report_cbfn(char*);
typedef struct br_matrix4 br_matrix4;
typedef void br_renderbounds_cbfn(br_actor*, br_model*, br_material*, void*, br_uint_8, br_matrix4*, br_int_32*);
typedef struct br_primitive br_primitive;
typedef struct br_order_table br_order_table;
typedef void br_primitive_cbfn(br_primitive*, br_actor*, br_model*, br_material*, br_order_table*, br_scalar*);
typedef br_material* br_material_find_cbfn(char*);
typedef br_uint_32 br_material_enum_cbfn(br_material*, void*);
typedef br_model* br_model_find_cbfn(char*);
typedef br_uint_32 br_model_enum_cbfn(br_model*, void*);
typedef struct br_pixelmap br_pixelmap;
typedef br_pixelmap* br_map_find_cbfn(char*);
typedef br_uint_32 br_map_enum_cbfn(br_pixelmap*, void*);
typedef br_pixelmap* br_table_find_cbfn(char*);
typedef br_uint_32 br_table_enum_cbfn(br_pixelmap*, void*);
typedef br_uint_32 br_actor_enum_cbfn(br_actor*, void*);
typedef struct br_vector3 br_vector3;
typedef int br_pick2d_cbfn(br_actor*, br_model*, br_material*, br_vector3*, br_vector3*, br_scalar, br_scalar, void*);
typedef struct br_matrix34 br_matrix34;
typedef int br_pick3d_cbfn(br_actor*, br_model*, br_material*, br_matrix34*, br_bounds*, void*);
typedef struct br_vector2 br_vector2;
typedef int br_modelpick2d_cbfn(br_model*, br_material*, br_vector3*, br_vector3*, br_scalar, int, int, int, br_vector3*, br_vector2*, void*);
typedef struct br_resource_class
{
br_uint_32 reserved;
char *identifier;
br_uint_8 res_class;
br_resourcefree_cbfn *free_cb;
br_uint_32 alignment;
} br_resource_class;
typedef struct br_filesystem {
char *identifier;
brfile_attributes_cbfn *attributes;
@ -692,14 +714,6 @@ typedef struct br_allocator {
brmem_align_cbfn *align;
} br_allocator;
typedef struct br_resource_class {
br_uint_32 reserved;
char *identifier;
br_uint_8 res_class;
br_resourcefree_cbfn *free_cb;
br_uint_32 alignment;
} br_resource_class;
typedef struct br_diaghandler {
char *identifier;
br_diag_warning_cbfn *warning;
@ -919,22 +933,22 @@ typedef struct br_transform {
br_euler e;
br_scalar _pad[7];
br_vector3 t;
};
}a;
struct {
br_quat q;
br_scalar _pad[5];
br_vector3 t;
};
}b;
struct {
br_vector3 look;
br_vector3 up;
br_scalar _pad[3];
br_vector3 t;
};
}c;
struct {
br_scalar _pad[9];
br_vector3 t;
};
}d;
};
} br_transform;
@ -988,6 +1002,7 @@ typedef struct br_font {
typedef struct br_object {
} br_object;
typedef struct br_token_value br_token_value;
typedef struct br_value_tag {
br_uint_32 u32;
br_boolean b;
@ -1032,6 +1047,7 @@ typedef struct br_token_value {
br_value v;
} br_token_value;
typedef struct br_pool_block br_pool_block;
typedef struct br_pool_block {
br_pool_block *next;
} br_pool_block;
@ -1169,6 +1185,7 @@ typedef struct br_face {
br_scalar d;
} br_face;
typedef struct br_primitive_list br_primitive_list;
typedef struct br_primitive_list {
br_primitive_list *next;
br_uint_32 prim_type;
@ -1373,16 +1390,18 @@ typedef struct br_3ds_options {
br_fmt_report_cbfn *report;
} br_3ds_options;
typedef br_registery br_registry;
typedef struct br_registery br_registry;
typedef void* br_find_failed_cbfn(char*);
typedef br_uint_32 br_enum_cbfn(void*, void*);
typedef void br_surface_fn(br_vertex*, br_fvector3*, br_scalar*);
typedef br_uint_32 br_face_surface_fn(br_vertex*, br_face*, int);
typedef struct br_active_light br_active_light;
typedef void br_light_sub_fn(br_vector3*, br_fvector3*, br_active_light*, br_scalar*);
typedef void br_model_update_cbfn(br_model*, br_uint_16);
typedef void br_material_update_cbfn(br_material*, br_uint_16);
typedef void br_table_update_cbfn(br_pixelmap*, br_uint_16);
typedef void br_map_update_cbfn(br_pixelmap*, br_uint_16);
typedef struct br_node br_node;
typedef struct br_node {
br_node *next;
br_node *prev;
@ -1394,6 +1413,7 @@ typedef struct br_list {
br_node *tail;
} br_list;
typedef struct br_simple_node br_simple_node;
typedef struct br_simple_node {
br_simple_node *next;
br_simple_node **prev;
@ -1432,6 +1452,19 @@ typedef struct br_active_clip_plane {
br_vector4 screen_plane;
} br_active_clip_plane;
typedef struct fw_fn_table {
br_surface_fn *light;
br_surface_fn *light_material;
br_surface_fn *light_vertex;
br_surface_fn *light_texture;
br_face_surface_fn *face_light;
br_light_sub_fn *direct;
br_light_sub_fn *point;
br_light_sub_fn *point_attn;
br_light_sub_fn *spot;
br_light_sub_fn *spot_attn;
} fw_fn_table;
typedef struct br_framework_state {
br_surface_fn *surface_fn;
br_surface_fn *surface_fn_after_map;
@ -1517,6 +1550,7 @@ typedef struct br_tv_template {
void *res;
} br_tv_template;
typedef struct br_object_container_dispatch br_object_container_dispatch;
typedef struct br_object_container {
br_object_container_dispatch *dispatch;
} br_object_container;
@ -1601,6 +1635,7 @@ typedef struct br_object_dispatch {
br_error (*_queryAllSize)(br_object*, br_size_t*);
} br_object_dispatch;
typedef struct br_geometry_stored_dispatch br_geometry_stored_dispatch;
typedef struct br_geometry_stored {
br_geometry_stored_dispatch *dispatch;
} br_geometry_stored;
@ -1629,6 +1664,7 @@ typedef struct br_renderer_state_stored {
br_renderer_state_stored_dispatch *dispatch;
} br_renderer_state_stored;
typedef struct br_buffer_stored_dispatch br_buffer_stored_dispatch;
typedef struct br_buffer_stored {
br_buffer_stored_dispatch *dispatch;
} br_buffer_stored;
@ -1809,7 +1845,7 @@ typedef struct br_geometry_stored_dispatch {
br_error (*_renderOnScreen)(br_geometry_stored*, br_renderer*);
} br_geometry_stored_dispatch;
typedef br_datafile br_datafile;
typedef struct br_datafile br_datafile;
typedef struct br_file_struct_member {
br_uint_16 type;
br_uint_32 offset;
@ -1864,6 +1900,7 @@ typedef struct br_file_enum {
br_file_enum_member *members;
} br_file_enum;
typedef struct br_device_clut_dispatch br_device_clut_dispatch;
typedef struct br_device_clut {
br_device_clut_dispatch *dispatch;
} br_device_clut;
@ -1892,6 +1929,16 @@ typedef struct br_device_clut_dispatch {
br_error (*_entryQueryMany)(br_device_clut*, br_colour*, br_int_32, br_int_32);
} br_device_clut_dispatch;
typedef struct br_image_section {
char *name;
void *base;
br_size_t mem_offset;
br_size_t mem_size;
br_uint_32 data_offset;
br_uint_32 data_size;
} br_image_section;
typedef struct br_image br_image;
typedef struct br_image {
br_node node;
char *identifier;
@ -1910,15 +1957,6 @@ typedef struct br_image {
void *type_pointer;
} br_image;
typedef struct br_image_section {
char *name;
void *base;
br_size_t mem_offset;
br_size_t mem_size;
br_uint_32 data_offset;
br_uint_32 data_size;
} br_image_section;
typedef struct br_open_device {
br_device *dev;
br_image *image;
@ -1944,6 +1982,7 @@ typedef struct br_geometry_dispatch {
br_error (*_queryAllSize)(br_object*, br_size_t*);
} br_geometry_dispatch;
typedef struct br_geometry_lighting_dispatch br_geometry_lighting_dispatch;
typedef struct br_geometry_lighting {
br_geometry_lighting_dispatch *dispatch;
} br_geometry_lighting;
@ -2058,6 +2097,7 @@ typedef struct br_renderer_facility_dispatch {
br_error (*_rendererNew)(br_renderer_facility*, br_renderer**, br_token_value*);
} br_renderer_facility_dispatch;
typedef struct br_output_facility_dispatch br_output_facility_dispatch;
typedef struct br_output_facility {
br_output_facility_dispatch *dispatch;
} br_output_facility;
@ -2096,6 +2136,7 @@ typedef struct br_output_facility_dispatch {
br_error (*_queryCapability)(br_output_facility*, br_token_value*, br_token_value*, br_size_t);
} br_output_facility_dispatch;
typedef struct br_primitive_state_dispatch br_primitive_state_dispatch;
typedef struct br_primitive_state {
br_primitive_state_dispatch *dispatch;
} br_primitive_state;
@ -2225,7 +2266,9 @@ typedef enum br_lexer_token_id {
T_TILDE = 126,
T_KEYWORD = 128
} br_lexer_token_id;
typedef struct br_lexer_source br_lexer_source;
typedef void br_lexer_getchar_cbfn(br_lexer_source*);
typedef struct br_lexer br_lexer;
typedef void br_lexer_error_cbfn(br_lexer*, char*);
typedef struct br_lexer_source {
br_lexer_source *prev;
@ -2281,6 +2324,8 @@ typedef struct br_token_entry {
br_int_32 base_length;
} br_token_entry;
typedef unsigned int jmp_buf[13];
typedef struct br_exception_handler br_exception_handler;
typedef struct br_exception_handler {
br_exception_handler *prev;
jmp_buf context;

View File

@ -2,7 +2,10 @@
#define DR_TYPES_H
#include "br_types.h"
#include <stdarg.h>
#include <stdio.h>
#include <stddef.h>
/*
typedef char * va_list[1];
typedef unsigned short wchar_t;
typedef unsigned int size_t;
@ -10,6 +13,7 @@ typedef char * __va_list[1];
typedef __iobuf FILE;
typedef long fpos_t;
typedef void * onexit_t();
*/
typedef short SHORT;
typedef unsigned short USHORT;
typedef int INT;
@ -38,22 +42,22 @@ typedef BYTE * HPSTR;
typedef LONG * HPLONG;
typedef void * HPVOID;
typedef unsigned int HANDLE;
typedef _tagRMI_REGS _RMI_REGS;
typedef _tagBREGS _HMI_BREGS;
typedef _tagWREGS _HMI_WREGS;
typedef _tagDREGS _HMI_DREGS;
typedef _tagSREGS _HMI_SREGS;
typedef _tagIPX_HEADER _IPX_HEADER;
typedef _tagIPX_ECB _IPX_ECB;
typedef _tagIPX_INTERNET_ADDR _IPX_INTERNET_ADDR;
typedef _tagIPX_NETWORK_ADDR _IPX_NETWORK_ADDR;
typedef _tagIPX_LOCAL_TARGET _IPX_LOCAL_TARGET;
typedef _tagIPX_ELEMENT _IPX_ELEMENT;
typedef _tag_NETBIOS_NCB _NETBIOS_NCB;
typedef _tagNETBIOS_ADAPTER_STATUS _NETBIOS_ADAPTER_STATUS;
typedef _tagNETBIOS_ELEMENT _NETBIOS_ELEMENT;
typedef _tagNETBIOS_LOCAL_TARGET _NETBIOS_LOCAL_TARGET;
typedef _tagXFER_BLOCK_HEADER _XFER_BLOCK_HEADER;
typedef struct _tagRMI_REGS _RMI_REGS;
typedef struct _tagBREGS _HMI_BREGS;
typedef struct _tagWREGS _HMI_WREGS;
typedef struct _tagDREGS _HMI_DREGS;
typedef struct _tagSREGS _HMI_SREGS;
typedef struct _tagIPX_HEADER _IPX_HEADER;
typedef struct _tagIPX_ECB _IPX_ECB;
typedef struct _tagIPX_INTERNET_ADDR _IPX_INTERNET_ADDR;
typedef struct _tagIPX_NETWORK_ADDR _IPX_NETWORK_ADDR;
typedef struct _tagIPX_LOCAL_TARGET _IPX_LOCAL_TARGET;
typedef struct _tagIPX_ELEMENT _IPX_ELEMENT;
typedef struct _tag_NETBIOS_NCB _NETBIOS_NCB;
typedef struct _tagNETBIOS_ADAPTER_STATUS _NETBIOS_ADAPTER_STATUS;
typedef struct _tagNETBIOS_ELEMENT _NETBIOS_ELEMENT;
typedef struct _tagNETBIOS_LOCAL_TARGET _NETBIOS_LOCAL_TARGET;
typedef struct _tagXFER_BLOCK_HEADER _XFER_BLOCK_HEADER;
typedef unsigned char tU8;
typedef signed char tS8;
typedef unsigned short tU16;
@ -67,9 +71,9 @@ typedef long tX1616;
typedef tU8 tNet_message_type;
typedef char * tS3_sound_source_ptr;
typedef int tS3_sound_tag;
typedef tCar_spec_struct tCar_spec;
typedef tPath_node_struct tPath_node;
typedef tPath_section_struct tPath_section;
typedef struct tCar_spec_struct tCar_spec;
typedef struct tPath_node_struct tPath_node;
typedef struct tPath_section_struct tPath_section;
typedef tU32 tPlayer_ID;
typedef int tS3_sound_id;
typedef int tS3_type;
@ -81,18 +85,19 @@ typedef long tS3_pitch;
typedef long tS3_speed;
typedef char * tS3_outlet_ptr;
typedef void * tPipe_reset_proc();
typedef struct tPowerup tPowerup;
typedef int * tGot_proc(tPowerup*, tCar_spec*);
typedef void * tLose_proc(tPowerup*, tCar_spec*);
typedef void * tPeriodic_proc(tPowerup*, tU32);
typedef char tPath_name[256];
typedef tFlic_descriptor * tFlic_descriptor_ptr;
typedef exception_struct * tException_list;
typedef exception_struct tException_node;
typedef struct tFlic_descriptor * tFlic_descriptor_ptr;
typedef struct exception_struct * tException_list;
typedef struct exception_struct tException_node;
typedef int tKey_array[123];
typedef tS32 tJoy_array[8];
typedef void * tPMFM2CB(br_material*);
typedef v11face DR_FACE;
typedef fmt_vertex DR_VERTEX;
typedef struct v11face DR_FACE;
typedef struct fmt_vertex DR_VERTEX;
typedef enum tDriver {
eDriver_non_car_unused_slot = 0,
@ -474,19 +479,10 @@ typedef enum tSmear_type {
eSmear_blood = 1,
eSmear_count = 2
} tSmear_type;
typedef struct ot_vertex ot_vertex;
typedef void zs_order_table_traversal_cbfn(int, ot_vertex*, ot_vertex*, ot_vertex*);
typedef void tS3_outlet_callback(tS3_outlet_ptr, tS3_sound_tag, tS3_termination_reason);
typedef void tS3_sample_filter(tS3_effect_tag, tS3_sound_tag);
typedef struct __iobuf {
unsigned char *_ptr;
int _cnt;
unsigned char *_base;
unsigned int _flag;
int _handle;
unsigned int _bufsize;
unsigned char _ungotten;
unsigned char _tmpfchar;
} FILE;
typedef struct div_t {
int quot;
@ -867,6 +863,89 @@ typedef struct tNet_message_mechanics_info {
br_scalar wheel_dam_offset[4];
} tNet_message_mechanics_info;
typedef struct tDamage_unit {
int x_coord;
int y_coord;
int damage_level;
int last_level;
int smoke_last_level;
int periods[5];
br_pixelmap *images;
} tDamage_unit;
typedef struct tDamage_condition {
tAxis_comp axis_comp;
tCondition_operator condition_operator;
float comparitor;
} tDamage_condition;
typedef struct tDamage_effect {
tDamage_type type;
float weakness_factor;
} tDamage_effect;
typedef struct tDamage_clause {
tDamage_condition conditions[2];
int effect_count;
int condition_count;
tDamage_effect effects[4];
} tDamage_clause;
typedef struct tDamage_program {
int clause_count;
tDamage_clause *clauses;
} tDamage_program;
typedef struct tHeadup_slot {
int x;
int y;
int colour;
int cockpit_anchored;
int dimmed_background;
int dim_left;
int dim_top;
int dim_right;
int dim_bottom;
tJustification justification;
} tHeadup_slot;
typedef struct tPart_info {
char part_name[14];
tU8 *data_ptr;
tU32 data_length;
int rank_required;
int prices[3];
} tPart_info;
typedef struct tParts_spec {
int number_of_parts;
tPart_info info[6];
} tParts_spec;
typedef struct tCar_actor {
br_actor *actor;
br_scalar min_distance_squared;
tCrush_data crush_data;
br_vertex *undamaged_vertices;
} tCar_actor;
typedef struct tJoystick {
tS32 left;
tS32 right;
tS32 acc;
tS32 dec;
} tJoystick;
typedef struct tPursuee_trail {
br_vector3 trail_nodes[25];
br_vector3 base_heading;
tU32 time_of_next_recording;
tU32 end_of_deviation;
tU8 number_of_nodes;
tU8 has_deviated_recently;
tU8 nodes_shifted_this_frame;
} tPursuee_trail;
typedef struct tCar_spec_struct {
int index;
int disabled;
@ -918,7 +997,7 @@ typedef struct tCar_spec_struct {
tNet_message_mechanics_info message;
tU32 last_car_car_collision;
br_scalar dt;
tCar_spec_struct *who_last_hit_me;
struct tCar_spec_struct *who_last_hit_me;
char name[32];
char driver_name[32];
char grid_icon_names[3][14];
@ -1106,8 +1185,8 @@ typedef struct tCar_spec_struct {
float last_col_prop_z;
tU32 time_last_hit;
tU32 time_last_victim;
tCar_spec_struct *last_hit_by;
tCar_spec_struct *last_culprit;
struct tCar_spec_struct *last_hit_by;
struct tCar_spec_struct *last_culprit;
int no_of_processes_recording_my_trail;
tPursuee_trail my_trail;
unsigned int grudge_raised_recently;
@ -1119,8 +1198,8 @@ typedef struct tCar_spec_struct {
tU32 end_trans_damage_effect;
int false_key_left;
int false_key_right;
tCar_spec_struct *last_person_to_hit_us;
tCar_spec_struct *last_person_we_hit;
struct tCar_spec_struct *last_person_to_hit_us;
struct tCar_spec_struct *last_person_we_hit;
br_vector3 engine_pos;
br_model *last_wheel_models[4];
int last_wheel_faces[4];
@ -1146,89 +1225,6 @@ typedef struct tCar_spec_struct {
tS3_sound_tag horn_sound_tag;
} tCar_spec;
typedef struct tDamage_unit {
int x_coord;
int y_coord;
int damage_level;
int last_level;
int smoke_last_level;
int periods[5];
br_pixelmap *images;
} tDamage_unit;
typedef struct tDamage_condition {
tAxis_comp axis_comp;
tCondition_operator condition_operator;
float comparitor;
} tDamage_condition;
typedef struct tDamage_effect {
tDamage_type type;
float weakness_factor;
} tDamage_effect;
typedef struct tDamage_clause {
tDamage_condition conditions[2];
int effect_count;
int condition_count;
tDamage_effect effects[4];
} tDamage_clause;
typedef struct tDamage_program {
int clause_count;
tDamage_clause *clauses;
} tDamage_program;
typedef struct tHeadup_slot {
int x;
int y;
int colour;
int cockpit_anchored;
int dimmed_background;
int dim_left;
int dim_top;
int dim_right;
int dim_bottom;
tJustification justification;
} tHeadup_slot;
typedef struct tPart_info {
char part_name[14];
tU8 *data_ptr;
tU32 data_length;
int rank_required;
int prices[3];
} tPart_info;
typedef struct tParts_spec {
int number_of_parts;
tPart_info info[6];
} tParts_spec;
typedef struct tCar_actor {
br_actor *actor;
br_scalar min_distance_squared;
tCrush_data crush_data;
br_vertex *undamaged_vertices;
} tCar_actor;
typedef struct tJoystick {
tS32 left;
tS32 right;
tS32 acc;
tS32 dec;
} tJoystick;
typedef struct tPursuee_trail {
br_vector3 trail_nodes[25];
br_vector3 base_heading;
tU32 time_of_next_recording;
tU32 end_of_deviation;
tU8 number_of_nodes;
tU8 has_deviated_recently;
tU8 nodes_shifted_this_frame;
} tPursuee_trail;
typedef struct tOppo_psyche {
tU8 grudge_against_player;
} tOppo_psyche;
@ -1790,9 +1786,9 @@ typedef struct tPowerup {
int current_value;
int prat_cam_event;
tNet_powerup_type net_type;
tGot_proc got_proc;
tLose_proc lose_proc;
tPeriodic_proc periodic_proc;
tGot_proc *got_proc;
tLose_proc *lose_proc;
tPeriodic_proc *periodic_proc;
float *float_params;
tCar_spec *car;
char message[64];
@ -1911,7 +1907,7 @@ typedef struct tCollision_info {
tNet_message_mechanics_info message;
tU32 last_car_car_collision;
br_scalar dt;
tCar_spec_struct *who_last_hit_me;
tCar_spec *who_last_hit_me;
} tCollision_info;
typedef struct tNon_car_spec {
@ -2429,20 +2425,20 @@ typedef struct fmt_vertex {
br_vector3 p;
br_vector2 map;
br_vector3 n;
} DR_VERTEX;
} DR_VERTEX, fmt_vertex;
typedef struct v11face {
br_uint_16 vertices[3];
br_uint_16 edges[3];
br_vector4 eqn;
} DR_FACE;
} DR_FACE, v11face;
typedef struct v11group {
void *stored;
v11face *faces;
DR_FACE *faces;
br_colour *face_colours;
br_uint_16 *face_user;
fmt_vertex *vertices;
DR_VERTEX *vertices;
br_colour *vertex_colours;
br_uint_16 *vertex_user;
br_uint_16 nfaces;
@ -2846,30 +2842,29 @@ typedef struct tCheat {
int num;
} tCheat;
typedef _tag_sos_evds_struct _SOS_EVDS_STRUCT;
typedef _tag_sos_vds_struct _SOS_VDS_STRUCT;
typedef _tag_sos_sample _SOS_SAMPLE;
typedef struct _tag_sos_evds_struct _SOS_EVDS_STRUCT;
typedef struct _tag_sos_vds_struct _SOS_VDS_STRUCT;
typedef struct _tag_sos_sample _SOS_SAMPLE;
typedef _SOS_SAMPLE * PSOSSAMPLE;
typedef _tagCAPABILITIES _SOS_CAPABILITIES;
typedef struct _tagCAPABILITIES _SOS_CAPABILITIES;
typedef _SOS_CAPABILITIES * PSOSCAPABILITIES;
typedef _SOS_HARDWARE * PSOSHARDWARE;
typedef _tag_sos_driver _SOS_DIGI_DRIVER;
typedef struct _SOS_HARDWARE * PSOSHARDWARE;
typedef struct _tag_sos_driver _SOS_DIGI_DRIVER;
typedef _SOS_DIGI_DRIVER * PSOSDIGIDRIVER;
typedef _SOS_DRV_FILEHEADER * PSOSDRVFILEHEADER;
typedef _SOS_DRV_DRIVERHEADER * PSOSDRVDRIVERHEADER;
typedef _tag_sos_system _SOS_SYSTEM;
typedef struct _SOS_DRV_FILEHEADER * PSOSDRVFILEHEADER;
typedef struct _SOS_DRV_DRIVERHEADER * PSOSDRVDRIVERHEADER;
typedef struct _tag_sos_system _SOS_SYSTEM;
typedef _SOS_SYSTEM * PSOSSYSTEM;
typedef _tag_sos_det_system _SOS_DET_SYSTEM;
typedef struct _tag_sos_det_system _SOS_DET_SYSTEM;
typedef _SOS_DET_SYSTEM * PSOSDETSYSTEM;
typedef _tag_sos_timer_system _SOS_TIMER_SYSTEM;
typedef struct _tag_sos_timer_system _SOS_TIMER_SYSTEM;
typedef _SOS_TIMER_SYSTEM * PSOSTIMERSYSTEM;
typedef int ptrdiff_t;
typedef SmackTag Smack;
typedef SmackSumTag SmackSum;
typedef struct SmackTag Smack;
typedef struct SmackSumTag SmackSum;
typedef void * SmackTimerSetupType();
typedef unsigned long * SmackTimerReadType();
typedef void * SmackTimerDoneType();
typedef _heapinfo _HEAPINFO;
typedef struct _heapinfo _HEAPINFO;
typedef struct _tag_sos_evds_struct {
unsigned int region_size;
unsigned int offset;
@ -2911,13 +2906,13 @@ typedef struct _tag_sos_sample {
DWORD wPanEnd;
DWORD wPanMode;
DWORD wTotalBytesProcessed;
void (*pfnSampleProcessed)(_tag_sos_sample*);
void (*pfnSampleDone)(_tag_sos_sample*);
void (*pfnSampleLoop)(_tag_sos_sample*);
void (*pfnSampleProcessed)(PSOSSAMPLE*);
void (*pfnSampleDone)(PSOSSAMPLE*);
void (*pfnSampleLoop)(PSOSSAMPLE*);
DWORD wSystem[16];
DWORD wUser[16];
_tag_sos_sample *pLink;
_tag_sos_sample *pNext;
PSOSSAMPLE *pLink;
PSOSSAMPLE *pNext;
} _SOS_SAMPLE;
typedef struct _tagCAPABILITIES {
@ -3153,14 +3148,14 @@ typedef struct tHeadup {
char text[250];
int colour;
br_font *font;
};
}a;
struct {
char text[250];
tDR_font *coloured_font;
};
}b;
struct {
br_pixelmap *image;
};
}c;
struct {
br_pixelmap *image;
int offset;
@ -3168,7 +3163,7 @@ typedef struct tHeadup {
int end_offset;
tFancy_stage fancy_stage;
tU32 start_time;
};
}d;
};
} tHeadup;
@ -3291,18 +3286,6 @@ typedef br_pixelmap* dev_clone_cbfn(br_device*, br_pixelmap*);
typedef void dev_free_cbfn(br_device*, br_pixelmap*);
typedef int dr_modelpick2d_cbfn(br_model*, br_material*, br_vector3*, br_vector3*, br_scalar, int, int, int, br_vector3*, br_vector2*, void*);
typedef int dr_pick3d_cbfn(br_actor*, br_model*, br_material*, br_matrix34*, br_bounds*, void*);
typedef struct fw_fn_table {
br_surface_fn *light;
br_surface_fn *light_material;
br_surface_fn *light_vertex;
br_surface_fn *light_texture;
br_face_surface_fn *face_light;
br_light_sub_fn *direct;
br_light_sub_fn *point;
br_light_sub_fn *point_attn;
br_light_sub_fn *spot;
br_light_sub_fn *spot_attn;
} fw_fn_table;
typedef struct tFlic_spec {
char *file_name;
@ -3332,13 +3315,14 @@ typedef struct tTranslation_record {
char *text;
} tTranslation_record;
/* Changed due to conflict with tVehicle_type enum */
typedef enum tVehicle_category {
eVehicle_self = 0,
eVehicle_opponent = 1,
eVehicle_rozzer = 2,
eVehicle_drone = 3
eVehiclecat_self = 0,
eVehiclecat_opponent = 1,
eVehiclecat_rozzer = 2,
eVehiclecat_drone = 3
} tVehicle_category;
typedef struct tTransient_bm {
br_pixelmap *pixmap;
int in_use;
@ -3393,6 +3377,11 @@ typedef enum tS3_sound_type {
eS3_ST_midi = 1,
eS3_ST_cda = 2
} tS3_sound_type;
typedef struct tS3_outlet tS3_outlet;
typedef struct tS3_descriptor tS3_descriptor;
typedef struct tS3_channel tS3_channel;
typedef struct tS3_sound_source tS3_sound_source;
typedef struct tS3_channel {
int active;
int termination_reason;
@ -4014,13 +4003,13 @@ typedef struct tFunkotronic_spec {
struct {
struct {
float period;
};
}a;
struct {
float period;
br_scalar x_centre;
br_scalar y_centre;
float rock_angle;
};
}b;
struct {
float x_period;
float y_period;
@ -4028,17 +4017,17 @@ typedef struct tFunkotronic_spec {
br_scalar y_centre;
float x_magnitude;
float y_magnitude;
};
}c;
struct {
float x_period;
float y_period;
float x_magnitude;
float y_magnitude;
};
}d;
struct {
float x_period;
float y_period;
};
}e;
};
tMove_mode lighting_animation_type;
float lighting_animation_period;
@ -4058,12 +4047,12 @@ typedef struct tFunkotronic_spec {
int texture_count;
int current_frame;
br_pixelmap *textures[8];
};
}f;
struct {
tU8 *flic_data;
tU32 flic_data_length;
tFlic_descriptor flic_descriptor;
};
}g;
};
int proximity_count;
br_vector3 *proximity_array;
@ -4086,13 +4075,13 @@ typedef struct tGroovidelic_spec {
float y_delta;
float z_delta;
br_vector3 centre;
};
}a;
struct {
float period;
float radius;
br_vector3 centre;
tGroove_axis_mode axis;
};
}b;
};
br_vector3 object_centre;
br_vector3 object_position;
@ -4104,13 +4093,13 @@ typedef struct tGroovidelic_spec {
struct {
float period;
tGroove_axis_mode axis;
};
}c;
struct {
float period;
float max_angle;
float current_angle;
tGroove_axis_mode axis;
};
}d;
struct {
float x_period;
float y_period;
@ -4118,7 +4107,7 @@ typedef struct tGroovidelic_spec {
float x_magnitude;
float y_magnitude;
float z_magnitude;
};
}e;
struct {
float x_period;
float y_period;
@ -4126,7 +4115,7 @@ typedef struct tGroovidelic_spec {
float x_magnitude;
float y_magnitude;
float z_magnitude;
};
}f;
};
} tGroovidelic_spec;
@ -4391,7 +4380,6 @@ typedef struct tRM_info {
typedef unsigned int ino_t;
typedef int dev_t;
typedef long off_t;
typedef dirent DIR;
typedef enum dosio_event_type {
DOSIO_EVENT_KEY_DOWN = 0,
@ -4411,16 +4399,6 @@ typedef enum dosio_event_qual {
DOSIO_QUAL_CONTROL = 2,
DOSIO_QUAL_ALT = 4
} dosio_event_qual;
typedef struct dirent {
char d_dta[21];
char d_attr;
unsigned short d_time;
unsigned short d_date;
long d_size;
char d_name[13];
unsigned short d_ino;
char d_first;
} DIR;
typedef struct dosio_event {
br_uint_16 type;
@ -4492,9 +4470,8 @@ typedef struct tMem_info {
unsigned int reserved[3];
} tMem_info;
typedef unsigned int jmp_buf[13];
typedef struct pm_temp_edge {
pm_temp_edge *next;
struct pm_temp_edge *next;
br_uint_16 first;
br_uint_16 last;
char other;
@ -4556,7 +4533,7 @@ typedef struct host_regs {
br_uint_16 cs;
br_uint_16 sp;
br_uint_16 ss;
};
}a;
struct {
br_uint_16 di;
br_uint_16 _pad0;
@ -4583,7 +4560,7 @@ typedef struct host_regs {
br_uint_16 cs;
br_uint_16 sp;
br_uint_16 ss;
};
}b;
struct {
br_uint_32 _pad0[4];
br_uint_8 bl;
@ -4602,7 +4579,7 @@ typedef struct host_regs {
br_uint_8 ah;
br_uint_8 _pad7;
br_uint_8 _pad8;
};
}c;
} host_regs;
typedef struct host_info {