From 6d21a1c4803b70ffdc83ddf76c8fb0964ebc1dd9 Mon Sep 17 00:00:00 2001 From: Dethrace Engineering Laboratory <78985374+dethrace-labs@users.noreply.github.com> Date: Mon, 4 Oct 2021 12:37:23 +1300 Subject: [PATCH] BRender inline functions (#64) * convert CollCheck to use inline BR functions * convert CalcForce to use inline BR functions * partial support for demo content * harness interface tidy up * cleaner platform handing --- src/BRSRC13/CMakeLists.txt | 24 +- src/BRSRC13/CORE/DOSIO/dosio.c | 6 +- src/BRSRC13/CORE/DOSIO/dosio.h | 2 +- src/BRSRC13/CORE/DOSIO/eventq.c | 2 +- src/BRSRC13/CORE/DOSIO/eventq.h | 2 +- src/BRSRC13/CORE/DOSIO/readmse.c | 2 +- src/BRSRC13/CORE/DOSIO/readmse.h | 2 +- src/BRSRC13/CORE/FW/assocarr.c | 2 +- src/BRSRC13/CORE/FW/assocarr.h | 2 +- src/BRSRC13/CORE/FW/brbegin.c | 2 +- src/BRSRC13/CORE/FW/brbegin.h | 2 +- src/BRSRC13/CORE/FW/brbhook.c | 2 +- src/BRSRC13/CORE/FW/brbhook.h | 2 +- src/BRSRC13/CORE/FW/brlists.c | 2 +- src/BRSRC13/CORE/FW/brlists.h | 2 +- src/BRSRC13/CORE/FW/brprintf.c | 2 +- src/BRSRC13/CORE/FW/brprintf.h | 2 +- src/BRSRC13/CORE/FW/brqsort.h | 2 +- src/BRSRC13/CORE/FW/bswap.c | 2 +- src/BRSRC13/CORE/FW/bswap.h | 2 +- src/BRSRC13/CORE/FW/datafile.c | 2 +- src/BRSRC13/CORE/FW/datafile.h | 2 +- src/BRSRC13/CORE/FW/devlist.c | 2 +- src/BRSRC13/CORE/FW/devlist.h | 2 +- src/BRSRC13/CORE/FW/devsetup.c | 4 +- src/BRSRC13/CORE/FW/devsetup.h | 2 +- src/BRSRC13/CORE/FW/diag.c | 2 +- src/BRSRC13/CORE/FW/diag.h | 2 +- src/BRSRC13/CORE/FW/error.c | 2 +- src/BRSRC13/CORE/FW/error.h | 2 +- src/BRSRC13/CORE/FW/file.c | 2 +- src/BRSRC13/CORE/FW/file.h | 2 +- src/BRSRC13/CORE/FW/fwsetup.c | 2 +- src/BRSRC13/CORE/FW/fwsetup.h | 2 +- src/BRSRC13/CORE/FW/genfile.c | 2 +- src/BRSRC13/CORE/FW/genfile.h | 2 +- src/BRSRC13/CORE/FW/image.c | 2 +- src/BRSRC13/CORE/FW/image.h | 2 +- src/BRSRC13/CORE/FW/lexer.c | 2 +- src/BRSRC13/CORE/FW/lexer.h | 2 +- src/BRSRC13/CORE/FW/loader.c | 2 +- src/BRSRC13/CORE/FW/loader.h | 2 +- src/BRSRC13/CORE/FW/mem.c | 2 +- src/BRSRC13/CORE/FW/mem.h | 2 +- src/BRSRC13/CORE/FW/object.c | 2 +- src/BRSRC13/CORE/FW/object.h | 2 +- src/BRSRC13/CORE/FW/objectc.c | 2 +- src/BRSRC13/CORE/FW/objectc.h | 2 +- src/BRSRC13/CORE/FW/pattern.c | 2 +- src/BRSRC13/CORE/FW/pattern.h | 2 +- src/BRSRC13/CORE/FW/register.c | 2 +- src/BRSRC13/CORE/FW/register.h | 2 +- src/BRSRC13/CORE/FW/resource.c | 12 +- src/BRSRC13/CORE/FW/resource.h | 2 +- src/BRSRC13/CORE/FW/resreg.c | 2 +- src/BRSRC13/CORE/FW/resreg.h | 2 +- src/BRSRC13/CORE/FW/scratch.c | 2 +- src/BRSRC13/CORE/FW/scratch.h | 2 +- src/BRSRC13/CORE/FW/sys_conf.c | 2 +- src/BRSRC13/CORE/FW/sys_conf.h | 2 +- src/BRSRC13/CORE/FW/token.c | 2 +- src/BRSRC13/CORE/FW/token.h | 2 +- src/BRSRC13/CORE/FW/tokenval.c | 2 +- src/BRSRC13/CORE/FW/tokenval.h | 2 +- src/BRSRC13/CORE/HOST/himage.c | 2 +- src/BRSRC13/CORE/HOST/himage.h | 2 +- src/BRSRC13/CORE/HOST/hook.c | 2 +- src/BRSRC13/CORE/HOST/hook.h | 2 +- src/BRSRC13/CORE/HOST/hostcfg.c | 2 +- src/BRSRC13/CORE/HOST/hostcfg.h | 2 +- src/BRSRC13/CORE/HOST/hstsetup.c | 2 +- src/BRSRC13/CORE/HOST/hstsetup.h | 2 +- src/BRSRC13/CORE/HOST/memmgmt.c | 2 +- src/BRSRC13/CORE/HOST/memmgmt.h | 2 +- src/BRSRC13/CORE/MATH/angles.c | 2 +- src/BRSRC13/CORE/MATH/angles.h | 2 +- src/BRSRC13/CORE/MATH/matrix23.c | 2 +- src/BRSRC13/CORE/MATH/matrix23.h | 2 +- src/BRSRC13/CORE/MATH/matrix34.c | 2 +- src/BRSRC13/CORE/MATH/matrix34.h | 2 +- src/BRSRC13/CORE/MATH/matrix4.c | 2 +- src/BRSRC13/CORE/MATH/matrix4.h | 2 +- src/BRSRC13/CORE/MATH/plane.c | 4 +- src/BRSRC13/CORE/MATH/plane.h | 2 +- src/BRSRC13/CORE/MATH/quat.c | 2 +- src/BRSRC13/CORE/MATH/quat.h | 2 +- src/BRSRC13/CORE/MATH/transfrm.c | 2 +- src/BRSRC13/CORE/MATH/transfrm.h | 2 +- src/BRSRC13/CORE/MATH/vector.c | 2 +- src/BRSRC13/CORE/MATH/vector.h | 2 +- src/BRSRC13/CORE/PIXELMAP/fontptrs.h | 2 +- src/BRSRC13/CORE/PIXELMAP/genclip.c | 2 +- src/BRSRC13/CORE/PIXELMAP/genclip.h | 2 +- src/BRSRC13/CORE/PIXELMAP/gencopy.c | 2 +- src/BRSRC13/CORE/PIXELMAP/gencopy.h | 2 +- src/BRSRC13/CORE/PIXELMAP/pixelmap.c | 4 +- src/BRSRC13/CORE/PIXELMAP/pixelmap.h | 2 +- src/BRSRC13/CORE/PIXELMAP/pmdsptch.c | 26 +- src/BRSRC13/CORE/PIXELMAP/pmdsptch.h | 2 +- src/BRSRC13/CORE/PIXELMAP/pmfile.c | 2 +- src/BRSRC13/CORE/PIXELMAP/pmfile.h | 2 +- src/BRSRC13/CORE/PIXELMAP/pmgen.c | 2 +- src/BRSRC13/CORE/PIXELMAP/pmgen.h | 2 +- src/BRSRC13/CORE/PIXELMAP/pmmem.c | 10 +- src/BRSRC13/CORE/PIXELMAP/pmmem.h | 2 +- src/BRSRC13/CORE/PIXELMAP/pmnull.c | 2 +- src/BRSRC13/CORE/PIXELMAP/pmnull.h | 2 +- src/BRSRC13/CORE/PIXELMAP/pmsetup.c | 4 +- src/BRSRC13/CORE/PIXELMAP/pmsetup.h | 2 +- src/BRSRC13/CORE/STD/brexcept.c | 2 +- src/BRSRC13/CORE/STD/brexcept.h | 2 +- src/BRSRC13/CORE/STD/brmath.c | 2 +- src/BRSRC13/CORE/STD/brmath.h | 2 +- src/BRSRC13/CORE/STD/brstddiag.c | 2 +- src/BRSRC13/CORE/STD/brstddiag.h | 2 +- src/BRSRC13/CORE/STD/brstdfile.c | 2 +- src/BRSRC13/CORE/STD/brstdfile.h | 2 +- src/BRSRC13/CORE/STD/brstdlib.c | 2 +- src/BRSRC13/CORE/STD/brstdlib.h | 2 +- src/BRSRC13/CORE/STD/brstdmem.c | 2 +- src/BRSRC13/CORE/STD/brstdmem.h | 2 +- src/BRSRC13/CORE/STD/logwrite.c | 2 +- src/BRSRC13/CORE/STD/logwrite.h | 2 +- src/BRSRC13/CORE/V1DB/actsupt.c | 2 +- src/BRSRC13/CORE/V1DB/actsupt.h | 2 +- src/BRSRC13/CORE/V1DB/custsupt.c | 2 +- src/BRSRC13/CORE/V1DB/custsupt.h | 2 +- src/BRSRC13/CORE/V1DB/dbsetup.c | 4 +- src/BRSRC13/CORE/V1DB/dbsetup.h | 2 +- src/BRSRC13/CORE/V1DB/def_mat.c | 6 +- src/BRSRC13/CORE/V1DB/def_mat.h | 2 +- src/BRSRC13/CORE/V1DB/def_mdl.h | 2 +- src/BRSRC13/CORE/V1DB/def_otab.h | 2 +- src/BRSRC13/CORE/V1DB/enables.c | 2 +- src/BRSRC13/CORE/V1DB/enables.h | 2 +- src/BRSRC13/CORE/V1DB/matsupt.c | 6 +- src/BRSRC13/CORE/V1DB/matsupt.h | 2 +- src/BRSRC13/CORE/V1DB/modrend.c | 4 +- src/BRSRC13/CORE/V1DB/modrend.h | 2 +- src/BRSRC13/CORE/V1DB/modsupt.c | 2 +- src/BRSRC13/CORE/V1DB/modsupt.h | 2 +- src/BRSRC13/CORE/V1DB/otable.c | 2 +- src/BRSRC13/CORE/V1DB/otable.h | 2 +- src/BRSRC13/CORE/V1DB/prepmap.c | 2 +- src/BRSRC13/CORE/V1DB/prepmap.h | 2 +- src/BRSRC13/CORE/V1DB/prepmatl.c | 2 +- src/BRSRC13/CORE/V1DB/prepmatl.h | 2 +- src/BRSRC13/CORE/V1DB/prepmesh.c | 4 +- src/BRSRC13/CORE/V1DB/prepmesh.h | 2 +- src/BRSRC13/CORE/V1DB/preptab.c | 2 +- src/BRSRC13/CORE/V1DB/preptab.h | 2 +- src/BRSRC13/CORE/V1DB/regsupt.c | 2 +- src/BRSRC13/CORE/V1DB/regsupt.h | 2 +- src/BRSRC13/CORE/V1DB/render.c | 12 +- src/BRSRC13/CORE/V1DB/render.h | 2 +- src/BRSRC13/CORE/V1DB/v1dbfile.c | 2 +- src/BRSRC13/CORE/V1DB/v1dbfile.h | 2 +- src/BRSRC13/{ => include/brender}/br_defs.h | 5 + src/BRSRC13/include/brender/br_inline_funcs.h | 91 +++ src/BRSRC13/{ => include/brender}/br_types.h | 0 src/BRSRC13/{ => include/brender}/brender.h | 9 +- src/DETHRACE/CMakeLists.txt | 13 +- src/DETHRACE/common/brucetrk.c | 5 +- src/DETHRACE/common/brucetrk.h | 2 +- src/DETHRACE/common/car.c | 724 +++++------------- src/DETHRACE/common/car.h | 2 +- src/DETHRACE/common/controls.c | 8 +- src/DETHRACE/common/controls.h | 2 +- src/DETHRACE/common/crush.c | 3 +- src/DETHRACE/common/crush.h | 2 +- src/DETHRACE/common/cutscene.c | 7 +- src/DETHRACE/common/cutscene.h | 4 +- src/DETHRACE/common/demo.c | 1 + src/DETHRACE/common/demo.h | 2 +- src/DETHRACE/common/depth.c | 4 +- src/DETHRACE/common/depth.h | 2 +- src/DETHRACE/common/displays.c | 3 +- src/DETHRACE/common/displays.h | 2 +- src/DETHRACE/common/drfile.c | 3 +- src/DETHRACE/common/drfile.h | 2 +- src/DETHRACE/common/drmem.c | 3 +- src/DETHRACE/common/drmem.h | 2 +- src/DETHRACE/common/errors.c | 2 + src/DETHRACE/common/errors.h | 2 +- src/DETHRACE/common/finteray.c | 12 +- src/DETHRACE/common/finteray.h | 2 +- src/DETHRACE/common/flicplay.c | 3 +- src/DETHRACE/common/flicplay.h | 2 +- src/DETHRACE/common/globvars.h | 2 +- src/DETHRACE/common/globvrbm.h | 2 +- src/DETHRACE/common/globvrkm.h | 2 +- src/DETHRACE/common/globvrme.h | 2 +- src/DETHRACE/common/globvrpb.h | 2 +- src/DETHRACE/common/grafdata.h | 2 +- src/DETHRACE/common/graphics.c | 73 +- src/DETHRACE/common/graphics.h | 2 +- src/DETHRACE/common/init.c | 3 +- src/DETHRACE/common/init.h | 2 +- src/DETHRACE/common/input.c | 4 +- src/DETHRACE/common/input.h | 2 +- src/DETHRACE/common/intrface.c | 3 +- src/DETHRACE/common/intrface.h | 2 +- src/DETHRACE/common/loading.c | 112 +-- src/DETHRACE/common/loading.h | 2 +- src/DETHRACE/common/loadsave.c | 1 + src/DETHRACE/common/loadsave.h | 2 +- src/DETHRACE/common/main.c | 1 + src/DETHRACE/common/main.h | 2 +- src/DETHRACE/common/mainloop.c | 3 +- src/DETHRACE/common/mainloop.h | 2 +- src/DETHRACE/common/mainmenu.c | 3 +- src/DETHRACE/common/mainmenu.h | 2 +- src/DETHRACE/common/netgame.c | 1 + src/DETHRACE/common/netgame.h | 2 +- src/DETHRACE/common/network.c | 3 +- src/DETHRACE/common/newgame.c | 2 + src/DETHRACE/common/newgame.h | 2 +- src/DETHRACE/common/oil.c | 4 +- src/DETHRACE/common/oil.h | 2 +- src/DETHRACE/common/oppocar.c | 1 + src/DETHRACE/common/oppocar.h | 2 +- src/DETHRACE/common/opponent.c | 3 +- src/DETHRACE/common/opponent.h | 2 +- src/DETHRACE/common/oppoproc.c | 1 + src/DETHRACE/common/oppoproc.h | 2 +- src/DETHRACE/common/options.c | 1 + src/DETHRACE/common/options.h | 2 +- src/DETHRACE/common/pedestrn.c | 3 +- src/DETHRACE/common/pedestrn.h | 2 +- src/DETHRACE/common/piping.c | 1 + src/DETHRACE/common/piping.h | 2 +- src/DETHRACE/common/powerup.c | 12 +- src/DETHRACE/common/powerup.h | 2 +- src/DETHRACE/common/pratcam.c | 1 + src/DETHRACE/common/pratcam.h | 2 +- src/DETHRACE/common/racestrt.c | 3 +- src/DETHRACE/common/racestrt.h | 2 +- src/DETHRACE/common/racesumm.c | 1 + src/DETHRACE/common/racesumm.h | 2 +- src/DETHRACE/common/raycast.c | 4 +- src/DETHRACE/common/raycast.h | 2 +- src/DETHRACE/common/replay.c | 1 + src/DETHRACE/common/replay.h | 2 +- src/DETHRACE/common/skidmark.c | 10 +- src/DETHRACE/common/skidmark.h | 2 +- src/DETHRACE/common/sound.c | 1 + src/DETHRACE/common/sound.h | 2 +- src/DETHRACE/common/spark.c | 3 +- src/DETHRACE/common/spark.h | 2 +- src/DETHRACE/common/structur.c | 1 + src/DETHRACE/common/structur.h | 2 +- src/DETHRACE/common/trig.c | 4 +- src/DETHRACE/common/trig.h | 2 +- src/DETHRACE/common/utility.c | 43 +- src/DETHRACE/common/utility.h | 2 +- src/DETHRACE/common/world.c | 4 +- src/DETHRACE/common/world.h | 2 +- src/DETHRACE/constants.h | 2 +- src/DETHRACE/dr_types.h | 3 +- src/DETHRACE/main.c | 5 +- src/DETHRACE/pc-dos/dosnet.c | 3 +- src/DETHRACE/pc-dos/dossys.c | 61 +- src/DETHRACE/pd/net.h | 2 +- src/DETHRACE/pd/sys.h | 2 +- src/harness/CMakeLists.txt | 42 +- .../renderer_impl.c} | 8 +- .../renderer_impl.h} | 4 +- src/harness/harness.c | 168 ++-- src/harness/harness.h | 40 +- src/harness/harness_trace.c | 2 +- src/harness/include/harness/config.h | 19 + .../harness/hooks.h} | 17 +- .../harness/trace.h} | 9 +- src/harness/input/keyboard.h | 10 - src/harness/platforms/null.h | 25 + src/harness/platforms/sdl_gl.h | 21 + src/harness/renderers/gl_renderer.h | 9 - src/harness/renderers/null_renderer.c | 26 - src/harness/renderers/null_renderer.h | 8 - .../{input/keyboard.c => sdl/common.c} | 66 +- src/harness/sdl/common.h | 11 + src/harness/{renderers => sdl}/gl_renderer.c | 81 +- src/harness/sdl/gl_renderer.h | 14 + .../{renderers => sdl}/gl_renderer_shaders.c | 0 .../{renderers => sdl}/gl_renderer_shaders.h | 0 test/BRSRC13/test_actsupt.c | 2 +- test/DETHRACE/test_flicplay.c | 2 +- test/main.c | 12 +- test/tests.h | 2 +- 289 files changed, 1154 insertions(+), 1245 deletions(-) rename src/BRSRC13/{ => include/brender}/br_defs.h (88%) create mode 100644 src/BRSRC13/include/brender/br_inline_funcs.h rename src/BRSRC13/{ => include/brender}/br_types.h (100%) rename src/BRSRC13/{ => include/brender}/brender.h (95%) rename src/harness/{rendering/renderer_state.c => brender_emu/renderer_impl.c} (93%) rename src/harness/{rendering/renderer_state.h => brender_emu/renderer_impl.h} (91%) create mode 100644 src/harness/include/harness/config.h rename src/harness/{harness_hooks.h => include/harness/hooks.h} (81%) rename src/harness/{harness_trace.h => include/harness/trace.h} (94%) delete mode 100644 src/harness/input/keyboard.h create mode 100644 src/harness/platforms/null.h create mode 100644 src/harness/platforms/sdl_gl.h delete mode 100644 src/harness/renderers/gl_renderer.h delete mode 100644 src/harness/renderers/null_renderer.c delete mode 100644 src/harness/renderers/null_renderer.h rename src/harness/{input/keyboard.c => sdl/common.c} (70%) create mode 100644 src/harness/sdl/common.h rename src/harness/{renderers => sdl}/gl_renderer.c (89%) create mode 100644 src/harness/sdl/gl_renderer.h rename src/harness/{renderers => sdl}/gl_renderer_shaders.c (100%) rename src/harness/{renderers => sdl}/gl_renderer_shaders.h (100%) diff --git a/src/BRSRC13/CMakeLists.txt b/src/BRSRC13/CMakeLists.txt index a1f4d5a9..298cf0ed 100644 --- a/src/BRSRC13/CMakeLists.txt +++ b/src/BRSRC13/CMakeLists.txt @@ -1,18 +1,14 @@ add_library(brender STATIC) -target_include_directories(brender PUBLIC - . - CORE/DOSIO - CORE/FW - CORE/HOST - CORE/MATH - CORE/PIXELMAP - CORE/STD - CORE/V1DB - ${CMAKE_SOURCE_DIR}/src/harness +target_include_directories(brender + PRIVATE + . + include + PUBLIC + include ) -target_link_libraries(brender PRIVATE harness miniposix SDL2::SDL2) +target_link_libraries(brender PRIVATE harness miniposix) if(NOT MSVC) target_compile_options(brender PRIVATE @@ -37,8 +33,10 @@ else() endif() target_sources(brender PRIVATE - brender.h - br_types.h + include/brender/brender.h + include/brender/br_types.h + include/brender/br_defs.h + include/brender/br_inline_funcs.h CORE/DOSIO/dosio.c CORE/DOSIO/dosio.h CORE/DOSIO/eventq.c diff --git a/src/BRSRC13/CORE/DOSIO/dosio.c b/src/BRSRC13/CORE/DOSIO/dosio.c index 2deaf278..454ef39f 100644 --- a/src/BRSRC13/CORE/DOSIO/dosio.c +++ b/src/BRSRC13/CORE/DOSIO/dosio.c @@ -1,7 +1,7 @@ #include "dosio.h" -#include "harness_hooks.h" -#include "harness_trace.h" -#include "pixelmap.h" +#include "CORE/PIXELMAP/pixelmap.h" +#include "harness/hooks.h" +#include "harness/trace.h" #include br_pixelmap* DOSGfxBegin(char* setup_string) { diff --git a/src/BRSRC13/CORE/DOSIO/dosio.h b/src/BRSRC13/CORE/DOSIO/dosio.h index ac30dc2d..3ae92055 100644 --- a/src/BRSRC13/CORE/DOSIO/dosio.h +++ b/src/BRSRC13/CORE/DOSIO/dosio.h @@ -1,3 +1,3 @@ -#include "br_types.h" +#include "include/brender/br_types.h" br_pixelmap* DOSGfxBegin(char* setup_string); diff --git a/src/BRSRC13/CORE/DOSIO/eventq.c b/src/BRSRC13/CORE/DOSIO/eventq.c index 8b2db027..b753c47b 100644 --- a/src/BRSRC13/CORE/DOSIO/eventq.c +++ b/src/BRSRC13/CORE/DOSIO/eventq.c @@ -1,5 +1,5 @@ #include "eventq.h" -#include "harness_trace.h" +#include "harness/trace.h" int _DOSEventQEnabled; host_real_memory _DOSEventMemory; diff --git a/src/BRSRC13/CORE/DOSIO/eventq.h b/src/BRSRC13/CORE/DOSIO/eventq.h index 509b2f96..ce7732f7 100644 --- a/src/BRSRC13/CORE/DOSIO/eventq.h +++ b/src/BRSRC13/CORE/DOSIO/eventq.h @@ -1,7 +1,7 @@ #ifndef _EVENTQ_H_ #define _EVENTQ_H_ -#include "br_types.h" +#include "brender/br_types.h" br_error DOSEventBegin(); diff --git a/src/BRSRC13/CORE/DOSIO/readmse.c b/src/BRSRC13/CORE/DOSIO/readmse.c index 5b9a0150..4e06b836 100644 --- a/src/BRSRC13/CORE/DOSIO/readmse.c +++ b/src/BRSRC13/CORE/DOSIO/readmse.c @@ -1,5 +1,5 @@ #include "readmse.h" -#include "harness_trace.h" +#include "harness/trace.h" host_real_memory mouseMemory; host_regs regs; diff --git a/src/BRSRC13/CORE/DOSIO/readmse.h b/src/BRSRC13/CORE/DOSIO/readmse.h index f3bd8401..f751ece8 100644 --- a/src/BRSRC13/CORE/DOSIO/readmse.h +++ b/src/BRSRC13/CORE/DOSIO/readmse.h @@ -1,7 +1,7 @@ #ifndef _READMSE_H_ #define _READMSE_H_ -#include "br_types.h" +#include "brender/br_types.h" br_error DOSMouseBegin(); diff --git a/src/BRSRC13/CORE/FW/assocarr.c b/src/BRSRC13/CORE/FW/assocarr.c index 70aa2a58..9c3551f3 100644 --- a/src/BRSRC13/CORE/FW/assocarr.c +++ b/src/BRSRC13/CORE/FW/assocarr.c @@ -1,5 +1,5 @@ #include "assocarr.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: br_associative_array* __cdecl BrAssociativeArrayAllocate() br_associative_array* BrAssociativeArrayAllocate() { diff --git a/src/BRSRC13/CORE/FW/assocarr.h b/src/BRSRC13/CORE/FW/assocarr.h index 0c65aa2a..f955aa36 100644 --- a/src/BRSRC13/CORE/FW/assocarr.h +++ b/src/BRSRC13/CORE/FW/assocarr.h @@ -1,7 +1,7 @@ #ifndef _ASSOCARR_H_ #define _ASSOCARR_H_ -#include "br_types.h" +#include "brender/br_types.h" br_associative_array* BrAssociativeArrayAllocate(); diff --git a/src/BRSRC13/CORE/FW/brbegin.c b/src/BRSRC13/CORE/FW/brbegin.c index c9667386..c021b310 100644 --- a/src/BRSRC13/CORE/FW/brbegin.c +++ b/src/BRSRC13/CORE/FW/brbegin.c @@ -1,5 +1,5 @@ #include "brbegin.h" -#include "harness_trace.h" +#include "harness/trace.h" #include "CORE/HOST/himage.h" #include "CORE/PIXELMAP/pmsetup.h" diff --git a/src/BRSRC13/CORE/FW/brbegin.h b/src/BRSRC13/CORE/FW/brbegin.h index 30310210..7c71f5a3 100644 --- a/src/BRSRC13/CORE/FW/brbegin.h +++ b/src/BRSRC13/CORE/FW/brbegin.h @@ -1,7 +1,7 @@ #ifndef _BRBEGIN_H_ #define _BRBEGIN_H_ -#include "br_types.h" +#include "brender/br_types.h" br_error BrBegin(); diff --git a/src/BRSRC13/CORE/FW/brbhook.c b/src/BRSRC13/CORE/FW/brbhook.c index df96b9bd..b8772459 100644 --- a/src/BRSRC13/CORE/FW/brbhook.c +++ b/src/BRSRC13/CORE/FW/brbhook.c @@ -1,5 +1,5 @@ #include "brbhook.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: void __cdecl _BrBeginHook() void _BrBeginHook() { diff --git a/src/BRSRC13/CORE/FW/brbhook.h b/src/BRSRC13/CORE/FW/brbhook.h index 78db3202..73c14dbe 100644 --- a/src/BRSRC13/CORE/FW/brbhook.h +++ b/src/BRSRC13/CORE/FW/brbhook.h @@ -1,7 +1,7 @@ #ifndef _BRBHOOK_H_ #define _BRBHOOK_H_ -#include "br_types.h" +#include "brender/br_types.h" void _BrBeginHook(); diff --git a/src/BRSRC13/CORE/FW/brlists.c b/src/BRSRC13/CORE/FW/brlists.c index 3c6d4739..bffd6672 100644 --- a/src/BRSRC13/CORE/FW/brlists.c +++ b/src/BRSRC13/CORE/FW/brlists.c @@ -1,5 +1,5 @@ #include "brlists.h" -#include "harness_trace.h" +#include "harness/trace.h" #include #include #include diff --git a/src/BRSRC13/CORE/FW/brlists.h b/src/BRSRC13/CORE/FW/brlists.h index 8b525a2b..be108d88 100644 --- a/src/BRSRC13/CORE/FW/brlists.h +++ b/src/BRSRC13/CORE/FW/brlists.h @@ -1,7 +1,7 @@ #ifndef _BRLISTS_H_ #define _BRLISTS_H_ -#include "br_types.h" +#include "brender/br_types.h" void BrNewList(br_list* list); diff --git a/src/BRSRC13/CORE/FW/brprintf.c b/src/BRSRC13/CORE/FW/brprintf.c index 19074314..51cb2c4e 100644 --- a/src/BRSRC13/CORE/FW/brprintf.c +++ b/src/BRSRC13/CORE/FW/brprintf.c @@ -1,5 +1,5 @@ #include "brprintf.h" -#include "harness_trace.h" +#include "harness/trace.h" #include diff --git a/src/BRSRC13/CORE/FW/brprintf.h b/src/BRSRC13/CORE/FW/brprintf.h index 63f4bc76..0394d575 100644 --- a/src/BRSRC13/CORE/FW/brprintf.h +++ b/src/BRSRC13/CORE/FW/brprintf.h @@ -1,7 +1,7 @@ #ifndef _BRPRINTF_H_ #define _BRPRINTF_H_ -#include "br_types.h" +#include "brender/br_types.h" #include diff --git a/src/BRSRC13/CORE/FW/brqsort.h b/src/BRSRC13/CORE/FW/brqsort.h index 637cc8b1..07a62d37 100644 --- a/src/BRSRC13/CORE/FW/brqsort.h +++ b/src/BRSRC13/CORE/FW/brqsort.h @@ -1,7 +1,7 @@ #ifndef _BRQSORT_H_ #define _BRQSORT_H_ -#include "br_types.h" +#include "brender/br_types.h" void BrQsort(void* basep, unsigned int nelems, unsigned int size, br_qsort_cbfn comp); diff --git a/src/BRSRC13/CORE/FW/bswap.c b/src/BRSRC13/CORE/FW/bswap.c index 69ead8bd..b52b9363 100644 --- a/src/BRSRC13/CORE/FW/bswap.c +++ b/src/BRSRC13/CORE/FW/bswap.c @@ -1,5 +1,5 @@ #include "bswap.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: br_uint_32 __cdecl BrSwap32(br_uint_32 l) br_uint_32 BrSwap32(br_uint_32 l) { diff --git a/src/BRSRC13/CORE/FW/bswap.h b/src/BRSRC13/CORE/FW/bswap.h index 44894190..d2fe7fef 100644 --- a/src/BRSRC13/CORE/FW/bswap.h +++ b/src/BRSRC13/CORE/FW/bswap.h @@ -1,7 +1,7 @@ #ifndef _BSWAP_H_ #define _BSWAP_H_ -#include "br_types.h" +#include "brender/br_types.h" br_uint_32 BrSwap32(br_uint_32 l); diff --git a/src/BRSRC13/CORE/FW/datafile.c b/src/BRSRC13/CORE/FW/datafile.c index fc69fcba..c90ca7ad 100644 --- a/src/BRSRC13/CORE/FW/datafile.c +++ b/src/BRSRC13/CORE/FW/datafile.c @@ -5,7 +5,7 @@ #include "CORE/FW/resource.h" #include "CORE/STD/brstdlib.h" #include "file.h" -#include "harness_trace.h" +#include "harness/trace.h" #include #include diff --git a/src/BRSRC13/CORE/FW/datafile.h b/src/BRSRC13/CORE/FW/datafile.h index 2afb0961..61c8ce54 100644 --- a/src/BRSRC13/CORE/FW/datafile.h +++ b/src/BRSRC13/CORE/FW/datafile.h @@ -1,7 +1,7 @@ #ifndef _DATAFILE_H_ #define _DATAFILE_H_ -#include "br_types.h" +#include "brender/br_types.h" void DfPush(int type, void* value, int count); diff --git a/src/BRSRC13/CORE/FW/devlist.c b/src/BRSRC13/CORE/FW/devlist.c index 6a23eb36..f4198eae 100644 --- a/src/BRSRC13/CORE/FW/devlist.c +++ b/src/BRSRC13/CORE/FW/devlist.c @@ -1,5 +1,5 @@ #include "devlist.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: br_error __cdecl AddRequestedDrivers() br_error AddRequestedDrivers() { diff --git a/src/BRSRC13/CORE/FW/devlist.h b/src/BRSRC13/CORE/FW/devlist.h index 9ea05eab..1d74a46e 100644 --- a/src/BRSRC13/CORE/FW/devlist.h +++ b/src/BRSRC13/CORE/FW/devlist.h @@ -1,7 +1,7 @@ #ifndef _DEVLIST_H_ #define _DEVLIST_H_ -#include "br_types.h" +#include "brender/br_types.h" br_error AddRequestedDrivers(); diff --git a/src/BRSRC13/CORE/FW/devsetup.c b/src/BRSRC13/CORE/FW/devsetup.c index 58718d03..68dabf37 100644 --- a/src/BRSRC13/CORE/FW/devsetup.c +++ b/src/BRSRC13/CORE/FW/devsetup.c @@ -1,6 +1,6 @@ #include "devsetup.h" -#include "harness_hooks.h" -#include "harness_trace.h" +#include "harness/hooks.h" +#include "harness/trace.h" #include diff --git a/src/BRSRC13/CORE/FW/devsetup.h b/src/BRSRC13/CORE/FW/devsetup.h index abace4ba..3c0a6acc 100644 --- a/src/BRSRC13/CORE/FW/devsetup.h +++ b/src/BRSRC13/CORE/FW/devsetup.h @@ -1,7 +1,7 @@ #ifndef _DEVSETUP_H_ #define _DEVSETUP_H_ -#include "br_types.h" +#include "brender/br_types.h" br_pixelmap* BrDevLastBeginQuery(); diff --git a/src/BRSRC13/CORE/FW/diag.c b/src/BRSRC13/CORE/FW/diag.c index 26596afd..e05f792d 100644 --- a/src/BRSRC13/CORE/FW/diag.c +++ b/src/BRSRC13/CORE/FW/diag.c @@ -2,7 +2,7 @@ #include "CORE/STD/brstdlib.h" #include "brprintf.h" #include "fwsetup.h" -#include "harness_trace.h" +#include "harness/trace.h" #include // Global variables diff --git a/src/BRSRC13/CORE/FW/diag.h b/src/BRSRC13/CORE/FW/diag.h index edcf7134..9d435f8e 100644 --- a/src/BRSRC13/CORE/FW/diag.h +++ b/src/BRSRC13/CORE/FW/diag.h @@ -1,7 +1,7 @@ #ifndef _DIAG_H_ #define _DIAG_H_ -#include "br_types.h" +#include "brender/br_types.h" void BrFailure(const char* s, ...); void BrWarning(const char* s, ...); diff --git a/src/BRSRC13/CORE/FW/error.c b/src/BRSRC13/CORE/FW/error.c index 8a40bdbf..b7297c9c 100644 --- a/src/BRSRC13/CORE/FW/error.c +++ b/src/BRSRC13/CORE/FW/error.c @@ -1,5 +1,5 @@ #include "error.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: br_error __cdecl BrLastErrorGet(void **valuep) br_error BrLastErrorGet(void** valuep) { diff --git a/src/BRSRC13/CORE/FW/error.h b/src/BRSRC13/CORE/FW/error.h index 49ab1dcb..c71bb457 100644 --- a/src/BRSRC13/CORE/FW/error.h +++ b/src/BRSRC13/CORE/FW/error.h @@ -1,7 +1,7 @@ #ifndef _ERROR_H_ #define _ERROR_H_ -#include "br_types.h" +#include "brender/br_types.h" br_error BrLastErrorGet(void** valuep); diff --git a/src/BRSRC13/CORE/FW/file.c b/src/BRSRC13/CORE/FW/file.c index 94f7d43a..dc7af08c 100644 --- a/src/BRSRC13/CORE/FW/file.c +++ b/src/BRSRC13/CORE/FW/file.c @@ -2,7 +2,7 @@ #include "CORE/FW/fwsetup.h" #include "CORE/FW/resource.h" #include "CORE/STD/brstdlib.h" -#include "harness_trace.h" +#include "harness/trace.h" #include #include diff --git a/src/BRSRC13/CORE/FW/file.h b/src/BRSRC13/CORE/FW/file.h index 88f127db..b7bfe216 100644 --- a/src/BRSRC13/CORE/FW/file.h +++ b/src/BRSRC13/CORE/FW/file.h @@ -1,7 +1,7 @@ #ifndef _FILE_H_ #define _FILE_H_ -#include "br_types.h" +#include "brender/br_types.h" void _BrFileFree(void* res, br_uint_8 res_class, br_size_t size); diff --git a/src/BRSRC13/CORE/FW/fwsetup.c b/src/BRSRC13/CORE/FW/fwsetup.c index c4b7931c..a1ce3832 100644 --- a/src/BRSRC13/CORE/FW/fwsetup.c +++ b/src/BRSRC13/CORE/FW/fwsetup.c @@ -12,7 +12,7 @@ #include "CORE/STD/brstddiag.h" #include "CORE/STD/brstdfile.h" #include "CORE/STD/brstdmem.h" -#include "harness_trace.h" +#include "harness/trace.h" #include #include diff --git a/src/BRSRC13/CORE/FW/fwsetup.h b/src/BRSRC13/CORE/FW/fwsetup.h index 986e7536..5871fee0 100644 --- a/src/BRSRC13/CORE/FW/fwsetup.h +++ b/src/BRSRC13/CORE/FW/fwsetup.h @@ -1,7 +1,7 @@ #ifndef _FWSETUP_H_ #define _FWSETUP_H_ -#include "br_types.h" +#include "brender/br_types.h" extern br_framework_state fw; diff --git a/src/BRSRC13/CORE/FW/genfile.c b/src/BRSRC13/CORE/FW/genfile.c index f04e67ec..97df6a92 100644 --- a/src/BRSRC13/CORE/FW/genfile.c +++ b/src/BRSRC13/CORE/FW/genfile.c @@ -1,5 +1,5 @@ #include "genfile.h" -#include "harness_trace.h" +#include "harness/trace.h" #include br_file_struct_member file_info_FM[2]; diff --git a/src/BRSRC13/CORE/FW/genfile.h b/src/BRSRC13/CORE/FW/genfile.h index c8cf17f4..1437ed89 100644 --- a/src/BRSRC13/CORE/FW/genfile.h +++ b/src/BRSRC13/CORE/FW/genfile.h @@ -1,7 +1,7 @@ #ifndef _GENFILE_H_ #define _GENFILE_H_ -#include "br_types.h" +#include "brender/br_types.h" int FopRead_END(br_datafile* df, br_uint_32 id, br_uint_32 length, br_uint_32 count); diff --git a/src/BRSRC13/CORE/FW/image.c b/src/BRSRC13/CORE/FW/image.c index d2db09d8..0c152993 100644 --- a/src/BRSRC13/CORE/FW/image.c +++ b/src/BRSRC13/CORE/FW/image.c @@ -1,5 +1,5 @@ #include "image.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: br_boolean __cdecl BrImageAdd(br_image *img) br_boolean BrImageAdd(br_image* img) { diff --git a/src/BRSRC13/CORE/FW/image.h b/src/BRSRC13/CORE/FW/image.h index 6cfa6ee0..a3f900a7 100644 --- a/src/BRSRC13/CORE/FW/image.h +++ b/src/BRSRC13/CORE/FW/image.h @@ -1,7 +1,7 @@ #ifndef _IMAGE_H_ #define _IMAGE_H_ -#include "br_types.h" +#include "brender/br_types.h" br_boolean BrImageAdd(br_image* img); diff --git a/src/BRSRC13/CORE/FW/lexer.c b/src/BRSRC13/CORE/FW/lexer.c index bbb46c5c..f65b1d3d 100644 --- a/src/BRSRC13/CORE/FW/lexer.c +++ b/src/BRSRC13/CORE/FW/lexer.c @@ -1,5 +1,5 @@ #include "lexer.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: void __cdecl lexerError(br_lexer *l, char *string) void lexerError(br_lexer* l, char* string) { diff --git a/src/BRSRC13/CORE/FW/lexer.h b/src/BRSRC13/CORE/FW/lexer.h index 0e05579d..26f738f5 100644 --- a/src/BRSRC13/CORE/FW/lexer.h +++ b/src/BRSRC13/CORE/FW/lexer.h @@ -1,7 +1,7 @@ #ifndef _LEXER_H_ #define _LEXER_H_ -#include "br_types.h" +#include "brender/br_types.h" void lexerError(br_lexer* l, char* string); diff --git a/src/BRSRC13/CORE/FW/loader.c b/src/BRSRC13/CORE/FW/loader.c index 36c71ba5..689d6f4c 100644 --- a/src/BRSRC13/CORE/FW/loader.c +++ b/src/BRSRC13/CORE/FW/loader.c @@ -1,5 +1,5 @@ #include "loader.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: br_image* __usercall ImageLoad@(char *name@) br_image* ImageLoad(char* name) { diff --git a/src/BRSRC13/CORE/FW/loader.h b/src/BRSRC13/CORE/FW/loader.h index 95443f03..78c2cfc7 100644 --- a/src/BRSRC13/CORE/FW/loader.h +++ b/src/BRSRC13/CORE/FW/loader.h @@ -1,7 +1,7 @@ #ifndef _LOADER_H_ #define _LOADER_H_ -#include "br_types.h" +#include "brender/br_types.h" br_image* ImageLoad(char* name); diff --git a/src/BRSRC13/CORE/FW/mem.c b/src/BRSRC13/CORE/FW/mem.c index 35f4b14d..5a82a528 100644 --- a/src/BRSRC13/CORE/FW/mem.c +++ b/src/BRSRC13/CORE/FW/mem.c @@ -2,7 +2,7 @@ #include "CORE/FW/fwsetup.h" #include "CORE/STD/brstdlib.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: void* __cdecl BrMemAllocate(br_size_t size, br_uint_8 type) void* BrMemAllocate(br_size_t size, br_uint_8 type) { diff --git a/src/BRSRC13/CORE/FW/mem.h b/src/BRSRC13/CORE/FW/mem.h index 67fca46e..f26a2239 100644 --- a/src/BRSRC13/CORE/FW/mem.h +++ b/src/BRSRC13/CORE/FW/mem.h @@ -1,7 +1,7 @@ #ifndef _MEM_H_ #define _MEM_H_ -#include "br_types.h" +#include "brender/br_types.h" void* BrMemAllocate(br_size_t size, br_uint_8 type); diff --git a/src/BRSRC13/CORE/FW/object.c b/src/BRSRC13/CORE/FW/object.c index b9242826..ecc6c7f9 100644 --- a/src/BRSRC13/CORE/FW/object.c +++ b/src/BRSRC13/CORE/FW/object.c @@ -1,5 +1,5 @@ #include "object.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: br_error __cdecl _M_br_object_query(br_object *self, br_uint_32 *pvalue, br_token t) br_error _M_br_object_query(br_object* self, br_uint_32* pvalue, br_token t) { diff --git a/src/BRSRC13/CORE/FW/object.h b/src/BRSRC13/CORE/FW/object.h index a00fb41e..5136e3a1 100644 --- a/src/BRSRC13/CORE/FW/object.h +++ b/src/BRSRC13/CORE/FW/object.h @@ -1,7 +1,7 @@ #ifndef _OBJECT_H_ #define _OBJECT_H_ -#include "br_types.h" +#include "brender/br_types.h" br_error _M_br_object_query(br_object* self, br_uint_32* pvalue, br_token t); diff --git a/src/BRSRC13/CORE/FW/objectc.c b/src/BRSRC13/CORE/FW/objectc.c index b33ad6bc..3d432773 100644 --- a/src/BRSRC13/CORE/FW/objectc.c +++ b/src/BRSRC13/CORE/FW/objectc.c @@ -1,5 +1,5 @@ #include "objectc.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: void* __cdecl BrObjectListAllocate(void *res) void* BrObjectListAllocate(void* res) { diff --git a/src/BRSRC13/CORE/FW/objectc.h b/src/BRSRC13/CORE/FW/objectc.h index 7e5f7ade..b1cd4cf6 100644 --- a/src/BRSRC13/CORE/FW/objectc.h +++ b/src/BRSRC13/CORE/FW/objectc.h @@ -1,7 +1,7 @@ #ifndef _OBJECTC_H_ #define _OBJECTC_H_ -#include "br_types.h" +#include "brender/br_types.h" void* BrObjectListAllocate(void* res); diff --git a/src/BRSRC13/CORE/FW/pattern.c b/src/BRSRC13/CORE/FW/pattern.c index 5aaa08d6..b486b0a5 100644 --- a/src/BRSRC13/CORE/FW/pattern.c +++ b/src/BRSRC13/CORE/FW/pattern.c @@ -1,5 +1,5 @@ #include "pattern.h" -#include "harness_trace.h" +#include "harness/trace.h" #include // IDA: br_boolean __cdecl BrNamePatternMatch(char *p, char *s) diff --git a/src/BRSRC13/CORE/FW/pattern.h b/src/BRSRC13/CORE/FW/pattern.h index 1779067e..8ca99282 100644 --- a/src/BRSRC13/CORE/FW/pattern.h +++ b/src/BRSRC13/CORE/FW/pattern.h @@ -1,7 +1,7 @@ #ifndef _PATTERN_H_ #define _PATTERN_H_ -#include "br_types.h" +#include "brender/br_types.h" br_boolean BrNamePatternMatch(char* p, char* s); diff --git a/src/BRSRC13/CORE/FW/register.c b/src/BRSRC13/CORE/FW/register.c index f331f89e..a6a38365 100644 --- a/src/BRSRC13/CORE/FW/register.c +++ b/src/BRSRC13/CORE/FW/register.c @@ -1,5 +1,5 @@ #include "register.h" -#include "harness_trace.h" +#include "harness/trace.h" #include "brlists.h" #include "fwsetup.h" diff --git a/src/BRSRC13/CORE/FW/register.h b/src/BRSRC13/CORE/FW/register.h index 2423cf1b..13cc2d1b 100644 --- a/src/BRSRC13/CORE/FW/register.h +++ b/src/BRSRC13/CORE/FW/register.h @@ -1,7 +1,7 @@ #ifndef _REGISTER_H_ #define _REGISTER_H_ -#include "br_types.h" +#include "brender/br_types.h" void* BrRegistryNew(br_registry* reg); diff --git a/src/BRSRC13/CORE/FW/resource.c b/src/BRSRC13/CORE/FW/resource.c index 2b1bfe92..f773ed0c 100644 --- a/src/BRSRC13/CORE/FW/resource.c +++ b/src/BRSRC13/CORE/FW/resource.c @@ -1,11 +1,11 @@ #include "resource.h" -#include "brlists.h" -#include "brstdlib.h" -#include "file.h" -#include "fwsetup.h" -#include "harness_trace.h" -#include "mem.h" +#include "CORE/FW/brlists.h" +#include "CORE/FW/file.h" +#include "CORE/FW/fwsetup.h" +#include "CORE/FW/mem.h" +#include "CORE/STD/brstdlib.h" +#include "harness/trace.h" #include #include diff --git a/src/BRSRC13/CORE/FW/resource.h b/src/BRSRC13/CORE/FW/resource.h index ea21aa3a..93e32bfd 100644 --- a/src/BRSRC13/CORE/FW/resource.h +++ b/src/BRSRC13/CORE/FW/resource.h @@ -1,7 +1,7 @@ #ifndef _RESOURCE_H_ #define _RESOURCE_H_ -#include "br_types.h" +#include "brender/br_types.h" void* ResToUser(resource_header* r); diff --git a/src/BRSRC13/CORE/FW/resreg.c b/src/BRSRC13/CORE/FW/resreg.c index 7dd3a274..faf15f52 100644 --- a/src/BRSRC13/CORE/FW/resreg.c +++ b/src/BRSRC13/CORE/FW/resreg.c @@ -1,5 +1,5 @@ #include "resreg.h" -#include "harness_trace.h" +#include "harness/trace.h" #include "CORE/FW/fwsetup.h" #include "CORE/FW/register.h" diff --git a/src/BRSRC13/CORE/FW/resreg.h b/src/BRSRC13/CORE/FW/resreg.h index f9385350..2c0d8ec2 100644 --- a/src/BRSRC13/CORE/FW/resreg.h +++ b/src/BRSRC13/CORE/FW/resreg.h @@ -1,7 +1,7 @@ #ifndef _RESREG_H_ #define _RESREG_H_ -#include "br_types.h" +#include "brender/br_types.h" br_resource_class* BrResClassAdd(br_resource_class* rclass); diff --git a/src/BRSRC13/CORE/FW/scratch.c b/src/BRSRC13/CORE/FW/scratch.c index ee05d3a4..df5a08a5 100644 --- a/src/BRSRC13/CORE/FW/scratch.c +++ b/src/BRSRC13/CORE/FW/scratch.c @@ -1,7 +1,7 @@ #include "scratch.h" #include "diag.h" #include "fwsetup.h" -#include "harness_trace.h" +#include "harness/trace.h" #include "resource.h" char scratchString[512]; diff --git a/src/BRSRC13/CORE/FW/scratch.h b/src/BRSRC13/CORE/FW/scratch.h index 53b885fe..cd5713f5 100644 --- a/src/BRSRC13/CORE/FW/scratch.h +++ b/src/BRSRC13/CORE/FW/scratch.h @@ -1,7 +1,7 @@ #ifndef _SCRATCH_H_ #define _SCRATCH_H_ -#include "br_types.h" +#include "brender/br_types.h" void* BrScratchAllocate(br_size_t size); diff --git a/src/BRSRC13/CORE/FW/sys_conf.c b/src/BRSRC13/CORE/FW/sys_conf.c index bd2038c6..791b0f01 100644 --- a/src/BRSRC13/CORE/FW/sys_conf.c +++ b/src/BRSRC13/CORE/FW/sys_conf.c @@ -1,5 +1,5 @@ #include "sys_conf.h" -#include "harness_trace.h" +#include "harness/trace.h" br_token valid_system_config_tokens[5]; diff --git a/src/BRSRC13/CORE/FW/sys_conf.h b/src/BRSRC13/CORE/FW/sys_conf.h index e357095a..30865359 100644 --- a/src/BRSRC13/CORE/FW/sys_conf.h +++ b/src/BRSRC13/CORE/FW/sys_conf.h @@ -1,7 +1,7 @@ #ifndef _SYS_CONF_H_ #define _SYS_CONF_H_ -#include "br_types.h" +#include "brender/br_types.h" br_boolean Is_Valid_Sys_Config_Token(br_token t); diff --git a/src/BRSRC13/CORE/FW/token.c b/src/BRSRC13/CORE/FW/token.c index fe983cf8..e421107f 100644 --- a/src/BRSRC13/CORE/FW/token.c +++ b/src/BRSRC13/CORE/FW/token.c @@ -1,5 +1,5 @@ #include "token.h" -#include "harness_trace.h" +#include "harness/trace.h" br_token_entry predefinedTokens[457]; token_type tokenTypes[37]; diff --git a/src/BRSRC13/CORE/FW/token.h b/src/BRSRC13/CORE/FW/token.h index 45a3f988..97793602 100644 --- a/src/BRSRC13/CORE/FW/token.h +++ b/src/BRSRC13/CORE/FW/token.h @@ -1,7 +1,7 @@ #ifndef _TOKEN_H_ #define _TOKEN_H_ -#include "br_types.h" +#include "brender/br_types.h" void BrTokenBegin(); diff --git a/src/BRSRC13/CORE/FW/tokenval.c b/src/BRSRC13/CORE/FW/tokenval.c index 92f55b21..cc1e5a11 100644 --- a/src/BRSRC13/CORE/FW/tokenval.c +++ b/src/BRSRC13/CORE/FW/tokenval.c @@ -1,5 +1,5 @@ #include "tokenval.h" -#include "harness_trace.h" +#include "harness/trace.h" #include "resource.h" // IDA: br_tv_template* __cdecl BrTVTemplateAllocate(void *res, br_tv_template_entry *entries, int n_entries) diff --git a/src/BRSRC13/CORE/FW/tokenval.h b/src/BRSRC13/CORE/FW/tokenval.h index bbd81fdf..1743245a 100644 --- a/src/BRSRC13/CORE/FW/tokenval.h +++ b/src/BRSRC13/CORE/FW/tokenval.h @@ -1,7 +1,7 @@ #ifndef _TOKENVAL_H_ #define _TOKENVAL_H_ -#include "br_types.h" +#include "brender/br_types.h" br_tv_template* BrTVTemplateAllocate(void* res, br_tv_template_entry* entries, int n_entries); diff --git a/src/BRSRC13/CORE/HOST/himage.c b/src/BRSRC13/CORE/HOST/himage.c index fd1e543c..9f69bb8c 100644 --- a/src/BRSRC13/CORE/HOST/himage.c +++ b/src/BRSRC13/CORE/HOST/himage.c @@ -1,5 +1,5 @@ #include "himage.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: void* __cdecl HostImageLoad(char *name) void* HostImageLoad(char* name) { diff --git a/src/BRSRC13/CORE/HOST/himage.h b/src/BRSRC13/CORE/HOST/himage.h index 63229fdd..9325dd51 100644 --- a/src/BRSRC13/CORE/HOST/himage.h +++ b/src/BRSRC13/CORE/HOST/himage.h @@ -1,7 +1,7 @@ #ifndef _HIMAGE_H_ #define _HIMAGE_H_ -#include "br_types.h" +#include "brender/br_types.h" void* HostImageLoad(char* name); diff --git a/src/BRSRC13/CORE/HOST/hook.c b/src/BRSRC13/CORE/HOST/hook.c index 6f3f5cac..76c1282e 100644 --- a/src/BRSRC13/CORE/HOST/hook.c +++ b/src/BRSRC13/CORE/HOST/hook.c @@ -1,5 +1,5 @@ #include "hook.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: br_error __cdecl HostInterruptHook(host_interrupt_hook *h, br_uint_8 vector, br_uint_32 off, br_uint_16 sel) br_error HostInterruptHook(host_interrupt_hook* h, br_uint_8 vector, br_uint_32 off, br_uint_16 sel) { diff --git a/src/BRSRC13/CORE/HOST/hook.h b/src/BRSRC13/CORE/HOST/hook.h index 1d61bf9a..4c12b903 100644 --- a/src/BRSRC13/CORE/HOST/hook.h +++ b/src/BRSRC13/CORE/HOST/hook.h @@ -1,7 +1,7 @@ #ifndef _HOOK_H_ #define _HOOK_H_ -#include "br_types.h" +#include "brender/br_types.h" br_error HostInterruptHook(host_interrupt_hook* h, br_uint_8 vector, br_uint_32 off, br_uint_16 sel); diff --git a/src/BRSRC13/CORE/HOST/hostcfg.c b/src/BRSRC13/CORE/HOST/hostcfg.c index 7bcb2fa5..937e9312 100644 --- a/src/BRSRC13/CORE/HOST/hostcfg.c +++ b/src/BRSRC13/CORE/HOST/hostcfg.c @@ -1,5 +1,5 @@ #include "hostcfg.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: char* __cdecl HostDefaultDevice() char* HostDefaultDevice() { diff --git a/src/BRSRC13/CORE/HOST/hostcfg.h b/src/BRSRC13/CORE/HOST/hostcfg.h index 4bc2a40f..a1aa644c 100644 --- a/src/BRSRC13/CORE/HOST/hostcfg.h +++ b/src/BRSRC13/CORE/HOST/hostcfg.h @@ -1,7 +1,7 @@ #ifndef _HOSTCFG_H_ #define _HOSTCFG_H_ -#include "br_types.h" +#include "brender/br_types.h" char* HostDefaultDevice(); diff --git a/src/BRSRC13/CORE/HOST/hstsetup.c b/src/BRSRC13/CORE/HOST/hstsetup.c index 2388ff1a..b5a875e3 100644 --- a/src/BRSRC13/CORE/HOST/hstsetup.c +++ b/src/BRSRC13/CORE/HOST/hstsetup.c @@ -1,5 +1,5 @@ #include "hstsetup.h" -#include "harness_trace.h" +#include "harness/trace.h" host_info hostInfo; void* functionPointers_BRHOST1[50]; diff --git a/src/BRSRC13/CORE/HOST/hstsetup.h b/src/BRSRC13/CORE/HOST/hstsetup.h index 6177c06d..e518c088 100644 --- a/src/BRSRC13/CORE/HOST/hstsetup.h +++ b/src/BRSRC13/CORE/HOST/hstsetup.h @@ -1,7 +1,7 @@ #ifndef _HSTSETUP_H_ #define _HSTSETUP_H_ -#include "br_types.h" +#include "brender/br_types.h" void HostBegin(); diff --git a/src/BRSRC13/CORE/HOST/memmgmt.c b/src/BRSRC13/CORE/HOST/memmgmt.c index ae8adbe1..d31f4f14 100644 --- a/src/BRSRC13/CORE/HOST/memmgmt.c +++ b/src/BRSRC13/CORE/HOST/memmgmt.c @@ -1,5 +1,5 @@ #include "memmgmt.h" -#include "harness_trace.h" +#include "harness/trace.h" #include #include diff --git a/src/BRSRC13/CORE/HOST/memmgmt.h b/src/BRSRC13/CORE/HOST/memmgmt.h index 807aa7fd..9045424f 100644 --- a/src/BRSRC13/CORE/HOST/memmgmt.h +++ b/src/BRSRC13/CORE/HOST/memmgmt.h @@ -1,7 +1,7 @@ #ifndef _MEMMGMT_H_ #define _MEMMGMT_H_ -#include "br_types.h" +#include "brender/br_types.h" br_error HostLock(br_uint_32 offset, br_uint_16 sel, br_size_t size); diff --git a/src/BRSRC13/CORE/MATH/angles.c b/src/BRSRC13/CORE/MATH/angles.c index 6007de3d..9cb9bb04 100644 --- a/src/BRSRC13/CORE/MATH/angles.c +++ b/src/BRSRC13/CORE/MATH/angles.c @@ -1,5 +1,5 @@ #include "angles.h" -#include "harness_trace.h" +#include "harness/trace.h" order_info OrderAxes[32]; diff --git a/src/BRSRC13/CORE/MATH/angles.h b/src/BRSRC13/CORE/MATH/angles.h index 9c6673b4..d19bf4a1 100644 --- a/src/BRSRC13/CORE/MATH/angles.h +++ b/src/BRSRC13/CORE/MATH/angles.h @@ -1,7 +1,7 @@ #ifndef _ANGLES_H_ #define _ANGLES_H_ -#include "br_types.h" +#include "brender/br_types.h" #include br_matrix34* BrEulerToMatrix34(br_matrix34* mat, br_euler* euler); diff --git a/src/BRSRC13/CORE/MATH/matrix23.c b/src/BRSRC13/CORE/MATH/matrix23.c index 2148fa14..52e52d51 100644 --- a/src/BRSRC13/CORE/MATH/matrix23.c +++ b/src/BRSRC13/CORE/MATH/matrix23.c @@ -1,5 +1,5 @@ #include "matrix23.h" -#include "harness_trace.h" +#include "harness/trace.h" br_matrix23 mattmp1_23; br_matrix23 mattmp2_23; diff --git a/src/BRSRC13/CORE/MATH/matrix23.h b/src/BRSRC13/CORE/MATH/matrix23.h index 61beb9b6..47cc16cb 100644 --- a/src/BRSRC13/CORE/MATH/matrix23.h +++ b/src/BRSRC13/CORE/MATH/matrix23.h @@ -1,7 +1,7 @@ #ifndef _MATRIX23_H_ #define _MATRIX23_H_ -#include "br_types.h" +#include "brender/br_types.h" void BrMatrix23Copy(br_matrix23* A, br_matrix23* B); diff --git a/src/BRSRC13/CORE/MATH/matrix34.c b/src/BRSRC13/CORE/MATH/matrix34.c index 3ed01a36..d9c45054 100644 --- a/src/BRSRC13/CORE/MATH/matrix34.c +++ b/src/BRSRC13/CORE/MATH/matrix34.c @@ -1,5 +1,5 @@ #include "matrix34.h" -#include "harness_trace.h" +#include "harness/trace.h" #include "vector.h" #include diff --git a/src/BRSRC13/CORE/MATH/matrix34.h b/src/BRSRC13/CORE/MATH/matrix34.h index dba645d5..242862d1 100644 --- a/src/BRSRC13/CORE/MATH/matrix34.h +++ b/src/BRSRC13/CORE/MATH/matrix34.h @@ -1,7 +1,7 @@ #ifndef _MATRIX34_H_ #define _MATRIX34_H_ -#include "br_types.h" +#include "brender/br_types.h" void BrMatrix34Copy(br_matrix34* A, br_matrix34* B); diff --git a/src/BRSRC13/CORE/MATH/matrix4.c b/src/BRSRC13/CORE/MATH/matrix4.c index 450aaf53..171a5c54 100644 --- a/src/BRSRC13/CORE/MATH/matrix4.c +++ b/src/BRSRC13/CORE/MATH/matrix4.c @@ -1,5 +1,5 @@ #include "matrix4.h" -#include "harness_trace.h" +#include "harness/trace.h" #include #define A(x, y) A->m[x][y] diff --git a/src/BRSRC13/CORE/MATH/matrix4.h b/src/BRSRC13/CORE/MATH/matrix4.h index d30346cc..7e595b38 100644 --- a/src/BRSRC13/CORE/MATH/matrix4.h +++ b/src/BRSRC13/CORE/MATH/matrix4.h @@ -1,7 +1,7 @@ #ifndef _MATRIX4_H_ #define _MATRIX4_H_ -#include "br_types.h" +#include "brender/br_types.h" void BrMatrix4Copy(br_matrix4* A, br_matrix4* B); diff --git a/src/BRSRC13/CORE/MATH/plane.c b/src/BRSRC13/CORE/MATH/plane.c index f1b04922..6be3714b 100644 --- a/src/BRSRC13/CORE/MATH/plane.c +++ b/src/BRSRC13/CORE/MATH/plane.c @@ -1,6 +1,6 @@ #include "plane.h" -#include "brmath.h" -#include "harness_trace.h" +#include "CORE/STD/brmath.h" +#include "harness/trace.h" #include // IDA: br_int_32 __cdecl BrPlaneEquation(br_vector4 *eqn, br_vector3 *v0, br_vector3 *v1, br_vector3 *v2) diff --git a/src/BRSRC13/CORE/MATH/plane.h b/src/BRSRC13/CORE/MATH/plane.h index a5dc4d1d..1488fa74 100644 --- a/src/BRSRC13/CORE/MATH/plane.h +++ b/src/BRSRC13/CORE/MATH/plane.h @@ -1,7 +1,7 @@ #ifndef _PLANE_H_ #define _PLANE_H_ -#include "br_types.h" +#include "brender/br_types.h" br_int_32 BrPlaneEquation(br_vector4* eqn, br_vector3* v0, br_vector3* v1, br_vector3* v2); diff --git a/src/BRSRC13/CORE/MATH/quat.c b/src/BRSRC13/CORE/MATH/quat.c index 7e5f528f..c5510cea 100644 --- a/src/BRSRC13/CORE/MATH/quat.c +++ b/src/BRSRC13/CORE/MATH/quat.c @@ -1,5 +1,5 @@ #include "quat.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: br_quat* __cdecl BrQuatMul(br_quat *q, br_quat *l, br_quat *r) br_quat* BrQuatMul(br_quat* q, br_quat* l, br_quat* r) { diff --git a/src/BRSRC13/CORE/MATH/quat.h b/src/BRSRC13/CORE/MATH/quat.h index 236b28b1..15a34653 100644 --- a/src/BRSRC13/CORE/MATH/quat.h +++ b/src/BRSRC13/CORE/MATH/quat.h @@ -1,7 +1,7 @@ #ifndef _QUAT_H_ #define _QUAT_H_ -#include "br_types.h" +#include "brender/br_types.h" br_quat* BrQuatMul(br_quat* q, br_quat* l, br_quat* r); diff --git a/src/BRSRC13/CORE/MATH/transfrm.c b/src/BRSRC13/CORE/MATH/transfrm.c index aa488517..7fb09f77 100644 --- a/src/BRSRC13/CORE/MATH/transfrm.c +++ b/src/BRSRC13/CORE/MATH/transfrm.c @@ -3,7 +3,7 @@ #include "CORE/MATH/matrix34.h" #include "CORE/MATH/quat.h" #include "CORE/MATH/vector.h" -#include "harness_trace.h" +#include "harness/trace.h" #define M34 BR_TRANSFORM_MATRIX34 #define MLP BR_TRANSFORM_MATRIX34_LP diff --git a/src/BRSRC13/CORE/MATH/transfrm.h b/src/BRSRC13/CORE/MATH/transfrm.h index 92af07f1..a0371065 100644 --- a/src/BRSRC13/CORE/MATH/transfrm.h +++ b/src/BRSRC13/CORE/MATH/transfrm.h @@ -1,7 +1,7 @@ #ifndef _TRANSFRM_H_ #define _TRANSFRM_H_ -#include "br_types.h" +#include "brender/br_types.h" extern br_uint_8 _CombineTransforms[7][7]; #define BrTransformCombineTypes(a, b) (_CombineTransforms[(a)][(b)]) diff --git a/src/BRSRC13/CORE/MATH/vector.c b/src/BRSRC13/CORE/MATH/vector.c index ded6f0a5..ee9c54af 100644 --- a/src/BRSRC13/CORE/MATH/vector.c +++ b/src/BRSRC13/CORE/MATH/vector.c @@ -1,5 +1,5 @@ #include "vector.h" -#include "harness_trace.h" +#include "harness/trace.h" #include // IDA: void __cdecl BrVector2Copy(br_vector2 *v1, br_vector2 *v2) diff --git a/src/BRSRC13/CORE/MATH/vector.h b/src/BRSRC13/CORE/MATH/vector.h index 782dfd94..82e57cd3 100644 --- a/src/BRSRC13/CORE/MATH/vector.h +++ b/src/BRSRC13/CORE/MATH/vector.h @@ -1,7 +1,7 @@ #ifndef _VECTOR_H_ #define _VECTOR_H_ -#include "br_types.h" +#include "brender/br_types.h" void BrVector2Copy(br_vector2* v1, br_vector2* v2); diff --git a/src/BRSRC13/CORE/PIXELMAP/fontptrs.h b/src/BRSRC13/CORE/PIXELMAP/fontptrs.h index 5124d22f..ca1c7481 100644 --- a/src/BRSRC13/CORE/PIXELMAP/fontptrs.h +++ b/src/BRSRC13/CORE/PIXELMAP/fontptrs.h @@ -1,6 +1,6 @@ #ifndef _FONTPTRS_H_ #define _FONTPTRS_H_ -#include "br_types.h" +#include "brender/br_types.h" #endif diff --git a/src/BRSRC13/CORE/PIXELMAP/genclip.c b/src/BRSRC13/CORE/PIXELMAP/genclip.c index bf5a9585..f8b8af4d 100644 --- a/src/BRSRC13/CORE/PIXELMAP/genclip.c +++ b/src/BRSRC13/CORE/PIXELMAP/genclip.c @@ -1,5 +1,5 @@ #include "genclip.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: br_clip_result __cdecl PixelmapPointClip(br_point *out, br_point *in, br_pixelmap *pm) br_clip_result PixelmapPointClip(br_point* out, br_point* in, br_pixelmap* pm) { diff --git a/src/BRSRC13/CORE/PIXELMAP/genclip.h b/src/BRSRC13/CORE/PIXELMAP/genclip.h index 91e3391f..ad9e32a3 100644 --- a/src/BRSRC13/CORE/PIXELMAP/genclip.h +++ b/src/BRSRC13/CORE/PIXELMAP/genclip.h @@ -1,7 +1,7 @@ #ifndef _GENCLIP_H_ #define _GENCLIP_H_ -#include "br_types.h" +#include "brender/br_types.h" br_clip_result PixelmapPointClip(br_point* out, br_point* in, br_pixelmap* pm); diff --git a/src/BRSRC13/CORE/PIXELMAP/gencopy.c b/src/BRSRC13/CORE/PIXELMAP/gencopy.c index 5864a238..5ebb1fc9 100644 --- a/src/BRSRC13/CORE/PIXELMAP/gencopy.c +++ b/src/BRSRC13/CORE/PIXELMAP/gencopy.c @@ -1,5 +1,5 @@ #include "gencopy.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: br_error __usercall GeneralRectangleCopy@(br_device_pixelmap *dest@, br_point *p@, br_device_pixelmap *src@, br_rectangle *r@) br_error GeneralRectangleCopy(br_device_pixelmap* dest, br_point* p, br_device_pixelmap* src, br_rectangle* r) { diff --git a/src/BRSRC13/CORE/PIXELMAP/gencopy.h b/src/BRSRC13/CORE/PIXELMAP/gencopy.h index d333f298..f8c3157e 100644 --- a/src/BRSRC13/CORE/PIXELMAP/gencopy.h +++ b/src/BRSRC13/CORE/PIXELMAP/gencopy.h @@ -1,7 +1,7 @@ #ifndef _GENCOPY_H_ #define _GENCOPY_H_ -#include "br_types.h" +#include "brender/br_types.h" br_error GeneralRectangleCopy(br_device_pixelmap* dest, br_point* p, br_device_pixelmap* src, br_rectangle* r); diff --git a/src/BRSRC13/CORE/PIXELMAP/pixelmap.c b/src/BRSRC13/CORE/PIXELMAP/pixelmap.c index 291a4a26..77c0d046 100644 --- a/src/BRSRC13/CORE/PIXELMAP/pixelmap.c +++ b/src/BRSRC13/CORE/PIXELMAP/pixelmap.c @@ -1,5 +1,5 @@ -#include "pixelmap.h" -#include "harness_trace.h" +#include "CORE/PIXELMAP/pixelmap.h" +#include "harness/trace.h" #include "pmmem.h" // IDA: br_pixelmap* __cdecl BrPixelmapAllocate(br_uint_8 type, br_int_32 w, br_int_32 h, void *pixels, int flags) diff --git a/src/BRSRC13/CORE/PIXELMAP/pixelmap.h b/src/BRSRC13/CORE/PIXELMAP/pixelmap.h index c53d8e87..99cba216 100644 --- a/src/BRSRC13/CORE/PIXELMAP/pixelmap.h +++ b/src/BRSRC13/CORE/PIXELMAP/pixelmap.h @@ -1,7 +1,7 @@ #ifndef _PIXELMAP_H_ #define _PIXELMAP_H_ -#include "br_types.h" +#include "brender/br_types.h" br_pixelmap* BrPixelmapAllocate(br_uint_8 type, br_int_32 w, br_int_32 h, void* pixels, int flags); diff --git a/src/BRSRC13/CORE/PIXELMAP/pmdsptch.c b/src/BRSRC13/CORE/PIXELMAP/pmdsptch.c index 0583aa45..f412986c 100644 --- a/src/BRSRC13/CORE/PIXELMAP/pmdsptch.c +++ b/src/BRSRC13/CORE/PIXELMAP/pmdsptch.c @@ -1,9 +1,9 @@ #include "pmdsptch.h" -#include "brstdlib.h" -#include "harness_hooks.h" -#include "harness_trace.h" -#include "pmmem.h" +#include "CORE/PIXELMAP/pmmem.h" +#include "CORE/STD/brstdlib.h" +#include "harness/hooks.h" +#include "harness/trace.h" #include #include #include @@ -98,18 +98,18 @@ br_pixelmap* BrPixelmapClone(br_pixelmap* src) { // IDA: void __cdecl BrPixelmapFill(br_pixelmap *dst, br_uint_32 colour) void BrPixelmapFill(br_pixelmap* dst, br_uint_32 colour) { - br_uint_8 linear_wholepixels; //added Jeff LOG_TRACE("(%p, %d)", dst, colour); + br_uint_32 y; + char* d; - linear_wholepixels = BR_PMF_LINEAR | BR_PMF_ROW_WHOLEPIXELS; - if ((dst->flags & linear_wholepixels) == linear_wholepixels) { - if (dst->row_bytes > 0) { - memset(dst->pixels, colour, dst->row_bytes * dst->height); - } else { - TELL_ME_IF_WE_PASS_THIS_WAY(); - } + if ((dst->flags & (BR_PMF_LINEAR | BR_PMF_ROW_WHOLEPIXELS)) == (BR_PMF_LINEAR | BR_PMF_ROW_WHOLEPIXELS)) { + memset(dst->pixels, colour, dst->row_bytes * dst->height); } else { - TELL_ME_IF_WE_PASS_THIS_WAY(); + d = dst->pixels; + for (y = 0; y < dst->height; y++) { + memset(d, colour, dst->row_bytes); + d += dst->row_bytes; + } } } diff --git a/src/BRSRC13/CORE/PIXELMAP/pmdsptch.h b/src/BRSRC13/CORE/PIXELMAP/pmdsptch.h index 52f6b85f..babce758 100644 --- a/src/BRSRC13/CORE/PIXELMAP/pmdsptch.h +++ b/src/BRSRC13/CORE/PIXELMAP/pmdsptch.h @@ -1,7 +1,7 @@ #ifndef _PMDSPTCH_H_ #define _PMDSPTCH_H_ -#include "br_types.h" +#include "brender/br_types.h" br_pixelmap* BrPixelmapAllocateSub(br_pixelmap* src, br_int_32 x, br_int_32 y, br_int_32 w, br_int_32 h); diff --git a/src/BRSRC13/CORE/PIXELMAP/pmfile.c b/src/BRSRC13/CORE/PIXELMAP/pmfile.c index c28d5d9d..7013271f 100644 --- a/src/BRSRC13/CORE/PIXELMAP/pmfile.c +++ b/src/BRSRC13/CORE/PIXELMAP/pmfile.c @@ -1,5 +1,5 @@ #include "pmfile.h" -#include "harness_trace.h" +#include "harness/trace.h" #include "CORE/FW/datafile.h" #include "CORE/FW/genfile.h" diff --git a/src/BRSRC13/CORE/PIXELMAP/pmfile.h b/src/BRSRC13/CORE/PIXELMAP/pmfile.h index 4c2b5f8f..0aca0294 100644 --- a/src/BRSRC13/CORE/PIXELMAP/pmfile.h +++ b/src/BRSRC13/CORE/PIXELMAP/pmfile.h @@ -1,7 +1,7 @@ #ifndef _PMFILE_H_ #define _PMFILE_H_ -#include "br_types.h" +#include "brender/br_types.h" int FopWrite_PIXELMAP(br_datafile* df, br_pixelmap* pixelmap); diff --git a/src/BRSRC13/CORE/PIXELMAP/pmgen.c b/src/BRSRC13/CORE/PIXELMAP/pmgen.c index 35013a52..37247eee 100644 --- a/src/BRSRC13/CORE/PIXELMAP/pmgen.c +++ b/src/BRSRC13/CORE/PIXELMAP/pmgen.c @@ -1,5 +1,5 @@ #include "pmgen.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: br_error __cdecl _M_br_device_pixelmap_gen_match(br_device_pixelmap *self, br_device_pixelmap **newpm, br_token_value *tv) br_error _M_br_device_pixelmap_gen_match(br_device_pixelmap* self, br_device_pixelmap** newpm, br_token_value* tv) { diff --git a/src/BRSRC13/CORE/PIXELMAP/pmgen.h b/src/BRSRC13/CORE/PIXELMAP/pmgen.h index 109bee6f..4b2cba20 100644 --- a/src/BRSRC13/CORE/PIXELMAP/pmgen.h +++ b/src/BRSRC13/CORE/PIXELMAP/pmgen.h @@ -1,7 +1,7 @@ #ifndef _PMGEN_H_ #define _PMGEN_H_ -#include "br_types.h" +#include "brender/br_types.h" br_error _M_br_device_pixelmap_gen_match(br_device_pixelmap* self, br_device_pixelmap** newpm, br_token_value* tv); diff --git a/src/BRSRC13/CORE/PIXELMAP/pmmem.c b/src/BRSRC13/CORE/PIXELMAP/pmmem.c index c850be5e..6c0709a8 100644 --- a/src/BRSRC13/CORE/PIXELMAP/pmmem.c +++ b/src/BRSRC13/CORE/PIXELMAP/pmmem.c @@ -1,9 +1,9 @@ #include "pmmem.h" -#include "genclip.h" -#include "harness_trace.h" -#include "pmsetup.h" -#include "resource.h" -#include "tokenval.h" +#include "CORE/FW/resource.h" +#include "CORE/FW/tokenval.h" +#include "CORE/PIXELMAP/genclip.h" +#include "CORE/PIXELMAP/pmsetup.h" +#include "harness/trace.h" #include #include #include diff --git a/src/BRSRC13/CORE/PIXELMAP/pmmem.h b/src/BRSRC13/CORE/PIXELMAP/pmmem.h index c5bcf9f7..9d5e1893 100644 --- a/src/BRSRC13/CORE/PIXELMAP/pmmem.h +++ b/src/BRSRC13/CORE/PIXELMAP/pmmem.h @@ -1,7 +1,7 @@ #ifndef _PMMEM_H_ #define _PMMEM_H_ -#include "br_types.h" +#include "brender/br_types.h" extern pm_type_info pmTypeInfo[30]; diff --git a/src/BRSRC13/CORE/PIXELMAP/pmnull.c b/src/BRSRC13/CORE/PIXELMAP/pmnull.c index 02f938dd..d559b811 100644 --- a/src/BRSRC13/CORE/PIXELMAP/pmnull.c +++ b/src/BRSRC13/CORE/PIXELMAP/pmnull.c @@ -1,5 +1,5 @@ #include "pmnull.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: br_error __cdecl _M_br_device_pixelmap_null_resize(br_device_pixelmap *self, br_int_32 width, br_int_32 height) br_error _M_br_device_pixelmap_null_resize(br_device_pixelmap* self, br_int_32 width, br_int_32 height) { diff --git a/src/BRSRC13/CORE/PIXELMAP/pmnull.h b/src/BRSRC13/CORE/PIXELMAP/pmnull.h index 6c1b0086..62587640 100644 --- a/src/BRSRC13/CORE/PIXELMAP/pmnull.h +++ b/src/BRSRC13/CORE/PIXELMAP/pmnull.h @@ -1,7 +1,7 @@ #ifndef _PMNULL_H_ #define _PMNULL_H_ -#include "br_types.h" +#include "brender/br_types.h" br_error _M_br_device_pixelmap_null_resize(br_device_pixelmap* self, br_int_32 width, br_int_32 height); diff --git a/src/BRSRC13/CORE/PIXELMAP/pmsetup.c b/src/BRSRC13/CORE/PIXELMAP/pmsetup.c index fb540df7..48fa5903 100644 --- a/src/BRSRC13/CORE/PIXELMAP/pmsetup.c +++ b/src/BRSRC13/CORE/PIXELMAP/pmsetup.c @@ -1,9 +1,9 @@ #include "pmsetup.h" +#include "CORE/FW/image.h" #include "CORE/FW/resource.h" #include "CORE/FW/resreg.h" #include "CORE/STD/brstdlib.h" -#include "harness_trace.h" -#include "image.h" +#include "harness/trace.h" #include #include diff --git a/src/BRSRC13/CORE/PIXELMAP/pmsetup.h b/src/BRSRC13/CORE/PIXELMAP/pmsetup.h index 95e41807..54d7e58b 100644 --- a/src/BRSRC13/CORE/PIXELMAP/pmsetup.h +++ b/src/BRSRC13/CORE/PIXELMAP/pmsetup.h @@ -1,7 +1,7 @@ #ifndef _PMSETUP_H_ #define _PMSETUP_H_ -#include "br_types.h" +#include "brender/br_types.h" extern br_pixelmap_state _pixelmap; diff --git a/src/BRSRC13/CORE/STD/brexcept.c b/src/BRSRC13/CORE/STD/brexcept.c index 9a1ecc98..ca8568e2 100644 --- a/src/BRSRC13/CORE/STD/brexcept.c +++ b/src/BRSRC13/CORE/STD/brexcept.c @@ -1,5 +1,5 @@ #include "brexcept.h" -#include "harness_trace.h" +#include "harness/trace.h" void* exceptionValue; br_exception_handler* _BrExceptionHandler; diff --git a/src/BRSRC13/CORE/STD/brexcept.h b/src/BRSRC13/CORE/STD/brexcept.h index 56ecc88f..fa8eb198 100644 --- a/src/BRSRC13/CORE/STD/brexcept.h +++ b/src/BRSRC13/CORE/STD/brexcept.h @@ -1,7 +1,7 @@ #ifndef _BREXCEPT_H_ #define _BREXCEPT_H_ -#include "br_types.h" +#include "brender/br_types.h" br_exception_handler* _BrExceptionBegin(); diff --git a/src/BRSRC13/CORE/STD/brmath.c b/src/BRSRC13/CORE/STD/brmath.c index 257e9243..2983c8ee 100644 --- a/src/BRSRC13/CORE/STD/brmath.c +++ b/src/BRSRC13/CORE/STD/brmath.c @@ -1,5 +1,5 @@ #include "brmath.h" -#include "harness_trace.h" +#include "harness/trace.h" #include float BrFloatFloor(float f) { diff --git a/src/BRSRC13/CORE/STD/brmath.h b/src/BRSRC13/CORE/STD/brmath.h index a6a9a96d..2552a940 100644 --- a/src/BRSRC13/CORE/STD/brmath.h +++ b/src/BRSRC13/CORE/STD/brmath.h @@ -1,7 +1,7 @@ #ifndef _BRMATH_H_ #define _BRMATH_H_ -#include "br_types.h" +#include "brender/br_types.h" float BrFloatFloor(float f); diff --git a/src/BRSRC13/CORE/STD/brstddiag.c b/src/BRSRC13/CORE/STD/brstddiag.c index 9c7ada58..f63c6a14 100644 --- a/src/BRSRC13/CORE/STD/brstddiag.c +++ b/src/BRSRC13/CORE/STD/brstddiag.c @@ -1,5 +1,5 @@ #include "brstddiag.h" -#include "harness_trace.h" +#include "harness/trace.h" br_diaghandler BrStdioDiagHandler; br_diaghandler* _BrDefaultDiagHandler = NULL; diff --git a/src/BRSRC13/CORE/STD/brstddiag.h b/src/BRSRC13/CORE/STD/brstddiag.h index bf71e5cd..04829a7c 100644 --- a/src/BRSRC13/CORE/STD/brstddiag.h +++ b/src/BRSRC13/CORE/STD/brstddiag.h @@ -1,7 +1,7 @@ #ifndef _STDDIAG_H_ #define _STDDIAG_H_ -#include "br_types.h" +#include "brender/br_types.h" extern br_diaghandler BrStdioDiagHandler; extern br_diaghandler* _BrDefaultDiagHandler; diff --git a/src/BRSRC13/CORE/STD/brstdfile.c b/src/BRSRC13/CORE/STD/brstdfile.c index 88e9f608..09727d6f 100644 --- a/src/BRSRC13/CORE/STD/brstdfile.c +++ b/src/BRSRC13/CORE/STD/brstdfile.c @@ -1,7 +1,7 @@ #include "brstdfile.h" #include "CORE/FW/diag.h" -#include "harness_trace.h" +#include "harness/trace.h" #include #include diff --git a/src/BRSRC13/CORE/STD/brstdfile.h b/src/BRSRC13/CORE/STD/brstdfile.h index 4cdf47bc..a0351a30 100644 --- a/src/BRSRC13/CORE/STD/brstdfile.h +++ b/src/BRSRC13/CORE/STD/brstdfile.h @@ -1,7 +1,7 @@ #ifndef _BRSTDFILE_H_ #define _BRSTDFILE_H_ -#include "br_types.h" +#include "brender/br_types.h" extern br_filesystem* _BrDefaultFilesystem; diff --git a/src/BRSRC13/CORE/STD/brstdlib.c b/src/BRSRC13/CORE/STD/brstdlib.c index b990acaa..23254877 100644 --- a/src/BRSRC13/CORE/STD/brstdlib.c +++ b/src/BRSRC13/CORE/STD/brstdlib.c @@ -1,5 +1,5 @@ #include "brstdlib.h" -#include "harness_trace.h" +#include "harness/trace.h" #include #include diff --git a/src/BRSRC13/CORE/STD/brstdlib.h b/src/BRSRC13/CORE/STD/brstdlib.h index 9cd7aaca..784f491f 100644 --- a/src/BRSRC13/CORE/STD/brstdlib.h +++ b/src/BRSRC13/CORE/STD/brstdlib.h @@ -5,7 +5,7 @@ #ifndef _BRSTDLIB_H_ #define _BRSTDLIB_H_ -#include "br_types.h" +#include "brender/br_types.h" #include #include diff --git a/src/BRSRC13/CORE/STD/brstdmem.c b/src/BRSRC13/CORE/STD/brstdmem.c index 8dbd95e1..8338616e 100644 --- a/src/BRSRC13/CORE/STD/brstdmem.c +++ b/src/BRSRC13/CORE/STD/brstdmem.c @@ -1,5 +1,5 @@ #include "brstdmem.h" -#include "harness_trace.h" +#include "harness/trace.h" #include diff --git a/src/BRSRC13/CORE/STD/brstdmem.h b/src/BRSRC13/CORE/STD/brstdmem.h index c037469b..62ef8f4c 100644 --- a/src/BRSRC13/CORE/STD/brstdmem.h +++ b/src/BRSRC13/CORE/STD/brstdmem.h @@ -1,7 +1,7 @@ #ifndef _BRSTDMEM_H_ #define _BRSTDMEM_H_ -#include "br_types.h" +#include "brender/br_types.h" extern br_allocator BrStdlibAllocator; extern br_allocator* _BrDefaultAllocator; diff --git a/src/BRSRC13/CORE/STD/logwrite.c b/src/BRSRC13/CORE/STD/logwrite.c index af5493aa..d935508f 100644 --- a/src/BRSRC13/CORE/STD/logwrite.c +++ b/src/BRSRC13/CORE/STD/logwrite.c @@ -1,5 +1,5 @@ #include "logwrite.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: int __cdecl BrLogWrite(void *buffer, br_size_t s, br_size_t n) int BrLogWrite(void* buffer, br_size_t s, br_size_t n) { diff --git a/src/BRSRC13/CORE/STD/logwrite.h b/src/BRSRC13/CORE/STD/logwrite.h index cf9eb5a6..be8adf30 100644 --- a/src/BRSRC13/CORE/STD/logwrite.h +++ b/src/BRSRC13/CORE/STD/logwrite.h @@ -1,7 +1,7 @@ #ifndef _LOGWRITE_H_ #define _LOGWRITE_H_ -#include "br_types.h" +#include "brender/br_types.h" int BrLogWrite(void* buffer, br_size_t s, br_size_t n); diff --git a/src/BRSRC13/CORE/V1DB/actsupt.c b/src/BRSRC13/CORE/V1DB/actsupt.c index 0fdc0167..35c0d244 100644 --- a/src/BRSRC13/CORE/V1DB/actsupt.c +++ b/src/BRSRC13/CORE/V1DB/actsupt.c @@ -8,7 +8,7 @@ #include "CORE/V1DB/dbsetup.h" #include "CORE/V1DB/enables.h" #include "actsupt.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: br_uint_32 __cdecl BrActorEnum(br_actor *parent, br_actor_enum_cbfn *callback, void *arg) br_uint_32 BrActorEnum(br_actor* parent, br_actor_enum_cbfn* callback, void* arg) { diff --git a/src/BRSRC13/CORE/V1DB/actsupt.h b/src/BRSRC13/CORE/V1DB/actsupt.h index 5bae316f..b0f9a349 100644 --- a/src/BRSRC13/CORE/V1DB/actsupt.h +++ b/src/BRSRC13/CORE/V1DB/actsupt.h @@ -1,7 +1,7 @@ #ifndef _ACTSUPT_H_ #define _ACTSUPT_H_ -#include "br_types.h" +#include "brender/br_types.h" br_uint_32 BrActorEnum(br_actor* parent, br_actor_enum_cbfn* callback, void* arg); diff --git a/src/BRSRC13/CORE/V1DB/custsupt.c b/src/BRSRC13/CORE/V1DB/custsupt.c index 0b8e2499..93968c3d 100644 --- a/src/BRSRC13/CORE/V1DB/custsupt.c +++ b/src/BRSRC13/CORE/V1DB/custsupt.c @@ -1,5 +1,5 @@ #include "custsupt.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: void __cdecl BrModelToScreenQuery(br_matrix4 *dest) void BrModelToScreenQuery(br_matrix4* dest) { diff --git a/src/BRSRC13/CORE/V1DB/custsupt.h b/src/BRSRC13/CORE/V1DB/custsupt.h index 63aae5f3..db0d0059 100644 --- a/src/BRSRC13/CORE/V1DB/custsupt.h +++ b/src/BRSRC13/CORE/V1DB/custsupt.h @@ -1,7 +1,7 @@ #ifndef _CUSTSUPT_H_ #define _CUSTSUPT_H_ -#include "br_types.h" +#include "brender/br_types.h" void BrModelToScreenQuery(br_matrix4* dest); diff --git a/src/BRSRC13/CORE/V1DB/dbsetup.c b/src/BRSRC13/CORE/V1DB/dbsetup.c index 86d20ea2..6cb7cbeb 100644 --- a/src/BRSRC13/CORE/V1DB/dbsetup.c +++ b/src/BRSRC13/CORE/V1DB/dbsetup.c @@ -9,8 +9,8 @@ #include "CORE/STD/brstdlib.h" #include "CORE/V1DB/def_mat.h" #include "CORE/V1DB/def_mdl.h" -#include "harness_hooks.h" -#include "harness_trace.h" +#include "harness/hooks.h" +#include "harness/trace.h" #include #include diff --git a/src/BRSRC13/CORE/V1DB/dbsetup.h b/src/BRSRC13/CORE/V1DB/dbsetup.h index 9e3a4f9d..d9415aa7 100644 --- a/src/BRSRC13/CORE/V1DB/dbsetup.h +++ b/src/BRSRC13/CORE/V1DB/dbsetup.h @@ -1,7 +1,7 @@ #ifndef _DBSETUP_H_ #define _DBSETUP_H_ -#include "br_types.h" +#include "brender/br_types.h" extern br_v1db_state v1db; diff --git a/src/BRSRC13/CORE/V1DB/def_mat.c b/src/BRSRC13/CORE/V1DB/def_mat.c index cc2cbd26..16d5933b 100644 --- a/src/BRSRC13/CORE/V1DB/def_mat.c +++ b/src/BRSRC13/CORE/V1DB/def_mat.c @@ -1,8 +1,8 @@ #include "def_mat.h" +#include "CORE/FW/resource.h" +#include "CORE/MATH/matrix23.h" #include "dbsetup.h" -#include "harness_trace.h" -#include "matrix23.h" -#include "resource.h" +#include "harness/trace.h" // IDA: br_material* __cdecl SetupDefaultMaterial() br_material* SetupDefaultMaterial() { diff --git a/src/BRSRC13/CORE/V1DB/def_mat.h b/src/BRSRC13/CORE/V1DB/def_mat.h index e83be9d2..4ea4cf8d 100644 --- a/src/BRSRC13/CORE/V1DB/def_mat.h +++ b/src/BRSRC13/CORE/V1DB/def_mat.h @@ -1,7 +1,7 @@ #ifndef _DEF_MAT_H_ #define _DEF_MAT_H_ -#include "br_types.h" +#include "brender/br_types.h" br_material* SetupDefaultMaterial(); diff --git a/src/BRSRC13/CORE/V1DB/def_mdl.h b/src/BRSRC13/CORE/V1DB/def_mdl.h index 5069ac93..49256bdd 100644 --- a/src/BRSRC13/CORE/V1DB/def_mdl.h +++ b/src/BRSRC13/CORE/V1DB/def_mdl.h @@ -1,7 +1,7 @@ #ifndef _DEF_MDL_H_ #define _DEF_MDL_H_ -#include "br_types.h" +#include "brender/br_types.h" extern br_model _BrDefaultModel; diff --git a/src/BRSRC13/CORE/V1DB/def_otab.h b/src/BRSRC13/CORE/V1DB/def_otab.h index 8b2829da..e1a6853a 100644 --- a/src/BRSRC13/CORE/V1DB/def_otab.h +++ b/src/BRSRC13/CORE/V1DB/def_otab.h @@ -1,6 +1,6 @@ #ifndef _DEF_OTAB_H_ #define _DEF_OTAB_H_ -#include "br_types.h" +#include "brender/br_types.h" #endif diff --git a/src/BRSRC13/CORE/V1DB/enables.c b/src/BRSRC13/CORE/V1DB/enables.c index f86a3893..10bda046 100644 --- a/src/BRSRC13/CORE/V1DB/enables.c +++ b/src/BRSRC13/CORE/V1DB/enables.c @@ -1,6 +1,6 @@ #include "enables.h" #include "dbsetup.h" -#include "harness_trace.h" +#include "harness/trace.h" #include // IDA: void __usercall actorEnable(br_v1db_enable *e@, br_actor *a@) diff --git a/src/BRSRC13/CORE/V1DB/enables.h b/src/BRSRC13/CORE/V1DB/enables.h index 6595798b..2ae0bcc1 100644 --- a/src/BRSRC13/CORE/V1DB/enables.h +++ b/src/BRSRC13/CORE/V1DB/enables.h @@ -1,7 +1,7 @@ #ifndef _ENABLES_H_ #define _ENABLES_H_ -#include "br_types.h" +#include "brender/br_types.h" void actorEnable(br_v1db_enable* e, br_actor* a); diff --git a/src/BRSRC13/CORE/V1DB/matsupt.c b/src/BRSRC13/CORE/V1DB/matsupt.c index 519e8ce9..aa4027d5 100644 --- a/src/BRSRC13/CORE/V1DB/matsupt.c +++ b/src/BRSRC13/CORE/V1DB/matsupt.c @@ -1,7 +1,7 @@ #include "matsupt.h" -#include "dbsetup.h" -#include "harness_trace.h" -#include "resource.h" +#include "CORE/FW/resource.h" +#include "CORE/V1DB/dbsetup.h" +#include "harness/trace.h" #include #include diff --git a/src/BRSRC13/CORE/V1DB/matsupt.h b/src/BRSRC13/CORE/V1DB/matsupt.h index 71932b17..0fe919e2 100644 --- a/src/BRSRC13/CORE/V1DB/matsupt.h +++ b/src/BRSRC13/CORE/V1DB/matsupt.h @@ -1,7 +1,7 @@ #ifndef _MATSUPT_H_ #define _MATSUPT_H_ -#include "br_types.h" +#include "brender/br_types.h" br_material* BrMaterialAllocate(char* name); diff --git a/src/BRSRC13/CORE/V1DB/modrend.c b/src/BRSRC13/CORE/V1DB/modrend.c index 3cb8698a..7668190a 100644 --- a/src/BRSRC13/CORE/V1DB/modrend.c +++ b/src/BRSRC13/CORE/V1DB/modrend.c @@ -1,7 +1,7 @@ #include "modrend.h" #include "dbsetup.h" -#include "harness_hooks.h" -#include "harness_trace.h" +#include "harness/hooks.h" +#include "harness/trace.h" br_colour bounds_colours[12]; fmt_vertex bounds_vertices[8]; diff --git a/src/BRSRC13/CORE/V1DB/modrend.h b/src/BRSRC13/CORE/V1DB/modrend.h index 18fbea2d..1bca9b4d 100644 --- a/src/BRSRC13/CORE/V1DB/modrend.h +++ b/src/BRSRC13/CORE/V1DB/modrend.h @@ -1,7 +1,7 @@ #ifndef _MODREND_H_ #define _MODREND_H_ -#include "br_types.h" +#include "brender/br_types.h" extern void (*RenderStyleCalls[])( br_actor* actor, diff --git a/src/BRSRC13/CORE/V1DB/modsupt.c b/src/BRSRC13/CORE/V1DB/modsupt.c index 2f1579ad..347e25a4 100644 --- a/src/BRSRC13/CORE/V1DB/modsupt.c +++ b/src/BRSRC13/CORE/V1DB/modsupt.c @@ -1,7 +1,7 @@ #include "modsupt.h" #include "CORE/FW/resource.h" #include "CORE/V1DB/dbsetup.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: void __cdecl BrModelApplyMap(br_model *model, int map_type, br_matrix34 *xform) void BrModelApplyMap(br_model* model, int map_type, br_matrix34* xform) { diff --git a/src/BRSRC13/CORE/V1DB/modsupt.h b/src/BRSRC13/CORE/V1DB/modsupt.h index 79f13ab2..e4a5d5c3 100644 --- a/src/BRSRC13/CORE/V1DB/modsupt.h +++ b/src/BRSRC13/CORE/V1DB/modsupt.h @@ -1,7 +1,7 @@ #ifndef _MODSUPT_H_ #define _MODSUPT_H_ -#include "br_types.h" +#include "brender/br_types.h" void BrModelApplyMap(br_model* model, int map_type, br_matrix34* xform); diff --git a/src/BRSRC13/CORE/V1DB/otable.c b/src/BRSRC13/CORE/V1DB/otable.c index 5ef7e0b4..51eca63e 100644 --- a/src/BRSRC13/CORE/V1DB/otable.c +++ b/src/BRSRC13/CORE/V1DB/otable.c @@ -1,5 +1,5 @@ #include "otable.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: br_order_table* __cdecl BrZsOrderTableAllocate(br_uint_16 size, br_uint_32 flags, br_uint_16 type) br_order_table* BrZsOrderTableAllocate(br_uint_16 size, br_uint_32 flags, br_uint_16 type) { diff --git a/src/BRSRC13/CORE/V1DB/otable.h b/src/BRSRC13/CORE/V1DB/otable.h index 566cd333..db8d902e 100644 --- a/src/BRSRC13/CORE/V1DB/otable.h +++ b/src/BRSRC13/CORE/V1DB/otable.h @@ -1,7 +1,7 @@ #ifndef _OTABLE_H_ #define _OTABLE_H_ -#include "br_types.h" +#include "brender/br_types.h" br_order_table* BrZsOrderTableAllocate(br_uint_16 size, br_uint_32 flags, br_uint_16 type); diff --git a/src/BRSRC13/CORE/V1DB/prepmap.c b/src/BRSRC13/CORE/V1DB/prepmap.c index e1bc2293..00532ae2 100644 --- a/src/BRSRC13/CORE/V1DB/prepmap.c +++ b/src/BRSRC13/CORE/V1DB/prepmap.c @@ -1,5 +1,5 @@ #include "prepmap.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: void __cdecl BrMapUpdate(br_pixelmap *map, br_uint_16 flags) void BrMapUpdate(br_pixelmap* map, br_uint_16 flags) { diff --git a/src/BRSRC13/CORE/V1DB/prepmap.h b/src/BRSRC13/CORE/V1DB/prepmap.h index 4d6bb99c..048455a2 100644 --- a/src/BRSRC13/CORE/V1DB/prepmap.h +++ b/src/BRSRC13/CORE/V1DB/prepmap.h @@ -1,7 +1,7 @@ #ifndef _PREPMAP_H_ #define _PREPMAP_H_ -#include "br_types.h" +#include "brender/br_types.h" void BrMapUpdate(br_pixelmap* map, br_uint_16 flags); diff --git a/src/BRSRC13/CORE/V1DB/prepmatl.c b/src/BRSRC13/CORE/V1DB/prepmatl.c index 385fbd8f..9ec82f67 100644 --- a/src/BRSRC13/CORE/V1DB/prepmatl.c +++ b/src/BRSRC13/CORE/V1DB/prepmatl.c @@ -1,5 +1,5 @@ #include "prepmatl.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: void __cdecl BrMaterialUpdate(br_material *mat, br_uint_16 flags) void BrMaterialUpdate(br_material* mat, br_uint_16 flags) { diff --git a/src/BRSRC13/CORE/V1DB/prepmatl.h b/src/BRSRC13/CORE/V1DB/prepmatl.h index a7328ed3..223369a6 100644 --- a/src/BRSRC13/CORE/V1DB/prepmatl.h +++ b/src/BRSRC13/CORE/V1DB/prepmatl.h @@ -1,7 +1,7 @@ #ifndef _PREPMATL_H_ #define _PREPMATL_H_ -#include "br_types.h" +#include "brender/br_types.h" void BrMaterialUpdate(br_material* mat, br_uint_16 flags); diff --git a/src/BRSRC13/CORE/V1DB/prepmesh.c b/src/BRSRC13/CORE/V1DB/prepmesh.c index 646793be..d2494fa4 100644 --- a/src/BRSRC13/CORE/V1DB/prepmesh.c +++ b/src/BRSRC13/CORE/V1DB/prepmesh.c @@ -3,12 +3,12 @@ #include "CORE/FW/diag.h" #include "CORE/FW/resource.h" #include "CORE/FW/scratch.h" +#include "CORE/MATH/angles.h" #include "CORE/MATH/plane.h" #include "CORE/MATH/vector.h" #include "CORE/STD/brmath.h" #include "CORE/STD/brstdlib.h" -#include "angles.h" -#include "harness_trace.h" +#include "harness/trace.h" #include br_model* compareModel; diff --git a/src/BRSRC13/CORE/V1DB/prepmesh.h b/src/BRSRC13/CORE/V1DB/prepmesh.h index 3650b2fa..dc65d1df 100644 --- a/src/BRSRC13/CORE/V1DB/prepmesh.h +++ b/src/BRSRC13/CORE/V1DB/prepmesh.h @@ -1,7 +1,7 @@ #ifndef _PREPMESH_H_ #define _PREPMESH_H_ -#include "br_types.h" +#include "brender/br_types.h" int addEdge(br_uint_16 first, br_uint_16 last); diff --git a/src/BRSRC13/CORE/V1DB/preptab.c b/src/BRSRC13/CORE/V1DB/preptab.c index ae04845e..18f213ad 100644 --- a/src/BRSRC13/CORE/V1DB/preptab.c +++ b/src/BRSRC13/CORE/V1DB/preptab.c @@ -1,6 +1,6 @@ #include "preptab.h" -#include "harness_trace.h" +#include "harness/trace.h" #include "prepmap.h" // IDA: void __cdecl BrTableUpdate(br_pixelmap *table, br_uint_16 flags) diff --git a/src/BRSRC13/CORE/V1DB/preptab.h b/src/BRSRC13/CORE/V1DB/preptab.h index 4bf89e94..835a0eaf 100644 --- a/src/BRSRC13/CORE/V1DB/preptab.h +++ b/src/BRSRC13/CORE/V1DB/preptab.h @@ -1,7 +1,7 @@ #ifndef _PREPTAB_H_ #define _PREPTAB_H_ -#include "br_types.h" +#include "brender/br_types.h" void BrTableUpdate(br_pixelmap* table, br_uint_16 flags); diff --git a/src/BRSRC13/CORE/V1DB/regsupt.c b/src/BRSRC13/CORE/V1DB/regsupt.c index 09127c05..618f0e0a 100644 --- a/src/BRSRC13/CORE/V1DB/regsupt.c +++ b/src/BRSRC13/CORE/V1DB/regsupt.c @@ -6,7 +6,7 @@ #include "CORE/V1DB/prepmesh.h" #include "CORE/V1DB/preptab.h" -#include "harness_trace.h" +#include "harness/trace.h" // IDA: br_model* __cdecl BrModelAdd(br_model *model) br_model* BrModelAdd(br_model* model) { diff --git a/src/BRSRC13/CORE/V1DB/regsupt.h b/src/BRSRC13/CORE/V1DB/regsupt.h index 2ae89578..a1088f2f 100644 --- a/src/BRSRC13/CORE/V1DB/regsupt.h +++ b/src/BRSRC13/CORE/V1DB/regsupt.h @@ -1,7 +1,7 @@ #ifndef _REGSUPT_H_ #define _REGSUPT_H_ -#include "br_types.h" +#include "brender/br_types.h" br_model* BrModelAdd(br_model* model); diff --git a/src/BRSRC13/CORE/V1DB/render.c b/src/BRSRC13/CORE/V1DB/render.c index 0f8850aa..8f0c5170 100644 --- a/src/BRSRC13/CORE/V1DB/render.c +++ b/src/BRSRC13/CORE/V1DB/render.c @@ -1,10 +1,10 @@ #include "render.h" -#include "dbsetup.h" -#include "harness_hooks.h" -#include "harness_trace.h" -#include "matrix34.h" -#include "modrend.h" -#include "transfrm.h" +#include "CORE/MATH/matrix34.h" +#include "CORE/MATH/transfrm.h" +#include "CORE/V1DB/dbsetup.h" +#include "CORE/V1DB/modrend.h" +#include "harness/hooks.h" +#include "harness/trace.h" #include #define RendererModelMul(self, a1) self->dispatch->_modelMulF(self, a1); diff --git a/src/BRSRC13/CORE/V1DB/render.h b/src/BRSRC13/CORE/V1DB/render.h index c38051a8..2d113f6d 100644 --- a/src/BRSRC13/CORE/V1DB/render.h +++ b/src/BRSRC13/CORE/V1DB/render.h @@ -1,7 +1,7 @@ #ifndef _RENDER_H_ #define _RENDER_H_ -#include "br_types.h" +#include "brender/br_types.h" void BrDbModelRender(br_actor* actor, br_model* model, br_material* material, void* render_data, br_uint_8 style, int on_screen, int use_custom); diff --git a/src/BRSRC13/CORE/V1DB/v1dbfile.c b/src/BRSRC13/CORE/V1DB/v1dbfile.c index 48bd6b0c..b36863ca 100644 --- a/src/BRSRC13/CORE/V1DB/v1dbfile.c +++ b/src/BRSRC13/CORE/V1DB/v1dbfile.c @@ -10,7 +10,7 @@ #include "CORE/V1DB/matsupt.h" #include "CORE/V1DB/modsupt.h" #include "CORE/V1DB/regsupt.h" -#include "harness_trace.h" +#include "harness/trace.h" #include #include #include diff --git a/src/BRSRC13/CORE/V1DB/v1dbfile.h b/src/BRSRC13/CORE/V1DB/v1dbfile.h index 7a416645..284e633d 100644 --- a/src/BRSRC13/CORE/V1DB/v1dbfile.h +++ b/src/BRSRC13/CORE/V1DB/v1dbfile.h @@ -1,7 +1,7 @@ #ifndef _V1DBFILE_H_ #define _V1DBFILE_H_ -#include "br_types.h" +#include "brender/br_types.h" int FopWrite_VERTICES(br_datafile* df, br_vertex* vertices, int nvertices); diff --git a/src/BRSRC13/br_defs.h b/src/BRSRC13/include/brender/br_defs.h similarity index 88% rename from src/BRSRC13/br_defs.h rename to src/BRSRC13/include/brender/br_defs.h index c8ab941f..bcda3c7b 100644 --- a/src/BRSRC13/br_defs.h +++ b/src/BRSRC13/include/brender/br_defs.h @@ -1,8 +1,13 @@ #ifndef BR_DEFS_H #define BR_DEFS_H +// Inspired by BRender SDK includes (https://rr2000.cwaboard.co.uk/R4/BRENDER/BRENDER.zip) + #define PI 3.14159265358979323846 +#define BR_MAC3(a, b, c, d, e, f) ((a) * (b) + (c) * (d) + (e) * (f)) +#define BR_SQR3(a, b, c) ((a) * (a) + (b) * (b) + (c) * (c)) + #define BrAngleToRadian(a) ((br_scalar)((a) * (PI / 32768.0))) // a * 0.00009587379924285257 #define BrRadianToAngle(r) ((br_angle)(long)((r) * (32768.0 / PI))) // r * 10430.378350470453 diff --git a/src/BRSRC13/include/brender/br_inline_funcs.h b/src/BRSRC13/include/brender/br_inline_funcs.h new file mode 100644 index 00000000..030e3c4b --- /dev/null +++ b/src/BRSRC13/include/brender/br_inline_funcs.h @@ -0,0 +1,91 @@ +#ifndef BR_INLINE_FUNCS_H +#define BR_INLINE_FUNCS_H + +#include "br_defs.h" + +#define BrVector3Length(v1) BR_LENGTH3((v1)->v[0], (v1)->v[1], (v1)->v[2]) +#define BrVector3LengthSquared(v1) BR_SQR3((v1)->v[0], (v1)->v[1], (v1)->v[2]) +#define BrVector3Dot(v1, v2) BR_MAC3((v1)->v[0], (v2)->v[0], (v1)->v[1], (v2)->v[1], (v1)->v[2], (v2)->v[2]) + +#define BrVector3Negate(v1, v2) \ + do { \ + (v1)->v[0] = -(v2)->v[0]; \ + (v1)->v[1] = -(v2)->v[1]; \ + (v1)->v[2] = -(v2)->v[2]; \ + } while (0) + +#define BrVector3Set(v1, s1, s2, s3) \ + do { \ + (v1)->v[0] = (s1); \ + (v1)->v[1] = (s2); \ + (v1)->v[2] = (s3); \ + } while (0) + +// v2[1] * v3[2] +#define BrVector3Cross(v1, v2, v3) \ + do { \ + (v1)->v[0] = (v2)->v[1] * (v3)->v[2] - (v2)->v[2] * (v3)->v[1]; \ + (v1)->v[1] = (v2)->v[2] * (v3)->v[0] - (v2)->v[0] * (v3)->v[2]; \ + (v1)->v[2] = (v2)->v[0] * (v3)->v[1] - (v2)->v[1] * (v3)->v[0]; \ + } while (0) + +#define BrVector3Add(v1, v2, v3) \ + do { \ + (v1)->v[0] = (v2)->v[0] + (v3)->v[0]; \ + (v1)->v[1] = (v2)->v[1] + (v3)->v[1]; \ + (v1)->v[2] = (v2)->v[2] + (v3)->v[2]; \ + } while (0) + +#define BrVector3Sub(v1, v2, v3) \ + do { \ + (v1)->v[0] = (v2)->v[0] - (v3)->v[0]; \ + (v1)->v[1] = (v2)->v[1] - (v3)->v[1]; \ + (v1)->v[2] = (v2)->v[2] - (v3)->v[2]; \ + } while (0) + +#define BrVector3Accumulate(v1, v2) \ + do { \ + (v1)->v[0] += (v2)->v[0]; \ + (v1)->v[1] += (v2)->v[1]; \ + (v1)->v[2] += (v2)->v[2]; \ + } while (0) + +#define BrVector3Scale(v1, v2, s) \ + do { \ + (v1)->v[0] = (v2)->v[0] * s; \ + (v1)->v[1] = (v2)->v[1] * s; \ + (v1)->v[2] = (v2)->v[2] * s; \ + } while (0) + +#define BrVector3InvScale(v1, v2, s) \ + do { \ + br_scalar __scale = 1.0f / (s); \ + (v1)->v[0] = (v2)->v[0] * __scale; \ + (v1)->v[1] = (v2)->v[1] * __scale; \ + (v1)->v[2] = (v2)->v[2] * __scale; \ + } while (0) + +#define BrVector3Normalise(v1, v2) \ + do { \ + br_scalar _scale; \ + _scale = BR_LENGTH3((v2)->v[0], (v2)->v[1], (v2)->v[2]); \ + if (_scale > BR_SCALAR_EPSILON * 2) { \ + _scale = 1.0 / _scale; \ + (v1)->v[0] = (v2)->v[0] * _scale; \ + (v1)->v[1] = (v2)->v[1] * _scale; \ + (v1)->v[2] = (v2)->v[2] * _scale; \ + } else { \ + (v1)->v[0] = 1.0; \ + (v1)->v[1] = 0.0; \ + (v1)->v[2] = 0.0; \ + } \ + } while (0) + +#define BrVector3NormaliseQuick(v1, v2) \ + do { \ + br_scalar _scale; \ + _scale = 1.0 / (BR_LENGTH3((v2)->v[0], (v2)->v[1], (v2)->v[2])); \ + BrVector3Scale(v1, v2, _scale); \ + } while (0) + +#endif \ No newline at end of file diff --git a/src/BRSRC13/br_types.h b/src/BRSRC13/include/brender/br_types.h similarity index 100% rename from src/BRSRC13/br_types.h rename to src/BRSRC13/include/brender/br_types.h diff --git a/src/BRSRC13/brender.h b/src/BRSRC13/include/brender/brender.h similarity index 95% rename from src/BRSRC13/brender.h rename to src/BRSRC13/include/brender/brender.h index ef69cc47..5533416a 100644 --- a/src/BRSRC13/brender.h +++ b/src/BRSRC13/include/brender/brender.h @@ -2,6 +2,7 @@ #ifndef BRENDER_H #define BRENDER_H +#include "br_inline_funcs.h" #include "br_types.h" extern struct br_font* BrFontFixed3x5; @@ -136,11 +137,11 @@ void BrTransformToMatrix34(br_matrix34* mat, br_transform* xform); void BrV1dbBeginWrapper_Float(); // BrVector3 -void BrVector3Cross(br_vector3* v1, br_vector3* v2, br_vector3* v3); +//void BrVector3Cross(br_vector3* v1, br_vector3* v2, br_vector3* v3); void BrVector3SetFloat(br_vector3* v1, float f1, float f2, float f3); -void BrVector3Sub(br_vector3* v1, br_vector3* v2, br_vector3* v3); -void BrVector3Accumulate(br_vector3* v1, br_vector3* v2); -void BrVector3Normalise(br_vector3* v1, br_vector3* v2); +//void BrVector3Sub(br_vector3* v1, br_vector3* v2, br_vector3* v3); +//void BrVector3Accumulate(br_vector3* v1, br_vector3* v2); +//void BrVector3Normalise(br_vector3* v1, br_vector3* v2); // Logging void BrFailure(const char* s, ...); diff --git a/src/DETHRACE/CMakeLists.txt b/src/DETHRACE/CMakeLists.txt index f690ab19..7d9daceb 100644 --- a/src/DETHRACE/CMakeLists.txt +++ b/src/DETHRACE/CMakeLists.txt @@ -1,14 +1,11 @@ # Create object files so we can link them into the main binary and into tests without building twice. add_library(dethrace_obj OBJECT) -target_include_directories(dethrace_obj PUBLIC - . - common - pd - ${CMAKE_SOURCE_DIR}/lib - ${CMAKE_SOURCE_DIR}/src/harness - ${CMAKE_SOURCE_DIR}/src/BRSRC13 - ${CMAKE_SOURCE_DIR}/src/S3/include +target_include_directories(dethrace_obj + PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR} + common + pd ) target_link_libraries(dethrace_obj PUBLIC miniposix SDL2::SDL2 smacker harness brender s3 cglm) diff --git a/src/DETHRACE/common/brucetrk.c b/src/DETHRACE/common/brucetrk.c index 20ec2b80..95369b9b 100644 --- a/src/DETHRACE/common/brucetrk.c +++ b/src/DETHRACE/common/brucetrk.c @@ -1,11 +1,14 @@ #include "brucetrk.h" -#include "brender.h" +#include "brender/brender.h" #include "globvars.h" #include "globvrbm.h" +#include "harness/trace.h" #include "init.h" #include "world.h" +#include #include +#include br_actor* gMr_blendy; int gDefault_blend_pc; diff --git a/src/DETHRACE/common/brucetrk.h b/src/DETHRACE/common/brucetrk.h index 32ef93d9..46603246 100644 --- a/src/DETHRACE/common/brucetrk.h +++ b/src/DETHRACE/common/brucetrk.h @@ -1,7 +1,7 @@ #ifndef _BRUCETRK_H_ #define _BRUCETRK_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern br_actor* gMr_blendy; diff --git a/src/DETHRACE/common/car.c b/src/DETHRACE/common/car.c index 1c5dd122..dfd4a18d 100644 --- a/src/DETHRACE/common/car.c +++ b/src/DETHRACE/common/car.c @@ -1,5 +1,5 @@ #include "car.h" -#include "brender.h" +#include "brender/brender.h" #include "car.h" #include "constants.h" #include "controls.h" @@ -10,6 +10,7 @@ #include "globvrkm.h" #include "globvrpb.h" #include "graphics.h" +#include "harness/trace.h" #include "netgame.h" #include "oil.h" #include "opponent.h" @@ -464,43 +465,6 @@ void SetInitialPosition(tRace_info* pThe_race, int pCar_index, int pGrid_index) place_on_grid = 1; if (gNet_mode && !gCurrent_net_game->options.grid_start && pThe_race->number_of_net_start_points) { TELL_ME_IF_WE_PASS_THIS_WAY(); - // start_i = IRandomBetween(0, pThe_race->number_of_net_start_points - 1); - // i = start_i; - // while (1) { - // PossibleService(); - // for (j = 0; gNumber_of_net_players > j; ++j) { - // if (j != pCar_index) { - // v19 = pThe_race->opponent_list[j].car_spec->car_master_actor->t.t.translate.t.v[0]; - // v20 = pThe_race->opponent_list[j].car_spec->car_master_actor->t.t.translate.t.v[1]; - // v21 = pThe_race->opponent_list[j].car_spec->car_master_actor->t.t.translate.t.v[2]; - // if (v19 > 500.0) { - // v19 = v19 - 1000.0f; - // v20 = v20 - 1000.0f; - // v21 = v21 - 1000.0f; - // } - // dist.v[0] = v19 - pThe_race->net_starts[start_i].pos.v[0]; - // dist.v[1] = v20 - pThe_race->net_starts[start_i].pos.v[1]; - // dist.v[2] = v21 - pThe_race->net_starts[start_i].pos.v[2]; - // if (dist.v[1] * dist.v[1] + dist.v[2] * dist.v[2] + dist.v[0] * dist.v[0] < 16.0) { - // break; - // } - // } - // } - // if (gNumber_of_net_players == j) { - // break; - // } - // if (pThe_race->number_of_net_start_points == ++start_i) { - // start_i = 0; - // } - // if (i == start_i) { - // goto LABEL_17; - // } - // } - // car_actor->t.t.translate.t.v[0] = pThe_race->net_starts[start_i].pos.v[0]; - // car_actor->t.t.translate.t.v[1] = pThe_race->net_starts[start_i].pos.v[1]; - // car_actor->t.t.translate.t.v[2] = pThe_race->net_starts[start_i].pos.v[2]; - // initial_yaw[0] = (__int64)(pThe_race->net_starts[start_i].yaw * 182.0444444444445); - // place_on_grid = 0; } if (place_on_grid) { initial_yaw = (pThe_race->initial_yaw * 182.0444444444445); @@ -510,10 +474,7 @@ void SetInitialPosition(tRace_info* pThe_race, int pCar_index, int pGrid_index) grid_offset.v[2] = (double)(pGrid_index / 2) * 2.0 + (double)(pGrid_index % 2) * 0.40000001; LOG_DEBUG("grid offset: %f, %f, %f", grid_offset.v[0], grid_offset.v[1], grid_offset.v[2]); BrMatrix34ApplyV(&car_actor->t.t.translate.t, &grid_offset, &initial_yaw_matrix); - car_actor->t.t.translate.t.v[0] += pThe_race->initial_position.v[0]; - car_actor->t.t.translate.t.v[1] += pThe_race->initial_position.v[1]; - car_actor->t.t.translate.t.v[2] += pThe_race->initial_position.v[2]; - LOG_DEBUG("yaw: %f, pos: %f, %f, %f", pThe_race->initial_yaw, pThe_race->initial_position.v[0], pThe_race->initial_position.v[1], pThe_race->initial_position.v[2]); + BrVector3Accumulate(&car_actor->t.t.translate.t, &pThe_race->initial_position); } LOG_DEBUG("grid pos: %d, pos: x=%f, z=%f", pGrid_index, car_actor->t.t.translate.t.v[0], car_actor->t.t.translate.t.v[2]); FindBestY( @@ -528,15 +489,11 @@ void SetInitialPosition(tRace_info* pThe_race, int pCar_index, int pGrid_index) &below_face_index); if (nearest_y_above == 30000.0) { if (nearest_y_below == -30000.0) { - LOG_DEBUG("found pos 1: %f", 0); car_actor->t.t.translate.t.v[1] = 0.0; } else { - LOG_DEBUG("found pos 2: %f", nearest_y_below); car_actor->t.t.translate.t.v[1] = nearest_y_below; } } else { - // 20.345 - LOG_DEBUG("found pos 3: %f, x: %f, z: %f", nearest_y_above, car_actor->t.t.translate.t.v[0], car_actor->t.t.translate.t.v[2]); car_actor->t.t.translate.t.v[1] = nearest_y_above; } BrMatrix34PreRotateY(&car_actor->t.t.mat, initial_yaw); @@ -649,20 +606,16 @@ void GetFacesInBox(tCollision_info* c) { FreezeCamera(); } if (gPling_face && fabs(gPling_face->normal.v[1]) > 0.89999998) { - c->water_normal.v[0] = gPling_face->normal.v[0]; - c->water_normal.v[1] = gPling_face->normal.v[1]; - c->water_normal.v[2] = gPling_face->normal.v[2]; + c->water_normal = gPling_face->normal; if (c->water_normal.v[1] < 0.0) { - c->water_normal.v[0] = -c->water_normal.v[0]; - c->water_normal.v[1] = -c->water_normal.v[1]; - c->water_normal.v[2] = -c->water_normal.v[2]; + BrVector3Negate(&c->water_normal, &c->water_normal); } c->water_d = gPling_face->v[0].v[1] * c->water_normal.v[1] + gPling_face->v[0].v[2] * c->water_normal.v[2] + gPling_face->v[0].v[0] * c->water_normal.v[0]; if (c->driver == eDriver_local_human) { if (gPling_face->material->identifier[1] == '!') { - if (c->bounds_world_space.min.v[1] * c->water_normal.v[1] + c->bounds_world_space.min.v[2] * c->water_normal.v[2] + c->water_normal.v[0] * c->bounds_world_space.min.v[0] - c->water_d < 0.0) { + if (BrVector3Dot(&c->bounds_world_space.min, &c->water_normal) - c->water_d < 0.0) { GetNewBoundingBox(¤t_bounds, &c->bounds[1], &c->car_master_actor->t.t.mat); - if ((c->water_normal.v[1] * current_bounds.min.v[1] + c->water_normal.v[2] * current_bounds.min.v[2] + c->water_normal.v[0] * current_bounds.min.v[0]) / 6.9 - c->water_d < 0.0) { + if (BrVector3Dot(¤t_bounds.min, &c->water_normal) / 6.9 - c->water_d < 0.0) { gInTheSea = 1; FreezeCamera(); } @@ -936,9 +889,7 @@ void FinishCars(tU32 pLast_frame_time, tU32 pTime) { BrVector3SetFloat(&car->omega, 0.0, 0.0, 0.0); BrVector3SetFloat(&car->v, 0.0, 0.0, 0.0); } - car->velocity_car_space.v[0] = car->velocity_car_space.v[0] / 6900.0; - car->velocity_car_space.v[1] = car->velocity_car_space.v[1] / 6900.0; - car->velocity_car_space.v[2] = car->velocity_car_space.v[2] / 6900.0; + BrVector3InvScale(&car->velocity_car_space, &car->velocity_car_space, 6900.0); car->car_master_actor->t.t.mat.m[3][0] = car->car_master_actor->t.t.mat.m[3][0] / 6.9000001; car->car_master_actor->t.t.mat.m[3][1] = car->car_master_actor->t.t.mat.m[3][1] / 6.9000001; car->car_master_actor->t.t.mat.m[3][2] = car->car_master_actor->t.t.mat.m[3][2] / 6.9000001; @@ -955,41 +906,12 @@ void FinishCars(tU32 pLast_frame_time, tU32 pTime) { } BrMatrix34ApplyV(&car->direction, &minus_k, &car->car_master_actor->t.t.mat); } else if (gLast_mechanics_time > pLast_frame_time && gCar_to_view == car) { - car->old_v.v[0] = car->old_v.v[0] - car->v.v[0]; - car->old_v.v[1] = car->old_v.v[1] - car->v.v[1]; - car->old_v.v[2] = car->old_v.v[2] - car->v.v[2]; - car->old_v.v[0] = (gLast_mechanics_time - pLast_frame_time) / (float)PHYSICS_STEP_TIME * car->old_v.v[0]; - car->old_v.v[1] = (gLast_mechanics_time - pLast_frame_time) / (float)PHYSICS_STEP_TIME * car->old_v.v[1]; - car->old_v.v[2] = (gLast_mechanics_time - pLast_frame_time) / (float)PHYSICS_STEP_TIME * car->old_v.v[2]; - car->old_v.v[0] = car->old_v.v[0] + car->v.v[0]; - car->old_v.v[1] = car->old_v.v[1] + car->v.v[1]; - car->old_v.v[2] = car->old_v.v[2] + car->v.v[2]; - scale = sqrt( - car->old_v.v[1] * car->old_v.v[1] - + car->old_v.v[2] * car->old_v.v[2] - + car->old_v.v[0] * car->old_v.v[0]); - if (scale <= 2.3841858e-7) { - car->direction.v[0] = 1.0; - car->direction.v[1] = 0.0; - car->direction.v[2] = 0.0; - } else { - scale = 1.0 / scale; - car->direction.v[0] = car->old_v.v[0] * scale; - car->direction.v[1] = car->old_v.v[1] * scale; - car->direction.v[2] = car->old_v.v[2] * scale; - } + BrVector3Sub(&car->old_v, &car->old_v, &car->v); + BrVector3Scale(&car->old_v, &car->old_v, (gLast_mechanics_time - pLast_frame_time) / (float)PHYSICS_STEP_TIME); + BrVector3Accumulate(&car->old_v, &car->v); + BrVector3Normalise(&car->direction, &car->old_v); } else { - scale = sqrt(car->v.v[2] * car->v.v[2] + car->v.v[1] * car->v.v[1] + car->v.v[0] * car->v.v[0]); - if (scale <= 2.3841858e-7) { - car->direction.v[0] = 1.0; - car->direction.v[1] = 0.0; - car->direction.v[2] = 0.0; - } else { - scale = 1.0 / scale; - car->direction.v[0] = car->v.v[0] * scale; - car->direction.v[1] = car->v.v[1] * scale; - car->direction.v[2] = car->v.v[2] * scale; - } + BrVector3Normalise(&car->direction, &car->v); } if (car->driver > eDriver_non_car) { car->speedo_speed = (car->v.v[2] * minus_k.v[2] + car->v.v[1] * minus_k.v[1] + car->v.v[0] * minus_k.v[0]) / 6900.0; @@ -1027,9 +949,7 @@ void InterpolateCars(tU32 pLast_frame_time, tU32 pTime) { SimpleRotate((tCollision_info*)car, -dt); TranslateCar((tCollision_info*)car, -dt); BrMatrix34ApplyP(&car->pos, &car->cmpos, &car->car_master_actor->t.t.mat); - car->pos.v[0] = car->pos.v[0] / 6.9000001; - car->pos.v[1] = car->pos.v[1] / 6.9000001; - car->pos.v[2] = car->pos.v[2] / 6.9000001; + BrVector3InvScale(&car->pos, &car->pos, WORLD_SCALE); } } @@ -1358,24 +1278,12 @@ void ControlCar4(tCar_spec* c, br_scalar dt) { } if (c->velocity_car_space.v[2] <= 0.0) { if ((c->curvature < 0.0 || c->omega.v[1] < -0.001) && c->turn_speed == 0.0) { - c->turn_speed = 0.050000001 - / (sqrt(c->v.v[1] * c->v.v[1] + c->v.v[2] * c->v.v[2] + c->v.v[0] * c->v.v[0]) + 5.0) - * (dt - * 25.0) - * 4.0 - / 2.0 - * 0.5; + c->turn_speed = 0.050000001 / (BrVector3Length(&c->v) + 5.0) * (dt * 25.0) * 4.0 / 2.0 * 0.5; if (c->omega.v[1] < -0.01) { c->turn_speed = c->turn_speed - dt * 0.01 / 0.04 / 2.0 * c->omega.v[1] * 2.0; } } else { - c->turn_speed = 0.050000001 - / (sqrt(c->v.v[1] * c->v.v[1] + c->v.v[2] * c->v.v[2] + c->v.v[0] * c->v.v[0]) + 5.0) - * (dt - * 25.0) - / 2.0 - * 0.5 - + c->turn_speed; + c->turn_speed = 0.050000001 / (BrVector3Length(&c->v) + 5.0) * (dt * 25.0) / 2.0 * 0.5 + c->turn_speed; } } else { c->turn_speed = dt * 0.01 / 0.04 / 2.0 * 2.0 + c->turn_speed; @@ -1388,23 +1296,14 @@ void ControlCar4(tCar_spec* c, br_scalar dt) { if (c->velocity_car_space.v[2] <= 0.0) { if ((c->curvature > 0.0 || c->omega.v[1] > 0.001) && c->turn_speed == 0.0) { c->turn_speed = 0.050000001 - / (sqrt(c->v.v[1] * c->v.v[1] + c->v.v[2] * c->v.v[2] + c->v.v[0] * c->v.v[0]) + 5.0) - * (dt - * 25.0) - * -4.0 - / 2.0 - * 0.5; + / (BrVector3Length(&c->v) + 5.0) * (dt * 25.0) * -4.0 / 2.0 * 0.5; if (c->omega.v[1] < -0.01) { c->turn_speed = c->turn_speed - dt * 0.01 / 0.04 / 2.0 * c->omega.v[1] * 2.0; } } else { c->turn_speed = c->turn_speed - 0.050000001 - / (sqrt(c->v.v[1] * c->v.v[1] + c->v.v[2] * c->v.v[2] + c->v.v[0] * c->v.v[0]) + 5.0) - * (dt - * 25.0) - / 2.0 - * 0.5; + / (BrVector3Length(&c->v) + 5.0) * (dt * 25.0) / 2.0 * 0.5; } } else { c->turn_speed = c->turn_speed - dt * 0.01 / 0.04 / 2.0 * 2.0; @@ -1477,12 +1376,11 @@ void RotateCarSecondOrder(tCollision_info* c, br_scalar dt) { rad = sqrt(c->omega.v[1] * c->omega.v[1] + c->omega.v[2] * c->omega.v[2] + c->omega.v[0] * c->omega.v[0]); rad_rate = rad * dt; - omega.v[0] = c->omega.v[0] / rad; - omega.v[1] = c->omega.v[1] / rad; - omega.v[2] = c->omega.v[2] / rad; + BrVector3InvScale(&omega, &c->omega, rad); L.v[0] = c->I.v[0] * c->omega.v[0]; L.v[1] = c->I.v[1] * c->omega.v[1]; L.v[2] = c->I.v[2] * c->omega.v[2]; + BrMatrix34Rotate(&m, BrRadianToAngle(rad_rate) >> 1, &omega); BrMatrix34TApplyV(&L2, &L, &m); axis.v[0] = L2.v[0] / c->I.v[0]; @@ -1490,13 +1388,9 @@ void RotateCarSecondOrder(tCollision_info* c, br_scalar dt) { axis.v[2] = L2.v[2] / c->I.v[2]; rad = sqrt(axis.v[1] * axis.v[1] + axis.v[2] * axis.v[2] + axis.v[0] * axis.v[0]); rad_rate = rad * dt; - omega.v[0] = axis.v[0] / rad; - omega.v[1] = axis.v[1] / rad; - omega.v[2] = axis.v[2] / rad; + BrVector3InvScale(&omega, &axis, rad); BrMatrix34Rotate(&m, BrRadianToAngle(rad_rate), &omega); - omega.v[2] = -c->cmpos.v[2]; - omega.v[1] = -c->cmpos.v[1]; - omega.v[0] = -c->cmpos.v[0]; + BrVector3Negate(&omega, &c->cmpos); BrMatrix34PreTranslate(&m, omega.v[0], omega.v[1], omega.v[2]); BrMatrix34PostTranslate(&m, c->cmpos.v[0], c->cmpos.v[1], c->cmpos.v[2]); BrMatrix34Pre(&c->car_master_actor->t.t.mat, &m); @@ -1522,9 +1416,7 @@ void RotateCarFirstOrder(tCollision_info* c, br_scalar dt) { rad = sqrt(c->omega.v[1] * c->omega.v[1] + c->omega.v[2] * c->omega.v[2] + c->omega.v[0] * c->omega.v[0]); rad_rate = rad * dt; if (rad_rate >= max_rad) { - axis.v[0] = c->omega.v[0] / rad; - axis.v[1] = c->omega.v[1] / rad; - axis.v[2] = c->omega.v[2] / rad; + BrVector3InvScale(&axis, &c->omega, rad); L.v[0] = c->I.v[0] * c->omega.v[0]; L.v[1] = c->I.v[1] * c->omega.v[1]; L.v[2] = c->I.v[2] * c->omega.v[2]; @@ -1546,10 +1438,8 @@ void SimpleRotate(tCollision_info* c, br_scalar dt) { br_scalar rad; LOG_TRACE("(%p, %f)", c, dt); - rad = sqrt(c->omega.v[1] * c->omega.v[1] + c->omega.v[2] * c->omega.v[2] + c->omega.v[0] * c->omega.v[0]); - axis.v[0] = c->omega.v[0] / rad; - axis.v[1] = c->omega.v[1] / rad; - axis.v[2] = c->omega.v[2] / rad; + rad = BrVector3Length(&c->omega); + BrVector3InvScale(&axis, &c->omega, rad); rad_rate = rad * dt; if (rad_rate >= 0.0001) { BrMatrix34PreRotate(&c->car_master_actor->t.t.mat, BrRadianToAngle(rad_rate), &axis); @@ -1563,7 +1453,7 @@ void RotateCar(tCollision_info* c, br_scalar dt) { int i; LOG_TRACE("(%p, %f)", c, dt); - rad_squared = (c->omega.v[1] * c->omega.v[1] + c->omega.v[2] * c->omega.v[2] + c->omega.v[0] * c->omega.v[0]) * dt; + rad_squared = BrVector3LengthSquared(&c->omega) * dt; c->oldomega = c->omega; if (rad_squared >= 0.0000001) { if (rad_squared <= 0.0080000004) { @@ -1637,17 +1527,11 @@ void AddDrag(tCar_spec* c, br_scalar dt) { } drag_multiplier = c->water_depth_factor * drag_multiplier; } - ts = sqrt(c->v.v[1] * c->v.v[1] + c->v.v[2] * c->v.v[2] + c->v.v[0] * c->v.v[0]) * drag_multiplier / c->M; - b.v[0] = c->v.v[0] * ts; - b.v[1] = c->v.v[1] * ts; - b.v[2] = c->v.v[2] * ts; - c->v.v[0] = c->v.v[0] + b.v[0]; - c->v.v[1] = c->v.v[1] + b.v[1]; - c->v.v[2] = c->v.v[2] + b.v[2]; - ts = sqrt(c->omega.v[1] * c->omega.v[1] + c->omega.v[2] * c->omega.v[2] + c->omega.v[0] * c->omega.v[0]) * drag_multiplier; - b.v[0] = c->omega.v[0] * ts; - b.v[1] = c->omega.v[1] * ts; - b.v[2] = c->omega.v[2] * ts; + ts = BrVector3Length(&c->v) * drag_multiplier / c->M; + BrVector3Scale(&b, &c->v, ts); + BrVector3Accumulate(&c->v, &b); + ts = BrVector3Length(&c->omega) * drag_multiplier; + BrVector3Scale(&b, &c->omega, ts); ApplyTorque(c, &b); } @@ -1753,17 +1637,10 @@ void CalcForce(tCar_spec* c, br_scalar dt) { float v135; // [esp+1DCh] [ebp-10h] br_vector3 v136; // [esp+1E0h] [ebp-Ch] - v136.v[0] = 0; - v136.v[1] = 0; - v136.v[2] = 0; - + BrVector3Set(&v136, 0, 0, 0); normnum = 0; - f.v[0] = 0.0; - f.v[1] = 0.0; - f.v[2] = 0.0; - B.v[0] = 0.0; - B.v[1] = 0.0; - B.v[2] = 0.0; + BrVector3Set(&f, 0, 0, 0); + BrVector3Set(&B, 0, 0, 0); mat = &c->car_master_actor->t.t.mat; mat_list = gCurrent_race.material_modifiers; vol = c->last_special_volume; @@ -1775,9 +1652,7 @@ void CalcForce(tCar_spec* c, br_scalar dt) { c->material_index[2] = 0; c->material_index[3] = 0; wheelratio = (c->wpos[2].v[2] - c->cmpos.v[2]) / (c->wpos[0].v[2] - c->cmpos.v[2]); - c->road_normal.v[0] = 0.0; - c->road_normal.v[1] = 0.0; - c->road_normal.v[2] = 0.0; + BrVector3Set(&c->road_normal, 0, 0, 0); for (i = 0; i < 4; ++i) { BrMatrix34ApplyP(&wheel_pos[i], &c->wpos[i], mat); } @@ -1797,9 +1672,7 @@ void CalcForce(tCar_spec* c, br_scalar dt) { force[i] = 0.0; d[i] = c->susp_height[i / 2]; } else { - c->road_normal.v[0] = norm[i].v[0] + c->road_normal.v[0]; - c->road_normal.v[1] = norm[i].v[1] + c->road_normal.v[1]; - c->road_normal.v[2] = norm[i].v[2] + c->road_normal.v[2]; + BrVector3Accumulate(&c->road_normal, &norm[i]); normnum++; d[i] = d[i] - c->wheel_dam_offset[i ^ 2] * 6.9; force[i] = (c->susp_height[i / 2] - d[i]) * c->sk[1 / 2]; @@ -1834,36 +1707,21 @@ void CalcForce(tCar_spec* c, br_scalar dt) { B.v[1] = B.v[1] - mat->m[1][1] * friction_number; B.v[2] = B.v[2] - mat->m[2][1] * friction_number; } else { - scale = sqrt( - c->road_normal.v[1] * c->road_normal.v[1] - + c->road_normal.v[2] * c->road_normal.v[2] - + c->road_normal.v[0] * c->road_normal.v[0]); - if (scale <= 2.3841858e-7) { - v107.v[0] = 1.0; - v107.v[1] = 0.0; - v107.v[2] = 0.0; - } else { - scale = 1.0 / scale; - v107.v[0] = c->road_normal.v[0] * scale; - v107.v[1] = c->road_normal.v[1] * scale; - v107.v[2] = c->road_normal.v[2] * scale; - } - v107.v[0] = -(c->M * 10.0) * v107.v[0]; - v107.v[1] = -(c->M * 10.0) * v107.v[1]; - v107.v[2] = -(c->M * 10.0) * v107.v[2]; - B.v[0] = B.v[0] + v107.v[0]; - B.v[1] = B.v[1] + v107.v[1]; - B.v[2] = B.v[2] + v107.v[2]; + BrVector3Normalise(&v107, &c->road_normal); + BrVector3Scale(&v107, &v107, -(c->M * 10.0)); + BrVector3Accumulate(&B, &v107); } if (c->driver >= eDriver_net_human) { SteeringSelfCentre(c, dt, &c->road_normal); } if (normnum) { // ts = 1.0 / sqrt(1.0); <- looked like this in the windows build definitely wrong - ts = 1.0 / sqrt(c->road_normal.v[0] * c->road_normal.v[0] + c->road_normal.v[1] * c->road_normal.v[1] + c->road_normal.v[2] * c->road_normal.v[2]); - c->road_normal.v[0] = c->road_normal.v[0] * ts; - c->road_normal.v[1] = c->road_normal.v[1] * ts; - c->road_normal.v[2] = c->road_normal.v[2] * ts; + // ts = 1.0 / sqrt(c->road_normal.v[0] * c->road_normal.v[0] + c->road_normal.v[1] * c->road_normal.v[1] + c->road_normal.v[2] * c->road_normal.v[2]); + // c->road_normal.v[0] = c->road_normal.v[0] * ts; + // c->road_normal.v[1] = c->road_normal.v[1] * ts; + // c->road_normal.v[2] = c->road_normal.v[2] * ts; + BrVector3NormaliseQuick(&c->road_normal, &c->road_normal); + friction_number = c->road_normal.v[1] * mat->m[1][1] + c->road_normal.v[2] * mat->m[2][1] + c->road_normal.v[0] * mat->m[0][1]; if (c->driver > eDriver_non_car && c->wall_climber_mode) { friction_number = 1.0; @@ -1881,9 +1739,7 @@ void CalcForce(tCar_spec* c, br_scalar dt) { a.v[0] = mat->m[3][0] + a.v[0]; a.v[1] = mat->m[3][1] + a.v[1]; a.v[2] = mat->m[3][2] + a.v[2]; - b.v[0] = (c->wpos[0].v[2] - c->wpos[2].v[2]) * b.v[0]; - b.v[1] = (c->wpos[0].v[2] - c->wpos[2].v[2]) * b.v[1]; - b.v[2] = (c->wpos[0].v[2] - c->wpos[2].v[2]) * b.v[2]; + BrVector3Scale(&b, &b, (c->wpos[0].v[2] - c->wpos[2].v[2])); findfloor(&a, &b, norm, &ts2); if (ts2 > 1.0) { c->down_force_flag = 1; @@ -1897,65 +1753,30 @@ void CalcForce(tCar_spec* c, br_scalar dt) { } B.v[1] = B.v[1] - friction_number; } - vplane.v[0] = (c->velocity_car_space.v[1] * c->road_normal.v[1] - + c->road_normal.v[2] * c->velocity_car_space.v[2] - + c->road_normal.v[0] * c->velocity_car_space.v[0]) - * c->road_normal.v[0]; - vplane.v[1] = (c->velocity_car_space.v[1] * c->road_normal.v[1] - + c->road_normal.v[2] * c->velocity_car_space.v[2] - + c->road_normal.v[0] * c->velocity_car_space.v[0]) - * c->road_normal.v[1]; - vplane.v[2] = (c->velocity_car_space.v[1] * c->road_normal.v[1] - + c->road_normal.v[2] * c->velocity_car_space.v[2] - + c->road_normal.v[0] * c->velocity_car_space.v[0]) - * c->road_normal.v[2]; - vplane.v[0] = c->velocity_car_space.v[0] - vplane.v[0]; - vplane.v[1] = c->velocity_car_space.v[1] - vplane.v[1]; - vplane.v[2] = c->velocity_car_space.v[2] - vplane.v[2]; + vplane.v[0] = BrVector3Dot(&c->velocity_car_space, &c->road_normal) * c->road_normal.v[0]; + vplane.v[1] = BrVector3Dot(&c->velocity_car_space, &c->road_normal) * c->road_normal.v[1]; + vplane.v[2] = BrVector3Dot(&c->velocity_car_space, &c->road_normal) * c->road_normal.v[2]; + BrVector3Sub(&vplane, &c->velocity_car_space, &vplane); if (vplane.v[2] < 0.0) { ts = 1.0; } else { ts = -1.0; } - ts3 = sqrt(vplane.v[2] * vplane.v[2] + vplane.v[1] * vplane.v[1] + vplane.v[0] * vplane.v[0]); + ts3 = BrVector3Length(&vplane); deltaomega = ts3 * c->curvature * ts; - deltaomega = deltaomega - (c->omega.v[1] * c->road_normal.v[1] + c->road_normal.v[2] * c->omega.v[2] + c->road_normal.v[0] * c->omega.v[0]); - v103.v[0] = c->road_normal.v[1]; - v103.v[1] = -c->road_normal.v[0]; - v103.v[2] = 0.0; - scale = sqrt(0.0 * 0.0 + v103.v[1] * v103.v[1] + v103.v[0] * v103.v[0]); - if (scale <= 2.3841858e-7) { - v103.v[0] = 1.0; - v103.v[1] = 0.0; - v103.v[2] = 0.0; - } else { - scale = 1.0 / scale; - v103.v[0] = v103.v[0] * scale; - v103.v[1] = v103.v[1] * scale; - v103.v[2] = v103.v[2] * scale; - } + deltaomega = deltaomega - BrVector3Dot(&c->omega, &c->road_normal); + BrVector3Set(&v103, c->road_normal.v[1], -c->road_normal.v[0], 0); + BrVector3Normalise(&v103, &v103); friction_number = c->I.v[1] / dt * deltaomega; ts = friction_number / (c->wpos[2].v[2] - c->wpos[0].v[2]); v108 = ts; v109 = -ts; - rightplane.v[0] = 0.0; - rightplane.v[1] = c->road_normal.v[2]; - rightplane.v[2] = -c->road_normal.v[1]; - scale = sqrt(rightplane.v[1] * rightplane.v[1] + rightplane.v[2] * rightplane.v[2] + 0.0 * 0.0); - if (scale <= 2.3841858e-7) { - rightplane.v[0] = 1.0; - rightplane.v[1] = 0.0; - rightplane.v[2] = 0.0; - } else { - scale = 1.0 / scale; - rightplane.v[0] = rightplane.v[0] * scale; - rightplane.v[1] = rightplane.v[1] * scale; - rightplane.v[2] = rightplane.v[2] * scale; - } + BrVector3Set(&rightplane, 0, c->road_normal.v[2], -c->road_normal.v[1]); + BrVector3Normalise(&rightplane, &rightplane); v99 = c->acc_force; - friction_number = rightplane.v[1] * vplane.v[1] + rightplane.v[2] * vplane.v[2] + vplane.v[0] * rightplane.v[0]; - v87 = v103.v[2] * vplane.v[2] + v103.v[1] * vplane.v[1] + v103.v[0] * vplane.v[0]; + friction_number = BrVector3Dot(&rightplane, &vplane); + v87 = BrVector3Dot(&v103, &vplane); ts2 = fabs(v87); friction_number = (c->wpos[0].v[2] - c->cmpos.v[2]) * friction_number * fabs(c->curvature); if (c->curvature <= 0.0) { @@ -1964,15 +1785,15 @@ void CalcForce(tCar_spec* c, br_scalar dt) { friction_number = v87 + friction_number; } friction_number = -(c->M / dt * friction_number); - friction_number = friction_number - (B.v[1] * v103.v[1] + B.v[2] * v103.v[2] + B.v[0] * v103.v[0]); + friction_number = friction_number - BrVector3Dot(&B, &v103); friction_number = friction_number / (1.0 - wheelratio); v108 = friction_number + v108; v109 = -wheelratio * friction_number + v109; friction_number = (c->wpos[0].v[2] - c->wpos[2].v[2]) * v108; v98 = friction_number * c->curvature; - friction_number = (c->velocity_car_space.v[1] * rightplane.v[1] + rightplane.v[2] * c->velocity_car_space.v[2] + c->velocity_car_space.v[0] * rightplane.v[0]) * c->M / dt; - v129 = rightplane.v[1] * B.v[1] + rightplane.v[2] * B.v[2] + B.v[0] * rightplane.v[0] + friction_number; + friction_number = BrVector3Dot(&c->velocity_car_space, &rightplane) * c->M / dt; + v129 = BrVector3Dot(&rightplane, &B) + friction_number; v128 = c->mu[0] * c->brake_force / (c->mu[1] / c->friction_elipticity + c->mu[0]); v125 = c->brake_force - v128; v105 = (c->damage_units[7].damage_level + c->damage_units[6].damage_level) / 2; @@ -2012,15 +1833,9 @@ void CalcForce(tCar_spec* c, br_scalar dt) { } else { v116 = c->grip_multiplier; } - v102.v[0] = c->wpos[0].v[0] - c->cmpos.v[0]; - v102.v[1] = c->wpos[0].v[1] - c->cmpos.v[1]; - v102.v[2] = c->wpos[0].v[2] - c->cmpos.v[2]; - a.v[0] = c->omega.v[1] * v102.v[2] - c->omega.v[2] * v102.v[1]; - a.v[1] = c->omega.v[2] * v102.v[0] - v102.v[2] * c->omega.v[0]; - a.v[2] = v102.v[1] * c->omega.v[0] - c->omega.v[1] * v102.v[0]; - a.v[0] = c->velocity_car_space.v[0] + a.v[0]; - a.v[1] = c->velocity_car_space.v[1] + a.v[1]; - a.v[2] = c->velocity_car_space.v[2] + a.v[2]; + BrVector3Sub(&v102, &c->wpos[0], &c->cmpos); + BrVector3Cross(&a, &c->omega, &v102); + BrVector3Accumulate(&a, &c->velocity_car_space); if (c->driver >= eDriver_net_human && (((c->keys.left || c->joystick.left > 0x8000) && c->curvature > 0.0 && deltaomega > 0.1 && a.v[0] > 0.0) || ((c->keys.right || c->joystick.right > 0x8000) && c->curvature < 0.0 && deltaomega < 0.1 && a.v[0] < 0.0)) @@ -2068,8 +1883,6 @@ void CalcForce(tCar_spec* c, br_scalar dt) { v99 = v99 - ts2; v135 = sqrt(v99 * v99 + v109 * v109) / 2.0; - // v99 = 8.8f; - // v135 = 4.4f; printf("final values v99=%f v135=%f ts2=%f\n", v99, v135, ts2); } else if (c->driver >= eDriver_net_human && c->gear > 0 && c->revs > c->target_revs && !c->traction_control) { if (!c->keys.change_down) { @@ -2088,9 +1901,9 @@ void CalcForce(tCar_spec* c, br_scalar dt) { v109 = v87 * v109; v99 = c->friction_elipticity * v87 * v99; friction_number = -((c->wpos[2].v[2] - c->cmpos.v[2]) * v108 * ((c->wpos[2].v[2] - c->cmpos.v[2]) * v108) / c->I.v[1] + (v98 * v98 + v108 * v108) / c->M); - ts2 = (v103.v[2] * vplane.v[2] + v103.v[1] * vplane.v[1] + v103.v[0] * vplane.v[0] + v109 / c->M) * v108; - ts2 = (rightplane.v[1] * vplane.v[1] + rightplane.v[2] * vplane.v[2] + vplane.v[0] * rightplane.v[0]) * v98 + ts2; - ts2 = (c->omega.v[1] * c->road_normal.v[1] + c->road_normal.v[2] * c->omega.v[2] + c->road_normal.v[0] * c->omega.v[0]) * (c->wpos[2].v[2] - c->cmpos.v[2]) * v108 + ts2; + ts2 = (BrVector3Dot(&v103, &vplane) + v109 / c->M) * v108; + ts2 = BrVector3Dot(&rightplane, &vplane) * v98 + ts2; + ts2 = BrVector3Dot(&c->omega, &c->road_normal) /*(c->omega.v[1] * c->road_normal.v[1] + c->road_normal.v[2] * c->omega.v[2] + c->road_normal.v[0] * c->omega.v[0])*/ * (c->wpos[2].v[2] - c->cmpos.v[2]) * v108 + ts2; ts2 = (c->wpos[0].v[2] - c->cmpos.v[2]) * (c->wpos[2].v[2] - c->cmpos.v[2]) * v109 / c->I.v[1] * v108 + ts2; if (fabs(friction_number) > 0.1) { friction_number = ts2 / (friction_number * dt); @@ -2187,12 +2000,7 @@ void CalcForce(tCar_spec* c, br_scalar dt) { default: break; } - if (c->wheel_slip - && c->curvature * c->turn_speed > 0.0 - && fabs(v109) > 0.0099999998 - && c->curvature * v109 < 0.0 - && !c->keys.brake - && !c->keys.change_down) { + if (c->wheel_slip && c->curvature * c->turn_speed > 0.0 && fabs(v109) > 0.0099999998 && c->curvature * v109 < 0.0 && !c->keys.brake && !c->keys.change_down) { c->turn_speed = 0.0; } v135 = sqrt(v108 * v108 + v98 * v98) / 2.0; @@ -2274,92 +2082,45 @@ void CalcForce(tCar_spec* c, br_scalar dt) { } break; } - v136.v[0] = rightplane.v[0] * v99; - v136.v[1] = rightplane.v[1] * v99; - v136.v[2] = rightplane.v[2] * v99; - a.v[0] = v103.v[0] * v109; - a.v[1] = v103.v[1] * v109; - a.v[2] = v103.v[2] * v109; - v136.v[0] = a.v[0] + v136.v[0]; - v136.v[1] = v136.v[1] + a.v[1]; - v136.v[2] = v136.v[2] + a.v[2]; - v123.v[0] = rightplane.v[0] * v98; - v123.v[1] = rightplane.v[1] * v98; - v123.v[2] = rightplane.v[2] * v98; - a.v[0] = v103.v[0] * v108; - a.v[1] = v103.v[1] * v108; - a.v[2] = v103.v[2] * v108; - v123.v[0] = v123.v[0] + a.v[0]; - v123.v[1] = v123.v[1] + a.v[1]; - v123.v[2] = v123.v[2] + a.v[2]; + BrVector3Scale(&v136, &rightplane, v99); + BrVector3Scale(&a, &v103, v109); + BrVector3Accumulate(&v136, &a); + BrVector3Scale(&v123, &rightplane, v98); + BrVector3Scale(&a, &v103, v108); + BrVector3Accumulate(&v123, &a); + rightplane = c->wpos[0]; rightplane.v[1] = rightplane.v[1] - c->oldd[0]; - rightplane.v[0] = rightplane.v[0] - c->cmpos.v[0]; - rightplane.v[1] = rightplane.v[1] - c->cmpos.v[1]; - rightplane.v[2] = rightplane.v[2] - c->cmpos.v[2]; - b.v[0] = v136.v[0] * force[0]; - b.v[1] = v136.v[1] * force[0]; - b.v[2] = v136.v[2] * force[0]; - B.v[0] = B.v[0] + b.v[0]; - B.v[1] = B.v[1] + b.v[1]; - B.v[2] = B.v[2] + b.v[2]; - a.v[0] = rightplane.v[1] * b.v[2] - b.v[1] * rightplane.v[2]; - a.v[1] = rightplane.v[2] * b.v[0] - b.v[2] * rightplane.v[0]; - a.v[2] = b.v[1] * rightplane.v[0] - rightplane.v[1] * b.v[0]; - f.v[0] = f.v[0] + a.v[0]; - f.v[1] = f.v[1] + a.v[1]; - f.v[2] = f.v[2] + a.v[2]; + BrVector3Sub(&rightplane, &rightplane, &c->cmpos); + BrVector3Scale(&b, &v136, force[0]); + BrVector3Accumulate(&B, &b); + BrVector3Cross(&a, &rightplane, &b); + BrVector3Accumulate(&f, &a); + rightplane = c->wpos[1]; rightplane.v[1] = rightplane.v[1] - c->oldd[1]; - rightplane.v[0] = rightplane.v[0] - c->cmpos.v[0]; - rightplane.v[1] = rightplane.v[1] - c->cmpos.v[1]; - rightplane.v[2] = rightplane.v[2] - c->cmpos.v[2]; - b.v[0] = force[1] * v136.v[0]; - b.v[1] = force[1] * v136.v[1]; - b.v[2] = force[1] * v136.v[2]; - B.v[0] = B.v[0] + b.v[0]; - B.v[1] = B.v[1] + b.v[1]; - B.v[2] = B.v[2] + b.v[2]; - a.v[0] = rightplane.v[1] * b.v[2] - b.v[1] * rightplane.v[2]; - a.v[1] = rightplane.v[2] * b.v[0] - b.v[2] * rightplane.v[0]; - a.v[2] = b.v[1] * rightplane.v[0] - rightplane.v[1] * b.v[0]; - f.v[0] = f.v[0] + a.v[0]; - f.v[1] = f.v[1] + a.v[1]; - f.v[2] = f.v[2] + a.v[2]; + BrVector3Sub(&rightplane, &rightplane, &c->cmpos); + BrVector3Scale(&b, &v136, force[1]); + BrVector3Accumulate(&B, &b); + BrVector3Cross(&a, &rightplane, &b); + BrVector3Accumulate(&f, &a); + rightplane = c->wpos[2]; rightplane.v[1] = rightplane.v[1] - c->oldd[2]; - rightplane.v[0] = rightplane.v[0] - c->cmpos.v[0]; - rightplane.v[1] = rightplane.v[1] - c->cmpos.v[1]; - rightplane.v[2] = rightplane.v[2] - c->cmpos.v[2]; - b.v[0] = force[2] * v123.v[0]; - b.v[1] = force[2] * v123.v[1]; - b.v[2] = force[2] * v123.v[2]; - B.v[0] = B.v[0] + b.v[0]; - B.v[1] = B.v[1] + b.v[1]; - B.v[2] = B.v[2] + b.v[2]; - a.v[0] = rightplane.v[1] * b.v[2] - b.v[1] * rightplane.v[2]; - a.v[1] = rightplane.v[2] * b.v[0] - b.v[2] * rightplane.v[0]; - a.v[2] = b.v[1] * rightplane.v[0] - rightplane.v[1] * b.v[0]; - f.v[0] = f.v[0] + a.v[0]; - f.v[1] = f.v[1] + a.v[1]; - f.v[2] = f.v[2] + a.v[2]; + BrVector3Sub(&rightplane, &rightplane, &c->cmpos); + BrVector3Scale(&b, &v123, force[2]); + BrVector3Accumulate(&B, &b); + BrVector3Cross(&a, &rightplane, &b); + BrVector3Accumulate(&f, &a); + rightplane = c->wpos[3]; rightplane.v[1] = rightplane.v[1] - c->oldd[3]; - rightplane.v[0] = rightplane.v[0] - c->cmpos.v[0]; - rightplane.v[1] = rightplane.v[1] - c->cmpos.v[1]; - rightplane.v[2] = rightplane.v[2] - c->cmpos.v[2]; - b.v[0] = v123.v[0] * force[3]; - b.v[1] = v123.v[1] * force[3]; - b.v[2] = v123.v[2] * force[3]; - B.v[0] = B.v[0] + b.v[0]; - B.v[1] = B.v[1] + b.v[1]; - B.v[2] = B.v[2] + b.v[2]; - a.v[0] = rightplane.v[1] * b.v[2] - b.v[1] * rightplane.v[2]; - a.v[1] = rightplane.v[2] * b.v[0] - b.v[2] * rightplane.v[0]; - a.v[2] = b.v[1] * rightplane.v[0] - rightplane.v[1] * b.v[0]; - f.v[0] = f.v[0] + a.v[0]; - f.v[1] = f.v[1] + a.v[1]; - f.v[2] = f.v[2] + a.v[2]; + BrVector3Sub(&rightplane, &rightplane, &c->cmpos); + BrVector3Scale(&b, &v123, force[3]); + BrVector3Accumulate(&B, &b); + BrVector3Cross(&a, &rightplane, &b); + BrVector3Accumulate(&f, &a); + } else { c->max_force_front = 0.0; c->max_force_rear = 0.0; @@ -2367,27 +2128,21 @@ void CalcForce(tCar_spec* c, br_scalar dt) { } c->number_of_wheels_on_ground = normnum; BrMatrix34ApplyV(&b, &B, mat); - rightplane.v[0] = f.v[0] * dt; - rightplane.v[1] = f.v[1] * dt; - rightplane.v[2] = f.v[2] * dt; + BrVector3Scale(&rightplane, &f, dt); ApplyTorque(c, &rightplane); - rightplane.v[0] = dt / c->M * b.v[0]; - rightplane.v[1] = dt / c->M * b.v[1]; - rightplane.v[2] = dt / c->M * b.v[2]; - c->v.v[0] = c->v.v[0] + rightplane.v[0]; - c->v.v[1] = c->v.v[1] + rightplane.v[1]; - c->v.v[2] = c->v.v[2] + rightplane.v[2]; + BrVector3Scale(&rightplane, &b, dt / c->M); + BrVector3Accumulate(&c->v, &rightplane); if (c->speed < 0.000099999997 && ((!c->keys.acc && c->joystick.acc <= 0) || !c->gear) && !c->keys.dec && c->joystick.dec <= 0 && c->bounce_rate == 0.0 - && sqrt(c->omega.v[1] * c->omega.v[1] + c->omega.v[2] * c->omega.v[2] + c->omega.v[0] * c->omega.v[0]) < 0.05) { + && BrVector3Length(&c->omega) < 0.05) { if (vol) { v73 = c->driver > eDriver_non_car && c->underwater_ability ? 1.0 - (1.0 - vol->gravity_multiplier) * 0.6 : vol->gravity_multiplier; - friction_number = sqrt(b.v[2] * b.v[2] + b.v[1] * b.v[1] + b.v[0] * b.v[0]) / v73 / gGravity_multiplier; + friction_number = BrVector3Length(&b) / v73 / gGravity_multiplier; } else { - friction_number = sqrt(b.v[2] * b.v[2] + b.v[1] * b.v[1] + b.v[0] * b.v[0]); + friction_number = BrVector3Length(&b); } if (c->M > friction_number || (c->keys.brake && normnum >= 3)) { if (stop_timer == 100.0) { @@ -2578,6 +2333,7 @@ int CollCheck(tCollision_info* c, br_scalar dt) { } BrMatrix34LPInverse(&tm, mat); BrMatrix34Mul(&oldmat_to_mat, oldmat, &tm); + oldmat_to_mat.m[3][0] = oldmat_to_mat.m[3][0] / WORLD_SCALE; oldmat_to_mat.m[3][1] = oldmat_to_mat.m[3][1] / WORLD_SCALE; oldmat_to_mat.m[3][2] = oldmat_to_mat.m[3][2] / WORLD_SCALE; @@ -2594,9 +2350,7 @@ int CollCheck(tCollision_info* c, br_scalar dt) { a1.v[1] = mat->m[3][1] / WORLD_SCALE; a1.v[2] = mat->m[3][2] / WORLD_SCALE; BrMatrix34ApplyV(&aa, &bnds.min, mat); - aa.v[0] = a1.v[0] + aa.v[0]; - aa.v[1] = a1.v[1] + aa.v[1]; - aa.v[2] = a1.v[2] + aa.v[2]; + BrVector3Accumulate(&aa, &a1); for (j = 0; j < 3; ++j) { edges[j].v[0] = (bnds.max.v[j] - bnds.min.v[j]) * mat->m[j][0]; edges[j].v[1] = (bnds.max.v[j] - bnds.min.v[j]) * mat->m[j][1]; @@ -2605,13 +2359,11 @@ int CollCheck(tCollision_info* c, br_scalar dt) { i = 0; f_ref = &gFace_list__car[c->box_face_start]; while (c->box_face_end - c->box_face_start > i && i < 50) { - bb.v[0] = aa.v[0] - f_ref->v[0].v[0]; - bb.v[1] = aa.v[1] - f_ref->v[0].v[1]; - bb.v[2] = aa.v[2] - f_ref->v[0].v[2]; - max = bb.v[1] * f_ref->normal.v[1] + f_ref->normal.v[2] * bb.v[2] + f_ref->normal.v[0] * bb.v[0]; + BrVector3Sub(&bb, &aa, &f_ref->v[0]); + max = BrVector3Dot(&bb, &f_ref->normal); min = max; for (j = 0; j < 3; ++j) { - ts = edges[j].v[2] * f_ref->normal.v[2] + edges[j].v[1] * f_ref->normal.v[1] + edges[j].v[0] * f_ref->normal.v[0]; + ts = BrVector3Dot(&edges[j], &f_ref->normal); if (ts >= 0) { max = max + ts; } else { @@ -2648,38 +2400,16 @@ int CollCheck(tCollision_info* c, br_scalar dt) { if (dt >= 0.0) { BrMatrix34ApplyP(&a, &tv, oldmat); } else { - a.v[0] = c->pos.v[0] * 6.9000001; - a.v[1] = c->pos.v[1] * 6.9000001; - a.v[2] = c->pos.v[2] * 6.9000001; + BrVector3Scale(&a, &c->pos, WORLD_SCALE); } - dir.v[0] = dir.v[0] - a.v[0]; - dir.v[1] = dir.v[1] - a.v[1]; - dir.v[2] = dir.v[2] - a.v[2]; - ts = sqrt(dir.v[2] * dir.v[2] + dir.v[1] * dir.v[1] + dir.v[0] * dir.v[0]); - if (ts <= 2.38419e-07) { - normal_force.v[0] = 1.0; - normal_force.v[1] = 0.0; - normal_force.v[2] = 0.0; - } else { - ts = 1.0 / ts; - normal_force.v[0] = dir.v[0] * ts; - normal_force.v[1] = dir.v[1] * ts; - normal_force.v[2] = dir.v[2] * ts; - } - normal_force.v[0] = normal_force.v[0] * 0.0072463769; - normal_force.v[1] = normal_force.v[1] * 0.0072463769; - normal_force.v[2] = normal_force.v[2] * 0.0072463769; - dir.v[0] = dir.v[0] + normal_force.v[0]; - dir.v[1] = dir.v[1] + normal_force.v[1]; - dir.v[2] = dir.v[2] + normal_force.v[2]; + BrVector3Sub(&dir, &dir, &a); + BrVector3Normalise(&normal_force, &dir); + BrVector3Scale(&normal_force, &normal_force, 0.0072463769); + BrVector3Accumulate(&dir, &normal_force); material = FindFloorInBoxM2(&a, &dir, &norm, &dist, c); if (dist >= 0.0 && dist < 1.0001) { - cc.v[0] = c->pos.v[0] * 6.9000001; - cc.v[1] = c->pos.v[1] * 6.9000001; - cc.v[2] = c->pos.v[2] * 6.9000001; - cc.v[0] = cc.v[0] - a.v[0]; - cc.v[1] = cc.v[1] - a.v[1]; - cc.v[2] = cc.v[2] - a.v[2]; + BrVector3Scale(&cc, &c->pos, WORLD_SCALE); + BrVector3Sub(&cc, &cc, &a); FindFloorInBoxM(&a, &cc, &bb, &ts, c); if (i < 8 || ts > 1.0) { BrMatrix34TApplyV(&a, &norm, oldmat); @@ -2702,12 +2432,8 @@ int CollCheck(tCollision_info* c, br_scalar dt) { if (fabs(r[i].v[1]) + fabs(r[i].v[2]) + fabs(r[i].v[0]) > 500.0) { for (j = i + 1; j < k; j++) { if (fabs(r[j].v[1]) + fabs(r[j].v[2]) + fabs(r[j].v[0]) < 500.0) { - r[i].v[0] = r[j].v[0]; - r[i].v[1] = r[j].v[1]; - r[i].v[2] = r[j].v[2]; - n[i].v[0] = n[j].v[0]; - n[i].v[1] = n[j].v[1]; - n[i].v[2] = n[j].v[2]; + r[i] = r[j]; + n[i] = n[j]; i++; } } @@ -2720,12 +2446,8 @@ int CollCheck(tCollision_info* c, br_scalar dt) { && (fabs(r[0].v[0] - c->old_point.v[0]) > 0.05 || fabs(r[0].v[1] - c->old_point.v[1]) > 0.05 || fabs(r[0].v[2] - c->old_point.v[2]) > 0.05)) { - r[k].v[0] = c->old_point.v[0]; - r[k].v[1] = c->old_point.v[1]; - r[k].v[2] = c->old_point.v[2]; - n[k].v[0] = c->old_norm.v[0]; - n[k].v[1] = c->old_norm.v[1]; - n[k].v[2] = c->old_norm.v[2]; + r[k] = c->old_point; + n[k] = c->old_norm; k++; } if (k > 0) { @@ -2737,27 +2459,17 @@ int CollCheck(tCollision_info* c, br_scalar dt) { memset(&norm, 0, sizeof(norm)); collision = 0; for (i = 0; i < k; i++) { - tau[i].v[0] = r[i].v[1] * n[i].v[2] - r[i].v[2] * n[i].v[1]; - tau[i].v[1] = r[i].v[2] * n[i].v[0] - r[i].v[0] * n[i].v[2]; - tau[i].v[2] = r[i].v[0] * n[i].v[1] - r[i].v[1] * n[i].v[0]; + BrVector3Cross(&tau[i], &r[i], &n[i]); tau[i].v[0] = tau[i].v[0] / c->I.v[0]; tau[i].v[1] = tau[i].v[1] / c->I.v[1]; tau[i].v[2] = tau[i].v[2] / c->I.v[2]; - normal_force.v[0] = r[i].v[2] * c->omega.v[1] - r[i].v[1] * c->omega.v[2]; - normal_force.v[1] = r[i].v[0] * c->omega.v[2] - r[i].v[2] * c->omega.v[0]; - normal_force.v[2] = r[i].v[1] * c->omega.v[0] - r[i].v[0] * c->omega.v[1]; - normal_force.v[0] = c->velocity_car_space.v[0] + normal_force.v[0]; - normal_force.v[1] = c->velocity_car_space.v[1] + normal_force.v[1]; - normal_force.v[2] = c->velocity_car_space.v[2] + normal_force.v[2]; - d[i] = -(n[i].v[2] * normal_force.v[2] + n[i].v[1] * normal_force.v[1] + n[i].v[0] * normal_force.v[0]); - normal_force.v[0] = r[i].v[0] + c->cmpos.v[0]; - normal_force.v[1] = r[i].v[1] + c->cmpos.v[1]; - normal_force.v[2] = r[i].v[2] + c->cmpos.v[2]; + BrVector3Cross(&normal_force, &c->omega, &r[i]); + BrVector3Accumulate(&normal_force, &c->velocity_car_space); + d[i] = -(BrVector3Dot(&n[i], &normal_force)); + BrVector3Add(&normal_force, &r[i], &c->cmpos); BrMatrix34ApplyP(&dir, &normal_force, &mat_to_oldmat); - dir.v[0] = dir.v[0] - normal_force.v[0]; - dir.v[1] = dir.v[1] - normal_force.v[1]; - dir.v[2] = dir.v[2] - normal_force.v[2]; - ts = -((n[i].v[1] * dir.v[1] + n[i].v[2] * dir.v[2] + n[i].v[0] * dir.v[0]) / dt); + BrVector3Sub(&dir, &dir, &normal_force); + ts = -(BrVector3Dot(&n[i], &dir) / dt); if (ts > d[i]) { d[i] = ts; } @@ -2770,16 +2482,10 @@ int CollCheck(tCollision_info* c, br_scalar dt) { } for (i = 0; k > i; ++i) { for (j = 0; k > j; ++j) { - normal_force.v[0] = r[i].v[2] * tau[j].v[1] - r[i].v[1] * tau[j].v[2]; - normal_force.v[1] = r[i].v[0] * tau[j].v[2] - r[i].v[2] * tau[j].v[0]; - normal_force.v[2] = r[i].v[1] * tau[j].v[0] - tau[j].v[1] * r[i].v[0]; - norm.v[0] = n[j].v[0] / c->M; - norm.v[1] = n[j].v[1] / c->M; - norm.v[2] = n[j].v[2] / c->M; - normal_force.v[0] = norm.v[0] + normal_force.v[0]; - normal_force.v[1] = norm.v[1] + normal_force.v[1]; - normal_force.v[2] = norm.v[2] + normal_force.v[2]; - M.m[0][4 * i + j] = n[i].v[2] * normal_force.v[2] + n[i].v[1] * normal_force.v[1] + n[i].v[0] * normal_force.v[0]; + BrVector3Cross(&normal_force, &tau[j], &r[i]); + BrVector3InvScale(&norm, &n[j], c->M); + BrVector3Accumulate(&normal_force, &norm); + M.m[0][4 * i + j] = BrVector3Dot(&n[i], &normal_force); } } switch (k) { @@ -2806,128 +2512,65 @@ int CollCheck(tCollision_info* c, br_scalar dt) { // v31 = 0; // } if (fabs(ts) <= 0.000001) { - c->v.v[0] = 0.0; - c->v.v[1] = 0.0; - c->v.v[2] = 0.0; - c->omega.v[0] = 0.0; - c->omega.v[1] = 0.0; - c->omega.v[2] = 0.0; - c->oldomega.v[0] = 0.0; - c->oldomega.v[1] = 0.0; - c->oldomega.v[2] = 0.0; + BrVector3Set(&c->v, 0, 0, 0); + BrVector3Set(&c->omega, 0, 0, 0); + BrVector3Set(&c->oldomega, 0, 0, 0); return k; } - - memset(&p_vel, 0, sizeof(p_vel)); - memset(&dir, 0, sizeof(dir)); - memset(&friction_force, 0, sizeof(friction_force)); + BrVector3Set(&p_vel, 0, 0, 0); + BrVector3Set(&dir, 0, 0, 0); + BrVector3Set(&friction_force, 0, 0, 0); total_force = 0.0; for (i = 0; k > i; ++i) { if (f[i] < 0.001) { f[i] = 0.001; } f[i] = f[i] * 1.001; - tau[i].v[0] = tau[i].v[0] * f[i]; - tau[i].v[1] = tau[i].v[1] * f[i]; - tau[i].v[2] = tau[i].v[2] * f[i]; - c->omega.v[0] = tau[i].v[0] + c->omega.v[0]; - c->omega.v[1] = tau[i].v[1] + c->omega.v[1]; - c->omega.v[2] = tau[i].v[2] + c->omega.v[2]; + BrVector3Scale(&tau[i], &tau[i], f[i]); + BrVector3Add(&c->omega, &tau[i], &c->omega); f[i] = f[i] / c->M; - n[i].v[0] = n[i].v[0] * f[i]; - n[i].v[1] = n[i].v[1] * f[i]; - n[i].v[2] = n[i].v[2] * f[i]; - p_vel.v[0] = n[i].v[0] + p_vel.v[0]; - p_vel.v[1] = n[i].v[1] + p_vel.v[1]; - p_vel.v[2] = n[i].v[2] + p_vel.v[2]; - bb.v[0] = r[i].v[0] + c->cmpos.v[0]; - bb.v[1] = r[i].v[1] + c->cmpos.v[1]; - bb.v[2] = r[i].v[2] + c->cmpos.v[2]; - bb.v[0] = f[i] * bb.v[0]; - bb.v[1] = f[i] * bb.v[1]; - bb.v[2] = f[i] * bb.v[2]; - dir.v[0] = dir.v[0] + bb.v[0]; - dir.v[1] = dir.v[1] + bb.v[1]; - dir.v[2] = dir.v[2] + bb.v[2]; + BrVector3Scale(&n[i], &n[i], f[i]); + BrVector3Accumulate(&p_vel, &n[i]); + BrVector3Add(&bb, &r[i], &c->cmpos); + BrVector3Scale(&bb, &bb, f[i]); + BrVector3Accumulate(&dir, &bb); total_force = f[i] + total_force; } if (gPinball_factor != 0.0) { - p_vel.v[0] = p_vel.v[0] * gPinball_factor; - p_vel.v[1] = p_vel.v[1] * gPinball_factor; - p_vel.v[2] = p_vel.v[2] * gPinball_factor; - point_vel = p_vel.v[2] * p_vel.v[2] + p_vel.v[1] * p_vel.v[1] + p_vel.v[0] * p_vel.v[0]; + BrVector3Scale(&p_vel, &p_vel, gPinball_factor); + point_vel = BrVector3LengthSquared(&p_vel); if (point_vel > 10.0) { noise_defeat = 1; if (c->driver == eDriver_local_human) { DRS3StartSound(gIndexed_outlets[1], 9011); } else { - DRS3StartSound3D( - gIndexed_outlets[1], - 9011, - &c->pos, - &gZero_v__car, - 1, - 255, - 0x10000, - 0x10000); + DRS3StartSound3D(gIndexed_outlets[1], 9011, &c->pos, &gZero_v__car, 1, 255, 0x10000, 0x10000); } if (point_vel > 10000.0) { - ts = sqrt(p_vel.v[2] * p_vel.v[2] + p_vel.v[1] * p_vel.v[1] + p_vel.v[0] * p_vel.v[0]); - if (ts <= 2.3841858e-7) { - p_vel.v[0] = 1.0; - p_vel.v[1] = 0.0; - p_vel.v[2] = 0.0; - } else { - ts = 1.0 / ts; - p_vel.v[0] = p_vel.v[0] * ts; - p_vel.v[1] = p_vel.v[1] * ts; - p_vel.v[2] = p_vel.v[2] * ts; - } - p_vel.v[0] = p_vel.v[0] * 100.0; - p_vel.v[1] = p_vel.v[1] * 100.0; - p_vel.v[2] = p_vel.v[2] * 100.0; + BrVector3Normalise(&p_vel, &p_vel); + BrVector3Scale(&p_vel, &p_vel, 100); } } } - c->velocity_car_space.v[0] = c->velocity_car_space.v[0] + p_vel.v[0]; - c->velocity_car_space.v[1] = c->velocity_car_space.v[1] + p_vel.v[1]; - c->velocity_car_space.v[2] = c->velocity_car_space.v[2] + p_vel.v[2]; - dir.v[0] = dir.v[0] / total_force; - dir.v[1] = dir.v[1] / total_force; - dir.v[2] = dir.v[2] / total_force; - tv.v[0] = c->omega.v[1] * dir.v[2] - c->omega.v[2] * dir.v[1]; - tv.v[1] = c->omega.v[2] * dir.v[0] - c->omega.v[0] * dir.v[2]; - tv.v[2] = c->omega.v[0] * dir.v[1] - c->omega.v[1] * dir.v[0]; - tv.v[0] = c->velocity_car_space.v[0] + tv.v[0]; - tv.v[1] = c->velocity_car_space.v[1] + tv.v[1]; - tv.v[2] = c->velocity_car_space.v[2] + tv.v[2]; - batwick_length = sqrt(tv.v[2] * tv.v[2] + tv.v[1] * tv.v[1] + tv.v[0] * tv.v[0]); + BrVector3Accumulate(&c->velocity_car_space, &p_vel); + BrVector3InvScale(&dir, &dir, total_force); + BrVector3Cross(&tv, &c->omega, &dir); + BrVector3Accumulate(&tv, &c->velocity_car_space); + batwick_length = BrVector3Length(&tv); if (!c->collision_flag || (c->collision_flag == 1 && oldk < k)) { for (i = 0; k > i; ++i) { - vel.v[0] = r[i].v[2] * c->omega.v[1] - r[i].v[1] * c->omega.v[2]; - vel.v[1] = r[i].v[0] * c->omega.v[2] - r[i].v[2] * c->omega.v[0]; - vel.v[2] = r[i].v[1] * c->omega.v[0] - r[i].v[0] * c->omega.v[1]; - vel.v[0] = c->velocity_car_space.v[0] + vel.v[0]; - vel.v[1] = c->velocity_car_space.v[1] + vel.v[1]; - vel.v[2] = c->velocity_car_space.v[2] + vel.v[2]; + BrVector3Cross(&vel, &c->omega, &r[i]); + BrVector3Accumulate(&vel, &c->velocity_car_space); AddFriction(c, &vel, &n[i], &r[i], f[i], &max_friction); - friction_force.v[0] = friction_force.v[0] + max_friction.v[0]; - friction_force.v[1] = friction_force.v[1] + max_friction.v[1]; - friction_force.v[2] = friction_force.v[2] + max_friction.v[2]; - c->velocity_car_space.v[0] = c->velocity_car_space.v[0] + max_friction.v[0]; - c->velocity_car_space.v[1] = c->velocity_car_space.v[1] + max_friction.v[1]; - c->velocity_car_space.v[2] = c->velocity_car_space.v[2] + max_friction.v[2]; + BrVector3Accumulate(&friction_force, &max_friction); + BrVector3Accumulate(&c->velocity_car_space, &max_friction); } } oldk = k; BrMatrix34ApplyP(&pos, &dir, &c->car_master_actor->t.t.mat); - pos.v[0] = pos.v[0] / 6.9000001; - pos.v[1] = pos.v[1] / 6.9000001; - pos.v[2] = pos.v[2] / 6.9000001; + BrVector3InvScale(&pos, &pos, WORLD_SCALE); noise_defeat = 0; - normal_force.v[0] = friction_force.v[0] + p_vel.v[0]; - normal_force.v[1] = friction_force.v[1] + p_vel.v[1]; - normal_force.v[2] = friction_force.v[2] + p_vel.v[2]; + BrVector3Add(&normal_force, &friction_force, &p_vel); BrMatrix34ApplyV(&norm, &normal_force, mat); min = dt * 90.0 / 10.0; max = dt * 110.0 / 10.0; @@ -2941,17 +2584,11 @@ int CollCheck(tCollision_info* c, br_scalar dt) { && norm.v[1] > min && norm.v[1] < max) { if (c->driver <= eDriver_non_car || fabs(normal_force.v[2]) <= total_force * 0.89999998) { - c->v.v[0] = 0.0; - c->v.v[1] = 0.0; - c->v.v[2] = 0.0; - memset(&norm, 0, sizeof(norm)); - memset(&normal_force, 0, sizeof(normal_force)); - c->omega.v[0] = 0.0; - c->omega.v[1] = 0.0; - c->omega.v[2] = 0.0; - c->oldomega.v[0] = 0.0; - c->oldomega.v[1] = 0.0; - c->oldomega.v[2] = 0.0; + BrVector3Set(&c->v, 0, 0, 0); + BrVector3Set(&norm, 0, 0, 0); + BrVector3Set(&normal_force, 0, 0, 0); + BrVector3Set(&c->omega, 0, 0, 0); + BrVector3Set(&c->oldomega, 0, 0, 0); if (c->driver <= eDriver_non_car || car_spec->max_force_rear == 0.0) { if (c->driver <= eDriver_non_car) { PipeSingleNonCar(c); @@ -2963,29 +2600,21 @@ int CollCheck(tCollision_info* c, br_scalar dt) { bb.v[0] = mat->m[1][2] * tv2.v[1] - mat->m[1][1] * tv2.v[2]; bb.v[1] = mat->m[1][0] * tv2.v[2] - mat->m[1][2] * tv2.v[0]; bb.v[2] = mat->m[1][1] * tv2.v[0] - mat->m[1][0] * tv2.v[1]; - if (mat->m[0][1] * bb.v[1] + mat->m[0][2] * bb.v[2] + mat->m[0][0] * bb.v[0] <= 0.0) { + if (BrVector3Dot(&bb, (br_vector3*)&mat->m[0][1]) <= 0.0) { c->omega.v[0] = -0.5; } else { c->omega.v[0] = 0.5; } } } - c->v.v[0] = c->v.v[0] + norm.v[0]; - c->v.v[1] = c->v.v[1] + norm.v[1]; - c->v.v[2] = c->v.v[2] + norm.v[2]; + BrVector3Accumulate(&c->v, &norm); if (c->driver >= eDriver_net_human) { - normal_force.v[0] = gDefensive_powerup_factor[car_spec->power_up_levels[0]] * normal_force.v[0]; - normal_force.v[1] = gDefensive_powerup_factor[car_spec->power_up_levels[0]] * normal_force.v[1]; - normal_force.v[2] = gDefensive_powerup_factor[car_spec->power_up_levels[0]] * normal_force.v[2]; + BrVector3Scale(&normal_force, &normal_force, gDefensive_powerup_factor[car_spec->power_up_levels[0]]); } if (c->driver < eDriver_net_human) { - normal_force.v[0] = normal_force.v[0] * 0.0099999998; - normal_force.v[1] = normal_force.v[1] * 0.0099999998; - normal_force.v[2] = normal_force.v[2] * 0.0099999998; + BrVector3Scale(&normal_force, &normal_force, 0.0099999998); } else { - normal_force.v[0] = normal_force.v[0] * 0.75; - normal_force.v[1] = normal_force.v[1] * 0.75; - normal_force.v[2] = normal_force.v[2] * 0.75; + BrVector3Scale(&normal_force, &normal_force, 0.75); } v_diff = (car_spec->pre_car_col_velocity.v[1] - c->v.v[1]) * gDefensive_powerup_factor[car_spec->power_up_levels[0]]; if (car_spec->invulnerable @@ -3001,12 +2630,7 @@ int CollCheck(tCollision_info* c, br_scalar dt) { } for (i = 0; i < ((tCar_spec*)c)->car_actor_count; i++) { ts2 = (v_diff + 20.0) * -0.01; - TotallySpamTheModel( - car_spec, - i, - car_spec->car_model_actors[i].actor, - &car_spec->car_model_actors[i].crush_data, - ts2); + TotallySpamTheModel(car_spec, i, car_spec->car_model_actors[i].actor, &car_spec->car_model_actors[i].crush_data, ts2); } for (i = 0; i < 12; i++) { DamageUnit(car_spec, i, IRandomPosNeg(5) + (v_diff + 20.0) * -1.5); @@ -3016,9 +2640,7 @@ int CollCheck(tCollision_info* c, br_scalar dt) { CrashNoise(&norm, &pos, gMaterial_index); ScrapeNoise(batwick_length, &pos, gMaterial_index); } - tv.v[0] = tv.v[0] / 6.9000001; - tv.v[1] = tv.v[1] / 6.9000001; - tv.v[2] = tv.v[2] / 6.9000001; + BrVector3InvScale(&tv, &tv, WORLD_SCALE); BrMatrix34ApplyV(&bb, &tv, &c->car_master_actor->t.t.mat); BrMatrix34ApplyV(&norm, &p_vel, &c->car_master_actor->t.t.mat); CreateSparks(&pos, &bb, &norm, gCurrent_race.material_modifiers[gMaterial_index].sparkiness, car_spec); diff --git a/src/DETHRACE/common/car.h b/src/DETHRACE/common/car.h index b49d5c99..9d057f3c 100644 --- a/src/DETHRACE/common/car.h +++ b/src/DETHRACE/common/car.h @@ -1,7 +1,7 @@ #ifndef _CAR_H_ #define _CAR_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" #define CAR_MAX_SIMPLIFICATION_LEVEL 4 diff --git a/src/DETHRACE/common/controls.c b/src/DETHRACE/common/controls.c index 1415b798..5fafa48b 100644 --- a/src/DETHRACE/common/controls.c +++ b/src/DETHRACE/common/controls.c @@ -1,6 +1,6 @@ #include "controls.h" -#include "brender.h" +#include "brender/brender.h" #include "car.h" #include "constants.h" #include "displays.h" @@ -9,7 +9,7 @@ #include "globvrkm.h" #include "globvrpb.h" #include "graphics.h" -#include "harness.h" +#include "harness/trace.h" #include "input.h" #include "loadsave.h" #include "mainloop.h" @@ -58,8 +58,8 @@ tToggle_element gToggle_array[] = { { 43, -2, 1, 0, 0, NumberKey7 }, { 15, -2, 1, 0, 0, NumberKey8 }, { 16, -2, 1, 0, 0, NumberKey9 }, - { 60, -2, 1, 0, 0, ScreenLarger }, - { 61, -2, 1, 0, 0, ScreenSmaller }, + { 60, -2, 1, 0, 0, ScreenSmaller }, + { 61, -2, 1, 0, 0, ScreenLarger }, { 62, -2, 1, 0, 0, BuyArmour }, { 63, -2, 1, 0, 0, BuyPower }, { 64, -2, 1, 0, 0, BuyOffense }, diff --git a/src/DETHRACE/common/controls.h b/src/DETHRACE/common/controls.h index 2545177b..492ef442 100644 --- a/src/DETHRACE/common/controls.h +++ b/src/DETHRACE/common/controls.h @@ -1,7 +1,7 @@ #ifndef _CONTROLS_H_ #define _CONTROLS_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern tToggle_element gToggle_array[43]; diff --git a/src/DETHRACE/common/crush.c b/src/DETHRACE/common/crush.c index 14c2e8e5..e299ed0b 100644 --- a/src/DETHRACE/common/crush.c +++ b/src/DETHRACE/common/crush.c @@ -1,5 +1,6 @@ #include "crush.h" -#include "brender.h" +#include "brender/brender.h" +#include "harness/trace.h" #include "loading.h" #include "utility.h" #include diff --git a/src/DETHRACE/common/crush.h b/src/DETHRACE/common/crush.h index 7c30abb6..750f7609 100644 --- a/src/DETHRACE/common/crush.h +++ b/src/DETHRACE/common/crush.h @@ -1,7 +1,7 @@ #ifndef _CRUSH_H_ #define _CRUSH_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern float gWobble_spam_y[8]; diff --git a/src/DETHRACE/common/cutscene.c b/src/DETHRACE/common/cutscene.c index 5ceea4d3..1e64d869 100644 --- a/src/DETHRACE/common/cutscene.c +++ b/src/DETHRACE/common/cutscene.c @@ -3,10 +3,12 @@ #include "globvars.h" #include "globvrpb.h" #include "graphics.h" +#include "harness/config.h" +#include "harness/trace.h" #include "input.h" -#include "libsmacker/smacker.h" #include "loading.h" #include "pd/sys.h" +#include "smacker.h" #include "sound.h" #include "utility.h" #include @@ -135,7 +137,8 @@ void PlaySmackerFile(char* pSmack_name) { void DoOpeningAnimation() { LOG_TRACE("()"); PlaySmackerFile("LOGO.SMK"); - PlaySmackerFile(harness_game_mode.intro_smk_file); + // changed from static file reference to handle all game modes + PlaySmackerFile(harness_game_info.intro_smk_file); return WaitForNoKeys(); } diff --git a/src/DETHRACE/common/cutscene.h b/src/DETHRACE/common/cutscene.h index e506b536..8571bf4d 100644 --- a/src/DETHRACE/common/cutscene.h +++ b/src/DETHRACE/common/cutscene.h @@ -1,7 +1,9 @@ #ifndef _CUTSCENE_H_ #define _CUTSCENE_H_ -#include "br_types.h" +#include "brender/br_types.h" +#include "brender/brender.h" + #include "dr_types.h" extern tS32 gLast_demo_end_anim; diff --git a/src/DETHRACE/common/demo.c b/src/DETHRACE/common/demo.c index eaa07436..b7405407 100644 --- a/src/DETHRACE/common/demo.c +++ b/src/DETHRACE/common/demo.c @@ -1,4 +1,5 @@ #include "demo.h" +#include "harness/trace.h" #include int gLast_demo; diff --git a/src/DETHRACE/common/demo.h b/src/DETHRACE/common/demo.h index 9eb3d9ad..78e0b19c 100644 --- a/src/DETHRACE/common/demo.h +++ b/src/DETHRACE/common/demo.h @@ -1,7 +1,7 @@ #ifndef _DEMO_H_ #define _DEMO_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gLast_demo; diff --git a/src/DETHRACE/common/depth.c b/src/DETHRACE/common/depth.c index b76899a4..146b5e88 100644 --- a/src/DETHRACE/common/depth.c +++ b/src/DETHRACE/common/depth.c @@ -1,11 +1,13 @@ #include "depth.h" -#include "brender.h" +#include "brender/brender.h" #include "errors.h" #include "globvars.h" #include "globvrkm.h" +#include "harness/trace.h" #include "spark.h" #include "utility.h" +#include #include tDepth_effect gDistance_depth_effects[4]; diff --git a/src/DETHRACE/common/depth.h b/src/DETHRACE/common/depth.h index 1a27a25e..a6b90e27 100644 --- a/src/DETHRACE/common/depth.h +++ b/src/DETHRACE/common/depth.h @@ -1,7 +1,7 @@ #ifndef _DEPTH_H_ #define _DEPTH_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern tDepth_effect gDistance_depth_effects[4]; diff --git a/src/DETHRACE/common/displays.c b/src/DETHRACE/common/displays.c index 6848ab8f..c16bb8c0 100644 --- a/src/DETHRACE/common/displays.c +++ b/src/DETHRACE/common/displays.c @@ -1,11 +1,12 @@ #include "displays.h" -#include "brender.h" +#include "brender/brender.h" #include "constants.h" #include "flicplay.h" #include "globvars.h" #include "globvrkm.h" #include "globvrpb.h" #include "graphics.h" +#include "harness/trace.h" #include "netgame.h" #include "pd/sys.h" #include "utility.h" diff --git a/src/DETHRACE/common/displays.h b/src/DETHRACE/common/displays.h index c1be2443..190db7c7 100644 --- a/src/DETHRACE/common/displays.h +++ b/src/DETHRACE/common/displays.h @@ -1,7 +1,7 @@ #ifndef _DISPLAYS_H_ #define _DISPLAYS_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gLast_fancy_index; diff --git a/src/DETHRACE/common/drfile.c b/src/DETHRACE/common/drfile.c index 69c2041f..7807a016 100644 --- a/src/DETHRACE/common/drfile.c +++ b/src/DETHRACE/common/drfile.c @@ -1,5 +1,6 @@ #include "drfile.h" -#include "brender.h" +#include "brender/brender.h" +#include "harness/trace.h" #include "loading.h" #include diff --git a/src/DETHRACE/common/drfile.h b/src/DETHRACE/common/drfile.h index e5b66ceb..10d17d82 100644 --- a/src/DETHRACE/common/drfile.h +++ b/src/DETHRACE/common/drfile.h @@ -1,7 +1,7 @@ #ifndef _DRFILE_H_ #define _DRFILE_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern br_filesystem gFilesystem; diff --git a/src/DETHRACE/common/drmem.c b/src/DETHRACE/common/drmem.c index e7387d21..f905e44f 100644 --- a/src/DETHRACE/common/drmem.c +++ b/src/DETHRACE/common/drmem.c @@ -1,6 +1,7 @@ #include "drmem.h" -#include "brender.h" +#include "brender/brender.h" #include "errors.h" +#include "harness/trace.h" #include br_allocator gAllocator = { "Death Race", DRStdlibAllocate, DRStdlibFree, DRStdlibInquire, Claim4ByteAlignment }; diff --git a/src/DETHRACE/common/drmem.h b/src/DETHRACE/common/drmem.h index 29b82075..96324599 100644 --- a/src/DETHRACE/common/drmem.h +++ b/src/DETHRACE/common/drmem.h @@ -1,7 +1,7 @@ #ifndef _DRMEM_H_ #define _DRMEM_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern br_allocator gAllocator; diff --git a/src/DETHRACE/common/errors.c b/src/DETHRACE/common/errors.c index 1511ade4..464ccb82 100644 --- a/src/DETHRACE/common/errors.c +++ b/src/DETHRACE/common/errors.c @@ -5,6 +5,7 @@ #include #include +#include "harness/trace.h" #include "network.h" #include "pd/sys.h" #include "utility.h" @@ -192,6 +193,7 @@ void OpenDiagnostics() { // Renamed from dprintf to avoid collisions to stdio void dr_dprintf(char* fmt_string, ...) { va_list args; + printf("dprintf: "); va_start(args, fmt_string); vprintf(fmt_string, args); va_end(args); diff --git a/src/DETHRACE/common/errors.h b/src/DETHRACE/common/errors.h index 1bc57c81..02a71cc7 100644 --- a/src/DETHRACE/common/errors.h +++ b/src/DETHRACE/common/errors.h @@ -1,7 +1,7 @@ #ifndef _ERRORS_H_ #define _ERRORS_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern char* gError_messages[126]; diff --git a/src/DETHRACE/common/finteray.c b/src/DETHRACE/common/finteray.c index c72d7132..68d1db76 100644 --- a/src/DETHRACE/common/finteray.c +++ b/src/DETHRACE/common/finteray.c @@ -1,9 +1,11 @@ #include "finteray.h" -#include "brender.h" +#include "brender/brender.h" #include "brucetrk.h" #include "car.h" #include "globvars.h" +#include "harness/trace.h" #include "world.h" +#include #include int gPling_materials = 1; @@ -426,9 +428,7 @@ void CheckSingleFace(tFace_ref* pFace, br_vector3* ray_pos, br_vector3* ray_dir, if ((!this_material || (this_material->flags & 0x1800) != 0 || d <= 0.0) && (!this_material || !this_material->identifier || *this_material->identifier != '!' || !gPling_materials) && fabs(d) >= 0.00000023841858) { - p.v[0] = ray_pos->v[0] - pFace->v[0].v[0]; - p.v[1] = ray_pos->v[1] - pFace->v[0].v[1]; - p.v[2] = ray_pos->v[2] - pFace->v[0].v[2]; + BrVector3Sub(&p, ray_pos, &pFace->v[0]); numerator = pFace->normal.v[1] * p.v[1] + pFace->normal.v[2] * p.v[2] + pFace->normal.v[0] * p.v[0]; if (!BadDiv__finteray(numerator, d)) { if (d > 0.0) { @@ -950,9 +950,7 @@ int ModelPickBox(br_actor* actor, tBounds* bnds, br_model* model, br_material* m face_list->flags |= (v2 > v1) + 2 * (v3 > v2) + 4 * (v3 < v1); } if (pMat) { - face_list->d = face_list->v[0].v[2] * face_list->normal.v[2] - + face_list->v[0].v[1] * face_list->normal.v[1] - + face_list->v[0].v[0] * face_list->normal.v[0]; + face_list->d = BrVector3LengthSquared(&face_list->v[0]); } else { face_list->d = fp->eqn.v[3]; } diff --git a/src/DETHRACE/common/finteray.h b/src/DETHRACE/common/finteray.h index 20ec0f1e..cee35232 100644 --- a/src/DETHRACE/common/finteray.h +++ b/src/DETHRACE/common/finteray.h @@ -1,7 +1,7 @@ #ifndef _FINTERAY_H_ #define _FINTERAY_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gPling_materials; diff --git a/src/DETHRACE/common/flicplay.c b/src/DETHRACE/common/flicplay.c index 471c246e..510d449f 100644 --- a/src/DETHRACE/common/flicplay.c +++ b/src/DETHRACE/common/flicplay.c @@ -1,9 +1,10 @@ #include "flicplay.h" -#include "brender.h" +#include "brender/brender.h" #include "drmem.h" #include "errors.h" #include "globvars.h" #include "graphics.h" +#include "harness/trace.h" #include "input.h" #include "loading.h" #include "main.h" diff --git a/src/DETHRACE/common/flicplay.h b/src/DETHRACE/common/flicplay.h index 98739e14..5b29dba2 100644 --- a/src/DETHRACE/common/flicplay.h +++ b/src/DETHRACE/common/flicplay.h @@ -1,7 +1,7 @@ #ifndef _FLICPLAY_H_ #define _FLICPLAY_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gPalette_allocate_count; diff --git a/src/DETHRACE/common/globvars.h b/src/DETHRACE/common/globvars.h index 0fbe2010..0b74e288 100644 --- a/src/DETHRACE/common/globvars.h +++ b/src/DETHRACE/common/globvars.h @@ -1,7 +1,7 @@ #ifndef _GLOBVARS_H_ #define _GLOBVARS_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gTyping; diff --git a/src/DETHRACE/common/globvrbm.h b/src/DETHRACE/common/globvrbm.h index 35fe69e8..3bdca8d2 100644 --- a/src/DETHRACE/common/globvrbm.h +++ b/src/DETHRACE/common/globvrbm.h @@ -1,7 +1,7 @@ #ifndef _GLOBVRBM_H_ #define _GLOBVRBM_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern br_scalar gYon_factor; diff --git a/src/DETHRACE/common/globvrkm.h b/src/DETHRACE/common/globvrkm.h index e28fd51d..2deb68b1 100644 --- a/src/DETHRACE/common/globvrkm.h +++ b/src/DETHRACE/common/globvrkm.h @@ -1,7 +1,7 @@ #ifndef _GLOBVRKM_H_ #define _GLOBVRKM_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern br_scalar gCamera_zoom; diff --git a/src/DETHRACE/common/globvrme.h b/src/DETHRACE/common/globvrme.h index f5145580..14eb6d9e 100644 --- a/src/DETHRACE/common/globvrme.h +++ b/src/DETHRACE/common/globvrme.h @@ -1,7 +1,7 @@ #ifndef _GLOBVRME_H_ #define _GLOBVRME_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern tCar_spec* gViewable_car_list[50]; diff --git a/src/DETHRACE/common/globvrpb.h b/src/DETHRACE/common/globvrpb.h index 78c90620..afa62983 100644 --- a/src/DETHRACE/common/globvrpb.h +++ b/src/DETHRACE/common/globvrpb.h @@ -1,7 +1,7 @@ #ifndef _GLOBVRPB_H_ #define _GLOBVRPB_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern tNet_mode gNet_mode; diff --git a/src/DETHRACE/common/grafdata.h b/src/DETHRACE/common/grafdata.h index 1320f306..dfc8d9d7 100644 --- a/src/DETHRACE/common/grafdata.h +++ b/src/DETHRACE/common/grafdata.h @@ -1,7 +1,7 @@ #ifndef _GRAFDATA_H_ #define _GRAFDATA_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern tGraf_data gGraf_data[2]; diff --git a/src/DETHRACE/common/graphics.c b/src/DETHRACE/common/graphics.c index 5c202251..6e94935b 100644 --- a/src/DETHRACE/common/graphics.c +++ b/src/DETHRACE/common/graphics.c @@ -1,6 +1,6 @@ #include "graphics.h" -#include "brender.h" +#include "brender/brender.h" #include "controls.h" #include "depth.h" #include "displays.h" @@ -9,6 +9,7 @@ #include "globvars.h" #include "globvrpb.h" #include "grafdata.h" +#include "harness/trace.h" #include "init.h" #include "loading.h" #include "network.h" @@ -283,7 +284,17 @@ tS8* SkipLines(tS8* pSource, int pCount) { int number_of_chunks; int chunk_length; LOG_TRACE("(%p, %d)", pSource, pCount); - NOT_IMPLEMENTED(); + + for (i = 0; i < pCount; ++i) { + number_of_chunks = *pSource++; + for (j = 0; j < number_of_chunks; j++) { + chunk_length = *pSource++; + if (chunk_length < 0) { + pSource -= chunk_length; + } + } + } + return pSource; } // IDA: void __usercall CopyWords(char *pDst@, char *pSrc@, int pN@) @@ -324,30 +335,20 @@ void CopyStripImage(br_pixelmap* pDest, br_int_16 pDest_x, br_int_16 pOffset_x, int chunk_length; char* destn_ptr; char* destn_ptr2; - LOG_TRACE("(%p, %d, %d, %d, %d, %p, %d, %d, %d, %d)", pDest, pDest_x, pOffset_x, pDest_y, pOffset_y, pSource, pSource_x, pSource_y, pWidth, pHeight); + LOG_TRACE8("(%p, %d, %d, %d, %d, %p, %d, %d, %d, %d)", pDest, pDest_x, pOffset_x, pDest_y, pOffset_y, pSource, pSource_x, pSource_y, pWidth, pHeight); height = *(uint16_t*)pSource; pSource = pSource + 2; if (pDest_y + pOffset_y >= 0) { destn_ptr = (char*)pDest->pixels + pDest->row_bytes * (pDest_y + pOffset_y); } else { - LOG_PANIC("path not implemented"); - // Copy8BitStripImageTo16Bit( - // pSource, - // -pDest_y - pOffset_y, - // v12, - // v13, - // v14, - // (tS8*)height, - // v16, - // v18, - // v20, - // v22); - // pSourcea = v10; - // destn_ptr = (char*)pDest->pixels; - // height = pDest_y + pOffset_y + v11; - // pOffset_y = 0; - // pDest_y = 0; + LOG_DEBUG("%d, %d", pDest_y, pOffset_y); + + pSource = SkipLines(pSource, -pDest_y - pOffset_y); + destn_ptr = (char*)pDest->pixels; + height += pDest_y + pOffset_y; + pOffset_y = 0; + pDest_y = 0; } if (height + pDest_y + pOffset_y > pDest->height) { @@ -454,13 +455,13 @@ void AdjustRenderScreenSize() { gRender_screen->base_y = gProgram_state.current_render_top; gRender_screen->height = gProgram_state.current_render_bottom - gProgram_state.current_render_top; gRender_screen->width = gProgram_state.current_render_right - gProgram_state.current_render_left; - LOG_DEBUG("renderscreen is %d x %d", gRender_screen->width, gRender_screen->height); + LOG_DEBUG("renderscreen is %d %d, %d x %d", gRender_screen->base_x, gRender_screen->base_y, gRender_screen->width, gRender_screen->height); } if (gRender_screen->row_bytes == gRender_screen->width) { gRender_screen->flags |= BR_PMF_ROW_WHOLEPIXELS; } else { - TELL_ME_IF_WE_PASS_THIS_WAY(); - //v0 = gRender_screen->flags & 0xFB; + gRender_screen->flags &= ~BR_PMF_ROW_WHOLEPIXELS; + //TELL_ME_IF_WE_PASS_THIS_WAY(); } gRender_screen->origin_x = gRender_screen->width / 2; gRender_screen->origin_y = gRender_screen->height / 2; @@ -475,13 +476,33 @@ void AdjustRenderScreenSize() { // IDA: void __cdecl ScreenSmaller() void ScreenSmaller() { LOG_TRACE("()"); - NOT_IMPLEMENTED(); + + if (!gMap_mode) { + if (gProgram_state.cockpit_on) { + ToggleCockpit(); + } + gRender_indent++; + if (gRender_indent > 8) { + gRender_indent = 8; + } + AdjustRenderScreenSize(); + } } // IDA: void __cdecl ScreenLarger() void ScreenLarger() { LOG_TRACE("()"); - NOT_IMPLEMENTED(); + + if (!gMap_mode) { + if (gProgram_state.cockpit_on) { + ToggleCockpit(); + } + gRender_indent--; + if (gRender_indent < 0) { + gRender_indent = 0; + } + AdjustRenderScreenSize(); + } } // IDA: void __usercall DRSetPaletteEntries(br_pixelmap *pPalette@, int pFirst_colour@, int pCount@) @@ -998,7 +1019,7 @@ void RenderAFrame(int pDepth_mask_on) { } gCamera->t.t.mat = old_camera_matrix; if (gMirror_on__graphics) { - LOG_PANIC("mirror is on"); + //LOG_PANIC("mirror is on"); BrPixelmapFill(gRearview_depth_buffer, 0xFFFFFFFF); gRendering_mirror = 1; DoSpecialCameraEffect(gRearview_camera, &gRearview_camera_to_world); diff --git a/src/DETHRACE/common/graphics.h b/src/DETHRACE/common/graphics.h index af22864a..d256afb6 100644 --- a/src/DETHRACE/common/graphics.h +++ b/src/DETHRACE/common/graphics.h @@ -1,7 +1,7 @@ #ifndef _GRAPHICS_H_ #define _GRAPHICS_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gPalette_munged; diff --git a/src/DETHRACE/common/init.c b/src/DETHRACE/common/init.c index c2e731d6..d0cc1d98 100644 --- a/src/DETHRACE/common/init.c +++ b/src/DETHRACE/common/init.c @@ -16,6 +16,7 @@ #include "globvrpb.h" #include "grafdata.h" #include "graphics.h" +#include "harness/trace.h" #include "loading.h" #include "loadsave.h" #include "netgame.h" @@ -35,7 +36,7 @@ #include "utility.h" #include "world.h" -#include "brender.h" +#include "brender/brender.h" int gGame_initialized; int gBr_initialized; diff --git a/src/DETHRACE/common/init.h b/src/DETHRACE/common/init.h index 570e6582..09168953 100644 --- a/src/DETHRACE/common/init.h +++ b/src/DETHRACE/common/init.h @@ -1,7 +1,7 @@ #ifndef _INIT_H_ #define _INIT_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gGame_initialized; diff --git a/src/DETHRACE/common/input.c b/src/DETHRACE/common/input.c index 9c0bb546..a803843c 100644 --- a/src/DETHRACE/common/input.c +++ b/src/DETHRACE/common/input.c @@ -1,10 +1,12 @@ #include "input.h" -#include "brender.h" +#include "brender/brender.h" #include "errors.h" #include "globvars.h" #include "grafdata.h" #include "graphics.h" +#include "harness/hooks.h" +#include "harness/trace.h" #include "pd/sys.h" #include "utility.h" #include diff --git a/src/DETHRACE/common/input.h b/src/DETHRACE/common/input.h index 359a19fe..73c13835 100644 --- a/src/DETHRACE/common/input.h +++ b/src/DETHRACE/common/input.h @@ -1,7 +1,7 @@ #ifndef _INPUT_H_ #define _INPUT_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gEdge_trigger_mode; diff --git a/src/DETHRACE/common/intrface.c b/src/DETHRACE/common/intrface.c index ba70763d..81272042 100644 --- a/src/DETHRACE/common/intrface.c +++ b/src/DETHRACE/common/intrface.c @@ -1,9 +1,10 @@ #include "intrface.h" -#include "brender.h" +#include "brender/brender.h" #include "flicplay.h" #include "globvars.h" #include "grafdata.h" #include "graphics.h" +#include "harness/trace.h" #include "input.h" #include "loading.h" #include "main.h" diff --git a/src/DETHRACE/common/intrface.h b/src/DETHRACE/common/intrface.h index 0058aebf..a06cb29f 100644 --- a/src/DETHRACE/common/intrface.h +++ b/src/DETHRACE/common/intrface.h @@ -1,7 +1,7 @@ #ifndef _INTRFACE_H_ #define _INTRFACE_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gDisabled_choices[10]; diff --git a/src/DETHRACE/common/loading.c b/src/DETHRACE/common/loading.c index 5c42707c..c30e0682 100644 --- a/src/DETHRACE/common/loading.c +++ b/src/DETHRACE/common/loading.c @@ -4,7 +4,7 @@ #include #include -#include "brender.h" +#include "brender/brender.h" #include "brucetrk.h" #include "car.h" #include "constants.h" @@ -20,6 +20,8 @@ #include "globvrpb.h" #include "grafdata.h" #include "graphics.h" +#include "harness/config.h" +#include "harness/trace.h" #include "init.h" #include "input.h" #include "newgame.h" @@ -1049,12 +1051,8 @@ void ReadNonCarMechanicsData(FILE* pF, tNon_car_spec* non_car) { ts = GetAFloat(pF); non_car->min_torque_squared = ts * ts; - non_car->collision_info.bounds[0].min.v[0] = non_car->collision_info.bounds[1].min.v[0]; - non_car->collision_info.bounds[0].min.v[1] = non_car->collision_info.bounds[1].min.v[1]; - non_car->collision_info.bounds[0].min.v[2] = non_car->collision_info.bounds[1].min.v[2]; - non_car->collision_info.bounds[0].max.v[0] = non_car->collision_info.bounds[1].max.v[0]; - non_car->collision_info.bounds[0].max.v[1] = non_car->collision_info.bounds[1].max.v[1]; - non_car->collision_info.bounds[0].max.v[2] = non_car->collision_info.bounds[1].max.v[2]; + non_car->collision_info.bounds[0].min = non_car->collision_info.bounds[1].min; + non_car->collision_info.bounds[0].max = non_car->collision_info.bounds[1].max; for (i = 0; non_car->collision_info.extra_point_num > i; ++i) { for (j = 0; j < 3; ++j) { if (non_car->collision_info.extra_points[i].v[j] < non_car->collision_info.bounds[0].min.v[j]) { @@ -1069,25 +1067,14 @@ void ReadNonCarMechanicsData(FILE* pF, tNon_car_spec* non_car) { non_car->I_over_M.v[2] = (wid * wid + len * len) / 12.0; non_car->I_over_M.v[1] = (het * het + len * len) / 12.0; non_car->I_over_M.v[0] = (het * het + wid * wid) / 12.0; - non_car->free_cmpos.v[0] = non_car->free_cmpos.v[0] * 6.9000001; - non_car->free_cmpos.v[1] = non_car->free_cmpos.v[1] * 6.9000001; - non_car->free_cmpos.v[2] = non_car->free_cmpos.v[2] * 6.9000001; - non_car->attached_cmpos.v[0] = non_car->attached_cmpos.v[0] * 6.9000001; - non_car->attached_cmpos.v[1] = non_car->attached_cmpos.v[1] * 6.9000001; - non_car->attached_cmpos.v[2] = non_car->attached_cmpos.v[2] * 6.9000001; - non_car->I_over_M.v[0] = non_car->I_over_M.v[0] * 47.610001; - non_car->I_over_M.v[1] = non_car->I_over_M.v[1] * 47.610001; - non_car->I_over_M.v[2] = non_car->I_over_M.v[2] * 47.610001; - non_car->collision_info.bounds[1].min.v[0] = non_car->collision_info.bounds[1].min.v[0] * 6.9000001; - non_car->collision_info.bounds[1].min.v[1] = non_car->collision_info.bounds[1].min.v[1] * 6.9000001; - non_car->collision_info.bounds[1].min.v[2] = non_car->collision_info.bounds[1].min.v[2] * 6.9000001; - non_car->collision_info.bounds[1].max.v[0] = non_car->collision_info.bounds[1].max.v[0] * 6.9000001; - non_car->collision_info.bounds[1].max.v[1] = non_car->collision_info.bounds[1].max.v[1] * 6.9000001; - non_car->collision_info.bounds[1].max.v[2] = non_car->collision_info.bounds[1].max.v[2] * 6.9000001; + BrVector3Scale(&non_car->free_cmpos, &non_car->free_cmpos, WORLD_SCALE); + BrVector3Scale(&non_car->attached_cmpos, &non_car->attached_cmpos, WORLD_SCALE); + BrVector3Scale(&non_car->I_over_M, &non_car->I_over_M, 47.610001); + BrVector3Scale(&non_car->collision_info.bounds[1].min, &non_car->collision_info.bounds[1].min, WORLD_SCALE); + BrVector3Scale(&non_car->collision_info.bounds[1].max, &non_car->collision_info.bounds[1].max, WORLD_SCALE); + for (i = 0; non_car->collision_info.extra_point_num > i; ++i) { - non_car->collision_info.extra_points[i].v[0] = non_car->collision_info.extra_points[i].v[0] * 6.9000001; - non_car->collision_info.extra_points[i].v[1] = non_car->collision_info.extra_points[i].v[1] * 6.9000001; - non_car->collision_info.extra_points[i].v[2] = non_car->collision_info.extra_points[i].v[2] * 6.9000001; + BrVector3Scale(&non_car->collision_info.extra_points[i], &non_car->collision_info.extra_points[i], WORLD_SCALE); } non_car->collision_info.max_bounds[0] = non_car->collision_info.bounds[0]; non_car->collision_info.max_bounds[1] = non_car->collision_info.bounds[2]; @@ -1364,7 +1351,13 @@ intptr_t LinkModel(br_actor* pActor, tModel_pool* pModel_pool) { LOG_TRACE("(%p, %p)", pActor, pModel_pool); if (pActor->model && pActor->model->identifier) { + LOG_DEBUG("%s, %d", pActor->model->identifier, pModel_pool->model_count); for (i = 0; i < pModel_pool->model_count; i++) { + LOG_DEBUG("%d", i); + LOG_DEBUG("%p", pModel_pool->model_array[i]->identifier); + if (pModel_pool->model_array[i]->identifier) { + LOG_DEBUG("%s", pModel_pool->model_array[i]->identifier); + } if (pModel_pool->model_array[i]->identifier && !strcmp(pModel_pool->model_array[i]->identifier, pActor->model->identifier)) { pActor->model = pModel_pool->model_array[i]; @@ -1398,7 +1391,9 @@ void LinkModelsToActor(br_actor* pActor, br_model** pModel_array, int pModel_cou tModel_pool model_pool; LOG_TRACE("(%p, %p, %d)", pActor, pModel_array, pModel_count); - DRActorEnumRecurse(pActor, (br_actor_enum_cbfn*)LinkModel, &pModel_array); + model_pool.model_array = pModel_array; + model_pool.model_count = pModel_count; + DRActorEnumRecurse(pActor, (br_actor_enum_cbfn*)LinkModel, &model_pool); } // IDA: void __usercall ReadShrapnelMaterials(FILE *pF@, tCollision_info *pCar_spec@) @@ -2761,7 +2756,14 @@ void GetPairOfFloatPercents(FILE* pF, float* pF1, float* pF2) { char s[256]; char* str; LOG_TRACE("(%p, %p, %p)", pF, pF1, pF2); - NOT_IMPLEMENTED(); + + GetALineAndDontArgue(pF, s); + str = strtok(s, "\t ,/"); + sscanf(str, "%f", pF1); + str = strtok(NULL, "\t ,/"); + sscanf(str, "%f", pF2); + *pF1 = *pF1 / 100.0; + *pF2 = *pF2 / 100.0; } // IDA: void __usercall GetThreeFloatPercents(FILE *pF@, float *pF1@, float *pF2@, float *pF3@) @@ -2877,33 +2879,40 @@ FILE* OldDRfopen(char* pFilename, char* pMode) { fp = fopen(pFilename, pMode); if (fp) { - len = strlen(pFilename); - if (gDecode_thing != 0) { - if (strcmp(&pFilename[len - 4], ".TXT") == 0 - && strcmp(&pFilename[len - 12], "DKEYMAP0.TXT") != 0 - && strcmp(&pFilename[len - 12], "DKEYMAP1.TXT") != 0 - && strcmp(&pFilename[len - 12], "DKEYMAP2.TXT") != 0 - && strcmp(&pFilename[len - 12], "DKEYMAP3.TXT") != 0 - && strcmp(&pFilename[len - 12], "KEYMAP_0.TXT") != 0 - && strcmp(&pFilename[len - 12], "KEYMAP_1.TXT") != 0 - && strcmp(&pFilename[len - 12], "KEYMAP_2.TXT") != 0 - && strcmp(&pFilename[len - 12], "KEYMAP_3.TXT") != 0 - && strcmp(&pFilename[len - 11], "OPTIONS.TXT") != 0 - && strcmp(&pFilename[len - 11], "KEYNAMES.TXT") != 0 - && strcmp(&pFilename[len - 10], "KEYMAP.TXT") != 0 - && strcmp(&pFilename[len - 9], "PATHS.TXT") != 0 - && strcmp(&pFilename[len - 11], "PRATCAM.TXT") != 0) { - ch = fgetc(fp); - if (ch != gDecode_thing) { - fclose(fp); - LOG_WARN("Unexpected encoding character"); - return NULL; + + // Demo does not check gDecode_thing ("i am fiddling" in PROG.ACT) + // If the text file starts with a '@' character, it will be decoded, otherwise used as-is. + if (harness_game_info.mode == eGame_carmageddon_demo) { + return fp; + } else { + len = strlen(pFilename); + if (gDecode_thing != 0) { + if (strcmp(&pFilename[len - 4], ".TXT") == 0 + && strcmp(&pFilename[len - 12], "DKEYMAP0.TXT") != 0 + && strcmp(&pFilename[len - 12], "DKEYMAP1.TXT") != 0 + && strcmp(&pFilename[len - 12], "DKEYMAP2.TXT") != 0 + && strcmp(&pFilename[len - 12], "DKEYMAP3.TXT") != 0 + && strcmp(&pFilename[len - 12], "KEYMAP_0.TXT") != 0 + && strcmp(&pFilename[len - 12], "KEYMAP_1.TXT") != 0 + && strcmp(&pFilename[len - 12], "KEYMAP_2.TXT") != 0 + && strcmp(&pFilename[len - 12], "KEYMAP_3.TXT") != 0 + && strcmp(&pFilename[len - 11], "OPTIONS.TXT") != 0 + && strcmp(&pFilename[len - 11], "KEYNAMES.TXT") != 0 + && strcmp(&pFilename[len - 10], "KEYMAP.TXT") != 0 + && strcmp(&pFilename[len - 9], "PATHS.TXT") != 0 + && strcmp(&pFilename[len - 11], "PRATCAM.TXT") != 0) { + ch = fgetc(fp); + if (ch != gDecode_thing) { + fclose(fp); + return NULL; + } + ungetc(ch, fp); + return fp; } - ungetc(ch, fp); - return fp; } } } + if (gCD_fully_installed) { return fp; } @@ -3077,7 +3086,8 @@ int TestForOriginalCarmaCDinDrive() { return 0; } - if (!PDCheckDriveExists2(cutscene_pathname, harness_game_mode.intro_smk_file, 2000000)) { + // changed from static file reference to handle all game modes + if (!PDCheckDriveExists2(cutscene_pathname, harness_game_info.intro_smk_file, 2000000)) { return 0; } diff --git a/src/DETHRACE/common/loading.h b/src/DETHRACE/common/loading.h index bad7014d..f073307b 100644 --- a/src/DETHRACE/common/loading.h +++ b/src/DETHRACE/common/loading.h @@ -1,7 +1,7 @@ #ifndef _LOADING_H_ #define _LOADING_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern tHeadup_info gHeadup_image_info[31]; diff --git a/src/DETHRACE/common/loadsave.c b/src/DETHRACE/common/loadsave.c index a7f11a6e..0682dfd9 100644 --- a/src/DETHRACE/common/loadsave.c +++ b/src/DETHRACE/common/loadsave.c @@ -1,4 +1,5 @@ #include "loadsave.h" +#include "harness/trace.h" #include tSave_game* gSaved_games[8]; diff --git a/src/DETHRACE/common/loadsave.h b/src/DETHRACE/common/loadsave.h index b1eb595c..3fef879d 100644 --- a/src/DETHRACE/common/loadsave.h +++ b/src/DETHRACE/common/loadsave.h @@ -1,7 +1,7 @@ #ifndef _LOADSAVE_H_ #define _LOADSAVE_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern tSave_game* gSaved_games[8]; diff --git a/src/DETHRACE/common/main.c b/src/DETHRACE/common/main.c index e4164219..ee72e4f9 100644 --- a/src/DETHRACE/common/main.c +++ b/src/DETHRACE/common/main.c @@ -4,6 +4,7 @@ #include "controls.h" #include "errors.h" #include "globvars.h" +#include "harness/trace.h" #include "init.h" #include "input.h" #include "loading.h" diff --git a/src/DETHRACE/common/main.h b/src/DETHRACE/common/main.h index 1692cd21..c672e378 100644 --- a/src/DETHRACE/common/main.h +++ b/src/DETHRACE/common/main.h @@ -1,7 +1,7 @@ #ifndef _MAIN_H_ #define _MAIN_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" void QuitGame(); diff --git a/src/DETHRACE/common/mainloop.c b/src/DETHRACE/common/mainloop.c index 2a32cc58..54cb822d 100644 --- a/src/DETHRACE/common/mainloop.c +++ b/src/DETHRACE/common/mainloop.c @@ -1,5 +1,5 @@ #include "mainloop.h" -#include "brender.h" +#include "brender/brender.h" #include "car.h" #include "controls.h" #include "crush.h" @@ -11,6 +11,7 @@ #include "globvrkm.h" #include "globvrpb.h" #include "graphics.h" +#include "harness/trace.h" #include "input.h" #include "main.h" #include "mainmenu.h" diff --git a/src/DETHRACE/common/mainloop.h b/src/DETHRACE/common/mainloop.h index 511ef4c3..597aad9b 100644 --- a/src/DETHRACE/common/mainloop.h +++ b/src/DETHRACE/common/mainloop.h @@ -1,7 +1,7 @@ #ifndef _MAINLOOP_H_ #define _MAINLOOP_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gNasty_kludgey_cockpit_variable; diff --git a/src/DETHRACE/common/mainmenu.c b/src/DETHRACE/common/mainmenu.c index c499973c..8c70bf63 100644 --- a/src/DETHRACE/common/mainmenu.c +++ b/src/DETHRACE/common/mainmenu.c @@ -1,11 +1,12 @@ #include "mainmenu.h" -#include "brender.h" +#include "brender/brender.h" #include "controls.h" #include "flicplay.h" #include "globvars.h" #include "globvrpb.h" #include "grafdata.h" #include "graphics.h" +#include "harness/trace.h" #include "intrface.h" #include "loading.h" #include "loadsave.h" diff --git a/src/DETHRACE/common/mainmenu.h b/src/DETHRACE/common/mainmenu.h index 1b71ba4e..3480069c 100644 --- a/src/DETHRACE/common/mainmenu.h +++ b/src/DETHRACE/common/mainmenu.h @@ -1,7 +1,7 @@ #ifndef _MAINMENU_H_ #define _MAINMENU_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern char* gPalette_copy__mainmenu; // suffix added to avoid duplicate symbol diff --git a/src/DETHRACE/common/netgame.c b/src/DETHRACE/common/netgame.c index 1a6460e0..2c4b2dc4 100644 --- a/src/DETHRACE/common/netgame.c +++ b/src/DETHRACE/common/netgame.c @@ -1,6 +1,7 @@ #include "netgame.h" #include "globvars.h" #include "globvrpb.h" +#include "harness/trace.h" #include "network.h" #include diff --git a/src/DETHRACE/common/netgame.h b/src/DETHRACE/common/netgame.h index 5832e858..c51decfd 100644 --- a/src/DETHRACE/common/netgame.h +++ b/src/DETHRACE/common/netgame.h @@ -1,7 +1,7 @@ #ifndef _NETGAME_H_ #define _NETGAME_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gPowerup_cost[4]; diff --git a/src/DETHRACE/common/network.c b/src/DETHRACE/common/network.c index db4c9bbd..26bb19e3 100644 --- a/src/DETHRACE/common/network.c +++ b/src/DETHRACE/common/network.c @@ -1,10 +1,11 @@ #include "network.h" -#include "brender.h" +#include "brender/brender.h" #include "controls.h" #include "displays.h" #include "globvars.h" #include "globvrpb.h" #include "graphics.h" +#include "harness/trace.h" #include "netgame.h" #include "pd/net.h" #include "pd/sys.h" diff --git a/src/DETHRACE/common/newgame.c b/src/DETHRACE/common/newgame.c index 47e9b80c..494be562 100644 --- a/src/DETHRACE/common/newgame.c +++ b/src/DETHRACE/common/newgame.c @@ -8,6 +8,7 @@ #include "globvrpb.h" #include "grafdata.h" #include "graphics.h" +#include "harness/trace.h" #include "init.h" #include "input.h" #include "intrface.h" @@ -15,6 +16,7 @@ #include "utility.h" #include "world.h" #include +#include tU8* gFrank_flic_data; tU8* gAnne_flic_data; diff --git a/src/DETHRACE/common/newgame.h b/src/DETHRACE/common/newgame.h index df8e09e7..3f60d9fc 100644 --- a/src/DETHRACE/common/newgame.h +++ b/src/DETHRACE/common/newgame.h @@ -1,7 +1,7 @@ #ifndef _NEWGAME_H_ #define _NEWGAME_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern tU8* gFrank_flic_data; diff --git a/src/DETHRACE/common/oil.c b/src/DETHRACE/common/oil.c index 8931667a..a96b3fda 100644 --- a/src/DETHRACE/common/oil.c +++ b/src/DETHRACE/common/oil.c @@ -1,8 +1,10 @@ #include "oil.h" -#include "brender.h" +#include "brender/brender.h" #include "globvars.h" +#include "harness/trace.h" #include "loading.h" #include "utility.h" +#include #include char* gOil_pixie_names[1] = { "OIL.PIX" }; diff --git a/src/DETHRACE/common/oil.h b/src/DETHRACE/common/oil.h index bbf5618b..45769c9c 100644 --- a/src/DETHRACE/common/oil.h +++ b/src/DETHRACE/common/oil.h @@ -1,7 +1,7 @@ #ifndef _OIL_H_ #define _OIL_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern char* gOil_pixie_names[1]; diff --git a/src/DETHRACE/common/oppocar.c b/src/DETHRACE/common/oppocar.c index 1f38a8f6..b762db5a 100644 --- a/src/DETHRACE/common/oppocar.c +++ b/src/DETHRACE/common/oppocar.c @@ -1,4 +1,5 @@ #include "oppocar.h" +#include "harness/trace.h" #include int gCollision_detection_on__oppocar; // suffix added to avoid duplicate symbol diff --git a/src/DETHRACE/common/oppocar.h b/src/DETHRACE/common/oppocar.h index 8e5619f2..f4331180 100644 --- a/src/DETHRACE/common/oppocar.h +++ b/src/DETHRACE/common/oppocar.h @@ -1,7 +1,7 @@ #ifndef _OPPOCAR_H_ #define _OPPOCAR_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gCollision_detection_on__oppocar; // suffix added to avoid duplicate symbol diff --git a/src/DETHRACE/common/opponent.c b/src/DETHRACE/common/opponent.c index 7abc7867..34a930ff 100644 --- a/src/DETHRACE/common/opponent.c +++ b/src/DETHRACE/common/opponent.c @@ -1,10 +1,11 @@ #include "opponent.h" -#include "brender.h" +#include "brender/brender.h" #include "car.h" #include "errors.h" #include "globvars.h" #include "globvrkm.h" #include "globvrpb.h" +#include "harness/trace.h" #include "loading.h" #include "pd/sys.h" #include "utility.h" diff --git a/src/DETHRACE/common/opponent.h b/src/DETHRACE/common/opponent.h index ba5c0ddf..37bdd421 100644 --- a/src/DETHRACE/common/opponent.h +++ b/src/DETHRACE/common/opponent.h @@ -1,7 +1,7 @@ #ifndef _OPPONENT_H_ #define _OPPONENT_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern br_actor* gOppo_path_actor; diff --git a/src/DETHRACE/common/oppoproc.c b/src/DETHRACE/common/oppoproc.c index 08f56719..d98cd0e4 100644 --- a/src/DETHRACE/common/oppoproc.c +++ b/src/DETHRACE/common/oppoproc.c @@ -1,4 +1,5 @@ #include "oppoproc.h" +#include "harness/trace.h" #include // IDA: int __usercall StraightestArcForCorner2D@(br_vector2 *pCent@, br_scalar *pRadius@, br_scalar *pEntry_length@, int *pLeft_not_right@, br_vector2 *p1, br_vector2 *p2, br_vector2 *p3, br_scalar pWidth12, br_scalar pWidth23) diff --git a/src/DETHRACE/common/oppoproc.h b/src/DETHRACE/common/oppoproc.h index cd6183de..f36ee6a6 100644 --- a/src/DETHRACE/common/oppoproc.h +++ b/src/DETHRACE/common/oppoproc.h @@ -1,7 +1,7 @@ #ifndef _OPPOPROC_H_ #define _OPPOPROC_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" int StraightestArcForCorner2D(br_vector2* pCent, br_scalar* pRadius, br_scalar* pEntry_length, int* pLeft_not_right, br_vector2* p1, br_vector2* p2, br_vector2* p3, br_scalar pWidth12, br_scalar pWidth23); diff --git a/src/DETHRACE/common/options.c b/src/DETHRACE/common/options.c index b271477e..df637ef5 100644 --- a/src/DETHRACE/common/options.c +++ b/src/DETHRACE/common/options.c @@ -1,4 +1,5 @@ #include "options.h" +#include "harness/trace.h" #include int gKey_defns[18]; diff --git a/src/DETHRACE/common/options.h b/src/DETHRACE/common/options.h index 159df516..be103278 100644 --- a/src/DETHRACE/common/options.h +++ b/src/DETHRACE/common/options.h @@ -1,7 +1,7 @@ #ifndef _OPTIONS_H_ #define _OPTIONS_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gKey_defns[18]; diff --git a/src/DETHRACE/common/pedestrn.c b/src/DETHRACE/common/pedestrn.c index 2931d84b..e74ee4c4 100644 --- a/src/DETHRACE/common/pedestrn.c +++ b/src/DETHRACE/common/pedestrn.c @@ -1,9 +1,10 @@ #include "pedestrn.h" -#include "brender.h" +#include "brender/brender.h" #include "constants.h" #include "errors.h" #include "globvars.h" #include "graphics.h" +#include "harness/trace.h" #include "input.h" #include "loading.h" #include "pd/sys.h" diff --git a/src/DETHRACE/common/pedestrn.h b/src/DETHRACE/common/pedestrn.h index 38b7b1a6..67996c20 100644 --- a/src/DETHRACE/common/pedestrn.h +++ b/src/DETHRACE/common/pedestrn.h @@ -1,7 +1,7 @@ #ifndef _PEDESTRN_H_ #define _PEDESTRN_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gDetect_peds; diff --git a/src/DETHRACE/common/piping.c b/src/DETHRACE/common/piping.c index 5dc6d1b0..91a31d25 100644 --- a/src/DETHRACE/common/piping.c +++ b/src/DETHRACE/common/piping.c @@ -1,5 +1,6 @@ #include "piping.h" #include "globvars.h" +#include "harness/trace.h" #include "opponent.h" #include diff --git a/src/DETHRACE/common/piping.h b/src/DETHRACE/common/piping.h index c952ea14..9259bf03 100644 --- a/src/DETHRACE/common/piping.h +++ b/src/DETHRACE/common/piping.h @@ -1,7 +1,7 @@ #ifndef _PIPING_H_ #define _PIPING_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern tU8* gPipe_buffer_start; diff --git a/src/DETHRACE/common/powerup.c b/src/DETHRACE/common/powerup.c index 6615b8c8..f386c779 100644 --- a/src/DETHRACE/common/powerup.c +++ b/src/DETHRACE/common/powerup.c @@ -1,10 +1,12 @@ #include "powerup.h" -#include "brender.h" -#include "common/errors.h" -#include "common/globvars.h" -#include "common/loading.h" -#include "common/utility.h" +#include "brender/brender.h" +#include "errors.h" +#include "globvars.h" +#include "harness/trace.h" +#include "loading.h" +#include "utility.h" #include +#include tGot_proc* gGot_procs[34]; tLose_proc* gLose_procs[34]; diff --git a/src/DETHRACE/common/powerup.h b/src/DETHRACE/common/powerup.h index cd9fa7d3..95952682 100644 --- a/src/DETHRACE/common/powerup.h +++ b/src/DETHRACE/common/powerup.h @@ -1,7 +1,7 @@ #ifndef _POWERUP_H_ #define _POWERUP_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern tGot_proc* gGot_procs[34]; diff --git a/src/DETHRACE/common/pratcam.c b/src/DETHRACE/common/pratcam.c index 25142171..e29db19b 100644 --- a/src/DETHRACE/common/pratcam.c +++ b/src/DETHRACE/common/pratcam.c @@ -1,4 +1,5 @@ #include "pratcam.h" +#include "harness/trace.h" #include tS3_sound_tag gWhirr_noise; diff --git a/src/DETHRACE/common/pratcam.h b/src/DETHRACE/common/pratcam.h index c50ce643..9f279ea8 100644 --- a/src/DETHRACE/common/pratcam.h +++ b/src/DETHRACE/common/pratcam.h @@ -1,7 +1,7 @@ #ifndef _PRATCAM_H_ #define _PRATCAM_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern tS3_sound_tag gWhirr_noise; diff --git a/src/DETHRACE/common/racestrt.c b/src/DETHRACE/common/racestrt.c index 2757f661..eaa186a8 100644 --- a/src/DETHRACE/common/racestrt.c +++ b/src/DETHRACE/common/racestrt.c @@ -1,5 +1,5 @@ #include "racestrt.h" -#include "brender.h" +#include "brender/brender.h" #include "displays.h" #include "drmem.h" #include "errors.h" @@ -7,6 +7,7 @@ #include "globvars.h" #include "grafdata.h" #include "graphics.h" +#include "harness/trace.h" #include "input.h" #include "intrface.h" #include "loading.h" diff --git a/src/DETHRACE/common/racestrt.h b/src/DETHRACE/common/racestrt.h index e36d848a..9685eb5d 100644 --- a/src/DETHRACE/common/racestrt.h +++ b/src/DETHRACE/common/racestrt.h @@ -1,7 +1,7 @@ #ifndef _RACESTRT_H_ #define _RACESTRT_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gGrid_number_colour[4]; diff --git a/src/DETHRACE/common/racesumm.c b/src/DETHRACE/common/racesumm.c index 458a477e..ef099e41 100644 --- a/src/DETHRACE/common/racesumm.c +++ b/src/DETHRACE/common/racesumm.c @@ -1,4 +1,5 @@ #include "racesumm.h" +#include "harness/trace.h" #include int gPlayer_lookup[6]; diff --git a/src/DETHRACE/common/racesumm.h b/src/DETHRACE/common/racesumm.h index a6c5368e..21362790 100644 --- a/src/DETHRACE/common/racesumm.h +++ b/src/DETHRACE/common/racesumm.h @@ -1,7 +1,7 @@ #ifndef _RACESUMM_H_ #define _RACESUMM_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gPlayer_lookup[6]; diff --git a/src/DETHRACE/common/raycast.c b/src/DETHRACE/common/raycast.c index d40aa255..701c2014 100644 --- a/src/DETHRACE/common/raycast.c +++ b/src/DETHRACE/common/raycast.c @@ -1,6 +1,8 @@ #include "raycast.h" -#include "brender.h" +#include "brender/brender.h" #include "globvars.h" +#include "harness/trace.h" +#include #include br_matrix34 gPick_model_to_view__raycast; // suffix added to avoid duplicate symbol diff --git a/src/DETHRACE/common/raycast.h b/src/DETHRACE/common/raycast.h index 9ecceb48..07089f09 100644 --- a/src/DETHRACE/common/raycast.h +++ b/src/DETHRACE/common/raycast.h @@ -1,7 +1,7 @@ #ifndef _RAYCAST_H_ #define _RAYCAST_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern br_matrix34 gPick_model_to_view__raycast; // suffix added to avoid duplicate symbol diff --git a/src/DETHRACE/common/replay.c b/src/DETHRACE/common/replay.c index be777376..1de5b02e 100644 --- a/src/DETHRACE/common/replay.c +++ b/src/DETHRACE/common/replay.c @@ -1,4 +1,5 @@ #include "replay.h" +#include "harness/trace.h" #include #include "graphics.h" diff --git a/src/DETHRACE/common/replay.h b/src/DETHRACE/common/replay.h index c18373a0..fcc1910c 100644 --- a/src/DETHRACE/common/replay.h +++ b/src/DETHRACE/common/replay.h @@ -1,7 +1,7 @@ #ifndef _REPLAY_H_ #define _REPLAY_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern char* gReplay_pixie_names[10]; diff --git a/src/DETHRACE/common/skidmark.c b/src/DETHRACE/common/skidmark.c index afbb6eda..534027f0 100644 --- a/src/DETHRACE/common/skidmark.c +++ b/src/DETHRACE/common/skidmark.c @@ -1,9 +1,11 @@ #include "skidmark.h" -#include "brender.h" -#include "common/globvars.h" -#include "common/globvrbm.h" -#include "common/loading.h" +#include "brender/brender.h" +#include "globvars.h" +#include "globvrbm.h" +#include "harness/trace.h" +#include "loading.h" #include +#include char* gBoring_material_names[2] = { "OILSMEAR.MAT", "ROBSMEAR.MAT" }; char* gMaterial_names[2] = { "OILSMEAR.MAT", "GIBSMEAR.MAT" }; diff --git a/src/DETHRACE/common/skidmark.h b/src/DETHRACE/common/skidmark.h index 14a3c7e8..f4f2ca8c 100644 --- a/src/DETHRACE/common/skidmark.h +++ b/src/DETHRACE/common/skidmark.h @@ -1,7 +1,7 @@ #ifndef _SKIDMARK_H_ #define _SKIDMARK_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern char* gBoring_material_names[2]; diff --git a/src/DETHRACE/common/sound.c b/src/DETHRACE/common/sound.c index 6ef1b96c..cb8a3d23 100644 --- a/src/DETHRACE/common/sound.c +++ b/src/DETHRACE/common/sound.c @@ -4,6 +4,7 @@ #include #include "globvars.h" +#include "harness/trace.h" #include "piping.h" #include "s3/s3sound.h" #include "utility.h" diff --git a/src/DETHRACE/common/sound.h b/src/DETHRACE/common/sound.h index 159c53e2..cf340c6c 100644 --- a/src/DETHRACE/common/sound.h +++ b/src/DETHRACE/common/sound.h @@ -1,7 +1,7 @@ #ifndef _SOUND_H_ #define _SOUND_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gSound_detail_level; diff --git a/src/DETHRACE/common/spark.c b/src/DETHRACE/common/spark.c index cdebb85e..f0e95299 100644 --- a/src/DETHRACE/common/spark.c +++ b/src/DETHRACE/common/spark.c @@ -1,8 +1,9 @@ #include "spark.h" -#include "brender.h" +#include "brender/brender.h" #include "errors.h" #include "globvars.h" #include "graphics.h" +#include "harness/trace.h" #include "loading.h" #include "utility.h" #include "world.h" diff --git a/src/DETHRACE/common/spark.h b/src/DETHRACE/common/spark.h index 9c1f8db3..50c636fa 100644 --- a/src/DETHRACE/common/spark.h +++ b/src/DETHRACE/common/spark.h @@ -1,7 +1,7 @@ #ifndef _SPARK_H_ #define _SPARK_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gNext_spark; diff --git a/src/DETHRACE/common/structur.c b/src/DETHRACE/common/structur.c index 94ddf80b..a9fcc0d9 100644 --- a/src/DETHRACE/common/structur.c +++ b/src/DETHRACE/common/structur.c @@ -9,6 +9,7 @@ #include "globvrkm.h" #include "globvrpb.h" #include "graphics.h" +#include "harness/trace.h" #include "init.h" #include "loading.h" #include "loadsave.h" diff --git a/src/DETHRACE/common/structur.h b/src/DETHRACE/common/structur.h index 7ae3c871..1e95c79f 100644 --- a/src/DETHRACE/common/structur.h +++ b/src/DETHRACE/common/structur.h @@ -1,7 +1,7 @@ #ifndef _STRUCTUR_H_ #define _STRUCTUR_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gLast_wrong_checkpoint; diff --git a/src/DETHRACE/common/trig.c b/src/DETHRACE/common/trig.c index 7a741747..8d041388 100644 --- a/src/DETHRACE/common/trig.c +++ b/src/DETHRACE/common/trig.c @@ -1,5 +1,7 @@ #include "trig.h" -#include "brender.h" +#include "brender/brender.h" +#include "harness/trace.h" +#include #include float gFloat_sine_table[91] = { diff --git a/src/DETHRACE/common/trig.h b/src/DETHRACE/common/trig.h index 6cea9917..a6b470f8 100644 --- a/src/DETHRACE/common/trig.h +++ b/src/DETHRACE/common/trig.h @@ -1,7 +1,7 @@ #ifndef _TRIG_H_ #define _TRIG_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern float gFloat_sine_table[91]; diff --git a/src/DETHRACE/common/utility.c b/src/DETHRACE/common/utility.c index f1226cd9..042d2605 100644 --- a/src/DETHRACE/common/utility.c +++ b/src/DETHRACE/common/utility.c @@ -1,11 +1,13 @@ #include "utility.h" #include -#include "brender.h" +#include "brender/brender.h" #include "constants.h" #include "errors.h" #include "globvars.h" #include "globvrpb.h" +#include "harness/config.h" +#include "harness/trace.h" #include "input.h" #include "loading.h" #include "loadsave.h" @@ -50,6 +52,39 @@ int CheckQuit() { return 0; } +// Added to handle demo-specific text file decryption behavior +void EncodeLine_DEMO(char* pS) { + int len; + int seed; + int i; + char* key; + unsigned char c; + FILE* test; + tPath_name the_path; + const tU32 gLong_key_DEMO[] = { 0x763A5058, 0x6585B6CB, 0x75BCD15, 0x3ADE68B1 }; + + len = strlen(pS); + key = (char*)gLong_key_DEMO; + + while (len > 0 && (pS[len - 1] == '\r' || pS[len - 1] == '\n')) { + len--; + pS[len] = 0; + } + seed = len % 16; + for (i = 0; i < len; i++) { + c = pS[i]; + if (c == '\t') { + c = 0x9F; + } + c = ((key[seed] ^ (c - 32)) & 0x7F) + 32; + seed = (seed + 7) % 16; + if (c == 0x9F) { + c = '\t'; + } + pS[i] = c; + } +} + // IDA: void __usercall EncodeLine(char *pS@) void EncodeLine(char* pS) { int len; @@ -61,6 +96,12 @@ void EncodeLine(char* pS) { tPath_name the_path; char s[256]; + // Demo has its own decryption key + behavior + if (harness_game_info.mode == eGame_carmageddon_demo) { + EncodeLine_DEMO(pS); + return; + } + len = strlen(pS); key = (char*)gLong_key; if (!gEncryption_method) { diff --git a/src/DETHRACE/common/utility.h b/src/DETHRACE/common/utility.h index bb71b2a9..a5fa01c6 100644 --- a/src/DETHRACE/common/utility.h +++ b/src/DETHRACE/common/utility.h @@ -1,7 +1,7 @@ #ifndef _UTILITY_H_ #define _UTILITY_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gIn_check_quit; diff --git a/src/DETHRACE/common/world.c b/src/DETHRACE/common/world.c index e14cbf80..29bc5f47 100644 --- a/src/DETHRACE/common/world.c +++ b/src/DETHRACE/common/world.c @@ -1,7 +1,7 @@ #include "world.h" #include -#include "brender.h" +#include "brender/brender.h" #include "brucetrk.h" #include "car.h" #include "depth.h" @@ -12,7 +12,7 @@ #include "globvars.h" #include "globvrpb.h" #include "graphics.h" -#include "harness.h" +#include "harness/trace.h" #include "loading.h" #include "opponent.h" #include "pd/sys.h" diff --git a/src/DETHRACE/common/world.h b/src/DETHRACE/common/world.h index 127a903e..093061bb 100644 --- a/src/DETHRACE/common/world.h +++ b/src/DETHRACE/common/world.h @@ -1,7 +1,7 @@ #ifndef _WORLD_H_ #define _WORLD_H_ -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" extern int gFunkotronics_array_size; diff --git a/src/DETHRACE/constants.h b/src/DETHRACE/constants.h index 15e90aaa..5af049c7 100644 --- a/src/DETHRACE/constants.h +++ b/src/DETHRACE/constants.h @@ -292,7 +292,7 @@ typedef enum keymapcodes { #define TIME_CONV_THING 0.00050000002 -#define OPPONENT_COUNT 0 +#define OPPONENT_COUNT 3 #define WORLD_SCALE 6.9000001 diff --git a/src/DETHRACE/dr_types.h b/src/DETHRACE/dr_types.h index 0e31a362..68845ca8 100644 --- a/src/DETHRACE/dr_types.h +++ b/src/DETHRACE/dr_types.h @@ -1,9 +1,8 @@ #ifndef DR_TYPES_H #define DR_TYPES_H -#include "br_types.h" +#include "brender/br_types.h" #include "constants.h" -#include "harness.h" #include "s3/s3_types.h" #include #include diff --git a/src/DETHRACE/main.c b/src/DETHRACE/main.c index a726d9e9..98961bfd 100644 --- a/src/DETHRACE/main.c +++ b/src/DETHRACE/main.c @@ -1,6 +1,5 @@ -#include "harness.h" +#include "harness/hooks.h" #include "pd/sys.h" -#include "renderers/gl_renderer.h" #include #include @@ -25,7 +24,7 @@ int main(int argc, char* argv[]) { } #endif - Harness_Init(argv[0], &OpenGLRenderer); + Harness_Init(&argc, argv); return original_main(argc, argv); } diff --git a/src/DETHRACE/pc-dos/dosnet.c b/src/DETHRACE/pc-dos/dosnet.c index cd9cb5f5..66d2d564 100644 --- a/src/DETHRACE/pc-dos/dosnet.c +++ b/src/DETHRACE/pc-dos/dosnet.c @@ -1,6 +1,7 @@ #include "pd/net.h" -#include "common/errors.h" +#include "errors.h" +#include "harness/trace.h" #include #include diff --git a/src/DETHRACE/pc-dos/dossys.c b/src/DETHRACE/pc-dos/dossys.c index 62a1388e..e1da01bc 100644 --- a/src/DETHRACE/pc-dos/dossys.c +++ b/src/DETHRACE/pc-dos/dossys.c @@ -1,17 +1,18 @@ -#include "brender.h" -#include "common/car.h" -#include "common/errors.h" -#include "common/globvars.h" -#include "common/grafdata.h" -#include "common/graphics.h" -#include "common/loadsave.h" -#include "common/main.h" -#include "common/sound.h" -#include "common/utility.h" -#include "harness.h" -#include "harness_hooks.h" +#include "brender/brender.h" +#include "car.h" +#include "errors.h" +#include "globvars.h" +#include "grafdata.h" +#include "graphics.h" +#include "harness/config.h" +#include "harness/hooks.h" +#include "harness/trace.h" #include "input.h" +#include "loadsave.h" +#include "main.h" #include "pd/sys.h" +#include "sound.h" +#include "utility.h" #include "watcom_functions.h" #include #include @@ -107,7 +108,6 @@ void KeyTranslation(tU8 pKey_index, tU8 pScan_code_1, tU8 pScan_code_2) { // IDA: void __cdecl KeyBegin() void KeyBegin() { - Harness_Hook_KeyBegin(); // int v0; // edx@0 // int v1; // ST00_4@1 // __int16 v2; // dx@1 @@ -245,6 +245,8 @@ void PDSetKeyArray(int* pKeys, int pMark) { tS32 joyY; LOG_TRACE10("(%p, %d)", pKeys, pMark); + Harness_Hook_PDSetKeyArray(); + gKeys_pressed = 0; for (i = 0; i < 123; i++) { if (KeyDown(gScan_code[i][0]) || KeyDown(gScan_code[i][1])) { @@ -309,18 +311,22 @@ void PDInitialiseSystem() { //v4 = DOSMouseBegin(); gJoystick_deadzone = 8000; //gUpper_loop_limit = sub_A1940(v4, v5, v3, v6) / 2; - PathCat(the_path, gApplication_path, "KEYBOARD.COK"); - f = fopen(the_path, "rb"); - if (!f) { - PDFatalError("This .exe must have KEYBOARD.COK in the DATA folder."); - } - fseek(f, 0, SEEK_END); - len = ftell(f); - rewind(f); - fread(gASCII_table, len / 2, 1, f); - fread(gASCII_shift_table, len / 2, 1, f); - fclose(f); + // Demo does not ship with KEYBOARD.COK file + if (harness_game_info.mode != eGame_carmageddon_demo) { + PathCat(the_path, gApplication_path, "KEYBOARD.COK"); + f = fopen(the_path, "rb"); + if (!f) { + PDFatalError("This .exe must have KEYBOARD.COK in the DATA folder."); + } + + fseek(f, 0, SEEK_END); + len = ftell(f); + rewind(f); + fread(gASCII_table, len / 2, 1, f); + fread(gASCII_shift_table, len / 2, 1, f); + fclose(f); + } } // IDA: void __cdecl PDShutdownSystem() @@ -573,7 +579,7 @@ int PDGetTotalTime() { // IDA: int __usercall PDServiceSystem@(tU32 pTime_since_last_call@) int PDServiceSystem(tU32 pTime_since_last_call) { - Harness_Hook_PDServiceSystem(pTime_since_last_call); + Harness_Hook_PDServiceSystem(); return 0; } @@ -639,11 +645,6 @@ int original_main(int pArgc, char** pArgv) { float f; for (i = 1; i < pArgc; i++) { - - if (Harness_Hook_HandleCommandLineArg(pArgv[i])) { - continue; - } - if (strcasecmp(pArgv[i], "-hires") == 0) { gGraf_spec_index = 1; } else if (strcasecmp(pArgv[i], "-yon") == 0 && i < pArgc - 1) { diff --git a/src/DETHRACE/pd/net.h b/src/DETHRACE/pd/net.h index 7a9cfe43..9b7706eb 100644 --- a/src/DETHRACE/pd/net.h +++ b/src/DETHRACE/pd/net.h @@ -7,7 +7,7 @@ // we know of at least `pc-dos/dossys.c`, `pc-dos/dosnet.c`, `Win95sys.c`. // Functions contained within these files are prefixed with `PD` - we assume that is short for something like `Platform Dependant`. -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" // void ClearupPDNetworkStuff(); diff --git a/src/DETHRACE/pd/sys.h b/src/DETHRACE/pd/sys.h index 388fb964..db85d71e 100644 --- a/src/DETHRACE/pd/sys.h +++ b/src/DETHRACE/pd/sys.h @@ -7,7 +7,7 @@ // we know of at least `pc-dos/dossys.c`, `pc-dos/dosnet.c`, `Win95sys.c`. // Functions contained within these files are prefixed with `PD` - we assume that is short for something like `Platform Dependant`. -#include "br_types.h" +#include "brender/br_types.h" #include "dr_types.h" #include diff --git a/src/harness/CMakeLists.txt b/src/harness/CMakeLists.txt index ed665561..0bf77cd1 100644 --- a/src/harness/CMakeLists.txt +++ b/src/harness/CMakeLists.txt @@ -1,13 +1,15 @@ -add_library(harness OBJECT) +add_library(harness STATIC) -target_include_directories(harness PRIVATE - . - ${CMAKE_SOURCE_DIR}/src/BRSRC13 - ${CMAKE_SOURCE_DIR}/src/DETHRACE - ${CMAKE_SOURCE_DIR}/src/S3/include +target_include_directories(harness + PRIVATE + . + ${CMAKE_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/src/DETHRACE + PUBLIC + include ) -target_link_libraries(harness PRIVATE miniposix SDL2::SDL2 glad cglm_headers) +target_link_libraries(harness PRIVATE miniposix brender SDL2::SDL2 glad s3 cglm_headers) if(NOT MSVC) target_compile_options(harness PRIVATE @@ -22,24 +24,26 @@ else() endif() target_sources(harness PRIVATE + include/harness/hooks.h + include/harness/trace.h + include/harness/config.h + cameras/debug_camera.c cameras/debug_camera.h - harness_hooks.h harness_trace.c - harness_trace.h harness.c harness.h - input/keyboard.c - input/keyboard.h - renderers/gl_renderer.c - renderers/gl_renderer.h - renderers/gl_renderer_shaders.c - renderers/gl_renderer_shaders.h - rendering/renderer_state.c - rendering/renderer_state.h - renderers/null_renderer.c - renderers/null_renderer.h + sdl/gl_renderer.c + sdl/gl_renderer.h + sdl/gl_renderer_shaders.c + sdl/gl_renderer_shaders.h + brender_emu/renderer_impl.c + brender_emu/renderer_impl.h sound/sound.c sound/sound.h + sdl/common.c + sdl/common.h + platforms/sdl_gl.h + platforms/null.h stack_trace_handler.h ) \ No newline at end of file diff --git a/src/harness/rendering/renderer_state.c b/src/harness/brender_emu/renderer_impl.c similarity index 93% rename from src/harness/rendering/renderer_state.c rename to src/harness/brender_emu/renderer_impl.c index 0ffaabbf..528214ac 100644 --- a/src/harness/rendering/renderer_state.c +++ b/src/harness/brender_emu/renderer_impl.c @@ -1,7 +1,9 @@ -#include "renderer_state.h" -#include "harness_trace.h" +#include "renderer_impl.h" +#include "include/harness/trace.h" #include +// Provides a harness-specific implementation of the Brender br_renderer* interface + extern void* BrResAllocate(void* vparent, br_size_t size, br_uint_8 res_class); extern void BrMatrix34Mul(br_matrix34* A, br_matrix34* B, br_matrix34* C); @@ -77,7 +79,7 @@ br_error stateDefault(struct br_renderer* r, br_uint_32 mask) { return StateCopy(&self->state, self->default_state, mask, self); } -harness_br_renderer* NewRendererState() { +harness_br_renderer* NewHarnessBrRenderer() { harness_br_renderer* self; diff --git a/src/harness/rendering/renderer_state.h b/src/harness/brender_emu/renderer_impl.h similarity index 91% rename from src/harness/rendering/renderer_state.h rename to src/harness/brender_emu/renderer_impl.h index 31c42459..d80d794a 100644 --- a/src/harness/rendering/renderer_state.h +++ b/src/harness/brender_emu/renderer_impl.h @@ -1,7 +1,7 @@ #ifndef HARNESS_BRENDER_RENDERER_DISPATCH #define HARNESS_BRENDER_RENDERER_DISPATCH -#include "br_types.h" +#include "brender/br_types.h" #define MAX_STATE_STACK 32 @@ -38,6 +38,6 @@ typedef struct harness_br_renderer { } harness_br_renderer; -harness_br_renderer* NewRendererState(); +harness_br_renderer* NewHarnessBrRenderer(); #endif \ No newline at end of file diff --git a/src/harness/harness.c b/src/harness/harness.c index ebb9d052..16c6076d 100644 --- a/src/harness/harness.c +++ b/src/harness/harness.c @@ -1,17 +1,17 @@ #include "harness.h" -#include "harness_hooks.h" -#include "harness_trace.h" -#include "input/keyboard.h" -#include "rendering/renderer_state.h" +#include "brender_emu/renderer_impl.h" +#include "include/harness/config.h" +#include "platforms/null.h" +#include "platforms/sdl_gl.h" #include "sound/sound.h" #include "stack_trace_handler.h" + #include #include #include -SDL_Window* window; -tRenderer* current_renderer; +tPlatform* platform; br_pixelmap* palette; uint32_t* screen_buffer; harness_br_renderer* renderer_state; @@ -25,30 +25,41 @@ int harness_disable_cd_check = 1; int back_screen_is_transparent = 0; extern void BrPixelmapFill(br_pixelmap* dst, br_uint_32 colour); +extern uint8_t gScan_code[123][2]; // SplatPack or Carmageddon. This is where we represent the code differences between the two. For example, the intro smack file. -tHarness_GameMode harness_game_mode; +tHarness_game_info harness_game_info; + +int Harness_ProcessCommandLine(int* argc, char* argv[]); void Harness_DetectGameMode() { - if (access("DATA/CUTSCENE/SPLINTRO.SMK", F_OK) != -1) { - harness_game_mode.name = "Splat Pack"; - harness_game_mode.intro_smk_file = "SPLINTRO.SMK"; + if (access("DATA/RACES/CITY01.TXT", F_OK) == -1 && access("DATA/RACES/CITYA1.TXT", F_OK) == -1) { + harness_game_info.intro_smk_file = ""; + harness_game_info.mode = eGame_carmageddon_demo; + LOG_INFO("\"%s\"", "Carmageddon demo"); + } else if (access("DATA/CUTSCENE/SPLINTRO.SMK", F_OK) != -1) { + harness_game_info.intro_smk_file = "SPLINTRO.SMK"; + LOG_INFO("\"%s\"", "Splat Pack"); } else { - harness_game_mode.name = "Carmageddon"; - harness_game_mode.intro_smk_file = "MIX_INTR.SMK"; + harness_game_info.intro_smk_file = "MIX_INTR.SMK"; + LOG_INFO("\"%s\"", "Carmageddon"); } - LOG_INFO("\"%s\"", harness_game_mode.name); } -void Harness_Init(char* name, tRenderer* renderer) { +void Harness_Init(int* argc, char* argv[]) { int result; - install_signal_handler(name); - current_renderer = renderer; - screen_buffer = NULL; + Harness_ProcessCommandLine(argc, argv); - if (SDL_Init(SDL_INIT_TIMER) != 0) { - LOG_PANIC("SDL_INIT_TIMER error: %s", SDL_GetError()); + install_signal_handler(argv[0]); + platform->Init(); + + int* keymap = platform->GetKeyMap(); + if (keymap != NULL) { + for (int i = 0; i < 123; i++) { + gScan_code[i][0] = keymap[i]; + //gScan_code[i][1] = keymap[i]; + } } char* root_dir = getenv("DETHRACE_ROOT_DIR"); @@ -61,8 +72,9 @@ void Harness_Init(char* name, tRenderer* renderer) { LOG_PANIC("Failed to chdir. Error is %s", strerror(errno)); } } - - Harness_DetectGameMode(); + if (harness_game_info.mode == eGame_none) { + Harness_DetectGameMode(); + } } void Harness_Debug_PrintStack() { @@ -72,58 +84,54 @@ void Harness_Debug_PrintStack() { } void Harness_PumpEvents() { - SDL_Event event; - - while (SDL_PollEvent(&event)) { - switch (event.type) { - - case SDL_KEYDOWN: - case SDL_KEYUP: - Keyboard_HandleEvent(&event.key); - break; - - case SDL_QUIT: - LOG_PANIC("QuitGame"); - break; - } - } + platform->PollEvents(); } -int Harness_Hook_HandleCommandLineArg(char* arg) { - if (strcasecmp(arg, "-cdcheck") == 0) { - harness_disable_cd_check = 0; - return 1; - } else if (strstr(arg, "-debug=") != NULL) { - char* s = strstr(arg, "="); - harness_debug_level = atoi(s + 1); - LOG_INFO("debug level set to %d", harness_debug_level); - return 1; +int Harness_ProcessCommandLine(int* argc, char* argv[]) { + char* platform_name = NULL; + + for (int i = 1; i < *argc; i++) { + int handled = 0; + + if (strcasecmp(argv[i], "-cdcheck") == 0) { + harness_disable_cd_check = 0; + handled = 1; + } else if (strstr(argv[i], "-debug") != NULL) { + char* s = strstr(argv[i], "="); + harness_debug_level = atoi(s + 1); + LOG_INFO("debug level set to %d", harness_debug_level); + handled = 1; + } else if (strstr(argv[i], "-platform") != NULL) { + platform_name = strstr(argv[i], "=") + 1; + LOG_INFO("Platform set to: %s", platform_name); + handled = 1; + } + + if (handled) { + // shift args downwards + for (int j = i; j < *argc - 1; j++) { + argv[j] = argv[j + 1]; + } + (*argc)--; + } + } + + if (platform_name == NULL) { + platform_name = "sdl_gl"; + } + + if (strcmp(platform_name, "sdl_gl") == 0) { + platform = &sdl_gl_platform; + } else if (strcmp(platform_name, "null") == 0) { + platform = &null_platform; + } else { + LOG_PANIC("Invalid platform: %s", platform_name); } return 0; } void Harness_Hook_DOSGfxBegin() { - if (SDL_Init(SDL_INIT_VIDEO) != 0) { - LOG_PANIC("SDL_INIT_VIDEO error: %s", SDL_GetError()); - } - - window = SDL_CreateWindow("Dethrace", - SDL_WINDOWPOS_CENTERED, - SDL_WINDOWPOS_CENTERED, - 680, 480, - current_renderer->get_window_flags()); - - if (!window) { - LOG_PANIC("Failed to create window"); - } - current_renderer->init(window); - - //SDL_SetWindowGrab(window, SDL_TRUE); - SDL_SetRelativeMouseMode(SDL_TRUE); -} - -void Harness_Hook_PDServiceSystem(int pTime_since_last_call) { - Harness_PumpEvents(); + platform->NewWindow("Dethrace", 640, 400); } void Harness_RenderScreen(br_pixelmap* dst, br_pixelmap* src) { @@ -144,7 +152,8 @@ void Harness_RenderScreen(br_pixelmap* dst, br_pixelmap* src) { screen_buffer[y * src->width + x] = colors[palette_index]; } } - current_renderer->renderScreenBuffer(screen_buffer, back_screen_is_transparent); + + platform->RenderFullScreenQuad(screen_buffer, back_screen_is_transparent); Harness_PumpEvents(); last_dst = dst; @@ -153,14 +162,14 @@ void Harness_RenderScreen(br_pixelmap* dst, br_pixelmap* src) { void Harness_Hook_BrPixelmapDoubleBuffer(br_pixelmap* dst, br_pixelmap* src) { Harness_RenderScreen(dst, src); - current_renderer->swap(window); + platform->Swap(); back_screen_is_transparent = 0; } void Harness_Hook_BrDevPaletteSetOld(br_pixelmap* pm) { palette = pm; if (last_src) { Harness_RenderScreen(last_dst, last_src); - current_renderer->swap(window); + platform->Swap(); } } @@ -172,14 +181,14 @@ void Harness_Hook_BrDevPaletteSetEntryOld(int i, br_colour colour) { } void Harness_Hook_BrV1dbRendererBegin(br_v1db_state* v1db) { - renderer_state = NewRendererState(); + renderer_state = NewHarnessBrRenderer(); v1db->renderer = (br_renderer*)renderer_state; } int col = 128; void Harness_Hook_renderFaces(br_model* model, br_material* material, br_token type) { - current_renderer->renderModel(model, renderer_state->state.matrix.model_to_view); + platform->RenderModel(model, renderer_state->state.matrix.model_to_view); } void Harness_Hook_BrZbSceneRenderBegin(br_actor* world, br_actor* camera, br_pixelmap* colour_buffer, br_pixelmap* depth_buffer) { @@ -189,7 +198,8 @@ void Harness_Hook_BrZbSceneRenderBegin(br_actor* world, br_actor* camera, br_pix BrPixelmapFill(colour_buffer, 0); back_screen_is_transparent = 1; - current_renderer->renderFrameBegin(camera); + //current_renderer->setViewport(colour_buffer->base_x * 2, colour_buffer->base_y * 2, colour_buffer->width * 2, colour_buffer->height * 2); + platform->BeginFrame(camera, colour_buffer); col = 0; } @@ -197,14 +207,18 @@ void Harness_Hook_BrZbSceneRenderAdd(br_actor* tree) { } void Harness_Hook_BrZbSceneRenderEnd() { -} - -void Harness_Hook_KeyBegin() { - Keyboard_Init(); + platform->EndFrame(); } int Harness_Hook_KeyDown(unsigned char pScan_code) { - return Keyboard_IsKeyDown(pScan_code); + return platform->IsKeyDown(pScan_code); +} + +void Harness_Hook_PDServiceSystem() { + platform->PollEvents(); +} +void Harness_Hook_PDSetKeyArray() { + platform->PollEvents(); } void Harness_Hook_S3Service(int unk1, int unk2) { diff --git a/src/harness/harness.h b/src/harness/harness.h index 92a4e45c..50b19c20 100644 --- a/src/harness/harness.h +++ b/src/harness/harness.h @@ -1,20 +1,22 @@ #ifndef HARNESS_H #define HARNESS_H -#include "br_types.h" -#include "harness_trace.h" -#include +#include "brender/br_types.h" +#include "harness/trace.h" -typedef struct tRenderer { - int (*get_window_flags)(); - void (*init)(SDL_Window* window); - void (*renderFrameBegin)(br_actor* camera); - void (*renderFrameEnd)(); - void (*renderScreenBuffer)(uint32_t* src, int transparent); - void (*swap)(SDL_Window* window); - void (*renderModel)(br_model* model, br_matrix34 model_matrix); - void (*renderCube)(float color, float x, float y, float z); -} tRenderer; +typedef struct tPlatform { + void (*Init)(); + void (*NewWindow)(char* title, int width, int height); + void (*PollEvents)(); + int* (*GetKeyMap)(); + int (*IsKeyDown)(unsigned char pScan_code); + void (*BeginFrame)(br_actor* camera, br_pixelmap* colour_buffer); + void (*EndFrame)(); + void (*RenderFullScreenQuad)(uint32_t* src, int transparent); + void (*RenderModel)(br_model* model, br_matrix34 model_matrix); + void (*Swap)(); + +} tPlatform; typedef struct tCamera { void (*update)(); @@ -23,16 +25,4 @@ typedef struct tCamera { void (*setPosition)(); } tCamera; -typedef struct tHarness_GameMode { - char* name; - char* intro_smk_file; -} tHarness_GameMode; - -extern tHarness_GameMode harness_game_mode; -extern int harness_disable_cd_check; - -void Harness_Init(char* name, tRenderer* renderer); - -void Harness_Debug_PrintStack(); - #endif \ No newline at end of file diff --git a/src/harness/harness_trace.c b/src/harness/harness_trace.c index 1fd9e57b..cc1c940e 100644 --- a/src/harness/harness_trace.c +++ b/src/harness/harness_trace.c @@ -1,4 +1,4 @@ -#include "harness_trace.h" +#include "harness/trace.h" #include #include diff --git a/src/harness/include/harness/config.h b/src/harness/include/harness/config.h new file mode 100644 index 00000000..0d514906 --- /dev/null +++ b/src/harness/include/harness/config.h @@ -0,0 +1,19 @@ +#ifndef HARNESS_CONFIG_H +#define HARNESS_CONFIG_H + +typedef enum tHarness_game_type { + eGame_none, + eGame_carmageddon, + eGame_splatpack, + eGame_carmageddon_demo +} tHarness_game_type; + +typedef struct tHarness_game_info { + tHarness_game_type mode; + char* intro_smk_file; +} tHarness_game_info; + +extern tHarness_game_info harness_game_info; +extern int harness_disable_cd_check; + +#endif \ No newline at end of file diff --git a/src/harness/harness_hooks.h b/src/harness/include/harness/hooks.h similarity index 81% rename from src/harness/harness_hooks.h rename to src/harness/include/harness/hooks.h index dae80940..8b068a28 100644 --- a/src/harness/harness_hooks.h +++ b/src/harness/include/harness/hooks.h @@ -1,10 +1,17 @@ #ifndef HARNESS_HOOKS_H #define HARNESS_HOOKS_H -#include "br_types.h" +#include "brender/br_types.h" // Hooks are called from original game code. -int Harness_Hook_HandleCommandLineArg(char* arg); + +// Dethrace hooks +void Harness_Init(int* argc, char* argv[]); +int Harness_Hook_KeyDown(unsigned char pScan_code); +void Harness_Hook_PDServiceSystem(); +void Harness_Hook_PDSetKeyArray(); + +// BRender hooks void Harness_Hook_DOSGfxBegin(); void Harness_Hook_BrDevPaletteSetOld(br_pixelmap* pm); void Harness_Hook_BrDevPaletteSetEntryOld(int i, br_colour colour); @@ -12,15 +19,9 @@ void Harness_Hook_BrPixelmapDoubleBuffer(br_pixelmap* dst, br_pixelmap* src); void Harness_Hook_BrV1dbRendererBegin(); void Harness_Hook_BrZbSceneRenderBegin(br_actor* world, br_actor* camera, br_pixelmap* colour_buffer, br_pixelmap* depth_buffer); void Harness_Hook_BrZbSceneRenderAdd(br_actor* tree); - void Harness_Hook_renderFaces(br_model* model, br_material* material, br_token type); void Harness_Hook_BrZbSceneRenderEnd(); -void Harness_Hook_KeyBegin(); -int Harness_Hook_KeyDown(unsigned char pScan_code); - -void Harness_Hook_PDServiceSystem(int pTime_since_last_call); - // Sound hooks void Harness_Hook_S3Service(int unk1, int unk2); void Harness_Hook_S3StopAllOutletSounds(); diff --git a/src/harness/harness_trace.h b/src/harness/include/harness/trace.h similarity index 94% rename from src/harness/harness_trace.h rename to src/harness/include/harness/trace.h index cb75976e..51c3269e 100644 --- a/src/harness/harness_trace.h +++ b/src/harness/include/harness/trace.h @@ -1,7 +1,7 @@ -#ifndef DEBUG_H -#define DEBUG_H +#ifndef HARNESS_TRACE_H +#define HARNESS_TRACE_H -#include "br_types.h" +#include "brender/br_types.h" #include #include @@ -11,6 +11,8 @@ extern int harness_debug_level; +void Harness_Debug_PrintStack(); + void debug_printf(const char* fmt, const char* fn, const char* fmt2, ...); void debug_print_vector3(const char* fmt, const char* fn, char* msg, br_vector3* v); void debug_print_matrix34(const char* fmt, const char* fn, char* name, br_matrix34* m); @@ -47,7 +49,6 @@ void debug_print_matrix34(const char* fmt, const char* fn, char* name, br_matrix #define NOT_IMPLEMENTED() \ debug_printf("\033[0;31m[PANIC] %s ", __FUNCTION__, "%s", "not implemented"); \ - sleep(2); \ exit(1); #define TELL_ME_IF_WE_PASS_THIS_WAY() \ diff --git a/src/harness/input/keyboard.h b/src/harness/input/keyboard.h deleted file mode 100644 index cad04458..00000000 --- a/src/harness/input/keyboard.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef HARNESS_KEYBOARD_H -#define HARNESS_KEYBOARD_H - -#include - -void Keyboard_Init(); -void Keyboard_HandleEvent(SDL_KeyboardEvent* key); -int Keyboard_IsKeyDown(unsigned char scan_code); - -#endif \ No newline at end of file diff --git a/src/harness/platforms/null.h b/src/harness/platforms/null.h new file mode 100644 index 00000000..fe5dfebf --- /dev/null +++ b/src/harness/platforms/null.h @@ -0,0 +1,25 @@ +#include "harness.h" + +void Null_Init() {} +void Null_CreateWindow(char* title, int width, int height) {} +void Null_PollEvents() {} +int* Null_GetKeyMap() { return NULL; } +int Null_IsKeyDown(unsigned char pScan_code) { return 0; } +void Null_BeginFrame(br_actor* camera, br_pixelmap* colour_buffer) {} +void Null_EndFrame() {} +void Null_RenderFullScreenQuad(uint32_t* src, int transparent) {} +void Null_RenderModel(br_model* model, br_matrix34 model_matrix) {} +void Null_Swap() {} + +tPlatform null_platform = { + Null_Init, + Null_CreateWindow, + Null_PollEvents, + Null_GetKeyMap, + Null_IsKeyDown, + Null_BeginFrame, + Null_EndFrame, + Null_RenderFullScreenQuad, + Null_RenderModel, + Null_Swap +}; \ No newline at end of file diff --git a/src/harness/platforms/sdl_gl.h b/src/harness/platforms/sdl_gl.h new file mode 100644 index 00000000..46c3de0a --- /dev/null +++ b/src/harness/platforms/sdl_gl.h @@ -0,0 +1,21 @@ +#ifndef SDL_GL_PLATFORM_H +#define SDL_GL_PLATFORM_H + +#include "harness.h" +#include "sdl/common.h" +#include "sdl/gl_renderer.h" + +tPlatform sdl_gl_platform = { + SDLPlatform_Init, + GLRenderer_CreateWindow, + SDLPlatform_PollEvents, + SDLPlatform_GetKeyMap, + SDLPlatform_IsKeyDown, + GLRenderer_BeginFrame, + GLRenderer_EndFrame, + GLRenderer_RenderFullScreenQuad, + GLRenderer_RenderModel, + GLRenderer_Swap +}; + +#endif \ No newline at end of file diff --git a/src/harness/renderers/gl_renderer.h b/src/harness/renderers/gl_renderer.h deleted file mode 100644 index c4eb1b72..00000000 --- a/src/harness/renderers/gl_renderer.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef HARNESS_GL_RENDERER -#define HARNESS_GL_RENDERER - -#include "harness.h" -#include - -extern tRenderer OpenGLRenderer; - -#endif \ No newline at end of file diff --git a/src/harness/renderers/null_renderer.c b/src/harness/renderers/null_renderer.c deleted file mode 100644 index 4b0dfdf6..00000000 --- a/src/harness/renderers/null_renderer.c +++ /dev/null @@ -1,26 +0,0 @@ -#include "null_renderer.h" - -int Harness_NullRenderer_GetWindowFlags() { - return 0; -} -void Harness_NullRenderer_Init(SDL_Window* window) {} -void Harness_NullRenderer_Activate(SDL_Window* window) {} -void Harness_NullRenderer_RenderScreenBuffer(uint32_t* src, int transparent) {} -void Harness_NullRenderer_Swap(SDL_Window* window) {} - -void Harness_NullRenderer_RenderFrameBegin() { -} - -void Harness_NullRenderer_RenderFrameEnd() { -} - -tRenderer NullRenderer = { - Harness_NullRenderer_GetWindowFlags, - Harness_NullRenderer_Init, - Harness_NullRenderer_RenderFrameBegin, - Harness_NullRenderer_RenderFrameEnd, - Harness_NullRenderer_RenderScreenBuffer, - Harness_NullRenderer_Swap, - NULL, - NULL -}; \ No newline at end of file diff --git a/src/harness/renderers/null_renderer.h b/src/harness/renderers/null_renderer.h deleted file mode 100644 index 57e40911..00000000 --- a/src/harness/renderers/null_renderer.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef HARNESS_NULL_RENDERER -#define HARNESS_NULL_RENDERER - -#include "harness.h" - -extern tRenderer NullRenderer; - -#endif \ No newline at end of file diff --git a/src/harness/input/keyboard.c b/src/harness/sdl/common.c similarity index 70% rename from src/harness/input/keyboard.c rename to src/harness/sdl/common.c index 15ea1f75..f780d583 100644 --- a/src/harness/input/keyboard.c +++ b/src/harness/sdl/common.c @@ -1,10 +1,5 @@ -#include "keyboard.h" -#include "dr_types.h" -#include "harness_trace.h" - -extern tU8 gScan_code[123][2]; - -uint8_t sdl_key_state[256]; +#include "common.h" +#include // Errol's keymap int keymap[123] = { @@ -117,27 +112,46 @@ int keymap[123] = { SDL_SCANCODE_SPACE }; -void Keyboard_Init() { - int i; - for (i = 0; i < 123; i++) { - gScan_code[i][0] = keymap[i]; - //gScan_code[i][1] = keymap[i]; +uint8_t sdl_key_state[256]; + +void SDLPlatform_Init() { + if (SDL_Init(SDL_INIT_TIMER) != 0) { + LOG_PANIC("SDL_INIT_TIMER error: %s", SDL_GetError()); } } -int Keyboard_IsKeyDown(unsigned char scan_code) { +void SDLPlatform_PollEvents() { + SDL_Event event; + + while (SDL_PollEvent(&event)) { + switch (event.type) { + + case SDL_KEYDOWN: + case SDL_KEYUP: + if (event.key.keysym.scancode < 0 || event.key.keysym.scancode > 122) { + LOG_WARN("unexpected scan code %d", event.key.keysym.scancode); + return; + } + if (event.key.type == SDL_KEYDOWN) { + sdl_key_state[event.key.keysym.scancode] = 1; + //LOG_DEBUG("key %d", key->keysym.scancode); + } else { + sdl_key_state[event.key.keysym.scancode] = 0; + } + + break; + + case SDL_QUIT: + LOG_PANIC("QuitGame"); + break; + } + } +} + +int* SDLPlatform_GetKeyMap() { + return (int*)keymap; +} + +int SDLPlatform_IsKeyDown(unsigned char scan_code) { return sdl_key_state[scan_code]; } - -void Keyboard_HandleEvent(SDL_KeyboardEvent* key) { - if (key->keysym.scancode < 0 || key->keysym.scancode > 122) { - LOG_WARN("unexpected scan code %d", key->keysym.scancode); - return; - } - if (key->type == SDL_KEYDOWN) { - sdl_key_state[key->keysym.scancode] = 1; - //LOG_DEBUG("key %d", key->keysym.scancode); - } else { - sdl_key_state[key->keysym.scancode] = 0; - } -} diff --git a/src/harness/sdl/common.h b/src/harness/sdl/common.h new file mode 100644 index 00000000..493310a2 --- /dev/null +++ b/src/harness/sdl/common.h @@ -0,0 +1,11 @@ +#ifndef SDL_PLATFORM_H +#define SDL_PLATFORM_H + +#include "harness.h" + +void SDLPlatform_Init(); +void SDLPlatform_PollEvents(); +int* SDLPlatform_GetKeyMap(); +int SDLPlatform_IsKeyDown(unsigned char scan_code); + +#endif \ No newline at end of file diff --git a/src/harness/renderers/gl_renderer.c b/src/harness/sdl/gl_renderer.c similarity index 89% rename from src/harness/renderers/gl_renderer.c rename to src/harness/sdl/gl_renderer.c index bd8c8e74..35d5feef 100644 --- a/src/harness/renderers/gl_renderer.c +++ b/src/harness/sdl/gl_renderer.c @@ -1,8 +1,8 @@ #include "gl_renderer.h" -#include "brender.h" +#include "brender/brender.h" #include "cameras/debug_camera.h" #include "gl_renderer_shaders.h" -#include "harness_trace.h" +#include "harness/trace.h" #include #include @@ -10,31 +10,11 @@ // this needs to be included after glad.h #include -int Harness_GLRenderer_GetWindowFlags(); -void Harness_GLRenderer_Init(SDL_Window* window); -void Harness_GLRenderer_Activate(SDL_Window* window); -void Harness_GLRenderer_RenderFrameBegin(br_actor* camera); -void Harness_GLRenderer_RenderFrameEnd(); -void Harness_GLRenderer_RenderScreenBuffer(uint32_t* screen_buffer, int transparent); -void Harness_GLRenderer_Swap(SDL_Window* window); -void Harness_GLRenderer_RenderModel(br_model* model, br_matrix34 model_matrix); -void Harness_GLRenderer_RenderCube(float col, float x, float y, float z); - -tRenderer OpenGLRenderer = { - Harness_GLRenderer_GetWindowFlags, - Harness_GLRenderer_Init, - Harness_GLRenderer_RenderFrameBegin, - Harness_GLRenderer_RenderFrameEnd, - Harness_GLRenderer_RenderScreenBuffer, - Harness_GLRenderer_Swap, - Harness_GLRenderer_RenderModel, - Harness_GLRenderer_RenderCube -}; - typedef struct tStored_model_context { GLuint vao_id, ebo_id; } tStored_model_context; +SDL_Window* window; SDL_GLContext context; GLuint screen_buffer_vao, screen_buffer_ebo; GLuint screen_texture; @@ -42,14 +22,7 @@ GLuint shader_program_2d; GLuint shader_program_2d_trans; GLuint shader_program_3d; -int Harness_GLRenderer_GetWindowFlags() { - if (SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE) != 0) { - LOG_PANIC("Failed to set SDL_GL_CONTEXT_PROFILE_MASK attribute. %s", SDL_GetError()); - }; - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2); - return SDL_WINDOW_OPENGL; -} +int window_width, window_height; void CompileShader(GLuint shader_id, const GLchar* source) { int success; @@ -99,7 +72,31 @@ void LoadShaders() { glDeleteShader(fs); } -void Harness_GLRenderer_Init(SDL_Window* window) { +void GLRenderer_CreateWindow(char* title, int width, int height) { + window_width = width; + window_height = height; + + if (SDL_Init(SDL_INIT_VIDEO) != 0) { + LOG_PANIC("SDL_INIT_VIDEO error: %s", SDL_GetError()); + } + + if (SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE) != 0) { + LOG_PANIC("Failed to set SDL_GL_CONTEXT_PROFILE_MASK attribute. %s", SDL_GetError()); + }; + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2); + + window = SDL_CreateWindow(title, + SDL_WINDOWPOS_CENTERED, + SDL_WINDOWPOS_CENTERED, + width, height, + SDL_WINDOW_OPENGL); + + if (!window) { + LOG_PANIC("Failed to create window"); + } + SDL_SetRelativeMouseMode(SDL_TRUE); + context = SDL_GL_CreateContext(window); if (!context) { LOG_PANIC("Failed to call SDL_GL_CreateContext. %s", SDL_GetError()); @@ -161,7 +158,9 @@ void Harness_GLRenderer_Init(SDL_Window* window) { glDepthFunc(GL_LESS); } -void Harness_GLRenderer_RenderFrameBegin(br_actor* camera) { +void GLRenderer_BeginFrame(br_actor* camera, br_pixelmap* colour_buffer) { + + glViewport(colour_buffer->base_x * 2, colour_buffer->base_y * 2, colour_buffer->width * 2, colour_buffer->height * 2); glEnable(GL_DEPTH_TEST); glUseProgram(shader_program_3d); @@ -203,10 +202,11 @@ void Harness_GLRenderer_RenderFrameBegin(br_actor* camera) { DebugCamera_Update(); } -void Harness_GLRenderer_RenderFrameEnd() { +void GLRenderer_EndFrame() { + glViewport(0, 0, window_width, window_height); } -void Harness_GLRenderer_RenderScreenBuffer(uint32_t* screen_buffer, int transparent) { +void GLRenderer_RenderFullScreenQuad(uint32_t* screen_buffer, int transparent) { glDisable(GL_DEPTH_TEST); glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); @@ -228,7 +228,7 @@ void Harness_GLRenderer_RenderScreenBuffer(uint32_t* screen_buffer, int transpar glBindVertexArray(0); } -void Harness_GLRenderer_Swap(SDL_Window* window) { +void GLRenderer_Swap() { SDL_GL_SwapWindow(window); // glClearColor(0.0f, 0.5f, 0.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); @@ -327,7 +327,7 @@ void build_model(br_model* model) { model->stored = ctx; } -void Harness_GLRenderer_RenderModel(br_model* model, br_matrix34 model_matrix) { +void GLRenderer_RenderModel(br_model* model, br_matrix34 model_matrix) { tStored_model_context* ctx; ctx = model->stored; v11model* v11 = model->prepared; @@ -340,7 +340,7 @@ void Harness_GLRenderer_RenderModel(br_model* model, br_matrix34 model_matrix) { if (ctx == NULL) { build_model(model); ctx = model->stored; - DebugCamera_SetPosition(model_matrix.m[3][0], model_matrix.m[3][1], model_matrix.m[3][2]); + //DebugCamera_SetPosition(model_matrix.m[3][0], model_matrix.m[3][1], model_matrix.m[3][2]); } glEnable(GL_DEPTH_TEST); @@ -380,6 +380,9 @@ void Harness_GLRenderer_RenderModel(br_model* model, br_matrix34 model_matrix) { glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); } +void Harness_GLRenderer_SetViewport(int x, int y, int width, int height) { +} + void Harness_GLRenderer_RenderCube(float col, float x, float y, float z) { // // Enable depth test @@ -406,4 +409,4 @@ void Harness_GLRenderer_RenderCube(float col, float x, float y, float z) { // // Draw the triangle ! // glDrawArrays(GL_TRIANGLES, 0, 12 * 3); // 12*3 indices starting at 0 -> 12 triangles // glBindVertexArray(0); -} \ No newline at end of file +} diff --git a/src/harness/sdl/gl_renderer.h b/src/harness/sdl/gl_renderer.h new file mode 100644 index 00000000..faca0d67 --- /dev/null +++ b/src/harness/sdl/gl_renderer.h @@ -0,0 +1,14 @@ +#ifndef HARNESS_GL_RENDERER +#define HARNESS_GL_RENDERER + +#include "harness.h" +#include + +void GLRenderer_CreateWindow(char* title, int width, int height); +void GLRenderer_BeginFrame(br_actor* camera, br_pixelmap* colour_buffer); +void GLRenderer_EndFrame(); +void GLRenderer_RenderFullScreenQuad(uint32_t* screen_buffer, int transparent); +void GLRenderer_Swap(); +void GLRenderer_RenderModel(br_model* model, br_matrix34 model_matrix); + +#endif \ No newline at end of file diff --git a/src/harness/renderers/gl_renderer_shaders.c b/src/harness/sdl/gl_renderer_shaders.c similarity index 100% rename from src/harness/renderers/gl_renderer_shaders.c rename to src/harness/sdl/gl_renderer_shaders.c diff --git a/src/harness/renderers/gl_renderer_shaders.h b/src/harness/sdl/gl_renderer_shaders.h similarity index 100% rename from src/harness/renderers/gl_renderer_shaders.h rename to src/harness/sdl/gl_renderer_shaders.h diff --git a/test/BRSRC13/test_actsupt.c b/test/BRSRC13/test_actsupt.c index c33c1b35..d31f587c 100644 --- a/test/BRSRC13/test_actsupt.c +++ b/test/BRSRC13/test_actsupt.c @@ -1,4 +1,4 @@ -#include "brender.h" +#include "brender/brender.h" #include "tests.h" #include diff --git a/test/DETHRACE/test_flicplay.c b/test/DETHRACE/test_flicplay.c index edfc0121..be89cb19 100644 --- a/test/DETHRACE/test_flicplay.c +++ b/test/DETHRACE/test_flicplay.c @@ -1,4 +1,4 @@ -#include "brender.h" +#include "brender/brender.h" #include "common/flicplay.h" #include "common/graphics.h" #include "tests.h" diff --git a/test/main.c b/test/main.c index 29bd46db..18c5195c 100644 --- a/test/main.c +++ b/test/main.c @@ -1,3 +1,4 @@ +#include "harness/hooks.h" #include #include #include @@ -19,7 +20,7 @@ #include "common/globvars.h" #include "common/grafdata.h" #include "harness.h" -#include "renderers/null_renderer.h" +#include "harness/config.h" #define debug(format_, ...) fprintf(stderr, format_, __VA_ARGS__) @@ -88,6 +89,13 @@ void setup_global_vars() { _unittest_do_not_exit = 1; harness_debug_level = 7; + harness_game_info.mode = eGame_carmageddon; + + int fake_argc = 2; + char* fake_argv[2]; + fake_argv[0] = "test"; + fake_argv[1] = "-platform=null"; + Harness_Init(&fake_argc, fake_argv); } int has_data_directory() { @@ -102,8 +110,6 @@ int main(int argc, char** argv) { exit(1); } - Harness_Init(argv[0], &NullRenderer); - setup_global_vars(); printf("Completed setup\n"); diff --git a/test/tests.h b/test/tests.h index 6e55f789..c8b12a72 100644 --- a/test/tests.h +++ b/test/tests.h @@ -2,7 +2,7 @@ #define TESTS_H #include "framework/unity.h" -#include "harness_trace.h" +#include "harness/trace.h" extern int has_data_directory();