mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-29 11:11:15 +00:00
Merge remote-tracking branch 'upstream/master' into impl/legosoundmanager
This commit is contained in:
commit
c1092ea2bc
@ -30,6 +30,7 @@ QualifierOrder:
|
|||||||
- const
|
- const
|
||||||
- volatile
|
- volatile
|
||||||
- type
|
- type
|
||||||
|
RemoveSemicolon: true
|
||||||
SpaceAfterCStyleCast: true
|
SpaceAfterCStyleCast: true
|
||||||
TabWidth: 4
|
TabWidth: 4
|
||||||
UseTab: ForContinuationAndIndentation
|
UseTab: ForContinuationAndIndentation
|
||||||
|
|||||||
6
.clang-tidy
Normal file
6
.clang-tidy
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
Checks: >
|
||||||
|
-*,
|
||||||
|
readability-braces-around-statements,
|
||||||
|
modernize-use-override
|
||||||
|
WarningsAsErrors: '-*,readability-braces-around-statements,modernize-use-override'
|
||||||
|
HeaderFilterRegex: ".*"
|
||||||
6
.github/workflows/analyze.yml
vendored
6
.github/workflows/analyze.yml
vendored
@ -4,10 +4,11 @@ on: [push, pull_request]
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
decomplint-isle:
|
decomplint-isle:
|
||||||
|
name: 'ISLE annotations'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install python libraries
|
- name: Install python libraries
|
||||||
run: |
|
run: |
|
||||||
@ -18,10 +19,11 @@ jobs:
|
|||||||
python3 tools/decomplint/decomplint.py ISLE --module ISLE --warnfail
|
python3 tools/decomplint/decomplint.py ISLE --module ISLE --warnfail
|
||||||
|
|
||||||
decomplint-lego1:
|
decomplint-lego1:
|
||||||
|
name: 'LEGO1 annotations'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install python libraries
|
- name: Install python libraries
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
73
.github/workflows/build.yml
vendored
73
.github/workflows/build.yml
vendored
@ -3,13 +3,66 @@ name: Build
|
|||||||
on: [push, pull_request]
|
on: [push, pull_request]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
build-current-toolchain:
|
||||||
|
name: 'Current ${{ matrix.toolchain.name }}'
|
||||||
|
runs-on: windows-latest
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: ${{ matrix.toolchain.shell }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
toolchain:
|
||||||
|
- { name: 'MSVC', shell: 'sh', setup-cmake: true, setup-ninja: true, setup-msvc: true }
|
||||||
|
- { name: 'msys2 mingw32', shell: 'msys2 {0}', msystem: mingw32, msys-env: mingw-w64-i686, clang-tidy: true, werror: true }
|
||||||
|
- { name: 'msys2 clang32', shell: 'msys2 {0}', msystem: clang32, msys-env: mingw-w64-clang-i686, clang-tidy: true, werror: true, no-dx5-libs: true }
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Set up MSYS2
|
||||||
|
if: ${{ !!matrix.toolchain.msystem }}
|
||||||
|
uses: msys2/setup-msys2@v2
|
||||||
|
with:
|
||||||
|
msystem: ${{ matrix.toolchain.msystem }}
|
||||||
|
install: >-
|
||||||
|
${{ matrix.toolchain.msys-env }}-cc
|
||||||
|
${{ matrix.toolchain.msys-env }}-cmake
|
||||||
|
${{ matrix.toolchain.msys-env }}-ninja
|
||||||
|
${{ matrix.toolchain.msys-env }}-clang-tools-extra
|
||||||
|
|
||||||
|
- name: Setup cmake
|
||||||
|
if: matrix.toolchain.setup-cmake
|
||||||
|
uses: jwlawson/actions-setup-cmake@v1.13
|
||||||
|
|
||||||
|
- name: Setup ninja
|
||||||
|
if: matrix.toolchain.setup-ninja
|
||||||
|
uses: ashutoshvarma/setup-ninja@master
|
||||||
|
|
||||||
|
- name: Setup vcvars
|
||||||
|
if: matrix.toolchain.setup-msvc
|
||||||
|
uses: ilammy/msvc-dev-cmd@v1
|
||||||
|
with:
|
||||||
|
arch: amd64_x86 # Use the 64-bit x64-native cross tools to build 32-bit x86 code
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
cmake -S . -B build -GNinja \
|
||||||
|
-DCMAKE_BUILD_TYPE=Debug \
|
||||||
|
-DISLE_USE_DX5_LIBS=${{ !matrix.toolchain.no-dx5-libs }} \
|
||||||
|
-DENABLE_CLANG_TIDY=${{ !!matrix.toolchain.clang-tidy }} \
|
||||||
|
-DISLE_WERROR=${{ !!matrix.toolchain.werror }} \
|
||||||
|
-Werror=dev
|
||||||
|
cmake --build build -- -k0
|
||||||
|
|
||||||
build:
|
build:
|
||||||
|
name: 'MSVC 4.20'
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: 'itsmattkc/msvc420'
|
repository: 'itsmattkc/msvc420'
|
||||||
path: msvc420
|
path: msvc420
|
||||||
@ -28,10 +81,8 @@ jobs:
|
|||||||
shell: cmd
|
shell: cmd
|
||||||
run: |
|
run: |
|
||||||
call .\msvc420\bin\VCVARS32.BAT x86
|
call .\msvc420\bin\VCVARS32.BAT x86
|
||||||
mkdir build
|
cmake -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo -G "NMake Makefiles"
|
||||||
cd build
|
cmake --build build
|
||||||
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -G "NMake Makefiles"
|
|
||||||
cmake --build .
|
|
||||||
|
|
||||||
- name: Upload Artifact
|
- name: Upload Artifact
|
||||||
uses: actions/upload-artifact@master
|
uses: actions/upload-artifact@master
|
||||||
@ -44,6 +95,7 @@ jobs:
|
|||||||
build/LEGO1.PDB
|
build/LEGO1.PDB
|
||||||
|
|
||||||
compare:
|
compare:
|
||||||
|
name: 'Compare with master'
|
||||||
needs: build
|
needs: build
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
steps:
|
steps:
|
||||||
@ -100,6 +152,12 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
python3 tools/verexp/verexp.py legobin/LEGO1.DLL build/LEGO1.DLL
|
python3 tools/verexp/verexp.py legobin/LEGO1.DLL build/LEGO1.DLL
|
||||||
|
|
||||||
|
- name: Check Vtables
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
python3 tools/vtable/vtable.py legobin/ISLE.EXE build/ISLE.EXE build/ISLE.PDB .
|
||||||
|
python3 tools/vtable/vtable.py legobin/LEGO1.DLL build/LEGO1.DLL build/LEGO1.PDB .
|
||||||
|
|
||||||
- name: Upload Artifact
|
- name: Upload Artifact
|
||||||
uses: actions/upload-artifact@master
|
uses: actions/upload-artifact@master
|
||||||
with:
|
with:
|
||||||
@ -109,11 +167,12 @@ jobs:
|
|||||||
LEGO1PROGRESS.*
|
LEGO1PROGRESS.*
|
||||||
|
|
||||||
upload:
|
upload:
|
||||||
|
name: 'Upload artifacts'
|
||||||
needs: [build, compare]
|
needs: [build, compare]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'isledecomp/isle' }}
|
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'isledecomp/isle' }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: 'probonopd/uploadtool'
|
repository: 'probonopd/uploadtool'
|
||||||
|
|
||||||
|
|||||||
17
.github/workflows/format.yml
vendored
17
.github/workflows/format.yml
vendored
@ -4,35 +4,32 @@ on: [push, pull_request]
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
clang-format:
|
clang-format:
|
||||||
|
name: 'C++'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Run clang-format
|
- name: Run clang-format
|
||||||
run: |
|
run: |
|
||||||
|
find LEGO1 ISLE -iname '*.h' -o -iname '*.cpp' | xargs \
|
||||||
pipx run "clang-format>=17,<18" \
|
pipx run "clang-format>=17,<18" \
|
||||||
--Werror \
|
--Werror \
|
||||||
--dry-run \
|
--dry-run \
|
||||||
--style=file \
|
--style=file \
|
||||||
ISLE/*.cpp ISLE/*.h \
|
-i
|
||||||
LEGO1/*.cpp LEGO1/*.h \
|
|
||||||
LEGO1/mxstl/*.h \
|
|
||||||
LEGO1/realtime/*.cpp LEGO1/realtime/*.h \
|
|
||||||
LEGO1/tgl/*.h \
|
|
||||||
LEGO1/tgl/d3drm/*.cpp LEGO1/tgl/d3drm/*.h \
|
|
||||||
LEGO1/viewmanager/*.cpp LEGO1/viewmanager/*.h
|
|
||||||
|
|
||||||
python-format:
|
python-format:
|
||||||
|
name: 'Python'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install python libraries
|
- name: Install python libraries
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
pip install black pylint pytest -r tools/requirements.txt
|
pip install black==23.* pylint==3.* pytest==7.* -r tools/requirements.txt
|
||||||
|
|
||||||
- name: Run pylint and black
|
- name: Run pylint and black
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|||||||
15
.github/workflows/naming.yml
vendored
15
.github/workflows/naming.yml
vendored
@ -4,10 +4,11 @@ on: [push, pull_request]
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
ncc:
|
ncc:
|
||||||
|
name: 'C++'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install LLVM and Clang
|
- name: Install LLVM and Clang
|
||||||
uses: KyleMayes/install-llvm-action@v1
|
uses: KyleMayes/install-llvm-action@v1
|
||||||
@ -22,8 +23,14 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
python3 tools/ncc/ncc.py \
|
python3 tools/ncc/ncc.py \
|
||||||
--clang-lib ${{ env.LLVM_PATH }}/lib/libclang.so \
|
--clang-lib ${{ env.LLVM_PATH }}/lib/libclang.so \
|
||||||
|
--recurse \
|
||||||
--style tools/ncc/ncc.style \
|
--style tools/ncc/ncc.style \
|
||||||
--skip tools/ncc/skip.yml \
|
--skip tools/ncc/skip.yml \
|
||||||
--definition WINAPI FAR HWND__=HWND \
|
--definition WINAPI FAR BOOL CALLBACK HWND__=HWND \
|
||||||
--include util \
|
--include \
|
||||||
--path LEGO1
|
util \
|
||||||
|
LEGO1 \
|
||||||
|
LEGO1/omni/include \
|
||||||
|
LEGO1/lego/legoomni/include \
|
||||||
|
LEGO1/lego/sources \
|
||||||
|
--path LEGO1/omni LEGO1/lego/legoomni
|
||||||
|
|||||||
8
.github/workflows/unittest.yml
vendored
8
.github/workflows/unittest.yml
vendored
@ -1,13 +1,14 @@
|
|||||||
name: Unit Tests
|
name: Test
|
||||||
|
|
||||||
on: [push, pull_request]
|
on: [push, pull_request]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
pytest-win:
|
pytest-win:
|
||||||
|
name: 'Python Windows'
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install python libraries
|
- name: Install python libraries
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -20,10 +21,11 @@ jobs:
|
|||||||
pytest tools/isledecomp
|
pytest tools/isledecomp
|
||||||
|
|
||||||
pytest-ubuntu:
|
pytest-ubuntu:
|
||||||
|
name: 'Python Linux'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install python libraries
|
- name: Install python libraries
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|||||||
2
.gitignore
vendored
2
.gitignore
vendored
@ -14,7 +14,7 @@ env.bak/
|
|||||||
venv.bak/
|
venv.bak/
|
||||||
ISLE.EXE
|
ISLE.EXE
|
||||||
LEGO1.DLL
|
LEGO1.DLL
|
||||||
build/
|
/build/
|
||||||
*.swp
|
*.swp
|
||||||
LEGO1PROGRESS.*
|
LEGO1PROGRESS.*
|
||||||
ISLEPROGRESS.*
|
ISLEPROGRESS.*
|
||||||
|
|||||||
4
3rdparty/dx5/inc/d3drmdef.h
vendored
4
3rdparty/dx5/inc/d3drmdef.h
vendored
@ -136,8 +136,8 @@ typedef struct _D3DRMIMAGE
|
|||||||
int bytes_per_line; /* number of bytes of memory for a
|
int bytes_per_line; /* number of bytes of memory for a
|
||||||
scanline. This must be a multiple
|
scanline. This must be a multiple
|
||||||
of 4. */
|
of 4. */
|
||||||
void* buffer1; /* memory to render into (first buffer). */
|
char* buffer1; /* memory to render into (first buffer). */
|
||||||
void* buffer2; /* second rendering buffer for double
|
char* buffer2; /* second rendering buffer for double
|
||||||
buffering, set to NULL for single
|
buffering, set to NULL for single
|
||||||
buffering. */
|
buffering. */
|
||||||
unsigned long red_mask;
|
unsigned long red_mask;
|
||||||
|
|||||||
866
3rdparty/flic/flic.asm
vendored
Normal file
866
3rdparty/flic/flic.asm
vendored
Normal file
@ -0,0 +1,866 @@
|
|||||||
|
.486
|
||||||
|
.387
|
||||||
|
option dotname
|
||||||
|
.model flat, c
|
||||||
|
assume fs:nothing
|
||||||
|
|
||||||
|
public FUN_100bd530
|
||||||
|
public FUN_100bd580
|
||||||
|
public FUN_100bd600
|
||||||
|
public FUN_100bd680
|
||||||
|
public FUN_100bd6e0
|
||||||
|
public FUN_100bd760
|
||||||
|
public FUN_100bd880
|
||||||
|
public FUN_100bd8a0
|
||||||
|
public FUN_100bd8f0
|
||||||
|
public FUN_100bd940
|
||||||
|
public FUN_100bd960
|
||||||
|
public FUN_100bda10
|
||||||
|
public FUN_100bdac0
|
||||||
|
public FUN_100bdc00
|
||||||
|
public FUN_100bdc90
|
||||||
|
public DecodeFLCFrame
|
||||||
|
|
||||||
|
; This is so reccmp can detect the end of DecodeFLCFrame
|
||||||
|
public EndOfSection
|
||||||
|
|
||||||
|
.text SEGMENT BYTE PUBLIC 'CODE'
|
||||||
|
|
||||||
|
FUN_100bd530 LABEL NEAR
|
||||||
|
mov ax, word ptr [esp+0CH] ; 100BD530 _ 66: 8B. 44 24, 0C
|
||||||
|
push esi ; 100BD535 _ 56
|
||||||
|
test ax, ax ; 100BD536 _ 66: 85. C0
|
||||||
|
push edi ; 100BD539 _ 57
|
||||||
|
jl ?_25163 ; 100BD53A _ 7C, 34
|
||||||
|
mov cx, word ptr [esp+18H] ; 100BD53C _ 66: 8B. 4C 24, 18
|
||||||
|
test cx, cx ; 100BD541 _ 66: 85. C9
|
||||||
|
jl ?_25163 ; 100BD544 _ 7C, 2A
|
||||||
|
mov edx, dword ptr [esp+0CH] ; 100BD546 _ 8B. 54 24, 0C
|
||||||
|
movsx edi, ax ; 100BD54A _ 0F BF. F8
|
||||||
|
mov esi, dword ptr [edx+4H] ; 100BD54D _ 8B. 72, 04
|
||||||
|
cmp esi, edi ; 100BD550 _ 3B. F7
|
||||||
|
jle ?_25163 ; 100BD552 _ 7E, 1C
|
||||||
|
movsx eax, cx ; 100BD554 _ 0F BF. C1
|
||||||
|
cmp dword ptr [edx+8H], eax ; 100BD557 _ 39. 42, 08
|
||||||
|
jle ?_25163 ; 100BD55A _ 7E, 14
|
||||||
|
add esi, 3 ; 100BD55C _ 83. C6, 03
|
||||||
|
mov cl, byte ptr [esp+1CH] ; 100BD55F _ 8A. 4C 24, 1C
|
||||||
|
and esi, 0FFFFFFFCH ; 100BD563 _ 83. E6, FC
|
||||||
|
imul esi, eax ; 100BD566 _ 0F AF. F0
|
||||||
|
add esi, dword ptr [esp+10H] ; 100BD569 _ 03. 74 24, 10
|
||||||
|
mov byte ptr [esi+edi], cl ; 100BD56D _ 88. 0C 3E
|
||||||
|
?_25163:pop edi ; 100BD570 _ 5F
|
||||||
|
pop esi ; 100BD571 _ 5E
|
||||||
|
ret ; 100BD572 _ C3
|
||||||
|
|
||||||
|
; Filling space: 0DH
|
||||||
|
; Filler type: INT 3 Debug breakpoint
|
||||||
|
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||||
|
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||||
|
|
||||||
|
FUN_100bd580 LABEL NEAR
|
||||||
|
lea eax, [esp+18H] ; 100BD580 _ 8D. 44 24, 18
|
||||||
|
push esi ; 100BD584 _ 56
|
||||||
|
mov si, word ptr [esp+10H] ; 100BD585 _ 66: 8B. 74 24, 10
|
||||||
|
push edi ; 100BD58A _ 57
|
||||||
|
lea ecx, [esp+18H] ; 100BD58B _ 8D. 4C 24, 18
|
||||||
|
push eax ; 100BD58F _ 50
|
||||||
|
lea edx, [esp+18H] ; 100BD590 _ 8D. 54 24, 18
|
||||||
|
push ecx ; 100BD594 _ 51
|
||||||
|
mov edi, dword ptr [esp+14H] ; 100BD595 _ 8B. 7C 24, 14
|
||||||
|
push edx ; 100BD599 _ 52
|
||||||
|
push edi ; 100BD59A _ 57
|
||||||
|
call FUN_100bd600 ; 100BD59B _ E8, 00000060
|
||||||
|
add esp, 16 ; 100BD5A0 _ 83. C4, 10
|
||||||
|
test eax, eax ; 100BD5A3 _ 85. C0
|
||||||
|
jz ?_25167 ; 100BD5A5 _ 74, 4A
|
||||||
|
mov ax, word ptr [esp+14H] ; 100BD5A7 _ 66: 8B. 44 24, 14
|
||||||
|
sub ax, si ; 100BD5AC _ 66: 2B. C6
|
||||||
|
jz ?_25165 ; 100BD5AF _ 74, 0B
|
||||||
|
movsx eax, ax ; 100BD5B1 _ 0F BF. C0
|
||||||
|
mov esi, dword ptr [esp+1CH] ; 100BD5B4 _ 8B. 74 24, 1C
|
||||||
|
add esi, eax ; 100BD5B8 _ 03. F0
|
||||||
|
jmp ?_25166 ; 100BD5BA _ EB, 04
|
||||||
|
|
||||||
|
?_25165:mov esi, dword ptr [esp+1CH] ; 100BD5BC _ 8B. 74 24, 1C
|
||||||
|
?_25166:movsx edx, word ptr [esp+20H] ; 100BD5C0 _ 0F BF. 54 24, 20
|
||||||
|
mov ecx, dword ptr [edi+4H] ; 100BD5C5 _ 8B. 4F, 04
|
||||||
|
movsx eax, word ptr [esp+18H] ; 100BD5C8 _ 0F BF. 44 24, 18
|
||||||
|
add ecx, 3 ; 100BD5CD _ 83. C1, 03
|
||||||
|
and ecx, 0FFFFFFFCH ; 100BD5D0 _ 83. E1, FC
|
||||||
|
movsx edi, word ptr [esp+14H] ; 100BD5D3 _ 0F BF. 7C 24, 14
|
||||||
|
imul ecx, eax ; 100BD5D8 _ 0F AF. C8
|
||||||
|
add ecx, edi ; 100BD5DB _ 03. CF
|
||||||
|
mov edi, dword ptr [esp+10H] ; 100BD5DD _ 8B. 7C 24, 10
|
||||||
|
add edi, ecx ; 100BD5E1 _ 03. F9
|
||||||
|
mov ecx, edx ; 100BD5E3 _ 8B. CA
|
||||||
|
shr ecx, 2 ; 100BD5E5 _ C1. E9, 02
|
||||||
|
rep movsd ; 100BD5E8 _ F3: A5
|
||||||
|
mov ecx, edx ; 100BD5EA _ 8B. CA
|
||||||
|
and ecx, 03H ; 100BD5EC _ 83. E1, 03
|
||||||
|
rep movsb ; 100BD5EF _ F3: A4
|
||||||
|
?_25167:pop edi ; 100BD5F1 _ 5F
|
||||||
|
pop esi ; 100BD5F2 _ 5E
|
||||||
|
ret ; 100BD5F3 _ C3
|
||||||
|
|
||||||
|
; Filling space: 0CH
|
||||||
|
; Filler type: INT 3 Debug breakpoint
|
||||||
|
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||||
|
db 0CCH, 0CCH, 0CCH, 0CCH
|
||||||
|
|
||||||
|
FUN_100bd600 LABEL NEAR
|
||||||
|
mov ecx, dword ptr [esp+8H] ; 100BD600 _ 8B. 4C 24, 08
|
||||||
|
push ebx ; 100BD604 _ 53
|
||||||
|
mov bx, word ptr [ecx] ; 100BD605 _ 66: 8B. 19
|
||||||
|
push esi ; 100BD608 _ 56
|
||||||
|
mov eax, dword ptr [esp+14H] ; 100BD609 _ 8B. 44 24, 14
|
||||||
|
push edi ; 100BD60D _ 57
|
||||||
|
mov ax, word ptr [eax] ; 100BD60E _ 66: 8B. 00
|
||||||
|
push ebp ; 100BD611 _ 55
|
||||||
|
test ax, ax ; 100BD612 _ 66: 85. C0
|
||||||
|
mov edx, dword ptr [esp+20H] ; 100BD615 _ 8B. 54 24, 20
|
||||||
|
mov si, word ptr [edx] ; 100BD619 _ 66: 8B. 32
|
||||||
|
lea edi, [ebx+esi] ; 100BD61C _ 8D. 3C 33
|
||||||
|
jl ?_25171 ; 100BD61F _ 7C, 50
|
||||||
|
movsx ebp, ax ; 100BD621 _ 0F BF. E8
|
||||||
|
mov eax, dword ptr [esp+14H] ; 100BD624 _ 8B. 44 24, 14
|
||||||
|
cmp dword ptr [eax+8H], ebp ; 100BD628 _ 39. 68, 08
|
||||||
|
jle ?_25171 ; 100BD62B _ 7E, 44
|
||||||
|
test di, di ; 100BD62D _ 66: 85. FF
|
||||||
|
jl ?_25171 ; 100BD630 _ 7C, 3F
|
||||||
|
movsx ebp, bx ; 100BD632 _ 0F BF. EB
|
||||||
|
cmp ebp, dword ptr [eax+4H] ; 100BD635 _ 3B. 68, 04
|
||||||
|
jge ?_25171 ; 100BD638 _ 7D, 37
|
||||||
|
test bx, bx ; 100BD63A _ 66: 85. DB
|
||||||
|
jge ?_25169 ; 100BD63D _ 7D, 0B
|
||||||
|
mov si, di ; 100BD63F _ 66: 8B. F7
|
||||||
|
mov word ptr [edx], di ; 100BD642 _ 66: 89. 3A
|
||||||
|
; Note: Length-changing prefix causes delay on Intel processors
|
||||||
|
mov word ptr [ecx], 0 ; 100BD645 _ 66: C7. 01, 0000
|
||||||
|
?_25169:movsx ecx, di ; 100BD64A _ 0F BF. CF
|
||||||
|
mov eax, dword ptr [eax+4H] ; 100BD64D _ 8B. 40, 04
|
||||||
|
cmp ecx, eax ; 100BD650 _ 3B. C8
|
||||||
|
jle ?_25170 ; 100BD652 _ 7E, 09
|
||||||
|
sub si, di ; 100BD654 _ 66: 2B. F7
|
||||||
|
add si, ax ; 100BD657 _ 66: 03. F0
|
||||||
|
mov word ptr [edx], si ; 100BD65A _ 66: 89. 32
|
||||||
|
?_25170:test si, si ; 100BD65D _ 66: 85. F6
|
||||||
|
mov eax, 0 ; 100BD660 _ B8, 00000000
|
||||||
|
jl ?_25172 ; 100BD665 _ 7C, 0C
|
||||||
|
pop ebp ; 100BD667 _ 5D
|
||||||
|
mov eax, 1 ; 100BD668 _ B8, 00000001
|
||||||
|
pop edi ; 100BD66D _ 5F
|
||||||
|
pop esi ; 100BD66E _ 5E
|
||||||
|
pop ebx ; 100BD66F _ 5B
|
||||||
|
ret ; 100BD670 _ C3
|
||||||
|
|
||||||
|
?_25171:xor eax, eax ; 100BD671 _ 33. C0
|
||||||
|
?_25172:pop ebp ; 100BD673 _ 5D
|
||||||
|
pop edi ; 100BD674 _ 5F
|
||||||
|
pop esi ; 100BD675 _ 5E
|
||||||
|
pop ebx ; 100BD676 _ 5B
|
||||||
|
ret ; 100BD677 _ C3
|
||||||
|
|
||||||
|
; Filling space: 8H
|
||||||
|
; Filler type: INT 3 Debug breakpoint
|
||||||
|
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||||
|
|
||||||
|
FUN_100bd680 LABEL NEAR
|
||||||
|
lea eax, [esp+18H] ; 100BD680 _ 8D. 44 24, 18
|
||||||
|
push esi ; 100BD684 _ 56
|
||||||
|
lea ecx, [esp+14H] ; 100BD685 _ 8D. 4C 24, 14
|
||||||
|
push eax ; 100BD689 _ 50
|
||||||
|
lea edx, [esp+14H] ; 100BD68A _ 8D. 54 24, 14
|
||||||
|
push ecx ; 100BD68E _ 51
|
||||||
|
mov esi, dword ptr [esp+10H] ; 100BD68F _ 8B. 74 24, 10
|
||||||
|
push edx ; 100BD693 _ 52
|
||||||
|
push esi ; 100BD694 _ 56
|
||||||
|
call FUN_100bd600 ; 100BD695 _ E8, FFFFFF66
|
||||||
|
add esp, 16 ; 100BD69A _ 83. C4, 10
|
||||||
|
test eax, eax ; 100BD69D _ 85. C0
|
||||||
|
jz ?_25175 ; 100BD69F _ 74, 33
|
||||||
|
movsx eax, word ptr [esp+14H] ; 100BD6A1 _ 0F BF. 44 24, 14
|
||||||
|
mov ecx, dword ptr [esi+4H] ; 100BD6A6 _ 8B. 4E, 04
|
||||||
|
add ecx, 3 ; 100BD6A9 _ 83. C1, 03
|
||||||
|
and ecx, 0FFFFFFFCH ; 100BD6AC _ 83. E1, FC
|
||||||
|
movsx edx, word ptr [esp+10H] ; 100BD6AF _ 0F BF. 54 24, 10
|
||||||
|
imul ecx, eax ; 100BD6B4 _ 0F AF. C8
|
||||||
|
add ecx, edx ; 100BD6B7 _ 03. CA
|
||||||
|
mov eax, dword ptr [esp+0CH] ; 100BD6B9 _ 8B. 44 24, 0C
|
||||||
|
add eax, ecx ; 100BD6BD _ 03. C1
|
||||||
|
dec word ptr [esp+1CH] ; 100BD6BF _ 66: FF. 4C 24, 1C
|
||||||
|
js ?_25175 ; 100BD6C4 _ 78, 0E
|
||||||
|
mov cl, byte ptr [esp+18H] ; 100BD6C6 _ 8A. 4C 24, 18
|
||||||
|
?_25174:mov byte ptr [eax], cl ; 100BD6CA _ 88. 08
|
||||||
|
inc eax ; 100BD6CC _ 40
|
||||||
|
dec word ptr [esp+1CH] ; 100BD6CD _ 66: FF. 4C 24, 1C
|
||||||
|
jns ?_25174 ; 100BD6D2 _ 79, F6
|
||||||
|
?_25175:pop esi ; 100BD6D4 _ 5E
|
||||||
|
ret ; 100BD6D5 _ C3
|
||||||
|
|
||||||
|
; Filling space: 0AH
|
||||||
|
; Filler type: INT 3 Debug breakpoint
|
||||||
|
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||||
|
db 0CCH, 0CCH
|
||||||
|
|
||||||
|
FUN_100bd6e0 LABEL NEAR
|
||||||
|
lea eax, [esp+18H] ; 100BD6E0 _ 8D. 44 24, 18
|
||||||
|
push ebx ; 100BD6E4 _ 53
|
||||||
|
lea ecx, [esp+14H] ; 100BD6E5 _ 8D. 4C 24, 14
|
||||||
|
push esi ; 100BD6E9 _ 56
|
||||||
|
lea edx, [esp+14H] ; 100BD6EA _ 8D. 54 24, 14
|
||||||
|
push eax ; 100BD6EE _ 50
|
||||||
|
mov esi, dword ptr [esp+10H] ; 100BD6EF _ 8B. 74 24, 10
|
||||||
|
push ecx ; 100BD6F3 _ 51
|
||||||
|
shl word ptr [esp+28H], 1 ; 100BD6F4 _ 66: C1. 64 24, 28, 01
|
||||||
|
push edx ; 100BD6FA _ 52
|
||||||
|
push esi ; 100BD6FB _ 56
|
||||||
|
call FUN_100bd600 ; 100BD6FC _ E8, FFFFFEFF
|
||||||
|
add esp, 16 ; 100BD701 _ 83. C4, 10
|
||||||
|
test eax, eax ; 100BD704 _ 85. C0
|
||||||
|
jz ?_25179 ; 100BD706 _ 74, 52
|
||||||
|
mov dx, word ptr [esp+20H] ; 100BD708 _ 66: 8B. 54 24, 20
|
||||||
|
mov ecx, dword ptr [esi+4H] ; 100BD70D _ 8B. 4E, 04
|
||||||
|
and dx, 01H ; 100BD710 _ 66: 83. E2, 01
|
||||||
|
add ecx, 3 ; 100BD714 _ 83. C1, 03
|
||||||
|
movsx eax, word ptr [esp+18H] ; 100BD717 _ 0F BF. 44 24, 18
|
||||||
|
movsx ebx, word ptr [esp+14H] ; 100BD71C _ 0F BF. 5C 24, 14
|
||||||
|
and ecx, 0FFFFFFFCH ; 100BD721 _ 83. E1, FC
|
||||||
|
sar word ptr [esp+20H], 1 ; 100BD724 _ 66: C1. 7C 24, 20, 01
|
||||||
|
imul ecx, eax ; 100BD72A _ 0F AF. C8
|
||||||
|
add ecx, ebx ; 100BD72D _ 03. CB
|
||||||
|
mov eax, dword ptr [esp+10H] ; 100BD72F _ 8B. 44 24, 10
|
||||||
|
add eax, ecx ; 100BD733 _ 03. C1
|
||||||
|
mov bl, byte ptr [esp+1CH] ; 100BD735 _ 8A. 5C 24, 1C
|
||||||
|
dec word ptr [esp+20H] ; 100BD739 _ 66: FF. 4C 24, 20
|
||||||
|
js ?_25178 ; 100BD73E _ 78, 13
|
||||||
|
?_25177:mov cx, word ptr [esp+1CH] ; 100BD740 _ 66: 8B. 4C 24, 1C
|
||||||
|
add eax, 2 ; 100BD745 _ 83. C0, 02
|
||||||
|
mov word ptr [eax-2H], cx ; 100BD748 _ 66: 89. 48, FE
|
||||||
|
dec word ptr [esp+20H] ; 100BD74C _ 66: FF. 4C 24, 20
|
||||||
|
jns ?_25177 ; 100BD751 _ 79, ED
|
||||||
|
?_25178:test dx, dx ; 100BD753 _ 66: 85. D2
|
||||||
|
jz ?_25179 ; 100BD756 _ 74, 02
|
||||||
|
mov byte ptr [eax], bl ; 100BD758 _ 88. 18
|
||||||
|
?_25179:pop esi ; 100BD75A _ 5E
|
||||||
|
pop ebx ; 100BD75B _ 5B
|
||||||
|
ret ; 100BD75C _ C3
|
||||||
|
|
||||||
|
; Filling space: 3H
|
||||||
|
; Filler type: INT 3 Debug breakpoint
|
||||||
|
db 0CCH, 0CCH, 0CCH
|
||||||
|
|
||||||
|
FUN_100bd760 LABEL NEAR
|
||||||
|
mov eax, dword ptr [esp+18H] ; 100BD760 _ 8B. 44 24, 18
|
||||||
|
sub esp, 4 ; 100BD764 _ 83. EC, 04
|
||||||
|
; Note: Length-changing prefix causes delay on Intel processors
|
||||||
|
mov word ptr [esp+2H], 0 ; 100BD767 _ 66: C7. 44 24, 02, 0000
|
||||||
|
mov ecx, dword ptr [esp+14H] ; 100BD76E _ 8B. 4C 24, 14
|
||||||
|
push ebx ; 100BD772 _ 53
|
||||||
|
push esi ; 100BD773 _ 56
|
||||||
|
mov byte ptr [eax], 0 ; 100BD774 _ C6. 00, 00
|
||||||
|
cmp word ptr [ecx+6H], 0 ; 100BD777 _ 66: 83. 79, 06, 00
|
||||||
|
push edi ; 100BD77C _ 57
|
||||||
|
push ebp ; 100BD77D _ 55
|
||||||
|
jle ?_25191 ; 100BD77E _ 0F 8E, 000000C1
|
||||||
|
mov esi, dword ptr [esp+18H] ; 100BD784 _ 8B. 74 24, 18
|
||||||
|
mov edi, dword ptr [esp+1CH] ; 100BD788 _ 8B. 7C 24, 1C
|
||||||
|
mov ebx, dword ptr [esp+20H] ; 100BD78C _ 8B. 5C 24, 20
|
||||||
|
mov ebp, dword ptr [esp+28H] ; 100BD790 _ 8B. 6C 24, 28
|
||||||
|
?_25181:mov ecx, ebp ; 100BD794 _ 8B. CD
|
||||||
|
xor edx, edx ; 100BD796 _ 33. D2
|
||||||
|
mov dx, word ptr [ecx+4H] ; 100BD798 _ 66: 8B. 51, 04
|
||||||
|
add ebp, dword ptr [ebp] ; 100BD79C _ 03. 6D, 00
|
||||||
|
sub edx, 4 ; 100BD79F _ 83. EA, 04
|
||||||
|
cmp edx, 12 ; 100BD7A2 _ 83. FA, 0C
|
||||||
|
ja ?_25190 ; 100BD7A5 _ 0F 87, 00000082
|
||||||
|
xor eax, eax ; 100BD7AB _ 33. C0
|
||||||
|
mov al, byte ptr [?_25193+edx] ; 100BD7AD _ 8A. 82, 100BD870(d)
|
||||||
|
jmp dword ptr [?_25192+eax*4] ; 100BD7B3 _ FF. 24 85, 100BD850(d)
|
||||||
|
|
||||||
|
?_25182 LABEL NEAR
|
||||||
|
add ecx, 6 ; 100BD7BA _ 83. C1, 06
|
||||||
|
push ecx ; 100BD7BD _ 51
|
||||||
|
push esi ; 100BD7BE _ 56
|
||||||
|
call FUN_100bd880 ; 100BD7BF _ E8, 000000BC
|
||||||
|
mov eax, dword ptr [esp+34H] ; 100BD7C4 _ 8B. 44 24, 34
|
||||||
|
add esp, 8 ; 100BD7C8 _ 83. C4, 08
|
||||||
|
mov byte ptr [eax], 1 ; 100BD7CB _ C6. 00, 01
|
||||||
|
jmp ?_25190 ; 100BD7CE _ EB, 5D
|
||||||
|
|
||||||
|
?_25183 LABEL NEAR
|
||||||
|
push ebx ; 100BD7D0 _ 53
|
||||||
|
add ecx, 6 ; 100BD7D1 _ 83. C1, 06
|
||||||
|
push ecx ; 100BD7D4 _ 51
|
||||||
|
push edi ; 100BD7D5 _ 57
|
||||||
|
push esi ; 100BD7D6 _ 56
|
||||||
|
call FUN_100bdac0 ; 100BD7D7 _ E8, 000002E4
|
||||||
|
jmp ?_25189 ; 100BD7DC _ EB, 4C
|
||||||
|
|
||||||
|
?_25184 LABEL NEAR
|
||||||
|
add ecx, 6 ; 100BD7DE _ 83. C1, 06
|
||||||
|
push ecx ; 100BD7E1 _ 51
|
||||||
|
push esi ; 100BD7E2 _ 56
|
||||||
|
call FUN_100bd940 ; 100BD7E3 _ E8, 00000158
|
||||||
|
mov eax, dword ptr [esp+34H] ; 100BD7E8 _ 8B. 44 24, 34
|
||||||
|
add esp, 8 ; 100BD7EC _ 83. C4, 08
|
||||||
|
mov byte ptr [eax], 1 ; 100BD7EF _ C6. 00, 01
|
||||||
|
jmp ?_25190 ; 100BD7F2 _ EB, 39
|
||||||
|
|
||||||
|
?_25185 LABEL NEAR
|
||||||
|
push ebx ; 100BD7F4 _ 53
|
||||||
|
add ecx, 6 ; 100BD7F5 _ 83. C1, 06
|
||||||
|
push ecx ; 100BD7F8 _ 51
|
||||||
|
push edi ; 100BD7F9 _ 57
|
||||||
|
push esi ; 100BD7FA _ 56
|
||||||
|
call FUN_100bda10 ; 100BD7FB _ E8, 00000210
|
||||||
|
jmp ?_25189 ; 100BD800 _ EB, 28
|
||||||
|
|
||||||
|
?_25186 LABEL NEAR
|
||||||
|
push ebx ; 100BD802 _ 53
|
||||||
|
add ecx, 6 ; 100BD803 _ 83. C1, 06
|
||||||
|
push ecx ; 100BD806 _ 51
|
||||||
|
push edi ; 100BD807 _ 57
|
||||||
|
push esi ; 100BD808 _ 56
|
||||||
|
call FUN_100bdc00 ; 100BD809 _ E8, 000003F2
|
||||||
|
jmp ?_25189 ; 100BD80E _ EB, 1A
|
||||||
|
|
||||||
|
?_25187 LABEL NEAR
|
||||||
|
push ebx ; 100BD810 _ 53
|
||||||
|
add ecx, 6 ; 100BD811 _ 83. C1, 06
|
||||||
|
push ecx ; 100BD814 _ 51
|
||||||
|
push edi ; 100BD815 _ 57
|
||||||
|
push esi ; 100BD816 _ 56
|
||||||
|
call FUN_100bd960 ; 100BD817 _ E8, 00000144
|
||||||
|
jmp ?_25189 ; 100BD81C _ EB, 0C
|
||||||
|
|
||||||
|
?_25188 LABEL NEAR
|
||||||
|
push ebx ; 100BD81E _ 53
|
||||||
|
add ecx, 6 ; 100BD81F _ 83. C1, 06
|
||||||
|
push ecx ; 100BD822 _ 51
|
||||||
|
push edi ; 100BD823 _ 57
|
||||||
|
push esi ; 100BD824 _ 56
|
||||||
|
call FUN_100bdc90 ; 100BD825 _ E8, 00000466
|
||||||
|
?_25189:add esp, 16 ; 100BD82A _ 83. C4, 10
|
||||||
|
|
||||||
|
?_25190 LABEL NEAR
|
||||||
|
inc word ptr [esp+12H] ; 100BD82D _ 66: FF. 44 24, 12
|
||||||
|
mov eax, dword ptr [esp+24H] ; 100BD832 _ 8B. 44 24, 24
|
||||||
|
mov cx, word ptr [esp+12H] ; 100BD836 _ 66: 8B. 4C 24, 12
|
||||||
|
cmp word ptr [eax+6H], cx ; 100BD83B _ 66: 39. 48, 06
|
||||||
|
jg ?_25181 ; 100BD83F _ 0F 8F, FFFFFF4F
|
||||||
|
?_25191:xor ax, ax ; 100BD845 _ 66: 33. C0
|
||||||
|
pop ebp ; 100BD848 _ 5D
|
||||||
|
pop edi ; 100BD849 _ 5F
|
||||||
|
pop esi ; 100BD84A _ 5E
|
||||||
|
pop ebx ; 100BD84B _ 5B
|
||||||
|
add esp, 4 ; 100BD84C _ 83. C4, 04
|
||||||
|
ret ; 100BD84F _ C3
|
||||||
|
|
||||||
|
?_25192 label dword ; switch/case jump table
|
||||||
|
dd ?_25182 ; 100BD850 _ 100BD7BA (d)
|
||||||
|
dd ?_25183 ; 100BD854 _ 100BD7D0 (d)
|
||||||
|
dd ?_25184 ; 100BD858 _ 100BD7DE (d)
|
||||||
|
dd ?_25185 ; 100BD85C _ 100BD7F4 (d)
|
||||||
|
dd ?_25186 ; 100BD860 _ 100BD802 (d)
|
||||||
|
dd ?_25187 ; 100BD864 _ 100BD810 (d)
|
||||||
|
dd ?_25188 ; 100BD868 _ 100BD81E (d)
|
||||||
|
dd ?_25190 ; 100BD86C _ 100BD82D (d)
|
||||||
|
|
||||||
|
?_25193 db 00H, 07H, 07H, 01H, 07H, 07H, 07H, 02H ; 100BD870 _ ........
|
||||||
|
db 03H, 04H, 07H, 05H, 06H, 0CCH, 0CCH, 0CCH ; 100BD878 _ ........
|
||||||
|
|
||||||
|
FUN_100bd880 LABEL NEAR
|
||||||
|
mov eax, dword ptr [esp+8H] ; 100BD880 _ 8B. 44 24, 08
|
||||||
|
mov ecx, dword ptr [esp+4H] ; 100BD884 _ 8B. 4C 24, 04
|
||||||
|
push eax ; 100BD888 _ 50
|
||||||
|
push ecx ; 100BD889 _ 51
|
||||||
|
call FUN_100bd8a0 ; 100BD88A _ E8, 00000011
|
||||||
|
add esp, 8 ; 100BD88F _ 83. C4, 08
|
||||||
|
ret ; 100BD892 _ C3
|
||||||
|
|
||||||
|
; Filling space: 0DH
|
||||||
|
; Filler type: INT 3 Debug breakpoint
|
||||||
|
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||||
|
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||||
|
|
||||||
|
FUN_100bd8a0 LABEL NEAR
|
||||||
|
mov eax, dword ptr [esp+8H] ; 100BD8A0 _ 8B. 44 24, 08
|
||||||
|
push ebx ; 100BD8A4 _ 53
|
||||||
|
mov bx, word ptr [eax] ; 100BD8A5 _ 66: 8B. 18
|
||||||
|
push esi ; 100BD8A8 _ 56
|
||||||
|
xor si, si ; 100BD8A9 _ 66: 33. F6
|
||||||
|
push edi ; 100BD8AC _ 57
|
||||||
|
dec bx ; 100BD8AD _ 66: 4B
|
||||||
|
push ebp ; 100BD8AF _ 55
|
||||||
|
lea edi, [eax+2H] ; 100BD8B0 _ 8D. 78, 02
|
||||||
|
js ?_25198 ; 100BD8B3 _ 78, 36
|
||||||
|
?_25196:movzx ax, byte ptr [edi] ; 100BD8B5 _ 66: 0F B6. 07
|
||||||
|
movzx bp, byte ptr [edi+1H] ; 100BD8B9 _ 66: 0F B6. 6F, 01
|
||||||
|
add si, ax ; 100BD8BE _ 66: 03. F0
|
||||||
|
inc edi ; 100BD8C1 _ 47
|
||||||
|
inc edi ; 100BD8C2 _ 47
|
||||||
|
test bp, bp ; 100BD8C3 _ 66: 85. ED
|
||||||
|
jnz ?_25197 ; 100BD8C6 _ 75, 04
|
||||||
|
; Note: Length-changing prefix causes delay on Intel processors
|
||||||
|
mov bp, 256 ; 100BD8C8 _ 66: BD, 0100
|
||||||
|
?_25197:mov eax, dword ptr [esp+14H] ; 100BD8CC _ 8B. 44 24, 14
|
||||||
|
push ebp ; 100BD8D0 _ 55
|
||||||
|
push esi ; 100BD8D1 _ 56
|
||||||
|
push edi ; 100BD8D2 _ 57
|
||||||
|
add si, bp ; 100BD8D3 _ 66: 03. F5
|
||||||
|
push eax ; 100BD8D6 _ 50
|
||||||
|
call FUN_100bd8f0 ; 100BD8D7 _ E8, 00000014
|
||||||
|
movsx eax, bp ; 100BD8DC _ 0F BF. C5
|
||||||
|
add esp, 16 ; 100BD8DF _ 83. C4, 10
|
||||||
|
lea ecx, [eax+eax*2] ; 100BD8E2 _ 8D. 0C 40
|
||||||
|
add edi, ecx ; 100BD8E5 _ 03. F9
|
||||||
|
dec bx ; 100BD8E7 _ 66: 4B
|
||||||
|
jns ?_25196 ; 100BD8E9 _ 79, CA
|
||||||
|
?_25198:pop ebp ; 100BD8EB _ 5D
|
||||||
|
pop edi ; 100BD8EC _ 5F
|
||||||
|
pop esi ; 100BD8ED _ 5E
|
||||||
|
pop ebx ; 100BD8EE _ 5B
|
||||||
|
ret ; 100BD8EF _ C3
|
||||||
|
|
||||||
|
FUN_100bd8f0 LABEL NEAR
|
||||||
|
mov dx, word ptr [esp+10H] ; 100BD8F0 _ 66: 8B. 54 24, 10
|
||||||
|
push esi ; 100BD8F5 _ 56
|
||||||
|
movsx ecx, word ptr [esp+10H] ; 100BD8F6 _ 0F BF. 4C 24, 10
|
||||||
|
shl ecx, 2 ; 100BD8FB _ C1. E1, 02
|
||||||
|
mov eax, dword ptr [esp+8H] ; 100BD8FE _ 8B. 44 24, 08
|
||||||
|
add ecx, dword ptr [eax] ; 100BD902 _ 03. 08
|
||||||
|
lea esi, [ecx+eax] ; 100BD904 _ 8D. 34 01
|
||||||
|
mov ax, dx ; 100BD907 _ 66: 8B. C2
|
||||||
|
dec dx ; 100BD90A _ 66: 4A
|
||||||
|
test ax, ax ; 100BD90C _ 66: 85. C0
|
||||||
|
jz ?_25201 ; 100BD90F _ 74, 25
|
||||||
|
mov eax, dword ptr [esp+0CH] ; 100BD911 _ 8B. 44 24, 0C
|
||||||
|
?_25200:mov cl, byte ptr [eax] ; 100BD915 _ 8A. 08
|
||||||
|
add esi, 4 ; 100BD917 _ 83. C6, 04
|
||||||
|
add eax, 3 ; 100BD91A _ 83. C0, 03
|
||||||
|
mov byte ptr [esi-2H], cl ; 100BD91D _ 88. 4E, FE
|
||||||
|
mov cl, byte ptr [eax-2H] ; 100BD920 _ 8A. 48, FE
|
||||||
|
mov byte ptr [esi-3H], cl ; 100BD923 _ 88. 4E, FD
|
||||||
|
mov cl, byte ptr [eax-1H] ; 100BD926 _ 8A. 48, FF
|
||||||
|
mov byte ptr [esi-4H], cl ; 100BD929 _ 88. 4E, FC
|
||||||
|
mov cx, dx ; 100BD92C _ 66: 8B. CA
|
||||||
|
dec dx ; 100BD92F _ 66: 4A
|
||||||
|
test cx, cx ; 100BD931 _ 66: 85. C9
|
||||||
|
jnz ?_25200 ; 100BD934 _ 75, DF
|
||||||
|
?_25201:pop esi ; 100BD936 _ 5E
|
||||||
|
ret ; 100BD937 _ C3
|
||||||
|
|
||||||
|
; Filling space: 8H
|
||||||
|
; Filler type: INT 3 Debug breakpoint
|
||||||
|
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||||
|
|
||||||
|
FUN_100bd940 LABEL NEAR
|
||||||
|
mov eax, dword ptr [esp+8H] ; 100BD940 _ 8B. 44 24, 08
|
||||||
|
mov ecx, dword ptr [esp+4H] ; 100BD944 _ 8B. 4C 24, 04
|
||||||
|
push eax ; 100BD948 _ 50
|
||||||
|
push ecx ; 100BD949 _ 51
|
||||||
|
call FUN_100bd8a0 ; 100BD94A _ E8, FFFFFF51
|
||||||
|
add esp, 8 ; 100BD94F _ 83. C4, 08
|
||||||
|
ret ; 100BD952 _ C3
|
||||||
|
|
||||||
|
; Filling space: 0DH
|
||||||
|
; Filler type: INT 3 Debug breakpoint
|
||||||
|
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||||
|
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||||
|
|
||||||
|
FUN_100bd960 LABEL NEAR
|
||||||
|
mov eax, dword ptr [esp+10H] ; 100BD960 _ 8B. 44 24, 10
|
||||||
|
sub esp, 8 ; 100BD964 _ 83. EC, 08
|
||||||
|
mov dx, word ptr [eax+8H] ; 100BD967 _ 66: 8B. 50, 08
|
||||||
|
push ebx ; 100BD96B _ 53
|
||||||
|
mov ecx, dword ptr [esp+18H] ; 100BD96C _ 8B. 4C 24, 18
|
||||||
|
push esi ; 100BD970 _ 56
|
||||||
|
push edi ; 100BD971 _ 57
|
||||||
|
push ebp ; 100BD972 _ 55
|
||||||
|
mov di, word ptr [eax+0AH] ; 100BD973 _ 66: 8B. 78, 0A
|
||||||
|
mov eax, dword ptr [esp+1CH] ; 100BD977 _ 8B. 44 24, 1C
|
||||||
|
mov esi, dword ptr [eax+4H] ; 100BD97B _ 8B. 70, 04
|
||||||
|
movsx eax, di ; 100BD97E _ 0F BF. C7
|
||||||
|
add esi, 3 ; 100BD981 _ 83. C6, 03
|
||||||
|
dec eax ; 100BD984 _ 48
|
||||||
|
and esi, 0FFFFFFFCH ; 100BD985 _ 83. E6, FC
|
||||||
|
imul esi, eax ; 100BD988 _ 0F AF. F0
|
||||||
|
add esi, dword ptr [esp+20H] ; 100BD98B _ 03. 74 24, 20
|
||||||
|
dec di ; 100BD98F _ 66: 4F
|
||||||
|
mov word ptr [esp+12H], di ; 100BD991 _ 66: 89. 7C 24, 12
|
||||||
|
js ?_25212 ; 100BD996 _ 78, 64
|
||||||
|
movsx eax, dx ; 100BD998 _ 0F BF. C2
|
||||||
|
mov dword ptr [esp+14H], eax ; 100BD99B _ 89. 44 24, 14
|
||||||
|
?_25204:xor di, di ; 100BD99F _ 66: 33. FF
|
||||||
|
inc ecx ; 100BD9A2 _ 41
|
||||||
|
test dx, dx ; 100BD9A3 _ 66: 85. D2
|
||||||
|
jle ?_25211 ; 100BD9A6 _ 7E, 3A
|
||||||
|
?_25205:mov al, byte ptr [ecx] ; 100BD9A8 _ 8A. 01
|
||||||
|
inc ecx ; 100BD9AA _ 41
|
||||||
|
test al, al ; 100BD9AB _ 84. C0
|
||||||
|
jl ?_25208 ; 100BD9AD _ 7C, 13
|
||||||
|
jle ?_25207 ; 100BD9AF _ 7E, 0E
|
||||||
|
movsx bp, al ; 100BD9B1 _ 66: 0F BE. E8
|
||||||
|
?_25206:mov bl, byte ptr [ecx] ; 100BD9B5 _ 8A. 19
|
||||||
|
inc esi ; 100BD9B7 _ 46
|
||||||
|
dec bp ; 100BD9B8 _ 66: 4D
|
||||||
|
mov byte ptr [esi-1H], bl ; 100BD9BA _ 88. 5E, FF
|
||||||
|
jnz ?_25206 ; 100BD9BD _ 75, F6
|
||||||
|
?_25207:inc ecx ; 100BD9BF _ 41
|
||||||
|
jmp ?_25210 ; 100BD9C0 _ EB, 14
|
||||||
|
|
||||||
|
?_25208:neg al ; 100BD9C2 _ F6. D8
|
||||||
|
test al, al ; 100BD9C4 _ 84. C0
|
||||||
|
jle ?_25210 ; 100BD9C6 _ 7E, 0E
|
||||||
|
movsx bp, al ; 100BD9C8 _ 66: 0F BE. E8
|
||||||
|
?_25209:mov bl, byte ptr [ecx] ; 100BD9CC _ 8A. 19
|
||||||
|
inc ecx ; 100BD9CE _ 41
|
||||||
|
mov byte ptr [esi], bl ; 100BD9CF _ 88. 1E
|
||||||
|
inc esi ; 100BD9D1 _ 46
|
||||||
|
dec bp ; 100BD9D2 _ 66: 4D
|
||||||
|
jnz ?_25209 ; 100BD9D4 _ 75, F6
|
||||||
|
?_25210:movsx ax, al ; 100BD9D6 _ 66: 0F BE. C0
|
||||||
|
add di, ax ; 100BD9DA _ 66: 03. F8
|
||||||
|
cmp dx, di ; 100BD9DD _ 66: 3B. D7
|
||||||
|
jg ?_25205 ; 100BD9E0 _ 7F, C6
|
||||||
|
?_25211:mov eax, dword ptr [esp+1CH] ; 100BD9E2 _ 8B. 44 24, 1C
|
||||||
|
mov eax, dword ptr [eax+4H] ; 100BD9E6 _ 8B. 40, 04
|
||||||
|
add eax, 3 ; 100BD9E9 _ 83. C0, 03
|
||||||
|
and eax, 0FFFFFFFCH ; 100BD9EC _ 83. E0, FC
|
||||||
|
add eax, dword ptr [esp+14H] ; 100BD9EF _ 03. 44 24, 14
|
||||||
|
sub esi, eax ; 100BD9F3 _ 2B. F0
|
||||||
|
dec word ptr [esp+12H] ; 100BD9F5 _ 66: FF. 4C 24, 12
|
||||||
|
jns ?_25204 ; 100BD9FA _ 79, A3
|
||||||
|
?_25212:pop ebp ; 100BD9FC _ 5D
|
||||||
|
pop edi ; 100BD9FD _ 5F
|
||||||
|
pop esi ; 100BD9FE _ 5E
|
||||||
|
pop ebx ; 100BD9FF _ 5B
|
||||||
|
add esp, 8 ; 100BDA00 _ 83. C4, 08
|
||||||
|
ret ; 100BDA03 _ C3
|
||||||
|
|
||||||
|
; Filling space: 0CH
|
||||||
|
; Filler type: INT 3 Debug breakpoint
|
||||||
|
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||||
|
db 0CCH, 0CCH, 0CCH, 0CCH
|
||||||
|
|
||||||
|
FUN_100bda10 LABEL NEAR
|
||||||
|
mov ecx, dword ptr [esp+0CH] ; 100BDA10 _ 8B. 4C 24, 0C
|
||||||
|
sub esp, 4 ; 100BDA14 _ 83. EC, 04
|
||||||
|
mov eax, dword ptr [esp+14H] ; 100BDA17 _ 8B. 44 24, 14
|
||||||
|
push ebx ; 100BDA1B _ 53
|
||||||
|
mov ax, word ptr [eax+0AH] ; 100BDA1C _ 66: 8B. 40, 0A
|
||||||
|
push esi ; 100BDA20 _ 56
|
||||||
|
sub ax, word ptr [ecx] ; 100BDA21 _ 66: 2B. 01
|
||||||
|
push edi ; 100BDA24 _ 57
|
||||||
|
dec ax ; 100BDA25 _ 66: 48
|
||||||
|
push ebp ; 100BDA27 _ 55
|
||||||
|
mov word ptr [esp+12H], ax ; 100BDA28 _ 66: 89. 44 24, 12
|
||||||
|
lea esi, [ecx+4H] ; 100BDA2D _ 8D. 71, 04
|
||||||
|
mov ax, word ptr [ecx+2H] ; 100BDA30 _ 66: 8B. 41, 02
|
||||||
|
dec ax ; 100BDA34 _ 66: 48
|
||||||
|
mov word ptr [esp+10H], ax ; 100BDA36 _ 66: 89. 44 24, 10
|
||||||
|
js ?_25219 ; 100BDA3B _ 78, 78
|
||||||
|
?_25214:xor di, di ; 100BDA3D _ 66: 33. FF
|
||||||
|
mov bl, byte ptr [esi] ; 100BDA40 _ 8A. 1E
|
||||||
|
inc esi ; 100BDA42 _ 46
|
||||||
|
test bl, bl ; 100BDA43 _ 84. DB
|
||||||
|
jz ?_25218 ; 100BDA45 _ 74, 62
|
||||||
|
?_25215:movzx ax, byte ptr [esi] ; 100BDA47 _ 66: 0F B6. 06
|
||||||
|
add di, ax ; 100BDA4B _ 66: 03. F8
|
||||||
|
inc esi ; 100BDA4E _ 46
|
||||||
|
mov al, byte ptr [esi] ; 100BDA4F _ 8A. 06
|
||||||
|
inc esi ; 100BDA51 _ 46
|
||||||
|
test al, al ; 100BDA52 _ 84. C0
|
||||||
|
jge ?_25216 ; 100BDA54 _ 7D, 27
|
||||||
|
mov ecx, esi ; 100BDA56 _ 8B. CE
|
||||||
|
mov edx, dword ptr [esp+1CH] ; 100BDA58 _ 8B. 54 24, 1C
|
||||||
|
neg al ; 100BDA5C _ F6. D8
|
||||||
|
movsx bp, al ; 100BDA5E _ 66: 0F BE. E8
|
||||||
|
inc esi ; 100BDA62 _ 46
|
||||||
|
push ebp ; 100BDA63 _ 55
|
||||||
|
mov al, byte ptr [ecx] ; 100BDA64 _ 8A. 01
|
||||||
|
mov ecx, dword ptr [esp+16H] ; 100BDA66 _ 8B. 4C 24, 16
|
||||||
|
push eax ; 100BDA6A _ 50
|
||||||
|
push ecx ; 100BDA6B _ 51
|
||||||
|
mov eax, dword ptr [esp+24H] ; 100BDA6C _ 8B. 44 24, 24
|
||||||
|
push edi ; 100BDA70 _ 57
|
||||||
|
push edx ; 100BDA71 _ 52
|
||||||
|
push eax ; 100BDA72 _ 50
|
||||||
|
call FUN_100bd680 ; 100BDA73 _ E8, FFFFFC08
|
||||||
|
add esp, 24 ; 100BDA78 _ 83. C4, 18
|
||||||
|
jmp ?_25217 ; 100BDA7B _ EB, 23
|
||||||
|
|
||||||
|
?_25216:mov ecx, dword ptr [esp+1CH] ; 100BDA7D _ 8B. 4C 24, 1C
|
||||||
|
mov edx, dword ptr [esp+18H] ; 100BDA81 _ 8B. 54 24, 18
|
||||||
|
movsx bp, al ; 100BDA85 _ 66: 0F BE. E8
|
||||||
|
mov eax, dword ptr [esp+12H] ; 100BDA89 _ 8B. 44 24, 12
|
||||||
|
push ebp ; 100BDA8D _ 55
|
||||||
|
push esi ; 100BDA8E _ 56
|
||||||
|
push eax ; 100BDA8F _ 50
|
||||||
|
push edi ; 100BDA90 _ 57
|
||||||
|
push ecx ; 100BDA91 _ 51
|
||||||
|
push edx ; 100BDA92 _ 52
|
||||||
|
call FUN_100bd580 ; 100BDA93 _ E8, FFFFFAE8
|
||||||
|
movsx ecx, bp ; 100BDA98 _ 0F BF. CD
|
||||||
|
add esp, 24 ; 100BDA9B _ 83. C4, 18
|
||||||
|
add esi, ecx ; 100BDA9E _ 03. F1
|
||||||
|
?_25217:add di, bp ; 100BDAA0 _ 66: 03. FD
|
||||||
|
dec bl ; 100BDAA3 _ FE. CB
|
||||||
|
test bl, bl ; 100BDAA5 _ 84. DB
|
||||||
|
jnz ?_25215 ; 100BDAA7 _ 75, 9E
|
||||||
|
?_25218:dec word ptr [esp+12H] ; 100BDAA9 _ 66: FF. 4C 24, 12
|
||||||
|
dec word ptr [esp+10H] ; 100BDAAE _ 66: FF. 4C 24, 10
|
||||||
|
jns ?_25214 ; 100BDAB3 _ 79, 88
|
||||||
|
?_25219:pop ebp ; 100BDAB5 _ 5D
|
||||||
|
pop edi ; 100BDAB6 _ 5F
|
||||||
|
pop esi ; 100BDAB7 _ 5E
|
||||||
|
pop ebx ; 100BDAB8 _ 5B
|
||||||
|
add esp, 4 ; 100BDAB9 _ 83. C4, 04
|
||||||
|
ret ; 100BDABC _ C3
|
||||||
|
|
||||||
|
; Filling space: 3H
|
||||||
|
; Filler type: INT 3 Debug breakpoint
|
||||||
|
db 0CCH, 0CCH, 0CCH
|
||||||
|
|
||||||
|
FUN_100bdac0 LABEL NEAR
|
||||||
|
mov edx, dword ptr [esp+10H] ; 100BDAC0 _ 8B. 54 24, 10
|
||||||
|
sub esp, 8 ; 100BDAC4 _ 83. EC, 08
|
||||||
|
mov ax, word ptr [edx+8H] ; 100BDAC7 _ 66: 8B. 42, 08
|
||||||
|
push ebx ; 100BDACB _ 53
|
||||||
|
dec ax ; 100BDACC _ 66: 48
|
||||||
|
push esi ; 100BDACE _ 56
|
||||||
|
mov word ptr [esp+8H], ax ; 100BDACF _ 66: 89. 44 24, 08
|
||||||
|
push edi ; 100BDAD4 _ 57
|
||||||
|
mov si, word ptr [edx+0AH] ; 100BDAD5 _ 66: 8B. 72, 0A
|
||||||
|
push ebp ; 100BDAD9 _ 55
|
||||||
|
dec si ; 100BDADA _ 66: 4E
|
||||||
|
mov ecx, dword ptr [esp+24H] ; 100BDADC _ 8B. 4C 24, 24
|
||||||
|
mov bx, word ptr [ecx] ; 100BDAE0 _ 66: 8B. 19
|
||||||
|
add ecx, 2 ; 100BDAE3 _ 83. C1, 02
|
||||||
|
mov word ptr [esp+12H], bx ; 100BDAE6 _ 66: 89. 5C 24, 12
|
||||||
|
mov dword ptr [esp+14H], ecx ; 100BDAEB _ 89. 4C 24, 14
|
||||||
|
?_25221:mov eax, dword ptr [esp+14H] ; 100BDAEF _ 8B. 44 24, 14
|
||||||
|
mov bx, word ptr [eax] ; 100BDAF3 _ 66: 8B. 18
|
||||||
|
add dword ptr [esp+14H], 2 ; 100BDAF6 _ 83. 44 24, 14, 02
|
||||||
|
test bx, bx ; 100BDAFB _ 66: 85. DB
|
||||||
|
jge ?_25223 ; 100BDAFE _ 7D, 49
|
||||||
|
test bh, 40H ; 100BDB00 _ F6. C7, 40
|
||||||
|
jz ?_25222 ; 100BDB03 _ 74, 05
|
||||||
|
add si, bx ; 100BDB05 _ 66: 03. F3
|
||||||
|
jmp ?_25221 ; 100BDB08 _ EB, E5
|
||||||
|
|
||||||
|
?_25222:mov eax, dword ptr [esp+10H] ; 100BDB0A _ 8B. 44 24, 10
|
||||||
|
push ebx ; 100BDB0E _ 53
|
||||||
|
mov ecx, dword ptr [esp+24H] ; 100BDB0F _ 8B. 4C 24, 24
|
||||||
|
push esi ; 100BDB13 _ 56
|
||||||
|
mov edx, dword ptr [esp+24H] ; 100BDB14 _ 8B. 54 24, 24
|
||||||
|
push eax ; 100BDB18 _ 50
|
||||||
|
push ecx ; 100BDB19 _ 51
|
||||||
|
push edx ; 100BDB1A _ 52
|
||||||
|
call FUN_100bd530 ; 100BDB1B _ E8, FFFFFA10
|
||||||
|
mov ecx, dword ptr [esp+28H] ; 100BDB20 _ 8B. 4C 24, 28
|
||||||
|
add esp, 20 ; 100BDB24 _ 83. C4, 14
|
||||||
|
mov bx, word ptr [ecx] ; 100BDB27 _ 66: 8B. 19
|
||||||
|
add dword ptr [esp+14H], 2 ; 100BDB2A _ 83. 44 24, 14, 02
|
||||||
|
test bx, bx ; 100BDB2F _ 66: 85. DB
|
||||||
|
jnz ?_25223 ; 100BDB32 _ 75, 15
|
||||||
|
dec si ; 100BDB34 _ 66: 4E
|
||||||
|
dec word ptr [esp+12H] ; 100BDB36 _ 66: FF. 4C 24, 12
|
||||||
|
cmp word ptr [esp+12H], 0 ; 100BDB3B _ 66: 83. 7C 24, 12, 00
|
||||||
|
jle ?_25226 ; 100BDB41 _ 0F 8E, 000000AE
|
||||||
|
jmp ?_25221 ; 100BDB47 _ EB, A6
|
||||||
|
|
||||||
|
?_25223:xor di, di ; 100BDB49 _ 66: 33. FF
|
||||||
|
?_25224:mov ecx, dword ptr [esp+14H] ; 100BDB4C _ 8B. 4C 24, 14
|
||||||
|
movzx ax, byte ptr [ecx] ; 100BDB50 _ 66: 0F B6. 01
|
||||||
|
add di, ax ; 100BDB54 _ 66: 03. F8
|
||||||
|
inc dword ptr [esp+14H] ; 100BDB57 _ FF. 44 24, 14
|
||||||
|
mov ecx, dword ptr [esp+14H] ; 100BDB5B _ 8B. 4C 24, 14
|
||||||
|
movsx bp, byte ptr [ecx] ; 100BDB5F _ 66: 0F BE. 29
|
||||||
|
add bp, bp ; 100BDB63 _ 66: 03. ED
|
||||||
|
inc dword ptr [esp+14H] ; 100BDB66 _ FF. 44 24, 14
|
||||||
|
test bp, bp ; 100BDB6A _ 66: 85. ED
|
||||||
|
jl ?_25225 ; 100BDB6D _ 7C, 3C
|
||||||
|
mov eax, dword ptr [esp+14H] ; 100BDB6F _ 8B. 44 24, 14
|
||||||
|
push ebp ; 100BDB73 _ 55
|
||||||
|
mov ecx, dword ptr [esp+24H] ; 100BDB74 _ 8B. 4C 24, 24
|
||||||
|
push eax ; 100BDB78 _ 50
|
||||||
|
mov edx, dword ptr [esp+24H] ; 100BDB79 _ 8B. 54 24, 24
|
||||||
|
push esi ; 100BDB7D _ 56
|
||||||
|
push edi ; 100BDB7E _ 57
|
||||||
|
push ecx ; 100BDB7F _ 51
|
||||||
|
add di, bp ; 100BDB80 _ 66: 03. FD
|
||||||
|
push edx ; 100BDB83 _ 52
|
||||||
|
call FUN_100bd580 ; 100BDB84 _ E8, FFFFF9F7
|
||||||
|
movsx ecx, bp ; 100BDB89 _ 0F BF. CD
|
||||||
|
add dword ptr [esp+2CH], ecx ; 100BDB8C _ 01. 4C 24, 2C
|
||||||
|
add esp, 24 ; 100BDB90 _ 83. C4, 18
|
||||||
|
dec bx ; 100BDB93 _ 66: 4B
|
||||||
|
jnz ?_25224 ; 100BDB95 _ 75, B5
|
||||||
|
dec si ; 100BDB97 _ 66: 4E
|
||||||
|
dec word ptr [esp+12H] ; 100BDB99 _ 66: FF. 4C 24, 12
|
||||||
|
cmp word ptr [esp+12H], 0 ; 100BDB9E _ 66: 83. 7C 24, 12, 00
|
||||||
|
jle ?_25226 ; 100BDBA4 _ 7E, 4F
|
||||||
|
jmp ?_25221 ; 100BDBA6 _ E9, FFFFFF44
|
||||||
|
|
||||||
|
?_25225:mov eax, dword ptr [esp+14H] ; 100BDBAB _ 8B. 44 24, 14
|
||||||
|
mov edx, dword ptr [esp+20H] ; 100BDBAF _ 8B. 54 24, 20
|
||||||
|
neg bp ; 100BDBB3 _ 66: F7. DD
|
||||||
|
add dword ptr [esp+14H], 2 ; 100BDBB6 _ 83. 44 24, 14, 02
|
||||||
|
mov cx, bp ; 100BDBBB _ 66: 8B. CD
|
||||||
|
sar cx, 1 ; 100BDBBE _ 66: C1. F9, 01
|
||||||
|
mov ax, word ptr [eax] ; 100BDBC2 _ 66: 8B. 00
|
||||||
|
push ecx ; 100BDBC5 _ 51
|
||||||
|
mov ecx, dword ptr [esp+20H] ; 100BDBC6 _ 8B. 4C 24, 20
|
||||||
|
push eax ; 100BDBCA _ 50
|
||||||
|
push esi ; 100BDBCB _ 56
|
||||||
|
push edi ; 100BDBCC _ 57
|
||||||
|
add di, bp ; 100BDBCD _ 66: 03. FD
|
||||||
|
push edx ; 100BDBD0 _ 52
|
||||||
|
push ecx ; 100BDBD1 _ 51
|
||||||
|
call FUN_100bd6e0 ; 100BDBD2 _ E8, FFFFFB09
|
||||||
|
add esp, 24 ; 100BDBD7 _ 83. C4, 18
|
||||||
|
dec bx ; 100BDBDA _ 66: 4B
|
||||||
|
jne ?_25224 ; 100BDBDC _ 0F 85, FFFFFF6A
|
||||||
|
dec si ; 100BDBE2 _ 66: 4E
|
||||||
|
dec word ptr [esp+12H] ; 100BDBE4 _ 66: FF. 4C 24, 12
|
||||||
|
cmp word ptr [esp+12H], 0 ; 100BDBE9 _ 66: 83. 7C 24, 12, 00
|
||||||
|
jg ?_25221 ; 100BDBEF _ 0F 8F, FFFFFEFA
|
||||||
|
?_25226:pop ebp ; 100BDBF5 _ 5D
|
||||||
|
pop edi ; 100BDBF6 _ 5F
|
||||||
|
pop esi ; 100BDBF7 _ 5E
|
||||||
|
pop ebx ; 100BDBF8 _ 5B
|
||||||
|
add esp, 8 ; 100BDBF9 _ 83. C4, 08
|
||||||
|
ret ; 100BDBFC _ C3
|
||||||
|
|
||||||
|
; Filling space: 3H
|
||||||
|
; Filler type: INT 3 Debug breakpoint
|
||||||
|
db 0CCH, 0CCH, 0CCH
|
||||||
|
|
||||||
|
FUN_100bdc00 LABEL NEAR
|
||||||
|
mov eax, dword ptr [esp+10H] ; 100BDC00 _ 8B. 44 24, 10
|
||||||
|
sub esp, 8 ; 100BDC04 _ 83. EC, 08
|
||||||
|
mov cx, word ptr [eax+8H] ; 100BDC07 _ 66: 8B. 48, 08
|
||||||
|
push ebx ; 100BDC0B _ 53
|
||||||
|
mov word ptr [esp+6H], cx ; 100BDC0C _ 66: 89. 4C 24, 06
|
||||||
|
push esi ; 100BDC11 _ 56
|
||||||
|
push edi ; 100BDC12 _ 57
|
||||||
|
xor ecx, ecx ; 100BDC13 _ 33. C9
|
||||||
|
mov byte ptr [esp+0DH], cl ; 100BDC15 _ 88. 4C 24, 0D
|
||||||
|
push ebp ; 100BDC19 _ 55
|
||||||
|
mov bp, word ptr [eax+0AH] ; 100BDC1A _ 66: 8B. 68, 0A
|
||||||
|
mov byte ptr [esp+10H], cl ; 100BDC1E _ 88. 4C 24, 10
|
||||||
|
dec bp ; 100BDC22 _ 66: 4D
|
||||||
|
js ?_25230 ; 100BDC24 _ 78, 56
|
||||||
|
movsx eax, word ptr [esp+12H] ; 100BDC26 _ 0F BF. 44 24, 12
|
||||||
|
mov si, word ptr [esp+12H] ; 100BDC2B _ 66: 8B. 74 24, 12
|
||||||
|
mov edi, dword ptr [esp+1CH] ; 100BDC30 _ 8B. 7C 24, 1C
|
||||||
|
cdq ; 100BDC34 _ 99
|
||||||
|
and si, 01H ; 100BDC35 _ 66: 83. E6, 01
|
||||||
|
sub eax, edx ; 100BDC39 _ 2B. C2
|
||||||
|
sar eax, 1 ; 100BDC3B _ C1. F8, 01
|
||||||
|
mov ebx, dword ptr [esp+20H] ; 100BDC3E _ 8B. 5C 24, 20
|
||||||
|
mov word ptr [esp+14H], ax ; 100BDC42 _ 66: 89. 44 24, 14
|
||||||
|
?_25228:mov eax, dword ptr [esp+14H] ; 100BDC47 _ 8B. 44 24, 14
|
||||||
|
mov ecx, dword ptr [esp+10H] ; 100BDC4B _ 8B. 4C 24, 10
|
||||||
|
push eax ; 100BDC4F _ 50
|
||||||
|
push ecx ; 100BDC50 _ 51
|
||||||
|
push ebp ; 100BDC51 _ 55
|
||||||
|
push 0 ; 100BDC52 _ 6A, 00
|
||||||
|
push ebx ; 100BDC54 _ 53
|
||||||
|
push edi ; 100BDC55 _ 57
|
||||||
|
call FUN_100bd6e0 ; 100BDC56 _ E8, FFFFFA85
|
||||||
|
add esp, 24 ; 100BDC5B _ 83. C4, 18
|
||||||
|
test si, si ; 100BDC5E _ 66: 85. F6
|
||||||
|
jz ?_25229 ; 100BDC61 _ 74, 15
|
||||||
|
mov ax, word ptr [esp+12H] ; 100BDC63 _ 66: 8B. 44 24, 12
|
||||||
|
push 0 ; 100BDC68 _ 6A, 00
|
||||||
|
dec ax ; 100BDC6A _ 66: 48
|
||||||
|
push ebp ; 100BDC6C _ 55
|
||||||
|
push eax ; 100BDC6D _ 50
|
||||||
|
push ebx ; 100BDC6E _ 53
|
||||||
|
push edi ; 100BDC6F _ 57
|
||||||
|
call FUN_100bd530 ; 100BDC70 _ E8, FFFFF8BB
|
||||||
|
add esp, 20 ; 100BDC75 _ 83. C4, 14
|
||||||
|
?_25229:dec bp ; 100BDC78 _ 66: 4D
|
||||||
|
jns ?_25228 ; 100BDC7A _ 79, CB
|
||||||
|
?_25230:pop ebp ; 100BDC7C _ 5D
|
||||||
|
pop edi ; 100BDC7D _ 5F
|
||||||
|
pop esi ; 100BDC7E _ 5E
|
||||||
|
pop ebx ; 100BDC7F _ 5B
|
||||||
|
add esp, 8 ; 100BDC80 _ 83. C4, 08
|
||||||
|
ret ; 100BDC83 _ C3
|
||||||
|
|
||||||
|
; Filling space: 0CH
|
||||||
|
; Filler type: INT 3 Debug breakpoint
|
||||||
|
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||||
|
db 0CCH, 0CCH, 0CCH, 0CCH
|
||||||
|
|
||||||
|
FUN_100bdc90 LABEL NEAR
|
||||||
|
mov eax, dword ptr [esp+10H] ; 100BDC90 _ 8B. 44 24, 10
|
||||||
|
sub esp, 4 ; 100BDC94 _ 83. EC, 04
|
||||||
|
push ebx ; 100BDC97 _ 53
|
||||||
|
push esi ; 100BDC98 _ 56
|
||||||
|
mov bx, word ptr [eax+0AH] ; 100BDC99 _ 66: 8B. 58, 0A
|
||||||
|
push edi ; 100BDC9D _ 57
|
||||||
|
mov di, word ptr [eax+8H] ; 100BDC9E _ 66: 8B. 78, 08
|
||||||
|
push ebp ; 100BDCA2 _ 55
|
||||||
|
dec bx ; 100BDCA3 _ 66: 4B
|
||||||
|
js ?_25233 ; 100BDCA5 _ 78, 2A
|
||||||
|
mov esi, dword ptr [esp+18H] ; 100BDCA7 _ 8B. 74 24, 18
|
||||||
|
mov ebp, dword ptr [esp+20H] ; 100BDCAB _ 8B. 6C 24, 20
|
||||||
|
movsx eax, di ; 100BDCAF _ 0F BF. C7
|
||||||
|
mov dword ptr [esp+10H], eax ; 100BDCB2 _ 89. 44 24, 10
|
||||||
|
?_25232:mov eax, dword ptr [esp+1CH] ; 100BDCB6 _ 8B. 44 24, 1C
|
||||||
|
push edi ; 100BDCBA _ 57
|
||||||
|
push ebp ; 100BDCBB _ 55
|
||||||
|
push ebx ; 100BDCBC _ 53
|
||||||
|
push 0 ; 100BDCBD _ 6A, 00
|
||||||
|
push eax ; 100BDCBF _ 50
|
||||||
|
push esi ; 100BDCC0 _ 56
|
||||||
|
call FUN_100bd580 ; 100BDCC1 _ E8, FFFFF8BA
|
||||||
|
add ebp, dword ptr [esp+28H] ; 100BDCC6 _ 03. 6C 24, 28
|
||||||
|
add esp, 24 ; 100BDCCA _ 83. C4, 18
|
||||||
|
dec bx ; 100BDCCD _ 66: 4B
|
||||||
|
jns ?_25232 ; 100BDCCF _ 79, E5
|
||||||
|
?_25233:pop ebp ; 100BDCD1 _ 5D
|
||||||
|
pop edi ; 100BDCD2 _ 5F
|
||||||
|
pop esi ; 100BDCD3 _ 5E
|
||||||
|
pop ebx ; 100BDCD4 _ 5B
|
||||||
|
add esp, 4 ; 100BDCD5 _ 83. C4, 04
|
||||||
|
ret ; 100BDCD8 _ C3
|
||||||
|
|
||||||
|
; Filling space: 7H
|
||||||
|
; Filler type: INT 3 Debug breakpoint
|
||||||
|
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||||
|
|
||||||
|
DecodeFLCFrame LABEL NEAR
|
||||||
|
mov ecx, dword ptr [esp+10H] ; 100BDCE0 _ 8B. 4C 24, 10
|
||||||
|
; Note: Length-changing prefix causes delay on Intel processors
|
||||||
|
cmp word ptr [ecx+4H], -3590 ; 100BDCE4 _ 66: 81. 79, 04, F1FA
|
||||||
|
jnz ?_25235 ; 100BDCEA _ 75, 21
|
||||||
|
mov eax, dword ptr [esp+14H] ; 100BDCEC _ 8B. 44 24, 14
|
||||||
|
lea edx, [ecx+10H] ; 100BDCF0 _ 8D. 51, 10
|
||||||
|
push eax ; 100BDCF3 _ 50
|
||||||
|
push edx ; 100BDCF4 _ 52
|
||||||
|
mov eax, dword ptr [esp+10H] ; 100BDCF5 _ 8B. 44 24, 10
|
||||||
|
push ecx ; 100BDCF9 _ 51
|
||||||
|
mov ecx, dword ptr [esp+18H] ; 100BDCFA _ 8B. 4C 24, 18
|
||||||
|
mov edx, dword ptr [esp+10H] ; 100BDCFE _ 8B. 54 24, 10
|
||||||
|
push ecx ; 100BDD02 _ 51
|
||||||
|
push eax ; 100BDD03 _ 50
|
||||||
|
push edx ; 100BDD04 _ 52
|
||||||
|
call FUN_100bd760 ; 100BDD05 _ E8, FFFFFA56
|
||||||
|
add esp, 24 ; 100BDD0A _ 83. C4, 18
|
||||||
|
?_25235:ret ; 100BDD0D _ C3
|
||||||
|
|
||||||
|
; Filling space: 2H
|
||||||
|
; Filler type: INT 3 Debug breakpoint
|
||||||
|
db 0CCH, 0CCH
|
||||||
|
|
||||||
|
EndOfSection LABEL NEAR
|
||||||
|
|
||||||
|
.text ENDS
|
||||||
|
|
||||||
|
END
|
||||||
63
3rdparty/flic/flic.h
vendored
63
3rdparty/flic/flic.h
vendored
@ -6,31 +6,42 @@
|
|||||||
// A basic FLIC header structure from the "EGI" documentation. Source: https://www.compuphase.com/flic.htm#FLICHEADER
|
// A basic FLIC header structure from the "EGI" documentation. Source: https://www.compuphase.com/flic.htm#FLICHEADER
|
||||||
// This also goes over the FLIC structures: https://github.com/thinkbeforecoding/nomemalloc.handson/blob/master/flic.txt
|
// This also goes over the FLIC structures: https://github.com/thinkbeforecoding/nomemalloc.handson/blob/master/flic.txt
|
||||||
typedef struct {
|
typedef struct {
|
||||||
DWORD size; /* Size of FLIC including this header */
|
DWORD size; /* Size of FLIC including this header */
|
||||||
WORD type; /* File type 0xAF11, 0xAF12, 0xAF30, 0xAF44, ... */
|
WORD type; /* File type 0xAF11, 0xAF12, 0xAF30, 0xAF44, ... */
|
||||||
WORD frames; /* Number of frames in first segment */
|
WORD frames; /* Number of frames in first segment */
|
||||||
WORD width; /* FLIC width in pixels */
|
WORD width; /* FLIC width in pixels */
|
||||||
WORD height; /* FLIC height in pixels */
|
WORD height; /* FLIC height in pixels */
|
||||||
WORD depth; /* Bits per pixel (usually 8) */
|
WORD depth; /* Bits per pixel (usually 8) */
|
||||||
WORD flags; /* Set to zero or to three */
|
WORD flags; /* Set to zero or to three */
|
||||||
DWORD speed; /* Delay between frames */
|
DWORD speed; /* Delay between frames */
|
||||||
WORD reserved1; /* Set to zero */
|
WORD reserved1; /* Set to zero */
|
||||||
DWORD created; /* Date of FLIC creation (FLC only) */
|
DWORD created; /* Date of FLIC creation (FLC only) */
|
||||||
DWORD creator; /* Serial number or compiler id (FLC only) */
|
DWORD creator; /* Serial number or compiler id (FLC only) */
|
||||||
DWORD updated; /* Date of FLIC update (FLC only) */
|
DWORD updated; /* Date of FLIC update (FLC only) */
|
||||||
DWORD updater; /* Serial number (FLC only), see creator */
|
DWORD updater; /* Serial number (FLC only), see creator */
|
||||||
WORD aspect_dx; /* Width of square rectangle (FLC only) */
|
WORD aspect_dx; /* Width of square rectangle (FLC only) */
|
||||||
WORD aspect_dy; /* Height of square rectangle (FLC only) */
|
WORD aspect_dy; /* Height of square rectangle (FLC only) */
|
||||||
WORD ext_flags; /* EGI: flags for specific EGI extensions */
|
WORD ext_flags; /* EGI: flags for specific EGI extensions */
|
||||||
WORD keyframes; /* EGI: key-image frequency */
|
WORD keyframes; /* EGI: key-image frequency */
|
||||||
WORD totalframes; /* EGI: total number of frames (segments) */
|
WORD totalframes; /* EGI: total number of frames (segments) */
|
||||||
DWORD req_memory; /* EGI: maximum chunk size (uncompressed) */
|
DWORD req_memory; /* EGI: maximum chunk size (uncompressed) */
|
||||||
WORD max_regions; /* EGI: max. number of regions in a CHK_REGION chunk */
|
WORD max_regions; /* EGI: max. number of regions in a CHK_REGION chunk */
|
||||||
WORD transp_num; /* EGI: number of transparent levels */
|
WORD transp_num; /* EGI: number of transparent levels */
|
||||||
BYTE reserved2[24]; /* Set to zero */
|
BYTE reserved2[24]; /* Set to zero */
|
||||||
DWORD oframe1; /* Offset to frame 1 (FLC only) */
|
DWORD oframe1; /* Offset to frame 1 (FLC only) */
|
||||||
DWORD oframe2; /* Offset to frame 2 (FLC only) */
|
DWORD oframe2; /* Offset to frame 2 (FLC only) */
|
||||||
BYTE reserved3[40]; /* Set to zero */
|
BYTE reserved3[40]; /* Set to zero */
|
||||||
} FLIC_HEADER;
|
} FLIC_HEADER;
|
||||||
|
|
||||||
#endif FLIC_H // FLIC_H
|
extern "C"
|
||||||
|
{
|
||||||
|
void DecodeFLCFrame(
|
||||||
|
LPBITMAPINFOHEADER bitmapHeader,
|
||||||
|
void* pixelData,
|
||||||
|
FLIC_HEADER* flcHeader,
|
||||||
|
void* flcFrame,
|
||||||
|
unsigned char* decodedColorMap
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // FLIC_H
|
||||||
|
|||||||
BIN
3rdparty/flic/flic.lib
vendored
Normal file
BIN
3rdparty/flic/flic.lib
vendored
Normal file
Binary file not shown.
@ -82,7 +82,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(__RADDOS__) && !defined(__RADWIN__) && !defined(__RADMAC__)
|
#if !defined(__RADDOS__) && !defined(__RADWIN__) && !defined(__RADMAC__)
|
||||||
#error RAD.H didn'y detect your platform. Define __DOS__, __WINDOWS__, WIN32, macintosh, or powerc.
|
#error "RAD.H didn'y detect your platform. Define __DOS__, __WINDOWS__, WIN32, macintosh, or powerc."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __RADMAC__
|
#ifdef __RADMAC__
|
||||||
697
CMakeLists.txt
697
CMakeLists.txt
@ -2,212 +2,93 @@ cmake_minimum_required(VERSION 3.13 FATAL_ERROR)
|
|||||||
|
|
||||||
project(isle CXX)
|
project(isle CXX)
|
||||||
|
|
||||||
option(ISLE_BUILD_APP "Build ISLE.EXE application" ON)
|
include(CheckCXXSourceCompiles)
|
||||||
option(ISLE_USE_SMARTHEAP "Build with SmartHeap" ${MSVC})
|
include(CMakeDependentOption)
|
||||||
option(ISLE_USE_DX5 "Build with internal DirectX 5 SDK" ON)
|
include(CMakePushCheckState)
|
||||||
|
|
||||||
add_library(lego1 SHARED
|
set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE)
|
||||||
LEGO1/act1state.cpp
|
option(ENABLE_CLANG_TIDY "Enable clang-tidy")
|
||||||
LEGO1/act2brick.cpp
|
if (ENABLE_CLANG_TIDY)
|
||||||
LEGO1/act2policestation.cpp
|
find_program(CLANG_TIDY_BIN NAMES "clang-tidy")
|
||||||
LEGO1/act3.cpp
|
set(CMAKE_C_CLANG_TIDY "${CLANG_TIDY_BIN}")
|
||||||
LEGO1/act3shark.cpp
|
set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_BIN}")
|
||||||
LEGO1/act3state.cpp
|
endif()
|
||||||
LEGO1/ambulance.cpp
|
|
||||||
LEGO1/ambulancemissionstate.cpp
|
math(EXPR bits "8 * ${CMAKE_SIZEOF_VOID_P}")
|
||||||
LEGO1/animstate.cpp
|
message(STATUS "Building ${bits}-bit LEGO Island")
|
||||||
LEGO1/beachhouseentity.cpp
|
if (NOT bits EQUAL 32)
|
||||||
LEGO1/bike.cpp
|
message(WARNING "Only 32-bit executables are supported")
|
||||||
LEGO1/buildingentity.cpp
|
endif()
|
||||||
LEGO1/bumpbouy.cpp
|
|
||||||
LEGO1/carrace.cpp
|
set(MSVC_FOR_DECOMP FALSE)
|
||||||
LEGO1/define.cpp
|
if (MSVC)
|
||||||
LEGO1/dllmain.cpp
|
# Visual C++ 4.2 -> cl version 10.2.0
|
||||||
LEGO1/dunebuggy.cpp
|
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "11.0")
|
||||||
LEGO1/elevatorbottom.cpp
|
set(MSVC_FOR_DECOMP TRUE)
|
||||||
LEGO1/gasstation.cpp
|
endif()
|
||||||
LEGO1/gasstationentity.cpp
|
endif()
|
||||||
LEGO1/gasstationstate.cpp
|
|
||||||
LEGO1/gifmanager.cpp
|
set(lego1_targets)
|
||||||
LEGO1/helicopter.cpp
|
macro(register_lego1_target __target)
|
||||||
LEGO1/helicopterstate.cpp
|
list(APPEND lego1_targets ${__target})
|
||||||
LEGO1/historybook.cpp
|
endmacro()
|
||||||
LEGO1/hospital.cpp
|
|
||||||
LEGO1/hospitalentity.cpp
|
function(add_cxx_warning WARNING)
|
||||||
LEGO1/hospitalstate.cpp
|
if(ISLE_WERROR)
|
||||||
LEGO1/infocenter.cpp
|
set(compiler_option "-Werror=${WARNING}")
|
||||||
LEGO1/infocenterdoor.cpp
|
else()
|
||||||
LEGO1/infocenterentity.cpp
|
set(compiler_option "-W${WARNING}")
|
||||||
LEGO1/infocenterstate.cpp
|
endif()
|
||||||
LEGO1/isle.cpp
|
string(MAKE_C_IDENTIFIER "COMPILER_SUPPORTS${compiler_option}" varname)
|
||||||
LEGO1/isleactor.cpp
|
|
||||||
LEGO1/islepathactor.cpp
|
cmake_push_check_state(RESET)
|
||||||
LEGO1/jetski.cpp
|
set(CMAKE_REQUIRED_FLAGS "${compiler_option} ")
|
||||||
LEGO1/jetskirace.cpp
|
if(MSVC)
|
||||||
LEGO1/jukebox.cpp
|
string(APPEND CMAKE_REQUIRED_FLAGS "/WX")
|
||||||
LEGO1/jukeboxentity.cpp
|
else()
|
||||||
LEGO1/jukeboxstate.cpp
|
string(APPEND CMAKE_REQUIRED_FLAGS "-Werror")
|
||||||
LEGO1/lego3dview.cpp
|
endif()
|
||||||
LEGO1/legoact2state.cpp
|
check_cxx_source_compiles("int main() { return 0; }" ${varname})
|
||||||
LEGO1/legoactioncontrolpresenter.cpp
|
cmake_pop_check_state()
|
||||||
LEGO1/legoactor.cpp
|
|
||||||
LEGO1/legoactor.cpp
|
if(${varname})
|
||||||
LEGO1/legoanimactor.cpp
|
add_compile_options(${compiler_option})
|
||||||
LEGO1/legoanimationmanager.cpp
|
endif()
|
||||||
LEGO1/legoanimmmpresenter.cpp
|
endfunction()
|
||||||
LEGO1/legoanimpresenter.cpp
|
|
||||||
LEGO1/legobackgroundcolor.cpp
|
message(STATUS "MSVC for decompilation: ${MSVC_FOR_DECOMP}")
|
||||||
LEGO1/legobackgroundcolor.cpp
|
|
||||||
LEGO1/legobuildingmanager.cpp
|
option(ISLE_WERROR "Treat warnings as errors" OFF)
|
||||||
LEGO1/legocachesound.cpp
|
option(ISLE_BUILD_APP "Build ISLE.EXE application" ON)
|
||||||
LEGO1/legocameracontroller.cpp
|
option(ISLE_USE_SMARTHEAP "Build with SmartHeap" ${MSVC_FOR_DECOMP})
|
||||||
LEGO1/legocarbuild.cpp
|
option(ISLE_USE_DX5 "Build with internal DirectX 5 SDK" ON)
|
||||||
LEGO1/legocarbuildanimpresenter.cpp
|
cmake_dependent_option(ISLE_USE_DX5_LIBS "Build with internal DirectX 5 SDK Libraries" ON ISLE_USE_DX5 OFF)
|
||||||
LEGO1/legocontrolmanager.cpp
|
|
||||||
LEGO1/legoentity.cpp
|
add_cxx_warning(parentheses)
|
||||||
LEGO1/legoentitypresenter.cpp
|
|
||||||
LEGO1/legoeventnotificationparam.cpp
|
add_library(DirectX5::DirectX5 INTERFACE IMPORTED)
|
||||||
LEGO1/legoflctexturepresenter.cpp
|
target_include_directories(DirectX5::DirectX5 INTERFACE "${CMAKE_SOURCE_DIR}/3rdparty/dx5/inc")
|
||||||
LEGO1/legofullscreenmovie.cpp
|
if(ISLE_USE_DX5_LIBS)
|
||||||
LEGO1/legogamestate.cpp
|
target_link_directories(DirectX5::DirectX5 INTERFACE "${CMAKE_SOURCE_DIR}/3rdparty/dx5/lib")
|
||||||
LEGO1/legohideanimpresenter.cpp
|
endif()
|
||||||
LEGO1/legoinputmanager.cpp
|
|
||||||
LEGO1/legojetski.cpp
|
add_library(Smacker::Smacker STATIC IMPORTED)
|
||||||
LEGO1/legoloadcachesoundpresenter.cpp
|
set_property(TARGET Smacker::Smacker PROPERTY IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/3rdparty/smacker/smack.lib")
|
||||||
LEGO1/legolocomotionanimpresenter.cpp
|
set_property(TARGET Smacker::Smacker PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/3rdparty/smacker")
|
||||||
LEGO1/legometerpresenter.cpp
|
|
||||||
LEGO1/legomodelpresenter.cpp
|
add_library(FLIC::FLIC STATIC IMPORTED)
|
||||||
LEGO1/legonavcontroller.cpp
|
set_property(TARGET FLIC::FLIC PROPERTY IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/3rdparty/flic/flic.lib")
|
||||||
LEGO1/legoobjectfactory.cpp
|
set_property(TARGET FLIC::FLIC PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/3rdparty/flic")
|
||||||
LEGO1/legoomni.cpp
|
|
||||||
LEGO1/legopalettepresenter.cpp
|
add_library(Vec::Vec INTERFACE IMPORTED)
|
||||||
LEGO1/legopartpresenter.cpp
|
target_include_directories(Vec::Vec INTERFACE "${CMAKE_SOURCE_DIR}/3rdparty/vec")
|
||||||
LEGO1/legopathactor.cpp
|
|
||||||
LEGO1/legopathcontroller.cpp
|
add_library(SmartHeap::SmartHeap STATIC IMPORTED)
|
||||||
LEGO1/legopathpresenter.cpp
|
set_property(TARGET SmartHeap::SmartHeap PROPERTY IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/3rdparty/smartheap/SHLW32MT.LIB")
|
||||||
LEGO1/legophonemepresenter.cpp
|
set_property(TARGET SmartHeap::SmartHeap PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/3rdparty/smartheap")
|
||||||
LEGO1/legoplantmanager.cpp
|
set_property(TARGET SmartHeap::SmartHeap PROPERTY INTERFACE_COMPILE_OPTIONS "/FI${CMAKE_SOURCE_DIR}/3rdparty/smartheap/SMRTHEAP.HPP")
|
||||||
LEGO1/legorace.cpp
|
|
||||||
LEGO1/legoroi.cpp
|
add_library(tglrl STATIC
|
||||||
LEGO1/legosoundmanager.cpp
|
|
||||||
LEGO1/legostate.cpp
|
|
||||||
LEGO1/legostream.cpp
|
|
||||||
LEGO1/legotexturepresenter.cpp
|
|
||||||
LEGO1/legoutil.cpp
|
|
||||||
LEGO1/legounksavedatawriter.cpp
|
|
||||||
LEGO1/legovehiclebuildstate.cpp
|
|
||||||
LEGO1/legovideomanager.cpp
|
|
||||||
LEGO1/legoworld.cpp
|
|
||||||
LEGO1/legoworldpresenter.cpp
|
|
||||||
LEGO1/motorcycle.cpp
|
|
||||||
LEGO1/mxactionnotificationparam.cpp
|
|
||||||
LEGO1/mxatomid.cpp
|
|
||||||
LEGO1/mxatomidcounter.cpp
|
|
||||||
LEGO1/mxaudiomanager.cpp
|
|
||||||
LEGO1/mxaudiopresenter.cpp
|
|
||||||
LEGO1/mxautolocker.cpp
|
|
||||||
LEGO1/mxbackgroundaudiomanager.cpp
|
|
||||||
LEGO1/mxbitmap.cpp
|
|
||||||
LEGO1/mxcompositemediapresenter.cpp
|
|
||||||
LEGO1/mxcompositepresenter.cpp
|
|
||||||
LEGO1/mxcontrolpresenter.cpp
|
|
||||||
LEGO1/mxcore.cpp
|
|
||||||
LEGO1/mxcriticalsection.cpp
|
|
||||||
LEGO1/mxdirect3d.cpp
|
|
||||||
LEGO1/mxdirectdraw.cpp
|
|
||||||
LEGO1/mxdiskstreamcontroller.cpp
|
|
||||||
LEGO1/mxdiskstreamprovider.cpp
|
|
||||||
LEGO1/mxdisplaysurface.cpp
|
|
||||||
LEGO1/mxdsaction.cpp
|
|
||||||
LEGO1/mxdsanim.cpp
|
|
||||||
LEGO1/mxdsbuffer.cpp
|
|
||||||
LEGO1/mxdschunk.cpp
|
|
||||||
LEGO1/mxdsevent.cpp
|
|
||||||
LEGO1/mxdsfile.cpp
|
|
||||||
LEGO1/mxdsmediaaction.cpp
|
|
||||||
LEGO1/mxdsmultiaction.cpp
|
|
||||||
LEGO1/mxdsobject.cpp
|
|
||||||
LEGO1/mxdsobjectaction.cpp
|
|
||||||
LEGO1/mxdsparallelaction.cpp
|
|
||||||
LEGO1/mxdsselectaction.cpp
|
|
||||||
LEGO1/mxdsserialaction.cpp
|
|
||||||
LEGO1/mxdssound.cpp
|
|
||||||
LEGO1/mxdssource.cpp
|
|
||||||
LEGO1/mxdsstill.cpp
|
|
||||||
LEGO1/mxdsstreamingaction.cpp
|
|
||||||
LEGO1/mxdssubscriber.cpp
|
|
||||||
LEGO1/mxentity.cpp
|
|
||||||
LEGO1/mxeventmanager.cpp
|
|
||||||
LEGO1/mxeventpresenter.cpp
|
|
||||||
LEGO1/mxflcpresenter.cpp
|
|
||||||
LEGO1/mxioinfo.cpp
|
|
||||||
LEGO1/mxloopingflcpresenter.cpp
|
|
||||||
LEGO1/mxloopingmidipresenter.cpp
|
|
||||||
LEGO1/mxloopingsmkpresenter.cpp
|
|
||||||
LEGO1/mxmediamanager.cpp
|
|
||||||
LEGO1/mxmediapresenter.cpp
|
|
||||||
LEGO1/mxmidipresenter.cpp
|
|
||||||
LEGO1/mxmusicmanager.cpp
|
|
||||||
LEGO1/mxmusicpresenter.cpp
|
|
||||||
LEGO1/mxnotificationmanager.cpp
|
|
||||||
LEGO1/mxnotificationparam.cpp
|
|
||||||
LEGO1/mxobjectfactory.cpp
|
|
||||||
LEGO1/mxomni.cpp
|
|
||||||
LEGO1/mxomnicreateflags.cpp
|
|
||||||
LEGO1/mxomnicreateparam.cpp
|
|
||||||
LEGO1/mxpalette.cpp
|
|
||||||
LEGO1/mxparam.cpp
|
|
||||||
LEGO1/mxpresenter.cpp
|
|
||||||
LEGO1/mxramstreamcontroller.cpp
|
|
||||||
LEGO1/mxramstreamprovider.cpp
|
|
||||||
LEGO1/mxregion.cpp
|
|
||||||
LEGO1/mxscheduler.cpp
|
|
||||||
LEGO1/mxsemaphore.cpp
|
|
||||||
LEGO1/mxsmack.cpp
|
|
||||||
LEGO1/mxsmkpresenter.cpp
|
|
||||||
LEGO1/mxsoundmanager.cpp
|
|
||||||
LEGO1/mxsoundpresenter.cpp
|
|
||||||
LEGO1/mxstillpresenter.cpp
|
|
||||||
LEGO1/mxstreamchunk.cpp
|
|
||||||
LEGO1/mxstreamcontroller.cpp
|
|
||||||
LEGO1/mxstreamer.cpp
|
|
||||||
LEGO1/mxstreamlist.cpp
|
|
||||||
LEGO1/mxstreamprovider.cpp
|
|
||||||
LEGO1/mxstring.cpp
|
|
||||||
LEGO1/mxthread.cpp
|
|
||||||
LEGO1/mxticklemanager.cpp
|
|
||||||
LEGO1/mxtimer.cpp
|
|
||||||
LEGO1/mxtransitionmanager.cpp
|
|
||||||
LEGO1/mxtype17notificationparam.cpp
|
|
||||||
LEGO1/mxunknown100dbdbc.cpp
|
|
||||||
LEGO1/mxvariable.cpp
|
|
||||||
LEGO1/mxvariabletable.cpp
|
|
||||||
LEGO1/mxvideomanager.cpp
|
|
||||||
LEGO1/mxvideoparam.cpp
|
|
||||||
LEGO1/mxvideoparamflags.cpp
|
|
||||||
LEGO1/mxvideopresenter.cpp
|
|
||||||
LEGO1/mxwavepresenter.cpp
|
|
||||||
LEGO1/pizza.cpp
|
|
||||||
LEGO1/pizzamissionstate.cpp
|
|
||||||
LEGO1/pizzeria.cpp
|
|
||||||
LEGO1/pizzeriastate.cpp
|
|
||||||
LEGO1/police.cpp
|
|
||||||
LEGO1/policeentity.cpp
|
|
||||||
LEGO1/policestate.cpp
|
|
||||||
LEGO1/racecar.cpp
|
|
||||||
LEGO1/racestandsentity.cpp
|
|
||||||
LEGO1/racestate.cpp
|
|
||||||
LEGO1/radio.cpp
|
|
||||||
LEGO1/radiostate.cpp
|
|
||||||
LEGO1/realtime/matrix.cpp
|
|
||||||
LEGO1/realtime/orientableroi.cpp
|
|
||||||
LEGO1/realtime/realtime.cpp
|
|
||||||
LEGO1/realtime/realtimeview.cpp
|
|
||||||
LEGO1/realtime/vector.cpp
|
|
||||||
LEGO1/registrationbook.cpp
|
|
||||||
LEGO1/score.cpp
|
|
||||||
LEGO1/scorestate.cpp
|
|
||||||
LEGO1/skateboard.cpp
|
|
||||||
LEGO1/tgl/d3drm/camera.cpp
|
LEGO1/tgl/d3drm/camera.cpp
|
||||||
LEGO1/tgl/d3drm/device.cpp
|
LEGO1/tgl/d3drm/device.cpp
|
||||||
LEGO1/tgl/d3drm/group.cpp
|
LEGO1/tgl/d3drm/group.cpp
|
||||||
@ -217,44 +98,317 @@ add_library(lego1 SHARED
|
|||||||
LEGO1/tgl/d3drm/texture.cpp
|
LEGO1/tgl/d3drm/texture.cpp
|
||||||
LEGO1/tgl/d3drm/unk.cpp
|
LEGO1/tgl/d3drm/unk.cpp
|
||||||
LEGO1/tgl/d3drm/view.cpp
|
LEGO1/tgl/d3drm/view.cpp
|
||||||
LEGO1/towtrack.cpp
|
)
|
||||||
LEGO1/towtrackmissionstate.cpp
|
register_lego1_target(tglrl)
|
||||||
|
set_property(TARGET tglrl PROPERTY ARCHIVE_OUTPUT_NAME "tglrl40$<$<CONFIG:Debug>:d>")
|
||||||
|
target_include_directories(tglrl PRIVATE "${CMAKE_SOURCE_DIR}/LEGO1" "${CMAKE_SOURCE_DIR}/util")
|
||||||
|
target_link_libraries(tglrl PRIVATE d3drm)
|
||||||
|
|
||||||
|
add_library(realtime STATIC
|
||||||
|
LEGO1/realtime/matrix.cpp
|
||||||
|
LEGO1/realtime/orientableroi.cpp
|
||||||
|
LEGO1/realtime/realtime.cpp
|
||||||
|
LEGO1/realtime/realtimeview.cpp
|
||||||
|
LEGO1/realtime/vector.cpp
|
||||||
|
)
|
||||||
|
register_lego1_target(realtime)
|
||||||
|
set_property(TARGET realtime PROPERTY ARCHIVE_OUTPUT_NAME "realtime$<$<CONFIG:Debug>:d>")
|
||||||
|
target_include_directories(realtime PRIVATE "${CMAKE_SOURCE_DIR}/LEGO1" "${CMAKE_SOURCE_DIR}/util")
|
||||||
|
target_link_libraries(realtime PRIVATE Vec::Vec)
|
||||||
|
|
||||||
|
add_library(viewmanager STATIC
|
||||||
|
LEGO1/viewmanager/viewlodlist.cpp
|
||||||
LEGO1/viewmanager/viewmanager.cpp
|
LEGO1/viewmanager/viewmanager.cpp
|
||||||
LEGO1/viewmanager/viewroi.cpp
|
LEGO1/viewmanager/viewroi.cpp
|
||||||
)
|
)
|
||||||
|
register_lego1_target(viewmanager)
|
||||||
|
set_property(TARGET viewmanager PROPERTY ARCHIVE_OUTPUT_NAME "viewmanager$<$<CONFIG:Debug>:d>")
|
||||||
|
target_include_directories(viewmanager PRIVATE "${CMAKE_SOURCE_DIR}/LEGO1" "${CMAKE_SOURCE_DIR}/util")
|
||||||
|
target_link_libraries(viewmanager PRIVATE Vec::Vec)
|
||||||
|
|
||||||
|
add_library(mxdirectx STATIC
|
||||||
|
LEGO1/mxdirectx/mxdirect3d.cpp
|
||||||
|
LEGO1/mxdirectx/mxdirectdraw.cpp
|
||||||
|
)
|
||||||
|
register_lego1_target(mxdirectx)
|
||||||
|
set_property(TARGET mxdirectx PROPERTY ARCHIVE_OUTPUT_NAME "MxDirectX$<$<CONFIG:Debug>:d>")
|
||||||
|
target_include_directories(mxdirectx PRIVATE "${CMAKE_SOURCE_DIR}/LEGO1" "${CMAKE_SOURCE_DIR}/util")
|
||||||
|
target_link_libraries(mxdirectx PRIVATE ddraw)
|
||||||
|
|
||||||
|
add_library(roi STATIC
|
||||||
|
LEGO1/lego/sources/roi/legoroi.cpp
|
||||||
|
)
|
||||||
|
register_lego1_target(roi)
|
||||||
|
set_property(TARGET roi PROPERTY ARCHIVE_OUTPUT_NAME "roi$<$<CONFIG:Debug>:d>")
|
||||||
|
target_include_directories(roi PRIVATE "${CMAKE_SOURCE_DIR}/LEGO1" "${CMAKE_SOURCE_DIR}/util")
|
||||||
|
target_link_libraries(roi PRIVATE)
|
||||||
|
|
||||||
|
add_library(misc STATIC
|
||||||
|
LEGO1/lego/sources/misc/legoimage.cpp
|
||||||
|
LEGO1/lego/sources/misc/legostorage.cpp
|
||||||
|
LEGO1/lego/sources/misc/legotexture.cpp
|
||||||
|
LEGO1/lego/sources/misc/legotree.cpp
|
||||||
|
)
|
||||||
|
register_lego1_target(misc)
|
||||||
|
set_property(TARGET misc PROPERTY ARCHIVE_OUTPUT_NAME "misc$<$<CONFIG:Debug>:d>")
|
||||||
|
target_include_directories(misc PRIVATE "${CMAKE_SOURCE_DIR}/LEGO1/omni/include" "${CMAKE_SOURCE_DIR}/util")
|
||||||
|
target_link_libraries(misc PRIVATE)
|
||||||
|
|
||||||
|
add_library(3dmanager STATIC
|
||||||
|
LEGO1/lego/sources/3dmanager/lego3dmanager.cpp
|
||||||
|
LEGO1/lego/sources/3dmanager/lego3dview.cpp
|
||||||
|
LEGO1/lego/sources/3dmanager/legoview1.cpp
|
||||||
|
LEGO1/lego/sources/3dmanager/tglsurface.cpp
|
||||||
|
)
|
||||||
|
register_lego1_target(3dmanager)
|
||||||
|
set_property(TARGET 3dmanager PROPERTY ARCHIVE_OUTPUT_NAME "3dmanager$<$<CONFIG:Debug>:d>")
|
||||||
|
target_include_directories(3dmanager PRIVATE "${CMAKE_SOURCE_DIR}/LEGO1" "${CMAKE_SOURCE_DIR}/util")
|
||||||
|
target_link_libraries(3dmanager PRIVATE Vec::Vec)
|
||||||
|
|
||||||
|
add_library(omni STATIC
|
||||||
|
LEGO1/omni/src/action/mxdsaction.cpp
|
||||||
|
LEGO1/omni/src/action/mxdsanim.cpp
|
||||||
|
LEGO1/omni/src/action/mxdsevent.cpp
|
||||||
|
LEGO1/omni/src/action/mxdsmediaaction.cpp
|
||||||
|
LEGO1/omni/src/action/mxdsmultiaction.cpp
|
||||||
|
LEGO1/omni/src/action/mxdsobjectaction.cpp
|
||||||
|
LEGO1/omni/src/action/mxdsobject.cpp
|
||||||
|
LEGO1/omni/src/action/mxdsparallelaction.cpp
|
||||||
|
LEGO1/omni/src/action/mxdsselectaction.cpp
|
||||||
|
LEGO1/omni/src/action/mxdsserialaction.cpp
|
||||||
|
LEGO1/omni/src/action/mxdssound.cpp
|
||||||
|
LEGO1/omni/src/action/mxdsstill.cpp
|
||||||
|
LEGO1/omni/src/action/mxdsstreamingaction.cpp
|
||||||
|
LEGO1/omni/src/audio/mxaudiomanager.cpp
|
||||||
|
LEGO1/omni/src/audio/mxaudiopresenter.cpp
|
||||||
|
LEGO1/omni/src/audio/mxloopingmidipresenter.cpp
|
||||||
|
LEGO1/omni/src/audio/mxmidipresenter.cpp
|
||||||
|
LEGO1/omni/src/audio/mxmusicmanager.cpp
|
||||||
|
LEGO1/omni/src/audio/mxmusicpresenter.cpp
|
||||||
|
LEGO1/omni/src/audio/mxsoundmanager.cpp
|
||||||
|
LEGO1/omni/src/audio/mxsoundpresenter.cpp
|
||||||
|
LEGO1/omni/src/audio/mxwavepresenter.cpp
|
||||||
|
LEGO1/omni/src/common/mxatomidcounter.cpp
|
||||||
|
LEGO1/omni/src/common/mxatomid.cpp
|
||||||
|
LEGO1/omni/src/common/mxcompositepresenter.cpp
|
||||||
|
LEGO1/omni/src/common/mxcore.cpp
|
||||||
|
LEGO1/omni/src/common/mxmediamanager.cpp
|
||||||
|
LEGO1/omni/src/common/mxmediapresenter.cpp
|
||||||
|
LEGO1/omni/src/common/mxobjectfactory.cpp
|
||||||
|
LEGO1/omni/src/common/mxpresenter.cpp
|
||||||
|
LEGO1/omni/src/common/mxstring.cpp
|
||||||
|
LEGO1/omni/src/common/mxticklemanager.cpp
|
||||||
|
LEGO1/omni/src/common/mxtimer.cpp
|
||||||
|
LEGO1/omni/src/common/mxutil.cpp
|
||||||
|
LEGO1/omni/src/common/mxvariable.cpp
|
||||||
|
LEGO1/omni/src/common/mxvariabletable.cpp
|
||||||
|
LEGO1/omni/src/entity/mxentity.cpp
|
||||||
|
LEGO1/omni/src/event/mxeventmanager.cpp
|
||||||
|
LEGO1/omni/src/event/mxeventpresenter.cpp
|
||||||
|
LEGO1/omni/src/main/mxomni.cpp
|
||||||
|
LEGO1/omni/src/main/mxomnicreateflags.cpp
|
||||||
|
LEGO1/omni/src/main/mxomnicreateparam.cpp
|
||||||
|
LEGO1/omni/src/notify/mxactionnotificationparam.cpp
|
||||||
|
LEGO1/omni/src/notify/mxnotificationmanager.cpp
|
||||||
|
LEGO1/omni/src/notify/mxnotificationparam.cpp
|
||||||
|
LEGO1/omni/src/stream/mxdiskstreamcontroller.cpp
|
||||||
|
LEGO1/omni/src/stream/mxdiskstreamprovider.cpp
|
||||||
|
LEGO1/omni/src/stream/mxdsbuffer.cpp
|
||||||
|
LEGO1/omni/src/stream/mxdschunk.cpp
|
||||||
|
LEGO1/omni/src/stream/mxdsfile.cpp
|
||||||
|
LEGO1/omni/src/stream/mxdssource.cpp
|
||||||
|
LEGO1/omni/src/stream/mxdssubscriber.cpp
|
||||||
|
LEGO1/omni/src/stream/mxioinfo.cpp
|
||||||
|
LEGO1/omni/src/stream/mxramstreamcontroller.cpp
|
||||||
|
LEGO1/omni/src/stream/mxramstreamprovider.cpp
|
||||||
|
LEGO1/omni/src/stream/mxstreamchunk.cpp
|
||||||
|
LEGO1/omni/src/stream/mxstreamcontroller.cpp
|
||||||
|
LEGO1/omni/src/stream/mxstreamer.cpp
|
||||||
|
LEGO1/omni/src/stream/mxstreamlist.cpp
|
||||||
|
LEGO1/omni/src/stream/mxstreamprovider.cpp
|
||||||
|
LEGO1/omni/src/system/mxautolocker.cpp
|
||||||
|
LEGO1/omni/src/system/mxcriticalsection.cpp
|
||||||
|
LEGO1/omni/src/system/mxscheduler.cpp
|
||||||
|
LEGO1/omni/src/system/mxsemaphore.cpp
|
||||||
|
LEGO1/omni/src/system/mxthread.cpp
|
||||||
|
LEGO1/omni/src/video/mxbitmap.cpp
|
||||||
|
LEGO1/omni/src/video/mxdisplaysurface.cpp
|
||||||
|
LEGO1/omni/src/video/mxflcpresenter.cpp
|
||||||
|
LEGO1/omni/src/video/mxloopingflcpresenter.cpp
|
||||||
|
LEGO1/omni/src/video/mxloopingsmkpresenter.cpp
|
||||||
|
LEGO1/omni/src/video/mxpalette.cpp
|
||||||
|
LEGO1/omni/src/video/mxregion.cpp
|
||||||
|
LEGO1/omni/src/video/mxregioncursor.cpp
|
||||||
|
LEGO1/omni/src/video/mxsmack.cpp
|
||||||
|
LEGO1/omni/src/video/mxsmkpresenter.cpp
|
||||||
|
LEGO1/omni/src/video/mxstillpresenter.cpp
|
||||||
|
LEGO1/omni/src/video/mxvideomanager.cpp
|
||||||
|
LEGO1/omni/src/video/mxvideoparam.cpp
|
||||||
|
LEGO1/omni/src/video/mxvideoparamflags.cpp
|
||||||
|
LEGO1/omni/src/video/mxvideopresenter.cpp
|
||||||
|
)
|
||||||
|
register_lego1_target(omni)
|
||||||
|
set_property(TARGET omni PROPERTY ARCHIVE_OUTPUT_NAME "omni$<$<CONFIG:Debug>:d>")
|
||||||
|
target_include_directories(omni PRIVATE "${CMAKE_SOURCE_DIR}/LEGO1/omni/include" "${CMAKE_SOURCE_DIR}/LEGO1" "${CMAKE_SOURCE_DIR}/util")
|
||||||
|
target_link_libraries(omni PRIVATE dsound winmm FLIC::FLIC Smacker::Smacker)
|
||||||
|
|
||||||
|
add_library(lego1 SHARED
|
||||||
|
LEGO1/define.cpp
|
||||||
|
LEGO1/lego/legoomni/src/act1/act1state.cpp
|
||||||
|
LEGO1/lego/legoomni/src/act2/act2brick.cpp
|
||||||
|
LEGO1/lego/legoomni/src/act2/act2policestation.cpp
|
||||||
|
LEGO1/lego/legoomni/src/act2/legoact2.cpp
|
||||||
|
LEGO1/lego/legoomni/src/act2/legoact2state.cpp
|
||||||
|
LEGO1/lego/legoomni/src/act3/act3.cpp
|
||||||
|
LEGO1/lego/legoomni/src/act3/act3shark.cpp
|
||||||
|
LEGO1/lego/legoomni/src/act3/act3state.cpp
|
||||||
|
LEGO1/lego/legoomni/src/audio/lego3dwavepresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/audio/legocachesound.cpp
|
||||||
|
LEGO1/lego/legoomni/src/audio/legoloadcachesoundpresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/audio/legosoundmanager.cpp
|
||||||
|
LEGO1/lego/legoomni/src/audio/legounknown100d6b4c.cpp
|
||||||
|
LEGO1/lego/legoomni/src/audio/mxbackgroundaudiomanager.cpp
|
||||||
|
LEGO1/lego/legoomni/src/build/buildingentity.cpp
|
||||||
|
LEGO1/lego/legoomni/src/build/dunebuggy.cpp
|
||||||
|
LEGO1/lego/legoomni/src/build/helicopter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/build/helicopterstate.cpp
|
||||||
|
LEGO1/lego/legoomni/src/build/jetski.cpp
|
||||||
|
LEGO1/lego/legoomni/src/build/legobuildingmanager.cpp
|
||||||
|
LEGO1/lego/legoomni/src/build/legocarbuild.cpp
|
||||||
|
LEGO1/lego/legoomni/src/build/legovehiclebuildstate.cpp
|
||||||
|
LEGO1/lego/legoomni/src/build/racecar.cpp
|
||||||
|
LEGO1/lego/legoomni/src/common/animstate.cpp
|
||||||
|
LEGO1/lego/legoomni/src/common/gifmanager.cpp
|
||||||
|
LEGO1/lego/legoomni/src/common/legoactioncontrolpresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/common/legobackgroundcolor.cpp
|
||||||
|
LEGO1/lego/legoomni/src/common/legofullscreenmovie.cpp
|
||||||
|
LEGO1/lego/legoomni/src/common/legogamestate.cpp
|
||||||
|
LEGO1/lego/legoomni/src/common/legoobjectfactory.cpp
|
||||||
|
LEGO1/lego/legoomni/src/common/legoplantmanager.cpp
|
||||||
|
LEGO1/lego/legoomni/src/common/legostate.cpp
|
||||||
|
LEGO1/lego/legoomni/src/common/legounksavedatawriter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/common/legoutil.cpp
|
||||||
|
LEGO1/lego/legoomni/src/common/mxcompositemediapresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/control/legocontrolmanager.cpp
|
||||||
|
LEGO1/lego/legoomni/src/control/mxcontrolpresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/entity/legoactor.cpp
|
||||||
|
LEGO1/lego/legoomni/src/entity/legoactorpresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/entity/legoanimactor.cpp
|
||||||
|
LEGO1/lego/legoomni/src/entity/legocameracontroller.cpp
|
||||||
|
LEGO1/lego/legoomni/src/entity/legocarraceactor.cpp
|
||||||
|
LEGO1/lego/legoomni/src/entity/legoentity.cpp
|
||||||
|
LEGO1/lego/legoomni/src/entity/legoentitypresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/entity/legojetski.cpp
|
||||||
|
LEGO1/lego/legoomni/src/entity/legojetskiraceactor.cpp
|
||||||
|
LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp
|
||||||
|
LEGO1/lego/legoomni/src/entity/legopathactor.cpp
|
||||||
|
LEGO1/lego/legoomni/src/entity/legopovcontroller.cpp
|
||||||
|
LEGO1/lego/legoomni/src/entity/legorace.cpp
|
||||||
|
LEGO1/lego/legoomni/src/entity/legoraceactor.cpp
|
||||||
|
LEGO1/lego/legoomni/src/entity/legoracecar.cpp
|
||||||
|
LEGO1/lego/legoomni/src/entity/legoworld.cpp
|
||||||
|
LEGO1/lego/legoomni/src/entity/legoworldpresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/gasstation/gasstation.cpp
|
||||||
|
LEGO1/lego/legoomni/src/gasstation/gasstationentity.cpp
|
||||||
|
LEGO1/lego/legoomni/src/gasstation/gasstationstate.cpp
|
||||||
|
LEGO1/lego/legoomni/src/hospital/ambulance.cpp
|
||||||
|
LEGO1/lego/legoomni/src/hospital/ambulancemissionstate.cpp
|
||||||
|
LEGO1/lego/legoomni/src/hospital/hospital.cpp
|
||||||
|
LEGO1/lego/legoomni/src/hospital/hospitalentity.cpp
|
||||||
|
LEGO1/lego/legoomni/src/hospital/hospitalstate.cpp
|
||||||
|
LEGO1/lego/legoomni/src/infocenter/elevatorbottom.cpp
|
||||||
|
LEGO1/lego/legoomni/src/infocenter/infocenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/infocenter/infocenterdoor.cpp
|
||||||
|
LEGO1/lego/legoomni/src/infocenter/infocenterentity.cpp
|
||||||
|
LEGO1/lego/legoomni/src/infocenter/infocenterstate.cpp
|
||||||
|
LEGO1/lego/legoomni/src/infocenter/registrationbook.cpp
|
||||||
|
LEGO1/lego/legoomni/src/infocenter/score.cpp
|
||||||
|
LEGO1/lego/legoomni/src/infocenter/scorestate.cpp
|
||||||
|
LEGO1/lego/legoomni/src/input/legoinputmanager.cpp
|
||||||
|
LEGO1/lego/legoomni/src/isle/beachhouseentity.cpp
|
||||||
|
LEGO1/lego/legoomni/src/isle/bike.cpp
|
||||||
|
LEGO1/lego/legoomni/src/isle/bumpbouy.cpp
|
||||||
|
LEGO1/lego/legoomni/src/isle/doors.cpp
|
||||||
|
LEGO1/lego/legoomni/src/isle/historybook.cpp
|
||||||
|
LEGO1/lego/legoomni/src/isle/isleactor.cpp
|
||||||
|
LEGO1/lego/legoomni/src/isle/isle.cpp
|
||||||
|
LEGO1/lego/legoomni/src/isle/islepathactor.cpp
|
||||||
|
LEGO1/lego/legoomni/src/isle/jukebox.cpp
|
||||||
|
LEGO1/lego/legoomni/src/isle/jukeboxentity.cpp
|
||||||
|
LEGO1/lego/legoomni/src/isle/jukeboxstate.cpp
|
||||||
|
LEGO1/lego/legoomni/src/isle/motocycle.cpp
|
||||||
|
LEGO1/lego/legoomni/src/isle/radio.cpp
|
||||||
|
LEGO1/lego/legoomni/src/isle/radiostate.cpp
|
||||||
|
LEGO1/lego/legoomni/src/isle/skateboard.cpp
|
||||||
|
LEGO1/lego/legoomni/src/main/legoomni.cpp
|
||||||
|
LEGO1/lego/legoomni/src/notify/legoeventnotificationparam.cpp
|
||||||
|
LEGO1/lego/legoomni/src/paths/legopathcontroller.cpp
|
||||||
|
LEGO1/lego/legoomni/src/paths/legopathpresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/pizzeria/pizza.cpp
|
||||||
|
LEGO1/lego/legoomni/src/pizzeria/pizzamissionstate.cpp
|
||||||
|
LEGO1/lego/legoomni/src/pizzeria/pizzeria.cpp
|
||||||
|
LEGO1/lego/legoomni/src/pizzeria/pizzeriastate.cpp
|
||||||
|
LEGO1/lego/legoomni/src/police/police.cpp
|
||||||
|
LEGO1/lego/legoomni/src/police/policeentity.cpp
|
||||||
|
LEGO1/lego/legoomni/src/police/policestate.cpp
|
||||||
|
LEGO1/lego/legoomni/src/race/carrace.cpp
|
||||||
|
LEGO1/lego/legoomni/src/race/jetskirace.cpp
|
||||||
|
LEGO1/lego/legoomni/src/race/racestandsentity.cpp
|
||||||
|
LEGO1/lego/legoomni/src/race/racestate.cpp
|
||||||
|
LEGO1/lego/legoomni/src/towtrack/towtrack.cpp
|
||||||
|
LEGO1/lego/legoomni/src/towtrack/towtrackmissionstate.cpp
|
||||||
|
LEGO1/lego/legoomni/src/unknown/legounknown100d7c88.cpp
|
||||||
|
LEGO1/lego/legoomni/src/video/legoanimationmanager.cpp
|
||||||
|
LEGO1/lego/legoomni/src/video/legoanimmmpresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/video/legocarbuildanimpresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/video/legoflctexturepresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/video/legohideanimpresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/video/legolocomotionanimpresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/video/legoloopinganimpresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/video/legometerpresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/video/legomodelpresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/video/legopalettepresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/video/legopartpresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/video/legophonemepresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/video/legotexturepresenter.cpp
|
||||||
|
LEGO1/lego/legoomni/src/video/legovideomanager.cpp
|
||||||
|
LEGO1/lego/legoomni/src/video/mxtransitionmanager.cpp
|
||||||
|
LEGO1/main.cpp
|
||||||
|
)
|
||||||
|
register_lego1_target(lego1)
|
||||||
|
|
||||||
if (MINGW)
|
if (MINGW)
|
||||||
target_compile_definitions(lego1 PRIVATE DIRECTINPUT_VERSION=0x0500)
|
target_compile_definitions(lego1 PRIVATE DIRECTINPUT_VERSION=0x0500)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Additional include directories
|
if (MSVC)
|
||||||
target_include_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/util")
|
target_sources(lego1 PRIVATE LEGO1/LegoOmni.def)
|
||||||
target_include_directories(lego1 PUBLIC "${CMAKE_SOURCE_DIR}/3rdparty/vec")
|
else()
|
||||||
target_include_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/flic")
|
target_sources(lego1 PRIVATE LEGO1/LegoOmni.mingw.def)
|
||||||
target_include_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/smack")
|
|
||||||
|
|
||||||
if (ISLE_USE_SMARTHEAP)
|
|
||||||
add_library(SmartHeap::SmartHeap STATIC IMPORTED)
|
|
||||||
set_target_properties(SmartHeap::SmartHeap PROPERTIES
|
|
||||||
IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/3rdparty/smartheap/SHLW32MT.LIB"
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/3rdparty/smartheap"
|
|
||||||
INTERFACE_COMPILE_OPTIONS "/FI${CMAKE_SOURCE_DIR}/3rdparty/smartheap/SMRTHEAP.HPP")
|
|
||||||
|
|
||||||
target_link_libraries(lego1 PRIVATE SmartHeap::SmartHeap)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Use internal DirectX 5 if required
|
target_include_directories(lego1 PUBLIC "${CMAKE_SOURCE_DIR}/util")
|
||||||
if (ISLE_USE_DX5)
|
target_include_directories(lego1 PUBLIC "${CMAKE_SOURCE_DIR}/LEGO1")
|
||||||
target_include_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/dx5/inc")
|
target_include_directories(lego1 PUBLIC "${CMAKE_SOURCE_DIR}/LEGO1/omni/include")
|
||||||
target_link_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/dx5/lib")
|
target_include_directories(lego1 PUBLIC "${CMAKE_SOURCE_DIR}/LEGO1/lego/sources")
|
||||||
endif()
|
target_include_directories(lego1 PUBLIC "${CMAKE_SOURCE_DIR}/LEGO1/lego/legoomni/include")
|
||||||
|
|
||||||
target_link_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/smack")
|
|
||||||
|
|
||||||
# Link libraries
|
# Link libraries
|
||||||
target_link_libraries(lego1 PRIVATE ddraw dsound dxguid dinput winmm d3drm smack)
|
target_link_libraries(lego1 PRIVATE tglrl viewmanager realtime mxdirectx roi FLIC::FLIC Vec::Vec dinput dxguid misc 3dmanager omni)
|
||||||
|
|
||||||
|
if (ISLE_USE_SMARTHEAP)
|
||||||
|
foreach(tgt IN LISTS lego1_targets)
|
||||||
|
target_link_libraries(${tgt} PRIVATE SmartHeap::SmartHeap)
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
foreach(tgt IN LISTS lego1_targets)
|
||||||
|
target_link_libraries(${tgt} PRIVATE $<$<BOOL:${ISLE_USE_DX5}>:DirectX5::DirectX5>)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
# Make sure filenames are ALL CAPS
|
# Make sure filenames are ALL CAPS
|
||||||
set_property(TARGET lego1 PROPERTY OUTPUT_NAME LEGO1)
|
set_property(TARGET lego1 PROPERTY OUTPUT_NAME LEGO1)
|
||||||
|
set_property(TARGET lego1 PROPERTY PREFIX "")
|
||||||
set_property(TARGET lego1 PROPERTY SUFFIX ".DLL")
|
set_property(TARGET lego1 PROPERTY SUFFIX ".DLL")
|
||||||
|
|
||||||
if (ISLE_BUILD_APP)
|
if (ISLE_BUILD_APP)
|
||||||
@ -264,16 +418,8 @@ if (ISLE_BUILD_APP)
|
|||||||
ISLE/define.cpp
|
ISLE/define.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(isle PRIVATE "${CMAKE_SOURCE_DIR}/util")
|
|
||||||
|
|
||||||
# Include LEGO1 headers in ISLE
|
|
||||||
target_include_directories(isle PRIVATE "${CMAKE_SOURCE_DIR}/LEGO1")
|
|
||||||
|
|
||||||
# Use internal DirectX 5 if required
|
# Use internal DirectX 5 if required
|
||||||
if (ISLE_USE_DX5)
|
target_link_libraries(isle PRIVATE $<$<BOOL:${ISLE_USE_DX5}>:DirectX5::DirectX5>)
|
||||||
target_include_directories(isle PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/dx5/inc")
|
|
||||||
target_link_directories(isle PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/dx5/lib")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (ISLE_USE_SMARTHEAP)
|
if (ISLE_USE_SMARTHEAP)
|
||||||
target_link_libraries(isle PRIVATE SmartHeap::SmartHeap)
|
target_link_libraries(isle PRIVATE SmartHeap::SmartHeap)
|
||||||
@ -288,13 +434,45 @@ if (ISLE_BUILD_APP)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
|
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "15")
|
||||||
|
foreach(tgt IN LISTS lego1_targets)
|
||||||
|
target_compile_definitions(${tgt} PRIVATE _CRT_SECURE_NO_WARNINGS)
|
||||||
|
endforeach()
|
||||||
|
if (TARGET isle)
|
||||||
|
target_compile_definitions(isle PRIVATE "_CRT_SECURE_NO_WARNINGS")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
# Visual Studio 2017 version 15.7 needs "/Zc:__cplusplus" for __cplusplus
|
||||||
|
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "19.14.26428")
|
||||||
|
foreach(tgt IN LISTS lego1_targets)
|
||||||
|
target_compile_options(${tgt} PRIVATE "-Zc:__cplusplus")
|
||||||
|
endforeach()
|
||||||
|
if (TARGET isle)
|
||||||
|
target_compile_options(isle PRIVATE "-Zc:__cplusplus")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (MSVC_FOR_DECOMP)
|
||||||
|
target_compile_definitions(lego1 PRIVATE "ENABLE_DECOMP_ASSERTS")
|
||||||
|
if (ISLE_BUILD_APP)
|
||||||
|
target_compile_definitions(isle PRIVATE "ENABLE_DECOMP_ASSERTS")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (MSVC_FOR_DECOMP)
|
||||||
# These flags have been taken from the defaults for a Visual C++ 4.20 project (the compiler the
|
# These flags have been taken from the defaults for a Visual C++ 4.20 project (the compiler the
|
||||||
# game was originally built with) and tweaked slightly to produce more debugging info for reccmp.
|
# game was originally built with) and tweaked slightly to produce more debugging info for reccmp.
|
||||||
# They ensure a recompilation that can be byte/instruction accurate to the original binaries.
|
# They ensure a recompilation that can be byte/instruction accurate to the original binaries.
|
||||||
if (ISLE_BUILD_APP)
|
if (ISLE_BUILD_APP)
|
||||||
target_compile_options(isle PRIVATE "/ML$<$<CONFIG:Debug>:d>")
|
target_compile_options(isle PRIVATE "/MT$<$<CONFIG:Debug>:d>")
|
||||||
|
target_link_options(isle PRIVATE "/OPT:REF")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_compile_options(lego1 PRIVATE "/MT$<$<CONFIG:Debug>:d>")
|
target_compile_options(lego1 PRIVATE "/MT$<$<CONFIG:Debug>:d>")
|
||||||
|
foreach(tgt IN LISTS lego1_targets)
|
||||||
|
target_compile_options(${tgt} PRIVATE "/MT$<$<CONFIG:Debug>:d>")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
set(CMAKE_CXX_FLAGS "/W3 /GX /D \"WIN32\" /D \"_WINDOWS\"")
|
set(CMAKE_CXX_FLAGS "/W3 /GX /D \"WIN32\" /D \"_WINDOWS\"")
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "/Gm /Zi /Od /D \"_DEBUG\"")
|
set(CMAKE_CXX_FLAGS_DEBUG "/Gm /Zi /Od /D \"_DEBUG\"")
|
||||||
@ -308,9 +486,50 @@ if (MSVC)
|
|||||||
set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "/incremental:no /debug")
|
set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "/incremental:no /debug")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "/incremental:no")
|
set(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "/incremental:no")
|
||||||
|
|
||||||
|
set(CMAKE_STATIC_LINKER_FLAGS "/machine:I386")
|
||||||
|
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS "/machine:I386")
|
set(CMAKE_SHARED_LINKER_FLAGS "/machine:I386")
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "/incremental:yes /debug")
|
set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "/incremental:yes /debug")
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "/incremental:no")
|
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "/incremental:no")
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "/incremental:no /debug")
|
set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "/incremental:no /debug")
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "/incremental:no")
|
set(CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "/incremental:no")
|
||||||
|
|
||||||
|
# Older MSVC versions don't support building in parallel.
|
||||||
|
# Force non-parallel builds of isle and lego1 by putting them in a pool with 1 available job.
|
||||||
|
if (CMAKE_CXX_COMPILER_ID VERSION_LESS 12)
|
||||||
|
foreach(tgt IN LISTS lego1_taregets)
|
||||||
|
set_property(GLOBAL APPEND PROPERTY JOB_POOLS "msvc_${tgt}=1;msvc_lego1=1")
|
||||||
|
set_property(TARGET ${tgt} PROPERTY JOB_POOL_COMPILE msvc_${tgt})
|
||||||
|
set_property(TARGET ${tgt} PROPERTY JOB_POOL_LINK msvc_${tgt})
|
||||||
|
endforeach()
|
||||||
|
if (TARGET isle)
|
||||||
|
set_property(GLOBAL APPEND PROPERTY JOB_POOLS "msvc_isle=1")
|
||||||
|
set_property(TARGET isle PROPERTY JOB_POOL_COMPILE msvc_isle)
|
||||||
|
set_property(TARGET isle PROPERTY JOB_POOL_LINK msvc_isle)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_program(CLANGFORMAT_BIN NAMES clang-format)
|
||||||
|
if(EXISTS "${CLANGFORMAT_BIN}")
|
||||||
|
execute_process(COMMAND "${CLANGFORMAT_BIN}" --version
|
||||||
|
OUTPUT_VARIABLE "CLANGFORMAT_VERSION_OUTPUT"
|
||||||
|
RESULT_VARIABLE "CLANGFORMAT_RESULT"
|
||||||
|
)
|
||||||
|
if(CLANGFORMAT_RESULT EQUAL 0 AND CLANGFORMAT_VERSION_OUTPUT MATCHES "version ([0-9\\.]+)")
|
||||||
|
set(CLANGFORMAT_VERSION "${CMAKE_MATCH_1}")
|
||||||
|
set(CLANGFORMAT_VERSION_REQUIRED "17.0")
|
||||||
|
message(DEBUG "Found clang-format version ${CLANGFORMAT_VERSION} (needs ${CLANGFORMAT_VERSION_REQUIRED}")
|
||||||
|
if(CLANGFORMAT_VERSION VERSION_GREATER_EQUAL "${CLANGFORMAT_VERSION_REQUIRED}")
|
||||||
|
file(GLOB_RECURSE isle_sources
|
||||||
|
"${PROJECT_SOURCE_DIR}/ISLE/*.cpp"
|
||||||
|
"${PROJECT_SOURCE_DIR}/ISLE/*.h"
|
||||||
|
"${PROJECT_SOURCE_DIR}/LEGO1/*.cpp"
|
||||||
|
"${PROJECT_SOURCE_DIR}/LEGO1/*.h"
|
||||||
|
)
|
||||||
|
string(REPLACE ";" "\n" isle_sources_lines "${isle_sources}")
|
||||||
|
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/isle_sources.txt" "${isle_sources_lines}\n")
|
||||||
|
add_custom_target(clang-format ${CLANGFORMAT_BIN} -i "--files=${CMAKE_CURRENT_BINARY_DIR}/isle_sources.txt")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@ -1,8 +1,10 @@
|
|||||||
# Contributing
|
# Contributing
|
||||||
|
|
||||||
## Learning Decompilation
|
## Important Note
|
||||||
|
|
||||||
Generally, decompilation is a fairly advanced skill. If you aren't already familiar with it, it will likely take you months, or even years, to learn the skills necessary to do it (depending on your current proficiency with C/C++ and x86 assembly). If you're still interested, [part 1 of the decompilation vlog](https://www.youtube.com/watch?v=MToTEqoVv3I) covers the overall process and should give you a starting point that you can dive in from.
|
While we're thrilled that there is so much interest in reverse engineering LEGO Island and are happy to accept contributions from anyone who would like to help progress us further to our goal of a complete codebase, proposed changes to this repository must adhere to a certain degree of engineering quality. While the established contributors here are more than happy to provide code reviews and constructive criticism, it is not their job to teach potential contributors C++ or decompilation fundamentals. As a project that is largely an artifact of the free time of its contributors, the more of that (often scarce) resource that can be dedicated to efficient work, the faster the decompilation will progress. Unfortunately, this results in well-intentioned but poorly constructed contributions actually hurting progress in the long-term. While we are greatly appreciative of the sentiment, if you aren't very confident in your decompilation abilities, it is generally in the project's best interest that you return when you have a better grasp over the process.
|
||||||
|
|
||||||
|
Generally, decompilation is a fairly advanced skill. Depending on your current proficiency with C/C++ and x86 assembly, it could take you months or even years to learn the skills necessary to do it adequately. If you're still interested in learning, [part 1 of the decompilation vlog](https://www.youtube.com/watch?v=MToTEqoVv3I) covers the overall process and should give you a starting point that you can dive in from. Once again, please make yourself familiar with this process before attempting to contribute code to this project.
|
||||||
|
|
||||||
## Ghidra Server
|
## Ghidra Server
|
||||||
|
|
||||||
@ -15,7 +17,7 @@ To access the Ghidra repository, use the following details:
|
|||||||
|
|
||||||
## General Guidelines
|
## General Guidelines
|
||||||
|
|
||||||
If you have contributions, feel free to create a pull request! Someone will review and merge it (or provide feedback) as soon as possible.
|
If you feel fit to contribute, feel free to create a pull request! Someone will review and merge it (or provide feedback) as soon as possible.
|
||||||
|
|
||||||
Please keep your pull requests small and understandable; you may be able to shoot ahead and make a lot of progress in a short amount of time, but this is a collaborative project, so you must allow others to catch up and follow along. Large pull requests become significantly more unwieldy to review, and as such make it exponentially more likely for a mistake or error to go undetected. They also make it harder to merge other pull requests because the more files you modify, the more likely it is for a merge conflict to occur. A general guideline is to keep submissions limited to one class at a time. Sometimes two or more classes may be too interlinked for this to be feasible, so this is not a hard rule, however if your PR is starting to modify more than 10 or so files, it's probably getting too big.
|
Please keep your pull requests small and understandable; you may be able to shoot ahead and make a lot of progress in a short amount of time, but this is a collaborative project, so you must allow others to catch up and follow along. Large pull requests become significantly more unwieldy to review, and as such make it exponentially more likely for a mistake or error to go undetected. They also make it harder to merge other pull requests because the more files you modify, the more likely it is for a merge conflict to occur. A general guideline is to keep submissions limited to one class at a time. Sometimes two or more classes may be too interlinked for this to be feasible, so this is not a hard rule, however if your PR is starting to modify more than 10 or so files, it's probably getting too big.
|
||||||
|
|
||||||
|
|||||||
@ -8,9 +8,9 @@ class IsleApp;
|
|||||||
|
|
||||||
extern IsleApp* g_isle;
|
extern IsleApp* g_isle;
|
||||||
extern int g_closed;
|
extern int g_closed;
|
||||||
// GLOBAL: ISLE 0x4101c4
|
// STRING: ISLE 0x4101c4
|
||||||
#define WNDCLASS_NAME "Lego Island MainNoM App"
|
#define WNDCLASS_NAME "Lego Island MainNoM App"
|
||||||
// GLOBAL: ISLE 0x4101dc
|
// STRING: ISLE 0x4101dc
|
||||||
#define WINDOW_TITLE "LEGO\xAE"
|
#define WINDOW_TITLE "LEGO\xAE"
|
||||||
extern unsigned char g_mousedown;
|
extern unsigned char g_mousedown;
|
||||||
extern unsigned char g_mousemoved;
|
extern unsigned char g_mousemoved;
|
||||||
|
|||||||
@ -8,11 +8,9 @@
|
|||||||
#include "legomodelpresenter.h"
|
#include "legomodelpresenter.h"
|
||||||
#include "legoomni.h"
|
#include "legoomni.h"
|
||||||
#include "legopartpresenter.h"
|
#include "legopartpresenter.h"
|
||||||
#include "legoroi.h"
|
|
||||||
#include "legovideomanager.h"
|
#include "legovideomanager.h"
|
||||||
#include "legoworldpresenter.h"
|
#include "legoworldpresenter.h"
|
||||||
#include "mxbackgroundaudiomanager.h"
|
#include "mxbackgroundaudiomanager.h"
|
||||||
#include "mxdirectdraw.h"
|
|
||||||
#include "mxdsaction.h"
|
#include "mxdsaction.h"
|
||||||
#include "mxomnicreateflags.h"
|
#include "mxomnicreateflags.h"
|
||||||
#include "mxomnicreateparam.h"
|
#include "mxomnicreateparam.h"
|
||||||
@ -21,6 +19,7 @@
|
|||||||
#include "mxtimer.h"
|
#include "mxtimer.h"
|
||||||
#include "mxtransitionmanager.h"
|
#include "mxtransitionmanager.h"
|
||||||
#include "res/resource.h"
|
#include "res/resource.h"
|
||||||
|
#include "viewmanager/viewmanager.h"
|
||||||
|
|
||||||
#include <dsound.h>
|
#include <dsound.h>
|
||||||
|
|
||||||
@ -53,7 +52,15 @@ IsleApp::IsleApp()
|
|||||||
m_frameDelta = 10;
|
m_frameDelta = 10;
|
||||||
m_windowActive = 1;
|
m_windowActive = 1;
|
||||||
|
|
||||||
|
#ifdef COMPAT_MODE
|
||||||
|
{
|
||||||
|
MxRect32 r(0, 0, 639, 479);
|
||||||
|
MxVideoParamFlags flags;
|
||||||
|
m_videoParam = MxVideoParam(r, NULL, 1, flags);
|
||||||
|
}
|
||||||
|
#else
|
||||||
m_videoParam = MxVideoParam(MxRect32(0, 0, 639, 479), NULL, 1, MxVideoParamFlags());
|
m_videoParam = MxVideoParam(MxRect32(0, 0, 639, 479), NULL, 1, MxVideoParamFlags());
|
||||||
|
#endif
|
||||||
m_videoParam.Flags().Set16Bit(MxDirectDraw::GetPrimaryBitDepth() == 16);
|
m_videoParam.Flags().Set16Bit(MxDirectDraw::GetPrimaryBitDepth() == 16);
|
||||||
|
|
||||||
m_windowHandle = NULL;
|
m_windowHandle = NULL;
|
||||||
@ -132,9 +139,18 @@ BOOL IsleApp::SetupLegoOmni()
|
|||||||
char mediaPath[256];
|
char mediaPath[256];
|
||||||
GetProfileStringA("LEGO Island", "MediaPath", "", mediaPath, sizeof(mediaPath));
|
GetProfileStringA("LEGO Island", "MediaPath", "", mediaPath, sizeof(mediaPath));
|
||||||
|
|
||||||
|
#ifdef COMPAT_MODE
|
||||||
|
BOOL failure;
|
||||||
|
{
|
||||||
|
MxOmniCreateParam param(mediaPath, (struct HWND__*) m_windowHandle, m_videoParam, MxOmniCreateFlags());
|
||||||
|
failure = Lego()->Create(param) == FAILURE;
|
||||||
|
}
|
||||||
|
#else
|
||||||
BOOL failure =
|
BOOL failure =
|
||||||
Lego()->Create(MxOmniCreateParam(mediaPath, (struct HWND__*) m_windowHandle, m_videoParam, MxOmniCreateFlags())
|
Lego()->Create(MxOmniCreateParam(mediaPath, (struct HWND__*) m_windowHandle, m_videoParam, MxOmniCreateFlags())
|
||||||
) == FAILURE;
|
) == FAILURE;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!failure) {
|
if (!failure) {
|
||||||
VariableTable()->SetVariable("ACTOR_01", "");
|
VariableTable()->SetVariable("ACTOR_01", "");
|
||||||
TickleManager()->SetClientTickleInterval(VideoManager(), 10);
|
TickleManager()->SetClientTickleInterval(VideoManager(), 10);
|
||||||
@ -388,7 +404,7 @@ LRESULT WINAPI WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||||||
return DefWindowProcA(hWnd, uMsg, wParam, lParam);
|
return DefWindowProcA(hWnd, uMsg, wParam, lParam);
|
||||||
case WM_DISPLAYCHANGE:
|
case WM_DISPLAYCHANGE:
|
||||||
if (g_isle && VideoManager() && g_isle->m_fullScreen && VideoManager()->GetDirect3D()) {
|
if (g_isle && VideoManager() && g_isle->m_fullScreen && VideoManager()->GetDirect3D()) {
|
||||||
if (VideoManager()->GetDirect3D()->GetDeviceModeFinder()) {
|
if (VideoManager()->GetDirect3D()->GetAssignedDevice()) {
|
||||||
int targetDepth = wParam;
|
int targetDepth = wParam;
|
||||||
int targetWidth = LOWORD(lParam);
|
int targetWidth = LOWORD(lParam);
|
||||||
int targetHeight = HIWORD(lParam);
|
int targetHeight = HIWORD(lParam);
|
||||||
@ -606,8 +622,8 @@ MxResult IsleApp::SetupWindow(HINSTANCE hInstance, LPSTR lpCmdLine)
|
|||||||
LegoAnimationManager::configureLegoAnimationManager(m_islandQuality);
|
LegoAnimationManager::configureLegoAnimationManager(m_islandQuality);
|
||||||
if (LegoOmni::GetInstance()) {
|
if (LegoOmni::GetInstance()) {
|
||||||
if (LegoOmni::GetInstance()->GetInputManager()) {
|
if (LegoOmni::GetInstance()->GetInputManager()) {
|
||||||
LegoOmni::GetInstance()->GetInputManager()->m_useJoystick = m_useJoystick;
|
LegoOmni::GetInstance()->GetInputManager()->SetUseJoystick(m_useJoystick);
|
||||||
LegoOmni::GetInstance()->GetInputManager()->m_joystickIndex = m_joystickIndex;
|
LegoOmni::GetInstance()->GetInputManager()->SetJoystickIndex(m_joystickIndex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (m_fullScreen) {
|
if (m_fullScreen) {
|
||||||
@ -754,12 +770,15 @@ inline void IsleApp::Tick(BOOL sleepIfNotNextFrame)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Lego())
|
if (!Lego()) {
|
||||||
return;
|
return;
|
||||||
if (!TickleManager())
|
}
|
||||||
|
if (!TickleManager()) {
|
||||||
return;
|
return;
|
||||||
if (!Timer())
|
}
|
||||||
|
if (!Timer()) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
MxLong currentTime = Timer()->GetRealTime();
|
MxLong currentTime = Timer()->GetRealTime();
|
||||||
if (currentTime < g_lastFrameTime) {
|
if (currentTime < g_lastFrameTime) {
|
||||||
@ -784,11 +803,11 @@ inline void IsleApp::Tick(BOOL sleepIfNotNextFrame)
|
|||||||
LegoOmni::GetInstance()->CreateBackgroundAudio();
|
LegoOmni::GetInstance()->CreateBackgroundAudio();
|
||||||
BackgroundAudioManager()->Enable(this->m_useMusic);
|
BackgroundAudioManager()->Enable(this->m_useMusic);
|
||||||
|
|
||||||
MxStreamController* stream = Streamer()->Open("\\lego\\scripts\\isle\\isle", MxStreamer::e_DiskStream);
|
MxStreamController* stream = Streamer()->Open("\\lego\\scripts\\isle\\isle", MxStreamer::e_diskStream);
|
||||||
MxDSAction ds;
|
MxDSAction ds;
|
||||||
|
|
||||||
if (!stream) {
|
if (!stream) {
|
||||||
stream = Streamer()->Open("\\lego\\scripts\\nocd", MxStreamer::e_DiskStream);
|
stream = Streamer()->Open("\\lego\\scripts\\nocd", MxStreamer::e_diskStream);
|
||||||
if (!stream) {
|
if (!stream) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -812,8 +831,9 @@ inline void IsleApp::Tick(BOOL sleepIfNotNextFrame)
|
|||||||
this->m_gameStarted = 1;
|
this->m_gameStarted = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (sleepIfNotNextFrame != 0)
|
else if (sleepIfNotNextFrame != 0) {
|
||||||
Sleep(0);
|
Sleep(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: ISLE 0x402e80
|
// FUNCTION: ISLE 0x402e80
|
||||||
|
|||||||
63
ISLE/library_msvc.h
Normal file
63
ISLE/library_msvc.h
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
#ifdef 0
|
||||||
|
// For ISLE symbols only
|
||||||
|
|
||||||
|
// aka `operator new`
|
||||||
|
// LIBRARY: ISLE 0x402f80
|
||||||
|
// ??2@YAPAXI@Z
|
||||||
|
|
||||||
|
// aka `operator delete`
|
||||||
|
// LIBRARY: ISLE 0x402fa0
|
||||||
|
// ??3@YAXPAX@Z
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x406dd0
|
||||||
|
// _malloc
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x406f00
|
||||||
|
// _free
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x407ec0
|
||||||
|
// ___CxxFrameHandler
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x4081e0
|
||||||
|
// _srand
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x4081f0
|
||||||
|
// _rand
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x408220
|
||||||
|
// _atol
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x4082d0
|
||||||
|
// _atoi
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x4084c0
|
||||||
|
// ?_query_new_handler@@YAP6AHI@ZXZ
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x4084d0
|
||||||
|
// ?_query_new_mode@@YAHXZ
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x4085c0
|
||||||
|
// _sprintf
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x408630
|
||||||
|
// _abort
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x409110
|
||||||
|
// __mtinit
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x409190
|
||||||
|
// __getptd
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x4108e8
|
||||||
|
// __osver
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x4108f0
|
||||||
|
// __winmajor
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x4108f4
|
||||||
|
// __winminor
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x410d50
|
||||||
|
// __newmode
|
||||||
|
|
||||||
|
#endif
|
||||||
312
ISLE/library_smartheap.h
Normal file
312
ISLE/library_smartheap.h
Normal file
@ -0,0 +1,312 @@
|
|||||||
|
#ifdef 0
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x402f10
|
||||||
|
// ?shi_New@@YAPAXKIPAU_SHI_Pool@@@Z
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x402fb0
|
||||||
|
// _MemInitDefaultPool@0
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x403020
|
||||||
|
// _shi_call_new_handler_msc
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x403050
|
||||||
|
// _MemPoolShrink@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x403180
|
||||||
|
// _MemPoolPreAllocate@12
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x403300
|
||||||
|
// @_shi_initPageHeaders@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x403570
|
||||||
|
// @shi_allocPageHeader@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x4035a0
|
||||||
|
// @shi_freePageHeader@8
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x403750
|
||||||
|
// @_shi_deletePage@8
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x403830
|
||||||
|
// @_shi_allocExternal@12
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x403a50
|
||||||
|
// @_shi_initPageVariable@8
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x403b00
|
||||||
|
// _MemAllocPtr@12
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x403d60
|
||||||
|
// @_shi_allocVar@12
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x403ef0
|
||||||
|
// @_shi_allocBlock@12
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x4040c0
|
||||||
|
// _MemFreePtr@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x404170
|
||||||
|
// @_shi_freeVar@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x404260
|
||||||
|
// _MemReAllocPtr@12
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x4043b0
|
||||||
|
// @_shi_resizeAny@16
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x404650
|
||||||
|
// @_shi_resizeVar@8
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x404820
|
||||||
|
// _MemSizePtr@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x4048d0
|
||||||
|
// @shi_findAllocAddress@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x404910
|
||||||
|
// @_shi_sysAlloc@8
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x4049a0
|
||||||
|
// @_shi_sysFree@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x404a00
|
||||||
|
// @_shi_sysRealloc@12
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x404ab0
|
||||||
|
// @_shi_sysResize@12
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x404b90
|
||||||
|
// @_shi_sysSize@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x404bd0
|
||||||
|
// @_shi_sysAllocNear@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x404bf0
|
||||||
|
// @_shi_sysFreeNear@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x404c10
|
||||||
|
// @_shi_sysValidatePtr@12
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x404d10
|
||||||
|
// @_shi_sysValidateFunction@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x405300
|
||||||
|
// @_shi_sysAllocPool@12
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x405520
|
||||||
|
// @_shi_sysResizePool@16
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x405690
|
||||||
|
// @_shi_sysFreePage@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x4057b0
|
||||||
|
// @_shi_sysSizePage@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x4057e0
|
||||||
|
// @_shi_sysSizePool@8
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x405800
|
||||||
|
// @_shi_registerShared@16
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x405a00
|
||||||
|
// @_shi_unregisterShared@8
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x405b20
|
||||||
|
// @_shi_getNextPool@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x405b30
|
||||||
|
// @shi_delNextPool@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x405d30
|
||||||
|
// @shi_createAndEnterMutexShr@12
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x405e20
|
||||||
|
// @shi_termPoolMutexShr@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x405e40
|
||||||
|
// @shi_enterPoolMutexShr@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x405e60
|
||||||
|
// @shi_leavePoolMutexShr@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x405e80
|
||||||
|
// __shi_enterCriticalSection@0
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x405ea0
|
||||||
|
// __shi_leaveCriticalSection@0
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x405ec0
|
||||||
|
// __shi_createAndEnterMutex
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x405ef0
|
||||||
|
// _shi_enterPoolMutexSafely
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x405fd0
|
||||||
|
// _shi_enterPoolInitMutexReader
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x406060
|
||||||
|
// _shi_leavePoolInitMutexReader
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x406090
|
||||||
|
// _shi_enterPoolInitMutexWriter
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x406160
|
||||||
|
// _shi_leavePoolInitMutexWriter
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x406180
|
||||||
|
// _shi_isNT
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x4061b0
|
||||||
|
// _MemPoolInit@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x406520
|
||||||
|
// _MemPoolSetPageSize@8
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x406630
|
||||||
|
// _MemPoolSetBlockSizeFS@8
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x406710
|
||||||
|
// @_shi_poolFree@8
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x4068c0
|
||||||
|
// @_shi_invokeErrorHandler1@8
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x406be0
|
||||||
|
// _MemErrorUnwind@0
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x406c30
|
||||||
|
// _MemDefaultErrorHandler@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x406cb0
|
||||||
|
// @_shi_taskRemovePool@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x406d50
|
||||||
|
// @_shi_getCurrentThreadContext@8
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x406db0
|
||||||
|
// @_shi_deleteThreadContext@8
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x406e40
|
||||||
|
// _calloc
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x406ea0
|
||||||
|
// _realloc
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x406f10
|
||||||
|
// __expand
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x406f50
|
||||||
|
// __heapadd
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x406f60
|
||||||
|
// __heapwalk
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x406ff0
|
||||||
|
// __heapused
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x407020
|
||||||
|
// __heapmin
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x407040
|
||||||
|
// __msize
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x407050
|
||||||
|
// __heapchk
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x407080
|
||||||
|
// __heapset
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x407090
|
||||||
|
// @_shi_sysReportError@16
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x407110
|
||||||
|
// _MemPoolSize@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x4071a0
|
||||||
|
// _MemPoolWalk@8
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x407240
|
||||||
|
// @_shi_walkPool@16
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x407540
|
||||||
|
// @shi_isBlockInUseSmall@8
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x407800
|
||||||
|
// @_shi_isBlockInUseFS@12
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x407880
|
||||||
|
// _MemPoolCheck@4
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x407b20
|
||||||
|
// _MemCheckPtr@8
|
||||||
|
|
||||||
|
// LIBRARY: ISLE 0x4084e0
|
||||||
|
// __except_handler3
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x40f0a0
|
||||||
|
// _szLibName
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x4102f4
|
||||||
|
// ?_new_handler@@3P6AXXZA
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x4102fc
|
||||||
|
// _MemDefaultPool
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x41031c
|
||||||
|
// __shi_compactPoolFn
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x410320
|
||||||
|
// __shi_compactPageFn
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x410324
|
||||||
|
// _MemDefaultPoolFlags
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x41032c
|
||||||
|
// __shi_mutexGlobalInit
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x410330
|
||||||
|
// __shi_mutexMovInit
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x410334
|
||||||
|
// __shi_mutexMovLockCount
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x410338
|
||||||
|
// _shi_initPoolReaders
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x41033c
|
||||||
|
// _shi_eventInitPool
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x410340
|
||||||
|
// _shi_mutexMovShr
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x410368
|
||||||
|
// _shi_deferFreePools
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x410378
|
||||||
|
// __shi_poolTerminating
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x41037c
|
||||||
|
// _MemDefaultPoolBlockSizeFS
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x410380
|
||||||
|
// _MemDefaultPoolPageSize
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x410384
|
||||||
|
// _SmartHeap_malloc
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x4105b0
|
||||||
|
// __shi_TaskRecord
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x4125f8
|
||||||
|
// ?_pnhHeap@@3P6AHI@ZA
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x412830
|
||||||
|
// __shi_mutexMov
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x412850
|
||||||
|
// _shi_mutexPoolSynch
|
||||||
|
|
||||||
|
// GLOBAL: ISLE 0x412870
|
||||||
|
// __shi_mutexGlobal
|
||||||
|
|
||||||
|
#endif
|
||||||
@ -1,5 +1,5 @@
|
|||||||
#define ISLE_ARROW 102
|
#define ISLE_ARROW 102
|
||||||
#define ISLE_NO 103
|
#define ISLE_NO 103
|
||||||
#define ISLE_BUSY 104
|
#define ISLE_BUSY 104
|
||||||
|
|
||||||
#define APP_ICON 105
|
#define APP_ICON 105
|
||||||
|
|||||||
138
LEGO1/LegoOmni.def
Normal file
138
LEGO1/LegoOmni.def
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
; LegoOmni.def : Declares the module paarameters for the LEGO1.DLL.
|
||||||
|
|
||||||
|
DESCRIPTION "Lego OMNI Windows Dynamic Link Library"
|
||||||
|
|
||||||
|
EXPORTS
|
||||||
|
|
||||||
|
; EXPORTs really required only.
|
||||||
|
|
||||||
|
??0LegoBackgroundColor@@QAE@PBD0@Z
|
||||||
|
??0LegoGameState@@QAE@XZ
|
||||||
|
??0LegoWorld@@QAE@XZ
|
||||||
|
??0MxAtomId@@QAE@PBDW4LookupMode@@@Z
|
||||||
|
??0MxBitmap@@QAE@XZ
|
||||||
|
??0MxCore@@QAE@XZ
|
||||||
|
??0MxCriticalSection@@QAE@XZ
|
||||||
|
??0MxDSAction@@QAE@XZ
|
||||||
|
??0MxDSFile@@QAE@PBDK@Z
|
||||||
|
??0MxOmniCreateFlags@@QAE@XZ
|
||||||
|
??0MxOmniCreateParam@@QAE@PBDPAUHWND__@@AAVMxVideoParam@@VMxOmniCreateFlags@@@Z
|
||||||
|
??0MxString@@QAE@ABV0@@Z
|
||||||
|
??0MxVideoParam@@QAE@AAV0@@Z
|
||||||
|
??0MxVideoParam@@QAE@AAVMxRect32@@PAVMxPalette@@KAAVMxVideoParamFlags@@@Z
|
||||||
|
??0MxVideoParam@@QAE@XZ
|
||||||
|
??0MxVideoParamFlags@@QAE@XZ
|
||||||
|
??1LegoEntity@@UAE@XZ
|
||||||
|
??1LegoGameState@@QAE@XZ
|
||||||
|
??1LegoWorld@@UAE@XZ
|
||||||
|
??1MXIOINFO@@QAE@XZ
|
||||||
|
??1MxAtomId@@QAE@XZ
|
||||||
|
??1MxBitmap@@UAE@XZ
|
||||||
|
??1MxCore@@UAE@XZ
|
||||||
|
??1MxCriticalSection@@QAE@XZ
|
||||||
|
??1MxDSAction@@UAE@XZ
|
||||||
|
??1MxDSFile@@UAE@XZ
|
||||||
|
??1MxPresenter@@UAE@XZ
|
||||||
|
??1MxString@@UAE@XZ
|
||||||
|
??1MxVideoParam@@QAE@XZ
|
||||||
|
??4MxAtomId@@QAEAAV0@ABV0@@Z
|
||||||
|
??4MxString@@QAEABV0@PBD@Z
|
||||||
|
??4MxVideoParam@@QAEAAV0@ABV0@@Z
|
||||||
|
??8MxPalette@@QAEEAAV0@@Z
|
||||||
|
?BackgroundAudioManager@@YAPAVMxBackgroundAudioManager@@XZ
|
||||||
|
?Close@MxDSFile@@UAEJXZ
|
||||||
|
?Close@MxStreamer@@QAEJPBD@Z
|
||||||
|
?CreateBackgroundAudio@LegoOmni@@QAEXXZ
|
||||||
|
?CreateInstance@LegoOmni@@SAXXZ
|
||||||
|
?CreatePalette@MxBitmap@@UAEPAVMxPalette@@XZ
|
||||||
|
?CreateStreamObject@@YAPAVMxDSObject@@PAVMxDSFile@@F@Z
|
||||||
|
?DestroyInstance@MxOmni@@SAXXZ
|
||||||
|
?Detach@MxPalette@@QAEXXZ
|
||||||
|
?DisableRMDevice@LegoVideoManager@@QAEHXZ
|
||||||
|
?DoneTickle@MxPresenter@@MAEXXZ
|
||||||
|
?Enable@MxBackgroundAudioManager@@QAEXE@Z
|
||||||
|
?Enable@MxPresenter@@UAEXE@Z
|
||||||
|
?EnableFullScreenMovie@LegoVideoManager@@QAEXEE@Z
|
||||||
|
?EnableRMDevice@LegoVideoManager@@QAEHXZ
|
||||||
|
?EndAction@MxPresenter@@UAEXXZ
|
||||||
|
?EventManager@@YAPAVMxEventManager@@XZ
|
||||||
|
?FlipToGDISurface@MxDirectDraw@@QAEHXZ
|
||||||
|
?GameState@@YAPAVLegoGameState@@XZ
|
||||||
|
?GetBufferSize@MxDSFile@@UAEKXZ
|
||||||
|
?GetCD@MxOmni@@SAPBDXZ
|
||||||
|
?GetCurrPathInfo@LegoOmni@@SAHPAPAVLegoPathBoundary@@AAH@Z
|
||||||
|
?GetDefaults@LegoNavController@@SAXPAHPAM11111111PAE@Z
|
||||||
|
?GetHD@MxOmni@@SAPBDXZ
|
||||||
|
?GetInstance@LegoOmni@@SAPAV1@XZ
|
||||||
|
?GetInstance@MxOmni@@SAPAV1@XZ
|
||||||
|
?GetInstance@MxScheduler@@SAPAV1@XZ
|
||||||
|
?GetNoCD_SourceName@@YAPBDXZ
|
||||||
|
?GetPartsThreshold@RealtimeView@@SAMXZ
|
||||||
|
?GetPrimaryBitDepth@MxDirectDraw@@SAHXZ
|
||||||
|
?GetRealTime@MxTimer@@QAEJXZ
|
||||||
|
?GetStreamBuffersNum@MxDSFile@@UAEKXZ
|
||||||
|
?GetUserMaxLOD@RealtimeView@@SAMXZ
|
||||||
|
?GetVariable@MxVariableTable@@QAEPBDPBD@Z
|
||||||
|
?Init@MxPresenter@@IAEXXZ
|
||||||
|
?InputManager@@YAPAVLegoInputManager@@XZ
|
||||||
|
?InvalidateRect@MxVideoManager@@QAEXAAVMxRect32@@@Z
|
||||||
|
?IsSound3D@MxOmni@@SAEXZ
|
||||||
|
?Lego@@YAPAVLegoOmni@@XZ
|
||||||
|
?Load@LegoGameState@@QAEJK@Z
|
||||||
|
?MSoundManager@@YAPAVMxSoundManager@@XZ
|
||||||
|
?MakeSourceName@@YAXPADPBD@Z
|
||||||
|
?MoveCursor@LegoVideoManager@@QAEXHH@Z
|
||||||
|
?MusicManager@@YAPAVMxMusicManager@@XZ
|
||||||
|
?NotificationManager@@YAPAVMxNotificationManager@@XZ
|
||||||
|
?Notify@MxCore@@UAEJAAVMxParam@@@Z
|
||||||
|
?Open@MxDSFile@@UAEJK@Z
|
||||||
|
?Open@MxStreamer@@QAEPAVMxStreamController@@PBDG@Z
|
||||||
|
?ParseExtra@MxPresenter@@MAEXXZ
|
||||||
|
?Pause@MxDirectDraw@@QAEHH@Z
|
||||||
|
?PickEntity@@YAPAVLegoEntity@@JJ@Z
|
||||||
|
?PickROI@@YAPAVLegoROI@@JJ@Z
|
||||||
|
?QueueEvent@LegoInputManager@@QAEXW4NotificationId@@EJJE@Z
|
||||||
|
?Read@MxBitmap@@UAEJPBD@Z
|
||||||
|
?Read@MxDSFile@@UAEJPAEK@Z
|
||||||
|
?RealizePalette@MxVideoManager@@UAEJPAVMxPalette@@@Z
|
||||||
|
?Register@LegoInputManager@@QAEXPAVMxCore@@@Z
|
||||||
|
?RemoveAll@ViewManager@@QAEXPAVViewROI@@@Z
|
||||||
|
?RemoveWorld@LegoOmni@@QAEXABVMxAtomId@@J@Z
|
||||||
|
?Save@LegoGameState@@QAEJK@Z
|
||||||
|
?Seek@MxDSFile@@UAEJJH@Z
|
||||||
|
?SerializePlayersInfo@LegoGameState@@QAEXF@Z
|
||||||
|
?SerializeScoreHistory@LegoGameState@@QAEXF@Z
|
||||||
|
?SetCD@MxOmni@@SAXPBD@Z
|
||||||
|
?SetDefaults@LegoNavController@@SAXHMMMMMMMMME@Z
|
||||||
|
?SetDeviceName@MxVideoParam@@QAEXPAD@Z
|
||||||
|
?SetDisplayBB@LegoROI@@QAEXH@Z
|
||||||
|
?SetDoMutex@MxCriticalSection@@SAXXZ
|
||||||
|
?SetHD@MxOmni@@SAXPBD@Z
|
||||||
|
?SetObjectName@MxDSObject@@QAEXPBD@Z
|
||||||
|
?SetOmniUserMessage@@YAXP6AXPBDH@Z@Z
|
||||||
|
?SetPartsThreshold@RealtimeView@@SAXM@Z
|
||||||
|
?SetSavePath@LegoGameState@@QAEXPAD@Z
|
||||||
|
?SetSound3D@MxOmni@@SAXE@Z
|
||||||
|
?SetUserMaxLOD@RealtimeView@@SAXM@Z
|
||||||
|
?SetVariable@MxVariableTable@@QAEXPAVMxVariable@@@Z
|
||||||
|
?SetVariable@MxVariableTable@@QAEXPBD0@Z
|
||||||
|
?SetWaitIndicator@MxTransitionManager@@QAEXPAVMxVideoPresenter@@@Z
|
||||||
|
?SoundManager@@YAPAVLegoSoundManager@@XZ
|
||||||
|
?Start@@YAJPAVMxDSAction@@@Z
|
||||||
|
?StartAction@MxPresenter@@UAEJPAVMxStreamController@@PAVMxDSAction@@@Z
|
||||||
|
?StartMultiTasking@MxScheduler@@QAEXK@Z
|
||||||
|
?Streamer@@YAPAVMxStreamer@@XZ
|
||||||
|
?Tickle@MxPresenter@@UAEJXZ
|
||||||
|
?TickleManager@@YAPAVMxTickleManager@@XZ
|
||||||
|
?Timer@@YAPAVMxTimer@@XZ
|
||||||
|
?TransitionManager@@YAPAVMxTransitionManager@@XZ
|
||||||
|
?UnRegister@LegoInputManager@@QAEXPAVMxCore@@@Z
|
||||||
|
?VariableTable@@YAPAVMxVariableTable@@XZ
|
||||||
|
?VideoManager@@YAPAVLegoVideoManager@@XZ
|
||||||
|
?configureLegoAnimationManager@LegoAnimationManager@@SAXH@Z
|
||||||
|
?configureLegoBuildingManager@LegoBuildingManager@@SAXH@Z
|
||||||
|
?configureLegoModelPresenter@LegoModelPresenter@@SAXH@Z
|
||||||
|
?configureLegoPartPresenter@LegoPartPresenter@@SAXHH@Z
|
||||||
|
?configureLegoROI@LegoROI@@SAXH@Z
|
||||||
|
?configureLegoWorldPresenter@LegoWorldPresenter@@SAXH@Z
|
||||||
|
_DllMain@12
|
||||||
164
LEGO1/LegoOmni.mingw.def
Normal file
164
LEGO1/LegoOmni.mingw.def
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
; LegoOmni.def : Declares the module paarameters for the LEGO1.DLL.
|
||||||
|
|
||||||
|
; DESCRIPTION " Lego OMNI Windows Dynamic Link Library"
|
||||||
|
|
||||||
|
EXPORTS
|
||||||
|
|
||||||
|
; EXPORTs really required only.
|
||||||
|
|
||||||
|
_ZN13LegoGameState11SetSavePathEPc
|
||||||
|
_ZN13LegoGameState20SerializePlayersInfoEs
|
||||||
|
_ZN13LegoGameState21SerializeScoreHistoryEs
|
||||||
|
_ZN13LegoGameState4SaveEj
|
||||||
|
_ZN13LegoGameStateC1Ev
|
||||||
|
_ZN13LegoGameStateC2Ev
|
||||||
|
_ZN13LegoGameStateD1Ev
|
||||||
|
_ZN13LegoGameStateD2Ev
|
||||||
|
_ZN9LegoWorldC1Ev
|
||||||
|
_ZN9LegoWorldC2Ev
|
||||||
|
_ZN9LegoWorldD0Ev
|
||||||
|
_ZN9LegoWorldD1Ev
|
||||||
|
_ZN9LegoWorldD2Ev
|
||||||
|
DllMain@12
|
||||||
|
_Z10PickEntityii
|
||||||
|
_Z12EventManagerv
|
||||||
|
_Z12InputManagerv
|
||||||
|
_Z12MusicManagerv
|
||||||
|
_Z12SoundManagerv
|
||||||
|
_Z12VideoManagerv
|
||||||
|
_Z13MSoundManagerv
|
||||||
|
_Z13TickleManagerv
|
||||||
|
_Z13VariableTablev
|
||||||
|
_Z14MakeSourceNamePcPKc
|
||||||
|
_Z17TransitionManagerv
|
||||||
|
_Z18CreateStreamObjectP8MxDSFiles
|
||||||
|
_Z18GetNoCD_SourceNamev
|
||||||
|
_Z18SetOmniUserMessagePFvPKciE
|
||||||
|
_Z19NotificationManagerv
|
||||||
|
_Z22BackgroundAudioManagerv
|
||||||
|
_Z4Legov
|
||||||
|
_Z5StartP10MxDSAction
|
||||||
|
_Z5Timerv
|
||||||
|
_Z7PickROIii
|
||||||
|
_Z8Streamerv
|
||||||
|
_Z9GameStatev
|
||||||
|
_ZN10MxDSActionC1Ev
|
||||||
|
_ZN10MxDSActionC2Ev
|
||||||
|
_ZN10MxDSActionD0Ev
|
||||||
|
_ZN10MxDSActionD1Ev
|
||||||
|
_ZN10MxDSActionD2Ev
|
||||||
|
_ZN10MxDSObject13SetObjectNameEPKc
|
||||||
|
_ZN10MxStreamer4OpenEPKct
|
||||||
|
_ZN10MxStreamer5CloseEPKc
|
||||||
|
_ZN11MxPresenter10DoneTickleEv
|
||||||
|
_ZN11MxPresenter10ParseExtraEv
|
||||||
|
_ZN11MxPresenter11StartActionEP18MxStreamControllerP10MxDSAction
|
||||||
|
_ZN11MxPresenter4InitEv
|
||||||
|
_ZN11MxPresenter6EnableEh
|
||||||
|
_ZN11MxPresenter6TickleEv
|
||||||
|
_ZN11MxPresenter9EndActionEv
|
||||||
|
_ZN11MxScheduler11GetInstanceEv
|
||||||
|
_ZN11MxScheduler17StartMultiTaskingEj
|
||||||
|
_ZN11ViewManager9RemoveAllEP7ViewROI
|
||||||
|
_ZN12MxDirectDraw16FlipToGDISurfaceEv
|
||||||
|
_ZN12MxDirectDraw18GetPrimaryBitDepthEv
|
||||||
|
_ZN12MxDirectDraw5PauseEi
|
||||||
|
_ZN12MxVideoParam13SetDeviceNameEPc
|
||||||
|
_ZN12MxVideoParamC1ERS_
|
||||||
|
_ZN12MxVideoParamC1Ev
|
||||||
|
_ZN12MxVideoParamC2ERS_
|
||||||
|
_ZN12MxVideoParamC2Ev
|
||||||
|
_ZN12MxVideoParamD1Ev
|
||||||
|
_ZN12MxVideoParamD2Ev
|
||||||
|
_ZN12MxVideoParamaSERKS_
|
||||||
|
_ZN12RealtimeView13GetUserMaxLODEv
|
||||||
|
_ZN12RealtimeView13SetUserMaxLODEf
|
||||||
|
_ZN12RealtimeView17GetPartsThresholdEv
|
||||||
|
_ZN12RealtimeView17SetPartsThresholdEf
|
||||||
|
_ZN14MxVideoManager14InvalidateRectER8MxRect32
|
||||||
|
_ZN14MxVideoManager14RealizePaletteEP9MxPalette
|
||||||
|
_ZN15MxVariableTable11GetVariableEPKc
|
||||||
|
_ZN15MxVariableTable11SetVariableEP10MxVariable
|
||||||
|
_ZN15MxVariableTable11SetVariableEPKcS1_ = _ZN15MxVariableTable11SetVariableEPKcS1_
|
||||||
|
;_ZN16LegoInputManager10QueueEventE14NotificationIdhiih
|
||||||
|
_ZN16LegoInputManager10QueueEventE14NotificationIdhiih
|
||||||
|
_ZN16LegoInputManager10UnRegisterEP6MxCore
|
||||||
|
_ZN16LegoInputManager8RegisterEP6MxCore
|
||||||
|
_ZN16LegoVideoManager10MoveCursorEii
|
||||||
|
_ZN16LegoVideoManager14EnableRMDeviceEv
|
||||||
|
_ZN16LegoVideoManager15DisableRMDeviceEv
|
||||||
|
_ZN16LegoVideoManager21EnableFullScreenMovieEhh
|
||||||
|
_ZN17LegoNavController11GetDefaultsEPiPfS1_S1_S1_S1_S1_S1_S1_S1_Ph
|
||||||
|
_ZN17LegoNavController11SetDefaultsEifffffffffh
|
||||||
|
_ZN17LegoPartPresenter26configureLegoPartPresenterEii
|
||||||
|
_ZN17MxCriticalSection10SetDoMutexEv
|
||||||
|
_ZN17MxCriticalSectionC1Ev
|
||||||
|
_ZN17MxCriticalSectionC2Ev
|
||||||
|
_ZN17MxCriticalSectionD1Ev
|
||||||
|
_ZN17MxCriticalSectionD2Ev
|
||||||
|
_ZN17MxOmniCreateFlagsC1Ev
|
||||||
|
_ZN17MxOmniCreateFlagsC2Ev
|
||||||
|
_ZN17MxOmniCreateParamC1EPKcP6HWND__R12MxVideoParam17MxOmniCreateFlags
|
||||||
|
_ZN17MxVideoParamFlagsC1Ev
|
||||||
|
_ZN17MxVideoParamFlagsC2Ev
|
||||||
|
_ZN18LegoModelPresenter27configureLegoModelPresenterEi
|
||||||
|
_ZN18LegoWorldPresenter27configureLegoWorldPresenterEi
|
||||||
|
_ZN19LegoBuildingManager28configureLegoBuildingManagerEi
|
||||||
|
_ZN19MxTransitionManager16SetWaitIndicatorEP16MxVideoPresenter
|
||||||
|
_ZN20LegoAnimationManager29configureLegoAnimationManagerEi
|
||||||
|
_ZN24MxBackgroundAudioManager6EnableEh
|
||||||
|
_ZN6MxCore6NotifyER7MxParam
|
||||||
|
_ZN6MxCoreC1Ev
|
||||||
|
_ZN6MxCoreC2Ev
|
||||||
|
_ZN6MxCoreD0Ev
|
||||||
|
_ZN6MxCoreD1Ev
|
||||||
|
_ZN6MxCoreD2Ev
|
||||||
|
_ZN6MxOmni10SetSound3DEh
|
||||||
|
_ZN6MxOmni11GetInstanceEv
|
||||||
|
_ZN6MxOmni15DestroyInstanceEv
|
||||||
|
_ZN6MxOmni5GetCDEv
|
||||||
|
_ZN6MxOmni5GetHDEv
|
||||||
|
_ZN6MxOmni5SetCDEPKc
|
||||||
|
_ZN6MxOmni5SetHDEPKc
|
||||||
|
_ZN6MxOmni9IsSound3DEv
|
||||||
|
_ZN7LegoROI12SetDisplayBBEi
|
||||||
|
_ZN7LegoROI16configureLegoROIEi
|
||||||
|
_ZN7MxTimer11GetRealTimeEv
|
||||||
|
_ZN8LegoOmni11GetInstanceEv
|
||||||
|
_ZN8LegoOmni11RemoveWorldERK8MxAtomIdi
|
||||||
|
_ZN8LegoOmni14CreateInstanceEv
|
||||||
|
_ZN8LegoOmni15GetCurrPathInfoEPP16LegoPathBoundaryRi
|
||||||
|
_ZN8LegoOmni21CreateBackgroundAudioEv
|
||||||
|
_ZN8MXIOINFOD1Ev
|
||||||
|
_ZN8MXIOINFOD2Ev
|
||||||
|
_ZN8MxAtomIdC1EPKc10LookupMode
|
||||||
|
_ZN8MxAtomIdC2EPKc10LookupMode
|
||||||
|
_ZN8MxAtomIdD1Ev
|
||||||
|
_ZN8MxAtomIdD2Ev
|
||||||
|
_ZN8MxAtomIdaSERKS_
|
||||||
|
_ZN8MxBitmap13CreatePaletteEv
|
||||||
|
_ZN8MxBitmap4ReadEPKc
|
||||||
|
_ZN8MxBitmapC1Ev
|
||||||
|
_ZN8MxBitmapC2Ev
|
||||||
|
_ZN8MxBitmapD0Ev
|
||||||
|
_ZN8MxBitmapD1Ev
|
||||||
|
_ZN8MxBitmapD2Ev
|
||||||
|
_ZN8MxDSFile13GetBufferSizeEv
|
||||||
|
_ZN8MxDSFile19GetStreamBuffersNumEv
|
||||||
|
_ZN8MxDSFile4OpenEj
|
||||||
|
_ZN8MxDSFile4ReadEPhj
|
||||||
|
_ZN8MxDSFile4SeekEii
|
||||||
|
_ZN8MxDSFile5CloseEv
|
||||||
|
_ZN8MxDSFileC1EPKcj
|
||||||
|
_ZN8MxDSFileC2EPKcj
|
||||||
|
_ZN8MxDSFileD0Ev
|
||||||
|
_ZN8MxDSFileD1Ev
|
||||||
|
_ZN8MxDSFileD2Ev
|
||||||
|
_ZN8MxStringC1ERKS_
|
||||||
|
_ZN8MxStringC2ERKS_
|
||||||
|
_ZN8MxStringD0Ev
|
||||||
|
_ZN8MxStringD1Ev
|
||||||
|
_ZN8MxStringD2Ev
|
||||||
|
_ZN8MxStringaSEPKc
|
||||||
|
_ZN9MxPalette6DetachEv
|
||||||
|
_ZN9MxPaletteeqERS_
|
||||||
@ -1,7 +0,0 @@
|
|||||||
#include "act1state.h"
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x100334b0
|
|
||||||
Act1State::Act1State()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
@ -1,33 +0,0 @@
|
|||||||
#ifndef ACT1STATE_H
|
|
||||||
#define ACT1STATE_H
|
|
||||||
|
|
||||||
#include "legostate.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d7028
|
|
||||||
// SIZE 0x26c
|
|
||||||
class Act1State : public LegoState {
|
|
||||||
public:
|
|
||||||
Act1State();
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100338a0
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f0154
|
|
||||||
return "Act1State";
|
|
||||||
};
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100338b0
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, Act1State::ClassName()) || LegoState::IsA(p_name);
|
|
||||||
};
|
|
||||||
|
|
||||||
inline void SetUnknown18(MxU32 p_unk0x18) { m_unk0x18 = p_unk0x18; }
|
|
||||||
inline MxU32 GetUnknown18() { return m_unk0x18; }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
undefined m_unk0x8[0x10]; // 0x8
|
|
||||||
MxU32 m_unk0x18; // 0x18
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // ACT1STATE_H
|
|
||||||
@ -1,30 +0,0 @@
|
|||||||
#ifndef ACT2BRICK_H
|
|
||||||
#define ACT2BRICK_H
|
|
||||||
|
|
||||||
#include "legopathactor.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d9b60
|
|
||||||
// SIZE 0x194
|
|
||||||
class Act2Brick : public LegoPathActor {
|
|
||||||
public:
|
|
||||||
Act2Brick();
|
|
||||||
virtual ~Act2Brick() override; // vtable+0x0
|
|
||||||
|
|
||||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
|
|
||||||
virtual MxResult Tickle() override; // vtable+0x08
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1007a360
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f0438
|
|
||||||
return "Act2Brick";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1007a370
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, Act2Brick::ClassName()) || LegoEntity::IsA(p_name);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // ACT2BRICK_H
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
#include "act3.h"
|
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(Act3, 0x4274)
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x10072270
|
|
||||||
Act3::Act3()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x100726a0
|
|
||||||
Act3::~Act3()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
37
LEGO1/act3.h
37
LEGO1/act3.h
@ -1,37 +0,0 @@
|
|||||||
#ifndef ACT3_H
|
|
||||||
#define ACT3_H
|
|
||||||
|
|
||||||
#include "legoworld.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d9628
|
|
||||||
// SIZE 0x4274
|
|
||||||
class Act3 : public LegoWorld {
|
|
||||||
public:
|
|
||||||
Act3();
|
|
||||||
|
|
||||||
virtual ~Act3() override; // vtable+00
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10072510
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f013c
|
|
||||||
return "Act3";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10072520
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, Act3::ClassName()) || LegoWorld::IsA(p_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void SetUnkown420c(MxEntity* p_entity) { m_unk0x420c = p_entity; }
|
|
||||||
inline void SetUnkown4270(MxU32 p_unk0x4270) { m_unk0x4270 = p_unk0x4270; }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
undefined m_unk0xf8[0x4114]; // 0xf8
|
|
||||||
MxEntity* m_unk0x420c; // 0x420c
|
|
||||||
undefined m_unk0x4210[0x60]; // 0x4210
|
|
||||||
MxU32 m_unk0x4270; // 0x4270
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // ACT3_H
|
|
||||||
@ -1 +0,0 @@
|
|||||||
#include "act3shark.h"
|
|
||||||
@ -1,17 +0,0 @@
|
|||||||
#ifndef ACT3SHARK_H
|
|
||||||
#define ACT3SHARK_H
|
|
||||||
|
|
||||||
#include "legoanimactor.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d7920
|
|
||||||
class Act3Shark : public LegoAnimActor {
|
|
||||||
public:
|
|
||||||
// FUNCTION: LEGO1 0x100430c0
|
|
||||||
inline virtual const char* ClassName() const override
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f03a0
|
|
||||||
return "Act3Shark";
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // ACT3SHARK_H
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
#include "ambulance.h"
|
|
||||||
|
|
||||||
#include "decomp.h"
|
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(Ambulance, 0x184);
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10035ee0
|
|
||||||
Ambulance::Ambulance()
|
|
||||||
{
|
|
||||||
this->m_unk0x168 = 0;
|
|
||||||
this->m_unk0x16a = -1;
|
|
||||||
this->m_unk0x164 = 0;
|
|
||||||
this->m_unk0x16c = 0;
|
|
||||||
this->m_unk0x174 = -1;
|
|
||||||
this->m_unk0x16e = 0;
|
|
||||||
this->m_unk0x178 = -1;
|
|
||||||
this->m_unk0x170 = 0;
|
|
||||||
this->m_unk0x172 = 0;
|
|
||||||
this->m_unk0x13c = 40.0;
|
|
||||||
this->m_unk0x17c = 1.0;
|
|
||||||
}
|
|
||||||
@ -1,41 +0,0 @@
|
|||||||
#ifndef AMBULANCE_H
|
|
||||||
#define AMBULANCE_H
|
|
||||||
|
|
||||||
#include "islepathactor.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d71a8
|
|
||||||
// SIZE 0x184
|
|
||||||
class Ambulance : public IslePathActor {
|
|
||||||
public:
|
|
||||||
Ambulance();
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10035fa0
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f03c4
|
|
||||||
return "Ambulance";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10035fb0
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, Ambulance::ClassName()) || IslePathActor::IsA(p_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
// TODO: Ambulance fields
|
|
||||||
undefined m_unk0x160[4];
|
|
||||||
MxS32 m_unk0x164;
|
|
||||||
MxS16 m_unk0x168;
|
|
||||||
MxS16 m_unk0x16a;
|
|
||||||
MxS16 m_unk0x16c;
|
|
||||||
MxS16 m_unk0x16e;
|
|
||||||
MxS16 m_unk0x170;
|
|
||||||
MxS16 m_unk0x172;
|
|
||||||
MxS32 m_unk0x174;
|
|
||||||
MxS32 m_unk0x178;
|
|
||||||
MxFloat m_unk0x17c;
|
|
||||||
undefined m_unk0x180[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // AMBULANCE_H
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
#ifndef ANIMSTATE_H
|
|
||||||
#define ANIMSTATE_H
|
|
||||||
|
|
||||||
#include "legostate.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d8d80
|
|
||||||
// SIZE 0x1c
|
|
||||||
class AnimState : public LegoState {
|
|
||||||
public:
|
|
||||||
AnimState();
|
|
||||||
virtual ~AnimState() override; // vtable+0x0
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10065070
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f0460
|
|
||||||
return "AnimState";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10065080
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, AnimState::ClassName()) || LegoState::IsA(p_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual MxBool SetFlag() override; // vtable+0x18
|
|
||||||
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1C
|
|
||||||
|
|
||||||
private:
|
|
||||||
undefined4 m_unk0x8;
|
|
||||||
undefined4 m_unk0xc;
|
|
||||||
void* m_unk0x10;
|
|
||||||
undefined4 m_unk0x14;
|
|
||||||
void* m_unk0x18;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // ANIMSTATE_H
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
#include "beachhouseentity.h"
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x100150a0
|
|
||||||
MxLong BeachHouseEntity::Notify(MxParam& p_param)
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
#include "bike.h"
|
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(Bike, 0x164);
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10076670
|
|
||||||
Bike::Bike()
|
|
||||||
{
|
|
||||||
this->m_unk0x13c = 20.0;
|
|
||||||
this->m_unk0x150 = 3.0;
|
|
||||||
this->m_unk0x148 = 1;
|
|
||||||
}
|
|
||||||
31
LEGO1/bike.h
31
LEGO1/bike.h
@ -1,31 +0,0 @@
|
|||||||
#ifndef BIKE_H
|
|
||||||
#define BIKE_H
|
|
||||||
|
|
||||||
#include "decomp.h"
|
|
||||||
#include "islepathactor.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d9808
|
|
||||||
// SIZE 0x164
|
|
||||||
class Bike : public IslePathActor {
|
|
||||||
public:
|
|
||||||
Bike();
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100766f0
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f03d0
|
|
||||||
return "Bike";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10076700
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, Bike::ClassName()) || IslePathActor::IsA(p_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
// TODO: Bike fields
|
|
||||||
undefined m_unk0x160[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // BIKE_H
|
|
||||||
@ -1 +0,0 @@
|
|||||||
#include "bumpbouy.h"
|
|
||||||
@ -1,24 +0,0 @@
|
|||||||
#ifndef BUMPBOUY_H
|
|
||||||
#define BUMPBOUY_H
|
|
||||||
|
|
||||||
#include "legoanimactor.h"
|
|
||||||
#include "mxtypes.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d6790
|
|
||||||
class BumpBouy : public LegoAnimActor {
|
|
||||||
public:
|
|
||||||
// FUNCTION: LEGO1 0x100274e0
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f0394
|
|
||||||
return "BumpBouy";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10027500
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, BumpBouy::ClassName()) || LegoAnimActor::IsA(p_name);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // BUMPBOUY_H
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
#include "carrace.h"
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x10016a90
|
|
||||||
CarRace::CarRace()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
@ -1,26 +0,0 @@
|
|||||||
#ifndef CARRACE_H
|
|
||||||
#define CARRACE_H
|
|
||||||
|
|
||||||
#include "legorace.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d5e50
|
|
||||||
// SIZE 0x154
|
|
||||||
class CarRace : public LegoRace {
|
|
||||||
public:
|
|
||||||
CarRace();
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10016b20
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f0528
|
|
||||||
return "CarRace";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10016b30
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, CarRace::ClassName()) || LegoRace::IsA(p_name);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // CARRACE_H
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
#include "define.h"
|
#include "define.h"
|
||||||
|
|
||||||
// GLOBAL: LEGO1 0x1010141c
|
// GLOBAL: LEGO1 0x1010141c
|
||||||
MxU32 g_mxcoreCount[101] = {0, -6643, -5643, -5058, -4643, -4321, -4058, -3836, -3643, -3473, -3321, -3184, -3058,
|
MxS32 g_mxcoreCount[101] = {0, -6643, -5643, -5058, -4643, -4321, -4058, -3836, -3643, -3473, -3321, -3184, -3058,
|
||||||
-2943, -2836, -2736, -2643, -2556, -2473, -2395, -2321, -2251, -2184, -2120, -2058, -2000,
|
-2943, -2836, -2736, -2643, -2556, -2473, -2395, -2321, -2251, -2184, -2120, -2058, -2000,
|
||||||
-1943, -1888, -1836, -1785, -1736, -1689, -1643, -1599, -1556, -1514, -1473, -1434, -1395,
|
-1943, -1888, -1836, -1785, -1736, -1689, -1643, -1599, -1556, -1514, -1473, -1434, -1395,
|
||||||
-1358, -1321, -1286, -1251, -1217, -1184, -1152, -1120, -1089, -1058, -1029, -1000, -971,
|
-1358, -1321, -1286, -1251, -1217, -1184, -1152, -1120, -1089, -1058, -1029, -1000, -971,
|
||||||
@ -10,17 +10,26 @@ MxU32 g_mxcoreCount[101] = {0, -6643, -5643, -5058, -4643, -4321, -4058, -38
|
|||||||
-358, -340, -321, -304, -286, -268, -251, -234, -217, -200, -184, -168, -152,
|
-358, -340, -321, -304, -286, -268, -251, -234, -217, -200, -184, -168, -152,
|
||||||
-136, -120, -104, -89, -74, -58, -43, -29, -14, 0};
|
-136, -120, -104, -89, -74, -58, -43, -29, -14, 0};
|
||||||
|
|
||||||
// GLOBAL: LEGO1 0x10101eac
|
// GLOBAL: LEGO1 0x10102048
|
||||||
const char* g_parseExtraTokens = ":;";
|
// STRING: LEGO1 0x10102040
|
||||||
|
|
||||||
// GLOBAL: LEGO1 0x10101edc
|
|
||||||
const char* g_strWORLD = "WORLD";
|
|
||||||
|
|
||||||
// GLOBAL: LEGO1 0x10101f20
|
|
||||||
const char* g_strSOUND = "SOUND";
|
|
||||||
|
|
||||||
// GLOBAL: LEGO1 0x10102040
|
|
||||||
const char* g_strACTION = "ACTION";
|
const char* g_strACTION = "ACTION";
|
||||||
|
|
||||||
|
// GLOBAL: LEGO1 0x1010209c
|
||||||
|
// STRING: LEGO1 0x10101f58
|
||||||
|
const char* g_strOBJECT = "OBJECT";
|
||||||
|
|
||||||
|
// GLOBAL: LEGO1 0x101020b0
|
||||||
|
// STRING: LEGO1 0x10101f20
|
||||||
|
const char* g_strSOUND = "SOUND";
|
||||||
|
|
||||||
// GLOBAL: LEGO1 0x101020cc
|
// GLOBAL: LEGO1 0x101020cc
|
||||||
|
// STRING: LEGO1 0x100f3808
|
||||||
const char* g_strVISIBILITY = "VISIBILITY";
|
const char* g_strVISIBILITY = "VISIBILITY";
|
||||||
|
|
||||||
|
// GLOBAL: LEGO1 0x101020d0
|
||||||
|
// STRING: LEGO1 0x10101edc
|
||||||
|
const char* g_strWORLD = "WORLD";
|
||||||
|
|
||||||
|
// GLOBAL: LEGO1 0x101020e4
|
||||||
|
// STRING: LEGO1 0x10101eac
|
||||||
|
const char* g_parseExtraTokens = ":;";
|
||||||
|
|||||||
@ -3,10 +3,11 @@
|
|||||||
|
|
||||||
#include "mxtypes.h"
|
#include "mxtypes.h"
|
||||||
|
|
||||||
extern MxU32 g_mxcoreCount[101];
|
extern MxS32 g_mxcoreCount[101];
|
||||||
extern const char* g_parseExtraTokens;
|
extern const char* g_parseExtraTokens;
|
||||||
extern const char* g_strWORLD;
|
extern const char* g_strWORLD;
|
||||||
extern const char* g_strSOUND;
|
extern const char* g_strSOUND;
|
||||||
|
extern const char* g_strOBJECT;
|
||||||
extern const char* g_strACTION;
|
extern const char* g_strACTION;
|
||||||
extern const char* g_strVISIBILITY;
|
extern const char* g_strVISIBILITY;
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +0,0 @@
|
|||||||
#include <windows.h>
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10091ee0
|
|
||||||
__declspec(dllexport) BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
|
||||||
{
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
@ -1,24 +0,0 @@
|
|||||||
#ifndef DOORS_H
|
|
||||||
#define DOORS_H
|
|
||||||
|
|
||||||
#include "legopathactor.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d4788
|
|
||||||
// SIZE 0x1f8
|
|
||||||
class Doors : public LegoPathActor {
|
|
||||||
public:
|
|
||||||
// FUNCTION: LEGO1 0x1000e430
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f03e8
|
|
||||||
return "Doors";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1000e440
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, Doors::ClassName()) || LegoPathActor::IsA(p_name);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // DOORS_H
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
#include "dunebuggy.h"
|
|
||||||
|
|
||||||
#include "decomp.h"
|
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(DuneBuggy, 0x16c);
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10067bb0
|
|
||||||
DuneBuggy::DuneBuggy()
|
|
||||||
{
|
|
||||||
this->m_unk0x13c = 25.0;
|
|
||||||
this->m_unk0x164 = 1.0;
|
|
||||||
}
|
|
||||||
@ -1,33 +0,0 @@
|
|||||||
#ifndef DUNEBUGGY_H
|
|
||||||
#define DUNEBUGGY_H
|
|
||||||
|
|
||||||
#include "decomp.h"
|
|
||||||
#include "islepathactor.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d8f98
|
|
||||||
// SIZE 0x16c
|
|
||||||
class DuneBuggy : public IslePathActor {
|
|
||||||
public:
|
|
||||||
DuneBuggy();
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10067c30
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f0410
|
|
||||||
return "DuneBuggy";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10067c40
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, DuneBuggy::ClassName()) || IslePathActor::IsA(p_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
// TODO: Double check DuneBuggy field types
|
|
||||||
undefined4 m_unk0x160;
|
|
||||||
MxFloat m_unk0x164;
|
|
||||||
undefined4 m_unk0x168;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // DUNEBUGGY_H
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
#include "elevatorbottom.h"
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x10017e90
|
|
||||||
ElevatorBottom::ElevatorBottom()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x10018060
|
|
||||||
ElevatorBottom::~ElevatorBottom()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x10018150
|
|
||||||
MxLong ElevatorBottom::Notify(MxParam& p_param)
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@ -1,28 +0,0 @@
|
|||||||
#ifndef ELEVATORBOTTOM_H
|
|
||||||
#define ELEVATORBOTTOM_H
|
|
||||||
|
|
||||||
#include "legoworld.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d5f20
|
|
||||||
class ElevatorBottom : public LegoWorld {
|
|
||||||
public:
|
|
||||||
ElevatorBottom();
|
|
||||||
virtual ~ElevatorBottom() override; // vtable+0x0
|
|
||||||
|
|
||||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10017f20
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f04ac
|
|
||||||
return "ElevatorBottom";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10017f30
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, ElevatorBottom::ClassName()) || LegoWorld::IsA(p_name);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // ELEVATORBOTTOM_H
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
#ifndef EXTRA_H
|
|
||||||
#define EXTRA_H
|
|
||||||
|
|
||||||
// Items related to the Extra string of key-value pairs found in MxOb
|
|
||||||
|
|
||||||
enum ExtraActionType {
|
|
||||||
ExtraActionType_none = 0,
|
|
||||||
ExtraActionType_opendisk = 1,
|
|
||||||
ExtraActionType_openram = 2,
|
|
||||||
ExtraActionType_close = 3,
|
|
||||||
ExtraActionType_start = 4,
|
|
||||||
ExtraActionType_stop = 5,
|
|
||||||
ExtraActionType_run = 6,
|
|
||||||
ExtraActionType_exit = 7,
|
|
||||||
ExtraActionType_enable = 8,
|
|
||||||
ExtraActionType_disable = 9,
|
|
||||||
ExtraActionType_notify = 10,
|
|
||||||
ExtraActionType_unknown = 11,
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // EXTRA_H
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
#include "gasstation.h"
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x100046a0
|
|
||||||
GasStation::GasStation()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x100048c0
|
|
||||||
GasStation::~GasStation()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x10004a60
|
|
||||||
MxLong GasStation::Notify(MxParam& p_param)
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x10005c90
|
|
||||||
MxResult GasStation::Tickle()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@ -1,31 +0,0 @@
|
|||||||
#ifndef GASSTATION_H
|
|
||||||
#define GASSTATION_H
|
|
||||||
|
|
||||||
#include "legoworld.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d4650
|
|
||||||
// SIZE 0x128
|
|
||||||
// Radio variable at 0x46, in constructor
|
|
||||||
class GasStation : public LegoWorld {
|
|
||||||
public:
|
|
||||||
GasStation();
|
|
||||||
virtual ~GasStation() override; // vtable+0x0
|
|
||||||
|
|
||||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
|
|
||||||
virtual MxResult Tickle() override; // vtable+0x8
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10004780
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f0168
|
|
||||||
return "GasStation";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10004790
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, GasStation::ClassName()) || LegoWorld::IsA(p_name);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // GASSTATION_H
|
|
||||||
@ -1,35 +0,0 @@
|
|||||||
#ifndef GASSTATIONSTATE_H
|
|
||||||
#define GASSTATIONSTATE_H
|
|
||||||
|
|
||||||
#include "legostate.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d46e0
|
|
||||||
// SIZE 0x24
|
|
||||||
class GasStationState : public LegoState {
|
|
||||||
public:
|
|
||||||
GasStationState();
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100061d0
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f0174
|
|
||||||
return "GasStationState";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100061e0
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, GasStationState::ClassName()) || LegoState::IsA(p_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
undefined4 m_unk0x08[3];
|
|
||||||
undefined4 m_unk0x14;
|
|
||||||
undefined2 m_unk0x18;
|
|
||||||
undefined2 m_unk0x1a;
|
|
||||||
undefined2 m_unk0x1c;
|
|
||||||
undefined2 m_unk0x1e;
|
|
||||||
undefined2 m_unk0x20;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // GASSTATIONSTATE_H
|
|
||||||
@ -1,25 +0,0 @@
|
|||||||
#include "gifmanager.h"
|
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(GifData, 0x14);
|
|
||||||
DECOMP_SIZE_ASSERT(GifMapEntry, 0x14);
|
|
||||||
DECOMP_SIZE_ASSERT(GifMap, 0x08);
|
|
||||||
DECOMP_SIZE_ASSERT(GifManagerBase, 0x14);
|
|
||||||
DECOMP_SIZE_ASSERT(GifManager, 0x30);
|
|
||||||
|
|
||||||
GifMapEntry* g_unk0x100f0100;
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10001cc0
|
|
||||||
GifMapEntry* GifMap::FindNode(const char*& p_string)
|
|
||||||
{
|
|
||||||
GifMapEntry* ret = m_unk0x4;
|
|
||||||
GifMapEntry* current = ret->m_parent;
|
|
||||||
while (current != g_unk0x100f0100) {
|
|
||||||
if (strcmp(current->m_key, p_string) <= 0) {
|
|
||||||
ret = current;
|
|
||||||
current = current->m_right;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
current = current->m_left;
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
@ -1,69 +0,0 @@
|
|||||||
#ifndef GIFMANAGER_H
|
|
||||||
#define GIFMANAGER_H
|
|
||||||
|
|
||||||
#include "decomp.h"
|
|
||||||
#include "mxtypes.h"
|
|
||||||
|
|
||||||
#include <d3drmobj.h>
|
|
||||||
#include <ddraw.h>
|
|
||||||
|
|
||||||
struct GifData {
|
|
||||||
public:
|
|
||||||
const char* m_name;
|
|
||||||
LPDIRECTDRAWSURFACE m_surface;
|
|
||||||
LPDIRECTDRAWPALETTE m_palette;
|
|
||||||
LPDIRECT3DRMTEXTURE2 m_texture;
|
|
||||||
MxU8* m_data;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct GifMapEntry {
|
|
||||||
public:
|
|
||||||
GifMapEntry* m_right;
|
|
||||||
GifMapEntry* m_parent;
|
|
||||||
GifMapEntry* m_left;
|
|
||||||
const char* m_key;
|
|
||||||
GifData* m_value;
|
|
||||||
};
|
|
||||||
|
|
||||||
class GifMap {
|
|
||||||
public:
|
|
||||||
GifMapEntry* FindNode(const char*& p_string);
|
|
||||||
|
|
||||||
inline GifData* Get(const char* p_string)
|
|
||||||
{
|
|
||||||
GifData* ret = NULL;
|
|
||||||
GifMapEntry* entry = FindNode(p_string);
|
|
||||||
if (((m_unk0x4 == entry || strcmp(p_string, entry->m_key) > 0) ? m_unk0x4 : entry) != entry)
|
|
||||||
ret = entry->m_value;
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
undefined4 m_unk0x0;
|
|
||||||
GifMapEntry* m_unk0x4;
|
|
||||||
};
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d86d4
|
|
||||||
class GifManagerBase {
|
|
||||||
public:
|
|
||||||
// STUB: LEGO1 0x1005a310
|
|
||||||
virtual ~GifManagerBase() {} // vtable+00
|
|
||||||
|
|
||||||
inline GifData* Get(const char* p_name) { return m_unk0x8.Get(p_name); }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
undefined4 m_unk0x0;
|
|
||||||
undefined4 m_unk0x4;
|
|
||||||
GifMap m_unk0x8;
|
|
||||||
};
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d86fc
|
|
||||||
class GifManager : public GifManagerBase {
|
|
||||||
public:
|
|
||||||
// STUB: LEGO1 0x1005a580
|
|
||||||
virtual ~GifManager() {} // vtable+00
|
|
||||||
|
|
||||||
protected:
|
|
||||||
undefined m_unk0x14[0x1c];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // GIFMANAGER_H
|
|
||||||
@ -1,63 +0,0 @@
|
|||||||
#ifndef HELICOPTER_H
|
|
||||||
#define HELICOPTER_H
|
|
||||||
|
|
||||||
#include "helicopterstate.h"
|
|
||||||
#include "islepathactor.h"
|
|
||||||
#include "realtime/matrix.h"
|
|
||||||
|
|
||||||
// SIZE 0x34
|
|
||||||
class HelicopterSubclass {
|
|
||||||
public:
|
|
||||||
inline HelicopterSubclass() : m_unk0x30(0) {}
|
|
||||||
MxResult FUN_100040a0(Vector4Impl& p_v, float p_f);
|
|
||||||
|
|
||||||
private:
|
|
||||||
Vector4Data m_unk0x0; // 0x0
|
|
||||||
Vector4Data m_unk0x18; // 0x18
|
|
||||||
undefined4 m_unk0x30; // 0x30
|
|
||||||
};
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d40f8
|
|
||||||
// SIZE 0x230
|
|
||||||
class Helicopter : public IslePathActor {
|
|
||||||
public:
|
|
||||||
Helicopter();
|
|
||||||
virtual ~Helicopter() override; // vtable+0x0
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10003070
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f0130
|
|
||||||
return "Helicopter";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10003080
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, Helicopter::ClassName()) || IslePathActor::IsA(p_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual MxResult Create(MxDSObject& p_dsObject) override; // vtable+0x18
|
|
||||||
void VTable0x70(float p_float) override; // vtable+0x70
|
|
||||||
void VTable0x74(Matrix4Impl& p_transform) override; // vtable+0x74
|
|
||||||
virtual MxU32 VTable0xcc() override; // vtable+0xcc
|
|
||||||
virtual MxU32 VTable0xd4(MxType17NotificationParam& p_param) override; // vtable+0xd4
|
|
||||||
virtual MxU32 VTable0xd8(MxType18NotificationParam& p_param) override; // vtable+0xd8
|
|
||||||
virtual void VTable0xe4() override; // vtable+0xe4
|
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x10003210
|
|
||||||
// Helicopter::`scalar deleting destructor'
|
|
||||||
|
|
||||||
protected:
|
|
||||||
Matrix4Data m_unk0x160; // 0x160
|
|
||||||
Matrix4Data m_unk0x1a8; // 0x1a8
|
|
||||||
float m_unk0x1f0; // 0x1f0
|
|
||||||
HelicopterSubclass m_unk0x1f4; // 0x1f4
|
|
||||||
HelicopterState* m_state; // 0x228
|
|
||||||
MxAtomId m_script; // 0x22c
|
|
||||||
|
|
||||||
private:
|
|
||||||
void GetState();
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // HELICOPTER_H
|
|
||||||
@ -1,31 +0,0 @@
|
|||||||
#ifndef HELICOPTERSTATE_H
|
|
||||||
#define HELICOPTERSTATE_H
|
|
||||||
|
|
||||||
#include "decomp.h"
|
|
||||||
#include "legostate.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d5418
|
|
||||||
// SIZE 0xc
|
|
||||||
class HelicopterState : public LegoState {
|
|
||||||
public:
|
|
||||||
// FUNCTION: LEGO1 0x1000e0d0
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f0144
|
|
||||||
return "HelicopterState";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1000e0e0
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, HelicopterState::ClassName()) || LegoState::IsA(p_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void SetUnknown8(MxU32 p_unk0x8) { m_unk0x8 = p_unk0x8; }
|
|
||||||
inline MxU32 GetUnkown8() { return m_unk0x8; }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
MxU32 m_unk0x8; // 0x8
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // HELICOPTERSTATE_H
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
#include "historybook.h"
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x100822f0
|
|
||||||
HistoryBook::HistoryBook()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x100824d0
|
|
||||||
HistoryBook::~HistoryBook()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x10082680
|
|
||||||
MxLong HistoryBook::Notify(MxParam& p_param)
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
#ifndef HISTORYBOOK_H
|
|
||||||
#define HISTORYBOOK_H
|
|
||||||
|
|
||||||
#include "legoworld.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100da328
|
|
||||||
// SIZE 0x3e4
|
|
||||||
class HistoryBook : public LegoWorld {
|
|
||||||
public:
|
|
||||||
HistoryBook();
|
|
||||||
virtual ~HistoryBook() override; // vtable+0x0
|
|
||||||
|
|
||||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10082390
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f04bc
|
|
||||||
return "HistoryBook";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100823a0
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, HistoryBook::ClassName()) || LegoWorld::IsA(p_name);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // HISTORYBOOK_H
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
#include "hospital.h"
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x100745e0
|
|
||||||
Hospital::Hospital()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x100747f0
|
|
||||||
Hospital::~Hospital()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x10074990
|
|
||||||
MxLong Hospital::Notify(MxParam& p_param)
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
#ifndef HOSPITAL_H
|
|
||||||
#define HOSPITAL_H
|
|
||||||
|
|
||||||
#include "legoworld.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d9730
|
|
||||||
// SIZE 0x12c
|
|
||||||
class Hospital : public LegoWorld {
|
|
||||||
public:
|
|
||||||
Hospital();
|
|
||||||
virtual ~Hospital() override; // vtable+0x0
|
|
||||||
|
|
||||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100746b0
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f0490
|
|
||||||
return "Hospital";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100746c0
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, Hospital::ClassName()) || LegoWorld::IsA(p_name);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // HOSPITAL_H
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
#include "hospitalstate.h"
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x10076370
|
|
||||||
HospitalState::HospitalState()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
@ -1,26 +0,0 @@
|
|||||||
#ifndef HOSPITALSTATE_H
|
|
||||||
#define HOSPITALSTATE_H
|
|
||||||
|
|
||||||
#include "legostate.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d97a0
|
|
||||||
// SIZE 0x18
|
|
||||||
class HospitalState : public LegoState {
|
|
||||||
public:
|
|
||||||
HospitalState();
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10076400
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f0480
|
|
||||||
return "HospitalState";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10076410
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, HospitalState::ClassName()) || LegoState::IsA(p_name);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // HOSPITALSTATE_H
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
#include "infocenter.h"
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x1006ea20
|
|
||||||
Infocenter::Infocenter()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x1006ec90
|
|
||||||
Infocenter::~Infocenter()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x1006ef10
|
|
||||||
MxLong Infocenter::Notify(MxParam& p_param)
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x10070af0
|
|
||||||
MxResult Infocenter::Tickle()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@ -1,30 +0,0 @@
|
|||||||
#ifndef INFOCENTER_H
|
|
||||||
#define INFOCENTER_H
|
|
||||||
|
|
||||||
#include "legoworld.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d9338
|
|
||||||
// SIZE 0x1d8
|
|
||||||
class Infocenter : public LegoWorld {
|
|
||||||
public:
|
|
||||||
Infocenter();
|
|
||||||
virtual ~Infocenter() override;
|
|
||||||
|
|
||||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
|
|
||||||
virtual MxResult Tickle() override; // vtable+0x8
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1006eb40
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f04ec
|
|
||||||
return "Infocenter";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1006eb50
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, Infocenter::ClassName()) || LegoWorld::IsA(p_name);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // INFOCENTER_H
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
#include "infocenterdoor.h"
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x10037730
|
|
||||||
InfocenterDoor::InfocenterDoor()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x100378f0
|
|
||||||
InfocenterDoor::~InfocenterDoor()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x100379e0
|
|
||||||
MxLong InfocenterDoor::Notify(MxParam& p_param)
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
#ifndef INFOCENTERDOOR_H
|
|
||||||
#define INFOCENTERDOOR_H
|
|
||||||
|
|
||||||
#include "legoworld.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d72d8
|
|
||||||
// SIZE 0xfc
|
|
||||||
class InfocenterDoor : public LegoWorld {
|
|
||||||
public:
|
|
||||||
InfocenterDoor();
|
|
||||||
virtual ~InfocenterDoor(); // vtable+0x0
|
|
||||||
|
|
||||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100377b0
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f049c
|
|
||||||
return "InfocenterDoor";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100377c0
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, InfocenterDoor::ClassName()) || LegoWorld::IsA(p_name);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // INFOCENTERDOOR_H
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
#include "infocenterstate.h"
|
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(InfocenterState, 0x94);
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x10071600
|
|
||||||
InfocenterState::InfocenterState()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
// STUB: LEGO1 0x10071920
|
|
||||||
InfocenterState::~InfocenterState()
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
@ -1,62 +0,0 @@
|
|||||||
#ifndef INFOCENTERSTATE_H
|
|
||||||
#define INFOCENTERSTATE_H
|
|
||||||
|
|
||||||
#include "decomp.h"
|
|
||||||
#include "legostate.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d93a8
|
|
||||||
// SIZE 0x94
|
|
||||||
class InfocenterState : public LegoState {
|
|
||||||
public:
|
|
||||||
InfocenterState();
|
|
||||||
virtual ~InfocenterState();
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10071840
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f04dc
|
|
||||||
return "InfocenterState";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10071850
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, InfocenterState::ClassName()) || LegoState::IsA(p_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline MxU32 GetInfocenterBufferElement(MxS32 p_index) { return m_buffer[p_index]; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
// Members should be renamed with their offsets before use
|
|
||||||
/*
|
|
||||||
struct UnkStruct
|
|
||||||
{
|
|
||||||
undefined4 unk1;
|
|
||||||
undefined2 unk2;
|
|
||||||
undefined2 unk3;
|
|
||||||
undefined2 unk4;
|
|
||||||
};
|
|
||||||
|
|
||||||
undefined2 unk1;
|
|
||||||
undefined2 unk2;
|
|
||||||
undefined4 unk3;
|
|
||||||
undefined4 padding1;
|
|
||||||
void *unk4;
|
|
||||||
undefined2 unk5;
|
|
||||||
undefined2 unk6;
|
|
||||||
undefined2 unk7;
|
|
||||||
undefined2 padding2;
|
|
||||||
void *unk8;
|
|
||||||
undefined2 unk9;
|
|
||||||
undefined2 unk10;
|
|
||||||
undefined2 unk11;
|
|
||||||
undefined2 padding3;
|
|
||||||
UnkStruct unk12[6];
|
|
||||||
undefined4 unk13;
|
|
||||||
*/
|
|
||||||
|
|
||||||
undefined m_pad[0x70];
|
|
||||||
MxU32 m_buffer[7]; // 0x78
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // INFOCENTERSTATE_H
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
#include "isleactor.h"
|
|
||||||
|
|
||||||
// NOTE: This is copied from base class LegoActor. IsleActor may in fact be larger but we don't know yet.
|
|
||||||
DECOMP_SIZE_ASSERT(IsleActor, 0x78)
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
#ifndef ISLEACTOR_H
|
|
||||||
#define ISLEACTOR_H
|
|
||||||
|
|
||||||
#include "legoactor.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d5178
|
|
||||||
class IsleActor : public LegoActor {
|
|
||||||
public:
|
|
||||||
// FUNCTION: LEGO1 0x1000e660
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f07dc
|
|
||||||
return "IsleActor";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1000e670
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, IsleActor::ClassName()) || LegoActor::IsA(p_name);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // ISLEACTOR_H
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
#include "jetski.h"
|
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(Jetski, 0x164);
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1007e3b0
|
|
||||||
Jetski::Jetski()
|
|
||||||
{
|
|
||||||
this->m_unk0x13c = 25.0;
|
|
||||||
this->m_unk0x150 = 2.0;
|
|
||||||
this->m_unk0x148 = 1;
|
|
||||||
}
|
|
||||||
@ -1,31 +0,0 @@
|
|||||||
#ifndef JETSKI_H
|
|
||||||
#define JETSKI_H
|
|
||||||
|
|
||||||
#include "decomp.h"
|
|
||||||
#include "islepathactor.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d9ec8
|
|
||||||
// SIZE 0x164
|
|
||||||
class Jetski : public IslePathActor {
|
|
||||||
public:
|
|
||||||
Jetski();
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1007e430
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f03d8
|
|
||||||
return "Jetski";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1007e440
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, Jetski::ClassName()) || IslePathActor::IsA(p_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
// TODO: Jetski fields
|
|
||||||
undefined m_unk0x160[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // JETSKI_H
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
#include "jukebox.h"
|
|
||||||
|
|
||||||
#include "mxnotificationmanager.h"
|
|
||||||
#include "mxomni.h"
|
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(JukeBox, 0x104)
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1005d660
|
|
||||||
JukeBox::JukeBox()
|
|
||||||
{
|
|
||||||
m_unk0x100 = 0;
|
|
||||||
m_unk0xfc = 0;
|
|
||||||
NotificationManager()->Register(this);
|
|
||||||
}
|
|
||||||
@ -1,32 +0,0 @@
|
|||||||
#ifndef JUKEBOX_H
|
|
||||||
#define JUKEBOX_H
|
|
||||||
|
|
||||||
#include "decomp.h"
|
|
||||||
#include "legoworld.h"
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d8958
|
|
||||||
// SIZE 0x104
|
|
||||||
class JukeBox : public LegoWorld {
|
|
||||||
public:
|
|
||||||
JukeBox();
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1005d6f0
|
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
|
||||||
{
|
|
||||||
// GLOBAL: LEGO1 0x100f02cc
|
|
||||||
return "JukeBox";
|
|
||||||
}
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1005d700
|
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
|
||||||
{
|
|
||||||
return !strcmp(p_name, JukeBox::ClassName()) || LegoWorld::IsA(p_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
undefined m_unk0xf8[4]; // 0xf8
|
|
||||||
undefined4 m_unk0xfc; // 0xfc
|
|
||||||
undefined2 m_unk0x100; // 0x100
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // JUKEBOX_H
|
|
||||||
53
LEGO1/lego/legoomni/include/act1state.h
Normal file
53
LEGO1/lego/legoomni/include/act1state.h
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
#ifndef ACT1STATE_H
|
||||||
|
#define ACT1STATE_H
|
||||||
|
|
||||||
|
#include "legostate.h"
|
||||||
|
|
||||||
|
// VTABLE: LEGO1 0x100d7028
|
||||||
|
// SIZE 0x26c
|
||||||
|
class Act1State : public LegoState {
|
||||||
|
public:
|
||||||
|
Act1State();
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x100338a0
|
||||||
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
|
{
|
||||||
|
// STRING: LEGO1 0x100f0154
|
||||||
|
return "Act1State";
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x100338b0
|
||||||
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
|
{
|
||||||
|
return !strcmp(p_name, Act1State::ClassName()) || LegoState::IsA(p_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
MxBool SetFlag() override; // vtable+0x18
|
||||||
|
MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||||
|
|
||||||
|
inline void SetUnknown18(MxU32 p_unk0x18) { m_unk0x18 = p_unk0x18; }
|
||||||
|
inline MxU32 GetUnknown18() { return m_unk0x18; }
|
||||||
|
inline MxU32 GetUnknown1c() { return m_unk0x1c; }
|
||||||
|
inline MxS16 GetUnknown21() { return m_unk0x21; }
|
||||||
|
|
||||||
|
inline void SetUnknown1c(MxU32 p_unk0x1c) { m_unk0x1c = p_unk0x1c; }
|
||||||
|
inline void SetUnknown21(MxS16 p_unk0x21) { m_unk0x21 = p_unk0x21; }
|
||||||
|
|
||||||
|
void FUN_10034d00();
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x10033960
|
||||||
|
// Act1State::`scalar deleting destructor'
|
||||||
|
|
||||||
|
protected:
|
||||||
|
undefined m_unk0x08[0x10]; // 0x08
|
||||||
|
MxU32 m_unk0x18; // 0x18
|
||||||
|
undefined2 m_unk0x1c; // 0x1c
|
||||||
|
undefined m_unk0x1e; // 0x1e
|
||||||
|
undefined m_unk0x1f; // 0x1f
|
||||||
|
undefined m_unk0x20; // 0x20
|
||||||
|
MxBool m_unk0x21; // 0x21
|
||||||
|
undefined m_unk0x22; // 0x22
|
||||||
|
// TODO
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // ACT1STATE_H
|
||||||
35
LEGO1/lego/legoomni/include/act2brick.h
Normal file
35
LEGO1/lego/legoomni/include/act2brick.h
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
#ifndef ACT2BRICK_H
|
||||||
|
#define ACT2BRICK_H
|
||||||
|
|
||||||
|
#include "legopathactor.h"
|
||||||
|
|
||||||
|
// VTABLE: LEGO1 0x100d9b60
|
||||||
|
// SIZE 0x194
|
||||||
|
class Act2Brick : public LegoPathActor {
|
||||||
|
public:
|
||||||
|
Act2Brick();
|
||||||
|
~Act2Brick() override; // vtable+0x00
|
||||||
|
|
||||||
|
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||||
|
MxResult Tickle() override; // vtable+0x08
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x1007a360
|
||||||
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
|
{
|
||||||
|
// STRING: LEGO1 0x100f0438
|
||||||
|
return "Act2Brick";
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x1007a370
|
||||||
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
|
{
|
||||||
|
return !strcmp(p_name, Act2Brick::ClassName()) || LegoEntity::IsA(p_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
MxS32 VTable0x94() override; // vtable+0x94
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x1007a450
|
||||||
|
// Act2Brick::`scalar deleting destructor'
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // ACT2BRICK_H
|
||||||
@ -7,20 +7,23 @@
|
|||||||
// SIZE 0x68
|
// SIZE 0x68
|
||||||
class Act2PoliceStation : public LegoEntity {
|
class Act2PoliceStation : public LegoEntity {
|
||||||
public:
|
public:
|
||||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
|
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1000e200
|
// FUNCTION: LEGO1 0x1000e200
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
{
|
{
|
||||||
// GLOBAL: LEGO1 0x100f03fc
|
// STRING: LEGO1 0x100f03fc
|
||||||
return "Act2PoliceStation";
|
return "Act2PoliceStation";
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1000e210
|
// FUNCTION: LEGO1 0x1000e210
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
{
|
{
|
||||||
return !strcmp(p_name, Act2PoliceStation::ClassName()) || LegoEntity::IsA(p_name);
|
return !strcmp(p_name, Act2PoliceStation::ClassName()) || LegoEntity::IsA(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x1000f610
|
||||||
|
// Act2PoliceStation::`scalar deleting destructor'
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // ACT2POLICESTATION_H
|
#endif // ACT2POLICESTATION_H
|
||||||
56
LEGO1/lego/legoomni/include/act3.h
Normal file
56
LEGO1/lego/legoomni/include/act3.h
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
#ifndef ACT3_H
|
||||||
|
#define ACT3_H
|
||||||
|
|
||||||
|
#include "legoworld.h"
|
||||||
|
|
||||||
|
// VTABLE: LEGO1 0x100d9628
|
||||||
|
// SIZE 0x4274
|
||||||
|
class Act3 : public LegoWorld {
|
||||||
|
public:
|
||||||
|
Act3();
|
||||||
|
|
||||||
|
~Act3() override; // vtable+00
|
||||||
|
|
||||||
|
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||||
|
MxResult Tickle() override; // vtable+0x08
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10072510
|
||||||
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
|
{
|
||||||
|
// STRING: LEGO1 0x100f013c
|
||||||
|
return "Act3";
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10072520
|
||||||
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
|
{
|
||||||
|
return !strcmp(p_name, Act3::ClassName()) || LegoWorld::IsA(p_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||||
|
void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c
|
||||||
|
void ReadyWorld() override; // vtable+0x50
|
||||||
|
MxBool VTable0x5c() override; // vtable+0x5c
|
||||||
|
void VTable0x60() override; // vtable+0x60
|
||||||
|
MxBool VTable0x64() override; // vtable+0x64
|
||||||
|
void Enable(MxBool p_enable) override; // vtable+0x68
|
||||||
|
|
||||||
|
inline void SetUnkown420c(MxEntity* p_entity) { m_unk0x420c = p_entity; }
|
||||||
|
inline void SetUnkown4270(MxU32 p_unk0x4270) { m_unk0x4270 = p_unk0x4270; }
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x10072630
|
||||||
|
// Act3::`scalar deleting destructor'
|
||||||
|
|
||||||
|
MxBool FUN_100727e0(MxU32, Mx3DPointFloat& p_loc, Mx3DPointFloat& p_dir, Mx3DPointFloat& p_up);
|
||||||
|
MxBool FUN_10072980(MxU32, Mx3DPointFloat& p_loc, Mx3DPointFloat& p_dir, Mx3DPointFloat& p_up);
|
||||||
|
void FUN_10073400();
|
||||||
|
void FUN_10073430();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
undefined m_unk0xf8[0x4114]; // 0xf8
|
||||||
|
MxEntity* m_unk0x420c; // 0x420c
|
||||||
|
undefined m_unk0x4210[0x60]; // 0x4210
|
||||||
|
MxU32 m_unk0x4270; // 0x4270
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // ACT3_H
|
||||||
@ -1,14 +1,16 @@
|
|||||||
#ifndef ACT3ACTOR_H
|
#ifndef ACT3ACTOR_H
|
||||||
#define ACT3ACTOR_H
|
#define ACT3ACTOR_H
|
||||||
|
|
||||||
|
#include "mxcore.h"
|
||||||
|
|
||||||
// FIXME: Uncertain location. There are three vtables which eventually call this
|
// FIXME: Uncertain location. There are three vtables which eventually call this
|
||||||
// class' ClassName() function, but none of them call it directly.
|
// class' ClassName() function, but none of them call it directly.
|
||||||
class Act3Actor {
|
class Act3Actor : public MxCore {
|
||||||
public:
|
public:
|
||||||
// FUNCTION: LEGO1 0x100431b0
|
// FUNCTION: LEGO1 0x100431b0
|
||||||
inline virtual const char* ClassName() override
|
inline const char* ClassName() const override
|
||||||
{
|
{
|
||||||
// GLOBAL: LEGO1 0x100f03ac
|
// STRING: LEGO1 0x100f03ac
|
||||||
return "Act3Actor";
|
return "Act3Actor";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
31
LEGO1/lego/legoomni/include/act3shark.h
Normal file
31
LEGO1/lego/legoomni/include/act3shark.h
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#ifndef ACT3SHARK_H
|
||||||
|
#define ACT3SHARK_H
|
||||||
|
|
||||||
|
#include "legoanimactor.h"
|
||||||
|
|
||||||
|
// VTABLE: LEGO1 0x100d7920
|
||||||
|
class Act3Shark : public LegoAnimActor {
|
||||||
|
public:
|
||||||
|
// FUNCTION: LEGO1 0x100430c0
|
||||||
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
|
{
|
||||||
|
// STRING: LEGO1 0x100f03a0
|
||||||
|
return "Act3Shark";
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x1001a130
|
||||||
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
|
{
|
||||||
|
return !strcmp(p_name, Act3Shark::ClassName()) || LegoAnimActor::IsA(p_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ParseAction(char*) override; // vtable+0x20
|
||||||
|
void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
|
||||||
|
void VTable0x70(float p_float) override; // vtable+0x70
|
||||||
|
void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x10043020
|
||||||
|
// Act3Shark::`scalar deleting destructor'
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // ACT3SHARK_H
|
||||||
@ -4,25 +4,28 @@
|
|||||||
#include "legostate.h"
|
#include "legostate.h"
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d4fc8
|
// VTABLE: LEGO1 0x100d4fc8
|
||||||
// SIZE 0xc
|
// SIZE 0x0c
|
||||||
class Act3State : public LegoState {
|
class Act3State : public LegoState {
|
||||||
public:
|
public:
|
||||||
inline Act3State() { m_unk0x08 = 0; }
|
inline Act3State() { m_unk0x08 = 0; }
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1000e300
|
// FUNCTION: LEGO1 0x1000e300
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
{
|
{
|
||||||
// GLOBAL: LEGO1 0x100f03f0
|
// STRING: LEGO1 0x100f03f0
|
||||||
return "Act3State";
|
return "Act3State";
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1000e310
|
// FUNCTION: LEGO1 0x1000e310
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
{
|
{
|
||||||
return !strcmp(p_name, Act3State::ClassName()) || LegoState::IsA(p_name);
|
return !strcmp(p_name, Act3State::ClassName()) || LegoState::IsA(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual MxBool VTable0x14() override;
|
MxBool VTable0x14() override;
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x1000e3c0
|
||||||
|
// Act3State::`scalar deleting destructor'
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// FIXME: May be part of LegoState? Uncertain...
|
// FIXME: May be part of LegoState? Uncertain...
|
||||||
55
LEGO1/lego/legoomni/include/ambulance.h
Normal file
55
LEGO1/lego/legoomni/include/ambulance.h
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
#ifndef AMBULANCE_H
|
||||||
|
#define AMBULANCE_H
|
||||||
|
|
||||||
|
#include "islepathactor.h"
|
||||||
|
|
||||||
|
// VTABLE: LEGO1 0x100d71a8
|
||||||
|
// SIZE 0x184
|
||||||
|
class Ambulance : public IslePathActor {
|
||||||
|
public:
|
||||||
|
Ambulance();
|
||||||
|
|
||||||
|
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||||
|
MxResult Tickle() override; // vtable+0x08
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10035fa0
|
||||||
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
|
{
|
||||||
|
// STRING: LEGO1 0x100f03c4
|
||||||
|
return "Ambulance";
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10035fb0
|
||||||
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
|
{
|
||||||
|
return !strcmp(p_name, Ambulance::ClassName()) || IslePathActor::IsA(p_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||||
|
void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c
|
||||||
|
void VTable0x70(float p_float) override; // vtable+0x70
|
||||||
|
MxU32 VTable0xcc() override; // vtable+0xcc
|
||||||
|
MxU32 VTable0xd4(LegoControlManagerEvent& p_param) override; // vtable+0xd4
|
||||||
|
MxU32 VTable0xdc(MxType19NotificationParam&) override; // vtable+0xdc
|
||||||
|
void VTable0xe4() override; // vtable+0xe4
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x10036130
|
||||||
|
// Ambulance::`scalar deleting destructor'
|
||||||
|
|
||||||
|
private:
|
||||||
|
// TODO: Ambulance fields
|
||||||
|
undefined m_unk0x160[4];
|
||||||
|
MxS32 m_unk0x164;
|
||||||
|
MxS16 m_unk0x168;
|
||||||
|
MxS16 m_unk0x16a;
|
||||||
|
MxS16 m_unk0x16c;
|
||||||
|
MxS16 m_unk0x16e;
|
||||||
|
MxS16 m_unk0x170;
|
||||||
|
MxS16 m_unk0x172;
|
||||||
|
MxS32 m_unk0x174;
|
||||||
|
MxS32 m_unk0x178;
|
||||||
|
MxFloat m_unk0x17c;
|
||||||
|
undefined m_unk0x180[4];
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // AMBULANCE_H
|
||||||
@ -10,18 +10,20 @@ class AmbulanceMissionState : public LegoState {
|
|||||||
AmbulanceMissionState();
|
AmbulanceMissionState();
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10037600
|
// FUNCTION: LEGO1 0x10037600
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
{
|
{
|
||||||
// GLOBAL: LEGO1 0x100f00e8
|
// STRING: LEGO1 0x100f00e8
|
||||||
return "AmbulanceMissionState";
|
return "AmbulanceMissionState";
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10037610
|
// FUNCTION: LEGO1 0x10037610
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
{
|
{
|
||||||
return !strcmp(p_name, AmbulanceMissionState::ClassName()) || LegoState::IsA(p_name);
|
return !strcmp(p_name, AmbulanceMissionState::ClassName()) || LegoState::IsA(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||||
|
|
||||||
inline MxU16 GetColor(MxU8 p_id)
|
inline MxU16 GetColor(MxU8 p_id)
|
||||||
{
|
{
|
||||||
switch (p_id) {
|
switch (p_id) {
|
||||||
@ -40,19 +42,22 @@ class AmbulanceMissionState : public LegoState {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x100376c0
|
||||||
|
// AmbulanceMissionState::`scalar deleting destructor'
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
undefined4 m_unk0x8; // 0x08
|
undefined4 m_unk0x08; // 0x08
|
||||||
undefined4 m_unk0xc; // 0x0c
|
undefined4 m_unk0x0c; // 0x0c
|
||||||
MxU16 m_unk0x10; // 0x10
|
MxU16 m_unk0x10; // 0x10
|
||||||
MxU16 m_unk0x12; // 0x12
|
MxU16 m_unk0x12; // 0x12
|
||||||
MxU16 m_unk0x14; // 0x14
|
MxU16 m_unk0x14; // 0x14
|
||||||
MxU16 m_unk0x16; // 0x16
|
MxU16 m_unk0x16; // 0x16
|
||||||
MxU16 m_unk0x18; // 0x18
|
MxU16 m_unk0x18; // 0x18
|
||||||
MxU16 m_color1; // 0x1a
|
MxU16 m_color1; // 0x1a
|
||||||
MxU16 m_color2; // 0x1c
|
MxU16 m_color2; // 0x1c
|
||||||
MxU16 m_color3; // 0x1e
|
MxU16 m_color3; // 0x1e
|
||||||
MxU16 m_color4; // 0x20
|
MxU16 m_color4; // 0x20
|
||||||
MxU16 m_color5; // 0x22
|
MxU16 m_color5; // 0x22
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // AMBULANCEMISSIONSTATE_H
|
#endif // AMBULANCEMISSIONSTATE_H
|
||||||
40
LEGO1/lego/legoomni/include/animstate.h
Normal file
40
LEGO1/lego/legoomni/include/animstate.h
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#ifndef ANIMSTATE_H
|
||||||
|
#define ANIMSTATE_H
|
||||||
|
|
||||||
|
#include "legostate.h"
|
||||||
|
|
||||||
|
// VTABLE: LEGO1 0x100d8d80
|
||||||
|
// SIZE 0x1c
|
||||||
|
class AnimState : public LegoState {
|
||||||
|
public:
|
||||||
|
AnimState();
|
||||||
|
~AnimState() override; // vtable+0x00
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10065070
|
||||||
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
|
{
|
||||||
|
// STRING: LEGO1 0x100f0460
|
||||||
|
return "AnimState";
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10065080
|
||||||
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
|
{
|
||||||
|
return !strcmp(p_name, AnimState::ClassName()) || LegoState::IsA(p_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
MxBool SetFlag() override; // vtable+0x18
|
||||||
|
MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1C
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x10065130
|
||||||
|
// AnimState::`scalar deleting destructor'
|
||||||
|
|
||||||
|
private:
|
||||||
|
undefined4 m_unk0x08; // 0x08
|
||||||
|
undefined4 m_unk0x0c; // 0x0c
|
||||||
|
void* m_unk0x10; // 0x10
|
||||||
|
undefined4 m_unk0x14; // 0x14
|
||||||
|
void* m_unk0x18; // 0x18
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // ANIMSTATE_H
|
||||||
@ -7,20 +7,21 @@
|
|||||||
// SIZE 0x68
|
// SIZE 0x68
|
||||||
class BeachHouseEntity : public BuildingEntity {
|
class BeachHouseEntity : public BuildingEntity {
|
||||||
public:
|
public:
|
||||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+04
|
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1000ee80
|
// FUNCTION: LEGO1 0x1000ee80
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
{
|
{
|
||||||
// GLOBAL: LEGO1 0x100f0314
|
// STRING: LEGO1 0x100f0314
|
||||||
return "BeachHouseEntity";
|
return "BeachHouseEntity";
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1000ee90
|
// FUNCTION: LEGO1 0x1000ee90
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
{
|
{
|
||||||
return !strcmp(p_name, BeachHouseEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
return !strcmp(p_name, BeachHouseEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x1000f970
|
||||||
|
// BeachHouseEntity::`scalar deleting destructor'
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // BEACHHOUSEENTITY_H
|
#endif // BEACHHOUSEENTITY_H
|
||||||
39
LEGO1/lego/legoomni/include/bike.h
Normal file
39
LEGO1/lego/legoomni/include/bike.h
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#ifndef BIKE_H
|
||||||
|
#define BIKE_H
|
||||||
|
|
||||||
|
#include "decomp.h"
|
||||||
|
#include "islepathactor.h"
|
||||||
|
|
||||||
|
// VTABLE: LEGO1 0x100d9808
|
||||||
|
// SIZE 0x164
|
||||||
|
class Bike : public IslePathActor {
|
||||||
|
public:
|
||||||
|
Bike();
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x100766f0
|
||||||
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
|
{
|
||||||
|
// STRING: LEGO1 0x100f03d0
|
||||||
|
return "Bike";
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10076700
|
||||||
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
|
{
|
||||||
|
return !strcmp(p_name, Bike::ClassName()) || IslePathActor::IsA(p_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||||
|
MxU32 VTable0xcc() override; // vtable+0xcc
|
||||||
|
MxU32 VTable0xd4(LegoControlManagerEvent& p_param) override; // vtable+0xd4
|
||||||
|
void VTable0xe4() override; // vtable+0xe4
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x10076880
|
||||||
|
// Bike::`scalar deleting destructor'
|
||||||
|
|
||||||
|
private:
|
||||||
|
// TODO: Bike fields
|
||||||
|
undefined m_unk0x160[4];
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // BIKE_H
|
||||||
@ -8,20 +8,25 @@
|
|||||||
class BuildingEntity : public LegoEntity {
|
class BuildingEntity : public LegoEntity {
|
||||||
public:
|
public:
|
||||||
BuildingEntity();
|
BuildingEntity();
|
||||||
virtual ~BuildingEntity() override; // vtable+0x0
|
~BuildingEntity() override; // vtable+0x00
|
||||||
|
|
||||||
|
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10014f20
|
// FUNCTION: LEGO1 0x10014f20
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
{
|
{
|
||||||
// GLOBAL: LEGO1 0x100f07e8
|
// STRING: LEGO1 0x100f07e8
|
||||||
return "BuildingEntity";
|
return "BuildingEntity";
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10014f30
|
// FUNCTION: LEGO1 0x10014f30
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
{
|
{
|
||||||
return !strcmp(p_name, BuildingEntity::ClassName()) || LegoEntity::IsA(p_name);
|
return !strcmp(p_name, BuildingEntity::ClassName()) || LegoEntity::IsA(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x10015010
|
||||||
|
// BuildingEntity::`scalar deleting destructor'
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // BUILDINGENTITY_H
|
#endif // BUILDINGENTITY_H
|
||||||
34
LEGO1/lego/legoomni/include/bumpbouy.h
Normal file
34
LEGO1/lego/legoomni/include/bumpbouy.h
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
#ifndef BUMPBOUY_H
|
||||||
|
#define BUMPBOUY_H
|
||||||
|
|
||||||
|
#include "legoanimactor.h"
|
||||||
|
#include "mxtypes.h"
|
||||||
|
|
||||||
|
// VTABLE: LEGO1 0x100d6790
|
||||||
|
class BumpBouy : public LegoAnimActor {
|
||||||
|
public:
|
||||||
|
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x100274e0
|
||||||
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
|
{
|
||||||
|
// STRING: LEGO1 0x100f0394
|
||||||
|
return "BumpBouy";
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10027500
|
||||||
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
|
{
|
||||||
|
return !strcmp(p_name, BumpBouy::ClassName()) || LegoAnimActor::IsA(p_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ParseAction(char*) override; // vtable+0x20
|
||||||
|
void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
|
||||||
|
void VTable0x70(float p_float) override; // vtable+0x70
|
||||||
|
void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x10027490
|
||||||
|
// BumpBouy::`scalar deleting destructor'
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // BUMPBOUY_H
|
||||||
42
LEGO1/lego/legoomni/include/carrace.h
Normal file
42
LEGO1/lego/legoomni/include/carrace.h
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#ifndef CARRACE_H
|
||||||
|
#define CARRACE_H
|
||||||
|
|
||||||
|
#include "decomp.h"
|
||||||
|
#include "legorace.h"
|
||||||
|
|
||||||
|
// VTABLE: LEGO1 0x100d5e50
|
||||||
|
// SIZE 0x154
|
||||||
|
class CarRace : public LegoRace {
|
||||||
|
public:
|
||||||
|
CarRace();
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10016b20
|
||||||
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
|
{
|
||||||
|
// STRING: LEGO1 0x100f0528
|
||||||
|
return "CarRace";
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10016b30
|
||||||
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
|
{
|
||||||
|
return !strcmp(p_name, CarRace::ClassName()) || LegoRace::IsA(p_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||||
|
void ReadyWorld() override; // vtable+0x50
|
||||||
|
MxBool VTable0x64() override; // vtable+0x64
|
||||||
|
undefined4 VTable0x6c(undefined4) override; // vtable+0x6c
|
||||||
|
undefined4 VTable0x70(undefined4) override; // vtable+0x70
|
||||||
|
undefined4 VTable0x74(undefined4) override; // vtable+0x74
|
||||||
|
undefined4 VTable0x78(undefined4) override; // vtable+0x78
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x10016c70
|
||||||
|
// CarRace::`scalar deleting destructor'
|
||||||
|
|
||||||
|
private:
|
||||||
|
undefined m_unk0x144[12]; // 0x144
|
||||||
|
undefined4 m_unk0x150; // 0x150
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // CARRACE_H
|
||||||
@ -8,17 +8,20 @@
|
|||||||
class CarRaceState : public RaceState {
|
class CarRaceState : public RaceState {
|
||||||
public:
|
public:
|
||||||
// FUNCTION: LEGO1 0x1000dd30
|
// FUNCTION: LEGO1 0x1000dd30
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
{
|
{
|
||||||
// GLOBAL: LEGO1 0x100f009c
|
// STRING: LEGO1 0x100f009c
|
||||||
return "CarRaceState";
|
return "CarRaceState";
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1000dd40
|
// FUNCTION: LEGO1 0x1000dd40
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
{
|
{
|
||||||
return !strcmp(p_name, CarRaceState::ClassName()) || RaceState::IsA(p_name);
|
return !strcmp(p_name, CarRaceState::ClassName()) || RaceState::IsA(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x1000f740
|
||||||
|
// CarRaceState::`scalar deleting destructor'
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CARRACESTATE_H
|
#endif // CARRACESTATE_H
|
||||||
31
LEGO1/lego/legoomni/include/doors.h
Normal file
31
LEGO1/lego/legoomni/include/doors.h
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#ifndef DOORS_H
|
||||||
|
#define DOORS_H
|
||||||
|
|
||||||
|
#include "legopathactor.h"
|
||||||
|
|
||||||
|
// VTABLE: LEGO1 0x100d4788
|
||||||
|
// SIZE 0x1f8
|
||||||
|
class Doors : public LegoPathActor {
|
||||||
|
public:
|
||||||
|
// FUNCTION: LEGO1 0x1000e430
|
||||||
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
|
{
|
||||||
|
// STRING: LEGO1 0x100f03e8
|
||||||
|
return "Doors";
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x1000e440
|
||||||
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
|
{
|
||||||
|
return !strcmp(p_name, Doors::ClassName()) || LegoPathActor::IsA(p_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ParseAction(char*) override; // vtable+0x20
|
||||||
|
void VTable0x70(float p_float) override; // vtable+0x70
|
||||||
|
MxS32 VTable0x94() override; // vtable+0x94
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x1000e580
|
||||||
|
// Doors::`scalar deleting destructor'
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // DOORS_H
|
||||||
43
LEGO1/lego/legoomni/include/dunebuggy.h
Normal file
43
LEGO1/lego/legoomni/include/dunebuggy.h
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
#ifndef DUNEBUGGY_H
|
||||||
|
#define DUNEBUGGY_H
|
||||||
|
|
||||||
|
#include "decomp.h"
|
||||||
|
#include "islepathactor.h"
|
||||||
|
|
||||||
|
// VTABLE: LEGO1 0x100d8f98
|
||||||
|
// SIZE 0x16c
|
||||||
|
class DuneBuggy : public IslePathActor {
|
||||||
|
public:
|
||||||
|
DuneBuggy();
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10067c30
|
||||||
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
|
{
|
||||||
|
// STRING: LEGO1 0x100f0410
|
||||||
|
return "DuneBuggy";
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10067c40
|
||||||
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
|
{
|
||||||
|
return !strcmp(p_name, DuneBuggy::ClassName()) || IslePathActor::IsA(p_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||||
|
void VTable0x70(float p_float) override; // vtable+0x70
|
||||||
|
MxU32 VTable0xcc() override; // vtable+0xcc
|
||||||
|
MxU32 VTable0xd4(LegoControlManagerEvent& p_param) override; // vtable+0xd4
|
||||||
|
MxU32 VTable0xdc(MxType19NotificationParam& p_param) override; // vtable+0xdc
|
||||||
|
void VTable0xe4() override; // vtable+0xe4
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x10067dc0
|
||||||
|
// DuneBuggy::`scalar deleting destructor'
|
||||||
|
|
||||||
|
private:
|
||||||
|
// TODO: Double check DuneBuggy field types
|
||||||
|
undefined4 m_unk0x160;
|
||||||
|
MxFloat m_unk0x164;
|
||||||
|
undefined4 m_unk0x168;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // DUNEBUGGY_H
|
||||||
49
LEGO1/lego/legoomni/include/elevatorbottom.h
Normal file
49
LEGO1/lego/legoomni/include/elevatorbottom.h
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
#ifndef ELEVATORBOTTOM_H
|
||||||
|
#define ELEVATORBOTTOM_H
|
||||||
|
|
||||||
|
#include "decomp.h"
|
||||||
|
#include "legoworld.h"
|
||||||
|
|
||||||
|
class LegoControlManagerEvent;
|
||||||
|
|
||||||
|
// VTABLE: LEGO1 0x100d5f20
|
||||||
|
// SIZE: 0xfc (from inlined ctor at 0x1000a8aa)
|
||||||
|
class ElevatorBottom : public LegoWorld {
|
||||||
|
public:
|
||||||
|
ElevatorBottom();
|
||||||
|
~ElevatorBottom() override; // vtable+0x00
|
||||||
|
|
||||||
|
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10017f20
|
||||||
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
|
{
|
||||||
|
// STRING: LEGO1 0x100f04ac
|
||||||
|
return "ElevatorBottom";
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10017f30
|
||||||
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
|
{
|
||||||
|
return !strcmp(p_name, ElevatorBottom::ClassName()) || LegoWorld::IsA(p_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||||
|
void ReadyWorld() override; // vtable+0x50
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10017f10
|
||||||
|
MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c
|
||||||
|
|
||||||
|
MxBool VTable0x64() override; // vtable+0x64
|
||||||
|
void Enable(MxBool p_enable) override; // vtable+0x68
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x10018040
|
||||||
|
// ElevatorBottom::`scalar deleting destructor'
|
||||||
|
|
||||||
|
private:
|
||||||
|
undefined4 m_unk0xf8; // 0xf8
|
||||||
|
|
||||||
|
MxLong HandleClick(LegoControlManagerEvent& p_param);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // ELEVATORBOTTOM_H
|
||||||
23
LEGO1/lego/legoomni/include/extra.h
Normal file
23
LEGO1/lego/legoomni/include/extra.h
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#ifndef EXTRA_H
|
||||||
|
#define EXTRA_H
|
||||||
|
|
||||||
|
// Items related to the Extra string of key-value pairs found in MxOb
|
||||||
|
|
||||||
|
struct Extra {
|
||||||
|
enum ActionType {
|
||||||
|
e_none = 0,
|
||||||
|
e_opendisk,
|
||||||
|
e_openram,
|
||||||
|
e_close,
|
||||||
|
e_start,
|
||||||
|
e_stop,
|
||||||
|
e_run,
|
||||||
|
e_exit,
|
||||||
|
e_enable,
|
||||||
|
e_disable,
|
||||||
|
e_notify,
|
||||||
|
e_unknown,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // EXTRA_H
|
||||||
56
LEGO1/lego/legoomni/include/gasstation.h
Normal file
56
LEGO1/lego/legoomni/include/gasstation.h
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
#ifndef GASSTATION_H
|
||||||
|
#define GASSTATION_H
|
||||||
|
|
||||||
|
#include "decomp.h"
|
||||||
|
#include "legoworld.h"
|
||||||
|
#include "radio.h"
|
||||||
|
|
||||||
|
// VTABLE: LEGO1 0x100d4650
|
||||||
|
// SIZE 0x128
|
||||||
|
// Radio variable at 0x46, in constructor
|
||||||
|
class GasStation : public LegoWorld {
|
||||||
|
public:
|
||||||
|
GasStation();
|
||||||
|
~GasStation() override; // vtable+0x00
|
||||||
|
|
||||||
|
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||||
|
MxResult Tickle() override; // vtable+0x08
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10004780
|
||||||
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
|
{
|
||||||
|
// STRING: LEGO1 0x100f0168
|
||||||
|
return "GasStation";
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10004790
|
||||||
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
|
{
|
||||||
|
return !strcmp(p_name, GasStation::ClassName()) || LegoWorld::IsA(p_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||||
|
void ReadyWorld() override; // vtable+0x50
|
||||||
|
MxBool VTable0x5c() override; // vtable+0x5c
|
||||||
|
MxBool VTable0x64() override; // vtable+0x64
|
||||||
|
void Enable(MxBool p_enable) override; // vtable+0x68
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x100048a0
|
||||||
|
// GasStation::`scalar deleting destructor'
|
||||||
|
|
||||||
|
private:
|
||||||
|
undefined2 m_unk0xf8; // 0xf8
|
||||||
|
undefined2 m_unk0xfa; // 0xfa
|
||||||
|
undefined4 m_unk0xfc; // 0xfc
|
||||||
|
undefined4 m_unk0x100; // 0x100
|
||||||
|
undefined2 m_unk0x104; // 0x104
|
||||||
|
undefined2 m_unk0x106; // 0x106
|
||||||
|
undefined4 m_unk0x108; // 0x108
|
||||||
|
undefined4 m_unk0x10c; // 0x10c
|
||||||
|
undefined4 m_unk0x110; // 0x110
|
||||||
|
undefined m_unk0x114; // 0x114
|
||||||
|
undefined m_unk0x115; // 0x115
|
||||||
|
Radio m_radio; // 0x118
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // GASSTATION_H
|
||||||
@ -8,17 +8,20 @@
|
|||||||
class GasStationEntity : public BuildingEntity {
|
class GasStationEntity : public BuildingEntity {
|
||||||
public:
|
public:
|
||||||
// FUNCTION: LEGO1 0x1000eb20
|
// FUNCTION: LEGO1 0x1000eb20
|
||||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
{
|
{
|
||||||
// GLOBAL: LEGO1 0x100f0348
|
// STRING: LEGO1 0x100f0348
|
||||||
return "GasStationEntity";
|
return "GasStationEntity";
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1000eb30
|
// FUNCTION: LEGO1 0x1000eb30
|
||||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
{
|
{
|
||||||
return !strcmp(p_name, GasStationEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
return !strcmp(p_name, GasStationEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x1000f890
|
||||||
|
// GasStationEntity::`scalar deleting destructor'
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // GASSTATIONENTITY_H
|
#endif // GASSTATIONENTITY_H
|
||||||
40
LEGO1/lego/legoomni/include/gasstationstate.h
Normal file
40
LEGO1/lego/legoomni/include/gasstationstate.h
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#ifndef GASSTATIONSTATE_H
|
||||||
|
#define GASSTATIONSTATE_H
|
||||||
|
|
||||||
|
#include "legostate.h"
|
||||||
|
|
||||||
|
// VTABLE: LEGO1 0x100d46e0
|
||||||
|
// SIZE 0x24
|
||||||
|
class GasStationState : public LegoState {
|
||||||
|
public:
|
||||||
|
GasStationState();
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x100061d0
|
||||||
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
|
{
|
||||||
|
// STRING: LEGO1 0x100f0174
|
||||||
|
return "GasStationState";
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x100061e0
|
||||||
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
|
{
|
||||||
|
return !strcmp(p_name, GasStationState::ClassName()) || LegoState::IsA(p_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x10006290
|
||||||
|
// GasStationState::`scalar deleting destructor'
|
||||||
|
|
||||||
|
private:
|
||||||
|
undefined4 m_unk0x08[3]; // 0x08
|
||||||
|
undefined4 m_unk0x14; // 0x14
|
||||||
|
undefined2 m_unk0x18; // 0x18
|
||||||
|
undefined2 m_unk0x1a; // 0x1a
|
||||||
|
undefined2 m_unk0x1c; // 0x1c
|
||||||
|
undefined2 m_unk0x1e; // 0x1e
|
||||||
|
undefined2 m_unk0x20; // 0x20
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // GASSTATIONSTATE_H
|
||||||
141
LEGO1/lego/legoomni/include/gifmanager.h
Normal file
141
LEGO1/lego/legoomni/include/gifmanager.h
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
#ifndef GIFMANAGER_H
|
||||||
|
#define GIFMANAGER_H
|
||||||
|
|
||||||
|
#include "compat.h"
|
||||||
|
#include "decomp.h"
|
||||||
|
#include "mxstl/stlcompat.h"
|
||||||
|
#include "mxtypes.h"
|
||||||
|
|
||||||
|
#include <d3drmobj.h>
|
||||||
|
#include <ddraw.h>
|
||||||
|
|
||||||
|
#pragma warning(disable : 4237)
|
||||||
|
|
||||||
|
// SIZE 0x14
|
||||||
|
struct GifData {
|
||||||
|
public:
|
||||||
|
char* m_name; // 0x00
|
||||||
|
LPDIRECTDRAWSURFACE m_surface; // 0x04
|
||||||
|
LPDIRECTDRAWPALETTE m_palette; // 0x08
|
||||||
|
LPDIRECT3DRMTEXTURE2 m_texture; // 0x0c
|
||||||
|
MxU8* m_data; // 0x10
|
||||||
|
|
||||||
|
~GifData();
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GifMapComparator {
|
||||||
|
bool operator()(const char* const& p_key0, const char* const& p_key1) const { return strcmp(p_key0, p_key1) > 0; }
|
||||||
|
};
|
||||||
|
|
||||||
|
// SIZE 0x10
|
||||||
|
class GifMap : public map<const char*, GifData*, GifMapComparator> {
|
||||||
|
// SYNTHETIC: LEGO1 0x1005a400
|
||||||
|
// GifMap::~GifMap
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef list<GifData*> GifList;
|
||||||
|
|
||||||
|
// VTABLE: LEGO1 0x100d86d4
|
||||||
|
// SIZE 0x18
|
||||||
|
class GifManagerBase {
|
||||||
|
public:
|
||||||
|
// FUNCTION: LEGO1 0x1005b660
|
||||||
|
virtual ~GifManagerBase()
|
||||||
|
{
|
||||||
|
GifMap::iterator it;
|
||||||
|
for (it = m_map.begin(); it != m_map.end(); it++) {
|
||||||
|
// DECOMP: Use of const_cast here matches ~ViewLODListManager from 96 source.
|
||||||
|
const char* const& key = (*it).first;
|
||||||
|
delete[] const_cast<char*>(key);
|
||||||
|
|
||||||
|
if (m_ownership) {
|
||||||
|
delete (*it).second; // GifData*
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
inline GifData* Get(const char* p_name)
|
||||||
|
{
|
||||||
|
GifMap::iterator it = m_map.find(p_name);
|
||||||
|
if (it != m_map.end()) {
|
||||||
|
return (*it).second;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x1005a310
|
||||||
|
// GifManagerBase::`scalar deleting destructor'
|
||||||
|
|
||||||
|
protected:
|
||||||
|
MxBool m_ownership; // 0x04
|
||||||
|
GifMap m_map; // 0x08
|
||||||
|
};
|
||||||
|
|
||||||
|
// VTABLE: LEGO1 0x100d86fc
|
||||||
|
// SIZE 0x24
|
||||||
|
class GifManager : public GifManagerBase {
|
||||||
|
public:
|
||||||
|
GifManager() { m_ownership = TRUE; }
|
||||||
|
~GifManager() override;
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x1005a580
|
||||||
|
// GifManager::`scalar deleting destructor'
|
||||||
|
|
||||||
|
void FUN_10099cc0(GifData* p_data);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
GifList m_list; // 0x18
|
||||||
|
};
|
||||||
|
|
||||||
|
// TEMPLATE: LEGO1 0x10059c50
|
||||||
|
// allocator<GifData *>::_Charalloc
|
||||||
|
|
||||||
|
// clang-format off
|
||||||
|
// TEMPLATE: LEGO1 0x10001cc0
|
||||||
|
// _Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Lbound
|
||||||
|
|
||||||
|
// TEMPLATE: LEGO1 0x1004f9b0
|
||||||
|
// _Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Insert
|
||||||
|
|
||||||
|
// TEMPLATE: LEGO1 0x10059c70
|
||||||
|
// _Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Color
|
||||||
|
|
||||||
|
// TEMPLATE: LEGO1 0x10059c80
|
||||||
|
// _Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Left
|
||||||
|
|
||||||
|
// TEMPLATE: LEGO1 0x10059c90
|
||||||
|
// _Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Parent
|
||||||
|
|
||||||
|
// TEMPLATE: LEGO1 0x10059ca0
|
||||||
|
// _Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Right
|
||||||
|
|
||||||
|
// TEMPLATE: LEGO1 0x10059cb0
|
||||||
|
// _Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::~_Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >
|
||||||
|
|
||||||
|
// TEMPLATE: LEGO1 0x10059d80
|
||||||
|
// _Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::iterator::_Inc
|
||||||
|
|
||||||
|
// TEMPLATE: LEGO1 0x10059dc0
|
||||||
|
// _Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::erase
|
||||||
|
|
||||||
|
// TEMPLATE: LEGO1 0x1005a210
|
||||||
|
// _Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Erase
|
||||||
|
|
||||||
|
// TEMPLATE: LEGO1 0x1005a250
|
||||||
|
// list<GifData *,allocator<GifData *> >::~list<GifData *,allocator<GifData *> >
|
||||||
|
|
||||||
|
// TEMPLATE: LEGO1 0x1005a2c0
|
||||||
|
// map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::~map<char const *,GifData *,GifMapComparator,allocator<GifData *> >
|
||||||
|
|
||||||
|
// TEMPLATE: LEGO1 0x1005a450
|
||||||
|
// Map<char const *,GifData *,GifMapComparator>::~Map<char const *,GifData *,GifMapComparator>
|
||||||
|
|
||||||
|
// TEMPLATE: LEGO1 0x1005a5a0
|
||||||
|
// List<GifData *>::~List<GifData *>
|
||||||
|
|
||||||
|
// GLOBAL: LEGO1 0x100f0100
|
||||||
|
// _Tree<char const *,pair<char const * const,GifData *>,map<char const *,GifData *,GifMapComparator,allocator<GifData *> >::_Kfn,GifMapComparator,allocator<GifData *> >::_Nil
|
||||||
|
// clang-format on
|
||||||
|
|
||||||
|
#endif // GIFMANAGER_H
|
||||||
63
LEGO1/lego/legoomni/include/helicopter.h
Normal file
63
LEGO1/lego/legoomni/include/helicopter.h
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
#ifndef HELICOPTER_H
|
||||||
|
#define HELICOPTER_H
|
||||||
|
|
||||||
|
#include "helicopterstate.h"
|
||||||
|
#include "islepathactor.h"
|
||||||
|
#include "realtime/matrix.h"
|
||||||
|
|
||||||
|
// SIZE 0x34
|
||||||
|
class HelicopterSubclass {
|
||||||
|
public:
|
||||||
|
inline HelicopterSubclass() : m_unk0x30(0) {}
|
||||||
|
MxResult FUN_100040a0(Vector4& p_v, float p_f);
|
||||||
|
|
||||||
|
private:
|
||||||
|
Mx4DPointFloat m_unk0x00; // 0x00
|
||||||
|
Mx4DPointFloat m_unk0x18; // 0x18
|
||||||
|
undefined4 m_unk0x30; // 0x30
|
||||||
|
};
|
||||||
|
|
||||||
|
// VTABLE: LEGO1 0x100d40f8
|
||||||
|
// SIZE 0x230
|
||||||
|
class Helicopter : public IslePathActor {
|
||||||
|
public:
|
||||||
|
Helicopter();
|
||||||
|
~Helicopter() override; // vtable+0x00
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10003070
|
||||||
|
inline const char* ClassName() const override // vtable+0x0c
|
||||||
|
{
|
||||||
|
// STRING: LEGO1 0x100f0130
|
||||||
|
return "Helicopter";
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10003080
|
||||||
|
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||||
|
{
|
||||||
|
return !strcmp(p_name, Helicopter::ClassName()) || IslePathActor::IsA(p_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||||
|
void VTable0x70(float p_float) override; // vtable+0x70
|
||||||
|
void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
|
||||||
|
MxU32 VTable0xcc() override; // vtable+0xcc
|
||||||
|
MxU32 VTable0xd4(LegoControlManagerEvent& p_param) override; // vtable+0xd4
|
||||||
|
MxU32 VTable0xd8(MxType18NotificationParam& p_param) override; // vtable+0xd8
|
||||||
|
void VTable0xe4() override; // vtable+0xe4
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x10003210
|
||||||
|
// Helicopter::`scalar deleting destructor'
|
||||||
|
|
||||||
|
protected:
|
||||||
|
MxMatrix m_unk0x160; // 0x160
|
||||||
|
MxMatrix m_unk0x1a8; // 0x1a8
|
||||||
|
float m_unk0x1f0; // 0x1f0
|
||||||
|
HelicopterSubclass m_unk0x1f4; // 0x1f4
|
||||||
|
HelicopterState* m_state; // 0x228
|
||||||
|
MxAtomId m_script; // 0x22c
|
||||||
|
|
||||||
|
private:
|
||||||
|
void GetState();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // HELICOPTER_H
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user