isle/CMakeLists.txt

271 lines
7.9 KiB
Text
Raw Normal View History

cmake_minimum_required(VERSION 3.13 FATAL_ERROR)
project(isle CXX)
option(ISLE_BUILD_APP "Build ISLE.EXE application" ON)
option(ISLE_USE_SMARTHEAP "Build with SmartHeap" ${MSVC})
option(ISLE_USE_DX5 "Build with internal DirectX 5 SDK" ON)
add_library(lego1 SHARED
LEGO1/act1state.cpp
LEGO1/act2brick.cpp
LEGO1/act2policestation.cpp
LEGO1/act3.cpp
LEGO1/act3shark.cpp
LEGO1/act3state.cpp
LEGO1/ambulance.cpp
LEGO1/ambulancemissionstate.cpp
LEGO1/animstate.cpp
LEGO1/beachhouseentity.cpp
LEGO1/bike.cpp
LEGO1/buildingentity.cpp
LEGO1/bumpbouy.cpp
LEGO1/carrace.cpp
LEGO1/dllmain.cpp
LEGO1/dunebuggy.cpp
LEGO1/elevatorbottom.cpp
LEGO1/gasstation.cpp
LEGO1/gasstationentity.cpp
LEGO1/gasstationstate.cpp
LEGO1/helicopter.cpp
LEGO1/helicopterstate.cpp
LEGO1/historybook.cpp
LEGO1/hospital.cpp
LEGO1/hospitalentity.cpp
LEGO1/hospitalstate.cpp
LEGO1/infocenter.cpp
LEGO1/infocenterdoor.cpp
LEGO1/infocenterentity.cpp
LEGO1/infocenterstate.cpp
LEGO1/isle.cpp
LEGO1/isleactor.cpp
LEGO1/islepathactor.cpp
LEGO1/jetski.cpp
LEGO1/jetskirace.cpp
LEGO1/jukebox.cpp
LEGO1/jukeboxentity.cpp
LEGO1/jukeboxstate.cpp
LEGO1/legoact2state.cpp
LEGO1/legoactioncontrolpresenter.cpp
LEGO1/legoactor.cpp
LEGO1/legoactor.cpp
LEGO1/legoanimactor.cpp
LEGO1/legoanimationmanager.cpp
LEGO1/legoanimmmpresenter.cpp
LEGO1/legoanimpresenter.cpp
LEGO1/legobackgroundcolor.cpp
Squashed commit of the following: commit a41a442f5aba5fa2f22efc46e66b055f8e99b04e Author: MishaProductions <106913236+MishaProductions@users.noreply.github.com> Date: Fri Jun 30 08:10:54 2023 +0300 Update .editorconfig Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com> commit 5768cf4a0cf58778cd1265220936081c43c91769 Author: Misha <mishakeys20@gmail.com> Date: Fri Jun 30 08:04:37 2023 +0300 add legoutil commit 7d6b00c831d01688749d6cadb8b8ea683d18a52d Author: Misha <mishakeys20@gmail.com> Date: Fri Jun 30 08:02:17 2023 +0300 Update CMakeLists.txt commit d9b49087f8681a858b7d32b38cc937160b5a5ab0 Author: Misha <mishakeys20@gmail.com> Date: Fri Jun 30 08:01:06 2023 +0300 Update CMakeLists.txt commit d5a2891965b0e3c992c92e7782c4cc54fc7ae7af Author: Misha <mishakeys20@gmail.com> Date: Fri Jun 30 07:59:03 2023 +0300 Update CMakeLists.txt commit 519253bff43426d2b4cbb916f0fecba8fd677695 Merge: 6cefa2e 13df3f9 Author: Misha <mishakeys20@gmail.com> Date: Fri Jun 30 07:57:15 2023 +0300 Merge remote-tracking branch 'upstream/master' into legobackgroundcolor commit 6cefa2e9e259f57033d6e50f9be0af5de6e2df61 Author: Misha <mishakeys20@gmail.com> Date: Thu Jun 29 16:51:53 2023 +0300 add back stuff to mak file after merge commit c2b16eb8ff2e99b160bf5d5b75df7960da8f2877 Merge: 3c8add2 07912eb Author: Misha <mishakeys20@gmail.com> Date: Thu Jun 29 16:49:51 2023 +0300 Merge remote-tracking branch 'upstream/master' into legobackgroundcolor commit 3c8add2f1979f1ac2372f06c2025cda4104c2db2 Author: Misha <mishakeys20@gmail.com> Date: Thu Jun 29 13:34:15 2023 +0300 Update legobackgroundcolor.cpp commit 6879f30e79caaef23319488b729283cda6f46c25 Author: Misha <mishakeys20@gmail.com> Date: Wed Jun 28 18:22:35 2023 +0300 add fixme + rename MxStringVariable functions commit a883f37b9d67c57bc336812bf83ee85c363f8931 Author: Misha <mishakeys20@gmail.com> Date: Wed Jun 28 18:15:42 2023 +0300 address review commit a919eeb7f48b31554b8edf499c131f570b1529bf Author: Misha <mishakeys20@gmail.com> Date: Wed Jun 28 08:19:45 2023 +0300 Update mxbackgroundcolor.cpp commit 710c1dd5ea53212c43e1564480f27370f28ca7e4 Author: Misha <mishakeys20@gmail.com> Date: Wed Jun 28 08:11:13 2023 +0300 add back mak file commit 25e9bbbfb0d330e70570f59823b2e88f159ad49d Merge: 78b0e8d 2d9af63 Author: Misha <mishakeys20@gmail.com> Date: Wed Jun 28 08:09:03 2023 +0300 Merge remote-tracking branch 'upstream/master' into legobackgroundcolor commit 78b0e8dd625add18ea9a62dcd72a820e1a0beab5 Author: Misha <mishakeys20@gmail.com> Date: Tue Jun 27 18:35:58 2023 +0300 improve accuracy commit 4c2e1ca95c4463da20266f61299370fa0ecda9f4 Author: Misha <mishakeys20@gmail.com> Date: Mon Jun 26 13:50:40 2023 +0300 improve accuracy commit 7dd3469ca330254e0177c838991b9436bb3c90c2 Author: Misha <mishakeys20@gmail.com> Date: Mon Jun 26 13:24:11 2023 +0300 ConvertColor wip commit b0288803a834a9e4f41486bb60c81935b94a4cd2 Merge: 3d16867 0b47f3f Author: MishaProductions <106913236+MishaProductions@users.noreply.github.com> Date: Mon Jun 26 09:42:08 2023 +0300 Merge branch 'isledecomp:master' into legobackgroundcolor commit 3d16867a901862d66aec632e269061c81e7d443d Author: Misha <mishakeys20@gmail.com> Date: Sun Jun 25 17:03:14 2023 +0300 90% match commit 2208573eb2cf73465c2a5b49a63db66dd8f6f841 Author: Misha <mishakeys20@gmail.com> Date: Sun Jun 25 12:23:47 2023 +0300 improve accuracy + add editorconfig commit 288f8614281788fd3a19f07a7732b06337253e34 Author: Misha <mishakeys20@gmail.com> Date: Sun Jun 25 07:57:14 2023 +0300 fix makefile commit 3590e59a3a9f021b0de3833e80d320238255bc46 Author: Misha <mishakeys20@gmail.com> Date: Sun Jun 25 07:51:35 2023 +0300 Update isle.mak commit fb52ad57813214a8af9ef21fdb9ef39005961778 Author: Misha <mishakeys20@gmail.com> Date: Sun Jun 25 07:47:06 2023 +0300 fix build commit 791cf1301af1e194025908d8812edaa4faf0f3cf Merge: b9ecd15 64d2b9e Author: Misha <mishakeys20@gmail.com> Date: Sun Jun 25 07:42:09 2023 +0300 Merge remote-tracking branch 'upstream/master' into legobackgroundcolor commit b9ecd15ca60b6d4c26fe10405e80b08bbf02d62e Author: Misha <mishakeys20@gmail.com> Date: Sun Jun 25 07:40:22 2023 +0300 undo change commit 6327a797bce26c277c21c71e5ec56a446f227aa5 Author: Misha <mishakeys20@gmail.com> Date: Sat Jun 24 21:48:08 2023 +0300 delete accidently committed files commit 7ae1c05df962ff64029c3264aaf824801a3055cc Author: Misha <mishakeys20@gmail.com> Date: Sat Jun 24 21:47:05 2023 +0300 implement SetColorString commit 323a2ee0e7a4c767d80535f2f0e3a8036124da05 Author: Misha <mishakeys20@gmail.com> Date: Sat Jun 24 20:47:03 2023 +0300 constructor and some methods are matching commit 0ce6fab3d085b2e2e68c95bdff59557c483486fe Author: Misha <mishakeys20@gmail.com> Date: Sat Jun 24 20:38:10 2023 +0300 constructor is almost matching
2023-06-30 19:33:59 -04:00
LEGO1/legobackgroundcolor.cpp
LEGO1/legobuildingmanager.cpp
LEGO1/legocachesound.cpp
LEGO1/legocameracontroller.cpp
LEGO1/legocarbuild.cpp
LEGO1/legocarbuildanimpresenter.cpp
LEGO1/legocontrolmanager.cpp
LEGO1/legoentity.cpp
LEGO1/legoentitypresenter.cpp
LEGO1/legoflctexturepresenter.cpp
LEGO1/legogamestate.cpp
LEGO1/legohideanimpresenter.cpp
LEGO1/legoinputmanager.cpp
LEGO1/legojetski.cpp
LEGO1/legoloadcachesoundpresenter.cpp
LEGO1/legolocomotionanimpresenter.cpp
LEGO1/legomodelpresenter.cpp
LEGO1/legonavcontroller.cpp
LEGO1/legoomni.cpp
LEGO1/legopalettepresenter.cpp
LEGO1/legopartpresenter.cpp
LEGO1/legopathactor.cpp
LEGO1/legopathcontroller.cpp
LEGO1/legopathpresenter.cpp
LEGO1/legophonemepresenter.cpp
LEGO1/legoplantmanager.cpp
LEGO1/legorace.cpp
LEGO1/legoroi.cpp
LEGO1/legosoundmanager.cpp
LEGO1/legostate.cpp
LEGO1/legostream.cpp
LEGO1/legotexturepresenter.cpp
Squashed commit of the following: commit a41a442f5aba5fa2f22efc46e66b055f8e99b04e Author: MishaProductions <106913236+MishaProductions@users.noreply.github.com> Date: Fri Jun 30 08:10:54 2023 +0300 Update .editorconfig Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com> commit 5768cf4a0cf58778cd1265220936081c43c91769 Author: Misha <mishakeys20@gmail.com> Date: Fri Jun 30 08:04:37 2023 +0300 add legoutil commit 7d6b00c831d01688749d6cadb8b8ea683d18a52d Author: Misha <mishakeys20@gmail.com> Date: Fri Jun 30 08:02:17 2023 +0300 Update CMakeLists.txt commit d9b49087f8681a858b7d32b38cc937160b5a5ab0 Author: Misha <mishakeys20@gmail.com> Date: Fri Jun 30 08:01:06 2023 +0300 Update CMakeLists.txt commit d5a2891965b0e3c992c92e7782c4cc54fc7ae7af Author: Misha <mishakeys20@gmail.com> Date: Fri Jun 30 07:59:03 2023 +0300 Update CMakeLists.txt commit 519253bff43426d2b4cbb916f0fecba8fd677695 Merge: 6cefa2e 13df3f9 Author: Misha <mishakeys20@gmail.com> Date: Fri Jun 30 07:57:15 2023 +0300 Merge remote-tracking branch 'upstream/master' into legobackgroundcolor commit 6cefa2e9e259f57033d6e50f9be0af5de6e2df61 Author: Misha <mishakeys20@gmail.com> Date: Thu Jun 29 16:51:53 2023 +0300 add back stuff to mak file after merge commit c2b16eb8ff2e99b160bf5d5b75df7960da8f2877 Merge: 3c8add2 07912eb Author: Misha <mishakeys20@gmail.com> Date: Thu Jun 29 16:49:51 2023 +0300 Merge remote-tracking branch 'upstream/master' into legobackgroundcolor commit 3c8add2f1979f1ac2372f06c2025cda4104c2db2 Author: Misha <mishakeys20@gmail.com> Date: Thu Jun 29 13:34:15 2023 +0300 Update legobackgroundcolor.cpp commit 6879f30e79caaef23319488b729283cda6f46c25 Author: Misha <mishakeys20@gmail.com> Date: Wed Jun 28 18:22:35 2023 +0300 add fixme + rename MxStringVariable functions commit a883f37b9d67c57bc336812bf83ee85c363f8931 Author: Misha <mishakeys20@gmail.com> Date: Wed Jun 28 18:15:42 2023 +0300 address review commit a919eeb7f48b31554b8edf499c131f570b1529bf Author: Misha <mishakeys20@gmail.com> Date: Wed Jun 28 08:19:45 2023 +0300 Update mxbackgroundcolor.cpp commit 710c1dd5ea53212c43e1564480f27370f28ca7e4 Author: Misha <mishakeys20@gmail.com> Date: Wed Jun 28 08:11:13 2023 +0300 add back mak file commit 25e9bbbfb0d330e70570f59823b2e88f159ad49d Merge: 78b0e8d 2d9af63 Author: Misha <mishakeys20@gmail.com> Date: Wed Jun 28 08:09:03 2023 +0300 Merge remote-tracking branch 'upstream/master' into legobackgroundcolor commit 78b0e8dd625add18ea9a62dcd72a820e1a0beab5 Author: Misha <mishakeys20@gmail.com> Date: Tue Jun 27 18:35:58 2023 +0300 improve accuracy commit 4c2e1ca95c4463da20266f61299370fa0ecda9f4 Author: Misha <mishakeys20@gmail.com> Date: Mon Jun 26 13:50:40 2023 +0300 improve accuracy commit 7dd3469ca330254e0177c838991b9436bb3c90c2 Author: Misha <mishakeys20@gmail.com> Date: Mon Jun 26 13:24:11 2023 +0300 ConvertColor wip commit b0288803a834a9e4f41486bb60c81935b94a4cd2 Merge: 3d16867 0b47f3f Author: MishaProductions <106913236+MishaProductions@users.noreply.github.com> Date: Mon Jun 26 09:42:08 2023 +0300 Merge branch 'isledecomp:master' into legobackgroundcolor commit 3d16867a901862d66aec632e269061c81e7d443d Author: Misha <mishakeys20@gmail.com> Date: Sun Jun 25 17:03:14 2023 +0300 90% match commit 2208573eb2cf73465c2a5b49a63db66dd8f6f841 Author: Misha <mishakeys20@gmail.com> Date: Sun Jun 25 12:23:47 2023 +0300 improve accuracy + add editorconfig commit 288f8614281788fd3a19f07a7732b06337253e34 Author: Misha <mishakeys20@gmail.com> Date: Sun Jun 25 07:57:14 2023 +0300 fix makefile commit 3590e59a3a9f021b0de3833e80d320238255bc46 Author: Misha <mishakeys20@gmail.com> Date: Sun Jun 25 07:51:35 2023 +0300 Update isle.mak commit fb52ad57813214a8af9ef21fdb9ef39005961778 Author: Misha <mishakeys20@gmail.com> Date: Sun Jun 25 07:47:06 2023 +0300 fix build commit 791cf1301af1e194025908d8812edaa4faf0f3cf Merge: b9ecd15 64d2b9e Author: Misha <mishakeys20@gmail.com> Date: Sun Jun 25 07:42:09 2023 +0300 Merge remote-tracking branch 'upstream/master' into legobackgroundcolor commit b9ecd15ca60b6d4c26fe10405e80b08bbf02d62e Author: Misha <mishakeys20@gmail.com> Date: Sun Jun 25 07:40:22 2023 +0300 undo change commit 6327a797bce26c277c21c71e5ec56a446f227aa5 Author: Misha <mishakeys20@gmail.com> Date: Sat Jun 24 21:48:08 2023 +0300 delete accidently committed files commit 7ae1c05df962ff64029c3264aaf824801a3055cc Author: Misha <mishakeys20@gmail.com> Date: Sat Jun 24 21:47:05 2023 +0300 implement SetColorString commit 323a2ee0e7a4c767d80535f2f0e3a8036124da05 Author: Misha <mishakeys20@gmail.com> Date: Sat Jun 24 20:47:03 2023 +0300 constructor and some methods are matching commit 0ce6fab3d085b2e2e68c95bdff59557c483486fe Author: Misha <mishakeys20@gmail.com> Date: Sat Jun 24 20:38:10 2023 +0300 constructor is almost matching
2023-06-30 19:33:59 -04:00
LEGO1/legoutil.cpp
LEGO1/legovideomanager.cpp
LEGO1/legoworld.cpp
LEGO1/legoworldpresenter.cpp
LEGO1/motorcycle.cpp
LEGO1/mxatomid.cpp
LEGO1/mxatomidcounter.cpp
LEGO1/mxaudiomanager.cpp
LEGO1/mxaudiopresenter.cpp
LEGO1/mxautolocker.cpp
LEGO1/mxbackgroundaudiomanager.cpp
LEGO1/mxbitmap.cpp
LEGO1/mxcompositemediapresenter.cpp
LEGO1/mxcompositepresenter.cpp
LEGO1/mxcontrolpresenter.cpp
LEGO1/mxcore.cpp
LEGO1/mxcriticalsection.cpp
LEGO1/mxdirect3d.cpp
LEGO1/mxdirectdraw.cpp
LEGO1/mxdiskstreamcontroller.cpp
LEGO1/mxdiskstreamprovider.cpp
LEGO1/mxdisplaysurface.cpp
LEGO1/mxdsaction.cpp
LEGO1/mxdsactionlist.cpp
LEGO1/mxdsanim.cpp
LEGO1/mxdschunk.cpp
LEGO1/mxdsevent.cpp
LEGO1/mxdsfile.cpp
LEGO1/mxdsmediaaction.cpp
LEGO1/mxdsmultiaction.cpp
LEGO1/mxdsobject.cpp
LEGO1/mxdsobjectaction.cpp
LEGO1/mxdsparallelaction.cpp
LEGO1/mxdsselectaction.cpp
LEGO1/mxdsserialaction.cpp
LEGO1/mxdssound.cpp
LEGO1/mxdssource.cpp
LEGO1/mxdsstill.cpp
LEGO1/mxdsstreamingaction.cpp
LEGO1/mxdssubscriber.cpp
LEGO1/mxentity.cpp
LEGO1/mxeventmanager.cpp
LEGO1/mxeventpresenter.cpp
LEGO1/mxflcpresenter.cpp
LEGO1/mxioinfo.cpp
LEGO1/mxloopingflcpresenter.cpp
Implement MxObjectFactory::{MxObjectFactory,Create} + match sizes of Mx.*Presenter objects created by it (#59) * Get Isle building on MinGW32 (#63) * Add MxUnknown100dc6b0::~MxUnknown100dc6b0 stub * Declare destructor of MxOmni and MxTransitionManager in class * inline attribute must go first * Stub LegoState::Vtable0x14 for Act3State * MxStreamer::VTable0x14 is not an override * Stub MxEntity::Destroy for LegoState::Destroy * Stub MxUnknown100dc6e0 for MxSoundManager * ::ClassName and ::IsA are const methods * methods in the class body don't need a namespace * MxSoundManager subclasses MxUnknown100dc6e0 * LegoInputManager subclasses MxPresenter * NotificationId is an enum, and does not need __declspec(dllexport) * Fix final #endif of legoomni.h and mxobjectfactory.h * Add const alternative for LegoOmni::Create and MxVideoParam, only available for MinGW * Alternative approach to MinGW compatibility * MinGW on Linux is case sensitve * Don't delete a member variable. C++ automatically destructs member variables --------- Co-authored-by: MattKC <34096995+itsmattkc@users.noreply.github.com> * MxatomId: implement inline operator== * Add decomp.h header, containing macro's only used when matching the original binaries * Add in-line constructor of MxPresenter * MxMediaPresenter: add members to match size * MxVideoPresenter: add members to match size * MxCompositePresenter: add members to match size * MxFlcPresenter: add members to match size * MxSmkPresenter: add members to match size * MxStillPresenter: add members to match size * MxAudioPresenter: add members to match size * MxWavePresenter: add members to match size * MxMIDIPresenter: add members to match size * MxEventPresenter: add members to match size * MxLoopingFlcPresenter: add members to match size * MxLoopingSmkPresenter: add members to match size * MxLoopingMIDIPresenter: add check for size * Implement MxObjectFactory::{MxObjectFactory,Create} Matching of MxObjectFactory::Create is not good, because none of the other objects have been implemented. * Implement a few MxPresenter methods * Fix size of LegoInputManager * Fix name of first padding member of legoinputmanager.h * add DECOMP_SIZE_ASSERT macro * Use DECOMP_SIZE_ASSERT macro + convert to hexadecimal * fixed minor typos --------- Co-authored-by: MattKC <34096995+itsmattkc@users.noreply.github.com> Co-authored-by: itsmattkc <itsmattkc@gmail.com>
2023-07-02 03:00:28 -04:00
LEGO1/mxloopingmidipresenter.cpp
LEGO1/mxloopingsmkpresenter.cpp
LEGO1/mxmatrix.cpp
2023-08-28 06:01:45 -04:00
LEGO1/mxmediamanager.cpp
LEGO1/mxmediapresenter.cpp
Implement MxObjectFactory::{MxObjectFactory,Create} + match sizes of Mx.*Presenter objects created by it (#59) * Get Isle building on MinGW32 (#63) * Add MxUnknown100dc6b0::~MxUnknown100dc6b0 stub * Declare destructor of MxOmni and MxTransitionManager in class * inline attribute must go first * Stub LegoState::Vtable0x14 for Act3State * MxStreamer::VTable0x14 is not an override * Stub MxEntity::Destroy for LegoState::Destroy * Stub MxUnknown100dc6e0 for MxSoundManager * ::ClassName and ::IsA are const methods * methods in the class body don't need a namespace * MxSoundManager subclasses MxUnknown100dc6e0 * LegoInputManager subclasses MxPresenter * NotificationId is an enum, and does not need __declspec(dllexport) * Fix final #endif of legoomni.h and mxobjectfactory.h * Add const alternative for LegoOmni::Create and MxVideoParam, only available for MinGW * Alternative approach to MinGW compatibility * MinGW on Linux is case sensitve * Don't delete a member variable. C++ automatically destructs member variables --------- Co-authored-by: MattKC <34096995+itsmattkc@users.noreply.github.com> * MxatomId: implement inline operator== * Add decomp.h header, containing macro's only used when matching the original binaries * Add in-line constructor of MxPresenter * MxMediaPresenter: add members to match size * MxVideoPresenter: add members to match size * MxCompositePresenter: add members to match size * MxFlcPresenter: add members to match size * MxSmkPresenter: add members to match size * MxStillPresenter: add members to match size * MxAudioPresenter: add members to match size * MxWavePresenter: add members to match size * MxMIDIPresenter: add members to match size * MxEventPresenter: add members to match size * MxLoopingFlcPresenter: add members to match size * MxLoopingSmkPresenter: add members to match size * MxLoopingMIDIPresenter: add check for size * Implement MxObjectFactory::{MxObjectFactory,Create} Matching of MxObjectFactory::Create is not good, because none of the other objects have been implemented. * Implement a few MxPresenter methods * Fix size of LegoInputManager * Fix name of first padding member of legoinputmanager.h * add DECOMP_SIZE_ASSERT macro * Use DECOMP_SIZE_ASSERT macro + convert to hexadecimal * fixed minor typos --------- Co-authored-by: MattKC <34096995+itsmattkc@users.noreply.github.com> Co-authored-by: itsmattkc <itsmattkc@gmail.com>
2023-07-02 03:00:28 -04:00
LEGO1/mxmidipresenter.cpp
LEGO1/mxmusicpresenter.cpp
LEGO1/mxnotificationmanager.cpp
Implement MxObjectFactory::{MxObjectFactory,Create} + match sizes of Mx.*Presenter objects created by it (#59) * Get Isle building on MinGW32 (#63) * Add MxUnknown100dc6b0::~MxUnknown100dc6b0 stub * Declare destructor of MxOmni and MxTransitionManager in class * inline attribute must go first * Stub LegoState::Vtable0x14 for Act3State * MxStreamer::VTable0x14 is not an override * Stub MxEntity::Destroy for LegoState::Destroy * Stub MxUnknown100dc6e0 for MxSoundManager * ::ClassName and ::IsA are const methods * methods in the class body don't need a namespace * MxSoundManager subclasses MxUnknown100dc6e0 * LegoInputManager subclasses MxPresenter * NotificationId is an enum, and does not need __declspec(dllexport) * Fix final #endif of legoomni.h and mxobjectfactory.h * Add const alternative for LegoOmni::Create and MxVideoParam, only available for MinGW * Alternative approach to MinGW compatibility * MinGW on Linux is case sensitve * Don't delete a member variable. C++ automatically destructs member variables --------- Co-authored-by: MattKC <34096995+itsmattkc@users.noreply.github.com> * MxatomId: implement inline operator== * Add decomp.h header, containing macro's only used when matching the original binaries * Add in-line constructor of MxPresenter * MxMediaPresenter: add members to match size * MxVideoPresenter: add members to match size * MxCompositePresenter: add members to match size * MxFlcPresenter: add members to match size * MxSmkPresenter: add members to match size * MxStillPresenter: add members to match size * MxAudioPresenter: add members to match size * MxWavePresenter: add members to match size * MxMIDIPresenter: add members to match size * MxEventPresenter: add members to match size * MxLoopingFlcPresenter: add members to match size * MxLoopingSmkPresenter: add members to match size * MxLoopingMIDIPresenter: add check for size * Implement MxObjectFactory::{MxObjectFactory,Create} Matching of MxObjectFactory::Create is not good, because none of the other objects have been implemented. * Implement a few MxPresenter methods * Fix size of LegoInputManager * Fix name of first padding member of legoinputmanager.h * add DECOMP_SIZE_ASSERT macro * Use DECOMP_SIZE_ASSERT macro + convert to hexadecimal * fixed minor typos --------- Co-authored-by: MattKC <34096995+itsmattkc@users.noreply.github.com> Co-authored-by: itsmattkc <itsmattkc@gmail.com>
2023-07-02 03:00:28 -04:00
LEGO1/mxobjectfactory.cpp
LEGO1/mxomni.cpp
LEGO1/mxomnicreateflags.cpp
LEGO1/mxomnicreateparam.cpp
LEGO1/mxomnicreateparambase.cpp
LEGO1/mxpalette.cpp
LEGO1/mxparam.cpp
LEGO1/mxpresenter.cpp
LEGO1/mxpresenterlist.cpp
LEGO1/mxscheduler.cpp
LEGO1/mxsemaphore.cpp
LEGO1/mxsmkpresenter.cpp
LEGO1/mxsoundmanager.cpp
LEGO1/mxsoundpresenter.cpp
LEGO1/mxstillpresenter.cpp
LEGO1/mxstreamer.cpp
LEGO1/mxstring.cpp
LEGO1/mxthread.cpp
LEGO1/mxticklemanager.cpp
LEGO1/mxtimer.cpp
LEGO1/mxtransitionmanager.cpp
LEGO1/mxvariable.cpp
LEGO1/mxvariabletable.cpp
LEGO1/mxvector.cpp
LEGO1/mxvideomanager.cpp
LEGO1/mxvideoparam.cpp
LEGO1/mxvideoparamflags.cpp
LEGO1/mxvideopresenter.cpp
LEGO1/mxwavepresenter.cpp
LEGO1/pizza.cpp
LEGO1/pizzamissionstate.cpp
LEGO1/pizzeria.cpp
LEGO1/pizzeriastate.cpp
LEGO1/police.cpp
LEGO1/policeentity.cpp
LEGO1/policestate.cpp
LEGO1/racecar.cpp
LEGO1/racestandsentity.cpp
LEGO1/racestate.cpp
LEGO1/radio.cpp
LEGO1/radiostate.cpp
LEGO1/realtimeview.cpp
LEGO1/registrationbook.cpp
LEGO1/score.cpp
LEGO1/scorestate.cpp
LEGO1/skateboard.cpp
LEGO1/towtrack.cpp
LEGO1/towtrackmissionstate.cpp
LEGO1/viewmanager.cpp
)
if (ISLE_USE_SMARTHEAP)
add_library(SmartHeap::SmartHeap STATIC IMPORTED)
set_target_properties(SmartHeap::SmartHeap PROPERTIES
IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/3rdparty/smartheap/SHLW32MT.LIB"
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/3rdparty/smartheap"
INTERFACE_COMPILE_OPTIONS "/FI${CMAKE_SOURCE_DIR}/3rdparty/smartheap/SMRTHEAP.HPP")
target_link_libraries(lego1 PRIVATE SmartHeap::SmartHeap)
endif()
# Use internal DirectX 5 if required
if (ISLE_USE_DX5)
target_include_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/dx5/inc")
target_link_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/dx5/lib")
endif()
# Link libraries
target_link_libraries(lego1 PRIVATE ddraw dsound dxguid winmm)
# Make sure filenames are ALL CAPS
set_property(TARGET lego1 PROPERTY OUTPUT_NAME LEGO1)
set_property(TARGET lego1 PROPERTY SUFFIX ".DLL")
if (ISLE_BUILD_APP)
add_executable(isle WIN32
ISLE/res/isle.rc
ISLE/isleapp.cpp
ISLE/define.cpp
)
# Include LEGO1 headers in ISLE
target_include_directories(isle PRIVATE "${CMAKE_SOURCE_DIR}/LEGO1")
# Use internal DirectX 5 if required
if (ISLE_USE_DX5)
target_include_directories(isle PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/dx5/inc")
target_link_directories(isle PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/dx5/lib")
endif()
if (ISLE_USE_SMARTHEAP)
target_link_libraries(isle PRIVATE SmartHeap::SmartHeap)
endif()
# Link DSOUND, WINMM, and LEGO1
target_link_libraries(isle PRIVATE dsound winmm lego1)
# Make sure filenames are ALL CAPS
set_property(TARGET isle PROPERTY OUTPUT_NAME ISLE)
set_property(TARGET isle PROPERTY SUFFIX ".EXE")
endif()
if (MSVC)
# These flags have been taken from the defaults for a Visual C++ 4.20 project (the compiler the
# game was originally built with) and tweaked slightly to produce more debugging info for reccmp.
# They ensure a recompilation that can be byte/instruction accurate to the original binaries.
target_compile_options(isle PRIVATE "/ML$<$<CONFIG:Debug>:d>")
target_compile_options(lego1 PRIVATE "/MT$<$<CONFIG:Debug>:d>")
set(CMAKE_CXX_FLAGS "/W3 /GX /D \"WIN32\" /D \"_WINDOWS\"")
set(CMAKE_CXX_FLAGS_DEBUG "/Gm /Zi /Od /D \"_DEBUG\"")
set(CMAKE_CXX_FLAGS_RELEASE "/O2 /D \"NDEBUG\"")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/Zi /O2 /D \"NDEBUG\"")
set(CMAKE_CXX_FLAGS_MINSIZEREL "/Os /D \"NDEBUG\"")
set(CMAKE_EXE_LINKER_FLAGS "/machine:I386")
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "/incremental:yes /debug")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/incremental:no")
set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "/incremental:no /debug")
set(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "/incremental:no")
set(CMAKE_SHARED_LINKER_FLAGS "/machine:I386")
set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "/incremental:yes /debug")
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "/incremental:no")
set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "/incremental:no /debug")
set(CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "/incremental:no")
endif()