diff --git a/src/BRSRC13/CORE/FW/diag.c b/src/BRSRC13/CORE/FW/diag.c index 9a0181b7..48976ac2 100644 --- a/src/BRSRC13/CORE/FW/diag.c +++ b/src/BRSRC13/CORE/FW/diag.c @@ -1,4 +1,6 @@ #include "diag.h" +#include "fwsetup.h" +#include "printf.h" #include "stdlib.h" #include @@ -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); } diff --git a/src/BRSRC13/CORE/FW/fwsetup.h b/src/BRSRC13/CORE/FW/fwsetup.h index 371e9497..886354fa 100644 --- a/src/BRSRC13/CORE/FW/fwsetup.h +++ b/src/BRSRC13/CORE/FW/fwsetup.h @@ -4,6 +4,8 @@ #include "dr_types.h" #include "br_types.h" +extern br_framework_state fw; + // Offset: 10 // Size: 324 br_error BrFwBegin(); diff --git a/src/BRSRC13/CORE/STD/stdfile.c b/src/BRSRC13/CORE/STD/stdfile.c index 2982ca58..e9f0f7a2 100644 --- a/src/BRSRC13/CORE/STD/stdfile.c +++ b/src/BRSRC13/CORE/STD/stdfile.c @@ -2,7 +2,7 @@ #include // 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 diff --git a/src/BRSRC13/CORE/STD/stdlib.c b/src/BRSRC13/CORE/STD/stdlib.c index 6c30b0f3..6ac81167 100644 --- a/src/BRSRC13/CORE/STD/stdlib.c +++ b/src/BRSRC13/CORE/STD/stdlib.c @@ -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); } diff --git a/src/BRSRC13/CORE/STD/stdlib.h b/src/BRSRC13/CORE/STD/stdlib.h index 5d6c0cd6..a72cf64b 100644 --- a/src/BRSRC13/CORE/STD/stdlib.h +++ b/src/BRSRC13/CORE/STD/stdlib.h @@ -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 diff --git a/src/BRSRC13/CORE/STD/stdmem.c b/src/BRSRC13/CORE/STD/stdmem.c index 01b79275..bf15310a 100644 --- a/src/BRSRC13/CORE/STD/stdmem.c +++ b/src/BRSRC13/CORE/STD/stdmem.c @@ -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 *); } diff --git a/src/DETHRACE/source/common/controls.c b/src/DETHRACE/source/common/controls.c index e6b763e6..8b999e8c 100644 --- a/src/DETHRACE/source/common/controls.c +++ b/src/DETHRACE/source/common/controls.c @@ -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]; diff --git a/src/DETHRACE/source/common/errors.c b/src/DETHRACE/source/common/errors.c index 72ded25a..c913a97a 100644 --- a/src/DETHRACE/source/common/errors.c +++ b/src/DETHRACE/source/common/errors.c @@ -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 diff --git a/src/DETHRACE/source/common/errors.h b/src/DETHRACE/source/common/errors.h index 2d5614a4..3490ea6a 100644 --- a/src/DETHRACE/source/common/errors.h +++ b/src/DETHRACE/source/common/errors.h @@ -22,7 +22,7 @@ void OpenDiagnostics(); // Offset: 452 // Size: 34 -void dprintf(char *fmt_string); +// void dprintf(char *fmt_string); // Offset: 488 // Size: 57 diff --git a/src/DETHRACE/source/common/piping.c b/src/DETHRACE/source/common/piping.c index bcb91607..f8789f0f 100644 --- a/src/DETHRACE/source/common/piping.c +++ b/src/DETHRACE/source/common/piping.c @@ -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; diff --git a/src/DETHRACE/source/common/powerup.c b/src/DETHRACE/source/common/powerup.c index 63862a59..72f25f79 100644 --- a/src/DETHRACE/source/common/powerup.c +++ b/src/DETHRACE/source/common/powerup.c @@ -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; diff --git a/src/DETHRACE/source/common/world.c b/src/DETHRACE/source/common/world.c index d27528e1..9a8a1d88 100644 --- a/src/DETHRACE/source/common/world.c +++ b/src/DETHRACE/source/common/world.c @@ -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 diff --git a/src/types/br_types.h b/src/types/br_types.h index ccb0e955..b9963d78 100644 --- a/src/types/br_types.h +++ b/src/types/br_types.h @@ -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; diff --git a/src/types/dr_types.h b/src/types/dr_types.h index 65a45bba..7bdb2d9c 100644 --- a/src/types/dr_types.h +++ b/src/types/dr_types.h @@ -2,7 +2,10 @@ #define DR_TYPES_H #include "br_types.h" - +#include +#include +#include +/* 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 {