From 01042acfb0b2db28cd6c34e7cb16a511f9cc2228 Mon Sep 17 00:00:00 2001 From: jonschz Date: Sun, 7 Jul 2024 10:24:41 +0200 Subject: [PATCH] Refactor file names based on BETA10 --- CMakeLists.txt | 4 +- .../include/{act3actor.h => act3actors.h} | 9 ++- LEGO1/lego/legoomni/include/act3brickster.h | 2 +- LEGO1/lego/legoomni/include/act3cop.h | 2 +- .../actors/{act3actor.cpp => act3actors.cpp} | 2 +- .../legoomni/src/common/legoobjectfactory.cpp | 2 +- LEGO1/mxdirectx/legodxinfo.cpp | 68 +++++++++++++++++++ LEGO1/mxdirectx/mxdirectxinfo.cpp | 62 ----------------- 8 files changed, 81 insertions(+), 70 deletions(-) rename LEGO1/lego/legoomni/include/{act3actor.h => act3actors.h} (78%) rename LEGO1/lego/legoomni/src/actors/{act3actor.cpp => act3actors.cpp} (92%) create mode 100644 LEGO1/mxdirectx/legodxinfo.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 5e9a675c..8ed6f3a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -131,6 +131,7 @@ add_library(mxdirectx STATIC LEGO1/mxdirectx/mxdirect3d.cpp LEGO1/mxdirectx/mxdirectdraw.cpp LEGO1/mxdirectx/mxdirectxinfo.cpp + LEGO1/mxdirectx/legodxinfo.cpp ) register_lego1_target(mxdirectx) set_property(TARGET mxdirectx PROPERTY ARCHIVE_OUTPUT_NAME "MxDirectX$<$:d>") @@ -288,7 +289,7 @@ add_library(lego1 SHARED LEGO1/define.cpp LEGO1/lego/legoomni/src/actors/act2actor.cpp LEGO1/lego/legoomni/src/actors/act2genactor.cpp - LEGO1/lego/legoomni/src/actors/act3actor.cpp + LEGO1/lego/legoomni/src/actors/act3actors.cpp LEGO1/lego/legoomni/src/actors/act3brickster.cpp LEGO1/lego/legoomni/src/actors/act3cop.cpp LEGO1/lego/legoomni/src/actors/act3shark.cpp @@ -466,6 +467,7 @@ endif() if (ISLE_BUILD_CONFIG) add_executable(config WIN32 LEGO1/mxdirectx/mxdirectxinfo.cpp + LEGO1/mxdirectx/legodxinfo.cpp CONFIG/config.cpp CONFIG/ConfigCommandLineInfo.cpp CONFIG/AboutDlg.cpp diff --git a/LEGO1/lego/legoomni/include/act3actor.h b/LEGO1/lego/legoomni/include/act3actors.h similarity index 78% rename from LEGO1/lego/legoomni/include/act3actor.h rename to LEGO1/lego/legoomni/include/act3actors.h index b71939e0..ac955816 100644 --- a/LEGO1/lego/legoomni/include/act3actor.h +++ b/LEGO1/lego/legoomni/include/act3actors.h @@ -1,10 +1,13 @@ -#ifndef ACT3ACTOR_H -#define ACT3ACTOR_H +#ifndef ACT3ACTORS_H +#define ACT3ACTORS_H #include "legoanimactor.h" +// File name verified by multiple assertions, e.g. BETA10 0x10018391 + // VTABLE: LEGO1 0x100d7668 LegoPathActor // VTABLE: LEGO1 0x100d7738 LegoAnimActor +// VTABLE: BETA10 0x101b8a98 LegoPathActor // SIZE 0x178 class Act3Actor : public LegoAnimActor { public: @@ -30,4 +33,4 @@ class Act3Actor : public LegoAnimActor { undefined4 m_unk0x1c; // 0x1c }; -#endif // ACT3ACTOR_H +#endif // ACT3ACTORS_H diff --git a/LEGO1/lego/legoomni/include/act3brickster.h b/LEGO1/lego/legoomni/include/act3brickster.h index f9066d3c..c84b8dd7 100644 --- a/LEGO1/lego/legoomni/include/act3brickster.h +++ b/LEGO1/lego/legoomni/include/act3brickster.h @@ -1,7 +1,7 @@ #ifndef ACT3BRICKSTER_H #define ACT3BRICKSTER_H -#include "act3actor.h" +#include "act3actors.h" // VTABLE: LEGO1 0x100d7838 LegoPathActor // VTABLE: LEGO1 0x100d7908 LegoAnimActor diff --git a/LEGO1/lego/legoomni/include/act3cop.h b/LEGO1/lego/legoomni/include/act3cop.h index 29ac65b6..a720b84c 100644 --- a/LEGO1/lego/legoomni/include/act3cop.h +++ b/LEGO1/lego/legoomni/include/act3cop.h @@ -1,7 +1,7 @@ #ifndef ACT3COP_H #define ACT3COP_H -#include "act3actor.h" +#include "act3actors.h" // VTABLE: LEGO1 0x100d7750 LegoPathActor // VTABLE: LEGO1 0x100d7820 LegoAnimActor diff --git a/LEGO1/lego/legoomni/src/actors/act3actor.cpp b/LEGO1/lego/legoomni/src/actors/act3actors.cpp similarity index 92% rename from LEGO1/lego/legoomni/src/actors/act3actor.cpp rename to LEGO1/lego/legoomni/src/actors/act3actors.cpp index 5ae24f14..01359090 100644 --- a/LEGO1/lego/legoomni/src/actors/act3actor.cpp +++ b/LEGO1/lego/legoomni/src/actors/act3actors.cpp @@ -1,4 +1,4 @@ -#include "act3actor.h" +#include "act3actors.h" DECOMP_SIZE_ASSERT(Act3Actor, 0x178) diff --git a/LEGO1/lego/legoomni/src/common/legoobjectfactory.cpp b/LEGO1/lego/legoomni/src/common/legoobjectfactory.cpp index 00f88397..6bbae1fa 100644 --- a/LEGO1/lego/legoomni/src/common/legoobjectfactory.cpp +++ b/LEGO1/lego/legoomni/src/common/legoobjectfactory.cpp @@ -5,7 +5,7 @@ #include "act2genactor.h" #include "act2policestation.h" #include "act3.h" -#include "act3actor.h" +#include "act3actors.h" #include "act3brickster.h" #include "act3cop.h" #include "act3shark.h" diff --git a/LEGO1/mxdirectx/legodxinfo.cpp b/LEGO1/mxdirectx/legodxinfo.cpp new file mode 100644 index 00000000..edf8a79c --- /dev/null +++ b/LEGO1/mxdirectx/legodxinfo.cpp @@ -0,0 +1,68 @@ +#include "mxdirectxinfo.h" + +#include +#include // for vsprintf + +// File name validated by BETA10 0x1011cba3; directory unknown + +// FUNCTION: CONFIG 0x004027d0 +// FUNCTION: BETA10 0x1011cb70 +int MxDeviceEnumerate::FormatDeviceName(char* p_buffer, const MxDriver* p_ddInfo, const Direct3DDeviceInfo* p_d3dInfo) + const +{ + int number = 0; + assert(p_ddInfo && p_d3dInfo); + + for (list::const_iterator it = m_list.begin(); it != m_list.end(); it++, number++) { + if (&(*it) == p_ddInfo) { + GUID4 guid; + memcpy(&guid, p_d3dInfo->m_guid, sizeof(GUID4)); + + sprintf(p_buffer, "%d 0x%x 0x%x 0x%x 0x%x", number, guid.m_data1, guid.m_data2, guid.m_data3, guid.m_data4); + return 0; + } + } + + return -1; +} + +// FUNCTION: CONFIG 0x00402620 +// FUNCTION: LEGO1 0x1009cf20 +// FUNCTION: BETA10 0x1011c8b3 +int MxDeviceEnumerate::ProcessDeviceBytes(int p_deviceNum, GUID& p_guid) +{ + if (!IsInitialized()) { + return -1; + } + + int i = 0; + int j = 0; + + static_assert(sizeof(GUID4) == sizeof(GUID), "Equal size"); + + GUID4 deviceGuid; + memcpy(&deviceGuid, &p_guid, sizeof(GUID4)); + + for (list::iterator it = m_list.begin(); it != m_list.end(); it++, i++) { + if (p_deviceNum >= 0 && p_deviceNum < i) { + return -1; + } + + GUID4 compareGuid; + MxDriver& driver = *it; + for (list::iterator it2 = driver.m_devices.begin(); it2 != driver.m_devices.end(); it2++) { + Direct3DDeviceInfo& md3d = *it2; + assert(md3d.m_guid); + + memcpy(&compareGuid, md3d.m_guid, sizeof(GUID4)); + + if (GUID4::Compare(compareGuid, deviceGuid) && i == p_deviceNum) { + return j; + } + + j++; + } + } + + return -1; +} diff --git a/LEGO1/mxdirectx/mxdirectxinfo.cpp b/LEGO1/mxdirectx/mxdirectxinfo.cpp index dded6e04..006b8a1f 100644 --- a/LEGO1/mxdirectx/mxdirectxinfo.cpp +++ b/LEGO1/mxdirectx/mxdirectxinfo.cpp @@ -603,47 +603,6 @@ int MxDeviceEnumerate::ParseDeviceName(const char* p_deviceId) return result; } -// FUNCTION: CONFIG 0x00402620 -// FUNCTION: LEGO1 0x1009cf20 -// FUNCTION: BETA10 0x1011c8b3 -int MxDeviceEnumerate::ProcessDeviceBytes(int p_deviceNum, GUID& p_guid) -{ - if (!IsInitialized()) { - return -1; - } - - int i = 0; - int j = 0; - - static_assert(sizeof(GUID4) == sizeof(GUID), "Equal size"); - - GUID4 deviceGuid; - memcpy(&deviceGuid, &p_guid, sizeof(GUID4)); - - for (list::iterator it = m_list.begin(); it != m_list.end(); it++, i++) { - if (p_deviceNum >= 0 && p_deviceNum < i) { - return -1; - } - - GUID4 compareGuid; - MxDriver& driver = *it; - for (list::iterator it2 = driver.m_devices.begin(); it2 != driver.m_devices.end(); it2++) { - Direct3DDeviceInfo& md3d = *it2; - assert(md3d.m_guid); - - memcpy(&compareGuid, md3d.m_guid, sizeof(GUID4)); - - if (GUID4::Compare(compareGuid, deviceGuid) && i == p_deviceNum) { - return j; - } - - j++; - } - } - - return -1; -} - // FUNCTION: CONFIG 0x00402730 // FUNCTION: LEGO1 0x1009d030 // FUNCTION: BETA10 0x1011ca54 @@ -671,27 +630,6 @@ int MxDeviceEnumerate::GetDevice(int p_deviceNum, MxDriver*& p_driver, Direct3DD return -1; } -// FUNCTION: CONFIG 0x004027d0 -// FUNCTION: BETA10 0x1011cb70 -int MxDeviceEnumerate::FormatDeviceName(char* p_buffer, const MxDriver* p_ddInfo, const Direct3DDeviceInfo* p_d3dInfo) - const -{ - int number = 0; - assert(p_ddInfo && p_d3dInfo); - - for (list::const_iterator it = m_list.begin(); it != m_list.end(); it++, number++) { - if (&(*it) == p_ddInfo) { - GUID4 guid; - memcpy(&guid, p_d3dInfo->m_guid, sizeof(GUID4)); - - sprintf(p_buffer, "%d 0x%x 0x%x 0x%x 0x%x", number, guid.m_data1, guid.m_data2, guid.m_data3, guid.m_data4); - return 0; - } - } - - return -1; -} - // FUNCTION: BETA10 0x1011cc65 int MxDeviceEnumerate::BETA_1011cc65(int p_idx, char* p_buffer) {