From da3ad91b2027316a8132039da19f42961da51ab5 Mon Sep 17 00:00:00 2001 From: Anonymous Maarten Date: Wed, 21 Jun 2023 23:33:08 +0200 Subject: [PATCH 01/16] recomp.py: use argparse to parse arguments (#30) * recomp.py: use argparse to parse arguments * Address code revew comments * reccomp.py: -h/--help for help -H/--htmp for html * update CI to use new arg * slight string updates --------- Co-authored-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com> --- .github/workflows/build.yml | 4 +-- tools/reccomp/reccomp.py | 69 ++++++++++++++----------------------- 2 files changed, 27 insertions(+), 46 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 335b9699..e865a1c0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -60,8 +60,8 @@ jobs: C:\msys64\usr\bin\wget.exe https://legoisland.org/download/ISLE.EXE C:\msys64\usr\bin\wget.exe https://legoisland.org/download/LEGO1.DLL pip install capstone - python3 tools/reccomp/reccomp.py -h ISLEPROGRESS.HTML ISLE.EXE Release/ISLE.EXE Release/ISLE.PDB ISLE - python3 tools/reccomp/reccomp.py -h LEGO1PROGRESS.HTML LEGO1.DLL Release/LEGO1.DLL Release/LEGO1.PDB LEGO1 + python3 tools/reccomp/reccomp.py -H ISLEPROGRESS.HTML ISLE.EXE Release/ISLE.EXE Release/ISLE.PDB ISLE + python3 tools/reccomp/reccomp.py -H LEGO1PROGRESS.HTML LEGO1.DLL Release/LEGO1.DLL Release/LEGO1.PDB LEGO1 - name: Upload Artifact uses: actions/upload-artifact@master diff --git a/tools/reccomp/reccomp.py b/tools/reccomp/reccomp.py index f1f378ae..4e234a61 100755 --- a/tools/reccomp/reccomp.py +++ b/tools/reccomp/reccomp.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 +import argparse from capstone import * import difflib import struct @@ -7,60 +8,40 @@ import os import sys -def print_usage(): - print('Usage: %s [options] \n' % sys.argv[0]) - print('\t-v, --verbose \t\t\tPrint assembly diff for specific function (original file\'s offset)') - print('\t-h, --html \t\t\tGenerate searchable HTML summary of status and diffs') - sys.exit(1) +parser = argparse.ArgumentParser(allow_abbrev=False, + description='Recomp Compare: compare an original EXE with a recompiled EXE + PDB.') +parser.add_argument('original', metavar='original-binary', help='The original binary') +parser.add_argument('recompiled', metavar='recompiled-binary', help='The recompiled binary') +parser.add_argument('pdb', metavar='recompiled-pdb', help='The PDB of the recompiled binary') +parser.add_argument('decomp_dir', metavar='decomp-dir', help='The decompiled source tree') +parser.add_argument('--verbose', '-v', metavar='offset', help='Print assembly diff for specific function (original file\'s offset)') +parser.add_argument('--html', '-H', metavar='output-file', help='Generate searchable HTML summary of status and diffs') + +args = parser.parse_args() -positional_args = [] verbose = None -skip = False -html = None +if args.verbose: + try: + verbose = int(args.verbose, 16) + except ValueError: + parser.error('invalid verbose argument') +html = args.html -for i, arg in enumerate(sys.argv): - if skip: - skip = False - continue - - if arg.startswith('-'): - # A flag rather than a positional arg - flag = arg[1:] - - if flag == 'v' or flag == '-verbose': - verbose = int(sys.argv[i + 1], 16) - skip = True - elif flag == 'h' or flag == '-html': - html = sys.argv[i + 1] - skip = True - else: - print('Unknown flag: %s' % arg) - print_usage() - else: - positional_args.append(arg) - -if len(positional_args) != 5: - print_usage() - -original = positional_args[1] +original = args.original if not os.path.isfile(original): - print('Invalid input: Original binary does not exist') - sys.exit(1) + parser.error('Original binary does not exist') -recomp = positional_args[2] +recomp = args.recompiled if not os.path.isfile(recomp): - print('Invalid input: Recompiled binary does not exist') - sys.exit(1) + parser.error('Recompiled binary does not exist') -syms = positional_args[3] +syms = args.pdb if not os.path.isfile(syms): - print('Invalid input: Symbols PDB does not exist') - sys.exit(1) + parser.error('Symbols PDB does not exist') -source = positional_args[4] +source = args.decomp_dir if not os.path.isdir(source): - print('Invalid input: Source directory does not exist') - sys.exit(1) + parser.error('Source directory does not exist') # Declare a class that can automatically convert virtual executable addresses # to file addresses From fa63d7e34162bfbce5d4730f8b010a58b0c67065 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Wed, 21 Jun 2023 14:36:09 -0700 Subject: [PATCH 02/16] rename reccomp to reccmp Sorry to everyone's muscle memory, but I think this is better. The idea for the name was "recomp compare", but it's too easy to read it as "recomp with a typo". This should fix that, as well as be slightly easier to write since it's shorter. --- .github/workflows/build.yml | 4 ++-- tools/{reccomp => reccmp}/cvdump.exe | Bin tools/{reccomp/reccomp.py => reccmp/reccmp.py} | 2 +- tools/{reccomp => reccmp}/template.html | 0 4 files changed, 3 insertions(+), 3 deletions(-) rename tools/{reccomp => reccmp}/cvdump.exe (100%) rename tools/{reccomp/reccomp.py => reccmp/reccmp.py} (99%) rename tools/{reccomp => reccmp}/template.html (100%) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e865a1c0..91a218f5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -60,8 +60,8 @@ jobs: C:\msys64\usr\bin\wget.exe https://legoisland.org/download/ISLE.EXE C:\msys64\usr\bin\wget.exe https://legoisland.org/download/LEGO1.DLL pip install capstone - python3 tools/reccomp/reccomp.py -H ISLEPROGRESS.HTML ISLE.EXE Release/ISLE.EXE Release/ISLE.PDB ISLE - python3 tools/reccomp/reccomp.py -H LEGO1PROGRESS.HTML LEGO1.DLL Release/LEGO1.DLL Release/LEGO1.PDB LEGO1 + python3 tools/reccmp/reccmp.py -H ISLEPROGRESS.HTML ISLE.EXE Release/ISLE.EXE Release/ISLE.PDB ISLE + python3 tools/reccmp/reccmp.py -H LEGO1PROGRESS.HTML LEGO1.DLL Release/LEGO1.DLL Release/LEGO1.PDB LEGO1 - name: Upload Artifact uses: actions/upload-artifact@master diff --git a/tools/reccomp/cvdump.exe b/tools/reccmp/cvdump.exe similarity index 100% rename from tools/reccomp/cvdump.exe rename to tools/reccmp/cvdump.exe diff --git a/tools/reccomp/reccomp.py b/tools/reccmp/reccmp.py similarity index 99% rename from tools/reccomp/reccomp.py rename to tools/reccmp/reccmp.py index 4e234a61..02189dfe 100755 --- a/tools/reccomp/reccomp.py +++ b/tools/reccmp/reccmp.py @@ -9,7 +9,7 @@ import sys parser = argparse.ArgumentParser(allow_abbrev=False, - description='Recomp Compare: compare an original EXE with a recompiled EXE + PDB.') + description='Recompilation Compare: compare an original EXE with a recompiled EXE + PDB.') parser.add_argument('original', metavar='original-binary', help='The original binary') parser.add_argument('recompiled', metavar='recompiled-binary', help='The recompiled binary') parser.add_argument('pdb', metavar='recompiled-pdb', help='The PDB of the recompiled binary') diff --git a/tools/reccomp/template.html b/tools/reccmp/template.html similarity index 100% rename from tools/reccomp/template.html rename to tools/reccmp/template.html From 4d531d1de5f38f003c1725fcb7ad13bbc4c99d6f Mon Sep 17 00:00:00 2001 From: MS Date: Wed, 21 Jun 2023 17:43:01 -0400 Subject: [PATCH 03/16] reccomp: add option to hide 100% matching functions (#35) * add option to hide 100% matching functions * slight formatting improvement --------- Co-authored-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com> --- tools/reccmp/template.html | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/tools/reccmp/template.html b/tools/reccmp/template.html index fdc41b20..9b03e4ec 100644 --- a/tools/reccmp/template.html +++ b/tools/reccmp/template.html @@ -67,6 +67,12 @@ #sortind { margin: 0 0.5em; } + + .filters { + font-size: 10pt; + text-align: center; + margin: 0.5em 0 1em 0; + } @@ -230,8 +250,10 @@

Decompilation Status

-
-
+
+ + +
AddressNameMatching
From fa8e4523bdc4f7c8c2483b7fa45eaa8b99b98594 Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Thu, 22 Jun 2023 00:18:37 +0200 Subject: [PATCH 04/16] isle: match Isle::Tick and FindExistingInstance (#32) * match Isle::Tick and FindExistingInstance * add offset comments * inline Isle::Tick * move inline MxDSObject, remove mx.cpp --- ISLE/define.cpp | 3 - ISLE/define.h | 4 +- ISLE/isle.cpp | 68 +------------- ISLE/isle.h | 70 ++++++++++++++ ISLE/mx.cpp | 7 -- LEGO1/mxdsobject.cpp | 5 +- LEGO1/mxdsobject.h | 10 +- isle.mak | 215 ++++++++++++++++--------------------------- isle.mdp | Bin 50688 -> 50688 bytes 9 files changed, 157 insertions(+), 225 deletions(-) delete mode 100644 ISLE/mx.cpp diff --git a/ISLE/define.cpp b/ISLE/define.cpp index a5122188..b5501b08 100644 --- a/ISLE/define.cpp +++ b/ISLE/define.cpp @@ -38,6 +38,3 @@ int g_startupDelay = 200; // 0x4101c0 long g_lastFrameTime = 0; - -// 0x4101dc -const char *WINDOW_TITLE = "LEGO\xAE"; diff --git a/ISLE/define.h b/ISLE/define.h index 36f69993..7adc751e 100644 --- a/ISLE/define.h +++ b/ISLE/define.h @@ -7,8 +7,10 @@ class Isle; extern Isle *g_isle; extern int g_closed; +// 0x4101c4 #define WNDCLASS_NAME "Lego Island MainNoM App" -extern const char *WINDOW_TITLE; +// 0x4101dc +#define WINDOW_TITLE "LEGO\xAE" extern unsigned char g_mousedown; extern unsigned char g_mousemoved; extern RECT g_windowRect; diff --git a/ISLE/isle.cpp b/ISLE/isle.cpp index a58ad707..9f3c50c4 100644 --- a/ISLE/isle.cpp +++ b/ISLE/isle.cpp @@ -1,10 +1,8 @@ #include "isle.h" -#include "define.h" #include "legoanimationmanager.h" #include "legobuildingmanager.h" #include "legomodelpresenter.h" -#include "legoomni.h" #include "legopartpresenter.h" #include "legoworldpresenter.h" #include "mxdirectdraw.h" @@ -78,7 +76,7 @@ Isle::~Isle() void Isle::Close() { MxDSAction ds; - ds.SetUnknown24(0xFFFE); + ds.SetUnknown24(-2); if (Lego()) { GameState()->Save(0); @@ -574,67 +572,3 @@ MxResult Isle::SetupWindow(HINSTANCE hInstance) return SUCCESS; } - -// OFFSET: ISLE 0x402c20 -void Isle::Tick(BOOL sleepIfNotNextFrame) -{ - if (this->m_windowActive) { - if (!Lego()) return; - if (!TickleManager()) return; - if (!Timer()) return; - - long currentTime = Timer()->GetRealTime(); - if (currentTime < g_lastFrameTime) { - g_lastFrameTime = -this->m_frameDelta; - } - if (this->m_frameDelta + g_lastFrameTime < currentTime) { - if (!Lego()->vtable40()) { - TickleManager()->Tickle(); - } - g_lastFrameTime = currentTime; - - if (g_startupDelay == 0) { - return; - } - - g_startupDelay--; - if (g_startupDelay != 0) { - return; - } - - LegoOmni::GetInstance()->CreateBackgroundAudio(); - BackgroundAudioManager()->Enable(this->m_useMusic); - - MxStreamController *stream = Streamer()->Open("\\lego\\scripts\\isle\\isle", 0); - MxDSAction ds; - - if (!stream) { - stream = Streamer()->Open("\\lego\\scripts\\nocd", 0); - if (!stream) { - return; - } - - ds.SetAtomId(stream->atom); - ds.SetUnknown24(0xFFFF); - ds.SetUnknown1c(0); - VideoManager()->EnableFullScreenMovie(TRUE, TRUE); - - if (Start(&ds) != SUCCESS) { - return; - } - } else { - ds.SetAtomId(stream->atom); - ds.SetUnknown24(0xFFFF); - ds.SetUnknown1c(0); - if (Start(&ds) != SUCCESS) { - return; - } - this->m_gameStarted = 1; - } - return; - } - if (sleepIfNotNextFrame == 0) return; - } - - Sleep(0); -} diff --git a/ISLE/isle.h b/ISLE/isle.h index 4d6b73c4..b11f4c09 100644 --- a/ISLE/isle.h +++ b/ISLE/isle.h @@ -3,6 +3,9 @@ #include +#include "define.h" + +#include "legoomni.h" #include "mxresult.h" #include "mxvideoparam.h" @@ -77,4 +80,71 @@ class Isle }; +// OFFSET: ISLE 0x401c40 +inline void MxDSObject::SetAtomId(MxAtomId p_atomId) { this->m_atomId = p_atomId; } + +// OFFSET: ISLE 0x402c20 +inline void Isle::Tick(BOOL sleepIfNotNextFrame) +{ + if (this->m_windowActive) { + if (!Lego()) return; + if (!TickleManager()) return; + if (!Timer()) return; + + long currentTime = Timer()->GetRealTime(); + if (currentTime < g_lastFrameTime) { + g_lastFrameTime = -this->m_frameDelta; + } + if (this->m_frameDelta + g_lastFrameTime < currentTime) { + if (!Lego()->vtable40()) { + TickleManager()->Tickle(); + } + g_lastFrameTime = currentTime; + + if (g_startupDelay == 0) { + return; + } + + g_startupDelay--; + if (g_startupDelay != 0) { + return; + } + + LegoOmni::GetInstance()->CreateBackgroundAudio(); + BackgroundAudioManager()->Enable(this->m_useMusic); + + MxStreamController *stream = Streamer()->Open("\\lego\\scripts\\isle\\isle", 0); + MxDSAction ds; + + if (!stream) { + stream = Streamer()->Open("\\lego\\scripts\\nocd", 0); + if (!stream) { + return; + } + + ds.SetAtomId(stream->atom); + ds.SetUnknown24(-1); + ds.SetUnknown1c(0); + VideoManager()->EnableFullScreenMovie(TRUE, TRUE); + + if (Start(&ds) != SUCCESS) { + return; + } + } else { + ds.SetAtomId(stream->atom); + ds.SetUnknown24(-1); + ds.SetUnknown1c(0); + if (Start(&ds) != SUCCESS) { + return; + } + this->m_gameStarted = 1; + } + return; + } + if (sleepIfNotNextFrame == 0) return; + } + + Sleep(0); +} + #endif // ISLE_H diff --git a/ISLE/mx.cpp b/ISLE/mx.cpp deleted file mode 100644 index c0417e5a..00000000 --- a/ISLE/mx.cpp +++ /dev/null @@ -1,7 +0,0 @@ -#include "mxdsobject.h" - -// OFFSET: ISLE 0x00401c40 -void MxDSObject::SetAtomId(MxAtomId p_atomId) -{ - this->m_atomId = p_atomId; -} \ No newline at end of file diff --git a/LEGO1/mxdsobject.cpp b/LEGO1/mxdsobject.cpp index 5e7d7103..8142ba9d 100644 --- a/LEGO1/mxdsobject.cpp +++ b/LEGO1/mxdsobject.cpp @@ -6,14 +6,11 @@ // OFFSET: LEGO1 0x100bf6a0 MxDSObject::MxDSObject() { - // The following code yields 100% matching assembly if m_unk24 is declared as (signed) short. - // However, in other areas m_unk24 (notably, ISLE.EXE) is treated as unsigned short. - // Since we don't have a proper solution yet, we are using a union to work around this discrepancy. this->m_unk0c = 0; this->m_unk10 = 0; this->m_unk14 = 0; this->m_name = NULL; - this->m_unk24signed = -1; + this->m_unk24 = -1; this->m_unk1c = -1; this->m_unk28 = 0; } diff --git a/LEGO1/mxdsobject.h b/LEGO1/mxdsobject.h index 99c62dd2..4f59d4bb 100644 --- a/LEGO1/mxdsobject.h +++ b/LEGO1/mxdsobject.h @@ -15,7 +15,7 @@ class MxDSObject : public MxCore inline int GetUnknown1c() { return this->m_unk1c; } inline void SetUnknown1c(int p_unk1c) { this->m_unk1c = p_unk1c; } - inline void SetUnknown24(unsigned short p_unk24) { this->m_unk24 = p_unk24; } + inline void SetUnknown24(short p_unk24) { this->m_unk24 = p_unk24; } void SetAtomId(MxAtomId p_atomId); @@ -27,13 +27,7 @@ class MxDSObject : public MxCore char *m_name; int m_unk1c; MxAtomId m_atomId; - // So far, implementing MxDSObject::MxDSObject correctly required that m_unk24 is declared a (signed) short. - // Most of the other game's code appears to treat it as unsigned short, however. - // This union is a workaround until we have figured this out. - union { - unsigned short m_unk24; - short m_unk24signed; - }; + short m_unk24; unsigned short m_unk26; int m_unk28; }; diff --git a/isle.mak b/isle.mak index f0f905ff..acbf2236 100644 --- a/isle.mak +++ b/isle.mak @@ -288,7 +288,6 @@ CLEAN : -@erase "$(INTDIR)\isle.obj" -@erase "$(INTDIR)\isle.res" -@erase "$(INTDIR)\main.obj" - -@erase "$(INTDIR)\mx.obj" -@erase "$(INTDIR)\vc40.pdb" -@erase ".\Release\ISLE.EXE" -@erase ".\Release\ISLE.PDB" @@ -350,7 +349,6 @@ LINK32_OBJS= \ "$(INTDIR)\isle.obj" \ "$(INTDIR)\isle.res" \ "$(INTDIR)\main.obj" \ - "$(INTDIR)\mx.obj" \ ".\Release\LEGO1.LIB" ".\Release\ISLE.EXE" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) @@ -380,7 +378,6 @@ CLEAN : -@erase "$(INTDIR)\isle.obj" -@erase "$(INTDIR)\isle.res" -@erase "$(INTDIR)\main.obj" - -@erase "$(INTDIR)\mx.obj" -@erase "$(INTDIR)\vc40.idb" -@erase "$(INTDIR)\vc40.pdb" -@erase ".\Debug\ISLE.EXE" @@ -444,7 +441,6 @@ LINK32_OBJS= \ "$(INTDIR)\isle.obj" \ "$(INTDIR)\isle.res" \ "$(INTDIR)\main.obj" \ - "$(INTDIR)\mx.obj" \ ".\LEGO1\Debug\LEGO1.lib" ".\Debug\ISLE.EXE" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) @@ -497,6 +493,9 @@ DEP_CPP_DLLMA=\ # Begin Source File SOURCE=.\LEGO1\legoomni.cpp + +!IF "$(CFG)" == "LEGO1 - Win32 Release" + DEP_CPP_LEGOO=\ ".\LEGO1\lego3dmanager.h"\ ".\LEGO1\lego3dview.h"\ @@ -545,6 +544,39 @@ DEP_CPP_LEGOO=\ $(CPP) $(CPP_PROJ) $(SOURCE) +!ELSEIF "$(CFG)" == "LEGO1 - Win32 Debug" + +DEP_CPP_LEGOO=\ + ".\LEGO1\lego3dmanager.h"\ + ".\LEGO1\lego3dview.h"\ + ".\LEGO1\legoentity.h"\ + ".\LEGO1\legogamestate.h"\ + ".\LEGO1\legoinc.h"\ + ".\LEGO1\legoinputmanager.h"\ + ".\LEGO1\legonavcontroller.h"\ + ".\LEGO1\legoomni.h"\ + ".\LEGO1\legoroi.h"\ + ".\LEGO1\legovideomanager.h"\ + ".\LEGO1\mxatomid.h"\ + ".\LEGO1\mxbackgroundaudiomanager.h"\ + ".\LEGO1\mxbool.h"\ + ".\LEGO1\mxcore.h"\ + ".\LEGO1\mxcriticalsection.h"\ + ".\LEGO1\mxdsaction.h"\ + ".\LEGO1\mxdsfile.h"\ + ".\LEGO1\mxdsobject.h"\ + ".\LEGO1\mxeventmanager.h"\ + ".\LEGO1\mxomni.h"\ + ".\LEGO1\mxtimer.h"\ + ".\LEGO1\viewmanager.h"\ + + +"$(INTDIR)\legoomni.obj" : $(SOURCE) $(DEP_CPP_LEGOO) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + # End Source File ################################################################################ # Begin Source File @@ -741,6 +773,9 @@ DEP_CPP_MXOMNICR=\ # Begin Source File SOURCE=.\LEGO1\legonavcontroller.cpp + +!IF "$(CFG)" == "LEGO1 - Win32 Release" + DEP_CPP_LEGON=\ ".\LEGO1\lego3dmanager.h"\ ".\LEGO1\lego3dview.h"\ @@ -790,6 +825,40 @@ DEP_CPP_LEGON=\ $(CPP) $(CPP_PROJ) $(SOURCE) +!ELSEIF "$(CFG)" == "LEGO1 - Win32 Debug" + +DEP_CPP_LEGON=\ + ".\LEGO1\lego3dmanager.h"\ + ".\LEGO1\lego3dview.h"\ + ".\LEGO1\legoentity.h"\ + ".\LEGO1\legogamestate.h"\ + ".\LEGO1\legoinc.h"\ + ".\LEGO1\legoinputmanager.h"\ + ".\LEGO1\legonavcontroller.h"\ + ".\LEGO1\legoomni.h"\ + ".\LEGO1\legoroi.h"\ + ".\LEGO1\legoutil.h"\ + ".\LEGO1\legovideomanager.h"\ + ".\LEGO1\mxatomid.h"\ + ".\LEGO1\mxbackgroundaudiomanager.h"\ + ".\LEGO1\mxbool.h"\ + ".\LEGO1\mxcore.h"\ + ".\LEGO1\mxcriticalsection.h"\ + ".\LEGO1\mxdsaction.h"\ + ".\LEGO1\mxdsfile.h"\ + ".\LEGO1\mxdsobject.h"\ + ".\LEGO1\mxeventmanager.h"\ + ".\LEGO1\mxomni.h"\ + ".\LEGO1\mxtimer.h"\ + ".\LEGO1\viewmanager.h"\ + + +"$(INTDIR)\legonavcontroller.obj" : $(SOURCE) $(DEP_CPP_LEGON) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + # End Source File ################################################################################ # Begin Source File @@ -850,9 +919,6 @@ DEP_CPP_DEFIN=\ # Begin Source File SOURCE=.\ISLE\isle.cpp - -!IF "$(CFG)" == "ISLE - Win32 Release" - DEP_CPP_ISLE_=\ ".\ISLE\define.h"\ ".\ISLE\isle.h"\ @@ -910,90 +976,36 @@ DEP_CPP_ISLE_=\ $(CPP) $(CPP_PROJ) $(SOURCE) -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -DEP_CPP_ISLE_=\ - ".\ISLE\define.h"\ - ".\ISLE\isle.h"\ - ".\ISLE\res\resource.h"\ - ".\LEGO1\lego3dmanager.h"\ - ".\LEGO1\lego3dview.h"\ - ".\LEGO1\legoanimationmanager.h"\ - ".\LEGO1\legobuildingmanager.h"\ - ".\LEGO1\legoentity.h"\ - ".\LEGO1\legogamestate.h"\ - ".\LEGO1\legoinc.h"\ - ".\LEGO1\legoinputmanager.h"\ - ".\LEGO1\legomodelpresenter.h"\ - ".\LEGO1\legonavcontroller.h"\ - ".\LEGO1\legoomni.h"\ - ".\LEGO1\legopartpresenter.h"\ - ".\LEGO1\legoroi.h"\ - ".\LEGO1\legovideomanager.h"\ - ".\LEGO1\legoworldpresenter.h"\ - ".\LEGO1\mxatomid.h"\ - ".\LEGO1\mxbackgroundaudiomanager.h"\ - ".\LEGO1\mxbool.h"\ - ".\LEGO1\mxcore.h"\ - ".\LEGO1\mxcriticalsection.h"\ - ".\LEGO1\mxdirectdraw.h"\ - ".\LEGO1\mxdsaction.h"\ - ".\LEGO1\mxdsfile.h"\ - ".\LEGO1\mxdsobject.h"\ - ".\LEGO1\mxeventmanager.h"\ - ".\LEGO1\mxmusicmanager.h"\ - ".\LEGO1\mxnotificationmanager.h"\ - ".\LEGO1\mxobjectfactory.h"\ - ".\LEGO1\mxomni.h"\ - ".\LEGO1\mxomnicreateflags.h"\ - ".\LEGO1\mxomnicreateparam.h"\ - ".\LEGO1\mxomnicreateparambase.h"\ - ".\LEGO1\mxresult.h"\ - ".\LEGO1\mxsoundmanager.h"\ - ".\LEGO1\mxstreamcontroller.h"\ - ".\LEGO1\mxstreamer.h"\ - ".\LEGO1\mxstring.h"\ - ".\LEGO1\mxticklemanager.h"\ - ".\LEGO1\mxtimer.h"\ - ".\LEGO1\mxtransitionmanager.h"\ - ".\LEGO1\mxvariabletable.h"\ - ".\LEGO1\mxvideomanager.h"\ - ".\LEGO1\mxvideoparam.h"\ - ".\LEGO1\viewmanager.h"\ - - -"$(INTDIR)\isle.obj" : $(SOURCE) $(DEP_CPP_ISLE_) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -!ENDIF - # End Source File ################################################################################ # Begin Source File SOURCE=.\ISLE\main.cpp - -!IF "$(CFG)" == "ISLE - Win32 Release" - DEP_CPP_MAIN_=\ ".\ISLE\define.h"\ ".\ISLE\isle.h"\ + ".\ISLE\res\resource.h"\ ".\LEGO1\lego3dmanager.h"\ ".\LEGO1\lego3dview.h"\ + ".\LEGO1\legoanimationmanager.h"\ + ".\LEGO1\legobuildingmanager.h"\ ".\LEGO1\legoentity.h"\ ".\LEGO1\legogamestate.h"\ ".\LEGO1\legoinc.h"\ ".\LEGO1\legoinputmanager.h"\ + ".\LEGO1\legomodelpresenter.h"\ ".\LEGO1\legonavcontroller.h"\ ".\LEGO1\legoomni.h"\ + ".\LEGO1\legopartpresenter.h"\ ".\LEGO1\legoroi.h"\ ".\LEGO1\legovideomanager.h"\ + ".\LEGO1\legoworldpresenter.h"\ ".\LEGO1\mxatomid.h"\ ".\LEGO1\mxbackgroundaudiomanager.h"\ ".\LEGO1\mxbool.h"\ ".\LEGO1\mxcore.h"\ ".\LEGO1\mxcriticalsection.h"\ + ".\LEGO1\mxdirectdraw.h"\ ".\LEGO1\mxdsaction.h"\ ".\LEGO1\mxdsfile.h"\ ".\LEGO1\mxdsobject.h"\ @@ -1026,57 +1038,6 @@ DEP_CPP_MAIN_=\ $(CPP) $(CPP_PROJ) $(SOURCE) -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -DEP_CPP_MAIN_=\ - ".\ISLE\define.h"\ - ".\ISLE\isle.h"\ - ".\LEGO1\lego3dmanager.h"\ - ".\LEGO1\lego3dview.h"\ - ".\LEGO1\legoentity.h"\ - ".\LEGO1\legogamestate.h"\ - ".\LEGO1\legoinc.h"\ - ".\LEGO1\legoinputmanager.h"\ - ".\LEGO1\legonavcontroller.h"\ - ".\LEGO1\legoomni.h"\ - ".\LEGO1\legoroi.h"\ - ".\LEGO1\legovideomanager.h"\ - ".\LEGO1\mxatomid.h"\ - ".\LEGO1\mxbackgroundaudiomanager.h"\ - ".\LEGO1\mxbool.h"\ - ".\LEGO1\mxcore.h"\ - ".\LEGO1\mxcriticalsection.h"\ - ".\LEGO1\mxdsaction.h"\ - ".\LEGO1\mxdsfile.h"\ - ".\LEGO1\mxdsobject.h"\ - ".\LEGO1\mxeventmanager.h"\ - ".\LEGO1\mxmusicmanager.h"\ - ".\LEGO1\mxnotificationmanager.h"\ - ".\LEGO1\mxobjectfactory.h"\ - ".\LEGO1\mxomni.h"\ - ".\LEGO1\mxomnicreateflags.h"\ - ".\LEGO1\mxomnicreateparam.h"\ - ".\LEGO1\mxomnicreateparambase.h"\ - ".\LEGO1\mxresult.h"\ - ".\LEGO1\mxsoundmanager.h"\ - ".\LEGO1\mxstreamcontroller.h"\ - ".\LEGO1\mxstreamer.h"\ - ".\LEGO1\mxstring.h"\ - ".\LEGO1\mxticklemanager.h"\ - ".\LEGO1\mxtimer.h"\ - ".\LEGO1\mxtransitionmanager.h"\ - ".\LEGO1\mxvariabletable.h"\ - ".\LEGO1\mxvideomanager.h"\ - ".\LEGO1\mxvideoparam.h"\ - ".\LEGO1\viewmanager.h"\ - - -"$(INTDIR)\main.obj" : $(SOURCE) $(DEP_CPP_MAIN_) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -!ENDIF - # End Source File ################################################################################ # Begin Source File @@ -1517,22 +1478,6 @@ SOURCE=.\LEGO1\mxvideoparamflags.h !ENDIF # End Project Dependency -################################################################################ -# Begin Source File - -SOURCE=.\ISLE\mx.cpp -DEP_CPP_MX_CP=\ - ".\LEGO1\mxatomid.h"\ - ".\LEGO1\mxbool.h"\ - ".\LEGO1\mxcore.h"\ - ".\LEGO1\mxdsobject.h"\ - - -"$(INTDIR)\mx.obj" : $(SOURCE) $(DEP_CPP_MX_CP) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File # End Target # End Project ################################################################################ diff --git a/isle.mdp b/isle.mdp index e164ac1ec45b5477842f4919ab402efe54cf7ffe..a35b41d166591b9a4cb0900d43013fff86967b52 100644 GIT binary patch delta 457 zcmZqZVQ%PQ-oPQnTAW{+mok}gn#$zdiOVMQ)vTM`FqL((QA^n-84e*lvIcl%UGU0A zsB%r-SR}eRE9n~d=7PL;f|C^{C{Ny1tup!TERD%eYBVR?Rd#NERe6CC=Ag|+E%VqW zOO&Z>PM^G+b#p~k4%24a$xk7y$)dA`CqF6{+MKz6I?Ln_-2$5>D%?1*nK}7Y2gfIQ3GP^X5GAd#%adMF*O>K@5~b3EW~w#PavIvAzg498w1EA zJBss}HVblnVBEBZg^8V&fq^Z7nPu|+jq#JS)^$&Qw!UI=?)u8fS2iR}RFIe)x1ntE zzKsdIKxGUPKn$iQJ8rC Date: Wed, 21 Jun 2023 17:01:48 -0700 Subject: [PATCH 05/16] reccmp: revert using debug offsets --- tools/reccmp/reccmp.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/tools/reccmp/reccmp.py b/tools/reccmp/reccmp.py index 02189dfe..36f917fa 100755 --- a/tools/reccmp/reccmp.py +++ b/tools/reccmp/reccmp.py @@ -118,14 +118,23 @@ def __init__(self, pdb, file): if current_section == 'SYMBOLS' and 'S_GPROC32' in line: addr = int(line[26:34], 16) - debug_offs = line_dump[i + 2] - debug_start = int(debug_offs[22:30], 16) - debug_end = int(debug_offs[43:], 16) + info = RecompiledInfo() info.addr = addr + recompfile.imagebase + recompfile.textvirt - info.start = debug_start - info.size = debug_end - debug_start + + use_dbg_offs = False + if use_dbg_offs: + debug_offs = line_dump[i + 2] + debug_start = int(debug_offs[22:30], 16) + debug_end = int(debug_offs[43:], 16) + + info.start = debug_start + info.size = debug_end - debug_start + else: + info.start = 0 + info.size = int(line[41:49], 16) + info.name = line[77:] self.funcs[addr] = info From 30ef923bf4477cd3ad6b4e889c19d244bc94b1f1 Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Thu, 22 Jun 2023 08:13:15 +0200 Subject: [PATCH 06/16] hotfix: messed up structure due to windows.h (#37) --- ISLE/define.h | 2 +- ISLE/isle.h | 3 +-- ISLE/main.cpp | 5 +++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ISLE/define.h b/ISLE/define.h index 7adc751e..27a347b7 100644 --- a/ISLE/define.h +++ b/ISLE/define.h @@ -1,7 +1,7 @@ #ifndef DEFINE_H #define DEFINE_H -#include +#include "legoinc.h" class Isle; diff --git a/ISLE/isle.h b/ISLE/isle.h index b11f4c09..8eb37fa7 100644 --- a/ISLE/isle.h +++ b/ISLE/isle.h @@ -1,8 +1,7 @@ #ifndef ISLE_H #define ISLE_H -#include - +#include "legoinc.h" #include "define.h" #include "legoomni.h" diff --git a/ISLE/main.cpp b/ISLE/main.cpp index 6e4c6621..632ed43d 100644 --- a/ISLE/main.cpp +++ b/ISLE/main.cpp @@ -1,9 +1,10 @@ #include -#include +#include "legoinc.h" #include "define.h" -#include "isle.h" + #include "legoomni.h" +#include "isle.h" // OFFSET: ISLE 0x401ca0 BOOL FindExistingInstance(void) From 598ca01df52d0187b86813e2fa7be41dea1ce620 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Thu, 22 Jun 2023 00:43:37 -0700 Subject: [PATCH 07/16] gitignore ISLE.EXE/LEGO1.DLL --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index b1838781..ef562599 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ Debug/ Release/ *.ncb +ISLE.EXE +LEGO1.DLL From 12395ac41aaf278fb980c0f81c8ba4301de2a00c Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Thu, 22 Jun 2023 00:44:28 -0700 Subject: [PATCH 08/16] reccmp: further improve accuracy --- tools/reccmp/reccmp.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tools/reccmp/reccmp.py b/tools/reccmp/reccmp.py index 36f917fa..993c51f2 100755 --- a/tools/reccmp/reccmp.py +++ b/tools/reccmp/reccmp.py @@ -198,7 +198,14 @@ def get_recompiled_address(self, filename, line): def sanitize(file, mnemonic, op_str): offsetplaceholder = '' - if mnemonic == 'call' or mnemonic == 'jmp': + op_str_is_number = False + try: + int(op_str, 16) + op_str_is_number = True + except ValueError: + pass + + if (mnemonic == 'call' or mnemonic == 'jmp') and op_str_is_number: # Filter out "calls" because the offsets we're not currently trying to # match offsets. As long as there's a call in the right place, it's # probably accurate. From 66a010a19fa9c2b635afb2897be88ec18364e72b Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Thu, 22 Jun 2023 00:45:56 -0700 Subject: [PATCH 09/16] move inlined MxDSObject::SetAtomId to main header We've confirmed that, despite a function being declared inline, msvc will still make a conventional call in some circumstances. As such, I feel like this is warranted because it's most likely what a developer would have actually written. --- ISLE/isle.h | 3 -- LEGO1/mxdsobject.cpp | 6 ---- LEGO1/mxdsobject.h | 4 ++- isle.mak | 82 ++----------------------------------------- isle.mdp | Bin 50688 -> 48128 bytes 5 files changed, 5 insertions(+), 90 deletions(-) diff --git a/ISLE/isle.h b/ISLE/isle.h index 8eb37fa7..e556a5c4 100644 --- a/ISLE/isle.h +++ b/ISLE/isle.h @@ -79,9 +79,6 @@ class Isle }; -// OFFSET: ISLE 0x401c40 -inline void MxDSObject::SetAtomId(MxAtomId p_atomId) { this->m_atomId = p_atomId; } - // OFFSET: ISLE 0x402c20 inline void Isle::Tick(BOOL sleepIfNotNextFrame) { diff --git a/LEGO1/mxdsobject.cpp b/LEGO1/mxdsobject.cpp index 8142ba9d..7323f446 100644 --- a/LEGO1/mxdsobject.cpp +++ b/LEGO1/mxdsobject.cpp @@ -34,9 +34,3 @@ void MxDSObject::SetObjectName(const char *p_name) } } } - -// OFFSET: LEGO1 0x10005530 -void MxDSObject::SetAtomId(MxAtomId p_atomId) -{ - this->m_atomId = p_atomId; -} diff --git a/LEGO1/mxdsobject.h b/LEGO1/mxdsobject.h index 4f59d4bb..468076f7 100644 --- a/LEGO1/mxdsobject.h +++ b/LEGO1/mxdsobject.h @@ -17,7 +17,9 @@ class MxDSObject : public MxCore inline void SetUnknown1c(int p_unk1c) { this->m_unk1c = p_unk1c; } inline void SetUnknown24(short p_unk24) { this->m_unk24 = p_unk24; } - void SetAtomId(MxAtomId p_atomId); + // OFFSET: ISLE 0x401c40 + // OFFSET: LEGO1 0x10005530 + inline void SetAtomId(MxAtomId p_atomId) { this->m_atomId = p_atomId; } private: int m_unk08; diff --git a/isle.mak b/isle.mak index acbf2236..53c8f2bd 100644 --- a/isle.mak +++ b/isle.mak @@ -493,9 +493,6 @@ DEP_CPP_DLLMA=\ # Begin Source File SOURCE=.\LEGO1\legoomni.cpp - -!IF "$(CFG)" == "LEGO1 - Win32 Release" - DEP_CPP_LEGOO=\ ".\LEGO1\lego3dmanager.h"\ ".\LEGO1\lego3dview.h"\ @@ -544,45 +541,13 @@ DEP_CPP_LEGOO=\ $(CPP) $(CPP_PROJ) $(SOURCE) -!ELSEIF "$(CFG)" == "LEGO1 - Win32 Debug" - -DEP_CPP_LEGOO=\ - ".\LEGO1\lego3dmanager.h"\ - ".\LEGO1\lego3dview.h"\ - ".\LEGO1\legoentity.h"\ - ".\LEGO1\legogamestate.h"\ - ".\LEGO1\legoinc.h"\ - ".\LEGO1\legoinputmanager.h"\ - ".\LEGO1\legonavcontroller.h"\ - ".\LEGO1\legoomni.h"\ - ".\LEGO1\legoroi.h"\ - ".\LEGO1\legovideomanager.h"\ - ".\LEGO1\mxatomid.h"\ - ".\LEGO1\mxbackgroundaudiomanager.h"\ - ".\LEGO1\mxbool.h"\ - ".\LEGO1\mxcore.h"\ - ".\LEGO1\mxcriticalsection.h"\ - ".\LEGO1\mxdsaction.h"\ - ".\LEGO1\mxdsfile.h"\ - ".\LEGO1\mxdsobject.h"\ - ".\LEGO1\mxeventmanager.h"\ - ".\LEGO1\mxomni.h"\ - ".\LEGO1\mxtimer.h"\ - ".\LEGO1\viewmanager.h"\ - - -"$(INTDIR)\legoomni.obj" : $(SOURCE) $(DEP_CPP_LEGOO) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -!ENDIF - # End Source File ################################################################################ # Begin Source File SOURCE=.\LEGO1\mxcriticalsection.cpp DEP_CPP_MXCRI=\ + ".\LEGO1\legoinc.h"\ ".\LEGO1\mxcriticalsection.h"\ @@ -596,6 +561,7 @@ DEP_CPP_MXCRI=\ SOURCE=.\LEGO1\mxautolocker.cpp DEP_CPP_MXAUT=\ + ".\LEGO1\legoinc.h"\ ".\LEGO1\mxautolocker.h"\ ".\LEGO1\mxcriticalsection.h"\ @@ -773,9 +739,6 @@ DEP_CPP_MXOMNICR=\ # Begin Source File SOURCE=.\LEGO1\legonavcontroller.cpp - -!IF "$(CFG)" == "LEGO1 - Win32 Release" - DEP_CPP_LEGON=\ ".\LEGO1\lego3dmanager.h"\ ".\LEGO1\lego3dview.h"\ @@ -825,40 +788,6 @@ DEP_CPP_LEGON=\ $(CPP) $(CPP_PROJ) $(SOURCE) -!ELSEIF "$(CFG)" == "LEGO1 - Win32 Debug" - -DEP_CPP_LEGON=\ - ".\LEGO1\lego3dmanager.h"\ - ".\LEGO1\lego3dview.h"\ - ".\LEGO1\legoentity.h"\ - ".\LEGO1\legogamestate.h"\ - ".\LEGO1\legoinc.h"\ - ".\LEGO1\legoinputmanager.h"\ - ".\LEGO1\legonavcontroller.h"\ - ".\LEGO1\legoomni.h"\ - ".\LEGO1\legoroi.h"\ - ".\LEGO1\legoutil.h"\ - ".\LEGO1\legovideomanager.h"\ - ".\LEGO1\mxatomid.h"\ - ".\LEGO1\mxbackgroundaudiomanager.h"\ - ".\LEGO1\mxbool.h"\ - ".\LEGO1\mxcore.h"\ - ".\LEGO1\mxcriticalsection.h"\ - ".\LEGO1\mxdsaction.h"\ - ".\LEGO1\mxdsfile.h"\ - ".\LEGO1\mxdsobject.h"\ - ".\LEGO1\mxeventmanager.h"\ - ".\LEGO1\mxomni.h"\ - ".\LEGO1\mxtimer.h"\ - ".\LEGO1\viewmanager.h"\ - - -"$(INTDIR)\legonavcontroller.obj" : $(SOURCE) $(DEP_CPP_LEGON) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -!ENDIF - # End Source File ################################################################################ # Begin Source File @@ -984,28 +913,21 @@ SOURCE=.\ISLE\main.cpp DEP_CPP_MAIN_=\ ".\ISLE\define.h"\ ".\ISLE\isle.h"\ - ".\ISLE\res\resource.h"\ ".\LEGO1\lego3dmanager.h"\ ".\LEGO1\lego3dview.h"\ - ".\LEGO1\legoanimationmanager.h"\ - ".\LEGO1\legobuildingmanager.h"\ ".\LEGO1\legoentity.h"\ ".\LEGO1\legogamestate.h"\ ".\LEGO1\legoinc.h"\ ".\LEGO1\legoinputmanager.h"\ - ".\LEGO1\legomodelpresenter.h"\ ".\LEGO1\legonavcontroller.h"\ ".\LEGO1\legoomni.h"\ - ".\LEGO1\legopartpresenter.h"\ ".\LEGO1\legoroi.h"\ ".\LEGO1\legovideomanager.h"\ - ".\LEGO1\legoworldpresenter.h"\ ".\LEGO1\mxatomid.h"\ ".\LEGO1\mxbackgroundaudiomanager.h"\ ".\LEGO1\mxbool.h"\ ".\LEGO1\mxcore.h"\ ".\LEGO1\mxcriticalsection.h"\ - ".\LEGO1\mxdirectdraw.h"\ ".\LEGO1\mxdsaction.h"\ ".\LEGO1\mxdsfile.h"\ ".\LEGO1\mxdsobject.h"\ diff --git a/isle.mdp b/isle.mdp index a35b41d166591b9a4cb0900d43013fff86967b52..0a0a443d90e0d5a067e5d1e0ed2b0de17456ba1b 100644 GIT binary patch literal 48128 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 Date: Thu, 22 Jun 2023 01:05:00 -0700 Subject: [PATCH 10/16] reccmp: support inlined functions that may have been compiled into both files --- .github/workflows/build.yml | 4 ++-- tools/reccmp/reccmp.py | 13 +++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 91a218f5..07fe411d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -60,8 +60,8 @@ jobs: C:\msys64\usr\bin\wget.exe https://legoisland.org/download/ISLE.EXE C:\msys64\usr\bin\wget.exe https://legoisland.org/download/LEGO1.DLL pip install capstone - python3 tools/reccmp/reccmp.py -H ISLEPROGRESS.HTML ISLE.EXE Release/ISLE.EXE Release/ISLE.PDB ISLE - python3 tools/reccmp/reccmp.py -H LEGO1PROGRESS.HTML LEGO1.DLL Release/LEGO1.DLL Release/LEGO1.PDB LEGO1 + python3 tools/reccmp/reccmp.py -H ISLEPROGRESS.HTML ISLE.EXE Release/ISLE.EXE Release/ISLE.PDB . + python3 tools/reccmp/reccmp.py -H LEGO1PROGRESS.HTML LEGO1.DLL Release/LEGO1.DLL Release/LEGO1.PDB . - name: Upload Artifact uses: actions/upload-artifact@master diff --git a/tools/reccmp/reccmp.py b/tools/reccmp/reccmp.py index 993c51f2..6e9826ce 100755 --- a/tools/reccmp/reccmp.py +++ b/tools/reccmp/reccmp.py @@ -259,6 +259,10 @@ def parse_asm(file, addr, size): total_accuracy = 0 htmlinsert = [] +# Generate basename of original file, used in locating OFFSET lines +basename = os.path.basename(os.path.splitext(original)[0]) +pattern = '// OFFSET:' + for subdir, dirs, files in os.walk(source): for file in files: srcfilename = os.path.join(os.path.abspath(subdir), file) @@ -273,9 +277,14 @@ def parse_asm(file, addr, size): if not line: break - if line.startswith('// OFFSET:'): - par = line[10:].strip().split() + line = line.strip() + + if line.startswith(pattern): + par = line[len(pattern):].strip().split() module = par[0] + if module != basename: + continue + addr = int(par[1], 16) find_open_bracket = line From a0fac56d4cfd93ed0e01d335109eb54199893792 Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Thu, 22 Jun 2023 18:19:48 +0200 Subject: [PATCH 11/16] lego: implement/match MxVideoParam exported functions (#36) Co-authored-by: itsmattkc --- LEGO1/mxrect32.h | 1 + LEGO1/mxvideoparam.cpp | 62 ++++++++++++++++++++++++++++++------------ LEGO1/mxvideoparam.h | 8 ++---- 3 files changed, 47 insertions(+), 24 deletions(-) diff --git a/LEGO1/mxrect32.h b/LEGO1/mxrect32.h index 092396f5..8ba5f6d6 100644 --- a/LEGO1/mxrect32.h +++ b/LEGO1/mxrect32.h @@ -4,6 +4,7 @@ class MxRect32 { public: + MxRect32() { } MxRect32(int p_left, int p_top, int p_right, int p_bottom) { this->m_left = p_left; diff --git a/LEGO1/mxvideoparam.cpp b/LEGO1/mxvideoparam.cpp index 2a33736a..063d97f7 100644 --- a/LEGO1/mxvideoparam.cpp +++ b/LEGO1/mxvideoparam.cpp @@ -6,31 +6,57 @@ // OFFSET: LEGO1 0x100bec70 MxVideoParam::MxVideoParam() { - this->m_flags = MxVideoParamFlags(); - this->m_right = 640; - this->m_bottom = 480; - this->m_left = 0; - this->m_top = 0; + this->m_rect.m_right = 640; + this->m_rect.m_bottom = 480; + this->m_rect.m_left = 0; + this->m_rect.m_top = 0; this->m_palette = 0; this->m_backBuffers = 0; this->m_unk1c = 0; this->m_deviceId = 0; } -// OFFSET: LEGO1 0x100becf0 -MxVideoParam &MxVideoParam::operator=(const MxVideoParam &other) +// OFFSET: LEGO1 0x100beca0 +MxVideoParam::MxVideoParam(MxRect32 &p_rect, MxPalette *p_pal, unsigned long p_backBuffers, MxVideoParamFlags &p_flags) { - m_flags = MxVideoParamFlags(); - m_left = other.m_left; - m_top = other.m_top; - m_right = other.m_right; - m_bottom = other.m_bottom; - m_palette = other.m_palette; - m_backBuffers = other.m_backBuffers; - m_flags = other.m_flags; - m_unk1c = other.m_unk1c; - m_deviceId = other.m_deviceId; - SetDeviceName(other.m_deviceId); + this->m_rect.m_left = p_rect.m_left; + this->m_rect.m_top = p_rect.m_top; + this->m_rect.m_right = p_rect.m_right; + this->m_rect.m_bottom = p_rect.m_bottom; + this->m_palette = p_pal; + this->m_backBuffers = p_backBuffers; + this->m_flags = p_flags; + this->m_unk1c = 0; + this->m_deviceId = NULL; +} + +// OFFSET: LEGO1 0x100becf0 +MxVideoParam::MxVideoParam(MxVideoParam &p_videoParam) +{ + this->m_rect.m_left = p_videoParam.m_rect.m_left; + this->m_rect.m_top = p_videoParam.m_rect.m_top; + this->m_rect.m_right = p_videoParam.m_rect.m_right; + this->m_rect.m_bottom = p_videoParam.m_rect.m_bottom; + this->m_palette = p_videoParam.m_palette; + this->m_backBuffers = p_videoParam.m_backBuffers; + this->m_flags = p_videoParam.m_flags; + this->m_unk1c = p_videoParam.m_unk1c; + this->m_deviceId = NULL; + SetDeviceName(p_videoParam.m_deviceId); +} + +// OFFSET: LEGO1 0x100bede0 +MxVideoParam &MxVideoParam::operator=(const MxVideoParam &p_videoParam) +{ + this->m_rect.m_left = p_videoParam.m_rect.m_left; + this->m_rect.m_top = p_videoParam.m_rect.m_top; + this->m_rect.m_right = p_videoParam.m_rect.m_right; + this->m_rect.m_bottom = p_videoParam.m_rect.m_bottom; + this->m_palette = p_videoParam.m_palette; + this->m_backBuffers = p_videoParam.m_backBuffers; + this->m_flags = p_videoParam.m_flags; + this->m_unk1c = p_videoParam.m_unk1c; + SetDeviceName(p_videoParam.m_deviceId); return *this; } diff --git a/LEGO1/mxvideoparam.h b/LEGO1/mxvideoparam.h index eedf3167..aeb50554 100644 --- a/LEGO1/mxvideoparam.h +++ b/LEGO1/mxvideoparam.h @@ -20,16 +20,12 @@ class MxVideoParam inline MxVideoParamFlags &flags() { return m_flags; } private: - int m_left; - int m_top; - int m_right; - int m_bottom; + MxRect32 m_rect; MxPalette *m_palette; - int m_backBuffers; + unsigned int m_backBuffers; MxVideoParamFlags m_flags; int m_unk1c; char *m_deviceId; - }; #endif // MXVIDEOPARAM_H From bd245dc6d860882aa49a5af0d7fbfdcd98466f4a Mon Sep 17 00:00:00 2001 From: MishaProductions <106913236+MishaProductions@users.noreply.github.com> Date: Thu, 22 Jun 2023 19:23:54 +0300 Subject: [PATCH 12/16] lego1: implement Get* functions (#39) --- LEGO1/legoomni.cpp | 31 +++++++++++++++++++++++++++++++ LEGO1/legoomni.h | 4 ++++ isle.mdp | Bin 48128 -> 51200 bytes 3 files changed, 35 insertions(+) diff --git a/LEGO1/legoomni.cpp b/LEGO1/legoomni.cpp index 062764f7..ff209e38 100644 --- a/LEGO1/legoomni.cpp +++ b/LEGO1/legoomni.cpp @@ -24,12 +24,43 @@ LegoOmni *Lego() return (LegoOmni *) MxOmni::GetInstance(); } +// OFFSET: LEGO1 0x10015710 +LegoSoundManager *SoundManager() +{ + return LegoOmni::GetInstance()->GetSoundManager(); +} + + // OFFSET: LEGO1 0x10015720 LegoVideoManager *VideoManager() { return LegoOmni::GetInstance()->GetVideoManager(); } +// OFFSET: LEGO1 0x10015730 +MxBackgroundAudioManager *BackgroundAudioManager() +{ + return LegoOmni::GetInstance()->GetBackgroundAudioManager(); +} + +// OFFSET: LEGO1 0x10015740 +LegoInputManager *InputManager() +{ + return LegoOmni::GetInstance()->GetInputManager(); +} + +// OFFSET: LEGO1 0x10015760 +LegoGameState *GameState() +{ + return LegoOmni::GetInstance()->GetGameState(); +} + +// OFFSET: LEGO1 0x10015780 +LegoNavController *NavController() +{ + return LegoOmni::GetInstance()->GetNavController(); +} + // OFFSET: LEGO1 0x1005b5f0 long LegoOmni::Notify(MxParam &p) { diff --git a/LEGO1/legoomni.h b/LEGO1/legoomni.h index 10f05665..6234dd7b 100644 --- a/LEGO1/legoomni.h +++ b/LEGO1/legoomni.h @@ -46,7 +46,11 @@ class LegoOmni : public MxOmni virtual unsigned char vtable40(); LegoVideoManager *GetVideoManager() { return (LegoVideoManager *) m_videoManager; } + LegoSoundManager *GetSoundManager() { return (LegoSoundManager *)m_soundManager;} + MxBackgroundAudioManager *GetBackgroundAudioManager() { return m_bkgAudioManager; } LegoInputManager *GetInputManager() { return m_inputMgr; } + LegoGameState *GetGameState() { return m_gameState; } + LegoNavController *GetNavController() { return m_navController; } private: int m_unk68; diff --git a/isle.mdp b/isle.mdp index 0a0a443d90e0d5a067e5d1e0ed2b0de17456ba1b..375126de1fb0e167099a3ea158190f92cebdac37 100644 GIT binary patch literal 51200 zcmeHQS#ul55pIa0LQ1lAkdkcqlAZWSVk4I5_&!BaGHJ@9MLWs?$6D?#iH-I^?Jj7z zT;*3ksqgQREnm;rWX2@D|7A{teqP(V-b^fx`z(_han*0-*| zIs-?+0XPEmnmPpjN3W?y;NMeiJsJNeco}SX4ju!B#iRT$p)x%P$N}%a(_=PSnj>%& zej&R6y(a_+0YZQfAOr{jLVyq;1PB2_fDj-A2!TV4z!9we{BUOm{t4eh=lgq93p&JO zEt@tA$B+S4gB_J z(JSi2gFztU|JY%_#kH-C)l08jy6uHaS1#Rheb-9dS!k5650>9TZ}altvyk0eKXJUbDSs-j|LQr&3o& zo&usPafCe?1KvH)aidAV`*jrij%1S|yg|=Oqrh{T?M*XygWk4f-`$O)Zs=HD#}mdG z_h{Qg2kbQ4?;H0hiu^H}+fj^jXvOsEju*Rj>crO9&GuDeC5dITMaFpE1U)C&@o>pC zhjFZF7xY+jJ9cqF+VQR3#CQVBns6dpL9_jlDXbmKcT=`P8apQ&+odaGDM-40+H4yx ztwAqI5!Aqr!ZeP2pDnG%UY4mEV|C`e!T8l|UpF0+)U)sUZn-2HuFXL&^@1^iF}9Db zF!A~VyRl7sR_s~Z=xXfG7)uF{7P-$GhQFXEl;rae7I-`>H;F6mc6V3aA{tK)zH;(C zqTvj6d|&MI4BeV-()iNFJ7Tyw3wm~p&R|=9f)k!C#9Z4oQ!lr=Y2-)tU3AfL@G0D! z>o6WBfsU~~!l^QQjA0gvGVdI3&_vA1W)0VN({#`Vv~6Q1m04@(ndNFZDI>>+j7^r% z+LNLQ@0F8m}oJud?|#>{>rSI zLQXQjWY!d7(zV43p~FftO$dv*p-?Zi5VJ|JV2T#c3NQv*luVbRRXI9+Y?eY$*`eV~ zP_t5sYn&G*I5P935S98Zu}ccU8OKHUU4-Qox8sJ68`|G2W3dH~AGmSu@N-2<)__y8 z9CLUflGPFQBJ<2lFSMI&z04^lv*eTswqEjNCb{RiSa;k<3`_D}`c0h}zpiwmK(Fv@ zW`%reKrg(&g!}o%n!X-q(tJwQ2yqm7Szdox-p78XLN9z=)Wr2d7xi^-eWQiyI#pxX zNtW>zRbahR>~2x%)eCW5IWt>x$$gy@B!7e=YKgVmJ2@|wQ8 zXRzkWY2+QWKZh~W_~=Ia?z0}A_?SgW4OMcc zSvgOyNI_5KQk)FZuqlO1d0tAP2bl?e*g-z~t`K{=$f8-kRXq-%;&RI5o;9hQVpp}e zAYY^}v#c^j7iHQ06X`0|Ps-whWqMVElChB!%xX8DkoBU6%4f(`YH@HgLX)Y@Q_`x| zKH~=WkyY_N;|7c5s$P`F$$4y5?{h_G>oVDDGf8`KPFvN9(~@>xyxvEs;7Y0&lqnwR zWVK44MDfU(b5*Bggvgz%Vv-R>idhvZokUIq%OrD1`EvQI%1bPylr~o7B%4IyxQ|$o zI#$I>uPahK>4X@DvT6efdpRep3QGMHSz%S|ap6Ffys#==&O9kItV)%OmL@l>wvc*J z$quX1lB@`NGn`2mBXB0l`k@jN>qQS$-Q=&1U2nk2y60$1#{h z-Pp!+&H63P#A(a(y3nNKU(aa*lTMz~r<3GGhhcX|;!YQtMb+r0Gw420tz2a#4(d8E zablJOP>q1P>*Kb%xVK5~s786}Waxj~(GH$5ubENEL@PhGPHPEo~^Wb2YS~z(W?&;R%dAREMTIbpKt> z`XEeo==@0}dWa6V4xMc%f53j=;@Fu(kZ^JwAF1!ct!w2vod<0iv8CGBwuEBNq7}j7NK7kFm z0iVK6*o4pE7Hq-i@CEz)b|;>T&g`sM z{}X;d9(f^e;VJL=6M4>`Ak{t7(>*(V83%J@uS(}g+9Q44Q}uOqcU5&y-PpQzaSrC; zuKDw{FfN|tKZ%ut!+^5k{p;XpO_~Y@=HYS0 z1n46%KnxHA!~iis49p?}pZ_?AiJq&S?_eG7%&*U)ilh@UKnxHA!~iis3^*9L`A_l( z92Cv;zZc*TW`Gu92@b;%I0{e9w6>&Noq;8ogO2!9^+EiBeiH-405L!e5Cg=(Y%oCi zzu6c^(t;Qu28aP-fEf5W3{d{>=dkzaw><{O;RKw7Wmthza2n1$`YMqItr=Lt-0xh8 z{`WUZGoB0NFNE-av)h8~zw`Kg=(d;p!%O1Bs`#)bKD;gZ`E>Kfrua<1i2-7O7$63S z0b*eP7@+*${&7!FCI*NBVt^PR1|Aj$DF64cjKu!P@id%;XW&_Q4xWc!!8v$gf5f1t z?h6A;aN_Uc!Ib|KOwey)fEXYKhyh|?))=7t->i)&=|c<<1H=F^Kn&bJ1C;-}f6iv9 z#Y^xqyaMOpRd@}44X?u+v!op9;$Wc2|FO${E7!L+ubjJZ?sk~0t)9CTM1eO77NApo zz4G;Yy=qWotG>)*20a7y)Y?I=Pi9@!H7%H z&HPShRS(>}a_#1&UK9*cF9}iZFim1F@diQG9bR%Z*&c^cKTHNyi#J>?23{PDaxV|M z!>$V(CcERj>iVJ!9;f{v+C`m%Bxlkan2`#naT0ciZ@K#2^|D;))-cGj+bqRioyzTn z{UB|x+_z~K^%W_s%Ec2ePvfxP9lmQ*E}m?A{@p>Aj+4GO?uSwwNAKGq4$E$L__Cw- zG>x1fKh4k`b-b#Xb$?>DRfU;D;_WFb0)LKc@gAkye?yySC4aeb@qXcC z&Eaay2E%$l?w0gL$lWTPTRv~Aoy5BFF)Jr`i`*@8x3tl0vABr6*d8N3+YCJ;L^3dYS*4D?juuk6**!aTB20?y3590FAC%cuERudMBIc{9V z_+No73z!-oX>cn7SBs7`z~=-|9~)^}JSAI9MMfHMC9hbEnbWMnDe6~~R0C6ue(OwnLMILJzaU&PEF&%Jfvn2KWtFCj(d%?w#$ zYKDp59hx!67-p?sIo4+6(E_;_2AIQhz%YRu=J#wc{#+%vF?V>f&_c~5o59NrT#s-q zvL0q=KBX)m&LU3#hdY?Ns-*?Z;-0_^E>CIfp#EuQwN#vo zE)zlCr&k~g2{m+?Xf%t8%E`VtnlGM~{*T0yD&1`E7l&0On;oDc)ocdgNR8MDM2nGH z;cNO-PTJfvT9wR5n_;L5!gxN~48kFw%0`>9OJYN|uzX4z8kzgV=TGIK%~)i#?PBtz znuWG4xM+3L8@)xlC)hIIVnFfnil1ZYkT134JjC-Pv)&7fE0=HFru`8;VcH+r>8IIL zXn&;rk%x@5KjL=Ej!n&Th4#lFb^2M4&i+{Jl7>{tiEiVzk|qQ_R-&rAN)}9Y(yYN? zW`ZBqsrQsLu;)b-&El=*EhSyfqYCa>lg2G2U5hj7Lu!#_GgEX{#nx{r>AHSag-_p7 z(lw|uHfn&`6yq7SU$jv5mXfYp99(%aScas{UText`;kp}O}Xh~Go2Kba%vpg?Ds_> ztSyplHdA^Rx0G~399McTGbPQw6p+Z3G(l>LN4ce>d#IA)Q6uMOpNbMPc5cEH`9z4> z1XV_&27*PJ3)lRX_-grU;*~6<5;it*icT_cbihRD*o0M9Cqg{sPJ&h~g?lw7Z1$|k zDWk$B>}hF0jkvIhu4bMR88%VXqGgB;n=KS68qr}Bt(dBe<=D>Ogeq1ep%$xI;0sF! zi=>Lv0hygFGmdTIvhtFw#TjXnlsv@uB}*rVal=W+nU5#DX1C{or#4TUwl7nT_LO1s zGU0iOb>DKQD@@wv?q(A97f7}8E*txxNq`5QnB@dCcR*Y^IIdCwj@DxThTY zl0#9Qf44fjC5NK8S3?d3Ub0Z;5$-*74o&CK^>?Gpn=qY2m+zCBDca|A=)$2;f3jPJ z^hFF11H`}&-_OBgaJBOttizr8bs~fqAO?s5Vt^PR28aP-fEXYKW|)Bs(1o|)B3y!1 zScA9W9e5Xh1HXme!F%vN#snY0@8J*dA$$ZM!v*qtaQSt{+m+flIp)TYnIB3 z;(P+MsV6plTa34HR9{ox{^M}RJSa;1aiqhmn|AwV$ttCv@4bS@9@q8#; zi?>?&pyOD+mD&e*o0#gqVfkP=6&o+Ikh?|hR#n@kDEZ-VXUN^6a=X*@$%_Ssy_#~s z%I)flRjCm@_cDI?NB#U)EXjC5o)xclJ1%NLDf Date: Fri, 23 Jun 2023 02:00:51 -0400 Subject: [PATCH 13/16] Use bitfield for MxVideoParamFlags (#40) * Use bitfield for MxVideoParamFlags Using a bitfield for MxVideoParamFlags results in the same xor/and logic that was partially inlined in the header file. This approach is a lot cleaner and there's a good chance this is what the devs would have landed on. The code generation is really finicky -- other inlines in the header influence the code just by being there -- so I decided to stub out all of them. This got the match to 100%. While I was in isle.cpp::SetupVideoFlags, I changed the signature so that the `m_using16bit` parameter is just `using16bit`. * fix: cast Set16Bit inline arg to byte --- ISLE/isle.cpp | 24 +++---- ISLE/isle.h | 2 +- LEGO1/mxvideoparamflags.cpp | 20 +++--- LEGO1/mxvideoparamflags.h | 137 +++++++++++++----------------------- 4 files changed, 71 insertions(+), 112 deletions(-) diff --git a/ISLE/isle.cpp b/ISLE/isle.cpp index 9f3c50c4..b6a19ab2 100644 --- a/ISLE/isle.cpp +++ b/ISLE/isle.cpp @@ -36,7 +36,7 @@ Isle::Isle() m_windowActive = 1; m_videoParam = MxVideoParam(MxRect32(0, 0, 639, 479), NULL, 1, MxVideoParamFlags()); - m_videoParam.flags().Enable16Bit(MxDirectDraw::GetPrimaryBitDepth() == 16); + m_videoParam.flags().Set16Bit(MxDirectDraw::GetPrimaryBitDepth() == 16); m_windowHandle = NULL; m_cursorArrow = NULL; @@ -228,22 +228,22 @@ void Isle::LoadConfig() // OFFSET: ISLE 0x401560 void Isle::SetupVideoFlags(BOOL fullScreen, BOOL flipSurfaces, BOOL backBuffers, - BOOL using8bit, BOOL m_using16bit, BOOL param_6, BOOL param_7, + BOOL using8bit, BOOL using16bit, BOOL param_6, BOOL param_7, BOOL wideViewAngle, char *deviceId) { - m_videoParam.flags().EnableFullScreen(fullScreen); - m_videoParam.flags().EnableFlipSurfaces(flipSurfaces); - m_videoParam.flags().EnableBackBuffers(backBuffers); - m_videoParam.flags().EnableUnknown1(param_6); - m_videoParam.flags().SetUnknown3(param_7); - m_videoParam.flags().EnableWideViewAngle(wideViewAngle); - m_videoParam.flags().EnableUnknown2(); + m_videoParam.flags().SetFullScreen(fullScreen); + m_videoParam.flags().SetFlipSurfaces(flipSurfaces); + m_videoParam.flags().SetBackBuffers(!backBuffers); + m_videoParam.flags().Set_f2bit0(!param_6); + m_videoParam.flags().Set_f1bit7(param_7); + m_videoParam.flags().SetWideViewAngle(wideViewAngle); + m_videoParam.flags().Set_f2bit1(1); m_videoParam.SetDeviceName(deviceId); if (using8bit) { - m_videoParam.flags().Set8Bit(); + m_videoParam.flags().Set16Bit(0); } - if (m_using16bit) { - m_videoParam.flags().Set16Bit(); + if (using16bit) { + m_videoParam.flags().Set16Bit(1); } } diff --git a/ISLE/isle.h b/ISLE/isle.h index e556a5c4..0b31d748 100644 --- a/ISLE/isle.h +++ b/ISLE/isle.h @@ -27,7 +27,7 @@ class Isle BOOL SetupLegoOmni(); void LoadConfig(); void SetupVideoFlags(BOOL fullScreen, BOOL flipSurfaces, BOOL backBuffers, - BOOL using8bit, BOOL m_using16bit, BOOL param_6, BOOL param_7, + BOOL using8bit, BOOL using16bit, BOOL param_6, BOOL param_7, BOOL wideViewAngle, char *deviceId); void SetupCursor(WPARAM wParam); diff --git a/LEGO1/mxvideoparamflags.cpp b/LEGO1/mxvideoparamflags.cpp index 97f01515..07fc9ee3 100644 --- a/LEGO1/mxvideoparamflags.cpp +++ b/LEGO1/mxvideoparamflags.cpp @@ -3,15 +3,13 @@ // OFFSET: LEGO1 0x100bec40 MxVideoParamFlags::MxVideoParamFlags() { - // TODO: convert to EnableXXX function calls - unsigned char bVar1 = this->m_flags1; - this->m_flags1 = bVar1 & 0xfe; - this->m_flags1 = bVar1 & 0xfc; - this->m_flags1 = bVar1 & 0xf8; - this->m_flags1 = bVar1 & 0xf0; - this->m_flags1 = bVar1 & 0xe0; - this->m_flags2 = this->m_flags2 | 2; - this->m_flags1 = bVar1 & 0xc0; - this->m_flags1 = bVar1 & 0xc0 | 0x40; - this->m_flags1 = 0xc0; + this->SetFullScreen(0); + this->SetFlipSurfaces(0); + this->SetBackBuffers(0); + this->Set_f1bit3(0); + this->Set_f1bit4(0); + this->Set16Bit(0); + this->SetWideViewAngle(1); + this->Set_f1bit7(1); + this->Set_f2bit1(1); } diff --git a/LEGO1/mxvideoparamflags.h b/LEGO1/mxvideoparamflags.h index ef1b971d..ba7d821e 100644 --- a/LEGO1/mxvideoparamflags.h +++ b/LEGO1/mxvideoparamflags.h @@ -1,88 +1,49 @@ -#ifndef MXVIDEOPARAMFLAGS_H -#define MXVIDEOPARAMFLAGS_H - -#include "legoinc.h" - -class MxVideoParamFlags -{ -public: - enum LowFlags - { - FULL_SCREEN = 0x1, - FLIP_SURFACES = 0x2, - BACK_BUFFERS = 0x4, - ENABLE_16BIT = 0x20, - WIDE_VIEW_ANGLE = 0x40, - UNKNOWN3 = 0x80 - }; - - enum HighFlags - { - UNKNOWN1 = 0x1, - UNKNOWN2 = 0x2 - }; - - __declspec(dllexport) MxVideoParamFlags(); - - inline void EnableFullScreen(BOOL e) - { - m_flags1 = (m_flags1 ^ (e << 0)) & FULL_SCREEN ^ m_flags1; - } - - inline void EnableFlipSurfaces(BOOL e) - { - m_flags1 = (m_flags1 ^ (e << 1)) & FLIP_SURFACES ^ m_flags1; - } - - inline void EnableBackBuffers(BOOL e) - { - m_flags1 = (m_flags1 ^ ((!e) << 2)) & BACK_BUFFERS ^ m_flags1; - } - - inline void SetUnknown3(BOOL e) - { - m_flags1 = (m_flags1 ^ (e << 7)) & UNKNOWN3 ^ m_flags1; - } - - inline void Set8Bit() - { - m_flags1 &= ~ENABLE_16BIT; - } - - inline void Set16Bit() - { - m_flags1 |= ENABLE_16BIT; - } - - inline void Enable16Bit(unsigned char e) - { - m_flags1 = ((e << 5) ^ m_flags1) & ENABLE_16BIT ^ m_flags1; - } - - inline void EnableWideViewAngle(BOOL e) - { - m_flags1 = (m_flags1 ^ (e << 6)) & WIDE_VIEW_ANGLE ^ m_flags1; - } - - inline void EnableUnknown1(BOOL e) - { - m_flags2 = (m_flags2 ^ ((!e) << 0)) & UNKNOWN1 ^ m_flags2; - } - - inline void EnableUnknown2(BOOL e) - { - m_flags2 = (m_flags2 ^ (e << 1)) & UNKNOWN2 ^ m_flags2; - } - - inline void EnableUnknown2() - { - m_flags2 |= UNKNOWN2; - } - -private: - unsigned char m_flags1; - unsigned char m_flags2; - -}; - -#endif // MXVIDEOPARAMFLAGS_H +#ifndef MXVIDEOPARAMFLAGS_H +#define MXVIDEOPARAMFLAGS_H + +#include "legoinc.h" + +// Must be union with struct for match. +typedef union { + struct { + BYTE bit0: 1; + BYTE bit1: 1; + BYTE bit2: 1; + BYTE bit3: 1; + BYTE bit4: 1; + BYTE bit5: 1; + BYTE bit6: 1; + BYTE bit7: 1; + }; + // BYTE all; // ? +} flag_bitfield; + +class MxVideoParamFlags +{ +public: + __declspec(dllexport) MxVideoParamFlags(); + + inline void SetFullScreen(BOOL e) { m_flags1.bit0 = e; } + inline void SetFlipSurfaces(BOOL e) { m_flags1.bit1 = e; } + inline void SetBackBuffers(BOOL e) { m_flags1.bit2 = e; } + inline void Set_f1bit3(BOOL e) { m_flags1.bit3 = e; } + inline void Set_f1bit4(BOOL e) { m_flags1.bit4 = e; } + inline void Set16Bit(BYTE e) { m_flags1.bit5 = e; } + inline void SetWideViewAngle(BOOL e) { m_flags1.bit6 = e; } + inline void Set_f1bit7(BOOL e) { m_flags1.bit7 = e; } + inline void Set_f2bit0(BOOL e) { m_flags2.bit0 = e; } + inline void Set_f2bit1(BOOL e) { m_flags2.bit1 = e; } + inline void Set_f2bit2(BOOL e) { m_flags2.bit2 = e; } + inline void Set_f2bit3(BOOL e) { m_flags2.bit3 = e; } + inline void Set_f2bit4(BOOL e) { m_flags2.bit4 = e; } + inline void Set_f2bit5(BOOL e) { m_flags2.bit5 = e; } + inline void Set_f2bit6(BOOL e) { m_flags2.bit6 = e; } + inline void Set_f2bit7(BOOL e) { m_flags2.bit7 = e; } + +private: + flag_bitfield m_flags1; + flag_bitfield m_flags2; + +}; + +#endif // MXVIDEOPARAMFLAGS_H From 7dbb06eef32f41385873a03eb0dac67ab32283a2 Mon Sep 17 00:00:00 2001 From: Anonymous Maarten Date: Fri, 23 Jun 2023 18:17:41 +0200 Subject: [PATCH 14/16] Convert all sources eol's to nl (#41) --- .gitattributes | 7 + LEGO1/mxautolocker.cpp | 32 +- LEGO1/mxautolocker.h | 30 +- LEGO1/mxomnicreateflags.cpp | 34 +- LEGO1/mxomnicreateparam.cpp | 20 +- LEGO1/mxstring.cpp | 162 +- LEGO1/mxtimer.cpp | 74 +- LEGO1/mxvideoparam.cpp | 176 +-- LEGO1/mxvideoparamflags.cpp | 30 +- LEGO1/mxvideoparamflags.h | 98 +- isle.mak | 2810 +++++++++++++++++------------------ 11 files changed, 1740 insertions(+), 1733 deletions(-) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..232342c7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,7 @@ +*.MD text eol=lf diff=markdown +*.cpp text eol=lf diff=cpp +*.h text eol=lf diff=cpp +*.py text eol=lf diff=python +*.html text eol=lf diff=html +*.mdp binary +*.mak text eol=crlf diff --git a/LEGO1/mxautolocker.cpp b/LEGO1/mxautolocker.cpp index f5cf0853..b5691d6b 100644 --- a/LEGO1/mxautolocker.cpp +++ b/LEGO1/mxautolocker.cpp @@ -1,16 +1,16 @@ -#include "mxautolocker.h" - -// OFFSET: LEGO1 0x100b8ed0 -MxAutoLocker::MxAutoLocker(MxCriticalSection *critsect) -{ - this->m_criticalSection = critsect; - if (this->m_criticalSection != 0) - this->m_criticalSection->Enter(); -} - -// OFFSET: LEGO1 0x100b8ef0 -MxAutoLocker::~MxAutoLocker() -{ - if (this->m_criticalSection != 0) - this->m_criticalSection->Leave(); -} +#include "mxautolocker.h" + +// OFFSET: LEGO1 0x100b8ed0 +MxAutoLocker::MxAutoLocker(MxCriticalSection *critsect) +{ + this->m_criticalSection = critsect; + if (this->m_criticalSection != 0) + this->m_criticalSection->Enter(); +} + +// OFFSET: LEGO1 0x100b8ef0 +MxAutoLocker::~MxAutoLocker() +{ + if (this->m_criticalSection != 0) + this->m_criticalSection->Leave(); +} diff --git a/LEGO1/mxautolocker.h b/LEGO1/mxautolocker.h index b195ec45..16dcb907 100644 --- a/LEGO1/mxautolocker.h +++ b/LEGO1/mxautolocker.h @@ -1,15 +1,15 @@ -#ifndef MXAUTOLOCKER_H -#define MXAUTOLOCKER_H - -#include "mxcriticalsection.h" - -class MxAutoLocker -{ - public: - MxAutoLocker(MxCriticalSection* cs); - virtual ~MxAutoLocker(); - private: - MxCriticalSection* m_criticalSection; -}; - -#endif // MXAUTOLOCKER_H +#ifndef MXAUTOLOCKER_H +#define MXAUTOLOCKER_H + +#include "mxcriticalsection.h" + +class MxAutoLocker +{ + public: + MxAutoLocker(MxCriticalSection* cs); + virtual ~MxAutoLocker(); + private: + MxCriticalSection* m_criticalSection; +}; + +#endif // MXAUTOLOCKER_H diff --git a/LEGO1/mxomnicreateflags.cpp b/LEGO1/mxomnicreateflags.cpp index ebed554c..9826dc5b 100644 --- a/LEGO1/mxomnicreateflags.cpp +++ b/LEGO1/mxomnicreateflags.cpp @@ -1,17 +1,17 @@ -#include "mxomnicreateflags.h" - -// OFFSET: LEGO1 0x100b0a30 -MxOmniCreateFlags::MxOmniCreateFlags() -{ - this->CreateObjectFactory(MX_TRUE); - this->CreateVariableTable(MX_TRUE); - this->CreateTickleManager(MX_TRUE); - this->CreateNotificationManager(MX_TRUE); - this->CreateVideoManager(MX_TRUE); - this->CreateSoundManager(MX_TRUE); - this->CreateMusicManager(MX_TRUE); - this->CreateEventManager(MX_TRUE); - - this->CreateTimer(MX_TRUE); - this->CreateStreamer(MX_TRUE); -} +#include "mxomnicreateflags.h" + +// OFFSET: LEGO1 0x100b0a30 +MxOmniCreateFlags::MxOmniCreateFlags() +{ + this->CreateObjectFactory(MX_TRUE); + this->CreateVariableTable(MX_TRUE); + this->CreateTickleManager(MX_TRUE); + this->CreateNotificationManager(MX_TRUE); + this->CreateVideoManager(MX_TRUE); + this->CreateSoundManager(MX_TRUE); + this->CreateMusicManager(MX_TRUE); + this->CreateEventManager(MX_TRUE); + + this->CreateTimer(MX_TRUE); + this->CreateStreamer(MX_TRUE); +} diff --git a/LEGO1/mxomnicreateparam.cpp b/LEGO1/mxomnicreateparam.cpp index 65db5b8d..8427ac02 100644 --- a/LEGO1/mxomnicreateparam.cpp +++ b/LEGO1/mxomnicreateparam.cpp @@ -1,10 +1,10 @@ -#include "mxomnicreateparam.h" - -// OFFSET: LEGO1 0x100b0b00 -MxOmniCreateParam::MxOmniCreateParam(const char *mediaPath, struct HWND__ *windowHandle, MxVideoParam &vparam, MxOmniCreateFlags flags) -{ - this->m_mediaPath = mediaPath; - this->m_windowHandle = (HWND) windowHandle; - this->m_videoParam = vparam; - this->m_createFlags = flags; -} +#include "mxomnicreateparam.h" + +// OFFSET: LEGO1 0x100b0b00 +MxOmniCreateParam::MxOmniCreateParam(const char *mediaPath, struct HWND__ *windowHandle, MxVideoParam &vparam, MxOmniCreateFlags flags) +{ + this->m_mediaPath = mediaPath; + this->m_windowHandle = (HWND) windowHandle; + this->m_videoParam = vparam; + this->m_createFlags = flags; +} diff --git a/LEGO1/mxstring.cpp b/LEGO1/mxstring.cpp index 37d7b7e6..09130a39 100644 --- a/LEGO1/mxstring.cpp +++ b/LEGO1/mxstring.cpp @@ -1,81 +1,81 @@ -#include "mxstring.h" -#include -#include - -// OFFSET: LEGO1 0x100ae200 -MxString::MxString() -{ - // Set string to one char in length and set that char to null terminator - this->m_data = (char *)malloc(1); - this->m_data[0] = 0; - this->m_length = 0; -} - -// OFFSET: LEGO1 0x100ae2a0 -MxString::MxString(const MxString &str) -{ - this->m_length = str.m_length; - this->m_data = (char *)malloc(this->m_length + 1); - strcpy(this->m_data, str.m_data); -} - -// OFFSET: LEGO1 0x100ae350 -MxString::MxString(const char *str) -{ - if (str) { - this->m_length = strlen(str); - this->m_data = (char *)malloc(this->m_length + 1); - strcpy(this->m_data, str); - } else { - this->m_data = (char *)malloc(1); - this->m_data[0] = 0; - this->m_length = 0; - } -} - -// OFFSET: LEGO1 0x100ae420 -MxString::~MxString() -{ - free(this->m_data); -} - -// OFFSET: LEGO1 0x100ae490 -void MxString::ToUpperCase() -{ - strupr(this->m_data); -} - -// OFFSET: LEGO1 0x100ae4a0 -void MxString::ToLowerCase() -{ - strlwr(this->m_data); -} - -// OFFSET: LEGO1 0x100ae4b0 -const MxString &MxString::operator=(MxString *param) -{ - if (this->m_data != param->m_data) - { - free(this->m_data); - this->m_length = param->m_length; - this->m_data = (char *)malloc(this->m_length + 1); - strcpy(this->m_data, param->m_data); - } - - return *this; -} - -// TODO: this *mostly* matches, again weird with the comparison -// OFFSET: LEGO1 0x100ae510 -const MxString &MxString::operator=(const char *param) -{ - if (this->m_data != param) - { - free(this->m_data); - this->m_length = strlen(param); - this->m_data = (char *)malloc(this->m_length + 1); - strcpy(this->m_data, param); - } - - return *this; -} +#include "mxstring.h" +#include +#include + +// OFFSET: LEGO1 0x100ae200 +MxString::MxString() +{ + // Set string to one char in length and set that char to null terminator + this->m_data = (char *)malloc(1); + this->m_data[0] = 0; + this->m_length = 0; +} + +// OFFSET: LEGO1 0x100ae2a0 +MxString::MxString(const MxString &str) +{ + this->m_length = str.m_length; + this->m_data = (char *)malloc(this->m_length + 1); + strcpy(this->m_data, str.m_data); +} + +// OFFSET: LEGO1 0x100ae350 +MxString::MxString(const char *str) +{ + if (str) { + this->m_length = strlen(str); + this->m_data = (char *)malloc(this->m_length + 1); + strcpy(this->m_data, str); + } else { + this->m_data = (char *)malloc(1); + this->m_data[0] = 0; + this->m_length = 0; + } +} + +// OFFSET: LEGO1 0x100ae420 +MxString::~MxString() +{ + free(this->m_data); +} + +// OFFSET: LEGO1 0x100ae490 +void MxString::ToUpperCase() +{ + strupr(this->m_data); +} + +// OFFSET: LEGO1 0x100ae4a0 +void MxString::ToLowerCase() +{ + strlwr(this->m_data); +} + +// OFFSET: LEGO1 0x100ae4b0 +const MxString &MxString::operator=(MxString *param) +{ + if (this->m_data != param->m_data) + { + free(this->m_data); + this->m_length = param->m_length; + this->m_data = (char *)malloc(this->m_length + 1); + strcpy(this->m_data, param->m_data); + } + + return *this; +} + +// TODO: this *mostly* matches, again weird with the comparison +// OFFSET: LEGO1 0x100ae510 +const MxString &MxString::operator=(const char *param) +{ + if (this->m_data != param) + { + free(this->m_data); + this->m_length = strlen(param); + this->m_data = (char *)malloc(this->m_length + 1); + strcpy(this->m_data, param); + } + + return *this; +} diff --git a/LEGO1/mxtimer.cpp b/LEGO1/mxtimer.cpp index 782ccd70..0b51e9da 100644 --- a/LEGO1/mxtimer.cpp +++ b/LEGO1/mxtimer.cpp @@ -1,42 +1,42 @@ -#include "mxtimer.h" - -#include "legoinc.h" - -// 0x10101414 -long MxTimer::s_LastTimeCalculated = 0; - -// 0x10101418 -long MxTimer::s_LastTimeTimerStarted = 0; - -// OFFSET: LEGO1 0x100ae060 -MxTimer::MxTimer() +#include "mxtimer.h" + +#include "legoinc.h" + +// 0x10101414 +long MxTimer::s_LastTimeCalculated = 0; + +// 0x10101418 +long MxTimer::s_LastTimeTimerStarted = 0; + +// OFFSET: LEGO1 0x100ae060 +MxTimer::MxTimer() { this->m_isRunning = MX_FALSE; m_startTime = timeGetTime(); // yeah this is somehow what the asm is - s_LastTimeCalculated = m_startTime; -} - -// OFFSET: LEGO1 0x100ae160 -void MxTimer::Start() -{ + s_LastTimeCalculated = m_startTime; +} + +// OFFSET: LEGO1 0x100ae160 +void MxTimer::Start() +{ s_LastTimeTimerStarted = this->GetRealTime(); - this->m_isRunning = MX_TRUE; -} - -// OFFSET: LEGO1 0x100ae180 -void MxTimer::Stop() -{ - long elapsed = this->GetRealTime(); - long startTime = elapsed - MxTimer::s_LastTimeTimerStarted; - this->m_isRunning = MX_FALSE; - // this feels very stupid but it's what the assembly does - this->m_startTime = this->m_startTime + startTime - 5; -} - -// OFFSET: LEGO1 0x100ae140 -long MxTimer::GetRealTime() -{ - MxTimer::s_LastTimeCalculated = timeGetTime(); - return MxTimer::s_LastTimeCalculated - this->m_startTime; -} + this->m_isRunning = MX_TRUE; +} + +// OFFSET: LEGO1 0x100ae180 +void MxTimer::Stop() +{ + long elapsed = this->GetRealTime(); + long startTime = elapsed - MxTimer::s_LastTimeTimerStarted; + this->m_isRunning = MX_FALSE; + // this feels very stupid but it's what the assembly does + this->m_startTime = this->m_startTime + startTime - 5; +} + +// OFFSET: LEGO1 0x100ae140 +long MxTimer::GetRealTime() +{ + MxTimer::s_LastTimeCalculated = timeGetTime(); + return MxTimer::s_LastTimeCalculated - this->m_startTime; +} diff --git a/LEGO1/mxvideoparam.cpp b/LEGO1/mxvideoparam.cpp index 063d97f7..b72107c7 100644 --- a/LEGO1/mxvideoparam.cpp +++ b/LEGO1/mxvideoparam.cpp @@ -1,88 +1,88 @@ -#include "mxvideoparam.h" - -#include -#include - -// OFFSET: LEGO1 0x100bec70 -MxVideoParam::MxVideoParam() -{ - this->m_rect.m_right = 640; - this->m_rect.m_bottom = 480; - this->m_rect.m_left = 0; - this->m_rect.m_top = 0; - this->m_palette = 0; - this->m_backBuffers = 0; - this->m_unk1c = 0; - this->m_deviceId = 0; -} - -// OFFSET: LEGO1 0x100beca0 -MxVideoParam::MxVideoParam(MxRect32 &p_rect, MxPalette *p_pal, unsigned long p_backBuffers, MxVideoParamFlags &p_flags) -{ - this->m_rect.m_left = p_rect.m_left; - this->m_rect.m_top = p_rect.m_top; - this->m_rect.m_right = p_rect.m_right; - this->m_rect.m_bottom = p_rect.m_bottom; - this->m_palette = p_pal; - this->m_backBuffers = p_backBuffers; - this->m_flags = p_flags; - this->m_unk1c = 0; - this->m_deviceId = NULL; -} - -// OFFSET: LEGO1 0x100becf0 -MxVideoParam::MxVideoParam(MxVideoParam &p_videoParam) -{ - this->m_rect.m_left = p_videoParam.m_rect.m_left; - this->m_rect.m_top = p_videoParam.m_rect.m_top; - this->m_rect.m_right = p_videoParam.m_rect.m_right; - this->m_rect.m_bottom = p_videoParam.m_rect.m_bottom; - this->m_palette = p_videoParam.m_palette; - this->m_backBuffers = p_videoParam.m_backBuffers; - this->m_flags = p_videoParam.m_flags; - this->m_unk1c = p_videoParam.m_unk1c; - this->m_deviceId = NULL; - SetDeviceName(p_videoParam.m_deviceId); -} - -// OFFSET: LEGO1 0x100bede0 -MxVideoParam &MxVideoParam::operator=(const MxVideoParam &p_videoParam) -{ - this->m_rect.m_left = p_videoParam.m_rect.m_left; - this->m_rect.m_top = p_videoParam.m_rect.m_top; - this->m_rect.m_right = p_videoParam.m_rect.m_right; - this->m_rect.m_bottom = p_videoParam.m_rect.m_bottom; - this->m_palette = p_videoParam.m_palette; - this->m_backBuffers = p_videoParam.m_backBuffers; - this->m_flags = p_videoParam.m_flags; - this->m_unk1c = p_videoParam.m_unk1c; - SetDeviceName(p_videoParam.m_deviceId); - - return *this; -} - -// OFFSET: LEGO1 0x100bed70 -void MxVideoParam::SetDeviceName(char *id) -{ - if (this->m_deviceId != 0) - free(this->m_deviceId); - - if (id != 0) - { - this->m_deviceId = (char *)malloc(strlen(id) + 1); - - if (this->m_deviceId != 0) { - strcpy(this->m_deviceId, id); - } - } - else { - this->m_deviceId = 0; - } -} - -// OFFSET: LEGO1 0x100bed50 -MxVideoParam::~MxVideoParam() -{ - if (this->m_deviceId != 0) - free(this->m_deviceId); -} +#include "mxvideoparam.h" + +#include +#include + +// OFFSET: LEGO1 0x100bec70 +MxVideoParam::MxVideoParam() +{ + this->m_rect.m_right = 640; + this->m_rect.m_bottom = 480; + this->m_rect.m_left = 0; + this->m_rect.m_top = 0; + this->m_palette = 0; + this->m_backBuffers = 0; + this->m_unk1c = 0; + this->m_deviceId = 0; +} + +// OFFSET: LEGO1 0x100beca0 +MxVideoParam::MxVideoParam(MxRect32 &p_rect, MxPalette *p_pal, unsigned long p_backBuffers, MxVideoParamFlags &p_flags) +{ + this->m_rect.m_left = p_rect.m_left; + this->m_rect.m_top = p_rect.m_top; + this->m_rect.m_right = p_rect.m_right; + this->m_rect.m_bottom = p_rect.m_bottom; + this->m_palette = p_pal; + this->m_backBuffers = p_backBuffers; + this->m_flags = p_flags; + this->m_unk1c = 0; + this->m_deviceId = NULL; +} + +// OFFSET: LEGO1 0x100becf0 +MxVideoParam::MxVideoParam(MxVideoParam &p_videoParam) +{ + this->m_rect.m_left = p_videoParam.m_rect.m_left; + this->m_rect.m_top = p_videoParam.m_rect.m_top; + this->m_rect.m_right = p_videoParam.m_rect.m_right; + this->m_rect.m_bottom = p_videoParam.m_rect.m_bottom; + this->m_palette = p_videoParam.m_palette; + this->m_backBuffers = p_videoParam.m_backBuffers; + this->m_flags = p_videoParam.m_flags; + this->m_unk1c = p_videoParam.m_unk1c; + this->m_deviceId = NULL; + SetDeviceName(p_videoParam.m_deviceId); +} + +// OFFSET: LEGO1 0x100bede0 +MxVideoParam &MxVideoParam::operator=(const MxVideoParam &p_videoParam) +{ + this->m_rect.m_left = p_videoParam.m_rect.m_left; + this->m_rect.m_top = p_videoParam.m_rect.m_top; + this->m_rect.m_right = p_videoParam.m_rect.m_right; + this->m_rect.m_bottom = p_videoParam.m_rect.m_bottom; + this->m_palette = p_videoParam.m_palette; + this->m_backBuffers = p_videoParam.m_backBuffers; + this->m_flags = p_videoParam.m_flags; + this->m_unk1c = p_videoParam.m_unk1c; + SetDeviceName(p_videoParam.m_deviceId); + + return *this; +} + +// OFFSET: LEGO1 0x100bed70 +void MxVideoParam::SetDeviceName(char *id) +{ + if (this->m_deviceId != 0) + free(this->m_deviceId); + + if (id != 0) + { + this->m_deviceId = (char *)malloc(strlen(id) + 1); + + if (this->m_deviceId != 0) { + strcpy(this->m_deviceId, id); + } + } + else { + this->m_deviceId = 0; + } +} + +// OFFSET: LEGO1 0x100bed50 +MxVideoParam::~MxVideoParam() +{ + if (this->m_deviceId != 0) + free(this->m_deviceId); +} diff --git a/LEGO1/mxvideoparamflags.cpp b/LEGO1/mxvideoparamflags.cpp index 07fc9ee3..1a3bb930 100644 --- a/LEGO1/mxvideoparamflags.cpp +++ b/LEGO1/mxvideoparamflags.cpp @@ -1,15 +1,15 @@ -#include "mxvideoparamflags.h" - -// OFFSET: LEGO1 0x100bec40 -MxVideoParamFlags::MxVideoParamFlags() -{ - this->SetFullScreen(0); - this->SetFlipSurfaces(0); - this->SetBackBuffers(0); - this->Set_f1bit3(0); - this->Set_f1bit4(0); - this->Set16Bit(0); - this->SetWideViewAngle(1); - this->Set_f1bit7(1); - this->Set_f2bit1(1); -} +#include "mxvideoparamflags.h" + +// OFFSET: LEGO1 0x100bec40 +MxVideoParamFlags::MxVideoParamFlags() +{ + this->SetFullScreen(0); + this->SetFlipSurfaces(0); + this->SetBackBuffers(0); + this->Set_f1bit3(0); + this->Set_f1bit4(0); + this->Set16Bit(0); + this->SetWideViewAngle(1); + this->Set_f1bit7(1); + this->Set_f2bit1(1); +} diff --git a/LEGO1/mxvideoparamflags.h b/LEGO1/mxvideoparamflags.h index ba7d821e..3897c788 100644 --- a/LEGO1/mxvideoparamflags.h +++ b/LEGO1/mxvideoparamflags.h @@ -1,49 +1,49 @@ -#ifndef MXVIDEOPARAMFLAGS_H -#define MXVIDEOPARAMFLAGS_H - -#include "legoinc.h" - -// Must be union with struct for match. -typedef union { - struct { - BYTE bit0: 1; - BYTE bit1: 1; - BYTE bit2: 1; - BYTE bit3: 1; - BYTE bit4: 1; - BYTE bit5: 1; - BYTE bit6: 1; - BYTE bit7: 1; - }; - // BYTE all; // ? -} flag_bitfield; - -class MxVideoParamFlags -{ -public: - __declspec(dllexport) MxVideoParamFlags(); - - inline void SetFullScreen(BOOL e) { m_flags1.bit0 = e; } - inline void SetFlipSurfaces(BOOL e) { m_flags1.bit1 = e; } - inline void SetBackBuffers(BOOL e) { m_flags1.bit2 = e; } - inline void Set_f1bit3(BOOL e) { m_flags1.bit3 = e; } - inline void Set_f1bit4(BOOL e) { m_flags1.bit4 = e; } - inline void Set16Bit(BYTE e) { m_flags1.bit5 = e; } - inline void SetWideViewAngle(BOOL e) { m_flags1.bit6 = e; } - inline void Set_f1bit7(BOOL e) { m_flags1.bit7 = e; } - inline void Set_f2bit0(BOOL e) { m_flags2.bit0 = e; } - inline void Set_f2bit1(BOOL e) { m_flags2.bit1 = e; } - inline void Set_f2bit2(BOOL e) { m_flags2.bit2 = e; } - inline void Set_f2bit3(BOOL e) { m_flags2.bit3 = e; } - inline void Set_f2bit4(BOOL e) { m_flags2.bit4 = e; } - inline void Set_f2bit5(BOOL e) { m_flags2.bit5 = e; } - inline void Set_f2bit6(BOOL e) { m_flags2.bit6 = e; } - inline void Set_f2bit7(BOOL e) { m_flags2.bit7 = e; } - -private: - flag_bitfield m_flags1; - flag_bitfield m_flags2; - -}; - -#endif // MXVIDEOPARAMFLAGS_H +#ifndef MXVIDEOPARAMFLAGS_H +#define MXVIDEOPARAMFLAGS_H + +#include "legoinc.h" + +// Must be union with struct for match. +typedef union { + struct { + BYTE bit0: 1; + BYTE bit1: 1; + BYTE bit2: 1; + BYTE bit3: 1; + BYTE bit4: 1; + BYTE bit5: 1; + BYTE bit6: 1; + BYTE bit7: 1; + }; + // BYTE all; // ? +} flag_bitfield; + +class MxVideoParamFlags +{ +public: + __declspec(dllexport) MxVideoParamFlags(); + + inline void SetFullScreen(BOOL e) { m_flags1.bit0 = e; } + inline void SetFlipSurfaces(BOOL e) { m_flags1.bit1 = e; } + inline void SetBackBuffers(BOOL e) { m_flags1.bit2 = e; } + inline void Set_f1bit3(BOOL e) { m_flags1.bit3 = e; } + inline void Set_f1bit4(BOOL e) { m_flags1.bit4 = e; } + inline void Set16Bit(BYTE e) { m_flags1.bit5 = e; } + inline void SetWideViewAngle(BOOL e) { m_flags1.bit6 = e; } + inline void Set_f1bit7(BOOL e) { m_flags1.bit7 = e; } + inline void Set_f2bit0(BOOL e) { m_flags2.bit0 = e; } + inline void Set_f2bit1(BOOL e) { m_flags2.bit1 = e; } + inline void Set_f2bit2(BOOL e) { m_flags2.bit2 = e; } + inline void Set_f2bit3(BOOL e) { m_flags2.bit3 = e; } + inline void Set_f2bit4(BOOL e) { m_flags2.bit4 = e; } + inline void Set_f2bit5(BOOL e) { m_flags2.bit5 = e; } + inline void Set_f2bit6(BOOL e) { m_flags2.bit6 = e; } + inline void Set_f2bit7(BOOL e) { m_flags2.bit7 = e; } + +private: + flag_bitfield m_flags1; + flag_bitfield m_flags2; + +}; + +#endif // MXVIDEOPARAMFLAGS_H diff --git a/isle.mak b/isle.mak index 53c8f2bd..78b41308 100644 --- a/isle.mak +++ b/isle.mak @@ -1,1405 +1,1405 @@ -# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Application" 0x0101 -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -!IF "$(CFG)" == "" -CFG=LEGO1 - Win32 Release -!MESSAGE No configuration specified. Defaulting to LEGO1 - Win32 Release. -!ENDIF - -!IF "$(CFG)" != "LEGO1 - Win32 Release" && "$(CFG)" != "LEGO1 - Win32 Debug" &&\ - "$(CFG)" != "ISLE - Win32 Release" && "$(CFG)" != "ISLE - Win32 Debug" -!MESSAGE Invalid configuration "$(CFG)" specified. -!MESSAGE You can specify a configuration when running NMAKE on this makefile -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "isle.mak" CFG="LEGO1 - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "LEGO1 - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "LEGO1 - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "ISLE - Win32 Release" (based on "Win32 (x86) Application") -!MESSAGE "ISLE - Win32 Debug" (based on "Win32 (x86) Application") -!MESSAGE -!ERROR An invalid configuration is specified. -!ENDIF - -!IF "$(OS)" == "Windows_NT" -NULL= -!ELSE -NULL=nul -!ENDIF -################################################################################ -# Begin Project -# PROP Target_Last_Scanned "isle - Win32 Debug" - -!IF "$(CFG)" == "LEGO1 - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "LEGO1\Release" -# PROP BASE Intermediate_Dir "LEGO1\Release" -# PROP BASE Target_Dir "LEGO1" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "LEGO1\Release" -# PROP Intermediate_Dir "LEGO1\Release" -# PROP Target_Dir "LEGO1" -OUTDIR=.\LEGO1\Release -INTDIR=.\LEGO1\Release - -ALL : ".\Release\LEGO1.DLL" - -CLEAN : - -@erase "$(INTDIR)\dllmain.obj" - -@erase "$(INTDIR)\legonavcontroller.obj" - -@erase "$(INTDIR)\legoomni.obj" - -@erase "$(INTDIR)\mxatomid.obj" - -@erase "$(INTDIR)\mxautolocker.obj" - -@erase "$(INTDIR)\mxcore.obj" - -@erase "$(INTDIR)\mxcriticalsection.obj" - -@erase "$(INTDIR)\mxdsobject.obj" - -@erase "$(INTDIR)\mxomni.obj" - -@erase "$(INTDIR)\mxomnicreateflags.obj" - -@erase "$(INTDIR)\mxomnicreateparam.obj" - -@erase "$(INTDIR)\mxomnicreateparambase.obj" - -@erase "$(INTDIR)\mxstring.obj" - -@erase "$(INTDIR)\mxtimer.obj" - -@erase "$(INTDIR)\mxvideoparam.obj" - -@erase "$(INTDIR)\mxvideoparamflags.obj" - -@erase "$(INTDIR)\vc40.pdb" - -@erase ".\Release\LEGO1.DLL" - -@erase ".\Release\LEGO1.EXP" - -@erase ".\Release\LEGO1.LIB" - -@erase ".\Release\LEGO1.PDB" - -"$(OUTDIR)" : - if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" - -CPP=cl.exe -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c -CPP_PROJ=/nologo /MT /W3 /GX /Zi /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS"\ - /Fp"$(INTDIR)/LEGO1.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c -CPP_OBJS=.\LEGO1\Release/ -CPP_SBRS=.\. - -.c{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.c{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -MTL=mktyplib.exe -# ADD BASE MTL /nologo /D "NDEBUG" /win32 -# ADD MTL /nologo /D "NDEBUG" /win32 -MTL_PROJ=/nologo /D "NDEBUG" /win32 -RSC=rc.exe -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/LEGO1.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:windows /dll /pdb:"Release/LEGO1.PDB" /debug /machine:I386 /out:"Release/LEGO1.DLL" /implib:"Release/LEGO1.LIB" -# SUBTRACT LINK32 /pdb:none /map -LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\ - advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\ - odbccp32.lib winmm.lib /nologo /subsystem:windows /dll /incremental:no\ - /pdb:"Release/LEGO1.PDB" /debug /machine:I386 /out:"Release/LEGO1.DLL"\ - /implib:"Release/LEGO1.LIB" -LINK32_OBJS= \ - "$(INTDIR)\dllmain.obj" \ - "$(INTDIR)\legonavcontroller.obj" \ - "$(INTDIR)\legoomni.obj" \ - "$(INTDIR)\mxatomid.obj" \ - "$(INTDIR)\mxautolocker.obj" \ - "$(INTDIR)\mxcore.obj" \ - "$(INTDIR)\mxcriticalsection.obj" \ - "$(INTDIR)\mxdsobject.obj" \ - "$(INTDIR)\mxomni.obj" \ - "$(INTDIR)\mxomnicreateflags.obj" \ - "$(INTDIR)\mxomnicreateparam.obj" \ - "$(INTDIR)\mxomnicreateparambase.obj" \ - "$(INTDIR)\mxstring.obj" \ - "$(INTDIR)\mxtimer.obj" \ - "$(INTDIR)\mxvideoparam.obj" \ - "$(INTDIR)\mxvideoparamflags.obj" - -".\Release\LEGO1.DLL" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ELSEIF "$(CFG)" == "LEGO1 - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "LEGO1\Debug" -# PROP BASE Intermediate_Dir "LEGO1\Debug" -# PROP BASE Target_Dir "LEGO1" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "LEGO1\Debug" -# PROP Intermediate_Dir "LEGO1\Debug" -# PROP Target_Dir "LEGO1" -OUTDIR=.\LEGO1\Debug -INTDIR=.\LEGO1\Debug - -ALL : ".\Debug\LEGO1.DLL" - -CLEAN : - -@erase "$(INTDIR)\dllmain.obj" - -@erase "$(INTDIR)\legonavcontroller.obj" - -@erase "$(INTDIR)\legoomni.obj" - -@erase "$(INTDIR)\mxatomid.obj" - -@erase "$(INTDIR)\mxautolocker.obj" - -@erase "$(INTDIR)\mxcore.obj" - -@erase "$(INTDIR)\mxcriticalsection.obj" - -@erase "$(INTDIR)\mxdsobject.obj" - -@erase "$(INTDIR)\mxomni.obj" - -@erase "$(INTDIR)\mxomnicreateflags.obj" - -@erase "$(INTDIR)\mxomnicreateparam.obj" - -@erase "$(INTDIR)\mxomnicreateparambase.obj" - -@erase "$(INTDIR)\mxstring.obj" - -@erase "$(INTDIR)\mxtimer.obj" - -@erase "$(INTDIR)\mxvideoparam.obj" - -@erase "$(INTDIR)\mxvideoparamflags.obj" - -@erase "$(INTDIR)\vc40.idb" - -@erase "$(INTDIR)\vc40.pdb" - -@erase "$(OUTDIR)\LEGO1.exp" - -@erase "$(OUTDIR)\LEGO1.lib" - -@erase "$(OUTDIR)\LEGO1.pdb" - -@erase ".\Debug\LEGO1.DLL" - -@erase ".\Debug\LEGO1.ILK" - -"$(OUTDIR)" : - if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" - -CPP=cl.exe -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c -CPP_PROJ=/nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS"\ - /Fp"$(INTDIR)/LEGO1.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c -CPP_OBJS=.\LEGO1\Debug/ -CPP_SBRS=.\. - -.c{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.c{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -MTL=mktyplib.exe -# ADD BASE MTL /nologo /D "_DEBUG" /win32 -# ADD MTL /nologo /D "_DEBUG" /win32 -MTL_PROJ=/nologo /D "_DEBUG" /win32 -RSC=rc.exe -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/LEGO1.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"Debug/LEGO1.DLL" -# SUBTRACT LINK32 /pdb:none /map -LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\ - advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\ - odbccp32.lib winmm.lib /nologo /subsystem:windows /dll /incremental:yes\ - /pdb:"$(OUTDIR)/LEGO1.pdb" /debug /machine:I386 /out:"Debug/LEGO1.DLL"\ - /implib:"$(OUTDIR)/LEGO1.lib" -LINK32_OBJS= \ - "$(INTDIR)\dllmain.obj" \ - "$(INTDIR)\legonavcontroller.obj" \ - "$(INTDIR)\legoomni.obj" \ - "$(INTDIR)\mxatomid.obj" \ - "$(INTDIR)\mxautolocker.obj" \ - "$(INTDIR)\mxcore.obj" \ - "$(INTDIR)\mxcriticalsection.obj" \ - "$(INTDIR)\mxdsobject.obj" \ - "$(INTDIR)\mxomni.obj" \ - "$(INTDIR)\mxomnicreateflags.obj" \ - "$(INTDIR)\mxomnicreateparam.obj" \ - "$(INTDIR)\mxomnicreateparambase.obj" \ - "$(INTDIR)\mxstring.obj" \ - "$(INTDIR)\mxtimer.obj" \ - "$(INTDIR)\mxvideoparam.obj" \ - "$(INTDIR)\mxvideoparamflags.obj" - -".\Debug\LEGO1.DLL" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ELSEIF "$(CFG)" == "ISLE - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "ISLE\Release" -# PROP BASE Intermediate_Dir "ISLE\Release" -# PROP BASE Target_Dir "ISLE" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "ISLE\Release" -# PROP Intermediate_Dir "ISLE\Release" -# PROP Target_Dir "ISLE" -OUTDIR=.\ISLE\Release -INTDIR=.\ISLE\Release - -ALL : "LEGO1 - Win32 Release" ".\Release\ISLE.EXE" - -CLEAN : - -@erase "$(INTDIR)\define.obj" - -@erase "$(INTDIR)\isle.obj" - -@erase "$(INTDIR)\isle.res" - -@erase "$(INTDIR)\main.obj" - -@erase "$(INTDIR)\vc40.pdb" - -@erase ".\Release\ISLE.EXE" - -@erase ".\Release\ISLE.PDB" - -"$(OUTDIR)" : - if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" - -CPP=cl.exe -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /W3 /GX /Zi /O2 /I "LEGO1" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c -CPP_PROJ=/nologo /ML /W3 /GX /Zi /O2 /I "LEGO1" /D "WIN32" /D "NDEBUG" /D\ - "_WINDOWS" /Fp"$(INTDIR)/ISLE.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c -CPP_OBJS=.\ISLE\Release/ -CPP_SBRS=.\. - -.c{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.c{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -MTL=mktyplib.exe -# ADD BASE MTL /nologo /D "NDEBUG" /win32 -# ADD MTL /nologo /D "NDEBUG" /win32 -MTL_PROJ=/nologo /D "NDEBUG" /win32 -RSC=rc.exe -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -RSC_PROJ=/l 0x409 /fo"$(INTDIR)/isle.res" /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/ISLE.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib lego1.lib dsound.lib /nologo /subsystem:windows /pdb:"Release/ISLE.PDB" /debug /machine:I386 /out:"Release/ISLE.EXE" /LIBPATH:"ISLE/ext" -# SUBTRACT LINK32 /pdb:none -LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\ - advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\ - odbccp32.lib winmm.lib lego1.lib dsound.lib /nologo /subsystem:windows\ - /incremental:no /pdb:"Release/ISLE.PDB" /debug /machine:I386\ - /out:"Release/ISLE.EXE" /LIBPATH:"ISLE/ext" -LINK32_OBJS= \ - "$(INTDIR)\define.obj" \ - "$(INTDIR)\isle.obj" \ - "$(INTDIR)\isle.res" \ - "$(INTDIR)\main.obj" \ - ".\Release\LEGO1.LIB" - -".\Release\ISLE.EXE" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "ISLE\Debug" -# PROP BASE Intermediate_Dir "ISLE\Debug" -# PROP BASE Target_Dir "ISLE" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "ISLE\Debug" -# PROP Intermediate_Dir "ISLE\Debug" -# PROP Target_Dir "ISLE" -OUTDIR=.\ISLE\Debug -INTDIR=.\ISLE\Debug - -ALL : "LEGO1 - Win32 Debug" ".\Debug\ISLE.EXE" - -CLEAN : - -@erase "$(INTDIR)\define.obj" - -@erase "$(INTDIR)\isle.obj" - -@erase "$(INTDIR)\isle.res" - -@erase "$(INTDIR)\main.obj" - -@erase "$(INTDIR)\vc40.idb" - -@erase "$(INTDIR)\vc40.pdb" - -@erase ".\Debug\ISLE.EXE" - -@erase ".\Debug\ISLE.ILK" - -@erase ".\Debug\ISLE.PDB" - -"$(OUTDIR)" : - if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" - -CPP=cl.exe -# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "LEGO1" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c -CPP_PROJ=/nologo /MLd /W3 /Gm /GX /Zi /Od /I "LEGO1" /D "WIN32" /D "_DEBUG" /D\ - "_WINDOWS" /Fp"$(INTDIR)/ISLE.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c -CPP_OBJS=.\ISLE\Debug/ -CPP_SBRS=.\. - -.c{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.c{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -MTL=mktyplib.exe -# ADD BASE MTL /nologo /D "_DEBUG" /win32 -# ADD MTL /nologo /D "_DEBUG" /win32 -MTL_PROJ=/nologo /D "_DEBUG" /win32 -RSC=rc.exe -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -RSC_PROJ=/l 0x409 /fo"$(INTDIR)/isle.res" /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/ISLE.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib lego1.lib dsound.lib /nologo /subsystem:windows /pdb:"Debug/ISLE.PDB" /debug /machine:I386 /out:"Debug/ISLE.EXE" /LIBPATH:"ISLE/ext" -# SUBTRACT LINK32 /pdb:none -LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\ - advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\ - odbccp32.lib winmm.lib lego1.lib dsound.lib /nologo /subsystem:windows\ - /incremental:yes /pdb:"Debug/ISLE.PDB" /debug /machine:I386\ - /out:"Debug/ISLE.EXE" /LIBPATH:"ISLE/ext" -LINK32_OBJS= \ - "$(INTDIR)\define.obj" \ - "$(INTDIR)\isle.obj" \ - "$(INTDIR)\isle.res" \ - "$(INTDIR)\main.obj" \ - ".\LEGO1\Debug\LEGO1.lib" - -".\Debug\ISLE.EXE" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ENDIF - -################################################################################ -# Begin Target - -# Name "LEGO1 - Win32 Release" -# Name "LEGO1 - Win32 Debug" - -!IF "$(CFG)" == "LEGO1 - Win32 Release" - -!ELSEIF "$(CFG)" == "LEGO1 - Win32 Debug" - -!ENDIF - -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxcore.cpp -DEP_CPP_MXCOR=\ - ".\LEGO1\mxbool.h"\ - ".\LEGO1\mxcore.h"\ - - -"$(INTDIR)\mxcore.obj" : $(SOURCE) $(DEP_CPP_MXCOR) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\dllmain.cpp -DEP_CPP_DLLMA=\ - ".\LEGO1\legoinc.h"\ - - -"$(INTDIR)\dllmain.obj" : $(SOURCE) $(DEP_CPP_DLLMA) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\legoomni.cpp -DEP_CPP_LEGOO=\ - ".\LEGO1\lego3dmanager.h"\ - ".\LEGO1\lego3dview.h"\ - ".\LEGO1\legoentity.h"\ - ".\LEGO1\legogamestate.h"\ - ".\LEGO1\legoinc.h"\ - ".\LEGO1\legoinputmanager.h"\ - ".\LEGO1\legonavcontroller.h"\ - ".\LEGO1\legoomni.h"\ - ".\LEGO1\legoroi.h"\ - ".\LEGO1\legovideomanager.h"\ - ".\LEGO1\mxatomid.h"\ - ".\LEGO1\mxbackgroundaudiomanager.h"\ - ".\LEGO1\mxbool.h"\ - ".\LEGO1\mxcore.h"\ - ".\LEGO1\mxcriticalsection.h"\ - ".\LEGO1\mxdsaction.h"\ - ".\LEGO1\mxdsfile.h"\ - ".\LEGO1\mxdsobject.h"\ - ".\LEGO1\mxeventmanager.h"\ - ".\LEGO1\mxmusicmanager.h"\ - ".\LEGO1\mxnotificationmanager.h"\ - ".\LEGO1\mxobjectfactory.h"\ - ".\LEGO1\mxomni.h"\ - ".\LEGO1\mxomnicreateflags.h"\ - ".\LEGO1\mxomnicreateparam.h"\ - ".\LEGO1\mxomnicreateparambase.h"\ - ".\LEGO1\mxpalette.h"\ - ".\LEGO1\mxrect32.h"\ - ".\LEGO1\mxresult.h"\ - ".\LEGO1\mxsoundmanager.h"\ - ".\LEGO1\mxstreamcontroller.h"\ - ".\LEGO1\mxstreamer.h"\ - ".\LEGO1\mxstring.h"\ - ".\LEGO1\mxticklemanager.h"\ - ".\LEGO1\mxtimer.h"\ - ".\LEGO1\mxtransitionmanager.h"\ - ".\LEGO1\mxvariabletable.h"\ - ".\LEGO1\mxvideomanager.h"\ - ".\LEGO1\mxvideoparam.h"\ - ".\LEGO1\mxvideoparamflags.h"\ - ".\LEGO1\viewmanager.h"\ - - -"$(INTDIR)\legoomni.obj" : $(SOURCE) $(DEP_CPP_LEGOO) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxcriticalsection.cpp -DEP_CPP_MXCRI=\ - ".\LEGO1\legoinc.h"\ - ".\LEGO1\mxcriticalsection.h"\ - - -"$(INTDIR)\mxcriticalsection.obj" : $(SOURCE) $(DEP_CPP_MXCRI) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxautolocker.cpp -DEP_CPP_MXAUT=\ - ".\LEGO1\legoinc.h"\ - ".\LEGO1\mxautolocker.h"\ - ".\LEGO1\mxcriticalsection.h"\ - - -"$(INTDIR)\mxautolocker.obj" : $(SOURCE) $(DEP_CPP_MXAUT) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxtimer.cpp -DEP_CPP_MXTIM=\ - ".\LEGO1\legoinc.h"\ - ".\LEGO1\mxbool.h"\ - ".\LEGO1\mxcore.h"\ - ".\LEGO1\mxtimer.h"\ - - -"$(INTDIR)\mxtimer.obj" : $(SOURCE) $(DEP_CPP_MXTIM) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxomni.cpp -DEP_CPP_MXOMN=\ - ".\LEGO1\legoinc.h"\ - ".\LEGO1\mxatomid.h"\ - ".\LEGO1\mxbool.h"\ - ".\LEGO1\mxcore.h"\ - ".\LEGO1\mxcriticalsection.h"\ - ".\LEGO1\mxeventmanager.h"\ - ".\LEGO1\mxmusicmanager.h"\ - ".\LEGO1\mxnotificationmanager.h"\ - ".\LEGO1\mxobjectfactory.h"\ - ".\LEGO1\mxomni.h"\ - ".\LEGO1\mxomnicreateflags.h"\ - ".\LEGO1\mxomnicreateparam.h"\ - ".\LEGO1\mxomnicreateparambase.h"\ - ".\LEGO1\mxpalette.h"\ - ".\LEGO1\mxrect32.h"\ - ".\LEGO1\mxresult.h"\ - ".\LEGO1\mxsoundmanager.h"\ - ".\LEGO1\mxstreamcontroller.h"\ - ".\LEGO1\mxstreamer.h"\ - ".\LEGO1\mxstring.h"\ - ".\LEGO1\mxticklemanager.h"\ - ".\LEGO1\mxtimer.h"\ - ".\LEGO1\mxvariabletable.h"\ - ".\LEGO1\mxvideomanager.h"\ - ".\LEGO1\mxvideoparam.h"\ - ".\LEGO1\mxvideoparamflags.h"\ - - -"$(INTDIR)\mxomni.obj" : $(SOURCE) $(DEP_CPP_MXOMN) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxvideoparam.cpp -DEP_CPP_MXVID=\ - ".\LEGO1\legoinc.h"\ - ".\LEGO1\mxpalette.h"\ - ".\LEGO1\mxrect32.h"\ - ".\LEGO1\mxvariabletable.h"\ - ".\LEGO1\mxvideoparam.h"\ - ".\LEGO1\mxvideoparamflags.h"\ - - -"$(INTDIR)\mxvideoparam.obj" : $(SOURCE) $(DEP_CPP_MXVID) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxvideoparamflags.cpp -DEP_CPP_MXVIDE=\ - ".\LEGO1\legoinc.h"\ - ".\LEGO1\mxvideoparamflags.h"\ - - -"$(INTDIR)\mxvideoparamflags.obj" : $(SOURCE) $(DEP_CPP_MXVIDE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxomnicreateparam.cpp -DEP_CPP_MXOMNI=\ - ".\LEGO1\legoinc.h"\ - ".\LEGO1\mxbool.h"\ - ".\LEGO1\mxcore.h"\ - ".\LEGO1\mxomnicreateflags.h"\ - ".\LEGO1\mxomnicreateparam.h"\ - ".\LEGO1\mxomnicreateparambase.h"\ - ".\LEGO1\mxpalette.h"\ - ".\LEGO1\mxrect32.h"\ - ".\LEGO1\mxstring.h"\ - ".\LEGO1\mxvariabletable.h"\ - ".\LEGO1\mxvideoparam.h"\ - ".\LEGO1\mxvideoparamflags.h"\ - - -"$(INTDIR)\mxomnicreateparam.obj" : $(SOURCE) $(DEP_CPP_MXOMNI) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxomnicreateparambase.cpp -DEP_CPP_MXOMNIC=\ - ".\LEGO1\legoinc.h"\ - ".\LEGO1\mxbool.h"\ - ".\LEGO1\mxcore.h"\ - ".\LEGO1\mxomnicreateflags.h"\ - ".\LEGO1\mxomnicreateparam.h"\ - ".\LEGO1\mxomnicreateparambase.h"\ - ".\LEGO1\mxpalette.h"\ - ".\LEGO1\mxrect32.h"\ - ".\LEGO1\mxstring.h"\ - ".\LEGO1\mxvariabletable.h"\ - ".\LEGO1\mxvideoparam.h"\ - ".\LEGO1\mxvideoparamflags.h"\ - - -"$(INTDIR)\mxomnicreateparambase.obj" : $(SOURCE) $(DEP_CPP_MXOMNIC)\ - "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxstring.cpp -DEP_CPP_MXSTR=\ - ".\LEGO1\mxbool.h"\ - ".\LEGO1\mxcore.h"\ - ".\LEGO1\mxstring.h"\ - - -"$(INTDIR)\mxstring.obj" : $(SOURCE) $(DEP_CPP_MXSTR) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxomnicreateflags.cpp -DEP_CPP_MXOMNICR=\ - ".\LEGO1\mxbool.h"\ - ".\LEGO1\mxomnicreateflags.h"\ - - -"$(INTDIR)\mxomnicreateflags.obj" : $(SOURCE) $(DEP_CPP_MXOMNICR) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\legonavcontroller.cpp -DEP_CPP_LEGON=\ - ".\LEGO1\lego3dmanager.h"\ - ".\LEGO1\lego3dview.h"\ - ".\LEGO1\legoentity.h"\ - ".\LEGO1\legogamestate.h"\ - ".\LEGO1\legoinc.h"\ - ".\LEGO1\legoinputmanager.h"\ - ".\LEGO1\legonavcontroller.h"\ - ".\LEGO1\legoomni.h"\ - ".\LEGO1\legoroi.h"\ - ".\LEGO1\legoutil.h"\ - ".\LEGO1\legovideomanager.h"\ - ".\LEGO1\mxatomid.h"\ - ".\LEGO1\mxbackgroundaudiomanager.h"\ - ".\LEGO1\mxbool.h"\ - ".\LEGO1\mxcore.h"\ - ".\LEGO1\mxcriticalsection.h"\ - ".\LEGO1\mxdsaction.h"\ - ".\LEGO1\mxdsfile.h"\ - ".\LEGO1\mxdsobject.h"\ - ".\LEGO1\mxeventmanager.h"\ - ".\LEGO1\mxmusicmanager.h"\ - ".\LEGO1\mxnotificationmanager.h"\ - ".\LEGO1\mxobjectfactory.h"\ - ".\LEGO1\mxomni.h"\ - ".\LEGO1\mxomnicreateflags.h"\ - ".\LEGO1\mxomnicreateparam.h"\ - ".\LEGO1\mxomnicreateparambase.h"\ - ".\LEGO1\mxpalette.h"\ - ".\LEGO1\mxrect32.h"\ - ".\LEGO1\mxresult.h"\ - ".\LEGO1\mxsoundmanager.h"\ - ".\LEGO1\mxstreamcontroller.h"\ - ".\LEGO1\mxstreamer.h"\ - ".\LEGO1\mxstring.h"\ - ".\LEGO1\mxticklemanager.h"\ - ".\LEGO1\mxtimer.h"\ - ".\LEGO1\mxtransitionmanager.h"\ - ".\LEGO1\mxvariabletable.h"\ - ".\LEGO1\mxvideomanager.h"\ - ".\LEGO1\mxvideoparam.h"\ - ".\LEGO1\mxvideoparamflags.h"\ - ".\LEGO1\viewmanager.h"\ - - -"$(INTDIR)\legonavcontroller.obj" : $(SOURCE) $(DEP_CPP_LEGON) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxdsobject.cpp -DEP_CPP_MXDSO=\ - ".\LEGO1\mxatomid.h"\ - ".\LEGO1\mxbool.h"\ - ".\LEGO1\mxcore.h"\ - ".\LEGO1\mxdsobject.h"\ - - -"$(INTDIR)\mxdsobject.obj" : $(SOURCE) $(DEP_CPP_MXDSO) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxatomid.cpp -DEP_CPP_MXATO=\ - ".\LEGO1\mxatomid.h"\ - - -"$(INTDIR)\mxatomid.obj" : $(SOURCE) $(DEP_CPP_MXATO) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -# End Target -################################################################################ -# Begin Target - -# Name "ISLE - Win32 Release" -# Name "ISLE - Win32 Debug" - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -################################################################################ -# Begin Source File - -SOURCE=.\ISLE\define.cpp -DEP_CPP_DEFIN=\ - ".\ISLE\define.h"\ - - -"$(INTDIR)\define.obj" : $(SOURCE) $(DEP_CPP_DEFIN) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\ISLE\isle.cpp -DEP_CPP_ISLE_=\ - ".\ISLE\define.h"\ - ".\ISLE\isle.h"\ - ".\ISLE\res\resource.h"\ - ".\LEGO1\lego3dmanager.h"\ - ".\LEGO1\lego3dview.h"\ - ".\LEGO1\legoanimationmanager.h"\ - ".\LEGO1\legobuildingmanager.h"\ - ".\LEGO1\legoentity.h"\ - ".\LEGO1\legogamestate.h"\ - ".\LEGO1\legoinc.h"\ - ".\LEGO1\legoinputmanager.h"\ - ".\LEGO1\legomodelpresenter.h"\ - ".\LEGO1\legonavcontroller.h"\ - ".\LEGO1\legoomni.h"\ - ".\LEGO1\legopartpresenter.h"\ - ".\LEGO1\legoroi.h"\ - ".\LEGO1\legovideomanager.h"\ - ".\LEGO1\legoworldpresenter.h"\ - ".\LEGO1\mxatomid.h"\ - ".\LEGO1\mxbackgroundaudiomanager.h"\ - ".\LEGO1\mxbool.h"\ - ".\LEGO1\mxcore.h"\ - ".\LEGO1\mxcriticalsection.h"\ - ".\LEGO1\mxdirectdraw.h"\ - ".\LEGO1\mxdsaction.h"\ - ".\LEGO1\mxdsfile.h"\ - ".\LEGO1\mxdsobject.h"\ - ".\LEGO1\mxeventmanager.h"\ - ".\LEGO1\mxmusicmanager.h"\ - ".\LEGO1\mxnotificationmanager.h"\ - ".\LEGO1\mxobjectfactory.h"\ - ".\LEGO1\mxomni.h"\ - ".\LEGO1\mxomnicreateflags.h"\ - ".\LEGO1\mxomnicreateparam.h"\ - ".\LEGO1\mxomnicreateparambase.h"\ - ".\LEGO1\mxpalette.h"\ - ".\LEGO1\mxrect32.h"\ - ".\LEGO1\mxresult.h"\ - ".\LEGO1\mxsoundmanager.h"\ - ".\LEGO1\mxstreamcontroller.h"\ - ".\LEGO1\mxstreamer.h"\ - ".\LEGO1\mxstring.h"\ - ".\LEGO1\mxticklemanager.h"\ - ".\LEGO1\mxtimer.h"\ - ".\LEGO1\mxtransitionmanager.h"\ - ".\LEGO1\mxvariabletable.h"\ - ".\LEGO1\mxvideomanager.h"\ - ".\LEGO1\mxvideoparam.h"\ - ".\LEGO1\mxvideoparamflags.h"\ - ".\LEGO1\viewmanager.h"\ - - -"$(INTDIR)\isle.obj" : $(SOURCE) $(DEP_CPP_ISLE_) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\ISLE\main.cpp -DEP_CPP_MAIN_=\ - ".\ISLE\define.h"\ - ".\ISLE\isle.h"\ - ".\LEGO1\lego3dmanager.h"\ - ".\LEGO1\lego3dview.h"\ - ".\LEGO1\legoentity.h"\ - ".\LEGO1\legogamestate.h"\ - ".\LEGO1\legoinc.h"\ - ".\LEGO1\legoinputmanager.h"\ - ".\LEGO1\legonavcontroller.h"\ - ".\LEGO1\legoomni.h"\ - ".\LEGO1\legoroi.h"\ - ".\LEGO1\legovideomanager.h"\ - ".\LEGO1\mxatomid.h"\ - ".\LEGO1\mxbackgroundaudiomanager.h"\ - ".\LEGO1\mxbool.h"\ - ".\LEGO1\mxcore.h"\ - ".\LEGO1\mxcriticalsection.h"\ - ".\LEGO1\mxdsaction.h"\ - ".\LEGO1\mxdsfile.h"\ - ".\LEGO1\mxdsobject.h"\ - ".\LEGO1\mxeventmanager.h"\ - ".\LEGO1\mxmusicmanager.h"\ - ".\LEGO1\mxnotificationmanager.h"\ - ".\LEGO1\mxobjectfactory.h"\ - ".\LEGO1\mxomni.h"\ - ".\LEGO1\mxomnicreateflags.h"\ - ".\LEGO1\mxomnicreateparam.h"\ - ".\LEGO1\mxomnicreateparambase.h"\ - ".\LEGO1\mxpalette.h"\ - ".\LEGO1\mxrect32.h"\ - ".\LEGO1\mxresult.h"\ - ".\LEGO1\mxsoundmanager.h"\ - ".\LEGO1\mxstreamcontroller.h"\ - ".\LEGO1\mxstreamer.h"\ - ".\LEGO1\mxstring.h"\ - ".\LEGO1\mxticklemanager.h"\ - ".\LEGO1\mxtimer.h"\ - ".\LEGO1\mxtransitionmanager.h"\ - ".\LEGO1\mxvariabletable.h"\ - ".\LEGO1\mxvideomanager.h"\ - ".\LEGO1\mxvideoparam.h"\ - ".\LEGO1\mxvideoparamflags.h"\ - ".\LEGO1\viewmanager.h"\ - - -"$(INTDIR)\main.obj" : $(SOURCE) $(DEP_CPP_MAIN_) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\ISLE\res\isle.rc -DEP_RSC_ISLE_R=\ - ".\ISLE\res\resource.h"\ - - -!IF "$(CFG)" == "ISLE - Win32 Release" - - -"$(INTDIR)\isle.res" : $(SOURCE) $(DEP_RSC_ISLE_R) "$(INTDIR)" - $(RSC) /l 0x409 /fo"$(INTDIR)/isle.res" /i "ISLE\res" /d "NDEBUG" $(SOURCE) - - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - - -"$(INTDIR)\isle.res" : $(SOURCE) $(DEP_RSC_ISLE_R) "$(INTDIR)" - $(RSC) /l 0x409 /fo"$(INTDIR)/isle.res" /i "ISLE\res" /d "_DEBUG" $(SOURCE) - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\legoanimationmanager.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\legobuildingmanager.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\legogamestate.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\legoinputmanager.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\legomodelpresenter.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\legoomni.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\legopartpresenter.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\legoroi.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\legovideomanager.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\legoworldpresenter.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxatomid.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxbackgroundaudiomanager.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxbitmap.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxbool.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxcore.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxdirectdraw.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxdsaction.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxdsfile.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxomni.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxomnicreateflags.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxomnicreateparam.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxpalette.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxrect32.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxresult.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxstreamcontroller.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxstreamer.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxstring.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxticklemanager.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxtimer.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxtransitionmanager.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxvariabletable.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxvideoparam.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LEGO1\mxvideoparamflags.h - -!IF "$(CFG)" == "ISLE - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -!ENDIF - -# End Source File -################################################################################ -# Begin Project Dependency - -# Project_Dep_Name "LEGO1" - -!IF "$(CFG)" == "ISLE - Win32 Release" - -"LEGO1 - Win32 Release" : - $(MAKE) /$(MAKEFLAGS) /F ".\isle.mak" CFG="LEGO1 - Win32 Release" - -!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" - -"LEGO1 - Win32 Debug" : - $(MAKE) /$(MAKEFLAGS) /F ".\isle.mak" CFG="LEGO1 - Win32 Debug" - -!ENDIF - -# End Project Dependency -# End Target -# End Project -################################################################################ +# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +!IF "$(CFG)" == "" +CFG=LEGO1 - Win32 Release +!MESSAGE No configuration specified. Defaulting to LEGO1 - Win32 Release. +!ENDIF + +!IF "$(CFG)" != "LEGO1 - Win32 Release" && "$(CFG)" != "LEGO1 - Win32 Debug" &&\ + "$(CFG)" != "ISLE - Win32 Release" && "$(CFG)" != "ISLE - Win32 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE on this makefile +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "isle.mak" CFG="LEGO1 - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "LEGO1 - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "LEGO1 - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "ISLE - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "ISLE - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF +################################################################################ +# Begin Project +# PROP Target_Last_Scanned "isle - Win32 Debug" + +!IF "$(CFG)" == "LEGO1 - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "LEGO1\Release" +# PROP BASE Intermediate_Dir "LEGO1\Release" +# PROP BASE Target_Dir "LEGO1" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "LEGO1\Release" +# PROP Intermediate_Dir "LEGO1\Release" +# PROP Target_Dir "LEGO1" +OUTDIR=.\LEGO1\Release +INTDIR=.\LEGO1\Release + +ALL : ".\Release\LEGO1.DLL" + +CLEAN : + -@erase "$(INTDIR)\dllmain.obj" + -@erase "$(INTDIR)\legonavcontroller.obj" + -@erase "$(INTDIR)\legoomni.obj" + -@erase "$(INTDIR)\mxatomid.obj" + -@erase "$(INTDIR)\mxautolocker.obj" + -@erase "$(INTDIR)\mxcore.obj" + -@erase "$(INTDIR)\mxcriticalsection.obj" + -@erase "$(INTDIR)\mxdsobject.obj" + -@erase "$(INTDIR)\mxomni.obj" + -@erase "$(INTDIR)\mxomnicreateflags.obj" + -@erase "$(INTDIR)\mxomnicreateparam.obj" + -@erase "$(INTDIR)\mxomnicreateparambase.obj" + -@erase "$(INTDIR)\mxstring.obj" + -@erase "$(INTDIR)\mxtimer.obj" + -@erase "$(INTDIR)\mxvideoparam.obj" + -@erase "$(INTDIR)\mxvideoparamflags.obj" + -@erase "$(INTDIR)\vc40.pdb" + -@erase ".\Release\LEGO1.DLL" + -@erase ".\Release\LEGO1.EXP" + -@erase ".\Release\LEGO1.LIB" + -@erase ".\Release\LEGO1.PDB" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c +# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c +CPP_PROJ=/nologo /MT /W3 /GX /Zi /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS"\ + /Fp"$(INTDIR)/LEGO1.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c +CPP_OBJS=.\LEGO1\Release/ +CPP_SBRS=.\. + +.c{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.cpp{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.cxx{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.c{$(CPP_SBRS)}.sbr: + $(CPP) $(CPP_PROJ) $< + +.cpp{$(CPP_SBRS)}.sbr: + $(CPP) $(CPP_PROJ) $< + +.cxx{$(CPP_SBRS)}.sbr: + $(CPP) $(CPP_PROJ) $< + +MTL=mktyplib.exe +# ADD BASE MTL /nologo /D "NDEBUG" /win32 +# ADD MTL /nologo /D "NDEBUG" /win32 +MTL_PROJ=/nologo /D "NDEBUG" /win32 +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +BSC32_FLAGS=/nologo /o"$(OUTDIR)/LEGO1.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:windows /dll /pdb:"Release/LEGO1.PDB" /debug /machine:I386 /out:"Release/LEGO1.DLL" /implib:"Release/LEGO1.LIB" +# SUBTRACT LINK32 /pdb:none /map +LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\ + advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\ + odbccp32.lib winmm.lib /nologo /subsystem:windows /dll /incremental:no\ + /pdb:"Release/LEGO1.PDB" /debug /machine:I386 /out:"Release/LEGO1.DLL"\ + /implib:"Release/LEGO1.LIB" +LINK32_OBJS= \ + "$(INTDIR)\dllmain.obj" \ + "$(INTDIR)\legonavcontroller.obj" \ + "$(INTDIR)\legoomni.obj" \ + "$(INTDIR)\mxatomid.obj" \ + "$(INTDIR)\mxautolocker.obj" \ + "$(INTDIR)\mxcore.obj" \ + "$(INTDIR)\mxcriticalsection.obj" \ + "$(INTDIR)\mxdsobject.obj" \ + "$(INTDIR)\mxomni.obj" \ + "$(INTDIR)\mxomnicreateflags.obj" \ + "$(INTDIR)\mxomnicreateparam.obj" \ + "$(INTDIR)\mxomnicreateparambase.obj" \ + "$(INTDIR)\mxstring.obj" \ + "$(INTDIR)\mxtimer.obj" \ + "$(INTDIR)\mxvideoparam.obj" \ + "$(INTDIR)\mxvideoparamflags.obj" + +".\Release\LEGO1.DLL" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +!ELSEIF "$(CFG)" == "LEGO1 - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "LEGO1\Debug" +# PROP BASE Intermediate_Dir "LEGO1\Debug" +# PROP BASE Target_Dir "LEGO1" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "LEGO1\Debug" +# PROP Intermediate_Dir "LEGO1\Debug" +# PROP Target_Dir "LEGO1" +OUTDIR=.\LEGO1\Debug +INTDIR=.\LEGO1\Debug + +ALL : ".\Debug\LEGO1.DLL" + +CLEAN : + -@erase "$(INTDIR)\dllmain.obj" + -@erase "$(INTDIR)\legonavcontroller.obj" + -@erase "$(INTDIR)\legoomni.obj" + -@erase "$(INTDIR)\mxatomid.obj" + -@erase "$(INTDIR)\mxautolocker.obj" + -@erase "$(INTDIR)\mxcore.obj" + -@erase "$(INTDIR)\mxcriticalsection.obj" + -@erase "$(INTDIR)\mxdsobject.obj" + -@erase "$(INTDIR)\mxomni.obj" + -@erase "$(INTDIR)\mxomnicreateflags.obj" + -@erase "$(INTDIR)\mxomnicreateparam.obj" + -@erase "$(INTDIR)\mxomnicreateparambase.obj" + -@erase "$(INTDIR)\mxstring.obj" + -@erase "$(INTDIR)\mxtimer.obj" + -@erase "$(INTDIR)\mxvideoparam.obj" + -@erase "$(INTDIR)\mxvideoparamflags.obj" + -@erase "$(INTDIR)\vc40.idb" + -@erase "$(INTDIR)\vc40.pdb" + -@erase "$(OUTDIR)\LEGO1.exp" + -@erase "$(OUTDIR)\LEGO1.lib" + -@erase "$(OUTDIR)\LEGO1.pdb" + -@erase ".\Debug\LEGO1.DLL" + -@erase ".\Debug\LEGO1.ILK" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c +CPP_PROJ=/nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS"\ + /Fp"$(INTDIR)/LEGO1.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c +CPP_OBJS=.\LEGO1\Debug/ +CPP_SBRS=.\. + +.c{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.cpp{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.cxx{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.c{$(CPP_SBRS)}.sbr: + $(CPP) $(CPP_PROJ) $< + +.cpp{$(CPP_SBRS)}.sbr: + $(CPP) $(CPP_PROJ) $< + +.cxx{$(CPP_SBRS)}.sbr: + $(CPP) $(CPP_PROJ) $< + +MTL=mktyplib.exe +# ADD BASE MTL /nologo /D "_DEBUG" /win32 +# ADD MTL /nologo /D "_DEBUG" /win32 +MTL_PROJ=/nologo /D "_DEBUG" /win32 +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +BSC32_FLAGS=/nologo /o"$(OUTDIR)/LEGO1.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"Debug/LEGO1.DLL" +# SUBTRACT LINK32 /pdb:none /map +LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\ + advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\ + odbccp32.lib winmm.lib /nologo /subsystem:windows /dll /incremental:yes\ + /pdb:"$(OUTDIR)/LEGO1.pdb" /debug /machine:I386 /out:"Debug/LEGO1.DLL"\ + /implib:"$(OUTDIR)/LEGO1.lib" +LINK32_OBJS= \ + "$(INTDIR)\dllmain.obj" \ + "$(INTDIR)\legonavcontroller.obj" \ + "$(INTDIR)\legoomni.obj" \ + "$(INTDIR)\mxatomid.obj" \ + "$(INTDIR)\mxautolocker.obj" \ + "$(INTDIR)\mxcore.obj" \ + "$(INTDIR)\mxcriticalsection.obj" \ + "$(INTDIR)\mxdsobject.obj" \ + "$(INTDIR)\mxomni.obj" \ + "$(INTDIR)\mxomnicreateflags.obj" \ + "$(INTDIR)\mxomnicreateparam.obj" \ + "$(INTDIR)\mxomnicreateparambase.obj" \ + "$(INTDIR)\mxstring.obj" \ + "$(INTDIR)\mxtimer.obj" \ + "$(INTDIR)\mxvideoparam.obj" \ + "$(INTDIR)\mxvideoparamflags.obj" + +".\Debug\LEGO1.DLL" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +!ELSEIF "$(CFG)" == "ISLE - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "ISLE\Release" +# PROP BASE Intermediate_Dir "ISLE\Release" +# PROP BASE Target_Dir "ISLE" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "ISLE\Release" +# PROP Intermediate_Dir "ISLE\Release" +# PROP Target_Dir "ISLE" +OUTDIR=.\ISLE\Release +INTDIR=.\ISLE\Release + +ALL : "LEGO1 - Win32 Release" ".\Release\ISLE.EXE" + +CLEAN : + -@erase "$(INTDIR)\define.obj" + -@erase "$(INTDIR)\isle.obj" + -@erase "$(INTDIR)\isle.res" + -@erase "$(INTDIR)\main.obj" + -@erase "$(INTDIR)\vc40.pdb" + -@erase ".\Release\ISLE.EXE" + -@erase ".\Release\ISLE.PDB" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c +# ADD CPP /nologo /W3 /GX /Zi /O2 /I "LEGO1" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c +CPP_PROJ=/nologo /ML /W3 /GX /Zi /O2 /I "LEGO1" /D "WIN32" /D "NDEBUG" /D\ + "_WINDOWS" /Fp"$(INTDIR)/ISLE.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c +CPP_OBJS=.\ISLE\Release/ +CPP_SBRS=.\. + +.c{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.cpp{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.cxx{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.c{$(CPP_SBRS)}.sbr: + $(CPP) $(CPP_PROJ) $< + +.cpp{$(CPP_SBRS)}.sbr: + $(CPP) $(CPP_PROJ) $< + +.cxx{$(CPP_SBRS)}.sbr: + $(CPP) $(CPP_PROJ) $< + +MTL=mktyplib.exe +# ADD BASE MTL /nologo /D "NDEBUG" /win32 +# ADD MTL /nologo /D "NDEBUG" /win32 +MTL_PROJ=/nologo /D "NDEBUG" /win32 +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +RSC_PROJ=/l 0x409 /fo"$(INTDIR)/isle.res" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +BSC32_FLAGS=/nologo /o"$(OUTDIR)/ISLE.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib lego1.lib dsound.lib /nologo /subsystem:windows /pdb:"Release/ISLE.PDB" /debug /machine:I386 /out:"Release/ISLE.EXE" /LIBPATH:"ISLE/ext" +# SUBTRACT LINK32 /pdb:none +LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\ + advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\ + odbccp32.lib winmm.lib lego1.lib dsound.lib /nologo /subsystem:windows\ + /incremental:no /pdb:"Release/ISLE.PDB" /debug /machine:I386\ + /out:"Release/ISLE.EXE" /LIBPATH:"ISLE/ext" +LINK32_OBJS= \ + "$(INTDIR)\define.obj" \ + "$(INTDIR)\isle.obj" \ + "$(INTDIR)\isle.res" \ + "$(INTDIR)\main.obj" \ + ".\Release\LEGO1.LIB" + +".\Release\ISLE.EXE" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "ISLE\Debug" +# PROP BASE Intermediate_Dir "ISLE\Debug" +# PROP BASE Target_Dir "ISLE" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "ISLE\Debug" +# PROP Intermediate_Dir "ISLE\Debug" +# PROP Target_Dir "ISLE" +OUTDIR=.\ISLE\Debug +INTDIR=.\ISLE\Debug + +ALL : "LEGO1 - Win32 Debug" ".\Debug\ISLE.EXE" + +CLEAN : + -@erase "$(INTDIR)\define.obj" + -@erase "$(INTDIR)\isle.obj" + -@erase "$(INTDIR)\isle.res" + -@erase "$(INTDIR)\main.obj" + -@erase "$(INTDIR)\vc40.idb" + -@erase "$(INTDIR)\vc40.pdb" + -@erase ".\Debug\ISLE.EXE" + -@erase ".\Debug\ISLE.ILK" + -@erase ".\Debug\ISLE.PDB" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "LEGO1" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c +CPP_PROJ=/nologo /MLd /W3 /Gm /GX /Zi /Od /I "LEGO1" /D "WIN32" /D "_DEBUG" /D\ + "_WINDOWS" /Fp"$(INTDIR)/ISLE.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c +CPP_OBJS=.\ISLE\Debug/ +CPP_SBRS=.\. + +.c{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.cpp{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.cxx{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.c{$(CPP_SBRS)}.sbr: + $(CPP) $(CPP_PROJ) $< + +.cpp{$(CPP_SBRS)}.sbr: + $(CPP) $(CPP_PROJ) $< + +.cxx{$(CPP_SBRS)}.sbr: + $(CPP) $(CPP_PROJ) $< + +MTL=mktyplib.exe +# ADD BASE MTL /nologo /D "_DEBUG" /win32 +# ADD MTL /nologo /D "_DEBUG" /win32 +MTL_PROJ=/nologo /D "_DEBUG" /win32 +RSC=rc.exe +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +RSC_PROJ=/l 0x409 /fo"$(INTDIR)/isle.res" /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +BSC32_FLAGS=/nologo /o"$(OUTDIR)/ISLE.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib lego1.lib dsound.lib /nologo /subsystem:windows /pdb:"Debug/ISLE.PDB" /debug /machine:I386 /out:"Debug/ISLE.EXE" /LIBPATH:"ISLE/ext" +# SUBTRACT LINK32 /pdb:none +LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\ + advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\ + odbccp32.lib winmm.lib lego1.lib dsound.lib /nologo /subsystem:windows\ + /incremental:yes /pdb:"Debug/ISLE.PDB" /debug /machine:I386\ + /out:"Debug/ISLE.EXE" /LIBPATH:"ISLE/ext" +LINK32_OBJS= \ + "$(INTDIR)\define.obj" \ + "$(INTDIR)\isle.obj" \ + "$(INTDIR)\isle.res" \ + "$(INTDIR)\main.obj" \ + ".\LEGO1\Debug\LEGO1.lib" + +".\Debug\ISLE.EXE" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +!ENDIF + +################################################################################ +# Begin Target + +# Name "LEGO1 - Win32 Release" +# Name "LEGO1 - Win32 Debug" + +!IF "$(CFG)" == "LEGO1 - Win32 Release" + +!ELSEIF "$(CFG)" == "LEGO1 - Win32 Debug" + +!ENDIF + +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxcore.cpp +DEP_CPP_MXCOR=\ + ".\LEGO1\mxbool.h"\ + ".\LEGO1\mxcore.h"\ + + +"$(INTDIR)\mxcore.obj" : $(SOURCE) $(DEP_CPP_MXCOR) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\dllmain.cpp +DEP_CPP_DLLMA=\ + ".\LEGO1\legoinc.h"\ + + +"$(INTDIR)\dllmain.obj" : $(SOURCE) $(DEP_CPP_DLLMA) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\legoomni.cpp +DEP_CPP_LEGOO=\ + ".\LEGO1\lego3dmanager.h"\ + ".\LEGO1\lego3dview.h"\ + ".\LEGO1\legoentity.h"\ + ".\LEGO1\legogamestate.h"\ + ".\LEGO1\legoinc.h"\ + ".\LEGO1\legoinputmanager.h"\ + ".\LEGO1\legonavcontroller.h"\ + ".\LEGO1\legoomni.h"\ + ".\LEGO1\legoroi.h"\ + ".\LEGO1\legovideomanager.h"\ + ".\LEGO1\mxatomid.h"\ + ".\LEGO1\mxbackgroundaudiomanager.h"\ + ".\LEGO1\mxbool.h"\ + ".\LEGO1\mxcore.h"\ + ".\LEGO1\mxcriticalsection.h"\ + ".\LEGO1\mxdsaction.h"\ + ".\LEGO1\mxdsfile.h"\ + ".\LEGO1\mxdsobject.h"\ + ".\LEGO1\mxeventmanager.h"\ + ".\LEGO1\mxmusicmanager.h"\ + ".\LEGO1\mxnotificationmanager.h"\ + ".\LEGO1\mxobjectfactory.h"\ + ".\LEGO1\mxomni.h"\ + ".\LEGO1\mxomnicreateflags.h"\ + ".\LEGO1\mxomnicreateparam.h"\ + ".\LEGO1\mxomnicreateparambase.h"\ + ".\LEGO1\mxpalette.h"\ + ".\LEGO1\mxrect32.h"\ + ".\LEGO1\mxresult.h"\ + ".\LEGO1\mxsoundmanager.h"\ + ".\LEGO1\mxstreamcontroller.h"\ + ".\LEGO1\mxstreamer.h"\ + ".\LEGO1\mxstring.h"\ + ".\LEGO1\mxticklemanager.h"\ + ".\LEGO1\mxtimer.h"\ + ".\LEGO1\mxtransitionmanager.h"\ + ".\LEGO1\mxvariabletable.h"\ + ".\LEGO1\mxvideomanager.h"\ + ".\LEGO1\mxvideoparam.h"\ + ".\LEGO1\mxvideoparamflags.h"\ + ".\LEGO1\viewmanager.h"\ + + +"$(INTDIR)\legoomni.obj" : $(SOURCE) $(DEP_CPP_LEGOO) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxcriticalsection.cpp +DEP_CPP_MXCRI=\ + ".\LEGO1\legoinc.h"\ + ".\LEGO1\mxcriticalsection.h"\ + + +"$(INTDIR)\mxcriticalsection.obj" : $(SOURCE) $(DEP_CPP_MXCRI) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxautolocker.cpp +DEP_CPP_MXAUT=\ + ".\LEGO1\legoinc.h"\ + ".\LEGO1\mxautolocker.h"\ + ".\LEGO1\mxcriticalsection.h"\ + + +"$(INTDIR)\mxautolocker.obj" : $(SOURCE) $(DEP_CPP_MXAUT) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxtimer.cpp +DEP_CPP_MXTIM=\ + ".\LEGO1\legoinc.h"\ + ".\LEGO1\mxbool.h"\ + ".\LEGO1\mxcore.h"\ + ".\LEGO1\mxtimer.h"\ + + +"$(INTDIR)\mxtimer.obj" : $(SOURCE) $(DEP_CPP_MXTIM) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxomni.cpp +DEP_CPP_MXOMN=\ + ".\LEGO1\legoinc.h"\ + ".\LEGO1\mxatomid.h"\ + ".\LEGO1\mxbool.h"\ + ".\LEGO1\mxcore.h"\ + ".\LEGO1\mxcriticalsection.h"\ + ".\LEGO1\mxeventmanager.h"\ + ".\LEGO1\mxmusicmanager.h"\ + ".\LEGO1\mxnotificationmanager.h"\ + ".\LEGO1\mxobjectfactory.h"\ + ".\LEGO1\mxomni.h"\ + ".\LEGO1\mxomnicreateflags.h"\ + ".\LEGO1\mxomnicreateparam.h"\ + ".\LEGO1\mxomnicreateparambase.h"\ + ".\LEGO1\mxpalette.h"\ + ".\LEGO1\mxrect32.h"\ + ".\LEGO1\mxresult.h"\ + ".\LEGO1\mxsoundmanager.h"\ + ".\LEGO1\mxstreamcontroller.h"\ + ".\LEGO1\mxstreamer.h"\ + ".\LEGO1\mxstring.h"\ + ".\LEGO1\mxticklemanager.h"\ + ".\LEGO1\mxtimer.h"\ + ".\LEGO1\mxvariabletable.h"\ + ".\LEGO1\mxvideomanager.h"\ + ".\LEGO1\mxvideoparam.h"\ + ".\LEGO1\mxvideoparamflags.h"\ + + +"$(INTDIR)\mxomni.obj" : $(SOURCE) $(DEP_CPP_MXOMN) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxvideoparam.cpp +DEP_CPP_MXVID=\ + ".\LEGO1\legoinc.h"\ + ".\LEGO1\mxpalette.h"\ + ".\LEGO1\mxrect32.h"\ + ".\LEGO1\mxvariabletable.h"\ + ".\LEGO1\mxvideoparam.h"\ + ".\LEGO1\mxvideoparamflags.h"\ + + +"$(INTDIR)\mxvideoparam.obj" : $(SOURCE) $(DEP_CPP_MXVID) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxvideoparamflags.cpp +DEP_CPP_MXVIDE=\ + ".\LEGO1\legoinc.h"\ + ".\LEGO1\mxvideoparamflags.h"\ + + +"$(INTDIR)\mxvideoparamflags.obj" : $(SOURCE) $(DEP_CPP_MXVIDE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxomnicreateparam.cpp +DEP_CPP_MXOMNI=\ + ".\LEGO1\legoinc.h"\ + ".\LEGO1\mxbool.h"\ + ".\LEGO1\mxcore.h"\ + ".\LEGO1\mxomnicreateflags.h"\ + ".\LEGO1\mxomnicreateparam.h"\ + ".\LEGO1\mxomnicreateparambase.h"\ + ".\LEGO1\mxpalette.h"\ + ".\LEGO1\mxrect32.h"\ + ".\LEGO1\mxstring.h"\ + ".\LEGO1\mxvariabletable.h"\ + ".\LEGO1\mxvideoparam.h"\ + ".\LEGO1\mxvideoparamflags.h"\ + + +"$(INTDIR)\mxomnicreateparam.obj" : $(SOURCE) $(DEP_CPP_MXOMNI) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxomnicreateparambase.cpp +DEP_CPP_MXOMNIC=\ + ".\LEGO1\legoinc.h"\ + ".\LEGO1\mxbool.h"\ + ".\LEGO1\mxcore.h"\ + ".\LEGO1\mxomnicreateflags.h"\ + ".\LEGO1\mxomnicreateparam.h"\ + ".\LEGO1\mxomnicreateparambase.h"\ + ".\LEGO1\mxpalette.h"\ + ".\LEGO1\mxrect32.h"\ + ".\LEGO1\mxstring.h"\ + ".\LEGO1\mxvariabletable.h"\ + ".\LEGO1\mxvideoparam.h"\ + ".\LEGO1\mxvideoparamflags.h"\ + + +"$(INTDIR)\mxomnicreateparambase.obj" : $(SOURCE) $(DEP_CPP_MXOMNIC)\ + "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxstring.cpp +DEP_CPP_MXSTR=\ + ".\LEGO1\mxbool.h"\ + ".\LEGO1\mxcore.h"\ + ".\LEGO1\mxstring.h"\ + + +"$(INTDIR)\mxstring.obj" : $(SOURCE) $(DEP_CPP_MXSTR) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxomnicreateflags.cpp +DEP_CPP_MXOMNICR=\ + ".\LEGO1\mxbool.h"\ + ".\LEGO1\mxomnicreateflags.h"\ + + +"$(INTDIR)\mxomnicreateflags.obj" : $(SOURCE) $(DEP_CPP_MXOMNICR) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\legonavcontroller.cpp +DEP_CPP_LEGON=\ + ".\LEGO1\lego3dmanager.h"\ + ".\LEGO1\lego3dview.h"\ + ".\LEGO1\legoentity.h"\ + ".\LEGO1\legogamestate.h"\ + ".\LEGO1\legoinc.h"\ + ".\LEGO1\legoinputmanager.h"\ + ".\LEGO1\legonavcontroller.h"\ + ".\LEGO1\legoomni.h"\ + ".\LEGO1\legoroi.h"\ + ".\LEGO1\legoutil.h"\ + ".\LEGO1\legovideomanager.h"\ + ".\LEGO1\mxatomid.h"\ + ".\LEGO1\mxbackgroundaudiomanager.h"\ + ".\LEGO1\mxbool.h"\ + ".\LEGO1\mxcore.h"\ + ".\LEGO1\mxcriticalsection.h"\ + ".\LEGO1\mxdsaction.h"\ + ".\LEGO1\mxdsfile.h"\ + ".\LEGO1\mxdsobject.h"\ + ".\LEGO1\mxeventmanager.h"\ + ".\LEGO1\mxmusicmanager.h"\ + ".\LEGO1\mxnotificationmanager.h"\ + ".\LEGO1\mxobjectfactory.h"\ + ".\LEGO1\mxomni.h"\ + ".\LEGO1\mxomnicreateflags.h"\ + ".\LEGO1\mxomnicreateparam.h"\ + ".\LEGO1\mxomnicreateparambase.h"\ + ".\LEGO1\mxpalette.h"\ + ".\LEGO1\mxrect32.h"\ + ".\LEGO1\mxresult.h"\ + ".\LEGO1\mxsoundmanager.h"\ + ".\LEGO1\mxstreamcontroller.h"\ + ".\LEGO1\mxstreamer.h"\ + ".\LEGO1\mxstring.h"\ + ".\LEGO1\mxticklemanager.h"\ + ".\LEGO1\mxtimer.h"\ + ".\LEGO1\mxtransitionmanager.h"\ + ".\LEGO1\mxvariabletable.h"\ + ".\LEGO1\mxvideomanager.h"\ + ".\LEGO1\mxvideoparam.h"\ + ".\LEGO1\mxvideoparamflags.h"\ + ".\LEGO1\viewmanager.h"\ + + +"$(INTDIR)\legonavcontroller.obj" : $(SOURCE) $(DEP_CPP_LEGON) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxdsobject.cpp +DEP_CPP_MXDSO=\ + ".\LEGO1\mxatomid.h"\ + ".\LEGO1\mxbool.h"\ + ".\LEGO1\mxcore.h"\ + ".\LEGO1\mxdsobject.h"\ + + +"$(INTDIR)\mxdsobject.obj" : $(SOURCE) $(DEP_CPP_MXDSO) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxatomid.cpp +DEP_CPP_MXATO=\ + ".\LEGO1\mxatomid.h"\ + + +"$(INTDIR)\mxatomid.obj" : $(SOURCE) $(DEP_CPP_MXATO) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +# End Target +################################################################################ +# Begin Target + +# Name "ISLE - Win32 Release" +# Name "ISLE - Win32 Debug" + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +################################################################################ +# Begin Source File + +SOURCE=.\ISLE\define.cpp +DEP_CPP_DEFIN=\ + ".\ISLE\define.h"\ + + +"$(INTDIR)\define.obj" : $(SOURCE) $(DEP_CPP_DEFIN) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\ISLE\isle.cpp +DEP_CPP_ISLE_=\ + ".\ISLE\define.h"\ + ".\ISLE\isle.h"\ + ".\ISLE\res\resource.h"\ + ".\LEGO1\lego3dmanager.h"\ + ".\LEGO1\lego3dview.h"\ + ".\LEGO1\legoanimationmanager.h"\ + ".\LEGO1\legobuildingmanager.h"\ + ".\LEGO1\legoentity.h"\ + ".\LEGO1\legogamestate.h"\ + ".\LEGO1\legoinc.h"\ + ".\LEGO1\legoinputmanager.h"\ + ".\LEGO1\legomodelpresenter.h"\ + ".\LEGO1\legonavcontroller.h"\ + ".\LEGO1\legoomni.h"\ + ".\LEGO1\legopartpresenter.h"\ + ".\LEGO1\legoroi.h"\ + ".\LEGO1\legovideomanager.h"\ + ".\LEGO1\legoworldpresenter.h"\ + ".\LEGO1\mxatomid.h"\ + ".\LEGO1\mxbackgroundaudiomanager.h"\ + ".\LEGO1\mxbool.h"\ + ".\LEGO1\mxcore.h"\ + ".\LEGO1\mxcriticalsection.h"\ + ".\LEGO1\mxdirectdraw.h"\ + ".\LEGO1\mxdsaction.h"\ + ".\LEGO1\mxdsfile.h"\ + ".\LEGO1\mxdsobject.h"\ + ".\LEGO1\mxeventmanager.h"\ + ".\LEGO1\mxmusicmanager.h"\ + ".\LEGO1\mxnotificationmanager.h"\ + ".\LEGO1\mxobjectfactory.h"\ + ".\LEGO1\mxomni.h"\ + ".\LEGO1\mxomnicreateflags.h"\ + ".\LEGO1\mxomnicreateparam.h"\ + ".\LEGO1\mxomnicreateparambase.h"\ + ".\LEGO1\mxpalette.h"\ + ".\LEGO1\mxrect32.h"\ + ".\LEGO1\mxresult.h"\ + ".\LEGO1\mxsoundmanager.h"\ + ".\LEGO1\mxstreamcontroller.h"\ + ".\LEGO1\mxstreamer.h"\ + ".\LEGO1\mxstring.h"\ + ".\LEGO1\mxticklemanager.h"\ + ".\LEGO1\mxtimer.h"\ + ".\LEGO1\mxtransitionmanager.h"\ + ".\LEGO1\mxvariabletable.h"\ + ".\LEGO1\mxvideomanager.h"\ + ".\LEGO1\mxvideoparam.h"\ + ".\LEGO1\mxvideoparamflags.h"\ + ".\LEGO1\viewmanager.h"\ + + +"$(INTDIR)\isle.obj" : $(SOURCE) $(DEP_CPP_ISLE_) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\ISLE\main.cpp +DEP_CPP_MAIN_=\ + ".\ISLE\define.h"\ + ".\ISLE\isle.h"\ + ".\LEGO1\lego3dmanager.h"\ + ".\LEGO1\lego3dview.h"\ + ".\LEGO1\legoentity.h"\ + ".\LEGO1\legogamestate.h"\ + ".\LEGO1\legoinc.h"\ + ".\LEGO1\legoinputmanager.h"\ + ".\LEGO1\legonavcontroller.h"\ + ".\LEGO1\legoomni.h"\ + ".\LEGO1\legoroi.h"\ + ".\LEGO1\legovideomanager.h"\ + ".\LEGO1\mxatomid.h"\ + ".\LEGO1\mxbackgroundaudiomanager.h"\ + ".\LEGO1\mxbool.h"\ + ".\LEGO1\mxcore.h"\ + ".\LEGO1\mxcriticalsection.h"\ + ".\LEGO1\mxdsaction.h"\ + ".\LEGO1\mxdsfile.h"\ + ".\LEGO1\mxdsobject.h"\ + ".\LEGO1\mxeventmanager.h"\ + ".\LEGO1\mxmusicmanager.h"\ + ".\LEGO1\mxnotificationmanager.h"\ + ".\LEGO1\mxobjectfactory.h"\ + ".\LEGO1\mxomni.h"\ + ".\LEGO1\mxomnicreateflags.h"\ + ".\LEGO1\mxomnicreateparam.h"\ + ".\LEGO1\mxomnicreateparambase.h"\ + ".\LEGO1\mxpalette.h"\ + ".\LEGO1\mxrect32.h"\ + ".\LEGO1\mxresult.h"\ + ".\LEGO1\mxsoundmanager.h"\ + ".\LEGO1\mxstreamcontroller.h"\ + ".\LEGO1\mxstreamer.h"\ + ".\LEGO1\mxstring.h"\ + ".\LEGO1\mxticklemanager.h"\ + ".\LEGO1\mxtimer.h"\ + ".\LEGO1\mxtransitionmanager.h"\ + ".\LEGO1\mxvariabletable.h"\ + ".\LEGO1\mxvideomanager.h"\ + ".\LEGO1\mxvideoparam.h"\ + ".\LEGO1\mxvideoparamflags.h"\ + ".\LEGO1\viewmanager.h"\ + + +"$(INTDIR)\main.obj" : $(SOURCE) $(DEP_CPP_MAIN_) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\ISLE\res\isle.rc +DEP_RSC_ISLE_R=\ + ".\ISLE\res\resource.h"\ + + +!IF "$(CFG)" == "ISLE - Win32 Release" + + +"$(INTDIR)\isle.res" : $(SOURCE) $(DEP_RSC_ISLE_R) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)/isle.res" /i "ISLE\res" /d "NDEBUG" $(SOURCE) + + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + + +"$(INTDIR)\isle.res" : $(SOURCE) $(DEP_RSC_ISLE_R) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)/isle.res" /i "ISLE\res" /d "_DEBUG" $(SOURCE) + + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\legoanimationmanager.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\legobuildingmanager.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\legogamestate.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\legoinputmanager.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\legomodelpresenter.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\legoomni.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\legopartpresenter.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\legoroi.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\legovideomanager.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\legoworldpresenter.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxatomid.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxbackgroundaudiomanager.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxbitmap.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxbool.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxcore.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxdirectdraw.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxdsaction.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxdsfile.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxomni.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxomnicreateflags.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxomnicreateparam.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxpalette.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxrect32.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxresult.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxstreamcontroller.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxstreamer.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxstring.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxticklemanager.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxtimer.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxtransitionmanager.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxvariabletable.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxvideoparam.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxvideoparamflags.h + +!IF "$(CFG)" == "ISLE - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +!ENDIF + +# End Source File +################################################################################ +# Begin Project Dependency + +# Project_Dep_Name "LEGO1" + +!IF "$(CFG)" == "ISLE - Win32 Release" + +"LEGO1 - Win32 Release" : + $(MAKE) /$(MAKEFLAGS) /F ".\isle.mak" CFG="LEGO1 - Win32 Release" + +!ELSEIF "$(CFG)" == "ISLE - Win32 Debug" + +"LEGO1 - Win32 Debug" : + $(MAKE) /$(MAKEFLAGS) /F ".\isle.mak" CFG="LEGO1 - Win32 Debug" + +!ENDIF + +# End Project Dependency +# End Target +# End Project +################################################################################ From 579ee840497521a4e5a7ec17631219d75271a84a Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Fri, 23 Jun 2023 20:45:25 +0200 Subject: [PATCH 15/16] isle: Improving WinMain and SetupWindow accuracy (#38) * fix second Tick call, change loop * add missing parameter to SetupWindow * add missing include * reorganize CreateWindowEx * reorder cursor assignments * declare SetupWindow as inline * fix indent * WinMain 99% * minor improvement --- ISLE/isle.cpp | 292 +-------------------------------------- ISLE/isle.h | 247 +++++++++++++++++++++++++-------- ISLE/main.cpp | 184 ++++++++++++++++++++++-- LEGO1/legoinputmanager.h | 5 +- 4 files changed, 370 insertions(+), 358 deletions(-) diff --git a/ISLE/isle.cpp b/ISLE/isle.cpp index b6a19ab2..051572ef 100644 --- a/ISLE/isle.cpp +++ b/ISLE/isle.cpp @@ -1,15 +1,5 @@ #include "isle.h" -#include "legoanimationmanager.h" -#include "legobuildingmanager.h" -#include "legomodelpresenter.h" -#include "legopartpresenter.h" -#include "legoworldpresenter.h" -#include "mxdirectdraw.h" -#include "mxdsaction.h" -#include "mxomni.h" -#include "res/resource.h" - // OFFSET: ISLE 0x401000 Isle::Isle() { @@ -291,284 +281,4 @@ void Isle::SetupCursor(WPARAM wParam) } SetCursor(m_cursorCurrent); -} - -// OFFSET: ISLE 0x401d20 -LRESULT WINAPI WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - if (!g_isle) { - return DefWindowProcA(hWnd, uMsg, wParam, lParam); - } - - switch (uMsg) { - case WM_PAINT: - return DefWindowProcA(hWnd, WM_PAINT, wParam, lParam); - case WM_ACTIVATE: - return DefWindowProcA(hWnd, WM_ACTIVATE, wParam, lParam); - case WM_ACTIVATEAPP: - if (g_isle) { - if ((wParam != 0) && (g_isle->m_fullScreen)) { - MoveWindow(hWnd, g_windowRect.left, g_windowRect.top, - (g_windowRect.right - g_windowRect.left) + 1, - (g_windowRect.bottom - g_windowRect.top) + 1, TRUE); - } - g_isle->m_windowActive = wParam; - } - return DefWindowProcA(hWnd,WM_ACTIVATEAPP,wParam,lParam); - case WM_CLOSE: - if (!g_closed && g_isle) { - if (g_isle) { - delete g_isle; - } - g_isle = NULL; - g_closed = TRUE; - return 0; - } - return DefWindowProcA(hWnd,WM_CLOSE,wParam,lParam); - case WM_GETMINMAXINFO: - { - MINMAXINFO *mmi = (MINMAXINFO *) lParam; - - mmi->ptMaxTrackSize.x = (g_windowRect.right - g_windowRect.left) + 1; - mmi->ptMaxTrackSize.y = (g_windowRect.bottom - g_windowRect.top) + 1; - mmi->ptMinTrackSize.x = (g_windowRect.right - g_windowRect.left) + 1; - mmi->ptMinTrackSize.y = (g_windowRect.bottom - g_windowRect.top) + 1; - - return 0; - } - case WM_ENTERMENULOOP: - return DefWindowProcA(hWnd,WM_ENTERMENULOOP,wParam,lParam); - case WM_SYSCOMMAND: - if (wParam == SC_SCREENSAVE) { - return 0; - } - if (wParam == SC_CLOSE && g_closed == 0) { - if (g_isle) { - if (g_rmDisabled) { - ShowWindow(g_isle->m_windowHandle, SW_RESTORE); - } - PostMessageA(g_isle->m_windowHandle, WM_CLOSE, 0, 0); - return 0; - } - } else if (g_isle && g_isle->m_fullScreen && (wParam == SC_MOVE || wParam == SC_KEYMENU)) { - return 0; - } - return DefWindowProcA(hWnd,WM_SYSCOMMAND,wParam,lParam); - case WM_EXITMENULOOP: - return DefWindowProcA(hWnd, WM_EXITMENULOOP, wParam, lParam); - case WM_MOVING: - if (g_isle && g_isle->m_fullScreen) { - GetWindowRect(hWnd, (LPRECT) lParam); - return 0; - } - return DefWindowProcA(hWnd, WM_MOVING, wParam, lParam); - case WM_NCPAINT: - if (g_isle && g_isle->m_fullScreen) { - return 0; - } - return DefWindowProcA(hWnd, WM_NCPAINT, wParam, lParam); - case WM_DISPLAYCHANGE: - if (g_isle && VideoManager() && g_isle->m_fullScreen && VideoManager()->m_unk74 && VideoManager()->m_unk74[0x220]) { - if (!g_waitingForTargetDepth) { - unsigned char valid = FALSE; - if (LOWORD(lParam) == g_targetWidth && HIWORD(lParam) == g_targetHeight && g_targetDepth == wParam) { - valid = TRUE; - } - if (!g_rmDisabled) { - if (!valid) { - g_rmDisabled = 1; - Lego()->vtable38(); - VideoManager()->DisableRMDevice(); - } - } else if (valid) { - g_reqEnableRMDevice = 1; - } - } else { - g_waitingForTargetDepth = 0; - g_targetDepth = wParam; - } - } - return DefWindowProcA(hWnd, WM_DISPLAYCHANGE, wParam, lParam); - case WM_SETCURSOR: - case WM_KEYDOWN: - case WM_MOUSEMOVE: - case WM_TIMER: - case WM_LBUTTONDOWN: - case WM_LBUTTONUP: - case 0x5400: - { - - NotificationId type = NONE; - unsigned char keyCode = 0; - - switch (uMsg) { - case WM_KEYDOWN: - // While this probably should be (HIWORD(lParam) & KF_REPEAT), this seems - // to be what the assembly is actually doing - if (lParam & (KF_REPEAT << 16)) { - return DefWindowProcA(hWnd, WM_KEYDOWN, wParam, lParam); - } - keyCode = wParam; - type = KEYDOWN; - break; - case WM_MOUSEMOVE: - g_mousemoved = 1; - type = MOUSEMOVE; - break; - case WM_TIMER: - type = TIMER; - break; - case WM_SETCURSOR: - if (g_isle) { - HCURSOR hCursor = g_isle->m_cursorCurrent; - if (hCursor == g_isle->m_cursorBusy || hCursor == g_isle->m_cursorNo || !hCursor) { - SetCursor(hCursor); - return 0; - } - } - break; - case WM_LBUTTONDOWN: - g_mousedown = 1; - type = MOUSEDOWN; - break; - case WM_LBUTTONUP: - g_mousedown = 0; - type = MOUSEUP; - break; - case 0x5400: - if (g_isle) { - g_isle->SetupCursor(wParam); - return 0; - } - } - - if (g_isle) { - if (InputManager()) { - InputManager()->QueueEvent(type, wParam, LOWORD(lParam), HIWORD(lParam), keyCode); - } - if (g_isle && g_isle->m_drawCursor && type == MOUSEMOVE) { - unsigned short x = LOWORD(lParam); - unsigned short y = HIWORD(lParam); - if (639 < x) { - x = 639; - } - if (479 < y) { - y = 479; - } - VideoManager()->MoveCursor(x,y); - } - } - return 0; - } - } - - return DefWindowProcA(hWnd,uMsg,wParam,lParam); -} - -// OFFSET: ISLE 0x4023e0 -MxResult Isle::SetupWindow(HINSTANCE hInstance) -{ - WNDCLASSA wndclass; - ZeroMemory(&wndclass, sizeof(WNDCLASSA)); - - LoadConfig(); - - SetupVideoFlags(m_fullScreen, m_flipSurfaces, m_backBuffersInVram, m_using8bit, - m_using16bit, m_unk24, FALSE, m_wideViewAngle, m_deviceId); - - MxOmni::SetSound3D(m_use3dSound); - - srand(timeGetTime() / 1000); - SystemParametersInfoA(SPI_SETMOUSETRAILS, 0, NULL, 0); - - ZeroMemory(&wndclass, sizeof(WNDCLASSA)); - - wndclass.cbClsExtra = 0; - wndclass.style = CS_HREDRAW | CS_VREDRAW; - wndclass.lpfnWndProc = WndProc; - wndclass.cbWndExtra = 0; - wndclass.hIcon = LoadIconA(hInstance, MAKEINTRESOURCE(APP_ICON)); - wndclass.hCursor = LoadCursorA(hInstance, MAKEINTRESOURCE(ISLE_ARROW)); - m_cursorCurrent = wndclass.hCursor; - m_cursorArrow = wndclass.hCursor; - m_cursorBusy = LoadCursorA(hInstance, MAKEINTRESOURCE(ISLE_BUSY)); - m_cursorNo = LoadCursorA(hInstance, MAKEINTRESOURCE(ISLE_NO)); - wndclass.hInstance = hInstance; - wndclass.hbrBackground = (HBRUSH) GetStockObject(BLACK_BRUSH); - wndclass.lpszClassName = WNDCLASS_NAME; - - if (!RegisterClassA(&wndclass)) { - return FAILURE; - } - - DWORD dwStyle; - int x, y, width, height; - - if (!m_fullScreen) { - AdjustWindowRectEx(&g_windowRect, WS_CAPTION | WS_SYSMENU, 0, WS_EX_APPWINDOW); - - height = g_windowRect.bottom - g_windowRect.top; - width = g_windowRect.right - g_windowRect.left; - - y = CW_USEDEFAULT; - x = CW_USEDEFAULT; - dwStyle = WS_CAPTION | WS_SYSMENU | WS_MAXIMIZEBOX | WS_MINIMIZEBOX; - } else { - AdjustWindowRectEx(&g_windowRect, WS_CAPTION | WS_SYSMENU, 0, WS_EX_APPWINDOW); - height = g_windowRect.bottom - g_windowRect.top; - width = g_windowRect.right - g_windowRect.left; - dwStyle = WS_CAPTION | WS_SYSMENU; - x = g_windowRect.left; - y = g_windowRect.top; - } - - m_windowHandle = CreateWindowExA(WS_EX_APPWINDOW, WNDCLASS_NAME, WINDOW_TITLE, dwStyle, - x, y, width + 1, height + 1, NULL, NULL, hInstance, NULL); - if (!m_windowHandle) { - return FAILURE; - } - - if (m_fullScreen) { - MoveWindow(m_windowHandle, g_windowRect.left, g_windowRect.top, (g_windowRect.right - g_windowRect.left) + 1, (g_windowRect.bottom - g_windowRect.top) + 1, TRUE); - } - - ShowWindow(m_windowHandle, SW_SHOWNORMAL); - UpdateWindow(m_windowHandle); - if (!SetupLegoOmni()) { - return FAILURE; - } - - GameState()->SetSavePath(m_savePath); - GameState()->SerializePlayersInfo(1); - GameState()->SerializeScoreHistory(1); - - int iVar10; - if (m_islandQuality == 0) { - iVar10 = 1; - } else if (m_islandQuality == 1) { - iVar10 = 2; - } else { - iVar10 = 100; - } - - int uVar1 = (m_islandTexture == 0); - LegoModelPresenter::configureLegoModelPresenter(uVar1); - LegoPartPresenter::configureLegoPartPresenter(uVar1,iVar10); - LegoWorldPresenter::configureLegoWorldPresenter(m_islandQuality); - LegoBuildingManager::configureLegoBuildingManager(m_islandQuality); - LegoROI::configureLegoROI(iVar10); - LegoAnimationManager::configureLegoAnimationManager(m_islandQuality); - if (LegoOmni::GetInstance()) { - if (LegoOmni::GetInstance()->GetInputManager()) { - LegoOmni::GetInstance()->GetInputManager()->m_unk00[0xCD] = m_useJoystick; - LegoOmni::GetInstance()->GetInputManager()->m_unk00[0x67] = m_joystickIndex; - } - } - if (m_fullScreen) { - MoveWindow(m_windowHandle, g_windowRect.left, g_windowRect.top, (g_windowRect.right - g_windowRect.left) + 1, (g_windowRect.bottom - g_windowRect.top) + 1, TRUE); - } - ShowWindow(m_windowHandle, SW_SHOWNORMAL); - UpdateWindow(m_windowHandle); - - return SUCCESS; -} +} \ No newline at end of file diff --git a/ISLE/isle.h b/ISLE/isle.h index 0b31d748..d899d037 100644 --- a/ISLE/isle.h +++ b/ISLE/isle.h @@ -5,8 +5,17 @@ #include "define.h" #include "legoomni.h" +#include "legoanimationmanager.h" +#include "legobuildingmanager.h" +#include "legomodelpresenter.h" +#include "legopartpresenter.h" +#include "legoworldpresenter.h" #include "mxresult.h" #include "mxvideoparam.h" +#include "mxdirectdraw.h" +#include "mxdsaction.h" +#include "mxomni.h" +#include "res/resource.h" class Isle { @@ -20,7 +29,7 @@ class Isle int ReadRegBool(LPCSTR name, BOOL *out); int ReadRegInt(LPCSTR name, int *out); - MxResult SetupWindow(HINSTANCE hInstance); + MxResult SetupWindow(HINSTANCE hInstance, LPSTR lpCmdLine); void Tick(BOOL sleepIfNotNextFrame); @@ -79,68 +88,190 @@ class Isle }; +extern LRESULT WINAPI WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); + +// OFFSET: ISLE 0x4023e0 +inline MxResult Isle::SetupWindow(HINSTANCE hInstance, LPSTR lpCmdLine) +{ + WNDCLASSA wndclass; + ZeroMemory(&wndclass, sizeof(WNDCLASSA)); + + LoadConfig(); + + SetupVideoFlags(m_fullScreen, m_flipSurfaces, m_backBuffersInVram, m_using8bit, + m_using16bit, m_unk24, FALSE, m_wideViewAngle, m_deviceId); + + MxOmni::SetSound3D(m_use3dSound); + + srand(timeGetTime() / 1000); + SystemParametersInfoA(SPI_SETMOUSETRAILS, 0, NULL, 0); + + ZeroMemory(&wndclass, sizeof(WNDCLASSA)); + + wndclass.cbClsExtra = 0; + wndclass.style = CS_HREDRAW | CS_VREDRAW; + wndclass.lpfnWndProc = WndProc; + wndclass.cbWndExtra = 0; + wndclass.hIcon = LoadIconA(hInstance, MAKEINTRESOURCEA(APP_ICON)); + wndclass.hCursor = m_cursorArrow = m_cursorCurrent = LoadCursorA(hInstance, MAKEINTRESOURCEA(ISLE_ARROW)); + m_cursorBusy = LoadCursorA(hInstance, MAKEINTRESOURCEA(ISLE_BUSY)); + m_cursorNo = LoadCursorA(hInstance, MAKEINTRESOURCEA(ISLE_NO)); + wndclass.hInstance = hInstance; + wndclass.hbrBackground = (HBRUSH) GetStockObject(BLACK_BRUSH); + wndclass.lpszClassName = WNDCLASS_NAME; + + if (!RegisterClassA(&wndclass)) { + return FAILURE; + } + + if (m_fullScreen) { + AdjustWindowRectEx(&g_windowRect, WS_CAPTION | WS_SYSMENU, 0, WS_EX_APPWINDOW); + + m_windowHandle = CreateWindowExA( + WS_EX_APPWINDOW, + WNDCLASS_NAME, + WINDOW_TITLE, + WS_CAPTION | WS_SYSMENU, + g_windowRect.left, + g_windowRect.top, + g_windowRect.right - g_windowRect.left + 1, + g_windowRect.bottom - g_windowRect.top + 1, + NULL, NULL, hInstance, NULL + ); + } else { + AdjustWindowRectEx(&g_windowRect, WS_CAPTION | WS_SYSMENU, 0, WS_EX_APPWINDOW); + + m_windowHandle = CreateWindowExA( + WS_EX_APPWINDOW, + WNDCLASS_NAME, + WINDOW_TITLE, + WS_CAPTION | WS_SYSMENU | WS_MAXIMIZEBOX | WS_MINIMIZEBOX, + CW_USEDEFAULT, + CW_USEDEFAULT, + g_windowRect.right - g_windowRect.left + 1, + g_windowRect.bottom - g_windowRect.top + 1, + NULL, NULL, hInstance, NULL + ); + } + + if (!m_windowHandle) { + return FAILURE; + } + + if (m_fullScreen) { + MoveWindow(m_windowHandle, g_windowRect.left, g_windowRect.top, (g_windowRect.right - g_windowRect.left) + 1, (g_windowRect.bottom - g_windowRect.top) + 1, TRUE); + } + + ShowWindow(m_windowHandle, SW_SHOWNORMAL); + UpdateWindow(m_windowHandle); + if (!SetupLegoOmni()) { + return FAILURE; + } + + GameState()->SetSavePath(m_savePath); + GameState()->SerializePlayersInfo(1); + GameState()->SerializeScoreHistory(1); + + int iVar10; + switch (m_islandQuality) { + case 0: + iVar10 = 1; + break; + case 1: + iVar10 = 2; + break; + default: + iVar10 = 100; + } + + int uVar1 = (m_islandTexture == 0); + LegoModelPresenter::configureLegoModelPresenter(uVar1); + LegoPartPresenter::configureLegoPartPresenter(uVar1,iVar10); + LegoWorldPresenter::configureLegoWorldPresenter(m_islandQuality); + LegoBuildingManager::configureLegoBuildingManager(m_islandQuality); + LegoROI::configureLegoROI(iVar10); + LegoAnimationManager::configureLegoAnimationManager(m_islandQuality); + if (LegoOmni::GetInstance()) { + if (LegoOmni::GetInstance()->GetInputManager()) { + LegoOmni::GetInstance()->GetInputManager()->m_useJoystick = m_useJoystick; + LegoOmni::GetInstance()->GetInputManager()->m_joystickIndex = m_joystickIndex; + } + } + if (m_fullScreen) { + MoveWindow(m_windowHandle, g_windowRect.left, g_windowRect.top, (g_windowRect.right - g_windowRect.left) + 1, (g_windowRect.bottom - g_windowRect.top) + 1, TRUE); + } + ShowWindow(m_windowHandle, SW_SHOWNORMAL); + UpdateWindow(m_windowHandle); + + return SUCCESS; +} + // OFFSET: ISLE 0x402c20 inline void Isle::Tick(BOOL sleepIfNotNextFrame) { - if (this->m_windowActive) { - if (!Lego()) return; - if (!TickleManager()) return; - if (!Timer()) return; - - long currentTime = Timer()->GetRealTime(); - if (currentTime < g_lastFrameTime) { - g_lastFrameTime = -this->m_frameDelta; - } - if (this->m_frameDelta + g_lastFrameTime < currentTime) { - if (!Lego()->vtable40()) { - TickleManager()->Tickle(); - } - g_lastFrameTime = currentTime; - - if (g_startupDelay == 0) { - return; - } - - g_startupDelay--; - if (g_startupDelay != 0) { - return; - } - - LegoOmni::GetInstance()->CreateBackgroundAudio(); - BackgroundAudioManager()->Enable(this->m_useMusic); - - MxStreamController *stream = Streamer()->Open("\\lego\\scripts\\isle\\isle", 0); - MxDSAction ds; - - if (!stream) { - stream = Streamer()->Open("\\lego\\scripts\\nocd", 0); - if (!stream) { - return; - } - - ds.SetAtomId(stream->atom); - ds.SetUnknown24(-1); - ds.SetUnknown1c(0); - VideoManager()->EnableFullScreenMovie(TRUE, TRUE); - - if (Start(&ds) != SUCCESS) { - return; - } - } else { - ds.SetAtomId(stream->atom); - ds.SetUnknown24(-1); - ds.SetUnknown1c(0); - if (Start(&ds) != SUCCESS) { - return; - } - this->m_gameStarted = 1; - } - return; - } - if (sleepIfNotNextFrame == 0) return; + if (!this->m_windowActive) { + Sleep(0); + return; } - Sleep(0); + if (!Lego()) return; + if (!TickleManager()) return; + if (!Timer()) return; + + long currentTime = Timer()->GetRealTime(); + if (currentTime < g_lastFrameTime) { + g_lastFrameTime = -this->m_frameDelta; + } + + if (this->m_frameDelta + g_lastFrameTime < currentTime) { + if (!Lego()->vtable40()) { + TickleManager()->Tickle(); + } + g_lastFrameTime = currentTime; + + if (g_startupDelay == 0) { + return; + } + + g_startupDelay--; + if (g_startupDelay != 0) { + return; + } + + LegoOmni::GetInstance()->CreateBackgroundAudio(); + BackgroundAudioManager()->Enable(this->m_useMusic); + + MxStreamController *stream = Streamer()->Open("\\lego\\scripts\\isle\\isle", 0); + MxDSAction ds; + + if (!stream) { + stream = Streamer()->Open("\\lego\\scripts\\nocd", 0); + if (!stream) { + return; + } + + ds.SetAtomId(stream->atom); + ds.SetUnknown24(-1); + ds.SetUnknown1c(0); + VideoManager()->EnableFullScreenMovie(TRUE, TRUE); + + if (Start(&ds) != SUCCESS) { + return; + } + } else { + ds.SetAtomId(stream->atom); + ds.SetUnknown24(-1); + ds.SetUnknown1c(0); + if (Start(&ds) != SUCCESS) { + return; + } + this->m_gameStarted = 1; + } + return; + } + + if (sleepIfNotNextFrame != 0) + Sleep(0); } #endif // ISLE_H diff --git a/ISLE/main.cpp b/ISLE/main.cpp index 632ed43d..f45e9529 100644 --- a/ISLE/main.cpp +++ b/ISLE/main.cpp @@ -61,7 +61,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine g_isle = new Isle(); // Create window - if (g_isle->SetupWindow(hInstance) != SUCCESS) { + if (g_isle->SetupWindow(hInstance, lpCmdLine) != SUCCESS) { MessageBoxA(NULL, "\"LEGO\xAE Island\" failed to start. Please quit all other applications and try again.", "LEGO\xAE Island Error", MB_OK); return 0; } @@ -90,14 +90,10 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine } if (g_isle) { - g_isle->Tick(1); + g_isle->Tick(0); } - if (g_closed) { - break; - } - - do { + while (!g_closed) { if (!PeekMessageA(&msg, NULL, 0, 0, PM_REMOVE)) { break; } @@ -134,10 +130,182 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine } goto LAB_00401bc7; } - } while (!g_closed); + } } DestroyWindow(window); return msg.wParam; } + +// OFFSET: ISLE 0x401d20 +LRESULT WINAPI WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + if (!g_isle) { + return DefWindowProcA(hWnd, uMsg, wParam, lParam); + } + + switch (uMsg) { + case WM_PAINT: + return DefWindowProcA(hWnd, WM_PAINT, wParam, lParam); + case WM_ACTIVATE: + return DefWindowProcA(hWnd, WM_ACTIVATE, wParam, lParam); + case WM_ACTIVATEAPP: + if (g_isle) { + if ((wParam != 0) && (g_isle->m_fullScreen)) { + MoveWindow(hWnd, g_windowRect.left, g_windowRect.top, + (g_windowRect.right - g_windowRect.left) + 1, + (g_windowRect.bottom - g_windowRect.top) + 1, TRUE); + } + g_isle->m_windowActive = wParam; + } + return DefWindowProcA(hWnd,WM_ACTIVATEAPP,wParam,lParam); + case WM_CLOSE: + if (!g_closed && g_isle) { + if (g_isle) { + delete g_isle; + } + g_isle = NULL; + g_closed = TRUE; + return 0; + } + return DefWindowProcA(hWnd,WM_CLOSE,wParam,lParam); + case WM_GETMINMAXINFO: + { + MINMAXINFO *mmi = (MINMAXINFO *) lParam; + + mmi->ptMaxTrackSize.x = (g_windowRect.right - g_windowRect.left) + 1; + mmi->ptMaxTrackSize.y = (g_windowRect.bottom - g_windowRect.top) + 1; + mmi->ptMinTrackSize.x = (g_windowRect.right - g_windowRect.left) + 1; + mmi->ptMinTrackSize.y = (g_windowRect.bottom - g_windowRect.top) + 1; + + return 0; + } + case WM_ENTERMENULOOP: + return DefWindowProcA(hWnd,WM_ENTERMENULOOP,wParam,lParam); + case WM_SYSCOMMAND: + if (wParam == SC_SCREENSAVE) { + return 0; + } + if (wParam == SC_CLOSE && g_closed == 0) { + if (g_isle) { + if (g_rmDisabled) { + ShowWindow(g_isle->m_windowHandle, SW_RESTORE); + } + PostMessageA(g_isle->m_windowHandle, WM_CLOSE, 0, 0); + return 0; + } + } else if (g_isle && g_isle->m_fullScreen && (wParam == SC_MOVE || wParam == SC_KEYMENU)) { + return 0; + } + return DefWindowProcA(hWnd,WM_SYSCOMMAND,wParam,lParam); + case WM_EXITMENULOOP: + return DefWindowProcA(hWnd, WM_EXITMENULOOP, wParam, lParam); + case WM_MOVING: + if (g_isle && g_isle->m_fullScreen) { + GetWindowRect(hWnd, (LPRECT) lParam); + return 0; + } + return DefWindowProcA(hWnd, WM_MOVING, wParam, lParam); + case WM_NCPAINT: + if (g_isle && g_isle->m_fullScreen) { + return 0; + } + return DefWindowProcA(hWnd, WM_NCPAINT, wParam, lParam); + case WM_DISPLAYCHANGE: + if (g_isle && VideoManager() && g_isle->m_fullScreen && VideoManager()->m_unk74 && VideoManager()->m_unk74[0x220]) { + if (!g_waitingForTargetDepth) { + unsigned char valid = FALSE; + if (LOWORD(lParam) == g_targetWidth && HIWORD(lParam) == g_targetHeight && g_targetDepth == wParam) { + valid = TRUE; + } + if (!g_rmDisabled) { + if (!valid) { + g_rmDisabled = 1; + Lego()->vtable38(); + VideoManager()->DisableRMDevice(); + } + } else if (valid) { + g_reqEnableRMDevice = 1; + } + } else { + g_waitingForTargetDepth = 0; + g_targetDepth = wParam; + } + } + return DefWindowProcA(hWnd, WM_DISPLAYCHANGE, wParam, lParam); + case WM_SETCURSOR: + case WM_KEYDOWN: + case WM_MOUSEMOVE: + case WM_TIMER: + case WM_LBUTTONDOWN: + case WM_LBUTTONUP: + case 0x5400: + { + + NotificationId type = NONE; + unsigned char keyCode = 0; + + switch (uMsg) { + case WM_KEYDOWN: + // While this probably should be (HIWORD(lParam) & KF_REPEAT), this seems + // to be what the assembly is actually doing + if (lParam & (KF_REPEAT << 16)) { + return DefWindowProcA(hWnd, WM_KEYDOWN, wParam, lParam); + } + keyCode = wParam; + type = KEYDOWN; + break; + case WM_MOUSEMOVE: + g_mousemoved = 1; + type = MOUSEMOVE; + break; + case WM_TIMER: + type = TIMER; + break; + case WM_SETCURSOR: + if (g_isle) { + HCURSOR hCursor = g_isle->m_cursorCurrent; + if (hCursor == g_isle->m_cursorBusy || hCursor == g_isle->m_cursorNo || !hCursor) { + SetCursor(hCursor); + return 0; + } + } + break; + case WM_LBUTTONDOWN: + g_mousedown = 1; + type = MOUSEDOWN; + break; + case WM_LBUTTONUP: + g_mousedown = 0; + type = MOUSEUP; + break; + case 0x5400: + if (g_isle) { + g_isle->SetupCursor(wParam); + return 0; + } + } + + if (g_isle) { + if (InputManager()) { + InputManager()->QueueEvent(type, wParam, LOWORD(lParam), HIWORD(lParam), keyCode); + } + if (g_isle && g_isle->m_drawCursor && type == MOUSEMOVE) { + unsigned short x = LOWORD(lParam); + unsigned short y = HIWORD(lParam); + if (639 < x) { + x = 639; + } + if (479 < y) { + y = 479; + } + VideoManager()->MoveCursor(x,y); + } + } + return 0; + } + } + + return DefWindowProcA(hWnd,uMsg,wParam,lParam); +} \ No newline at end of file diff --git a/LEGO1/legoinputmanager.h b/LEGO1/legoinputmanager.h index 714b4ce7..bc5cc4d3 100644 --- a/LEGO1/legoinputmanager.h +++ b/LEGO1/legoinputmanager.h @@ -20,7 +20,10 @@ class LegoInputManager __declspec(dllexport) void Register(MxCore *); __declspec(dllexport) void UnRegister(MxCore *); - int m_unk00[0x400]; + char m_pad00[0x19C]; + int m_joystickIndex; + char m_pad200[0x194]; + MxBool m_useJoystick; }; #endif // LEGOINPUTMANAGER_H From 64d2b9e02b612c36d96096b9acf71d6dfdf25c8d Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Sat, 24 Jun 2023 19:09:46 +0200 Subject: [PATCH 16/16] lego: implement SetControlMax and related partials (MxVideoManager, MxPalette, MxUnknown100dc6b0) (#42) * lego: implement LegoNavController::SetControlMax and related * use MxResult * fix name --- LEGO1/legonavcontroller.cpp | 24 ++++++------- LEGO1/legonavcontroller.h | 2 +- LEGO1/legovideomanager.h | 29 ++------------- LEGO1/mxpalette.cpp | 8 +++++ LEGO1/mxpalette.h | 14 +++++++- LEGO1/mxunknown100dc6b0.cpp | 15 ++++++++ LEGO1/mxunknown100dc6b0.h | 23 ++++++++++++ LEGO1/mxvideomanager.cpp | 36 +++++++++++++++++++ LEGO1/mxvideomanager.h | 19 +++++++++- LEGO1/mxvideoparam.h | 6 ++++ LEGO1/mxvideoparamflags.h | 17 +++++++++ isle.mak | 70 ++++++++++++++++++++++++++++++++++++ isle.mdp | Bin 51200 -> 50176 bytes 13 files changed, 219 insertions(+), 44 deletions(-) create mode 100755 LEGO1/mxpalette.cpp create mode 100755 LEGO1/mxunknown100dc6b0.cpp create mode 100755 LEGO1/mxunknown100dc6b0.h create mode 100755 LEGO1/mxvideomanager.cpp diff --git a/LEGO1/legonavcontroller.cpp b/LEGO1/legonavcontroller.cpp index 6f032701..e9110d7b 100644 --- a/LEGO1/legonavcontroller.cpp +++ b/LEGO1/legonavcontroller.cpp @@ -100,22 +100,18 @@ LegoNavController::LegoNavController() // inputManager->UnRegister(this); // } -// TODO: VideoManager() // OFFSET: LEGO1 0x10054ca0 -// void LegoNavController::SetControlMax(int p_hMax, int p_vMax) -// { -// LegoVideoManager* videoManager = VideoManager(); +void LegoNavController::SetControlMax(int p_hMax, int p_vMax) +{ + this->m_hMax = p_hMax; + this->m_vMax = p_vMax; -// this->m_hMax = p_hMax; -// this->m_vMax = p_vMax; - -// Probably checks for MxVideoParamFlags: FULL_SCREEN -// if ((videoManager->m_unk44 & 0x01) != 0) -// { -// this->m_hMax = 640; -// this->m_vMax = 480; -// } -// } + if (VideoManager()->GetVideoParam().flags().GetFullScreen()) + { + this->m_hMax = 640; + this->m_vMax = 480; + } +} // OFFSET: LEGO1 0x10054cd0 void LegoNavController::ResetToDefault() diff --git a/LEGO1/legonavcontroller.h b/LEGO1/legonavcontroller.h index de762dfd..3220d794 100644 --- a/LEGO1/legonavcontroller.h +++ b/LEGO1/legonavcontroller.h @@ -20,7 +20,7 @@ class LegoNavController : public MxCore LegoNavController(); // virtual ~LegoNavController(); - // void SetControlMax(int p_hMax, int p_vMax); + void SetControlMax(int p_hMax, int p_vMax); void ResetToDefault(); void SetTargets(int p_hPos, int p_vPos, MxBool p_accel); float CalculateNewTargetSpeed(int p_pos, int p_center, float p_maxSpeed); diff --git a/LEGO1/legovideomanager.h b/LEGO1/legovideomanager.h index a221504f..d96fac87 100644 --- a/LEGO1/legovideomanager.h +++ b/LEGO1/legovideomanager.h @@ -1,10 +1,10 @@ #ifndef LEGOVIDEOMANAGER_H #define LEGOVIDEOMANAGER_H +#include "mxvideomanager.h" #include "lego3dmanager.h" -// class LegoVideoManager : public MxVideoManager -class LegoVideoManager +class LegoVideoManager : public MxVideoManager { public: __declspec(dllexport) int EnableRMDevice(); @@ -14,31 +14,6 @@ class LegoVideoManager inline Lego3DManager *Get3DManager() { return this->m_3dManager; } - int m_unk00; - int m_unk04; - int m_unk08; - int m_unk0c; - int m_unk10; - int m_unk14; - int m_unk18; - int m_unk1c; - int m_unk20; - int m_unk24; - int m_unk28; - int m_unk2c; - int m_unk30; - int m_unk34; - int m_unk38; - int m_unk3c; - int m_unk40; - int m_unk44; - int m_unk48; - int m_unk4c; - int m_unk50; - int m_unk54; - int m_unk58; - int m_unk5c; - int m_unk60; int m_unk64; Lego3DManager *m_3dManager; int m_unk6c; diff --git a/LEGO1/mxpalette.cpp b/LEGO1/mxpalette.cpp new file mode 100755 index 00000000..dd245538 --- /dev/null +++ b/LEGO1/mxpalette.cpp @@ -0,0 +1,8 @@ +#include "mxpalette.h" + +// OFFSET: LEGO1 0x100bf150 +MxResult MxPalette::GetEntries(LPPALETTEENTRY p_entries) +{ + memcpy(p_entries, this->m_entries, sizeof(this->m_entries)); + return SUCCESS; +} \ No newline at end of file diff --git a/LEGO1/mxpalette.h b/LEGO1/mxpalette.h index fff36897..ab52b412 100644 --- a/LEGO1/mxpalette.h +++ b/LEGO1/mxpalette.h @@ -1,11 +1,23 @@ #ifndef MXPALETTE_H #define MXPALETTE_H -class MxPalette +#include + +#include "mxcore.h" +#include "mxresult.h" + +class MxPalette : public MxCore { public: __declspec(dllexport) unsigned char operator==(MxPalette &); __declspec(dllexport) void Detach(); + + MxResult GetEntries(LPPALETTEENTRY p_entries); + +private: + LPDIRECTDRAWPALETTE m_pDirectDrawPalette; + PALETTEENTRY m_entries[256]; + // there's a bit more here }; #endif // MXPALETTE_H diff --git a/LEGO1/mxunknown100dc6b0.cpp b/LEGO1/mxunknown100dc6b0.cpp new file mode 100755 index 00000000..e3125cef --- /dev/null +++ b/LEGO1/mxunknown100dc6b0.cpp @@ -0,0 +1,15 @@ +#include "mxunknown100dc6b0.h" + +// OFFSET: LEGO1 0x100b84c0 +MxUnknown100dc6b0::MxUnknown100dc6b0() +{ + Init(); +} + +// OFFSET: LEGO1 0x100b85d0 +MxResult MxUnknown100dc6b0::Init() +{ + this->m_unk08 = 0; + this->m_unk0c = 0; + return SUCCESS; +} \ No newline at end of file diff --git a/LEGO1/mxunknown100dc6b0.h b/LEGO1/mxunknown100dc6b0.h new file mode 100755 index 00000000..87779eaf --- /dev/null +++ b/LEGO1/mxunknown100dc6b0.h @@ -0,0 +1,23 @@ +#ifndef MXUNKNOWN100DC6B0_H +#define MXUNKNOWN100DC6B0_H + +#include "mxcore.h" +#include "mxresult.h" +#include "mxcriticalsection.h" + +class MxUnknown100dc6b0 : public MxCore +{ +public: + MxUnknown100dc6b0(); + + MxResult Init(); + +private: + int m_unk08; + int m_unk0c; + +protected: + MxCriticalSection m_criticalSection; +}; + +#endif // MXUNKNOWN100DC6B0_H diff --git a/LEGO1/mxvideomanager.cpp b/LEGO1/mxvideomanager.cpp new file mode 100755 index 00000000..c7a41c99 --- /dev/null +++ b/LEGO1/mxvideomanager.cpp @@ -0,0 +1,36 @@ +#include "mxvideomanager.h" + +// OFFSET: LEGO1 0x100be1f0 +MxVideoManager::MxVideoManager() +{ + Init(); +} + +// OFFSET: LEGO1 0x100be320 +int MxVideoManager::Init() +{ + this->m_unk50 = 0; + this->m_unk54 = NULL; + this->m_unk58 = NULL; + this->m_unk5c = 0; + this->m_videoParam.SetPalette(NULL); + this->m_unk60 = MX_FALSE; + return 0; +} + +// OFFSET: LEGO1 0x100bebe0 +long MxVideoManager::RealizePalette(MxPalette *p_palette) +{ + PALETTEENTRY paletteEntries[256]; + + this->m_criticalSection.Enter(); + + if (p_palette && this->m_videoParam.GetPalette()) + { + p_palette->GetEntries(paletteEntries); + // TODO + } + + this->m_criticalSection.Leave(); + return 0; +} \ No newline at end of file diff --git a/LEGO1/mxvideomanager.h b/LEGO1/mxvideomanager.h index f2805b15..eba332f3 100644 --- a/LEGO1/mxvideomanager.h +++ b/LEGO1/mxvideomanager.h @@ -1,11 +1,28 @@ #ifndef MXVIDEOMANAGER_H #define MXVIDEOMANAGER_H -class MxVideoManager +#include "mxunknown100dc6b0.h" +#include "mxvideoparam.h" + +class MxVideoManager : public MxUnknown100dc6b0 { public: __declspec(dllexport) void InvalidateRect(MxRect32 &); __declspec(dllexport) virtual long RealizePalette(MxPalette *); + + MxVideoManager(); + + int Init(); + + inline MxVideoParam& GetVideoParam() { return this->m_videoParam; } + +private: + MxVideoParam m_videoParam; + int m_unk50; + LPDIRECTDRAWSURFACE m_unk54; + void* m_unk58; + int m_unk5c; + MxBool m_unk60; }; #endif // MXVIDEOMANAGER_H diff --git a/LEGO1/mxvideoparam.h b/LEGO1/mxvideoparam.h index aeb50554..70569978 100644 --- a/LEGO1/mxvideoparam.h +++ b/LEGO1/mxvideoparam.h @@ -1,7 +1,10 @@ #ifndef MXVIDEOPARAM_H #define MXVIDEOPARAM_H +#include + #include "mxpalette.h" +#include "mxbool.h" #include "mxrect32.h" #include "mxvariabletable.h" #include "mxvideoparamflags.h" @@ -19,6 +22,9 @@ class MxVideoParam inline MxVideoParamFlags &flags() { return m_flags; } + inline void SetPalette(MxPalette *p_palette) { this->m_palette = p_palette; } + inline MxPalette *GetPalette() { return this->m_palette; } + private: MxRect32 m_rect; MxPalette *m_palette; diff --git a/LEGO1/mxvideoparamflags.h b/LEGO1/mxvideoparamflags.h index 3897c788..4e030499 100644 --- a/LEGO1/mxvideoparamflags.h +++ b/LEGO1/mxvideoparamflags.h @@ -40,6 +40,23 @@ class MxVideoParamFlags inline void Set_f2bit6(BOOL e) { m_flags2.bit6 = e; } inline void Set_f2bit7(BOOL e) { m_flags2.bit7 = e; } + inline BYTE GetFullScreen() { return m_flags1.bit0; } + inline BYTE GetFlipSurfaces() { return m_flags1.bit1; } + inline BYTE GetBackBuffers() { return m_flags1.bit2; } + inline BYTE Get_f1bit3() { return m_flags1.bit3; } + inline BYTE Get_f1bit4() { return m_flags1.bit4; } + inline BYTE Get16Bit() { return m_flags1.bit5; } + inline BYTE GetWideViewAngle() { return m_flags1.bit6; } + inline BYTE Get_f1bit7() { return m_flags1.bit7; } + inline BYTE Get_f2bit0() { return m_flags2.bit0; } + inline BYTE Get_f2bit1() { return m_flags2.bit1; } + inline BYTE Get_f2bit2() { return m_flags2.bit2; } + inline BYTE Get_f2bit3() { return m_flags2.bit3; } + inline BYTE Get_f2bit4() { return m_flags2.bit4; } + inline BYTE Get_f2bit5() { return m_flags2.bit5; } + inline BYTE Get_f2bit6() { return m_flags2.bit6; } + inline BYTE Get_f2bit7() { return m_flags2.bit7; } + private: flag_bitfield m_flags1; flag_bitfield m_flags2; diff --git a/isle.mak b/isle.mak index 78b41308..59570097 100644 --- a/isle.mak +++ b/isle.mak @@ -66,8 +66,11 @@ CLEAN : -@erase "$(INTDIR)\mxomnicreateflags.obj" -@erase "$(INTDIR)\mxomnicreateparam.obj" -@erase "$(INTDIR)\mxomnicreateparambase.obj" + -@erase "$(INTDIR)\mxpalette.obj" -@erase "$(INTDIR)\mxstring.obj" -@erase "$(INTDIR)\mxtimer.obj" + -@erase "$(INTDIR)\mxunknown100dc6b0.obj" + -@erase "$(INTDIR)\mxvideomanager.obj" -@erase "$(INTDIR)\mxvideoparam.obj" -@erase "$(INTDIR)\mxvideoparamflags.obj" -@erase "$(INTDIR)\vc40.pdb" @@ -140,8 +143,11 @@ LINK32_OBJS= \ "$(INTDIR)\mxomnicreateflags.obj" \ "$(INTDIR)\mxomnicreateparam.obj" \ "$(INTDIR)\mxomnicreateparambase.obj" \ + "$(INTDIR)\mxpalette.obj" \ "$(INTDIR)\mxstring.obj" \ "$(INTDIR)\mxtimer.obj" \ + "$(INTDIR)\mxunknown100dc6b0.obj" \ + "$(INTDIR)\mxvideomanager.obj" \ "$(INTDIR)\mxvideoparam.obj" \ "$(INTDIR)\mxvideoparamflags.obj" @@ -180,8 +186,11 @@ CLEAN : -@erase "$(INTDIR)\mxomnicreateflags.obj" -@erase "$(INTDIR)\mxomnicreateparam.obj" -@erase "$(INTDIR)\mxomnicreateparambase.obj" + -@erase "$(INTDIR)\mxpalette.obj" -@erase "$(INTDIR)\mxstring.obj" -@erase "$(INTDIR)\mxtimer.obj" + -@erase "$(INTDIR)\mxunknown100dc6b0.obj" + -@erase "$(INTDIR)\mxvideomanager.obj" -@erase "$(INTDIR)\mxvideoparam.obj" -@erase "$(INTDIR)\mxvideoparamflags.obj" -@erase "$(INTDIR)\vc40.idb" @@ -256,8 +265,11 @@ LINK32_OBJS= \ "$(INTDIR)\mxomnicreateflags.obj" \ "$(INTDIR)\mxomnicreateparam.obj" \ "$(INTDIR)\mxomnicreateparambase.obj" \ + "$(INTDIR)\mxpalette.obj" \ "$(INTDIR)\mxstring.obj" \ "$(INTDIR)\mxtimer.obj" \ + "$(INTDIR)\mxunknown100dc6b0.obj" \ + "$(INTDIR)\mxvideomanager.obj" \ "$(INTDIR)\mxvideoparam.obj" \ "$(INTDIR)\mxvideoparamflags.obj" @@ -530,6 +542,7 @@ DEP_CPP_LEGOO=\ ".\LEGO1\mxticklemanager.h"\ ".\LEGO1\mxtimer.h"\ ".\LEGO1\mxtransitionmanager.h"\ + ".\LEGO1\mxunknown100dc6b0.h"\ ".\LEGO1\mxvariabletable.h"\ ".\LEGO1\mxvideomanager.h"\ ".\LEGO1\mxvideoparam.h"\ @@ -614,6 +627,7 @@ DEP_CPP_MXOMN=\ ".\LEGO1\mxstring.h"\ ".\LEGO1\mxticklemanager.h"\ ".\LEGO1\mxtimer.h"\ + ".\LEGO1\mxunknown100dc6b0.h"\ ".\LEGO1\mxvariabletable.h"\ ".\LEGO1\mxvideomanager.h"\ ".\LEGO1\mxvideoparam.h"\ @@ -777,6 +791,7 @@ DEP_CPP_LEGON=\ ".\LEGO1\mxticklemanager.h"\ ".\LEGO1\mxtimer.h"\ ".\LEGO1\mxtransitionmanager.h"\ + ".\LEGO1\mxunknown100dc6b0.h"\ ".\LEGO1\mxvariabletable.h"\ ".\LEGO1\mxvideomanager.h"\ ".\LEGO1\mxvideoparam.h"\ @@ -817,6 +832,59 @@ DEP_CPP_MXATO=\ $(CPP) $(CPP_PROJ) $(SOURCE) +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxunknown100dc6b0.cpp +DEP_CPP_MXUNK=\ + ".\LEGO1\legoinc.h"\ + ".\LEGO1\mxbool.h"\ + ".\LEGO1\mxcore.h"\ + ".\LEGO1\mxcriticalsection.h"\ + ".\LEGO1\mxunknown100dc6b0.h"\ + + +"$(INTDIR)\mxunknown100dc6b0.obj" : $(SOURCE) $(DEP_CPP_MXUNK) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxvideomanager.cpp +DEP_CPP_MXVIDEO=\ + ".\LEGO1\legoinc.h"\ + ".\LEGO1\mxbool.h"\ + ".\LEGO1\mxcore.h"\ + ".\LEGO1\mxcriticalsection.h"\ + ".\LEGO1\mxpalette.h"\ + ".\LEGO1\mxrect32.h"\ + ".\LEGO1\mxunknown100dc6b0.h"\ + ".\LEGO1\mxvariabletable.h"\ + ".\LEGO1\mxvideomanager.h"\ + ".\LEGO1\mxvideoparam.h"\ + ".\LEGO1\mxvideoparamflags.h"\ + + +"$(INTDIR)\mxvideomanager.obj" : $(SOURCE) $(DEP_CPP_MXVIDEO) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\LEGO1\mxpalette.cpp +DEP_CPP_MXPAL=\ + ".\LEGO1\mxpalette.h"\ + + +"$(INTDIR)\mxpalette.obj" : $(SOURCE) $(DEP_CPP_MXPAL) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + # End Source File # End Target ################################################################################ @@ -894,6 +962,7 @@ DEP_CPP_ISLE_=\ ".\LEGO1\mxticklemanager.h"\ ".\LEGO1\mxtimer.h"\ ".\LEGO1\mxtransitionmanager.h"\ + ".\LEGO1\mxunknown100dc6b0.h"\ ".\LEGO1\mxvariabletable.h"\ ".\LEGO1\mxvideomanager.h"\ ".\LEGO1\mxvideoparam.h"\ @@ -949,6 +1018,7 @@ DEP_CPP_MAIN_=\ ".\LEGO1\mxticklemanager.h"\ ".\LEGO1\mxtimer.h"\ ".\LEGO1\mxtransitionmanager.h"\ + ".\LEGO1\mxunknown100dc6b0.h"\ ".\LEGO1\mxvariabletable.h"\ ".\LEGO1\mxvideomanager.h"\ ".\LEGO1\mxvideoparam.h"\ diff --git a/isle.mdp b/isle.mdp index 375126de1fb0e167099a3ea158190f92cebdac37..390064aa600f2bb5cc48156405e1040876938d6d 100644 GIT binary patch literal 50176 zcmeHQOLN@D5$+{LhNNWcK~l11OOchg6R-J@Wm|qE)>2la(6J-hk&~VkBZg~GWIck%p zV+2mYH$)Sl*MtBeKnM^5ga9Ex2oM5<03kpK5CVh%Auz!RT$zTefBJk1{tkbJ(HD=W zK0O7{xz+t>;KqY)rx$yJ#IwTgM)WB3Bg+|dy@Bs`H}Bkif3+Ko`j+n|iQBgO{p$?r@<%tbO0}%p*03kpK5CVh%AwUQa0)zk|KnM^5gupQ)K>5Fung9D1d>g(4 z--YkN_u&WdBK+`}?U06lk_e>vKX%z~>E71noog>$d+3GhYu6sQzH1HK8EEA{s|SCo zpNZ%??v5AoP5`ae%bGl_mjHYG^f>~{3sa6Y%`sv(?OD){?N;mUgPGFS2EMx+S)mtL zi5G=gqk`UBChXfo&v)>H{yF!nCfvJL;0_Y(QPA$)GU4;W{xHdheA9$Ah#c4NBVKNp zU|WWs2Eqkctf@k~_lC)M*g_!@hSM;#Vz@ZM(Tsp8wVdb~0rMz|eMgw7HZZ|x+@SE0x~s`tT*5z302Rht&2u!6@+p zHa+c406AhS9C)QI#9*fTR_s~Z*kFhKGJ4dCPpBBUGe81T5wM~g_-TYzZgBh%r9ph5jmOsFUg*hC~|C+vKS;HjqBYO{x z#7xi3v^bXmq=l9Svn&=louvUl1#8~;sMRvyFFa=I^|-$8=mT8g-^P<_s)M#|L_mGe;%+!7~98ju#3rDja#fM8cJ?PJU)N zScO8oo(l3Th-5Ms3l$tO?;#--<}LUU3E{Nk;*u;uXT$Bgq2q@3XB|vbV>!`{#|A%# zg%e%{X~9{Mjv0JGlGZ)cB=by7FSOe|HO*N@v+iX1kp{{$DdoQBV%0<~kdtBA&PzUP zBIDx&ET1EPjx>N=C~9$PiI>&Y zH#O5@-A^?rc7_$FvWk{kC{8!4VX29@tZ`njVaRjA$lXWd&_D@EgWcKftT6|Lz;YtlyjaXx)mbg!^ROZx@(W;7CoSF=0IsPJp27PhKEA=+D z!1-)LZjiT(H1(RAS|*NPsiLWA5m8-d^0ZhhYjU_~b=8f&LA$4zo7Y%S99}r*GzjFb zc9?ir*;nh0bF60j8>naImNxD`q}>$H&9s~1cZxKa3hkz}oALmYc2nGZ+0_xX6QoLQo#xe z(gv%U;f|$+-Nv&bNRfmcCsuU=%JC;ma7wE5>@44N8VD9}Gl_<=jn`?_QjR=3dr`GD zsq|P@Y)mTpBTxV8B(aTB#7j)0`tGJu=qt!5bCI=uP&I)g&p&ej>N}une2fROkB+Df z^-ux!(NsC`C|)hjH9S$6uo6H0q1K49<90&Xar~f)+C(TjuH618JI<~%d{y~uI)11& zD>{B0T+pWDM|#$6|Mc-+|H<>f-OfS%+Nl5QB=mp%7=8u6hTlLJK7rrD@8HwPHF46c IhQK`h4@5i>LI3~& literal 51200 zcmeHQS#ul55pIa0LQ1lAkdkcqlAZWSVk4I5_&!BaGHJ@9MLWs?$6D?#iH-I^?Jj7z zT;*3ksqgQREnm;rWX2@D|7A{teqP(V-b^fx`z(_han*0-*| zIs-?+0XPEmnmPpjN3W?y;NMeiJsJNeco}SX4ju!B#iRT$p)x%P$N}%a(_=PSnj>%& zej&R6y(a_+0YZQfAOr{jLVyq;1PB2_fDj-A2!TV4z!9we{BUOm{t4eh=lgq93p&JO zEt@tA$B+S4gB_J z(JSi2gFztU|JY%_#kH-C)l08jy6uHaS1#Rheb-9dS!k5650>9TZ}altvyk0eKXJUbDSs-j|LQr&3o& zo&usPafCe?1KvH)aidAV`*jrij%1S|yg|=Oqrh{T?M*XygWk4f-`$O)Zs=HD#}mdG z_h{Qg2kbQ4?;H0hiu^H}+fj^jXvOsEju*Rj>crO9&GuDeC5dITMaFpE1U)C&@o>pC zhjFZF7xY+jJ9cqF+VQR3#CQVBns6dpL9_jlDXbmKcT=`P8apQ&+odaGDM-40+H4yx ztwAqI5!Aqr!ZeP2pDnG%UY4mEV|C`e!T8l|UpF0+)U)sUZn-2HuFXL&^@1^iF}9Db zF!A~VyRl7sR_s~Z=xXfG7)uF{7P-$GhQFXEl;rae7I-`>H;F6mc6V3aA{tK)zH;(C zqTvj6d|&MI4BeV-()iNFJ7Tyw3wm~p&R|=9f)k!C#9Z4oQ!lr=Y2-)tU3AfL@G0D! z>o6WBfsU~~!l^QQjA0gvGVdI3&_vA1W)0VN({#`Vv~6Q1m04@(ndNFZDI>>+j7^r% z+LNLQ@0F8m}oJud?|#>{>rSI zLQXQjWY!d7(zV43p~FftO$dv*p-?Zi5VJ|JV2T#c3NQv*luVbRRXI9+Y?eY$*`eV~ zP_t5sYn&G*I5P935S98Zu}ccU8OKHUU4-Qox8sJ68`|G2W3dH~AGmSu@N-2<)__y8 z9CLUflGPFQBJ<2lFSMI&z04^lv*eTswqEjNCb{RiSa;k<3`_D}`c0h}zpiwmK(Fv@ zW`%reKrg(&g!}o%n!X-q(tJwQ2yqm7Szdox-p78XLN9z=)Wr2d7xi^-eWQiyI#pxX zNtW>zRbahR>~2x%)eCW5IWt>x$$gy@B!7e=YKgVmJ2@|wQ8 zXRzkWY2+QWKZh~W_~=Ia?z0}A_?SgW4OMcc zSvgOyNI_5KQk)FZuqlO1d0tAP2bl?e*g-z~t`K{=$f8-kRXq-%;&RI5o;9hQVpp}e zAYY^}v#c^j7iHQ06X`0|Ps-whWqMVElChB!%xX8DkoBU6%4f(`YH@HgLX)Y@Q_`x| zKH~=WkyY_N;|7c5s$P`F$$4y5?{h_G>oVDDGf8`KPFvN9(~@>xyxvEs;7Y0&lqnwR zWVK44MDfU(b5*Bggvgz%Vv-R>idhvZokUIq%OrD1`EvQI%1bPylr~o7B%4IyxQ|$o zI#$I>uPahK>4X@DvT6efdpRep3QGMHSz%S|ap6Ffys#==&O9kItV)%OmL@l>wvc*J z$quX1lB@`NGn`2mBXB0l`k@jN>qQS$-Q=&1U2nk2y60$1#{h z-Pp!+&H63P#A(a(y3nNKU(aa*lTMz~r<3GGhhcX|;!YQtMb+r0Gw420tz2a#4(d8E zablJOP>q1P>*Kb%xVK5~s786}Waxj~(GH$5ubENEL@PhGPHPEo~^Wb2YS~z(W?&;R%dAREMTIbpKt> z`XEeo==@0}dWa6V4xMc%f53j=;@Fu(kZ^JwAF1!ct!w2vod<0iv8CGBwuEBNq7}j7NK7kFm z0iVK6*o4pE7Hq-i@CEz